From 7e4f5efdbb95dcdc4c44b04d2ccb641ffa9de11c Mon Sep 17 00:00:00 2001 From: Sebastian M Date: Sun, 2 Mar 2025 22:18:59 +0100 Subject: [PATCH] Add Dark mode (#1954) * MF2025 - Make messaging between Frontend and Backend work (#1925) * Delete files that should not be in git * Init vite / tailwind * Add Shadcn/ui * Add playwright * Added prettier incl tailwind plugin * Move tailwind layers to index.css * Added i18next * Updated readme * Added zustand and lodash * Updated readme * Include i18n correctly * Enable correct HMR in devContainer * Add vite options to npm run dev * Add react-router * Add WebView2 messaging to frontend * Add .vite-folder to gitignore file * Make communication between C# and javascript work * Fully dynamic frontend messaging implemented * Create message on Publisher Level * Add unit tests * JSON serialization/deserialization happens in MessageExchange * Unit tests added and working * MF2025 - Progress Bar (#1927) * Add progress bar * Reorganize panel in MainForm * Move the playwright file to .github folder * Create playwright test * Update devContainer to support playwright * Fix branch name * MF2025 - Config List View - First version (#1934) * Frontend shows config table = WIP * First refactoring done for the ConfigItems * WIP - ConfigItem View receiving Config * 1st working version of the table with acutal config data * Orphaned Serials Dialog is working correctly. * Reverted accidental conflict of Name and DeviceName for config * Fixed wrong clone * Fixed facetted filtering * Hide Status and Tags * Filters are working correctly for the table * Communication back and forth works for ConfigItem * Improve the JSON serialization including unit tests * Config Wizard opens correctly for OutputConfigItems * Remove unused property "name" * Serialize InputAction correctly * Use dynamic way of serializeing ConfigItem and ModifierBase * Clone InputConfigItem correctly * fix the property name for ConfigEdit message * Correctly open InputConfigWizard * Fixed some visuals for the table * Use short device type name * Improved table rendering and active state can be toggled. * Add output/input config items is possible * Copy ConfigItem is possible * All context menu actions are working. * Fix config ref title, code cleanup * Update workflow for PR build * Add xml attrib deserialization info for backward compatibility * Add status icons and inline name editing for config items * Fix the table width * Improved responsivness * Working playwright tests for the config list * Improving edit styles * Fixing linter errors * Status icons are working * Fixed playwright test * Fix failing build * Fix xml unit tests to preserve temporary backward compatiblity * Fixed Equals method for ConfigItem * Fix the update after input config item is edited * Display test mode status for config items * Internationalization - Config list (#1940) * Added i18n for config list * Move cells and cells into own files * Fix linter erros * Fix playwright tests * Update the github workflow to prevent double execution * Translate missing waiting * Fix linter issue * Added WebView2 wrapper and threadsafe postWebMessageAsJson (#1941) * Improved Config List Interactions (#1943) * Quick access to edit, including double-click * Remove select-none on individual components * Sorting works for individual rows - first version * Fix linter errors * Introduce handle for dnd * Add playwright test for DnD * Small visual improvement for the handle * i18n for types * MobiFlight Project added (#1949) * First stab at JSON config and project * Update the expected XML files after removing "trigger" attribute * Convert the pin to common Device using DeviceConfig * Refactor LedModule to Device * Refactored LCD Display * Refactor Servo to as Device * Refactored ShiftRegister to Device * Refactor Stepper to be Device * Refactor CustomDevice to Device * Removed BCD device type * JSON Serialization is working in a first version. Requires more unit tests * Improve JSON serialization * Change frontend to be comaptible with new serialization format * Output device panels are working * device icons are displayed correctly in UI * Config List View working * Unit tests working * Fixed unit tests. * Fix an execution bug * Fix linter * Proper JSON Serialization and unit tests * Add missing CustomDevice * On "Add" send 1 item to the UI * Use autofocus on edit * Add mcc to default filter. * Complete JSON serialization for modifiers, including Unit tests * Fixed Output DeviceConfig serialization. * use only short type names in JSON * Add unit test for configreflist JSON serialization * Improve Precondition serialization * Don't include null values for MSFS2020 CustomInputAction * No setting node handling * Add more unit tests for open and save of files * Fixed ShiftRegister and also added unit tests for it * Added exception handling for ExecuteTestOn/Off * Improved table responsiveness (#1953) * Added theme and mode changer * table now uses default colors for dark mode * Fix linting error. * Adjust colors for table header and grip * add playwright UI test --- .github/workflows/ci.yml | 8 +- .github/workflows/playwright.yml | 30 + Base/AppTelemetry.cs | 20 +- Base/ConfigFile.cs | 187 +- Base/ConfigFileFactory.cs | 36 + Base/ConfigFileWrapperXML.cs | 44 + Base/ConfigItem.cs | 107 + Base/ConfigItemStatus.cs | 12 + Base/ConfigRefList.cs | 27 +- Base/ConnectorValue.cs | 5 +- Base/{ => Deprecated}/BaseConfigItem.cs | 28 +- Base/Deprecated/DeprecatedConfigFile.cs | 220 + Base/Extensions.cs | 9 +- Base/IConfigFile.cs | 16 + Base/IDeviceConfig.cs | 22 + Base/IFsuipcConfigItem.cs | 7 +- Base/LogAppender/MessageExchangeAppender.cs | 19 + Base/Precondition.cs | 3 +- Base/PreconditionList.cs | 50 +- Base/Project.cs | 106 + .../Serialization/Json/ConfigItemConverter.cs | 38 + .../Json/DeviceConfigConverter.cs | 38 + Base/Serialization/Json/SourceConverter.cs | 38 + Base/Settings.cs | 87 + Base/Source.cs | 96 + FSUIPC/FsuipcHelper.cs | 58 +- .../BrowserMessages/IMessageExchange.cs | 10 + .../BrowserMessages/IMessagePublisher.cs | 10 + .../Incoming/CommandAddConfigItem.cs | 11 + .../Incoming/CommandConfigContexMenu.cs | 13 + .../Incoming/CommandResortConfigItem.cs | 10 + .../Incoming/CommandUpdateConfigItem.cs | 11 + .../Converter/InputActionConverter.cs | 58 + .../Converter/ModifierBaseConverter.cs | 43 + MobiFlight/BrowserMessages/Incoming/Test.cs | 7 + MobiFlight/BrowserMessages/Message.cs | 30 + MobiFlight/BrowserMessages/MessageExchange.cs | 126 + .../Outgoing/ConfigValueUpdate.cs | 25 + .../BrowserMessages/Outgoing/LogEntry.cs | 11 + .../BrowserMessages/Outgoing/Notification.cs | 10 + .../Outgoing/StatusBarUpdate.cs | 8 + .../Publisher/PostMessagePublisher.cs | 41 + .../Publisher/WebsocketPublisher.cs | 65 + MobiFlight/ExecutionManager.cs | 821 ++- MobiFlight/IConnectedDevice.cs | 2 +- MobiFlight/InputConfig/AnalogInputConfig.cs | 10 +- MobiFlight/InputConfig/ButtonInputConfig.cs | 1 + MobiFlight/InputConfig/EncoderInputConfig.cs | 7 +- MobiFlight/InputConfig/EventIdInputAction.cs | 4 +- .../InputConfig/FsuipcOffsetInputAction.cs | 12 +- MobiFlight/InputConfig/InputAction.cs | 7 +- MobiFlight/InputConfig/InputActionFactory.cs | 19 + MobiFlight/InputConfig/JeehellInputAction.cs | 6 +- MobiFlight/InputConfig/KeyInputAction.cs | 23 +- MobiFlight/InputConfig/LuaMacroInputAction.cs | 4 +- .../InputConfig/MSFS2020CustomInputAction.cs | 11 +- .../InputConfig/MSFS2020EventIdInputAction.cs | 2 +- .../InputConfig/PmdgEventIdInputAction.cs | 2 +- MobiFlight/InputConfig/VJoyInputAction.cs | 10 +- MobiFlight/InputConfig/VariableInputAction.cs | 2 +- MobiFlight/InputConfig/XplaneInputAction.cs | 6 +- MobiFlight/InputConfigItem.cs | 155 +- MobiFlight/MobiFlightAnalogInput.cs | 2 +- MobiFlight/MobiFlightButton.cs | 10 +- MobiFlight/MobiFlightCache.cs | 2 +- MobiFlight/MobiFlightCustomDevice.cs | 2 +- MobiFlight/MobiFlightEncoder.cs | 2 +- MobiFlight/MobiFlightInputMultiplexer.cs | 2 +- MobiFlight/MobiFlightInputShiftRegister.cs | 2 +- MobiFlight/MobiFlightLcdDisplay.cs | 27 +- MobiFlight/MobiFlightLedModule.cs | 2 +- MobiFlight/MobiFlightOutput.cs | 2 +- MobiFlight/MobiFlightServo.cs | 2 +- MobiFlight/MobiFlightShiftRegister.cs | 2 +- MobiFlight/MobiFlightStepper.cs | 2 +- MobiFlight/Modifier/Blink.cs | 28 +- MobiFlight/Modifier/Comparison.cs | 21 +- MobiFlight/Modifier/Interpolation.cs | 39 +- MobiFlight/Modifier/ModifierBase.cs | 8 +- MobiFlight/Modifier/ModifierList.cs | 12 +- MobiFlight/Modifier/Padding.cs | 23 +- MobiFlight/Modifier/Substring.cs | 25 +- MobiFlight/Modifier/Transformation.cs | 2 +- MobiFlight/OutputConfig/CustomDevice.cs | 11 +- MobiFlight/OutputConfig/LcdDisplay.cs | 14 +- MobiFlight/OutputConfig/LedModule.cs | 30 +- MobiFlight/OutputConfig/{Pin.cs => Output.cs} | 27 +- MobiFlight/OutputConfig/Servo.cs | 8 +- MobiFlight/OutputConfig/ShiftRegister.cs | 48 +- MobiFlight/OutputConfig/SimConnectValue.cs | 7 +- MobiFlight/OutputConfig/Stepper.cs | 14 +- MobiFlight/OutputConfigItem.cs | 326 +- MobiFlight/ThreadSafeWebView2.cs | 20 + MobiFlightConnector.csproj | 92 +- MobiFlightUnitTests/App.config | 2 +- .../Base/ConfigFileFactoryTests.cs | 75 + MobiFlightUnitTests/Base/ConfigFileTests.cs | 546 +- MobiFlightUnitTests/Base/ConfigItemTests.cs | 111 + .../Base/ConfigRefListTests.cs | 27 + .../Deprecated/DeprecatedConfigFileTests.cs | 240 + MobiFlightUnitTests/Base/ExtensionsTests.cs | 17 +- .../Base/PreconditionListTests.cs | 52 +- MobiFlightUnitTests/Base/ProjectTests.cs | 110 + .../Json/SourceConverterTests.cs | 86 + .../Converter/ConfigItemConverterTests.cs | 69 + .../Converter/InputActionConverterTests.cs | 131 + .../Converter/ModifierBaseConverterTests.cs | 84 + .../BrowserMessages/MessageExchangeTests.cs | 116 + .../BrowserMessages/MessageTests.cs | 31 + .../InputConfig/AnalogInputConfigTests.cs | 22 +- .../InputConfig/ButtonInputConfigTests.cs | 19 + .../InputConfig/EncoderInputConfigTests.cs | 22 +- .../MobiFlight/InputConfigItemTests.cs | 52 +- .../MobiFlight/Modifier/BlinkTests.cs | 42 + .../OutputConfig/CustomDeviceTests.cs | 2 +- .../{PinTests.cs => OutputTests.cs} | 21 +- .../OutputConfig/ShiftRegisterTests.cs | 145 + .../MobiFlight/OutputConfigItemTests.cs | 314 +- .../MobiFlightUnitTests.csproj | 54 +- .../ConfigFile/7.5.0-7.5.1-upgrade.mcc.exp | 124 +- .../Base/ConfigFile/Homecockpit_C172.mcc.exp | 40 +- .../Base/ConfigFile/Json/OpenConfig.mfjson | 148 + .../ConfigFile/Json/OpenProjectTest.mfproj | 462 ++ .../Base/ConfigFile/OpenFileTest.2912.xml.exp | 2 +- .../OpenFileTest.LCD-serialization-bc.mcc | 28 + .../OpenFileTest.LCD-serialization-bc.mcc.exp | 28 + .../ConfigFile/OpenFileTest.NoSettingNode.xml | 15 + .../Base/ConfigFile/OpenFileTest.xml.exp | 6 +- .../example-default-plane-v6.1.mcc.exp | 30 +- .../example-jeehell-datapipe.mcc.exp | 12 +- .../ConfigFile/example-release-5.0.0.mcc.exp | 6 +- .../example-tutorial-7-segment.mcc.exp | 4 +- .../mobiflight-in-action-episode-1.mcc.exp | 14 +- .../Base/ConfigFile/tutorial-episode2.mcc.exp | 18 +- .../OutputConfigItem/WriteXmlTest.1.xml | Bin 1922 -> 2016 bytes .../OutputConfigItem/WriteXmlTest.2.xml | Bin 0 -> 1954 bytes .../ShiftRegister/ReadXmlTest.1.xml | Bin 0 -> 378 bytes .../ShiftRegister/WriteXmlTest.1.xml | Bin 0 -> 380 bytes MobiFlightUnitTests/packages.config | 4 + Program.cs | 4 +- UI/Dialogs/ConfigWizard.cs | 130 +- UI/Dialogs/InputConfigWizard.cs | 149 +- UI/Dialogs/OrphanedSerialsDialog.cs | 54 +- UI/MainForm.Designer.cs | 88 +- UI/MainForm.cs | 707 +- UI/MainForm.resx | 559 +- UI/Panels/Config/ConfigRefPanel.cs | 39 +- UI/Panels/Config/ConfigRefPanelItem.cs | 8 +- UI/Panels/Config/FsuipcConfigPanel.cs | 42 +- UI/Panels/Config/HubHopPresetPanel.cs | 49 +- UI/Panels/Config/PreconditionPanel.cs | 4 +- UI/Panels/Config/TransformOptionsGroup.cs | 8 +- UI/Panels/Config/VariablePanel.cs | 19 +- UI/Panels/FrontendPanel.Designer.cs | 63 + UI/Panels/FrontendPanel.cs | 63 + ...isplayBcdPanel.resx => FrontendPanel.resx} | 0 UI/Panels/InputConfigPanel.Designer.cs | 321 - UI/Panels/InputConfigPanel.cs | 951 --- UI/Panels/InputConfigPanel.de.resx | 178 - UI/Panels/InputConfigPanel.resx | 408 -- UI/Panels/Output/CustomDevicePanel.cs | 18 +- UI/Panels/Output/DisplayBcdPanel.Designer.cs | 237 - UI/Panels/Output/DisplayBcdPanel.cs | 133 - UI/Panels/Output/DisplayLedDisplayPanel.cs | 79 +- UI/Panels/Output/DisplayPinPanel.cs | 93 +- UI/Panels/Output/DisplayPinPanel.resx | 157 +- UI/Panels/Output/DisplayShiftRegisterPanel.cs | 36 +- UI/Panels/Output/LCDDisplayPanel.cs | 32 +- UI/Panels/Output/ServoPanel.cs | 32 +- UI/Panels/Output/StepperPanel.cs | 37 +- UI/Panels/OutputConfigPanel.Designer.cs | 506 -- UI/Panels/OutputConfigPanel.cs | 1134 ---- UI/Panels/OutputConfigPanel.de.resx | 179 - UI/Panels/OutputConfigPanel.resx | 579 -- UI/Panels/OutputWizard/DisplayPanel.cs | 135 +- UI/Panels/Settings/GeneralPanel.cs | 1 + UI/Panels/StartupPanel.Designer.cs | 98 - UI/Panels/StartupPanel.cs | 69 - UI/Panels/StartupPanel.resx | 483 -- frontend/.devcontainer/devcontainer.json | 31 + frontend/.gitignore | 31 + frontend/.prettierrc | 4 + frontend/README.md | 22 + frontend/components.json | 21 + frontend/dist/assets/background-nologo.jpg | Bin 108033 -> 0 bytes .../edit/elements/example_wiring_button.png | Bin 52863 -> 0 bytes .../assets/hand-flipping-switch-BavH9Bvp.png | Bin 1897383 -> 0 bytes frontend/dist/assets/index-D17jxULl.css | 1 - frontend/dist/assets/index-IouAf6f-.js | 185 - .../dist/assets/msfs2020-logo-BXS3GGap.png | Bin 181936 -> 0 bytes frontend/dist/locales/de/translation.json | 13 - frontend/dist/locales/en/translation.json | 90 - frontend/eslint.config.js | 28 + frontend/{dist => }/index.html | 27 +- frontend/package-lock.json | 5731 +++++++++++++++++ frontend/package.json | 64 + frontend/playwright.config.ts | 53 + frontend/postcss.config.js | 6 + frontend/public/locales/de/translation.json | 58 + frontend/public/locales/en/translation.json | 59 + frontend/public/locales/es/translation.json | 57 + frontend/public/vite.svg | 1 + frontend/src/App.css | 0 frontend/src/App.tsx | 93 + .../assets/mobiflight-logo-border.png} | Bin frontend/src/components/DarkModeToggle.tsx | 25 + frontend/src/components/StartupProgress.tsx | 28 + frontend/src/components/icons/DeviceIcon.tsx | 60 + .../src/components/icons/IconDeviceAnalog.tsx | 42 + .../icons/IconDeviceInputMultiplexer.tsx | 31 + .../icons/IconDeviceInputShifter.tsx | 38 + .../icons/IconDeviceOutputShifter.tsx | 38 + .../tables/config-item-table/DndTableRow.tsx | 36 + .../config-item-table-columns.tsx | 217 + .../config-item-table/config-item-table.tsx | 257 + .../data-table-faceted-filter.tsx | 157 + .../config-item-table/data-table-toolbar.tsx | 107 + .../items/ConfigItemTableActionsCell.tsx | 115 + .../items/ConfigItemTableActiveCell.tsx | 44 + .../items/ConfigItemTableActiveHeader.tsx | 8 + .../items/ConfigItemTableDeviceCell.tsx | 43 + .../items/ConfigItemTableNameCell.tsx | 95 + .../items/ConfigItemTableStatusCell.tsx | 78 + .../tables/config-item-table/items/index.ts | 5 + frontend/src/components/theme-provider.tsx | 73 + frontend/src/components/ui/badge.tsx | 16 + frontend/src/components/ui/button.tsx | 28 + frontend/src/components/ui/command.tsx | 151 + frontend/src/components/ui/dialog.tsx | 122 + frontend/src/components/ui/dropdown-menu.tsx | 198 + frontend/src/components/ui/input.tsx | 22 + frontend/src/components/ui/popover.tsx | 29 + frontend/src/components/ui/progress.tsx | 26 + frontend/src/components/ui/separator.tsx | 29 + frontend/src/components/ui/switch.tsx | 27 + frontend/src/components/ui/table.tsx | 117 + frontend/src/components/ui/tabs.tsx | 53 + frontend/src/components/ui/variants.ts | 50 + frontend/src/i18n.ts | 13 + frontend/src/index.css | 68 + frontend/src/lib/hooks/appMessage.ts | 41 + frontend/src/lib/languageDetector.ts | 11 + frontend/src/lib/utils.ts | 6 + frontend/src/main.tsx | 24 + frontend/src/pages/ConfigList.tsx | 62 + frontend/src/stores/configFileStore.ts | 40 + frontend/src/types/commands.d.ts | 60 + frontend/src/types/config.d.ts | 39 + frontend/src/types/deviceElements.d.ts | 29 + frontend/src/types/global.d.ts | 19 + frontend/src/types/index.ts | 14 + frontend/src/types/log.d.ts | 7 + frontend/src/types/messages.d.ts | 46 + frontend/src/types/project.d.ts | 11 + frontend/src/types/settings.d.ts | 24 + frontend/src/vite-env.d.ts | 1 + frontend/tailwind.config.js | 92 + frontend/tests/ConfigListView.spec.ts | 163 + frontend/tests/StartupProgress.spec.ts | 16 + frontend/tests/data/configlist.testdata.json | 452 ++ frontend/tests/fixtures.ts | 25 + frontend/tests/fixtures/ConfigListPage.ts | 78 + frontend/tests/fixtures/MobiFlightPage.ts | 71 + frontend/tests/fixtures/StartupPage.ts | 22 + frontend/tsconfig.app.json | 33 + frontend/tsconfig.json | 14 + frontend/tsconfig.node.json | 24 + frontend/vite.config.ts | 24 + 268 files changed, 16745 insertions(+), 8655 deletions(-) create mode 100644 .github/workflows/playwright.yml create mode 100644 Base/ConfigFileFactory.cs create mode 100644 Base/ConfigFileWrapperXML.cs create mode 100644 Base/ConfigItem.cs create mode 100644 Base/ConfigItemStatus.cs rename Base/{ => Deprecated}/BaseConfigItem.cs (62%) create mode 100644 Base/Deprecated/DeprecatedConfigFile.cs create mode 100644 Base/IConfigFile.cs create mode 100644 Base/IDeviceConfig.cs create mode 100644 Base/LogAppender/MessageExchangeAppender.cs create mode 100644 Base/Project.cs create mode 100644 Base/Serialization/Json/ConfigItemConverter.cs create mode 100644 Base/Serialization/Json/DeviceConfigConverter.cs create mode 100644 Base/Serialization/Json/SourceConverter.cs create mode 100644 Base/Settings.cs create mode 100644 Base/Source.cs create mode 100644 MobiFlight/BrowserMessages/IMessageExchange.cs create mode 100644 MobiFlight/BrowserMessages/IMessagePublisher.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/CommandAddConfigItem.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/CommandConfigContexMenu.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/CommandResortConfigItem.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/CommandUpdateConfigItem.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverter.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverter.cs create mode 100644 MobiFlight/BrowserMessages/Incoming/Test.cs create mode 100644 MobiFlight/BrowserMessages/Message.cs create mode 100644 MobiFlight/BrowserMessages/MessageExchange.cs create mode 100644 MobiFlight/BrowserMessages/Outgoing/ConfigValueUpdate.cs create mode 100644 MobiFlight/BrowserMessages/Outgoing/LogEntry.cs create mode 100644 MobiFlight/BrowserMessages/Outgoing/Notification.cs create mode 100644 MobiFlight/BrowserMessages/Outgoing/StatusBarUpdate.cs create mode 100644 MobiFlight/BrowserMessages/Publisher/PostMessagePublisher.cs create mode 100644 MobiFlight/BrowserMessages/Publisher/WebsocketPublisher.cs rename MobiFlight/OutputConfig/{Pin.cs => Output.cs} (74%) create mode 100644 MobiFlight/ThreadSafeWebView2.cs create mode 100644 MobiFlightUnitTests/Base/ConfigFileFactoryTests.cs create mode 100644 MobiFlightUnitTests/Base/ConfigItemTests.cs create mode 100644 MobiFlightUnitTests/Base/Deprecated/DeprecatedConfigFileTests.cs create mode 100644 MobiFlightUnitTests/Base/ProjectTests.cs create mode 100644 MobiFlightUnitTests/Base/Serialization/Json/SourceConverterTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ConfigItemConverterTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverterTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverterTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageExchangeTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageTests.cs create mode 100644 MobiFlightUnitTests/MobiFlight/Modifier/BlinkTests.cs rename MobiFlightUnitTests/MobiFlight/OutputConfig/{PinTests.cs => OutputTests.cs} (88%) create mode 100644 MobiFlightUnitTests/MobiFlight/OutputConfig/ShiftRegisterTests.cs create mode 100644 MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenConfig.mfjson create mode 100644 MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenProjectTest.mfproj create mode 100644 MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc create mode 100644 MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc.exp create mode 100644 MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.NoSettingNode.xml create mode 100644 MobiFlightUnitTests/assets/MobiFlight/OutputConfig/OutputConfigItem/WriteXmlTest.2.xml create mode 100644 MobiFlightUnitTests/assets/MobiFlight/OutputConfig/ShiftRegister/ReadXmlTest.1.xml create mode 100644 MobiFlightUnitTests/assets/MobiFlight/OutputConfig/ShiftRegister/WriteXmlTest.1.xml create mode 100644 UI/Panels/FrontendPanel.Designer.cs create mode 100644 UI/Panels/FrontendPanel.cs rename UI/Panels/{Output/DisplayBcdPanel.resx => FrontendPanel.resx} (100%) delete mode 100644 UI/Panels/InputConfigPanel.Designer.cs delete mode 100644 UI/Panels/InputConfigPanel.cs delete mode 100644 UI/Panels/InputConfigPanel.de.resx delete mode 100644 UI/Panels/InputConfigPanel.resx delete mode 100644 UI/Panels/Output/DisplayBcdPanel.Designer.cs delete mode 100644 UI/Panels/Output/DisplayBcdPanel.cs delete mode 100644 UI/Panels/OutputConfigPanel.Designer.cs delete mode 100644 UI/Panels/OutputConfigPanel.cs delete mode 100644 UI/Panels/OutputConfigPanel.de.resx delete mode 100644 UI/Panels/OutputConfigPanel.resx delete mode 100644 UI/Panels/StartupPanel.Designer.cs delete mode 100644 UI/Panels/StartupPanel.cs delete mode 100644 UI/Panels/StartupPanel.resx create mode 100644 frontend/.devcontainer/devcontainer.json create mode 100644 frontend/.gitignore create mode 100644 frontend/.prettierrc create mode 100644 frontend/README.md create mode 100644 frontend/components.json delete mode 100644 frontend/dist/assets/background-nologo.jpg delete mode 100644 frontend/dist/assets/edit/elements/example_wiring_button.png delete mode 100644 frontend/dist/assets/hand-flipping-switch-BavH9Bvp.png delete mode 100644 frontend/dist/assets/index-D17jxULl.css delete mode 100644 frontend/dist/assets/index-IouAf6f-.js delete mode 100644 frontend/dist/assets/msfs2020-logo-BXS3GGap.png delete mode 100644 frontend/dist/locales/de/translation.json delete mode 100644 frontend/dist/locales/en/translation.json create mode 100644 frontend/eslint.config.js rename frontend/{dist => }/index.html (52%) create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/playwright.config.ts create mode 100644 frontend/postcss.config.js create mode 100644 frontend/public/locales/de/translation.json create mode 100644 frontend/public/locales/en/translation.json create mode 100644 frontend/public/locales/es/translation.json create mode 100644 frontend/public/vite.svg create mode 100644 frontend/src/App.css create mode 100644 frontend/src/App.tsx rename frontend/{dist/assets/mobiflight-logo-border-DSJoqCyo.png => src/assets/mobiflight-logo-border.png} (100%) create mode 100644 frontend/src/components/DarkModeToggle.tsx create mode 100644 frontend/src/components/StartupProgress.tsx create mode 100644 frontend/src/components/icons/DeviceIcon.tsx create mode 100644 frontend/src/components/icons/IconDeviceAnalog.tsx create mode 100644 frontend/src/components/icons/IconDeviceInputMultiplexer.tsx create mode 100644 frontend/src/components/icons/IconDeviceInputShifter.tsx create mode 100644 frontend/src/components/icons/IconDeviceOutputShifter.tsx create mode 100644 frontend/src/components/tables/config-item-table/DndTableRow.tsx create mode 100644 frontend/src/components/tables/config-item-table/config-item-table-columns.tsx create mode 100644 frontend/src/components/tables/config-item-table/config-item-table.tsx create mode 100644 frontend/src/components/tables/config-item-table/data-table-faceted-filter.tsx create mode 100644 frontend/src/components/tables/config-item-table/data-table-toolbar.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableActionsCell.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveCell.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveHeader.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableDeviceCell.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableNameCell.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/ConfigItemTableStatusCell.tsx create mode 100644 frontend/src/components/tables/config-item-table/items/index.ts create mode 100644 frontend/src/components/theme-provider.tsx create mode 100644 frontend/src/components/ui/badge.tsx create mode 100644 frontend/src/components/ui/button.tsx create mode 100644 frontend/src/components/ui/command.tsx create mode 100644 frontend/src/components/ui/dialog.tsx create mode 100644 frontend/src/components/ui/dropdown-menu.tsx create mode 100644 frontend/src/components/ui/input.tsx create mode 100644 frontend/src/components/ui/popover.tsx create mode 100644 frontend/src/components/ui/progress.tsx create mode 100644 frontend/src/components/ui/separator.tsx create mode 100644 frontend/src/components/ui/switch.tsx create mode 100644 frontend/src/components/ui/table.tsx create mode 100644 frontend/src/components/ui/tabs.tsx create mode 100644 frontend/src/components/ui/variants.ts create mode 100644 frontend/src/i18n.ts create mode 100644 frontend/src/index.css create mode 100644 frontend/src/lib/hooks/appMessage.ts create mode 100644 frontend/src/lib/languageDetector.ts create mode 100644 frontend/src/lib/utils.ts create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/pages/ConfigList.tsx create mode 100644 frontend/src/stores/configFileStore.ts create mode 100644 frontend/src/types/commands.d.ts create mode 100644 frontend/src/types/config.d.ts create mode 100644 frontend/src/types/deviceElements.d.ts create mode 100644 frontend/src/types/global.d.ts create mode 100644 frontend/src/types/index.ts create mode 100644 frontend/src/types/log.d.ts create mode 100644 frontend/src/types/messages.d.ts create mode 100644 frontend/src/types/project.d.ts create mode 100644 frontend/src/types/settings.d.ts create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/tailwind.config.js create mode 100644 frontend/tests/ConfigListView.spec.ts create mode 100644 frontend/tests/StartupProgress.spec.ts create mode 100644 frontend/tests/data/configlist.testdata.json create mode 100644 frontend/tests/fixtures.ts create mode 100644 frontend/tests/fixtures/ConfigListPage.ts create mode 100644 frontend/tests/fixtures/MobiFlightPage.ts create mode 100644 frontend/tests/fixtures/StartupPage.ts create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25cade6bf..10064e4cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: RunTests on: workflow_dispatch: pull_request: - branches: [main] + branches: [main, mf2025/main] env: # Path to the solution file relative to the root of the project. @@ -42,7 +42,11 @@ jobs: run: "type Properties/AssemblyInfo.cs" shell: pwsh - - name: Build + - name: Build frontend + working-directory: ${{env.GITHUB_WORKSPACE}} + run: cd frontend; npm install; npm run build + + - name: Build core working-directory: ${{env.GITHUB_WORKSPACE}} # Add additional options to the MSBuild command line here (like platform or verbosity level). # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 000000000..392caed8c --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,30 @@ +name: Playwright Tests +on: + pull_request: + branches: [ main, mf2025/main ] +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./frontend + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Install dependencies + run: npm ci + - name: Install Playwright Browsers + run: npx playwright install chromium --with-deps + - name: Run linter + run: npm run lint + - name: Run Playwright tests + run: npx playwright test + - uses: actions/upload-artifact@v4 + if: ${{ !cancelled() }} + with: + name: playwright-report + path: frontend/playwright-report/ + retention-days: 30 diff --git a/Base/AppTelemetry.cs b/Base/AppTelemetry.cs index f770c600a..72e964cd8 100644 --- a/Base/AppTelemetry.cs +++ b/Base/AppTelemetry.cs @@ -66,27 +66,35 @@ public void TrackStart() GetClient().TrackEvent(trackingEvent); } - public void ConfigLoaded(ConfigFile configFile) + public void ProjectLoaded(Project project) + { + EventTelemetry trackingEvent = new EventTelemetry("ProjectLoaded"); + trackingEvent.Metrics["ConfigFiles"] = project.ConfigFiles.Count; + GetClient().TrackEvent(trackingEvent); + project.ConfigFiles.ForEach(configFile => ConfigLoaded((IConfigFile)configFile)); + } + + public void ConfigLoaded(IConfigFile configFile) { // Track config loaded event EventTelemetry trackingEvent = new EventTelemetry("ConfigLoaded"); - List outputConfigs = configFile.GetOutputConfigItems(); - List inputConfigs = configFile.GetInputConfigItems(); + List outputConfigs = configFile.ConfigItems.Where(i => i is OutputConfigItem).Cast().ToList(); + List inputConfigs = configFile.ConfigItems.Where(i => i is InputConfigItem).Cast().ToList(); foreach (OutputConfigItem item in outputConfigs) { - String key = "output." + item.DisplayType; + String key = "output." + item.DeviceType; if (!trackingEvent.Metrics.ContainsKey(key)) trackingEvent.Metrics[key] = 0; trackingEvent.Metrics[key] += 1; - key = "output." + item.SourceType; + key = "output." + item.Source.SourceType; if (!trackingEvent.Metrics.ContainsKey(key)) trackingEvent.Metrics[key] = 0; trackingEvent.Metrics[key] += 1; } foreach (InputConfigItem item in inputConfigs) { - String key = "input." + item.Type; + String key = "input." + item.DeviceType; if (item.ModuleSerial.Contains(Joystick.SerialPrefix)) { key += ".joystick"; diff --git a/Base/ConfigFile.cs b/Base/ConfigFile.cs index 8d2f053f7..a9bfb09cb 100644 --- a/Base/ConfigFile.cs +++ b/Base/ConfigFile.cs @@ -1,177 +1,68 @@ -using System; +using Newtonsoft.Json; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml; -using System.Data; using System.IO; -using MobiFlight.InputConfig; +using System.Linq; -namespace MobiFlight +namespace MobiFlight.Base { - public class ConfigFile + public class ConfigFile : IConfigFile { - public String FileName { get; set; } - System.Xml.XmlDocument xmlConfig = new System.Xml.XmlDocument(); + public string FileName { get; set; } + public bool ReferenceOnly { get; set; } = false; + public bool EmbedContent { get; set; } = false; + public List ConfigItems { get; set; } = new List(); + + public ConfigFile() { } - public ConfigFile(String FileName) + public ConfigFile(string FileName) { this.FileName = FileName; } public void OpenFile() { - if (FileName == null) throw new Exception("File yet not set"); - xmlConfig.Load(FileName); - } - - public void SaveFile(DataSet outputConfig, DataSet inputConfig) - { - xmlConfig.RemoveAll(); - XmlDeclaration xmlDeclaration = xmlConfig.CreateXmlDeclaration("1.0", "UTF-8", "yes"); - xmlConfig.InsertBefore(xmlDeclaration, xmlConfig.DocumentElement); - - XmlElement root = xmlConfig.CreateElement("MobiflightConnector"); - // Create a new element and add it to the document. - StringWriter sw = new StringWriter(); - outputConfig.WriteXml(sw, XmlWriteMode.IgnoreSchema); - string s = sw.ToString(); - XmlDocument tmpDoc = new XmlDocument(); - tmpDoc.LoadXml(s); - - XmlElement outputs = xmlConfig.CreateElement("outputs"); - outputs.InnerXml = tmpDoc.DocumentElement.SelectSingleNode("/outputs").InnerXml; - - sw = new StringWriter(); - inputConfig.WriteXml(sw, XmlWriteMode.IgnoreSchema); - s = sw.ToString(); - tmpDoc = new XmlDocument(); - tmpDoc.LoadXml(s); - - XmlElement inputs = xmlConfig.CreateElement("inputs"); - inputs.InnerXml = tmpDoc.DocumentElement.SelectSingleNode("/inputs").InnerXml; - - root.AppendChild(outputs); - root.AppendChild(inputs); - xmlConfig.AppendChild(root); - xmlConfig.Save(FileName); - } - - private XmlReader getConfig(String xpath) - { - // first try the new way... if this fails try the old way - System.Xml.XmlNode outputConfig = xmlConfig.DocumentElement.SelectSingleNode(xpath); - if (outputConfig == null) throw new InvalidExpressionException(); - - System.IO.StringReader reader = new System.IO.StringReader(outputConfig.OuterXml); - System.Xml.XmlReader xReader = System.Xml.XmlReader.Create(reader); - return xReader; - } - - public List GetOutputConfigItems() - { - List result = new List(); - - XmlNodeList outputs = xmlConfig.DocumentElement.SelectNodes("outputs/config/settings"); - foreach(XmlNode item in outputs) + if (EmbedContent) { - OutputConfigItem config = new OutputConfigItem(); - System.IO.StringReader reader = new System.IO.StringReader(item.OuterXml); - System.Xml.XmlReader xReader = System.Xml.XmlReader.Create(reader); - config.ReadXml(xReader); - result.Add(config); + // Content is embedded, no need to load from file + return; } - return result; + var json = File.ReadAllText(FileName); + var configFile = JsonConvert.DeserializeObject(json); + FileName = configFile.FileName; + ReferenceOnly = configFile.ReferenceOnly; + EmbedContent = configFile.EmbedContent; + ConfigItems = configFile.ConfigItems; } - internal List GetInputConfigItems() + public void SaveFile() { - List result = new List(); - - XmlNodeList inputs = xmlConfig.DocumentElement.SelectNodes("inputs/config/settings"); - foreach (XmlNode item in inputs) + if (EmbedContent || ReferenceOnly) { - InputConfigItem config = new InputConfigItem(); - System.IO.StringReader reader = new System.IO.StringReader(item.OuterXml); - System.Xml.XmlReader xReader = System.Xml.XmlReader.Create(reader); - xReader.Read(); - config.ReadXml(xReader); - result.Add(config); + // Content is embedded or read-only, no need to save to file + return; } - return result; + var json = JsonConvert.SerializeObject(this, Formatting.Indented); + File.WriteAllText(FileName, json); } - public XmlReader getInputConfig() + public string ToJson() { - XmlReader result = null; - - try - { - if (xmlConfig.DocumentElement == null) OpenFile(); - - result = getConfig("/MobiflightConnector/inputs"); - } - catch (InvalidExpressionException e) - { - throw e; - } - catch (Exception e) - { - throw new ConfigErrorException("Error reading config", e); - } - return result; + return JsonConvert.SerializeObject(this, Formatting.Indented); } - public XmlReader getOutputConfig() + public override bool Equals(object obj) { - XmlReader result = null; - - bool fallback = false; - try - { - if (xmlConfig.DocumentElement == null) OpenFile(); - result = getConfig("/MobiflightConnector/outputs"); - } - catch (InvalidExpressionException e) - { - fallback = true; - } - catch (Exception e) - { - throw new ConfigErrorException("Error reading config", e); - } - - if (fallback) - { - fallback = false; - // fallback for old configs - try - { - result = getConfig("/MobiflightConnector"); - } - catch (Exception ex) - { - fallback = true; - } - } - - if (fallback) - { - fallback = false; - // fallback for old configs - try - { - result = getConfig("/ArcazeUsbConnector"); - } - catch (Exception ex) - { - throw new Exception("Error: Loading config"); - } - } - - return result; + if (obj == null || !(obj is ConfigFile)) return false; + var other = obj as ConfigFile; + + return + FileName.AreEqual(other.FileName) && + ReferenceOnly == other.ReferenceOnly && + EmbedContent == other.EmbedContent && + ConfigItems.SequenceEqual(other.ConfigItems) + ; } } -} +} \ No newline at end of file diff --git a/Base/ConfigFileFactory.cs b/Base/ConfigFileFactory.cs new file mode 100644 index 000000000..77b455ec1 --- /dev/null +++ b/Base/ConfigFileFactory.cs @@ -0,0 +1,36 @@ +using System.IO; + +namespace MobiFlight.Base +{ + public static class ConfigFileFactory + { + public static IConfigFile CreateConfigFile(string filePath) + { + if (IsJson(filePath)) + { + return new ConfigFile { FileName = filePath }; + } + else if (IsXml(filePath)) + { + return new DeprecatedConfigFile { FileName = filePath }; + } + else + { + throw new InvalidDataException("Unsupported file format."); + } + } + + private static bool IsJson(string filePath) + { + var firstChar = File.ReadAllText(filePath).TrimStart()[0]; + return firstChar == '{' || firstChar == '['; + } + + private static bool IsXml(string filePath) + { + var firstFewChars = File.ReadAllText(filePath).TrimStart().Substring(0, 5); + return firstFewChars.StartsWith(" outputConfigs; + + [XmlArray("inputs")] + [XmlArrayItem("config")] + public List inputConfigs; + } +} diff --git a/Base/ConfigItem.cs b/Base/ConfigItem.cs new file mode 100644 index 000000000..f5b95d1e3 --- /dev/null +++ b/Base/ConfigItem.cs @@ -0,0 +1,107 @@ +using MobiFlight.Base.Serialization.Json; +using MobiFlight.Modifier; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace MobiFlight.Base +{ + [JsonConverter(typeof(ConfigItemConverter))] + public interface IConfigItem + { + string GUID { get; set; } + bool Active { get; set; } + string Type { get; } + string Name { get; set; } + string ModuleSerial { get; set; } + PreconditionList Preconditions { get; set; } + ModifierList Modifiers { get; set; } + ConfigRefList ConfigRefs { get; set; } + string RawValue { get; set; } + string Value { get; set; } + IDeviceConfig Device { get; } + Dictionary Status { get; set; } + + object Clone(); + + IConfigItem Duplicate(); + } + + public abstract class ConfigItem : IConfigItem + { + public string GUID { get; set; } + public bool Active { get; set; } + public string Name { get; set; } + public string Type { get { return GetConfigItemType(); } } + public string ModuleSerial { get; set; } + public PreconditionList Preconditions { get; set; } = new PreconditionList(); + public ModifierList Modifiers { get; set; } = new ModifierList(); + public ConfigRefList ConfigRefs { get; set; } = new ConfigRefList(); + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string RawValue { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string Value { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public virtual IDeviceConfig Device { get { return GetDeviceConfig(); } set { new NotImplementedException(); } } + + public Dictionary Status { get; set; } = new Dictionary(); + + protected abstract IDeviceConfig GetDeviceConfig(); + + protected virtual string GetConfigItemType() + { + return this.GetType().Name; + } + + public abstract IConfigItem Duplicate(); + + protected ConfigItem() + { + GUID = System.Guid.NewGuid().ToString(); + Active = true; + Name = ""; + ModuleSerial = ""; + Preconditions = new PreconditionList(); + Modifiers = new ModifierList(); + ConfigRefs = new ConfigRefList(); + Status = new Dictionary(); + } + + protected ConfigItem(ConfigItem item) + { + GUID = item.GUID.Clone() as string; + Active = item.Active; + Name = item.Name.Clone() as string; + ModuleSerial = item.ModuleSerial.Clone() as string; + Preconditions = item.Preconditions.Clone() as PreconditionList; + Modifiers = item.Modifiers.Clone() as ModifierList; + ConfigRefs = item.ConfigRefs.Clone() as ConfigRefList; + RawValue = item.RawValue?.Clone() as string; + Value = item.Value?.Clone() as string; + Status = new Dictionary(item.Status); + } + + public virtual object Clone() + { + return Clone() as ConfigItem; + } + + public override bool Equals(object obj) + { + if (obj == null || !(obj is ConfigItem item)) return false; + + return GUID == item.GUID && + Active == item.Active && + Name == item.Name && + ModuleSerial == item.ModuleSerial && + Preconditions.Equals(item.Preconditions) && + Modifiers.Equals(item.Modifiers) && + ConfigRefs.Equals(item.ConfigRefs) && + RawValue == item.RawValue && + Value == item.Value && + Status.SequenceEqual(item.Status); + } + } +} diff --git a/Base/ConfigItemStatus.cs b/Base/ConfigItemStatus.cs new file mode 100644 index 000000000..02180ffeb --- /dev/null +++ b/Base/ConfigItemStatus.cs @@ -0,0 +1,12 @@ +namespace MobiFlight.Base +{ + public enum ConfigItemStatusType + { + Precondition, + Source, + Modifier, + Test, + Device, + ConfigRef + } +} \ No newline at end of file diff --git a/Base/ConfigRefList.cs b/Base/ConfigRefList.cs index 3020e8030..070cc00ac 100644 --- a/Base/ConfigRefList.cs +++ b/Base/ConfigRefList.cs @@ -1,13 +1,10 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace MobiFlight.Base { - public class ConfigRefList : ICloneable, IEnumerable + public class ConfigRefList : ICloneable, IEnumerable, ICollection { List list = new List(); @@ -55,5 +52,27 @@ obj is ConfigRefList && return areEqual; } + + public bool Contains(ConfigRef item) + { + return list.Contains(item); + } + + public void CopyTo(ConfigRef[] array, int arrayIndex) + { + list.CopyTo(array, arrayIndex); + } + + public bool Remove(ConfigRef item) + { + return list.Remove(item); + } + + public bool IsReadOnly => false; + + IEnumerator IEnumerable.GetEnumerator() + { + return list.GetEnumerator(); + } } } diff --git a/Base/ConnectorValue.cs b/Base/ConnectorValue.cs index 2f991eea7..2dcfa0768 100644 --- a/Base/ConnectorValue.cs +++ b/Base/ConnectorValue.cs @@ -47,8 +47,11 @@ public object Clone() return c; } - public bool Equals(ConnectorValue other) + public override bool Equals(object obj) { + if (obj == null || !(obj is ConnectorValue)) return false; + var other = obj as ConnectorValue; + return type == other.type && Float64 == other.Float64 && diff --git a/Base/BaseConfigItem.cs b/Base/Deprecated/BaseConfigItem.cs similarity index 62% rename from Base/BaseConfigItem.cs rename to Base/Deprecated/BaseConfigItem.cs index ede671a83..dba2168b1 100644 --- a/Base/BaseConfigItem.cs +++ b/Base/Deprecated/BaseConfigItem.cs @@ -1,13 +1,15 @@ -using MobiFlight.Base; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace MobiFlight -{ - public interface IBaseConfigItem - { - PreconditionList Preconditions { get; set; } - } -} +using MobiFlight.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MobiFlight +{ + public interface IBaseConfigItemDeprecated + { + string Name { get; set; } + string ComponentType { get; set; } + PreconditionList Preconditions { get; set; } + } +} diff --git a/Base/Deprecated/DeprecatedConfigFile.cs b/Base/Deprecated/DeprecatedConfigFile.cs new file mode 100644 index 000000000..1e37e6e33 --- /dev/null +++ b/Base/Deprecated/DeprecatedConfigFile.cs @@ -0,0 +1,220 @@ +using MobiFlight.Base; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using System.Xml.Serialization; + +namespace MobiFlight +{ + [XmlRoot("MobiFlightConnector")] + public class DeprecatedConfigFile : IConfigFile + { + [XmlElement("outputs")] + [JsonIgnore] + public List OutputConfigItems { get; set; } = new List(); + + [XmlElement("inputs")] + [JsonIgnore] + public List InputConfigItems { get; set; } = new List(); + + [XmlIgnore] + public String FileName { get; set; } + + // create read only property to get the output config items + [XmlIgnore] + public List ConfigItems + { + get { return GetConfigItems(); } + set { throw new NotImplementedException(); } + } + + System.Xml.XmlDocument xmlConfig = new System.Xml.XmlDocument(); + + public DeprecatedConfigFile() { } + + public DeprecatedConfigFile(String FileName) + { + this.FileName = FileName; + } + public void OpenFile() + { + if (FileName == null) throw new Exception("File yet not set"); + + xmlConfig.Load(FileName); + OutputConfigItems = GetOutputConfigItems(); + InputConfigItems = GetInputConfigItems(); + } + public List GetConfigItems() + { + var result = new List(); + OutputConfigItems.ForEach(item => result.Add(item)); + InputConfigItems.ForEach(item => result.Add(item)); + + return result; + } + + protected List GetOutputConfigItems() + { + List result = new List(); + + XmlNodeList outputs = xmlConfig.DocumentElement.SelectNodes("outputs/config"); + foreach (XmlNode item in outputs) + { + OutputConfigItem config = new OutputConfigItem(); + config.GUID = item.Attributes["guid"].Value; + config.Active = item.SelectSingleNode("active").InnerText == "true"; + config.Name = item.SelectSingleNode("description").InnerText; + try + { + if (item.SelectSingleNode("settings") == null) + { + throw new Exception("Expected settings not available for XML node."); + } + + System.IO.StringReader reader = new System.IO.StringReader(item.SelectSingleNode("settings").OuterXml); + System.Xml.XmlReader xReader = System.Xml.XmlReader.Create(reader); + config.ReadXml(xReader); + } + catch (Exception e) + { + Log.Instance.log($"Error on reading XML config item {config.Name} / ({config.GUID}): {e.Message}", LogSeverity.Error); + } + finally + { + result.Add(config); + } + } + + return result; + } + + protected List GetInputConfigItems() + { + List result = new List(); + + XmlNodeList inputs = xmlConfig.DocumentElement.SelectNodes("inputs/config"); + foreach (XmlNode item in inputs) + { + InputConfigItem config = new InputConfigItem(); + config.GUID = item.Attributes["guid"].Value; + config.Active = item.SelectSingleNode("active").InnerText == "true"; + config.Name = item.SelectSingleNode("description").InnerText; + + try + { + if (item.SelectSingleNode("settings") == null) + { + throw new Exception("Expected settings not available for XML node."); + } + System.IO.StringReader reader = new System.IO.StringReader(item.SelectSingleNode("settings").OuterXml); + System.Xml.XmlReader xReader = System.Xml.XmlReader.Create(reader); + xReader.Read(); + config.ReadXml(xReader); + } + catch (Exception e) + { + Log.Instance.log($"Error on reading XML config item {config.Name} / ({config.GUID}): {e.Message}", LogSeverity.Error); + } + finally + { + result.Add(config); + } + } + + return result; + } + + public void SaveFile() + { + SaveFile(OutputConfigItems, InputConfigItems); + } + + private void SaveFile(List outputConfigItems, List inputConfigItems) + { + XmlSerializer serializer = new XmlSerializer(typeof(ConfigFileWrapperXML)); + XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces(); + namespaces.Add("", ""); + //namespaces.Add("xsd", "https://www.w3.org/2001/XMLSchema"); + + var XmlConfig = new ConfigFileWrapperXML(); + XmlConfig.outputConfigs = new List(); + outputConfigItems.ForEach(item => XmlConfig.outputConfigs.Add(new OutputConfigFileXmlElement() { guid = item.GUID, active = item.Active, description = item.Name, settings = item })); + XmlConfig.inputConfigs = new List(); + inputConfigItems.ForEach(item => XmlConfig.inputConfigs.Add(new InputConfigFileXmlElement() { guid = item.GUID, active = item.Active, description = item.Name, settings = item })); + + using (StreamWriter writer = new StreamWriter(FileName)) + { + serializer.Serialize(writer, XmlConfig, namespaces); + } + } + + public bool ReferenceOnly => false; + + public bool EmbedContent => false; + + // + // due to the new settings-node there must be some routine to load + // data from legacy config files + // + //private void _applyBackwardCompatibilityLoading() + //{ + // foreach (DataRow row in outputConfigPanel.ConfigDataTable.Rows) + // { + // if (row["settings"].GetType() == typeof(System.DBNull)) + // { + // OutputConfigItem cfgItem = new OutputConfigItem(); + + // if (row["fsuipcOffset"].GetType() != typeof(System.DBNull)) + // cfgItem.FSUIPC.Offset = Int32.Parse(row["fsuipcOffset"].ToString().Replace("0x", ""), System.Globalization.NumberStyles.HexNumber); + + // if (row["fsuipcSize"].GetType() != typeof(System.DBNull)) + // cfgItem.FSUIPC.Size = Byte.Parse(row["fsuipcSize"].ToString()); + + // if (row["mask"].GetType() != typeof(System.DBNull)) + // cfgItem.FSUIPC.Mask = (row["mask"].ToString() != "") ? Int32.Parse(row["mask"].ToString()) : Int32.MaxValue; + + // comparison + // if (row["comparison"].GetType() != typeof(System.DBNull)) + // { + // cfgItem.Modifiers.Comparison.Active = true; + // cfgItem.Modifiers.Comparison.Operand = row["comparison"].ToString(); + // } + + // if (row["comparisonValue"].GetType() != typeof(System.DBNull)) + // { + // cfgItem.Modifiers.Comparison.Value = row["comparisonValue"].ToString(); + // } + + // if (row["converter"].GetType() != typeof(System.DBNull)) + // { + // if (row["converter"].ToString() == "Boolean") + // { + // cfgItem.Modifiers.Comparison.IfValue = "1"; + // cfgItem.Modifiers.Comparison.ElseValue = "0"; + // } + // } + + // if (row["trigger"].GetType() != typeof(System.DBNull)) + // { + // cfgItem.DisplayTrigger = row["trigger"].ToString(); + // } + + // if (row["usbArcazePin"].GetType() != typeof(System.DBNull)) + // { + // cfgItem.DisplayType = MobiFlightOutput.TYPE; + // cfgItem.Pin.DisplayPin = row["usbArcazePin"].ToString(); + // } + + // if (row["arcazeSerial"].GetType() != typeof(System.DBNull)) + // { + // cfgItem.DisplaySerial = row["arcazeSerial"].ToString(); + // } + + // row["settings"] = cfgItem; + // } + // } + //} + } +} \ No newline at end of file diff --git a/Base/Extensions.cs b/Base/Extensions.cs index d3555ccb2..171075324 100644 --- a/Base/Extensions.cs +++ b/Base/Extensions.cs @@ -1,9 +1,5 @@ using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace MobiFlight.Base { @@ -82,5 +78,10 @@ public static int GenerateSimpleHash(this string s) } return (int)(Math.Abs(sum) % int.MaxValue); } + + public static bool AreEqual(this T a, T b) where T : class + { + return (a == null && b == null) || (a != null && a.Equals(b)); + } } } diff --git a/Base/IConfigFile.cs b/Base/IConfigFile.cs new file mode 100644 index 000000000..510b150f8 --- /dev/null +++ b/Base/IConfigFile.cs @@ -0,0 +1,16 @@ +using MobiFlight.Base; +using System.Collections.Generic; + +namespace MobiFlight +{ + public interface IConfigFile + { + List ConfigItems { get; set; } + string FileName { get; set; } + bool ReferenceOnly { get; } + bool EmbedContent { get; } + + void OpenFile(); + void SaveFile(); + } +} \ No newline at end of file diff --git a/Base/IDeviceConfig.cs b/Base/IDeviceConfig.cs new file mode 100644 index 000000000..827e6d849 --- /dev/null +++ b/Base/IDeviceConfig.cs @@ -0,0 +1,22 @@ +using MobiFlight.Base.Serialization.Json; +using Newtonsoft.Json; + +namespace MobiFlight.Base +{ + [JsonConverter(typeof(DeviceConfigConverter))] + public interface IDeviceConfig + { + string Type { get; } + string Name { get; } + + object Clone(); + } + + public abstract class DeviceConfig : IDeviceConfig + { + public virtual string Type { get { return GetType().Name.ToString(); } } + public virtual string Name { get; set; } + + abstract public object Clone(); + } +} diff --git a/Base/IFsuipcConfigItem.cs b/Base/IFsuipcConfigItem.cs index 1155c085b..541f1da82 100644 --- a/Base/IFsuipcConfigItem.cs +++ b/Base/IFsuipcConfigItem.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using MobiFlight; -using MobiFlight.Modifier; +using MobiFlight.Modifier; using MobiFlight.OutputConfig; namespace MobiFlight diff --git a/Base/LogAppender/MessageExchangeAppender.cs b/Base/LogAppender/MessageExchangeAppender.cs new file mode 100644 index 000000000..4d5ee63ff --- /dev/null +++ b/Base/LogAppender/MessageExchangeAppender.cs @@ -0,0 +1,19 @@ +using MobiFlight.BrowserMessages.Outgoing; +using System; + +namespace MobiFlight.Base.LogAppender +{ + public class MessageExchangeAppender : ILogAppender + { public void log(string message, LogSeverity severity) + { + var m = new LogEntry + { + Timestamp = DateTime.Now, + Message = message, + Severity = severity.ToString() + }; + + BrowserMessages.MessageExchange.Instance.Publish(m); + } + } +} diff --git a/Base/Precondition.cs b/Base/Precondition.cs index 6d735dd69..2c42a7d19 100644 --- a/Base/Precondition.cs +++ b/Base/Precondition.cs @@ -16,6 +16,7 @@ public class Precondition : IXmlSerializable, ICloneable public const string LOGIC_OR = "or"; private string preconditionLabel = null; + public string PreconditionLabel { get { if (preconditionLabel != null) return preconditionLabel; @@ -154,7 +155,7 @@ public override bool Equals(object obj) PreconditionOperand == (obj as Precondition).PreconditionOperand && PreconditionValue == (obj as Precondition).PreconditionValue && PreconditionLogic == (obj as Precondition).PreconditionLogic && - preconditionLabel == (obj as Precondition).preconditionLabel + PreconditionLabel == (obj as Precondition).PreconditionLabel ; } diff --git a/Base/PreconditionList.cs b/Base/PreconditionList.cs index cbfd9f767..fced328c9 100644 --- a/Base/PreconditionList.cs +++ b/Base/PreconditionList.cs @@ -1,20 +1,25 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace MobiFlight.Base { - public class PreconditionList : IXmlSerializable, ICloneable, IEnumerable + public class PreconditionList : IXmlSerializable, ICloneable, IEnumerable, ICollection { - List Preconditions = new List(); + protected List Preconditions = new List(); + + [JsonIgnore] public int Count { get { return Preconditions.Count; } } - public bool ExecuteOnFalse = false; - public String FalseCaseValue = ""; + + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + public bool ExecuteOnFalse { get; set; } = false; + + [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + public string FalseCaseValue { get; set; } = ""; public object Clone() { @@ -28,20 +33,33 @@ public object Clone() return c; } + /// + /// This is needed to implement IEnumerable interface + /// + /// IEnumerator for our Preconditions + public IEnumerator GetEnumerator() { return ((IEnumerable)Preconditions).GetEnumerator(); } + /// + /// This is needed to implement ICollection interface + /// + /// An enumerator for preconditions + IEnumerator IEnumerable.GetEnumerator() + { + return Preconditions.GetEnumerator(); + } public void Add(Precondition p) { Preconditions.Add(p); } - public void Remove (Precondition p) + public bool Remove(Precondition p) { - Preconditions.Remove(p); + return Preconditions.Remove(p); } public void Clear() { @@ -109,5 +127,19 @@ obj is PreconditionList && return areEqual; } + + public bool Contains(Precondition item) + { + return Preconditions.Contains(item); + } + + public void CopyTo(Precondition[] array, int arrayIndex) + { + Preconditions.CopyTo(array, arrayIndex); + } + + public bool IsReadOnly => false; + + } } diff --git a/Base/Project.cs b/Base/Project.cs new file mode 100644 index 000000000..82e43a65c --- /dev/null +++ b/Base/Project.cs @@ -0,0 +1,106 @@ +using Newtonsoft.Json; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace MobiFlight.Base +{ + public class Project + { + public string Name { get; set; } + [JsonIgnore] + public string FilePath { get; set; } + + public List ConfigFiles { get; set; } = new List(); + + public void OpenFile() + { + if (IsJson(FilePath)) + { + var json = File.ReadAllText(FilePath); + var project = JsonConvert.DeserializeObject(json); + Name = project.Name; + ConfigFiles = project.ConfigFiles; + + foreach (var configFile in ConfigFiles) + { + if (!configFile.EmbedContent) + { + configFile.OpenFile(); + } + } + } + else if (IsXml(FilePath)) + { + // Create a dummy project for old XML files + var deprecatedConfigFile = ConfigFileFactory.CreateConfigFile(FilePath); + deprecatedConfigFile.OpenFile(); + + var configFile = new ConfigFile { + FileName = Path.GetFileName(FilePath), + EmbedContent = true, + ReferenceOnly = false, + ConfigItems = deprecatedConfigFile.ConfigItems + }; + + Name = "MobiFlight Project"; + FilePath = FilePath; + ConfigFiles.Add(configFile); + } + else + { + throw new InvalidDataException("Unsupported file format."); + } + } + + public void SaveFile() + { + foreach (var configFile in ConfigFiles) + { + if (!configFile.EmbedContent && !configFile.ReferenceOnly) + { + configFile.SaveFile(); + } + } + + var json = JsonConvert.SerializeObject(this, Formatting.Indented); + File.WriteAllText(FilePath, json); + } + + private static bool IsJson(string filePath) + { + var firstChar = File.ReadAllText(filePath).TrimStart()[0]; + return firstChar == '{' || firstChar == '['; + } + + private static bool IsXml(string filePath) + { + var firstFewChars = File.ReadAllText(filePath).TrimStart().Substring(0, 5); + return firstFewChars.StartsWith(" false; + } +} diff --git a/Base/Serialization/Json/DeviceConfigConverter.cs b/Base/Serialization/Json/DeviceConfigConverter.cs new file mode 100644 index 000000000..45583f697 --- /dev/null +++ b/Base/Serialization/Json/DeviceConfigConverter.cs @@ -0,0 +1,38 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; + +namespace MobiFlight.Base.Serialization.Json +{ + public class DeviceConfigConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return typeof(IConfigItem).IsAssignableFrom(objectType); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var jsonObject = JObject.Load(reader); + var typeName = $"MobiFlight.OutputConfig.{(string)jsonObject["Type"]}"; + + var type = Type.GetType(typeName); + if (type == null) + { + throw new NotSupportedException($"Unknown type: {typeName}"); + } + + var configItem = Activator.CreateInstance(type) as IDeviceConfig; + serializer.Populate(jsonObject.CreateReader(), configItem); + return configItem; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + // Use default serialization + throw new NotImplementedException(); + } + + public override bool CanWrite => false; + } +} diff --git a/Base/Serialization/Json/SourceConverter.cs b/Base/Serialization/Json/SourceConverter.cs new file mode 100644 index 000000000..07e52ccf2 --- /dev/null +++ b/Base/Serialization/Json/SourceConverter.cs @@ -0,0 +1,38 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; + +namespace MobiFlight.Base.Serialization.Json +{ + public class SourceConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return typeof(Source).IsAssignableFrom(objectType); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var jsonObject = JObject.Load(reader); + var typeName = $"MobiFlight.Base.{(string)jsonObject["Type"]}"; + + var type = Type.GetType(typeName); + if (type == null) + { + throw new NotSupportedException($"Unknown type: {typeName}"); + } + + var source = Activator.CreateInstance(type) as Source; + serializer.Populate(jsonObject.CreateReader(), source); + return source; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + // Use default serialization + throw new NotImplementedException(); + } + + public override bool CanWrite => false; + } +} diff --git a/Base/Settings.cs b/Base/Settings.cs new file mode 100644 index 000000000..0a89aadd6 --- /dev/null +++ b/Base/Settings.cs @@ -0,0 +1,87 @@ +using System.Linq; + +namespace MobiFlight.Base +{ + public class Settings + { + public bool ArcazeSupportEnabled { get; set; } + public bool AutoRetrigger { get; set; } + public bool AutoRun { get; set; } + public bool AutoLoadLinkedConfig { get; set; } + public bool BetaUpdates { get; set; } + public bool CommunityFeedback { get; set; } + public bool EnableJoystickSupport { get; set; } + public bool EnableMidiSupport { get; set; } + public string ExcludedJoysticks { get; set; } + public string ExcludedMidiBoards { get; set; } + public bool FwAutoUpdateCheck { get; set; } + public bool HubHopAutoCheck { get; set; } + public string IgnoredComPortsList { get; set; } + public string Language { get; set; } + public bool LogEnabled { get; set; } + public bool LogJoystickAxis { get; set; } + public string LogLevel { get; set; } + public bool MinimizeOnAutoRun { get; set; } + public string ModuleSettings { get; set; } + public string[] RecentFiles { get; set; } + public int RecentFilesMaxCount { get; set; } + public int TestTimerInterval { get; set; } + + internal Settings() + { + } + + internal Settings(Properties.Settings settings) + { + ArcazeSupportEnabled = settings.ArcazeSupportEnabled; + AutoRetrigger = settings.AutoRetrigger; + AutoRun = settings.AutoRun; + AutoLoadLinkedConfig = settings.AutoLoadLinkedConfig; + BetaUpdates = settings.BetaUpdates; + CommunityFeedback = settings.CommunityFeedback; + EnableJoystickSupport = settings.EnableJoystickSupport; + EnableMidiSupport = settings.EnableMidiSupport; + ExcludedJoysticks = settings.ExcludedJoysticks; + ExcludedMidiBoards = settings.ExcludedMidiBoards; + FwAutoUpdateCheck = settings.FwAutoUpdateCheck; + HubHopAutoCheck = settings.HubHopAutoCheck; + IgnoredComPortsList = settings.IgnoredComPortsList; + Language = settings.Language; + LogEnabled = settings.LogEnabled; + LogJoystickAxis = settings.LogJoystickAxis; + LogLevel = settings.LogLevel; + MinimizeOnAutoRun = settings.MinimizeOnAutoRun; + ModuleSettings = settings.ModuleSettings; + // Skip: OfflineMode = settings.OfflineMode; + // Skip: PollInterval = settings.PollInterval; + RecentFiles = settings.RecentFiles.Cast().ToArray(); + RecentFilesMaxCount = settings.RecentFilesMaxCount; + TestTimerInterval = settings.TestTimerInterval; + // Properties.Settings.Default.AutoRetrigger = true; + // Properties.Settings.Default.AutoRun = true; + // Properties.Settings.Default.AutoLoadLinkedConfig = true; + // Properties.Settings.Default.BetaUpdates = true; + // Properties.Settings.Default.CommunityFeedback = true; + // Properties.Settings.Default.EnableJoystickSupport = true; + // Properties.Settings.Default.EnableMidiSupport = true; + // Properties.Settings.Default.ExcludedJoysticks + // Properties.Settings.Default.ExcludedMidiBoards + // Properties.Settings.Default.FwAutoUpdateCheck = true; + // Properties.Settings.Default.HubHopAutoCheck = true; + // Properties.Settings.Default.IgnoredComPortsList + // Properties.Settings.Default.Language = "en"; + // Properties.Settings.Default.LogEnabled = true; + // Properties.Settings.Default.LogJoystickAxis = false; + // Properties.Settings.Default.LogLevel = "Debug"; + // Properties.Settings.Default.MinimizeOnAutoRun = true; + // Properties.Settings.Default.ModuleSettings = true; + // Skip: Properties.Settings.Default.OfflineMode = false; + // Skip: Properties.Settings.Default.PollInterval = 100; + // Properties.Settings.Default.RecentFiles = new System.Collections.Specialized.StringCollection(); + // Properties.Settings.Default.RecentFilesMaxCount = 10; + // Skip: Properties.Settings.Default.TestTimerInterval = 1000; + } + + + } +} diff --git a/Base/Source.cs b/Base/Source.cs new file mode 100644 index 000000000..55e3b4446 --- /dev/null +++ b/Base/Source.cs @@ -0,0 +1,96 @@ +using MobiFlight.Base.Serialization.Json; +using MobiFlight.OutputConfig; +using MobiFlight.xplane; +using Newtonsoft.Json; + +namespace MobiFlight.Base +{ + [JsonConverter(typeof(SourceConverter))] + public abstract class Source + { + public string Type { get { return GetType().Name; } } + + [JsonIgnore] + public abstract string SourceType { get; } + public abstract object Clone(); + + public abstract override bool Equals(object obj); + } + + public class FsuipcSource : Source + { + public override string SourceType => "FSUIPC"; + public FsuipcOffset FSUIPC { get; set; } = new FsuipcOffset(); + + public override object Clone() + { + return new FsuipcSource + { + FSUIPC = (FsuipcOffset)FSUIPC.Clone() + }; + } + + public override bool Equals(object obj) + { + return (obj != null) && (obj is FsuipcSource) && + this.FSUIPC.Equals((obj as FsuipcSource).FSUIPC); + } + } + + public class SimConnectSource : Source + { + public override string SourceType => "SIMCONNECT"; + public SimConnectValue SimConnectValue { get; set; } = new SimConnectValue(); + + public override object Clone() + { + return new SimConnectSource + { + SimConnectValue = (SimConnectValue)SimConnectValue.Clone() + }; + } + public override bool Equals(object obj) { + return (obj != null) && (obj is SimConnectSource) && + this.SimConnectValue.Equals((obj as SimConnectSource).SimConnectValue); + } + } + + public class VariableSource : Source + { + public override string SourceType => "VARIABLE"; + public MobiFlightVariable MobiFlightVariable { get; set; } = new MobiFlightVariable(); + + public override object Clone() + { + return new VariableSource + { + MobiFlightVariable = (MobiFlightVariable)MobiFlightVariable.Clone() + }; + } + + public override bool Equals(object obj) + { + return (obj != null) && (obj is VariableSource) && + this.MobiFlightVariable.Equals((obj as VariableSource).MobiFlightVariable); + } + } + + public class XplaneSource : Source + { + public override string SourceType => "XPLANE"; + public XplaneDataRef XplaneDataRef { get; set; } = new XplaneDataRef(); + + public override object Clone() + { + return new XplaneSource + { + XplaneDataRef = (XplaneDataRef)XplaneDataRef.Clone() + }; + } + public override bool Equals(object obj) + { + return (obj != null) && (obj is XplaneSource) && + this.XplaneDataRef.Equals((obj as XplaneSource).XplaneDataRef); + } + } +} diff --git a/FSUIPC/FsuipcHelper.cs b/FSUIPC/FsuipcHelper.cs index 22a537713..548dc4ba7 100644 --- a/FSUIPC/FsuipcHelper.cs +++ b/FSUIPC/FsuipcHelper.cs @@ -3,42 +3,44 @@ using System.Linq; using System.Text; using MobiFlight; +using MobiFlight.Base; +using MobiFlight.OutputConfig; namespace MobiFlight.FSUIPC { public static class FsuipcHelper { - public static ConnectorValue executeRead(IFsuipcConfigItem cfg, FSUIPCCacheInterface fsuipcCache) + public static ConnectorValue executeRead(FsuipcOffset offset, FSUIPCCacheInterface fsuipcCache) { ConnectorValue result = new ConnectorValue(); - if (cfg.FSUIPC.OffsetType == FSUIPCOffsetType.String) + if (offset.OffsetType == FSUIPCOffsetType.String) { result.type = FSUIPCOffsetType.String; - result.String = fsuipcCache.getStringValue(cfg.FSUIPC.Offset, cfg.FSUIPC.Size); + result.String = fsuipcCache.getStringValue(offset.Offset, offset.Size); } - else if (cfg.FSUIPC.OffsetType == FSUIPCOffsetType.Integer) + else if (offset.OffsetType == FSUIPCOffsetType.Integer) { - result = _executeReadInt(cfg, fsuipcCache); + result = _executeReadInt(offset, fsuipcCache); } - else if (cfg.FSUIPC.OffsetType == FSUIPCOffsetType.Float) + else if (offset.OffsetType == FSUIPCOffsetType.Float) { - result = _executeReadFloat(cfg, fsuipcCache); + result = _executeReadFloat(offset, fsuipcCache); } return result; } - private static ConnectorValue _executeReadInt(IFsuipcConfigItem cfg, FSUIPCCacheInterface fsuipcCache) + private static ConnectorValue _executeReadInt(FsuipcOffset offset, FSUIPCCacheInterface fsuipcCache) { ConnectorValue result = new ConnectorValue(); - switch (cfg.FSUIPC.Size) + switch (offset.Size) { case 1: - Byte value8 = (Byte)(cfg.FSUIPC.Mask & fsuipcCache.getValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + Byte value8 = (Byte)(offset.Mask & fsuipcCache.getValue( + offset.Offset, + offset.Size )); - if (cfg.FSUIPC.BcdMode) + if (offset.BcdMode) { FsuipcBCD val = new FsuipcBCD() { Value = value8 }; value8 = (Byte)val.asBCD; @@ -48,11 +50,11 @@ private static ConnectorValue _executeReadInt(IFsuipcConfigItem cfg, FSUIPCCache result.Float64 = value8; break; case 2: - Int16 value16 = (Int16)(cfg.FSUIPC.Mask & fsuipcCache.getValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + Int16 value16 = (Int16)(offset.Mask & fsuipcCache.getValue( + offset.Offset, + offset.Size )); - if (cfg.FSUIPC.BcdMode) + if (offset.BcdMode) { FsuipcBCD val = new FsuipcBCD() { Value = value16 }; value16 = (Int16)val.asBCD; @@ -62,9 +64,9 @@ private static ConnectorValue _executeReadInt(IFsuipcConfigItem cfg, FSUIPCCache result.Float64 = value16; break; case 4: - Int64 value32 = ((int)cfg.FSUIPC.Mask & fsuipcCache.getValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + Int64 value32 = ((int)offset.Mask & fsuipcCache.getValue( + offset.Offset, + offset.Size )); // no bcd support anymore for 4 byte @@ -74,8 +76,8 @@ private static ConnectorValue _executeReadInt(IFsuipcConfigItem cfg, FSUIPCCache break; case 8: Double value64 = (Double)fsuipcCache.getDoubleValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + offset.Offset, + offset.Size ); result.type = FSUIPCOffsetType.Float; @@ -86,16 +88,16 @@ private static ConnectorValue _executeReadInt(IFsuipcConfigItem cfg, FSUIPCCache return result; } - private static ConnectorValue _executeReadFloat(IFsuipcConfigItem cfg, FSUIPCCacheInterface fsuipcCache) + private static ConnectorValue _executeReadFloat(FsuipcOffset offset, FSUIPCCacheInterface fsuipcCache) { ConnectorValue result = new ConnectorValue(); result.type = FSUIPCOffsetType.Float; - switch (cfg.FSUIPC.Size) + switch (offset.Size) { case 4: Double value32 = fsuipcCache.getFloatValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + offset.Offset, + offset.Size ); result.Float64 = value32; @@ -103,8 +105,8 @@ private static ConnectorValue _executeReadFloat(IFsuipcConfigItem cfg, FSUIPCCac case 8: Double value64 = fsuipcCache.getDoubleValue( - cfg.FSUIPC.Offset, - cfg.FSUIPC.Size + offset.Offset, + offset.Size ); result.Float64 = value64; diff --git a/MobiFlight/BrowserMessages/IMessageExchange.cs b/MobiFlight/BrowserMessages/IMessageExchange.cs new file mode 100644 index 000000000..5ffb4f1fe --- /dev/null +++ b/MobiFlight/BrowserMessages/IMessageExchange.cs @@ -0,0 +1,10 @@ +using System; + +namespace MobiFlight.BrowserMessages +{ + public interface IMessageExchange + { + void Publish(TPayload message); + void Subscribe(Action action); + } +} diff --git a/MobiFlight/BrowserMessages/IMessagePublisher.cs b/MobiFlight/BrowserMessages/IMessagePublisher.cs new file mode 100644 index 000000000..b776625de --- /dev/null +++ b/MobiFlight/BrowserMessages/IMessagePublisher.cs @@ -0,0 +1,10 @@ +using System; + +namespace MobiFlight.BrowserMessages +{ + public interface IMessagePublisher + { + void Publish(TEvent eventToPublish); + void OnMessageReceived(Action callback); + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/CommandAddConfigItem.cs b/MobiFlight/BrowserMessages/Incoming/CommandAddConfigItem.cs new file mode 100644 index 000000000..21a6d846c --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/CommandAddConfigItem.cs @@ -0,0 +1,11 @@ +using Newtonsoft.Json; + +namespace MobiFlight.BrowserMessages.Incoming +{ + internal class CommandAddConfigItem + { + [JsonProperty("type")] // Matches the lowercase "item" in JSON + public string Type { get; set; } + public string Name { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/CommandConfigContexMenu.cs b/MobiFlight/BrowserMessages/Incoming/CommandConfigContexMenu.cs new file mode 100644 index 000000000..a4248f8f0 --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/CommandConfigContexMenu.cs @@ -0,0 +1,13 @@ +using MobiFlight.Base; +using Newtonsoft.Json; + +namespace MobiFlight.BrowserMessages.Incoming +{ + internal class CommandConfigContextMenu + { + [JsonProperty("action")] + public string Action { get; set; } + [JsonProperty("item")] // Matches the lowercase "item" in JSON + public ConfigItem Item { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/CommandResortConfigItem.cs b/MobiFlight/BrowserMessages/Incoming/CommandResortConfigItem.cs new file mode 100644 index 000000000..6ca722307 --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/CommandResortConfigItem.cs @@ -0,0 +1,10 @@ +using MobiFlight.Base; + +namespace MobiFlight.BrowserMessages.Incoming +{ + internal class CommandResortConfigItem + { + public ConfigItem[] Items { get; set; } + public int NewIndex { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/CommandUpdateConfigItem.cs b/MobiFlight/BrowserMessages/Incoming/CommandUpdateConfigItem.cs new file mode 100644 index 000000000..33f55e057 --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/CommandUpdateConfigItem.cs @@ -0,0 +1,11 @@ +using MobiFlight.Base; +using Newtonsoft.Json; + +namespace MobiFlight.BrowserMessages.Incoming +{ + internal class CommandUpdateConfigItem + { + [JsonProperty("item")] // Matches the lowercase "item" in JSON + public ConfigItem Item { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverter.cs b/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverter.cs new file mode 100644 index 000000000..e10dd656c --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverter.cs @@ -0,0 +1,58 @@ +using MobiFlight.InputConfig; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; + +namespace MobiFlight.BrowserMessages.Incoming.Converter +{ + public class InputActionConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return typeof(InputAction).IsAssignableFrom(objectType); + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + var type = value.GetType(); + writer.WriteStartObject(); + writer.WritePropertyName("Type"); + writer.WriteValue(type.Name); // Write the type discriminator + foreach (var property in type.GetProperties()) + { + if (property.CanRead) + { + var propertyValue = property.GetValue(value); + if (propertyValue == null && serializer.NullValueHandling == NullValueHandling.Ignore) + { + continue; // Skip null values if NullValueHandling is set to Ignore + } + writer.WritePropertyName(property.Name); + serializer.Serialize(writer, property.GetValue(value)); + } + } + writer.WriteEndObject(); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + if (reader.TokenType == JsonToken.Null) + { + return null; + } + + var jsonObject = JObject.Load(reader); + var typeName = $"MobiFlight.InputConfig.{jsonObject["Type"]?.ToString()}"; + + var type = Type.GetType(typeName); + if (type == null) + { + throw new JsonSerializationException($"Unknown type: {typeName}"); + } + + var action = Activator.CreateInstance(type) as InputAction; + serializer.Populate(jsonObject.CreateReader(), action); + return action; + } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverter.cs b/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverter.cs new file mode 100644 index 000000000..a5cf6ad6a --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverter.cs @@ -0,0 +1,43 @@ +using MobiFlight.Modifier; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; + +namespace MobiFlight.BrowserMessages.Incoming.Converter +{ + public class ModifierBaseConverter : JsonConverter + { + public override void WriteJson(JsonWriter writer, ModifierBase value, JsonSerializer serializer) + { + var type = value.GetType(); + writer.WriteStartObject(); + writer.WritePropertyName("Type"); + writer.WriteValue(type.Name); // Write the type discriminator + foreach (var property in type.GetProperties()) + { + if (property.CanRead) + { + writer.WritePropertyName(property.Name); + serializer.Serialize(writer, property.GetValue(value)); + } + } + writer.WriteEndObject(); + } + + public override ModifierBase ReadJson(JsonReader reader, Type objectType, ModifierBase existingValue, bool hasExistingValue, JsonSerializer serializer) + { + var jsonObject = JObject.Load(reader); + var typeName = $"MobiFlight.Modifier.{jsonObject["Type"]?.ToString()}"; + + var type = Type.GetType(typeName); + if (type == null) + { + throw new JsonSerializationException($"Unknown type: {typeName}"); + } + + var modifier = Activator.CreateInstance(type) as ModifierBase; + serializer.Populate(jsonObject.CreateReader(), modifier); + return modifier; + } + } +} diff --git a/MobiFlight/BrowserMessages/Incoming/Test.cs b/MobiFlight/BrowserMessages/Incoming/Test.cs new file mode 100644 index 000000000..4f2387735 --- /dev/null +++ b/MobiFlight/BrowserMessages/Incoming/Test.cs @@ -0,0 +1,7 @@ +namespace MobiFlight.BrowserMessages.Incoming +{ + internal class Test + { + public string Message { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Message.cs b/MobiFlight/BrowserMessages/Message.cs new file mode 100644 index 000000000..e6326fae2 --- /dev/null +++ b/MobiFlight/BrowserMessages/Message.cs @@ -0,0 +1,30 @@ +using System; + +namespace MobiFlight.BrowserMessages +{ + public class Message + { + public String key + { + get; set; + } + + public T payload { get; set; } + + public Message() + { + } + + public Message(string key, T payload) + { + this.key = key; + this.payload = payload; + } + public Message(T payload) + { + this.key = payload.GetType().Name; + this.payload = payload; + } + + } +} diff --git a/MobiFlight/BrowserMessages/MessageExchange.cs b/MobiFlight/BrowserMessages/MessageExchange.cs new file mode 100644 index 000000000..1fdf6cda3 --- /dev/null +++ b/MobiFlight/BrowserMessages/MessageExchange.cs @@ -0,0 +1,126 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace MobiFlight.BrowserMessages +{ + // Implement as singleton + public class MessageExchange : IMessageExchange + { + private readonly Dictionary> _subscribers = new Dictionary>(); + private readonly Dictionary _subscribedTypes = new Dictionary(); + private static readonly object _lock = new object(); + private static MessageExchange _instance; + private IMessagePublisher _messagePublisher; + + public static MessageExchange Instance + { + get + { + if (_instance == null) + { + lock (_lock) + { + if (_instance == null) + { + _instance = new MessageExchange(); + } + } + } + return _instance; + } + } + + private MessageExchange() + { + } + + public void SetPublisher(IMessagePublisher messagePublisher) + { + _messagePublisher = messagePublisher; + _messagePublisher.OnMessageReceived(PublishReceivedMessage); + } + + /// + /// Publishes an event to the message publisher + /// + /// + /// + public void Publish(TEvent eventToPublish) + { + _messagePublisher?.Publish(eventToPublish); + } + + /// + /// Publishes a received message to all subscribers + /// + private void PublishReceivedMessage(string jsonMessage) + { + var eventToPublish = JsonConvert.DeserializeObject>(jsonMessage); + if (!_subscribedTypes.ContainsKey(eventToPublish.key)) + { + Log.Instance.log("No subscribers for event: " + eventToPublish.key, LogSeverity.Warn); + return; + } + + Type eventType = _subscribedTypes[eventToPublish.key]; + + List subscribers; + + lock (_lock) + { + if (!_subscribers.ContainsKey(eventType)) return; + subscribers = _subscribers[eventType].ToList(); + } + + try + { + + var deserializedPayload = JsonConvert.DeserializeObject(eventToPublish.payload.ToString(), eventType); + foreach (var subscriber in subscribers) + { + subscriber.GetType().GetMethod("Invoke")?.Invoke(subscriber, new[] { deserializedPayload }); + } + } + catch (Exception e) + { + Log.Instance.log(e.Message, LogSeverity.Error); + } + } + + public void Subscribe(Action callback) + { + var eventType = typeof(TMessagePayloadType); + + lock (_lock) + { + if (!_subscribers.ContainsKey(eventType)) + { + _subscribedTypes.Add(eventType.Name, eventType); + _subscribers[eventType] = new List(); + } + + _subscribers[eventType].Add(callback); + } + } + + public void Unsubscribe(Action callback) + { + var eventType = typeof(TEvent); + + lock (_lock) + { + if (_subscribers.ContainsKey(eventType)) + { + _subscribers[eventType].Remove(callback); + if (_subscribers[eventType].Count == 0) + { + _subscribers.Remove(eventType); + _subscribedTypes.Remove(eventType.Name); + } + } + } + } + } +} diff --git a/MobiFlight/BrowserMessages/Outgoing/ConfigValueUpdate.cs b/MobiFlight/BrowserMessages/Outgoing/ConfigValueUpdate.cs new file mode 100644 index 000000000..ec67ea8d4 --- /dev/null +++ b/MobiFlight/BrowserMessages/Outgoing/ConfigValueUpdate.cs @@ -0,0 +1,25 @@ +using MobiFlight.Base; +using System.Collections.Generic; + +namespace MobiFlight.BrowserMessages +{ + internal class ConfigValueUpdate + { + public string UpdateType { get; set; } + public List ConfigItems { get; set; } + + public ConfigValueUpdate() { } + public ConfigValueUpdate(IConfigItem item) + { + ConfigItems = new List + { + item + }; + } + + public ConfigValueUpdate(List configItems) + { + ConfigItems = configItems; + } + } +} diff --git a/MobiFlight/BrowserMessages/Outgoing/LogEntry.cs b/MobiFlight/BrowserMessages/Outgoing/LogEntry.cs new file mode 100644 index 000000000..8afee1542 --- /dev/null +++ b/MobiFlight/BrowserMessages/Outgoing/LogEntry.cs @@ -0,0 +1,11 @@ +using System; + +namespace MobiFlight.BrowserMessages.Outgoing +{ + public class LogEntry + { + public DateTime Timestamp; + public string Message; + public string Severity; + } +} diff --git a/MobiFlight/BrowserMessages/Outgoing/Notification.cs b/MobiFlight/BrowserMessages/Outgoing/Notification.cs new file mode 100644 index 000000000..ba7a28acb --- /dev/null +++ b/MobiFlight/BrowserMessages/Outgoing/Notification.cs @@ -0,0 +1,10 @@ +namespace MobiFlight.BrowserMessages.Outgoing +{ + internal class Notification + { + public string Type { get; set; } + + public string Action { get; set; } + public object Value { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Outgoing/StatusBarUpdate.cs b/MobiFlight/BrowserMessages/Outgoing/StatusBarUpdate.cs new file mode 100644 index 000000000..2c4aa781f --- /dev/null +++ b/MobiFlight/BrowserMessages/Outgoing/StatusBarUpdate.cs @@ -0,0 +1,8 @@ +namespace MobiFlight.BrowserMessages.Outgoing +{ + internal class StatusBarUpdate + { + public string Text { get; set; } + public int Value { get; set; } + } +} diff --git a/MobiFlight/BrowserMessages/Publisher/PostMessagePublisher.cs b/MobiFlight/BrowserMessages/Publisher/PostMessagePublisher.cs new file mode 100644 index 000000000..0d245a085 --- /dev/null +++ b/MobiFlight/BrowserMessages/Publisher/PostMessagePublisher.cs @@ -0,0 +1,41 @@ +using Microsoft.Web.WebView2.Core; +using Newtonsoft.Json; +using System; +using System.Threading; + +namespace MobiFlight.BrowserMessages.Publisher +{ + public class PostMessagePublisher : IMessagePublisher + { + private readonly ThreadSafeWebView2 _webView; + private Action _onMessageReceived; + + public PostMessagePublisher(ThreadSafeWebView2 webView) + { + _webView = webView; + _webView.WebMessageReceived += WebView_WebMessageReceived; + } + + public void Publish(TEvent eventToPublish) + { + if (_webView != null) + { + var message = new Message() { key = eventToPublish.GetType().Name, payload = eventToPublish }; + var jsonMessage = JsonConvert.SerializeObject(message); + // Ensure the call is made on the UI thread + _webView.PostWebMessageAsJsonThreadSafe(jsonMessage); + } + } + + public void OnMessageReceived(Action callback) + { + _onMessageReceived = (message) => callback((string)message); + } + + private void WebView_WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs args) + { + var message = args.WebMessageAsJson; + _onMessageReceived?.Invoke(message); + } + } +} diff --git a/MobiFlight/BrowserMessages/Publisher/WebsocketPublisher.cs b/MobiFlight/BrowserMessages/Publisher/WebsocketPublisher.cs new file mode 100644 index 000000000..20696bc17 --- /dev/null +++ b/MobiFlight/BrowserMessages/Publisher/WebsocketPublisher.cs @@ -0,0 +1,65 @@ +using Newtonsoft.Json; +using System; +using System.Net.WebSockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace MobiFlight.BrowserMessages.Publisher +{ + + public class WebSocketPublisher : IMessagePublisher + { + private readonly ClientWebSocket _webSocket; + private Action _onMessageReceived; + + public WebSocketPublisher(string uri) + { + _webSocket = new ClientWebSocket(); + Task.Run(() => ConnectAsync(uri)); + } + + private async Task ConnectAsync(string uri) + { + await _webSocket.ConnectAsync(new Uri(uri), CancellationToken.None); + await ReceiveMessagesAsync(); + } + + public void OnMessageReceived(Action action) + { + _onMessageReceived = (message) => action((string) message); + } + + public async void Publish(TEvent eventToPublish) + { + if (_webSocket.State == WebSocketState.Open) + { + + var jsonMessage = JsonConvert.SerializeObject(eventToPublish); + var bytes = Encoding.UTF8.GetBytes(jsonMessage); + var buffer = new ArraySegment(bytes); + + await _webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); + } + } + + private async Task ReceiveMessagesAsync() + { + var buffer = new byte[1024 * 4]; + + while (_webSocket.State == WebSocketState.Open) + { + var result = await _webSocket.ReceiveAsync(new ArraySegment(buffer), CancellationToken.None); + if (result.MessageType == WebSocketMessageType.Close) + { + await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); + } + else + { + var message = Encoding.UTF8.GetString(buffer, 0, result.Count); + _onMessageReceived?.Invoke(message); + } + } + } + } +} \ No newline at end of file diff --git a/MobiFlight/ExecutionManager.cs b/MobiFlight/ExecutionManager.cs index 321e8d1bd..b88ba9b9a 100644 --- a/MobiFlight/ExecutionManager.cs +++ b/MobiFlight/ExecutionManager.cs @@ -1,12 +1,14 @@ using MobiFlight.Base; +using MobiFlight.BrowserMessages; +using MobiFlight.BrowserMessages.Incoming; using MobiFlight.FSUIPC; using MobiFlight.InputConfig; +using MobiFlight.OutputConfig; using MobiFlight.SimConnectMSFS; using MobiFlight.xplane; using System; using System.Collections.Generic; using System.Data; -using System.Drawing; using System.Linq; using System.Windows.Forms; @@ -14,6 +16,7 @@ namespace MobiFlight { public class ExecutionManager { + public event EventHandler OnConfigHasChanged; public event EventHandler OnExecute; public event EventHandler OnStarted; public event EventHandler OnStopped; @@ -81,21 +84,29 @@ public class ExecutionManager readonly MidiBoardManager midiBoardManager = new MidiBoardManager(); readonly InputActionExecutionCache inputActionExecutionCache = new InputActionExecutionCache(); - DataGridView dataGridViewConfig = null; - DataGridView inputsDataGridView = null; - Dictionary>> inputCache = new Dictionary>>(); + public List ConfigItems { get; set; } = new List(); + + private Project _project = new Project(); + public Project Project { + get { return _project; } + set { + _project = value; + ConfigItems = _project.ConfigFiles.Count > 0 ? _project.ConfigFiles[0].ConfigItems : new List(); + } + } + + Dictionary> inputCache = new Dictionary>(); private bool _autoConnectTimerRunning = false; FlightSimType LastDetectedSim = FlightSimType.NONE; - string ConfigItemInTestMode = null; + OutputConfigItem ConfigItemInTestMode = null; - public ExecutionManager(DataGridView dataGridViewConfig, DataGridView inputsDataGridView, IntPtr handle) - { - this.dataGridViewConfig = dataGridViewConfig; - this.inputsDataGridView = inputsDataGridView; + Dictionary lastUpdatedValues = new Dictionary(); + public ExecutionManager(IntPtr handle) + { fsuipcCache.ConnectionLost += new EventHandler(FsuipcCache_ConnectionLost); fsuipcCache.Connected += new EventHandler(FsuipcCache_Connected); fsuipcCache.Closed += new EventHandler(FsuipcCache_Closed); @@ -144,18 +155,21 @@ public ExecutionManager(DataGridView dataGridViewConfig, DataGridView inputsData #endif joystickManager.SetHandle(handle); joystickManager.OnButtonPressed += new ButtonEventHandler(mobiFlightCache_OnButtonPressed); - joystickManager.Connected += (sender, e) => { + joystickManager.Connected += (sender, e) => + { joystickManager.Startup(); OnJoystickConnectedFinished?.Invoke(sender, e); }; midiBoardManager.OnButtonPressed += new ButtonEventHandler(mobiFlightCache_OnButtonPressed); - midiBoardManager.Connected += (sender, e) => { - midiBoardManager.Startup(); + midiBoardManager.Connected += (sender, e) => + { + midiBoardManager.Startup(); OnMidiBoardConnectedFinished?.Invoke(sender, e); }; mobiFlightCache.Start(); + InitializeFrontendSubscriptions(); } public void StartJoystickManager() @@ -174,6 +188,112 @@ public void StartMidiBoardManager() } } + private void InitializeFrontendSubscriptions() + { + MessageExchange.Instance.Subscribe((message) => + { + HandleCommandUpdateConfigItem(message.Item); + }); + + MessageExchange.Instance.Subscribe((message) => + { + IConfigItem item = new OutputConfigItem(); + if (message.Type == "InputConfig") + { + item = new InputConfigItem(); + } + + item.GUID = Guid.NewGuid().ToString(); + item.Name = message.Name; + item.Active = true; + ConfigItems.Add(item); + + MessageExchange.Instance.Publish(new ConfigValueUpdate(item)); + OnConfigHasChanged?.Invoke(item, null); + }); + + MessageExchange.Instance.Subscribe((message) => + { + IConfigItem cfg; + switch (message.Action) + { + case "delete": + ConfigItems.RemoveAll(i => i.GUID == message.Item.GUID); + break; + + case "duplicate": + var index = ConfigItems.FindIndex(i => i.GUID == message.Item.GUID); + if (index == -1) break; + ConfigItems.Insert(index, ConfigItems[index].Duplicate()); + break; + + case "test": + cfg = ConfigItems.Find(i => i.GUID == message.Item.GUID); + if (cfg == null) break; + + try + { + ExecuteTestOff(ConfigItemInTestMode, true); + } + catch (Exception e) + { + Log.Instance.log(e.Message, LogSeverity.Error); + } + + try { + ExecuteTestOn(cfg as OutputConfigItem); + } + catch(Exception e) + { + Log.Instance.log($"Error during test mode execution: {cfg.Name}. {e.Message}", LogSeverity.Error); + } + + return; + + default: + return; + } + + MessageExchange.Instance.Publish(new ConfigValueUpdate(ConfigItems)); + OnConfigHasChanged?.Invoke(ConfigItems, null); + }); + + MessageExchange.Instance.Subscribe((message) => + { + // find all items + var resortedItems = new List(); + message.Items.ToList().ForEach(item => + { + IConfigItem cfg = ConfigItems.Find(i => i.GUID == item.GUID); + if (cfg == null) return; + resortedItems.Add(cfg); + ConfigItems.Remove(cfg); + }); + + var currentIndex = message.NewIndex; + + resortedItems.ForEach(item => + { + ConfigItems.Insert(currentIndex, item as OutputConfigItem); + currentIndex++; + }); + + MessageExchange.Instance.Publish(new ConfigValueUpdate(ConfigItems)); + OnConfigHasChanged?.Invoke(ConfigItems, null); + }); + } + + private void HandleCommandUpdateConfigItem(ConfigItem item) + { + var configItem = ConfigItems.Find(i => i.GUID == item.GUID); + if (configItem == null) return; + + configItem.Active = item.Active; + configItem.Name = item.Name; + MessageExchange.Instance.Publish(new ConfigValueUpdate() { ConfigItems = new List() { configItem } }); + OnConfigHasChanged?.Invoke(new IConfigItem[] { configItem }, null); + } + private void ModuleCache_ModuleConnected(object sender, EventArgs e) { TestModeStop(); @@ -191,49 +311,29 @@ internal Dictionary GetAvailableVariables() { Dictionary variables = new Dictionary(); - // iterate over the config row by row - foreach (DataGridViewRow row in dataGridViewConfig.Rows) + ConfigItems.Where(i => { - // ignore the rows that haven't been saved yet (new row, the last one in the grid) - // and the ones that are not checked active - if (row.IsNewRow) continue; - - OutputConfigItem cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); - - // cfg was not set yet, e.g. we created row and are still in edit mode and now we hit "Edit" - if (cfg == null) continue; - - if (cfg.SourceType != SourceType.VARIABLE) continue; - - if (cfg.MobiFlightVariable == null) continue; - - if (variables.ContainsKey(cfg.MobiFlightVariable.Name)) continue; - - variables[cfg.MobiFlightVariable.Name] = cfg.MobiFlightVariable; - } - - // iterate over the config row by row - foreach (DataGridViewRow row in inputsDataGridView.Rows) + return i?.GetType() == typeof(OutputConfigItem) && + (i as OutputConfigItem).Source is VariableSource; + }).ToList().ForEach(i => { + var source = (i as OutputConfigItem).Source as VariableSource; + if (variables.ContainsKey(source.MobiFlightVariable.Name)) return; + variables[source.MobiFlightVariable.Name] = source.MobiFlightVariable; + }); + + ConfigItems.Where(i => i?.GetType() == typeof(InputConfigItem)).ToList().ForEach(i => { - // ignore the rows that haven't been saved yet (new row, the last one in the grid) - // and the ones that are not checked active - if (row.IsNewRow) continue; - - InputConfigItem cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as InputConfigItem); - if (cfg == null) continue; - + var cfg = i as InputConfigItem; List actions = cfg.GetInputActionsByType(typeof(VariableInputAction)); - - if(actions == null) continue; - + if (actions == null) return; + actions.ForEach(action => { VariableInputAction a = (VariableInputAction)action; if (variables.ContainsKey(a.Variable.Name)) return; - variables[a.Variable.Name] = a.Variable; }); - } + }); return variables; } @@ -311,7 +411,7 @@ public void Start() // on start actions are executed // otherwise the input events will not be executed. timer.Enabled = true; - + // Now we can execute the on start actions OnStartActions(); @@ -334,6 +434,8 @@ public void Stop() inputCache.Clear(); inputActionExecutionCache.Clear(); mobiFlightCache.ActivateConnectedModulePowerSave(); + ConfigItems.ForEach(cfg => cfg.Status?.Clear()); + ClearErrorMessages(); } @@ -377,7 +479,7 @@ public void TestModeStop() // make sure every device is turned off mobiFlightCache.Stop(); - + OnTestModeStopped?.Invoke(this, null); Log.Instance.log("Stopped test timer.", LogSeverity.Debug); @@ -416,7 +518,7 @@ public JoystickManager GetJoystickManager() public MidiBoardManager GetMidiBoardManager() { - return midiBoardManager; + return midiBoardManager; } public List GetAllConnectedModulesInfo() @@ -485,6 +587,8 @@ private void ExecuteConfig() !midiBoardManager.AreMidiBoardsConnected() ) return; + + // this is kind of sempahore to prevent multiple execution // in fact I don't know if this needs to be done in C# if (isExecuting) @@ -500,25 +604,15 @@ private void ExecuteConfig() #if ARCAZE arcazeCache.clearGetValues(); #endif - // iterate over the config row by row - foreach (DataGridViewRow row in dataGridViewConfig.Rows) - { - // ignore the rows that haven't been saved yet (new row, the last one in the grid) - // and the ones that are not checked active - if (row.IsNewRow) continue; - if (!(bool)row.Cells["active"].Value) - { - row.ErrorText = ""; - continue; - } + var updatedValues = new Dictionary(); - // initialisiere den adapter - //// nimm type von col.type - //// nimm config von col.config + // iterate over the config row by row + foreach (var item in ConfigItems.Where(i=>i?.GetType()==typeof(OutputConfigItem))) + { + var cfg = item as OutputConfigItem; - //// if !all valid continue - OutputConfigItem cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); + if (!cfg.Active) continue; if (cfg == null) { @@ -527,43 +621,51 @@ private void ExecuteConfig() } // Don't execute a config that we are currently manually testing. - var currentGuid = (row.DataBoundItem as DataRowView).Row["guid"].ToString(); - if (ConfigItemInTestMode!=null && ConfigItemInTestMode == currentGuid) + var currentGuid = cfg.GUID; + var originalCfg = cfg.Clone() as ConfigItem; + cfg.Status.Clear(); + + if (ConfigItemInTestMode != null && ConfigItemInTestMode.GUID == currentGuid) { + cfg.Status[ConfigItemStatusType.Test] = "TESTING"; + if (!cfg.Equals(originalCfg)) + { + updatedValues[cfg.GUID] = cfg; + } continue; - } + } // If not connected to FSUIPC show an error message - if (cfg.SourceType == SourceType.FSUIPC && !fsuipcCache.IsConnected()) + if (cfg.Source is FsuipcSource && !fsuipcCache.IsConnected()) { - row.ErrorText = i18n._tr("uiMessageNoFSUIPCConnection"); - } else + cfg.Status[ConfigItemStatusType.Source] = "SIMCONNECT_NOT_AVAILABLE"; + } + else #if SIMCONNECT // If not connected to SimConnect show an error message - if (cfg.SourceType == SourceType.SIMCONNECT && !simConnectCache.IsConnected()) + if (cfg.Source is SimConnectSource && !simConnectCache.IsConnected()) { - row.ErrorText = i18n._tr("uiMessageNoSimConnectConnection"); + cfg.Status[ConfigItemStatusType.Source] = "SIMCONNECT_NOT_AVAILABLE"; } else #endif // If not connected to X-Plane show an error message - if (cfg.SourceType == SourceType.XPLANE && !xplaneCache.IsConnected()) + if (cfg.Source is XplaneSource && !xplaneCache.IsConnected()) { - row.ErrorText = i18n._tr("uiMessageNoXplaneConnection"); + // TODO: REDESIGN: Review + cfg.Status[ConfigItemStatusType.Source] = "SIMCONNECT_NOT_AVAILABLE"; } // In any other case remove the error message else { - row.ErrorText = ""; + cfg.Status.Remove(ConfigItemStatusType.Source); } ConnectorValue value = ExecuteRead(cfg); ConnectorValue processedValue = value; - row.DefaultCellStyle.ForeColor = Color.Empty; - - row.Cells["fsuipcValueColumn"].Value = value.ToString(); - row.Cells["fsuipcValueColumn"].Tag = value; + cfg.RawValue = value.ToString(); + cfg.Value = processedValue.ToString(); List configRefs = GetRefs(cfg.ConfigRefs); @@ -577,12 +679,17 @@ private void ExecuteConfig() } catch (Exception ex) { - Log.Instance.log($"Transform error ({row.Cells["Description"].Value}): {ex.Message}", LogSeverity.Error); - row.ErrorText = $"{i18n._tr("uiMessageTransformError")}({ex.Message})"; + Log.Instance.log($"Transform error ({cfg.Name}): {ex.Message}", LogSeverity.Error); + cfg.Status[ConfigItemStatusType.Modifier] = ex.Message; + if (!cfg.Equals(originalCfg)) + { + updatedValues[cfg.GUID] = cfg; + } continue; } - row.Cells["arcazeValueColumn"].Value = processedValue.ToString(); + cfg.Status.Remove(ConfigItemStatusType.Modifier); + cfg.Value = processedValue.ToString(); try { @@ -591,7 +698,14 @@ private void ExecuteConfig() { if (!cfg.Preconditions.ExecuteOnFalse) { - row.ErrorText = i18n._tr("uiMessagePreconditionNotSatisfied"); + if (!cfg.Status.ContainsKey(ConfigItemStatusType.Precondition) || cfg.Status[ConfigItemStatusType.Precondition] != "not satisfied") + { + cfg.Status[ConfigItemStatusType.Precondition] = "not satisfied"; + } + if (!cfg.Equals(originalCfg)) + { + updatedValues[cfg.GUID] = cfg; + } continue; } else @@ -602,38 +716,50 @@ private void ExecuteConfig() } else { - if (row.ErrorText == i18n._tr("uiMessagePreconditionNotSatisfied")) - row.ErrorText = ""; + // TODO: REDESIGN: Review + //if (row.ErrorText == i18n._tr("uiMessagePreconditionNotSatisfied")) + // row.ErrorText = ""; } - ExecuteDisplay(processedValue.ToString(), cfg); } - catch(JoystickNotConnectedException jEx) + catch (JoystickNotConnectedException jEx) { - row.ErrorText = jEx.Message; + // TODO: REDESIGN: Review + // row.ErrorText = jEx.Message; } catch (MidiBoardNotConnectedException mEx) { - row.ErrorText = mEx.Message; + // TODO: REDESIGN: Review + // row.ErrorText = mEx.Message; } catch (Exception exc) { - String RowDescription = ((row.Cells["description"]).Value as String); - Exception resultExc = new ConfigErrorException(RowDescription + ". " + exc.Message, exc); - row.ErrorText = exc.Message; + // TODO: REDESIGN: Review + String RowDescription = cfg.Name; + Exception resultExc = new ConfigErrorException(cfg.Name + ". " + exc.Message, exc); + // row.ErrorText = exc.Message; throw resultExc; } + + if (!originalCfg.Equals(cfg)) + { + updatedValues[cfg.GUID] = cfg; + } + } + + if (updatedValues.Count > 0) + { + // TODO: EMIT Event + var update = new ConfigValueUpdate() { ConfigItems = updatedValues.Values.ToList() }; + MessageExchange.Instance.Publish(update); } - // this update will trigger potential writes to the offsets - // that came from the inputs and are waiting to be written - // fsuipcCache.Write(); UpdateInputPreconditions(); isExecuting = false; } - private bool CheckPrecondition(IBaseConfigItem cfg, ConnectorValue currentValue) + private bool CheckPrecondition(ConfigItem cfg, ConnectorValue currentValue) { bool finalResult = true; bool result = true; @@ -667,23 +793,19 @@ private bool CheckPrecondition(IBaseConfigItem cfg, ConnectorValue currentValue) break; case "config": // iterate over the config row by row - foreach (DataGridViewRow row in dataGridViewConfig.Rows) + foreach (var outputConfig in ConfigItems) { - // the last item is null and we hit that if we don't find the reference - // because we deleted it for example - if ((row.DataBoundItem as DataRowView) == null) continue; - // here we just don't have a match - if ((row.DataBoundItem as DataRowView).Row["guid"].ToString() != p.PreconditionRef) continue; + if (outputConfig.GUID != p.PreconditionRef) continue; // if inactive ignore? - if (!(bool)row.Cells["active"].Value) break; + if (!outputConfig.Active) break; // was there an error on reading the value? - if (row.Cells["arcazeValueColumn"].Value == null) break; + if (outputConfig.Value == null) break; // read the value - string value = row.Cells["arcazeValueColumn"].Value.ToString(); + string value = outputConfig.Value; // if there hasn't been determined any value yet // we cannot compare @@ -714,50 +836,60 @@ private ConnectorValue ExecuteRead(OutputConfigItem cfg) { ConnectorValue result = new ConnectorValue(); - if (cfg.SourceType == SourceType.FSUIPC) + if (cfg.Source is FsuipcSource) { - result = FsuipcHelper.executeRead(cfg, fsuipcCache); + result = FsuipcHelper.executeRead((cfg.Source as FsuipcSource).FSUIPC, fsuipcCache); } - else if (cfg.SourceType == SourceType.VARIABLE) + else if (cfg.Source is VariableSource) { - if (cfg.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_NUMBER) { + var source = cfg.Source as VariableSource; + if (source.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_NUMBER) + { result.type = FSUIPCOffsetType.Float; - result.Float64 = mobiFlightCache.GetMobiFlightVariable(cfg.MobiFlightVariable.Name).Number; - } else if (cfg.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_STRING) + result.Float64 = mobiFlightCache.GetMobiFlightVariable(source.MobiFlightVariable.Name).Number; + } + else if (source.MobiFlightVariable.TYPE == MobiFlightVariable.TYPE_STRING) { result.type = FSUIPCOffsetType.String; - result.String = mobiFlightCache.GetMobiFlightVariable(cfg.MobiFlightVariable.Name).Text; + result.String = mobiFlightCache.GetMobiFlightVariable(source.MobiFlightVariable.Name).Text; } } - else if (cfg.SourceType == SourceType.XPLANE) + else if (cfg.Source is XplaneSource) { + var source = cfg.Source as XplaneSource; result.type = FSUIPCOffsetType.Float; - result.Float64 = xplaneCache.readDataRef(cfg.XplaneDataRef.Path); + result.Float64 = xplaneCache.readDataRef(source.XplaneDataRef.Path); + } + else if (cfg.Source is SimConnectSource) + { + var source = cfg.Source as SimConnectSource; + result.type = simConnectCache.GetSimVar(source.SimConnectValue.Value, out result.String, out result.Float64); } else { - result.type = simConnectCache.GetSimVar(cfg.SimConnectValue.Value, out result.String, out result.Float64); + Log.Instance.log("Unknown source type: " + cfg.Source.SourceType, LogSeverity.Error); } return result; } private string ExecuteDisplay(string value, OutputConfigItem cfg) - { - string serial = SerialNumber.ExtractSerial(cfg.DisplaySerial); + { + string serial = SerialNumber.ExtractSerial(cfg.ModuleSerial); - if (serial == "" && cfg.DisplayType != "InputAction") + if (serial == "" && cfg.DeviceType != "InputAction") return value.ToString(); - if (SerialNumber.IsJoystickSerial(serial) && cfg.DisplayType != "InputAction") + if (SerialNumber.IsJoystickSerial(serial) && cfg.DeviceType != "InputAction") { Joystick joystick = joystickManager.GetJoystickBySerial(serial); - if(joystick != null) + if (joystick != null) { - switch (cfg.DisplayType) + switch (cfg.DeviceType) { - case OutputConfig.LcdDisplay.Type: - joystick.SetLcdDisplay(cfg.LcdDisplay.Address, value); + case OutputConfig.LcdDisplay.DeprecatedType: + var lcdDisplay = cfg.Device as LcdDisplay; + joystick.SetLcdDisplay(lcdDisplay.Address, value); break; case "-": @@ -767,100 +899,97 @@ private string ExecuteDisplay(string value, OutputConfigItem cfg) default: // LED Output byte state = 0; if (value != "0") state = 1; - joystick.SetOutputDeviceState(cfg.Pin.DisplayPin, state); + joystick.SetOutputDeviceState((cfg.Device as Output).DisplayPin, state); joystick.UpdateOutputDeviceStates(); joystick.Update(); break; } - } + } else { - var joystickName = SerialNumber.ExtractDeviceName(cfg.DisplaySerial); + var joystickName = SerialNumber.ExtractDeviceName(cfg.ModuleSerial); throw new JoystickNotConnectedException(i18n._tr($"{joystickName} not connected")); } } - else if (SerialNumber.IsMidiBoardSerial(serial) && cfg.DisplayType != "InputAction") + else if (SerialNumber.IsMidiBoardSerial(serial) && cfg.DeviceType != "InputAction") { MidiBoard midiBoard = midiBoardManager.GetMidiBoardBySerial(serial); if (midiBoard != null) { byte state = 0; if (value != "0") state = 1; - midiBoard.SetOutputDeviceState(cfg.Pin.DisplayPin, state); + midiBoard.SetOutputDeviceState((cfg.Device as Output).DisplayPin, state); } else { - var midiBoardName = SerialNumber.ExtractDeviceName(cfg.DisplaySerial); + var midiBoardName = SerialNumber.ExtractDeviceName(cfg.ModuleSerial); throw new MidiBoardNotConnectedException(i18n._tr($"{midiBoardName} not connected")); } } - else if (serial.IndexOf("SN") != 0 && cfg.DisplayType != "InputAction") + else if (serial.IndexOf("SN") != 0 && cfg.DeviceType != "InputAction") { #if ARCAZE - switch (cfg.DisplayType) + switch (cfg.DeviceType) { case ArcazeLedDigit.TYPE: - var val = value.PadRight(cfg.LedModule.DisplayLedDigits.Count, cfg.LedModule.DisplayLedPaddingChar[0]); - if (cfg.LedModule.DisplayLedPadding) val = value.PadLeft(cfg.LedModule.DisplayLedPadding ? cfg.LedModule.DisplayLedDigits.Count : 0, cfg.LedModule.DisplayLedPaddingChar[0]); + var device = cfg.Device as LedModule; + var val = value.PadRight(device.DisplayLedDigits.Count, device.DisplayLedPaddingChar[0]); + if (device.DisplayLedPadding) val = value.PadLeft(device.DisplayLedPadding ? device.DisplayLedDigits.Count : 0, device.DisplayLedPaddingChar[0]); arcazeCache.setDisplay( serial, - cfg.LedModule.DisplayLedAddress, - cfg.LedModule.DisplayLedConnector, - cfg.LedModule.DisplayLedDigits, - cfg.LedModule.DisplayLedDecimalPoints, + device.DisplayLedAddress, + device.DisplayLedConnector, + device.DisplayLedDigits, + device.DisplayLedDecimalPoints, val); break; - case ArcazeBcd4056.TYPE: - arcazeCache.setBcd4056(serial, - cfg.BcdPins, - value); - break; - default: arcazeCache.setValue(serial, - cfg.Pin.DisplayPin, - (value != "0" ? cfg.Pin.DisplayPinBrightness.ToString() : "0")); + (cfg.Device as Output).DisplayPin, + (value != "0" ? (cfg.Device as Output).DisplayPinBrightness.ToString() : "0")); break; } #endif } else { - switch (cfg.DisplayType) + switch (cfg.DeviceType) { case ArcazeLedDigit.TYPE: - var decimalCount = value.Count(c => c=='.'); + var device = cfg.Device as LedModule; + + var decimalCount = value.Count(c => c == '.'); - var val = value.PadRight(cfg.LedModule.DisplayLedDigits.Count + decimalCount, cfg.LedModule.DisplayLedPaddingChar[0]); - var decimalPoints = new List(cfg.LedModule.DisplayLedDecimalPoints); + var val = value.PadRight(device.DisplayLedDigits.Count + decimalCount, device.DisplayLedPaddingChar[0]); + var decimalPoints = new List(device.DisplayLedDecimalPoints); - if (cfg.LedModule.DisplayLedPadding) + if (device.DisplayLedPadding) { - val = value.PadLeft(cfg.LedModule.DisplayLedPadding - ? cfg.LedModule.DisplayLedDigits.Count + decimalCount - : 0, cfg.LedModule.DisplayLedPaddingChar[0]); + val = value.PadLeft(device.DisplayLedPadding + ? device.DisplayLedDigits.Count + decimalCount + : 0, device.DisplayLedPaddingChar[0]); } - if (!string.IsNullOrEmpty(cfg.LedModule.DisplayLedBrightnessReference)) + if (!string.IsNullOrEmpty(device.DisplayLedBrightnessReference)) { - string refValue = FindValueForRef(cfg.LedModule.DisplayLedBrightnessReference); + string refValue = FindValueForRef(device.DisplayLedBrightnessReference); mobiFlightCache.SetDisplayBrightness( serial, - cfg.LedModule.DisplayLedAddress, - cfg.LedModule.DisplayLedConnector, + device.DisplayLedAddress, + device.DisplayLedConnector, refValue ); } - var reverse = cfg.LedModule.DisplayLedReverseDigits; + var reverse = device.DisplayLedReverseDigits; mobiFlightCache.SetDisplay( serial, - cfg.LedModule.DisplayLedAddress, - cfg.LedModule.DisplayLedConnector, - cfg.LedModule.DisplayLedDigits, + device.DisplayLedAddress, + device.DisplayLedConnector, + device.DisplayLedDigits, decimalPoints, val, reverse); @@ -874,33 +1003,36 @@ private string ExecuteDisplay(string value, OutputConfigItem cfg) // break; case MobiFlightStepper.TYPE: + var stepper = cfg.Device as OutputConfig.Stepper; mobiFlightCache.SetStepper( serial, - cfg.Stepper.Address, + stepper.Address, value, - cfg.Stepper.InputRev, - cfg.Stepper.OutputRev, - cfg.Stepper.CompassMode, - cfg.Stepper.Speed, - cfg.Stepper.Acceleration + stepper.InputRev, + stepper.OutputRev, + stepper.CompassMode, + stepper.Speed, + stepper.Acceleration ); break; case MobiFlightServo.TYPE: + var servo = cfg.Device as OutputConfig.Servo; mobiFlightCache.SetServo( serial, - cfg.Servo.Address, + servo.Address, value, - int.Parse(cfg.Servo.Min), - int.Parse(cfg.Servo.Max), - Byte.Parse(cfg.Servo.MaxRotationPercent) + int.Parse(servo.Min), + int.Parse(servo.Max), + Byte.Parse(servo.MaxRotationPercent) ); break; - case OutputConfig.LcdDisplay.Type: + case OutputConfig.LcdDisplay.DeprecatedType: + var lcdDisplay = cfg.Device as LcdDisplay; mobiFlightCache.SetLcdDisplay( serial, - cfg.LcdDisplay, + lcdDisplay, value, GetRefs(cfg.ConfigRefs) ); @@ -910,20 +1042,25 @@ private string ExecuteDisplay(string value, OutputConfigItem cfg) if (serial != null) { string outputValueShiftRegister = value; - - if (outputValueShiftRegister != "0" && !cfg.Pin.DisplayPinPWM) - outputValueShiftRegister = cfg.Pin.DisplayPinBrightness.ToString(); - + var shiftRegister = cfg.Device as ShiftRegister; + + // in case PWM supported update the value + if (outputValueShiftRegister != "0" && shiftRegister.PWM) + { + outputValueShiftRegister = shiftRegister.Brightness.ToString(); + } + mobiFlightCache.SetShiftRegisterOutput( serial, - cfg.ShiftRegister.Address, - cfg.ShiftRegister.Pin, + shiftRegister.Address, + shiftRegister.Pin, outputValueShiftRegister); } break; - case OutputConfig.CustomDevice.Type: - mobiFlightCache.Set(serial, cfg.CustomDevice, value); + case OutputConfig.CustomDevice.DeprecatedType: + var customDevice = cfg.Device as OutputConfig.CustomDevice; + mobiFlightCache.Set(serial, customDevice, value); break; case "InputAction": @@ -939,7 +1076,7 @@ private string ExecuteDisplay(string value, OutputConfigItem cfg) xplaneCache = xplaneCache, joystickManager = joystickManager }; - + if (cfg.ButtonInputConfig != null) inputActionExecutionCache.Execute( cfg.ButtonInputConfig, @@ -958,18 +1095,18 @@ private string ExecuteDisplay(string value, OutputConfigItem cfg) } break; - default: + case MobiFlightOutput.TYPE: string outputValue = value; // so in case the pin is not explicily treated as PWM pin and // we have a value other than 0 (which is output OFF) // we will set the full brightness. // This ensures backward compatibility. - if (outputValue != "0" && !cfg.Pin.DisplayPinPWM) - outputValue = cfg.Pin.DisplayPinBrightness.ToString(); + if (outputValue != "0" && !(cfg.Device as Output).DisplayPinPWM) + outputValue = (cfg.Device as Output).DisplayPinBrightness.ToString(); mobiFlightCache.SetValue(serial, - cfg.Pin.DisplayPin, + (cfg.Device as Output).DisplayPin, outputValue); break; } @@ -995,23 +1132,19 @@ private String FindValueForRef(String refId) { String result = null; // iterate over the config row by row - foreach (DataGridViewRow row in dataGridViewConfig.Rows) + foreach (var cfg in ConfigItems) { - // the last item is null and we hit that if we don't find the reference - // because we deleted it for example - if ((row.DataBoundItem as DataRowView) == null) continue; - // here we just don't have a match - if ((row.DataBoundItem as DataRowView).Row["guid"].ToString() != refId) continue; + if (cfg.GUID != refId) continue; // if inactive ignore? - if (!(bool)row.Cells["active"].Value) break; + if (!cfg.Active) break; // was there an error on reading the value? - if (row.Cells["arcazeValueColumn"].Value == null) break; + if (cfg.Value == null) break; // read the value - string value = row.Cells["arcazeValueColumn"].Value.ToString(); + string value = cfg.Value; // if there hasn't been determined any value yet // we cannot compare @@ -1121,16 +1254,18 @@ void AutoConnectTimer_TickAsync(object sender, EventArgs e) #if ARCAZE if (arcazeCache.Enabled && !arcazeCache.Available()) { - arcazeCache.connect(); + arcazeCache.connect(); } #endif // Check only for available sims if not in Offline mode. - if (true) { + if (true) + { if (SimAvailable()) { - if (LastDetectedSim!= FlightSim.FlightSimType) { + if (LastDetectedSim != FlightSim.FlightSimType) + { LastDetectedSim = FlightSim.FlightSimType; OnSimAvailable?.Invoke(FlightSim.FlightSimType, null); } @@ -1144,7 +1279,7 @@ void AutoConnectTimer_TickAsync(object sender, EventArgs e) // through a different type Log.Instance.log("Trying auto connect to sim via FSUIPC", LogSeverity.Debug); } - + fsuipcCache.Connect(); } #if SIMCONNECT @@ -1166,7 +1301,8 @@ void AutoConnectTimer_TickAsync(object sender, EventArgs e) } else { - if (LastDetectedSim != FlightSimType.NONE) { + if (LastDetectedSim != FlightSimType.NONE) + { OnSimUnavailable?.Invoke(LastDetectedSim, null); LastDetectedSim = FlightSimType.NONE; } @@ -1187,120 +1323,110 @@ public bool SimAvailable() /// /// void testModeTimer_Tick(object sender, EventArgs args) - { - DataGridViewRow lastRow = dataGridViewConfig.Rows[(testModeIndex - 1 + dataGridViewConfig.RowCount) % dataGridViewConfig.RowCount]; + { + if (ConfigItems.Count == 0) return; + + var lastTestedConfig = ConfigItems[(testModeIndex - 1 + ConfigItems.Count) % ConfigItems.Count]; string serial = ""; string lastSerial = ""; - OutputConfigItem cfg = new OutputConfigItem(); - cfg.DisplaySerial = ""; - if (lastRow.DataBoundItem != null) - { - cfg = ((lastRow.DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); - } + var tmpCfg = lastTestedConfig; - if (cfg != null && - lastRow.Cells["active"].Value != null && ((bool)lastRow.Cells["active"].Value) && - cfg.DisplaySerial!=null && (cfg.DisplaySerial.Contains("/")) + if ((lastTestedConfig is OutputConfigItem) && + lastTestedConfig.Active && + lastTestedConfig.ModuleSerial != null && (lastTestedConfig.ModuleSerial.Contains("/")) ) { - lastSerial = SerialNumber.ExtractSerial(cfg.DisplaySerial); - lastRow.Selected = false; + lastSerial = SerialNumber.ExtractSerial(tmpCfg.ModuleSerial); try { - ExecuteTestOff(cfg, true); + ExecuteTestOff(tmpCfg as OutputConfigItem, true); } catch (IndexOutOfRangeException ex) { - String RowDescription = ((lastRow.DataBoundItem as DataRowView).Row["description"] as String); + String RowDescription = lastTestedConfig.Name; Log.Instance.log($"Error during test mode execution: module not connected > {RowDescription}. {ex.Message}", LogSeverity.Error); OnTestModeException(new Exception(i18n._tr("uiMessageTestModeModuleNotConnected")), new EventArgs()); } catch (Exception ex) { // TODO: refactor - check if we can stop the execution and this way update the interface accordingly too - String RowDescription = ((lastRow.DataBoundItem as DataRowView).Row["description"] as String); + String RowDescription = lastTestedConfig.Name; Log.Instance.log($"Error during test mode execution: {RowDescription}. {ex.Message}", LogSeverity.Error); OnTestModeException(ex, new EventArgs()); } } - DataGridViewRow row = dataGridViewConfig.Rows[testModeIndex]; + var row = ConfigItems[testModeIndex]; while ( - row.Cells["active"].Value != null && // check for null since last row is empty and value is null - !(bool)row.Cells["active"].Value && - row != lastRow) + !(row is OutputConfigItem) && + !row.Active && // check for null since last row is empty and value is null + row != lastTestedConfig) { - testModeIndex = ++testModeIndex % dataGridViewConfig.RowCount; - row = dataGridViewConfig.Rows[testModeIndex]; + testModeIndex = ++testModeIndex % ConfigItems.Count; + row = ConfigItems[testModeIndex]; } //while - cfg = new OutputConfigItem(); - - // iterate over the config row by row - if (row.DataBoundItem != null && - (row.DataBoundItem as DataRowView).Row["settings"] != null) // this is needed - // since we immediately store all changes - // and therefore there may be missing a - // valid cfg item - { - cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); - } + tmpCfg = row; - if (cfg != null && // this happens sometimes when a new line is added and still hasn't been configured - (dataGridViewConfig.RowCount > 1 && row != lastRow) && - //cfg.FSUIPC.Offset != FsuipcOffset.OffsetNull && - cfg.DisplaySerial != null && cfg.DisplaySerial.Contains("/") + if (tmpCfg != null && // this happens sometimes when a new line is added and still hasn't been configured + (tmpCfg is OutputConfigItem) && + (tmpCfg != lastTestedConfig) && + tmpCfg.ModuleSerial != null && tmpCfg.ModuleSerial.Contains("/") ) { - serial = SerialNumber.ExtractSerial(cfg.DisplaySerial); - row.Selected = true; + serial = SerialNumber.ExtractSerial(tmpCfg.ModuleSerial); + // TODO: + // REDESIGN: Send out a message that this is currently tested try { - var currentGuid = (row.DataBoundItem as DataRowView).Row["guid"].ToString(); - ExecuteTestOn(cfg, currentGuid, cfg.TestValue); + ExecuteTestOn(tmpCfg as OutputConfigItem, (tmpCfg as OutputConfigItem).TestValue); } catch (IndexOutOfRangeException ex) { - String RowDescription = ((lastRow.DataBoundItem as DataRowView).Row["description"] as String); + String RowDescription = lastTestedConfig.Name; Log.Instance.log($"Error during test mode execution: module not connected > {RowDescription}. {ex.Message}", LogSeverity.Error); OnTestModeException(new Exception(i18n._tr("uiMessageTestModeModuleNotConnected")), new EventArgs()); } catch (Exception ex) { - String RowDescription = ((row.DataBoundItem as DataRowView).Row["description"] as String); + String RowDescription = row.Name; Log.Instance.log($"Error during test mode execution: {RowDescription}. {ex.Message}", LogSeverity.Error); OnTestModeException(ex, new EventArgs()); } } - testModeIndex = ++testModeIndex % dataGridViewConfig.RowCount; + testModeIndex = ++testModeIndex % ConfigItems.Count; } public void ExecuteTestOff(OutputConfigItem cfg, bool ResetConfigItemInTest) { + if (cfg == null) return; + if (ResetConfigItemInTest) ConfigItemInTestMode = null; OutputConfigItem offCfg = (OutputConfigItem)cfg.Clone(); - - if (offCfg.DisplayType == null) return; - switch (offCfg.DisplayType) + if (offCfg.DeviceType == null) return; + + switch (offCfg.DeviceType) { case MobiFlightServo.TYPE: - ExecuteDisplay(offCfg.Servo.Min, offCfg); + var servo = offCfg.Device as Servo; + ExecuteDisplay(servo.Min, offCfg); break; - case OutputConfig.LcdDisplay.Type: - offCfg.LcdDisplay.Lines.Clear(); - offCfg.LcdDisplay.Lines.Add(new string(' ', 20 * 4)); + case OutputConfig.LcdDisplay.DeprecatedType: + var lcdDisplay = offCfg.Device as LcdDisplay; + lcdDisplay.Lines.Clear(); + lcdDisplay.Lines.Add(new string(' ', 20 * 4)); ExecuteDisplay(new string(' ', 20 * 4), offCfg); break; @@ -1313,20 +1439,31 @@ public void ExecuteTestOff(OutputConfigItem cfg, bool ResetConfigItemInTest) // Do nothing for the InputAction break; - default: - offCfg.LedModule.DisplayLedDecimalPoints = new List(); - ExecuteDisplay(offCfg.DisplayType == ArcazeLedDigit.TYPE ? " " : "0", offCfg); + + case MobiFlightOutput.TYPE: + ExecuteDisplay("0", offCfg); break; + + // case ArcazeLedDigit.TYPE: + case MobiFlightLedModule.TYPE: + var ledModule = offCfg.Device as LedModule; + ledModule.DisplayLedDecimalPoints = new List(); + ExecuteDisplay(" ", offCfg); + break; + } + + cfg.Status.Remove(ConfigItemStatusType.Test); + MessageExchange.Instance.Publish(new ConfigValueUpdate(cfg)); } - public void ExecuteTestOn(OutputConfigItem cfg, string configGuid, ConnectorValue value = null) + public void ExecuteTestOn(OutputConfigItem cfg, ConnectorValue value = null) { - ConfigItemInTestMode = configGuid; + ConfigItemInTestMode = cfg; - if (cfg.DisplayType == null) return; + if (cfg.DeviceType == null) return; - switch (cfg.DisplayType) + switch (cfg.DeviceType) { // the following execute displays assume that // @@ -1337,18 +1474,20 @@ public void ExecuteTestOn(OutputConfigItem cfg, string configGuid, ConnectorValu // we won't have an actual connector value, and then // we will use a static test string, that is specific to the device. case MobiFlightStepper.TYPE: - ExecuteDisplay(value?.ToString() ?? cfg.Stepper.TestValue.ToString(), cfg); + var stepper = cfg.Device as OutputConfig.Stepper; + ExecuteDisplay(value?.ToString() ?? stepper.TestValue.ToString(), cfg); break; case MobiFlightServo.TYPE: - ExecuteDisplay(value?.ToString() ?? cfg.Servo.Max, cfg); + var servo = cfg.Device as OutputConfig.Servo; + ExecuteDisplay(value?.ToString() ?? servo.Max, cfg); break; case ArcazeLedDigit.TYPE: - case OutputConfig.LcdDisplay.Type: + case OutputConfig.LcdDisplay.DeprecatedType: ExecuteDisplay(value?.ToString() ?? "1234567890", cfg); break; - + case MobiFlightShiftRegister.TYPE: ExecuteDisplay(value?.ToString() ?? "1", cfg); break; @@ -1365,20 +1504,15 @@ public void ExecuteTestOn(OutputConfigItem cfg, string configGuid, ConnectorValu ExecuteDisplay(value?.ToString() ?? "255", cfg); break; } + + cfg.Status[ConfigItemStatusType.Test] = "TEST_EXECUTION"; + MessageExchange.Instance.Publish(new ConfigValueUpdate(cfg)); } private void ClearErrorMessages() { - foreach (DataGridViewRow row in dataGridViewConfig.Rows) - { - row.ErrorText = ""; - } - - foreach (DataGridViewRow row in inputsDataGridView.Rows) - { - row.ErrorText = ""; - } + MessageExchange.Instance.Publish(new ConfigValueUpdate(ConfigItems)); } #if MOBIFLIGHT @@ -1405,77 +1539,73 @@ void mobiFlightCache_OnButtonPressed(object sender, InputEventArgs e) else if (e.Type == DeviceType.InputMultiplexer) { eventAction = MobiFlightInputMultiplexer.InputEventIdToString(e.Value); -//GCC CHECK + //GCC CHECK // The inputKey gets the external pin no. added to it if the input came from a shift register // xThis ensures caching works correctly when there are multiple pins on the same physical device inputKey = inputKey + e.ExtPin; } else if (e.Type == DeviceType.AnalogInput) { - eventAction = MobiFlightAnalogInput.InputEventIdToString(0) + " => " +e.Value; + eventAction = MobiFlightAnalogInput.InputEventIdToString(0) + " => " + e.Value; } var msgEventLabel = $"{e.Name} => {e.DeviceLabel} {(e.ExtPin.HasValue ? $":{e.ExtPin}" : "")} => {eventAction}"; lock (inputCache) - { + { if (!inputCache.ContainsKey(inputKey)) { - inputCache[inputKey] = new List>(); + inputCache[inputKey] = new List(); // check if we have configs for this button // and store it - foreach (DataGridViewRow gridViewRow in inputsDataGridView.Rows) + foreach (var cfg in ConfigItems.Where(c=>c is InputConfigItem).Cast()) { try { - if (gridViewRow.DataBoundItem == null) continue; + // item currently created and not saved yet. + if (cfg == null) continue; - InputConfigItem cfg = ((gridViewRow.DataBoundItem as DataRowView).Row["settings"] as InputConfigItem); - - // item currently created and not saved yet. - if (cfg == null) continue; - - if (cfg.ModuleSerial != null && - cfg.ModuleSerial.Contains("/ " + e.Serial) && - (cfg.Name == e.DeviceId || + if (cfg.ModuleSerial != null && + cfg.ModuleSerial.Contains("/ " + e.Serial) && + (cfg.DeviceName == e.DeviceId || // for backward compatibility we have to make this check // because we used to have the label in the config // but now we want to store the internal button identifier // so that the label can change any time without breaking the config - (Joystick.IsJoystickSerial(cfg.ModuleSerial) && cfg.Name == e.DeviceLabel))) - { - // Input shift registers have an additional check to see if the pin that changed matches the pin - // assigned to the row. If not just skip this row. Without this every row that uses the input shift register - // would get added to the input cache and fired even though the pins don't match. -//GCC CHECK - if (e.Type == DeviceType.InputShiftRegister && cfg.inputShiftRegister != null && cfg.inputShiftRegister.ExtPin != e.ExtPin) - { - continue; - } - // similarly also for digital input Multiplexer - if (e.Type == DeviceType.InputMultiplexer && cfg.inputMultiplexer != null && cfg.inputMultiplexer.DataPin != e.ExtPin) - { - continue; - } - inputCache[inputKey].Add(new Tuple(cfg, gridViewRow)); - } - } - catch (Exception ex) - { - // probably the last row with no settings object - continue; - } - } - } - - // no config for this button found - if (inputCache[inputKey].Count == 0) - { - if (LogIfNotJoystickOrJoystickAxisEnabled(e.Serial, e.Type)) - Log.Instance.log($"{msgEventLabel} => No config found.", LogSeverity.Warn); - return; - } + (Joystick.IsJoystickSerial(cfg.ModuleSerial) && cfg.DeviceName == e.DeviceLabel))) + { + // Input shift registers have an additional check to see if the pin that changed matches the pin + // assigned to the row. If not just skip this row. Without this every row that uses the input shift register + // would get added to the input cache and fired even though the pins don't match. + //GCC CHECK + if (e.Type == DeviceType.InputShiftRegister && cfg.inputShiftRegister != null && cfg.inputShiftRegister.ExtPin != e.ExtPin) + { + continue; + } + // similarly also for digital input Multiplexer + if (e.Type == DeviceType.InputMultiplexer && cfg.inputMultiplexer != null && cfg.inputMultiplexer.DataPin != e.ExtPin) + { + continue; + } + inputCache[inputKey].Add(cfg); + } + } + catch (Exception ex) + { + // probably the last row with no settings object + continue; + } + } + } + + // no config for this button found + if (inputCache[inputKey].Count == 0) + { + if (LogIfNotJoystickOrJoystickAxisEnabled(e.Serial, e.Type)) + Log.Instance.log($"{msgEventLabel} => No config found.", LogSeverity.Warn); + return; + } } // Skip execution if not started @@ -1495,49 +1625,42 @@ void mobiFlightCache_OnButtonPressed(object sender, InputEventArgs e) joystickManager = joystickManager }; - foreach (Tuple tuple in inputCache[inputKey]) + foreach (var cfg in inputCache[inputKey]) { - if ((tuple.Item2.DataBoundItem as DataRowView) == null) + if (!cfg.Active) { - Log.Instance.log("mobiFlightCache_OnButtonPressed: tuple.Item2.DataBoundItem is NULL", LogSeverity.Debug); - continue; - } - - DataRow row = (tuple.Item2.DataBoundItem as DataRowView).Row; - - if (!(bool)row["active"]) - { - Log.Instance.log($"{msgEventLabel} => skipping \"{row["description"]}\", config not active.", LogSeverity.Warn); + Log.Instance.log($"{msgEventLabel} => skipping \"{cfg.Name}\", config not active.", LogSeverity.Warn); continue; } try { // if there are preconditions check and skip if necessary - if (tuple.Item1.Preconditions.Count > 0) + if (cfg.Preconditions.Count > 0) { - if (!CheckPrecondition(tuple.Item1, currentValue)) + if (!CheckPrecondition(cfg, currentValue)) { - tuple.Item2.ErrorText = i18n._tr("uiMessagePreconditionNotSatisfied"); + // REDSIGN: Review if needed + // tuple.Item2.ErrorText = i18n._tr("uiMessagePreconditionNotSatisfied"); continue; } else { - tuple.Item2.ErrorText = ""; + // REDSIGN: Review if needed + // tuple.Item2.ErrorText = ""; } } + Log.Instance.log($"{msgEventLabel} => executing \"{cfg.Name}\"", LogSeverity.Info); - Log.Instance.log($"{msgEventLabel} => executing \"{row["description"]}\"", LogSeverity.Info); - - tuple.Item1.execute( + cfg.execute( cacheCollection, e, - GetRefs(tuple.Item1.ConfigRefs)) + GetRefs(cfg.ConfigRefs)) ; } catch (Exception ex) { - Log.Instance.log($"Error excuting \"{row["description"]}\": {ex.Message}", LogSeverity.Error); + Log.Instance.log($"Error excuting \"{cfg.Name}\": {ex.Message}", LogSeverity.Error); } } @@ -1546,16 +1669,11 @@ void mobiFlightCache_OnButtonPressed(object sender, InputEventArgs e) private void UpdateInputPreconditions() { - inputsDataGridView.SuspendLayout(); - foreach (DataGridViewRow gridViewRow in inputsDataGridView.Rows) + foreach (var cfg in ConfigItems.Where(c => c is InputConfigItem).Cast()) { try { - if (gridViewRow.DataBoundItem == null) continue; - if (!(bool)gridViewRow.Cells["inputActive"].Value) continue; - - DataRowView rowView = gridViewRow.DataBoundItem as DataRowView; - InputConfigItem cfg = rowView.Row["settings"] as InputConfigItem; + if (!cfg.Active) continue; // item currently created and not saved yet. if (cfg == null) continue; @@ -1566,12 +1684,14 @@ private void UpdateInputPreconditions() ConnectorValue currentValue = new ConnectorValue(); if (!CheckPrecondition(cfg, currentValue)) { - gridViewRow.ErrorText = i18n._tr("uiMessagePreconditionNotSatisfied"); + // REDSIGN: Review if needed + // gridViewRow.ErrorText = i18n._tr("uiMessagePreconditionNotSatisfied"); continue; } else { - gridViewRow.ErrorText = ""; + // REDSIGN: Review if needed + // gridViewRow.ErrorText = ""; } } } @@ -1581,7 +1701,6 @@ private void UpdateInputPreconditions() continue; } } - inputsDataGridView.ResumeLayout(); } private bool LogIfNotJoystickOrJoystickAxisEnabled(String Serial, DeviceType type) @@ -1608,7 +1727,7 @@ public Dictionary GetStatistics() result["arcazeCache.Enabled"] = 0; #if ARCAZE - if(arcazeCache.Enabled) + if (arcazeCache.Enabled) { result["arcazeCache.Enabled"] = 1; result["arcazeCache.Count"] = arcazeCache.getModuleInfo().Count(); @@ -1648,7 +1767,7 @@ private void OnStartActions() moduleCache = mobiFlightCache, joystickManager = joystickManager, }, null, null); - } + } } } diff --git a/MobiFlight/IConnectedDevice.cs b/MobiFlight/IConnectedDevice.cs index 7ec5f1d5e..8dea9c5d1 100644 --- a/MobiFlight/IConnectedDevice.cs +++ b/MobiFlight/IConnectedDevice.cs @@ -8,7 +8,7 @@ namespace MobiFlight public interface IConnectedDevice { String Name { get; } - DeviceType Type { get; } + DeviceType TypeDeprecated { get; } void Stop(); } diff --git a/MobiFlight/InputConfig/AnalogInputConfig.cs b/MobiFlight/InputConfig/AnalogInputConfig.cs index 1cca1afc1..0570d4d3e 100644 --- a/MobiFlight/InputConfig/AnalogInputConfig.cs +++ b/MobiFlight/InputConfig/AnalogInputConfig.cs @@ -1,7 +1,6 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Xml; using System.Xml.Serialization; @@ -10,9 +9,8 @@ namespace MobiFlight.InputConfig public class AnalogInputConfig : IXmlSerializable, ICloneable { - public InputAction onChange; - - + public InputAction onChange; + public object Clone() { AnalogInputConfig clone = new AnalogInputConfig(); diff --git a/MobiFlight/InputConfig/ButtonInputConfig.cs b/MobiFlight/InputConfig/ButtonInputConfig.cs index 70b35d577..904b29092 100644 --- a/MobiFlight/InputConfig/ButtonInputConfig.cs +++ b/MobiFlight/InputConfig/ButtonInputConfig.cs @@ -2,6 +2,7 @@ using System.Timers; using System.Collections.Generic; using System.Xml.Serialization; +using MobiFlight.Base; namespace MobiFlight.InputConfig { diff --git a/MobiFlight/InputConfig/EncoderInputConfig.cs b/MobiFlight/InputConfig/EncoderInputConfig.cs index 0d4319188..f76c892d3 100644 --- a/MobiFlight/InputConfig/EncoderInputConfig.cs +++ b/MobiFlight/InputConfig/EncoderInputConfig.cs @@ -1,11 +1,10 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Xml; using System.Xml.Serialization; -namespace MobiFlight.InputConfig +namespace MobiFlight.InputConfig { public class EncoderInputConfig : IXmlSerializable, ICloneable { diff --git a/MobiFlight/InputConfig/EventIdInputAction.cs b/MobiFlight/InputConfig/EventIdInputAction.cs index e06395a94..85ea67439 100644 --- a/MobiFlight/InputConfig/EventIdInputAction.cs +++ b/MobiFlight/InputConfig/EventIdInputAction.cs @@ -12,8 +12,8 @@ public class EventIdInputAction : InputAction, ICloneable const Int16 ParamOffset = 0x3114; public new const String Label = "FSUIPC - EventID"; public const String TYPE = "EventIdInputAction"; - public Int32 EventId; - public String Param = "0"; + public Int32 EventId { get; set; } + public String Param { get; set; } = "0"; override public object Clone() { diff --git a/MobiFlight/InputConfig/FsuipcOffsetInputAction.cs b/MobiFlight/InputConfig/FsuipcOffsetInputAction.cs index 350471624..7da928eae 100644 --- a/MobiFlight/InputConfig/FsuipcOffsetInputAction.cs +++ b/MobiFlight/InputConfig/FsuipcOffsetInputAction.cs @@ -1,11 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Serialization; -using MobiFlight; -using MobiFlight.Modifier; +using MobiFlight.Modifier; using MobiFlight.OutputConfig; +using System; +using System.Collections.Generic; namespace MobiFlight.InputConfig { @@ -91,7 +87,7 @@ public override void execute( if (value.Contains("$")) { - ConnectorValue tmpValue = MobiFlight.FSUIPC.FsuipcHelper.executeRead(this, cache as FSUIPC.FSUIPCCacheInterface); + ConnectorValue tmpValue = MobiFlight.FSUIPC.FsuipcHelper.executeRead(this.FSUIPC, cache as FSUIPC.FSUIPCCacheInterface); Tuple replacement = new Tuple("$", tmpValue.ToString()); replacements.Add(replacement); } diff --git a/MobiFlight/InputConfig/InputAction.cs b/MobiFlight/InputConfig/InputAction.cs index 590c43636..26efc45a9 100644 --- a/MobiFlight/InputConfig/InputAction.cs +++ b/MobiFlight/InputConfig/InputAction.cs @@ -1,8 +1,8 @@ -using MobiFlight.xplane; +using MobiFlight.BrowserMessages.Incoming.Converter; +using MobiFlight.xplane; +using Newtonsoft.Json; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Xml.Serialization; namespace MobiFlight.InputConfig @@ -16,6 +16,7 @@ public class CacheCollection public JoystickManager joystickManager; } + [JsonConverter(typeof(InputActionConverter))] abstract public class InputAction : IXmlSerializable, ICloneable { public const String Label = "InputAction"; diff --git a/MobiFlight/InputConfig/InputActionFactory.cs b/MobiFlight/InputConfig/InputActionFactory.cs index d0656db8e..50c3b4108 100644 --- a/MobiFlight/InputConfig/InputActionFactory.cs +++ b/MobiFlight/InputConfig/InputActionFactory.cs @@ -77,5 +77,24 @@ static public InputAction CreateByType(string type) return action; } + + static public List GetAllInputActionTypes() + { + return new List + { + typeof(EventIdInputAction), + typeof(FsuipcOffsetInputAction), + typeof(JeehellInputAction), + typeof(KeyInputAction), + typeof(LuaMacroInputAction), + typeof(MSFS2020CustomInputAction), + typeof(MSFS2020EventIdInputAction), + typeof(PmdgEventIdInputAction), + typeof(RetriggerInputAction), + typeof(VariableInputAction), + typeof(VJoyInputAction), + typeof(XplaneInputAction) + }; + } } } diff --git a/MobiFlight/InputConfig/JeehellInputAction.cs b/MobiFlight/InputConfig/JeehellInputAction.cs index c492d35dd..a8dc65348 100644 --- a/MobiFlight/InputConfig/JeehellInputAction.cs +++ b/MobiFlight/InputConfig/JeehellInputAction.cs @@ -20,8 +20,8 @@ public class JeehellInputAction : InputAction, ICloneable public new const String Label = "FSUIPC - Jeehell - Events"; public const String TYPE = "JeehellInputAction"; - public Byte EventId; - public String Param = ""; + public Byte EventId { get; set; } + public String Param { get; set; } = ""; override public object Clone() { @@ -148,7 +148,7 @@ public override void execute(CacheCollection cacheCollection, if (value.Contains("$")) { - ConnectorValue tmpValue = FSUIPC.FsuipcHelper.executeRead(cfg, cache as FSUIPC.FSUIPCCacheInterface); + ConnectorValue tmpValue = FSUIPC.FsuipcHelper.executeRead(cfg.FSUIPC, cache as FSUIPC.FSUIPCCacheInterface); Tuple replacement = new Tuple("$", tmpValue.ToString()); replacements.Add(replacement); } diff --git a/MobiFlight/InputConfig/KeyInputAction.cs b/MobiFlight/InputConfig/KeyInputAction.cs index c0ce8db8b..d70a4c180 100644 --- a/MobiFlight/InputConfig/KeyInputAction.cs +++ b/MobiFlight/InputConfig/KeyInputAction.cs @@ -1,17 +1,15 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Windows.Forms; namespace MobiFlight.InputConfig { public class KeyInputAction : InputAction, ICloneable { - public System.Windows.Forms.Keys Key; - public bool Control; - public bool Alt; - public bool Shift; + public Keys Key { get; set; } + public bool Control { get; set; } + public bool Alt { get; set; } + public bool Shift { get; set; } public KeyboardInputInterface Keyboard; public new const String Label = "MobiFlight - Keyboard Input"; public const String TYPE = "KeyInputAction"; @@ -62,11 +60,14 @@ public override void execute( public override bool Equals(object obj) { - return obj != null && obj is KeyInputAction && - Key == (obj as KeyInputAction).Key && - Alt == (obj as KeyInputAction).Alt && - Shift == (obj as KeyInputAction).Shift && - Control == (obj as KeyInputAction).Control; + if (obj == null || !(obj is KeyInputAction)) return false; + var other = obj as KeyInputAction; + + return + Key == other.Key && + Alt == other.Alt && + Shift == other.Shift && + Control == other.Control; } } } diff --git a/MobiFlight/InputConfig/LuaMacroInputAction.cs b/MobiFlight/InputConfig/LuaMacroInputAction.cs index e1deca93e..d16fa0648 100644 --- a/MobiFlight/InputConfig/LuaMacroInputAction.cs +++ b/MobiFlight/InputConfig/LuaMacroInputAction.cs @@ -8,8 +8,8 @@ namespace MobiFlight.InputConfig { public class LuaMacroInputAction : InputAction { - public String MacroName = ""; - public String MacroValue = "0"; + public String MacroName { get; set; } = ""; + public String MacroValue { get; set; } = "0"; public new const String Label = "FSUIPC - Lua Macro"; public const String TYPE = "LuaMacroInputAction"; diff --git a/MobiFlight/InputConfig/MSFS2020CustomInputAction.cs b/MobiFlight/InputConfig/MSFS2020CustomInputAction.cs index 1e0cf4a9b..30aa470a2 100644 --- a/MobiFlight/InputConfig/MSFS2020CustomInputAction.cs +++ b/MobiFlight/InputConfig/MSFS2020CustomInputAction.cs @@ -1,7 +1,6 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; namespace MobiFlight.InputConfig { @@ -10,8 +9,10 @@ public class MSFS2020CustomInputAction : InputAction, ICloneable public new const String Label = "Microsoft Flight Simulator"; public new const String CacheType = "SimConnect"; public const String TYPE = "MSFS2020CustomInputAction"; - public String Command; - public String PresetId; + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public String Command { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public String PresetId { get; set; } override public object Clone() { diff --git a/MobiFlight/InputConfig/MSFS2020EventIdInputAction.cs b/MobiFlight/InputConfig/MSFS2020EventIdInputAction.cs index 001a35f1f..965f6ffa8 100644 --- a/MobiFlight/InputConfig/MSFS2020EventIdInputAction.cs +++ b/MobiFlight/InputConfig/MSFS2020EventIdInputAction.cs @@ -10,7 +10,7 @@ public class MSFS2020EventIdInputAction : InputAction, ICloneable public new const String Label = "MSFS2020 - Events"; public new const String CacheType = "SimConnect"; public const String TYPE = "MSFS2020EventIdInputAction"; - public String EventId; + public String EventId { get; set; } override public object Clone() { diff --git a/MobiFlight/InputConfig/PmdgEventIdInputAction.cs b/MobiFlight/InputConfig/PmdgEventIdInputAction.cs index fb8383b5d..a90c8ee77 100644 --- a/MobiFlight/InputConfig/PmdgEventIdInputAction.cs +++ b/MobiFlight/InputConfig/PmdgEventIdInputAction.cs @@ -9,7 +9,7 @@ public class PmdgEventIdInputAction : EventIdInputAction { public new const String TYPE = "PmdgEventIdInputAction"; public new const String Label = "FSUIPC - PMDG - Event ID"; - public new String Param; + public new String Param { get; set; } public enum PmdgAircraftType { B737, B777, B747 }; public PmdgAircraftType AircraftType = PmdgAircraftType.B737; diff --git a/MobiFlight/InputConfig/VJoyInputAction.cs b/MobiFlight/InputConfig/VJoyInputAction.cs index ebfcc669b..c62bd6b46 100644 --- a/MobiFlight/InputConfig/VJoyInputAction.cs +++ b/MobiFlight/InputConfig/VJoyInputAction.cs @@ -14,11 +14,11 @@ public class VJoyInputAction : InputAction new public const string Label = "MobiFlight - Virtual Joystick input (vJoy)"; public const String TYPE = "vJoyInputAction"; - public uint vJoyID; - public int buttonNr; - public String axisString; - public bool buttonComand; - public String sendValue; + public uint vJoyID { get; set; } + public int buttonNr { get; set; } + public String axisString { get; set; } + public bool buttonComand { get; set; } + public String sendValue { get; set; } public override object Clone() { diff --git a/MobiFlight/InputConfig/VariableInputAction.cs b/MobiFlight/InputConfig/VariableInputAction.cs index 04a79959f..58971b119 100644 --- a/MobiFlight/InputConfig/VariableInputAction.cs +++ b/MobiFlight/InputConfig/VariableInputAction.cs @@ -11,7 +11,7 @@ public class VariableInputAction : InputAction, ICloneable { new public const String Label = "MobiFlight - Variable"; public const String TYPE = "VariableInputAction"; - public MobiFlightVariable Variable = new MobiFlightVariable(); + public MobiFlightVariable Variable { get; set; } = new MobiFlightVariable(); override public object Clone() { diff --git a/MobiFlight/InputConfig/XplaneInputAction.cs b/MobiFlight/InputConfig/XplaneInputAction.cs index fb5092ad3..3ce50806e 100644 --- a/MobiFlight/InputConfig/XplaneInputAction.cs +++ b/MobiFlight/InputConfig/XplaneInputAction.cs @@ -13,9 +13,9 @@ public class XplaneInputAction : InputAction, ICloneable public const String INPUT_TYPE_DATAREF = "DataRef"; public const String INPUT_TYPE_COMMAND = "Command"; public const String TYPE = "XplaneInputAction"; - public String InputType = "DataRef"; - public String Path = ""; - public String Expression = "$"; + public String InputType { get; set; } = "DataRef"; + public String Path { get; set; } = ""; + public String Expression { get; set; } = "$"; override public object Clone() { diff --git a/MobiFlight/InputConfigItem.cs b/MobiFlight/InputConfigItem.cs index 6034cb59e..e9f806f32 100644 --- a/MobiFlight/InputConfigItem.cs +++ b/MobiFlight/InputConfigItem.cs @@ -1,20 +1,22 @@ using MobiFlight.Base; using MobiFlight.Config; using MobiFlight.InputConfig; -using System; using System.Collections.Generic; +using System; using System.Xml; using System.Xml.Serialization; +using System.Reflection; +using Newtonsoft.Json; namespace MobiFlight { - public class InputConfigItem : IBaseConfigItem, IXmlSerializable, ICloneable, IConfigRefConfigItem + public class InputConfigItem : ConfigItem, IXmlSerializable, ICloneable, IConfigRefConfigItem { // we initialize a cultureInfo object // which is used for serialization // independently from current cultureInfo // @see: https://forge.simple-solutions.de/issues/275 - private System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("de"); + private System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("de"); public const String TYPE_NOTSET = "-"; public const String TYPE_BUTTON = MobiFlightButton.TYPE; @@ -25,21 +27,24 @@ public class InputConfigItem : IBaseConfigItem, IXmlSerializable, ICloneable, IC // only for backward compatibility during loading public const String TYPE_ANALOG_OLD = "Analog"; - public string ModuleSerial { get; set; } - public string Name { get; set; } - public string Type { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public ButtonInputConfig button { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public EncoderInputConfig encoder { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public InputShiftRegisterConfig inputShiftRegister { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public InputMultiplexerConfig inputMultiplexer { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public AnalogInputConfig analog { get; set; } - public PreconditionList Preconditions { get; set; } - public ConfigRefList ConfigRefs { get; set; } + + public string DeviceType { get; set; } + public string DeviceName { get; set; } public InputConfigItem() { Preconditions = new PreconditionList(); - Type = TYPE_NOTSET; + DeviceType = TYPE_NOTSET; ConfigRefs = new ConfigRefList(); } @@ -81,11 +86,13 @@ public System.Xml.Schema.XmlSchema GetSchema() public virtual void ReadXml(XmlReader reader) { ModuleSerial = reader["serial"]; - Name = reader["name"]; + // This name is only present with input devices + // and it is in the wrong place. + DeviceName = reader["name"]; if (reader["type"] != null && reader["type"] != "") { - Type = reader["type"]; - if (Type == TYPE_ANALOG_OLD) Type = TYPE_ANALOG; + DeviceType = reader["type"]; + if (DeviceType == TYPE_ANALOG_OLD) DeviceType = TYPE_ANALOG; } reader.Read(); // this should be the button or encoder @@ -121,12 +128,12 @@ public virtual void ReadXml(XmlReader reader) } // this is fallback, because type was not set in the past - if (Type == TYPE_NOTSET) + if (DeviceType == TYPE_NOTSET) { if (button != null) - Type = TYPE_BUTTON; + DeviceType = TYPE_BUTTON; if (encoder != null) - Type = TYPE_ENCODER; + DeviceType = TYPE_ENCODER; } /* @@ -149,7 +156,7 @@ public virtual void ReadXml(XmlReader reader) Preconditions.Add(tmp); } while (reader.LocalName == "precondition"); } - if (reader.NodeType != XmlNodeType.EndElement) + if (reader.NodeType != XmlNodeType.EndElement) reader.Read(); // this should be the corresponding "end" node if (reader.NodeType == XmlNodeType.EndElement) @@ -177,39 +184,50 @@ public virtual void ReadXml(XmlReader reader) public virtual void WriteXml(XmlWriter writer) { + WriteXml(writer, true); + } + + public virtual void WriteXml(XmlWriter writer, bool writeInstanceData) + { + if (writeInstanceData) + { + writer.WriteAttributeString("msdata:InstanceType", $"MobiFlight.InputConfigItem, MFConnector, Version={Assembly.GetExecutingAssembly().GetName().Version}, Culture=neutral, PublicKeyToken=null"); + writer.WriteAttributeString("xmlns:msdata", "urn:schemas-microsoft-com:xml-msdata"); + } + writer.WriteAttributeString("serial", this.ModuleSerial); - writer.WriteAttributeString("name", this.Name); - writer.WriteAttributeString("type", this.Type); + writer.WriteAttributeString("name", this.DeviceName); + writer.WriteAttributeString("type", this.DeviceType); - if (this.Type == TYPE_BUTTON && button != null) + if (this.DeviceType == TYPE_BUTTON && button != null) { writer.WriteStartElement("button"); button.WriteXml(writer); writer.WriteEndElement(); } - if (this.Type == TYPE_ENCODER && encoder != null) + if (this.DeviceType == TYPE_ENCODER && encoder != null) { writer.WriteStartElement("encoder"); encoder.WriteXml(writer); writer.WriteEndElement(); } - if (this.Type == TYPE_INPUT_SHIFT_REGISTER && inputShiftRegister != null) + if (this.DeviceType == TYPE_INPUT_SHIFT_REGISTER && inputShiftRegister != null) { writer.WriteStartElement("inputShiftRegister"); inputShiftRegister.WriteXml(writer); writer.WriteEndElement(); } - if (this.Type == TYPE_INPUT_MULTIPLEXER && inputMultiplexer != null) + if (this.DeviceType == TYPE_INPUT_MULTIPLEXER && inputMultiplexer != null) { writer.WriteStartElement("inputMultiplexer"); inputMultiplexer.WriteXml(writer); writer.WriteEndElement(); } - if (this.Type == TYPE_ANALOG && analog != null) + if (this.DeviceType == TYPE_ANALOG && analog != null) { writer.WriteStartElement("analog"); analog.WriteXml(writer); @@ -231,39 +249,25 @@ public virtual void WriteXml(XmlWriter writer) writer.WriteEndElement(); } - public object Clone() + public InputConfigItem(InputConfigItem config) : base(config) { - InputConfigItem clone = new InputConfigItem(); - clone.ModuleSerial = ModuleSerial; - clone.Name = Name; - clone.Type = Type; - - if (button != null) - clone.button = (ButtonInputConfig)this.button.Clone(); - - if (encoder != null) - clone.encoder = (EncoderInputConfig)this.encoder.Clone(); - - if (inputShiftRegister != null) - clone.inputShiftRegister = (InputShiftRegisterConfig)this.inputShiftRegister.Clone(); - - if (inputMultiplexer != null) - clone.inputMultiplexer = (InputMultiplexerConfig)this.inputMultiplexer.Clone(); - - if (analog != null) - clone.analog = (AnalogInputConfig)this.analog.Clone(); - - foreach (Precondition p in Preconditions) - { - clone.Preconditions.Add(p.Clone() as Precondition); - } + this.button = (ButtonInputConfig)config.button?.Clone(); + this.encoder = (EncoderInputConfig)config.encoder?.Clone(); + this.inputShiftRegister = (InputShiftRegisterConfig)config.inputShiftRegister?.Clone(); + this.inputMultiplexer = (InputMultiplexerConfig)config.inputMultiplexer?.Clone(); + this.analog = (AnalogInputConfig)config.analog?.Clone(); + this.DeviceType = config.DeviceType?.Clone() as string; + this.DeviceName = config.DeviceName?.Clone() as string; + } - foreach (ConfigRef configRef in ConfigRefs) - { - clone.ConfigRefs.Add(configRef.Clone() as ConfigRef); - } + public override object Clone() + { + return (object)new InputConfigItem(this); + } - return clone; + public override Base.IConfigItem Duplicate() + { + return new InputConfigItem(this) { GUID = System.Guid.NewGuid().ToString() }; } internal void execute( @@ -271,10 +275,10 @@ internal void execute( InputEventArgs e, List configRefs) { - switch (Type) + switch (DeviceType) { case TYPE_BUTTON: - if (button != null) + if (button != null) button.execute(cacheCollection, e, configRefs); break; case TYPE_ENCODER: @@ -296,28 +300,28 @@ internal void execute( if (analog != null) analog.execute(cacheCollection, e, configRefs); break; - } + } } public Dictionary GetStatistics() { Dictionary result = new Dictionary(); - if (Type == TYPE_BUTTON) + if (DeviceType == TYPE_BUTTON) { // explicit test is needed // in some older version we didn't save the node correctly if (button != null) result = button?.GetStatistics(); - } else if (Type == TYPE_ENCODER) + } else if (DeviceType == TYPE_ENCODER) { // explicit test is needed // in some older version we didn't save the node correctly if (encoder != null) result = encoder.GetStatistics(); } - else if (Type == TYPE_ANALOG) + else if (DeviceType == TYPE_ANALOG) { // explicit test is needed // in some older version we didn't save the node correctly @@ -330,24 +334,23 @@ public Dictionary GetStatistics() public override bool Equals(object obj) { - bool areSame = (obj != null && obj is InputConfigItem) && - ModuleSerial == (obj as InputConfigItem).ModuleSerial && - Name == (obj as InputConfigItem).Name && - Type == (obj as InputConfigItem).Type; - - if (areSame) { - areSame = areSame && ((button == null && (obj as InputConfigItem).button == null) || (button != null && button.Equals((obj as InputConfigItem).button))); - areSame = areSame && ((encoder == null && (obj as InputConfigItem).encoder == null) || (encoder != null && encoder.Equals((obj as InputConfigItem).encoder))); - areSame = areSame && ((analog == null && (obj as InputConfigItem).analog == null) || (analog != null && analog.Equals((obj as InputConfigItem).analog))); - areSame = areSame && ((inputShiftRegister == null && (obj as InputConfigItem).inputShiftRegister == null) || (inputShiftRegister != null && inputShiftRegister.Equals((obj as InputConfigItem).inputShiftRegister))); - areSame = areSame && ((inputMultiplexer == null && (obj as InputConfigItem).inputMultiplexer == null) || (inputMultiplexer != null && inputMultiplexer.Equals((obj as InputConfigItem).inputMultiplexer))); - - areSame = areSame && - Preconditions.Equals((obj as InputConfigItem).Preconditions) && - ConfigRefs.Equals((obj as InputConfigItem).ConfigRefs); - } + if (obj == null || !(obj is InputConfigItem item)) return false; + if (!base.Equals(obj)) return false; + + return DeviceName == item.DeviceName && + DeviceType == item.DeviceType && + button.AreEqual(item.button) && + encoder.AreEqual(item.encoder) && + analog.AreEqual(item.analog) && + inputShiftRegister.AreEqual(item.inputShiftRegister) && + inputMultiplexer.AreEqual(item.inputMultiplexer) && + Preconditions.Equals(item.Preconditions) && + ConfigRefs.Equals(item.ConfigRefs); + } - return areSame; + protected override IDeviceConfig GetDeviceConfig() + { + return null; } } } diff --git a/MobiFlight/MobiFlightAnalogInput.cs b/MobiFlight/MobiFlightAnalogInput.cs index cac1d9f4f..928cf2bd6 100644 --- a/MobiFlight/MobiFlightAnalogInput.cs +++ b/MobiFlight/MobiFlightAnalogInput.cs @@ -16,7 +16,7 @@ public enum InputEvent public string Name { get; set; } - public DeviceType Type { get { return DeviceType.AnalogInput; } } + public DeviceType TypeDeprecated { get { return DeviceType.AnalogInput; } } public static string InputEventIdToString(int enumId) { string eventAction = "n/a"; diff --git a/MobiFlight/MobiFlightButton.cs b/MobiFlight/MobiFlightButton.cs index 525c09409..c0a6036ca 100644 --- a/MobiFlight/MobiFlightButton.cs +++ b/MobiFlight/MobiFlightButton.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MobiFlight +namespace MobiFlight { class MobiFlightButton : IConnectedDevice { @@ -19,7 +13,7 @@ public enum InputEvent public string Name { get; set; } - public DeviceType Type { get { return DeviceType.Button; } } + public DeviceType TypeDeprecated { get { return DeviceType.Button; } } public static string InputEventIdToString(int enumId) { string eventAction = "n/a"; diff --git a/MobiFlight/MobiFlightCache.cs b/MobiFlight/MobiFlightCache.cs index 8534da81e..9c16db2bc 100644 --- a/MobiFlight/MobiFlightCache.cs +++ b/MobiFlight/MobiFlightCache.cs @@ -671,7 +671,7 @@ public void SetLcdDisplay(string serial, OutputConfig.LcdDisplay LcdConfig, stri MobiFlightLcdDisplay display = null; foreach (IConnectedDevice dev in module.GetConnectedDevices(LcdConfig.Address)) { - if (dev.Type == DeviceType.LcdDisplay) + if (dev.TypeDeprecated == DeviceType.LcdDisplay) { display = dev as MobiFlightLcdDisplay; } diff --git a/MobiFlight/MobiFlightCustomDevice.cs b/MobiFlight/MobiFlightCustomDevice.cs index 62c547d21..8c997ef4b 100644 --- a/MobiFlight/MobiFlightCustomDevice.cs +++ b/MobiFlight/MobiFlightCustomDevice.cs @@ -9,7 +9,7 @@ public class MobiFlightCustomDevice : IConnectedDevice public CmdMessenger CmdMessenger { get; set; } public string Name { get; set; } = "Custom Device"; - public DeviceType Type { get; set; } = DeviceType.CustomDevice; + public DeviceType TypeDeprecated { get; set; } = DeviceType.CustomDevice; public int DeviceNumber { get; set; } public CustomDevices.CustomDevice CustomDevice { get; set; } diff --git a/MobiFlight/MobiFlightEncoder.cs b/MobiFlight/MobiFlightEncoder.cs index 1a9fe5820..c59496afa 100644 --- a/MobiFlight/MobiFlightEncoder.cs +++ b/MobiFlight/MobiFlightEncoder.cs @@ -19,7 +19,7 @@ public enum InputEvent public string Name { get; set; } - public DeviceType Type { get { return DeviceType.Encoder; } } + public DeviceType TypeDeprecated { get { return DeviceType.Encoder; } } public static string InputEventIdToString(int enumId) { diff --git a/MobiFlight/MobiFlightInputMultiplexer.cs b/MobiFlight/MobiFlightInputMultiplexer.cs index 790b2467e..c636e8daa 100644 --- a/MobiFlight/MobiFlightInputMultiplexer.cs +++ b/MobiFlight/MobiFlightInputMultiplexer.cs @@ -60,7 +60,7 @@ public static string InputEventIdToString(int enumId) return eventAction; } - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightInputShiftRegister.cs b/MobiFlight/MobiFlightInputShiftRegister.cs index e1a416a4e..b2bfb0834 100644 --- a/MobiFlight/MobiFlightInputShiftRegister.cs +++ b/MobiFlight/MobiFlightInputShiftRegister.cs @@ -61,7 +61,7 @@ public static string InputEventIdToString(int enumId) return eventAction; } - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightLcdDisplay.cs b/MobiFlight/MobiFlightLcdDisplay.cs index 3ae255c0d..950ba480d 100644 --- a/MobiFlight/MobiFlightLcdDisplay.cs +++ b/MobiFlight/MobiFlightLcdDisplay.cs @@ -1,15 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using CommandMessenger; +using CommandMessenger; using MobiFlight.Base; using MobiFlight.OutputConfig; +using System; +using System.Collections.Generic; +using System.Linq; namespace MobiFlight { - public class MobiFlightLcdDisplay : IConnectedDevice + public class MobiFlightLcdDisplay : DeviceConfig, IConnectedDevice { public const string TYPE = "LcdDisplay"; @@ -19,15 +17,14 @@ public class MobiFlightLcdDisplay : IConnectedDevice public int Lines { get; set; } private String _name = "Lcd Display"; - public String Name + public override String Name { get { return _name; } set { _name = value; } } - private DeviceType _type = DeviceType.LcdDisplay; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } @@ -134,5 +131,15 @@ public void Stop() Display(new string(' ', Cols * Lines)); return; } + + public override object Clone() + { + return new MobiFlightLcdDisplay + { + Address = this.Address, + Cols = this.Cols, + Lines = this.Lines + }; + } } } diff --git a/MobiFlight/MobiFlightLedModule.cs b/MobiFlight/MobiFlightLedModule.cs index 81594f271..cd3fc192a 100644 --- a/MobiFlight/MobiFlightLedModule.cs +++ b/MobiFlight/MobiFlightLedModule.cs @@ -39,7 +39,7 @@ public String Name private DeviceType _type = DeviceType.LedModule; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightOutput.cs b/MobiFlight/MobiFlightOutput.cs index 872cd90a2..ee2dbb680 100644 --- a/MobiFlight/MobiFlightOutput.cs +++ b/MobiFlight/MobiFlightOutput.cs @@ -19,7 +19,7 @@ public String Name private DeviceType _type = DeviceType.Output; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightServo.cs b/MobiFlight/MobiFlightServo.cs index c724f420e..e97b66bc7 100644 --- a/MobiFlight/MobiFlightServo.cs +++ b/MobiFlight/MobiFlightServo.cs @@ -21,7 +21,7 @@ public String Name private DeviceType _type = DeviceType.Servo; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightShiftRegister.cs b/MobiFlight/MobiFlightShiftRegister.cs index 8acf50da0..7ef8f28a2 100644 --- a/MobiFlight/MobiFlightShiftRegister.cs +++ b/MobiFlight/MobiFlightShiftRegister.cs @@ -33,7 +33,7 @@ public MobiFlightShiftRegister() private DeviceType _type = DeviceType.ShiftRegister; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/MobiFlightStepper.cs b/MobiFlight/MobiFlightStepper.cs index 20f3a1b54..1bc921119 100644 --- a/MobiFlight/MobiFlightStepper.cs +++ b/MobiFlight/MobiFlightStepper.cs @@ -17,7 +17,7 @@ public String Name } private DeviceType _type = DeviceType.Stepper; - public DeviceType Type + public DeviceType TypeDeprecated { get { return _type; } set { _type = value; } diff --git a/MobiFlight/Modifier/Blink.cs b/MobiFlight/Modifier/Blink.cs index e1d86cd42..7d0f25685 100644 --- a/MobiFlight/Modifier/Blink.cs +++ b/MobiFlight/Modifier/Blink.cs @@ -1,21 +1,18 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; -using System.Globalization; using System.Linq; -using System.Text; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.Modifier { public class Blink : ModifierBase { private System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("en"); - public string BlinkValue = "0"; - public List OnOffSequence = new List(); - public int OffDurationInMs = 500; - public long FirstExecutionTime = 0; + public string BlinkValue { get; set; } = "0"; + public List OnOffSequence { get; set; } = new List(); + public int OffDurationInMs { get; set; } = 500; + public long FirstExecutionTime { get; set; } = 0; public override void ReadXml(XmlReader reader) { @@ -55,11 +52,16 @@ public override object Clone() public override bool Equals(object obj) { + if (obj == null || !(obj is Blink)) return false; + + var other = obj as Blink; + return - obj != null && obj is Blink && - this.Active == (obj as Blink).Active && - this.BlinkValue == (obj as Blink).BlinkValue && - this.OnOffSequence == (obj as Blink).OnOffSequence; + Active == other.Active && + BlinkValue.AreEqual(other.BlinkValue) && + OffDurationInMs == other.OffDurationInMs && + FirstExecutionTime == other.FirstExecutionTime && + OnOffSequence.SequenceEqual(other.OnOffSequence); } public override ConnectorValue Apply(ConnectorValue value, List configRefs) diff --git a/MobiFlight/Modifier/Comparison.cs b/MobiFlight/Modifier/Comparison.cs index 2c9a76a28..8f468c30e 100644 --- a/MobiFlight/Modifier/Comparison.cs +++ b/MobiFlight/Modifier/Comparison.cs @@ -1,13 +1,8 @@ -using MobiFlight.Base; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.Modifier { @@ -36,13 +31,15 @@ public Comparison() override public bool Equals(Object obj) { + if (obj == null || !(obj is Comparison)) return false; + var other = obj as Comparison; + return ( - obj != null && (obj is Comparison) && - this.Active == (obj as Comparison).Active && - this.Operand == (obj as Comparison).Operand && - this.Value == (obj as Comparison).Value && - this.IfValue == (obj as Comparison).IfValue && - this.ElseValue == (obj as Comparison).ElseValue + Active == other.Active && + Operand == other.Operand && + Value == other.Value && + IfValue == other.IfValue && + ElseValue == other.ElseValue ); } diff --git a/MobiFlight/Modifier/Interpolation.cs b/MobiFlight/Modifier/Interpolation.cs index 2e94792e0..a073af8df 100644 --- a/MobiFlight/Modifier/Interpolation.cs +++ b/MobiFlight/Modifier/Interpolation.cs @@ -1,12 +1,9 @@ -using Newtonsoft.Json.Linq; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; -using System.Text; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.Modifier { @@ -14,9 +11,12 @@ public class Interpolation : ModifierBase { private System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("en"); - SortedDictionary Values = new SortedDictionary(); + public SortedDictionary Values { get; set; } = new SortedDictionary(); public int Count { get { return Values.Count; } } + + [JsonIgnore] public double Max { get { return max; } } + [JsonIgnore] public double Min { get { return min; } } protected double max = double.MinValue; @@ -37,6 +37,17 @@ public void Add (double x, double y) Values.Add(x, y); } + // on json deserialization + [OnDeserialized] + public void OnDeserialized(StreamingContext context) + { + if (Values.Count > 0) + { + max = Values.Values.Max(); + min = Values.Values.Min(); + } + } + public SortedDictionary GetValues() { return Values; @@ -172,25 +183,17 @@ protected double interpolate(double value, double x1, double y1, double x2, doub public override bool Equals(object obj) { - var interpolation = (obj as Interpolation); - if (interpolation == null) return false; - - bool valuesAreSame = (Values.Count == interpolation.Count); - - if (valuesAreSame) - { - foreach (double x in Values.Keys) - { - valuesAreSame = valuesAreSame && (interpolation.Values.ContainsKey(x) && Values[x] == interpolation.Values[x]); - } - } + if (obj == null || !(obj is Interpolation)) return false; + var interpolation = (obj as Interpolation); + return Max == interpolation.Max && Min == interpolation.Min && Count == interpolation.Count && Active == interpolation.Active && - valuesAreSame; + Values.Keys.SequenceEqual(interpolation.Values.Keys) && + Values.Values.SequenceEqual(interpolation.Values.Values); } public override string ToSummaryLabel() { diff --git a/MobiFlight/Modifier/ModifierBase.cs b/MobiFlight/Modifier/ModifierBase.cs index 0d6a2a100..5048725fc 100644 --- a/MobiFlight/Modifier/ModifierBase.cs +++ b/MobiFlight/Modifier/ModifierBase.cs @@ -1,14 +1,14 @@ -using System; +using MobiFlight.BrowserMessages.Incoming.Converter; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace MobiFlight.Modifier { + [JsonConverter(typeof(ModifierBaseConverter))] public abstract class ModifierBase : IXmlSerializable, ICloneable { public bool Active { get; set; } diff --git a/MobiFlight/Modifier/ModifierList.cs b/MobiFlight/Modifier/ModifierList.cs index 2b4d03663..c863754bb 100644 --- a/MobiFlight/Modifier/ModifierList.cs +++ b/MobiFlight/Modifier/ModifierList.cs @@ -1,4 +1,6 @@ -using System; +using MobiFlight.BrowserMessages.Incoming.Converter; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Xml; using System.Xml.Schema; @@ -8,9 +10,13 @@ namespace MobiFlight.Modifier { public class ModifierList : IXmlSerializable, ICloneable { + protected List modifiers = new List(); + + [JsonProperty(ItemConverterType = typeof(ModifierBaseConverter))] public List Items { get { return modifiers; } } + [JsonIgnore] public Transformation Transformation { get @@ -26,7 +32,7 @@ public Transformation Transformation return t; } } - + [JsonIgnore] public Comparison Comparison { get @@ -42,7 +48,7 @@ public Comparison Comparison return c; } } - + [JsonIgnore] public Interpolation Interpolation { get diff --git a/MobiFlight/Modifier/Padding.cs b/MobiFlight/Modifier/Padding.cs index 7806f9392..8fe9bf730 100644 --- a/MobiFlight/Modifier/Padding.cs +++ b/MobiFlight/Modifier/Padding.cs @@ -1,20 +1,15 @@ using System; using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.Modifier { public class Padding : ModifierBase { public enum PaddingDirection { Left, Right, Centered } - public char Character = ' '; - public int Length = 5; - public PaddingDirection Direction = PaddingDirection.Left; + public char Character { get; set; } = ' '; + public int Length { get; set; } = 5; + public PaddingDirection Direction { get; set; } = PaddingDirection.Left; public override void ReadXml(XmlReader reader) { @@ -59,12 +54,14 @@ public override object Clone() public override bool Equals(object obj) { + if (obj == null || !(obj is Padding)) return false; + var other = obj as Padding; + return - obj != null && obj is Padding && - this.Active == (obj as Padding).Active && - this.Direction == (obj as Padding).Direction && - this.Length == (obj as Padding).Length && - this.Character == (obj as Padding).Character; + Active == other.Active && + Direction == other.Direction && + Length == other.Length && + Character == other.Character; } public override ConnectorValue Apply(ConnectorValue value, List configRefs) diff --git a/MobiFlight/Modifier/Substring.cs b/MobiFlight/Modifier/Substring.cs index d42948c94..2a18397f6 100644 --- a/MobiFlight/Modifier/Substring.cs +++ b/MobiFlight/Modifier/Substring.cs @@ -1,21 +1,12 @@ -using MobiFlight.OutputConfig; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Text; +using System.Collections.Generic; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.Modifier { public class Substring : ModifierBase { - private System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("en"); - public int Start = 0; - public int End = 7; + public int Start { get; set; } = 0; + public int End { get; set; } = 7; public override void ReadXml(XmlReader reader) { @@ -49,11 +40,13 @@ public override object Clone() public override bool Equals(object obj) { + if (obj == null || !(obj is Substring)) return false; + var other = obj as Substring; + return - obj != null && obj is Substring && - this.Active == (obj as Substring).Active && - this.Start == (obj as Substring).Start && - this.End == (obj as Substring).End; + this.Active == other.Active && + this.Start == other.Start && + this.End == other.End; } public override ConnectorValue Apply(ConnectorValue value, List configRefs) diff --git a/MobiFlight/Modifier/Transformation.cs b/MobiFlight/Modifier/Transformation.cs index 7eb012bb5..7b965e14b 100644 --- a/MobiFlight/Modifier/Transformation.cs +++ b/MobiFlight/Modifier/Transformation.cs @@ -6,7 +6,7 @@ namespace MobiFlight.Modifier { public class Transformation : ModifierBase { - public String Expression = "$"; + public string Expression { get; set; } = "$"; public override void ReadXml(XmlReader reader) { diff --git a/MobiFlight/OutputConfig/CustomDevice.cs b/MobiFlight/OutputConfig/CustomDevice.cs index caf14f7af..835ab361e 100644 --- a/MobiFlight/OutputConfig/CustomDevice.cs +++ b/MobiFlight/OutputConfig/CustomDevice.cs @@ -1,4 +1,5 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,9 +9,11 @@ namespace MobiFlight.OutputConfig { - public class CustomDevice : IXmlSerializable, ICloneable + public class CustomDevice : DeviceConfig, IXmlSerializable, ICloneable { - public const string Type = "CustomDevice"; + public override string Name { get { return CustomName; } } + + public const string DeprecatedType = "CustomDevice"; public String CustomType { get; set; } public String CustomName { get; set; } public int MessageType { get; set; } @@ -31,7 +34,7 @@ public override bool Equals(object obj) ); } - public object Clone() + public override object Clone() { return new CustomDevice { diff --git a/MobiFlight/OutputConfig/LcdDisplay.cs b/MobiFlight/OutputConfig/LcdDisplay.cs index 51e1a3754..23241544a 100644 --- a/MobiFlight/OutputConfig/LcdDisplay.cs +++ b/MobiFlight/OutputConfig/LcdDisplay.cs @@ -1,16 +1,16 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace MobiFlight.OutputConfig { - public class LcdDisplay : IXmlSerializable, ICloneable + public class LcdDisplay : DeviceConfig, IXmlSerializable, ICloneable { - public const string Type = "LcdDisplay"; + public const string DeprecatedType = "LcdDisplay"; + public override string Name { get { return Address; } } public String Address { get; set; } public List Lines { get; set; } @@ -21,7 +21,7 @@ public LcdDisplay () public override bool Equals(object obj) { - bool linesAreEqual = true && Lines.Count == (obj as LcdDisplay).Lines.Count; + bool linesAreEqual = true && Lines.Count == (obj as LcdDisplay)?.Lines.Count; if (linesAreEqual) for(int i=0; i!=Lines.Count; i++) { @@ -35,7 +35,7 @@ public override bool Equals(object obj) ); } - public object Clone() + public override object Clone() { LcdDisplay clone = new LcdDisplay(); clone.Address = Address; diff --git a/MobiFlight/OutputConfig/LedModule.cs b/MobiFlight/OutputConfig/LedModule.cs index 1d945205b..3e76aa521 100644 --- a/MobiFlight/OutputConfig/LedModule.cs +++ b/MobiFlight/OutputConfig/LedModule.cs @@ -1,16 +1,14 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.OutputConfig { - public class LedModule + public class LedModule : DeviceConfig { + public override string Name { get { return DisplayLedAddress; } } // the display stuff public string DisplayLedAddress { get; set; } public byte DisplayLedConnector { get; set; } @@ -35,7 +33,7 @@ public LedModule() DisplayLedDecimalPoints = new List(); } - public object Clone() + public override object Clone() { LedModule clone = new LedModule(); clone.DisplayLedConnector = DisplayLedConnector; @@ -52,14 +50,14 @@ public object Clone() public override bool Equals(Object obj) { - bool digitsAreEqual = true && DisplayLedDigits.Count == (obj as LedModule).DisplayLedDigits.Count; + bool digitsAreEqual = true && DisplayLedDigits.Count == (obj as LedModule)?.DisplayLedDigits.Count; if (digitsAreEqual) for (int i = 0; i != DisplayLedDigits.Count; i++) { digitsAreEqual = digitsAreEqual && (DisplayLedDigits[i] == (obj as LedModule).DisplayLedDigits[i]); } - bool pointsAreEqual = true && DisplayLedDecimalPoints.Count == (obj as LedModule).DisplayLedDecimalPoints.Count; + bool pointsAreEqual = true && DisplayLedDecimalPoints.Count == (obj as LedModule)?.DisplayLedDecimalPoints.Count; if (pointsAreEqual) for (int i = 0; i != DisplayLedDecimalPoints.Count; i++) { @@ -68,13 +66,13 @@ public override bool Equals(Object obj) return (obj != null) && (obj is LedModule) && - (this.DisplayLedConnector == (obj as LedModule).DisplayLedConnector) && - (this.DisplayLedAddress == (obj as LedModule).DisplayLedAddress) && - (this.DisplayLedPadding == (obj as LedModule).DisplayLedPadding) && - (this.DisplayLedReverseDigits == (obj as LedModule).DisplayLedReverseDigits) && - (this.DisplayLedBrightnessReference == (obj as LedModule).DisplayLedBrightnessReference) && - (this.DisplayLedPaddingChar == (obj as LedModule).DisplayLedPaddingChar) && - (this.DisplayLedModuleSize == (obj as LedModule).DisplayLedModuleSize) && + (this.DisplayLedConnector == (obj as LedModule)?.DisplayLedConnector) && + (this.DisplayLedAddress == (obj as LedModule)?.DisplayLedAddress) && + (this.DisplayLedPadding == (obj as LedModule)?.DisplayLedPadding) && + (this.DisplayLedReverseDigits == (obj as LedModule)?.DisplayLedReverseDigits) && + (this.DisplayLedBrightnessReference == (obj as LedModule)?.DisplayLedBrightnessReference) && + (this.DisplayLedPaddingChar == (obj as LedModule)?.DisplayLedPaddingChar) && + (this.DisplayLedModuleSize == (obj as LedModule)?.DisplayLedModuleSize) && (digitsAreEqual) && (pointsAreEqual); } diff --git a/MobiFlight/OutputConfig/Pin.cs b/MobiFlight/OutputConfig/Output.cs similarity index 74% rename from MobiFlight/OutputConfig/Pin.cs rename to MobiFlight/OutputConfig/Output.cs index a477f4233..a4b0c19d2 100644 --- a/MobiFlight/OutputConfig/Pin.cs +++ b/MobiFlight/OutputConfig/Output.cs @@ -1,21 +1,18 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using MobiFlight.Base; +using System; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.OutputConfig { - public class Pin + public class Output : DeviceConfig { + public override string Name { get { return DisplayPin; } } + public string DisplayPin { get; set; } public byte DisplayPinBrightness { get; set; } public bool DisplayPinPWM { get; set; } - public Pin () + public Output () { DisplayPin = ""; // not initialized anymore DisplayPinBrightness = byte.MaxValue; @@ -25,10 +22,10 @@ public Pin () public override bool Equals(Object obj) { return - (obj != null) && (obj is Pin) && - (this.DisplayPin == (obj as Pin).DisplayPin) && - (this.DisplayPinBrightness == (obj as Pin).DisplayPinBrightness) && - (this.DisplayPinPWM == (obj as Pin).DisplayPinPWM); + (obj != null) && (obj is Output) && + (this.DisplayPin == (obj as Output).DisplayPin) && + (this.DisplayPinBrightness == (obj as Output).DisplayPinBrightness) && + (this.DisplayPinPWM == (obj as Output).DisplayPinPWM); } public void ReadXml(XmlReader reader) @@ -58,9 +55,9 @@ public void WriteXml(XmlWriter writer) writer.WriteAttributeString("pinPwm", DisplayPinPWM.ToString()); } - public object Clone() + public override object Clone() { - Pin clone = new Pin(); + Output clone = new Output(); clone.DisplayPin = DisplayPin; clone.DisplayPinBrightness = DisplayPinBrightness; clone.DisplayPinPWM = DisplayPinPWM; diff --git a/MobiFlight/OutputConfig/Servo.cs b/MobiFlight/OutputConfig/Servo.cs index 761e77c80..411e37c48 100644 --- a/MobiFlight/OutputConfig/Servo.cs +++ b/MobiFlight/OutputConfig/Servo.cs @@ -1,4 +1,5 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -7,8 +8,9 @@ namespace MobiFlight.OutputConfig { - public class Servo + public class Servo : DeviceConfig { + public override string Name { get { return Address; } } public string Address { get; set; } public string Min { get; set; } public string Max { get; set; } @@ -49,7 +51,7 @@ public void WriteXml(XmlWriter writer) writer.WriteAttributeString("servoMaxRotationPercent", MaxRotationPercent); } - public Servo Clone() + public override object Clone() { Servo clone = new Servo(); clone.Address = this.Address; diff --git a/MobiFlight/OutputConfig/ShiftRegister.cs b/MobiFlight/OutputConfig/ShiftRegister.cs index 6fb101d97..955b22ed4 100644 --- a/MobiFlight/OutputConfig/ShiftRegister.cs +++ b/MobiFlight/OutputConfig/ShiftRegister.cs @@ -1,18 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using MobiFlight.Base; +using System; using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; namespace MobiFlight.OutputConfig { - public class ShiftRegister + public class ShiftRegister : DeviceConfig { + public override string Name { get { return Address; } } public String Pin { get; set; } public String Address { get; set; } + public byte Brightness { get; set; } = byte.MaxValue; + public bool PWM { get; set; } = false; public ShiftRegister() { @@ -22,10 +20,15 @@ public ShiftRegister() public override bool Equals(Object obj) { + if (!(obj is ShiftRegister)) return false; + var other = (ShiftRegister)obj; + return - (obj != null) && (obj is ShiftRegister) && - (this.Pin == (obj as ShiftRegister).Pin) && - (this.Address == (obj as ShiftRegister).Address); + Pin == other.Pin && + Address == other.Address && + Brightness == other.Brightness && + PWM == other.PWM + ; } public void ReadXml(XmlReader reader) @@ -40,12 +43,31 @@ public void ReadXml(XmlReader reader) { Address = reader["shiftRegister"]; } + + // this is only for backward compatibility + // with the old XML structure + // this has been copied over from the Output class + if (reader["pinBrightness"] != null && reader["pinBrightness"] != "") + { + Brightness = byte.Parse(reader["pinBrightness"]); + } + if (reader["pinPwm"] != null && reader["pinPwm"] != "") + { + PWM = bool.Parse(reader["pinPwm"]); + } } public void WriteXml(XmlWriter writer) { writer.WriteAttributeString("shiftRegister", Address); writer.WriteAttributeString("registerOutputPin", Pin); + + // this is only for backward compatibility + // with the old XML structure + // this has been copied over from the Output class + writer.WriteAttributeString("pinBrightness", Brightness.ToString()); + if (PWM) + writer.WriteAttributeString("pinPwm", PWM.ToString()); } public override string ToString() @@ -59,11 +81,13 @@ public override string ToString() return $"{Address}:{Pin.Replace("Output ", ",").Replace("|", "").TrimStart(',')}"; } - public object Clone() + public override object Clone() { ShiftRegister clone = new ShiftRegister(); clone.Pin = Pin; clone.Address = Address; + clone.Brightness = Brightness; + clone.PWM = PWM; return clone; } } diff --git a/MobiFlight/OutputConfig/SimConnectValue.cs b/MobiFlight/OutputConfig/SimConnectValue.cs index b9500aee6..05060547f 100644 --- a/MobiFlight/OutputConfig/SimConnectValue.cs +++ b/MobiFlight/OutputConfig/SimConnectValue.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,7 +10,9 @@ namespace MobiFlight.OutputConfig { public class SimConnectValue { - public String UUID { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] + public string UUID { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public string Value { get; set; } public SimConnectVarType VarType { get; set; } diff --git a/MobiFlight/OutputConfig/Stepper.cs b/MobiFlight/OutputConfig/Stepper.cs index 09ee8e1d1..5ae8d338d 100644 --- a/MobiFlight/OutputConfig/Stepper.cs +++ b/MobiFlight/OutputConfig/Stepper.cs @@ -1,16 +1,16 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using MobiFlight.Base; +using System; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace MobiFlight.OutputConfig { - public class Stepper : IXmlSerializable, ICloneable + public class Stepper : DeviceConfig, IXmlSerializable, ICloneable { - public const string Type = "Stepper"; + public override string Name { get { return Address; } } + + // public const string Type = "Stepper"; public String Address { get; set; } public Int16 InputRev { get; set; } public Int16 TestValue { get; set; } @@ -30,7 +30,7 @@ public Stepper() Speed = 0; } - public object Clone() + public override object Clone() { Stepper clone = new Stepper(); clone.Address = (String) Address.Clone(); diff --git a/MobiFlight/OutputConfigItem.cs b/MobiFlight/OutputConfigItem.cs index fc2f5381a..b36b8052a 100644 --- a/MobiFlight/OutputConfigItem.cs +++ b/MobiFlight/OutputConfigItem.cs @@ -1,71 +1,43 @@ using MobiFlight.Base; -using MobiFlight.Config; using MobiFlight.InputConfig; using MobiFlight.Modifier; using MobiFlight.OutputConfig; -using MobiFlight.xplane; +using Newtonsoft.Json; using System; -using System.Collections.Generic; -using System.Linq; +using System.Reflection; using System.Xml; using System.Xml.Serialization; namespace MobiFlight { - public class OutputConfigItem : IBaseConfigItem, IFsuipcConfigItem, IXmlSerializable, ICloneable, IConfigRefConfigItem + public class OutputConfigItem : ConfigItem, IXmlSerializable, ICloneable, Config.IConfigRefConfigItem { // we initialize a cultureInfo object // which is used for serialization // independently from current cultureInfo // @see: https://forge.simple-solutions.de/issues/275 + [JsonIgnore] public System.Globalization.CultureInfo serializationCulture = new System.Globalization.CultureInfo("de"); - - // this implements the FSUIPC Config Item Interface - // It would be nicer to have an aggregation of FSUIPC.FSUIPCConfigItem instead - public SourceType SourceType { get; set; } - public FsuipcOffset FSUIPC { get; set; } - public SimConnectValue SimConnectValue { get; set; } - public MobiFlightVariable MobiFlightVariable { get; set; } - - public XplaneDataRef XplaneDataRef { get; set; } - public string Value { get; set; } + public Source Source { get; set; } public ConnectorValue TestValue { get; set; } - public ModifierList Modifiers { get; set; } - public string DisplayType { get; set; } - public string DisplaySerial { get; set; } - public OutputConfig.Pin Pin { get; set; } - public OutputConfig.LedModule LedModule { get; set; } - public OutputConfig.LcdDisplay LcdDisplay { get; set; } - public List BcdPins { get; set; } - public OutputConfig.Servo Servo { get; set; } - public OutputConfig.Stepper Stepper { get; set; } - public OutputConfig.ShiftRegister ShiftRegister { get; set; } - public OutputConfig.CustomDevice CustomDevice { get; set; } = new OutputConfig.CustomDevice(); - public string DisplayTrigger { get; set; } - public PreconditionList Preconditions { get; set; } - public ConfigRefList ConfigRefs { get; set; } - + + public override IDeviceConfig Device { get; set; } + + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public InputConfig.ButtonInputConfig ButtonInputConfig { get; set; } + [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] public InputConfig.AnalogInputConfig AnalogInputConfig { get; set; } + public string DeviceType { get; set; } + public string DeviceName { get { return Device?.Name; } } public OutputConfigItem() { - SourceType = SourceType.SIMCONNECT; - FSUIPC = new FsuipcOffset(); - SimConnectValue = new SimConnectValue(); - MobiFlightVariable = new MobiFlightVariable(); - XplaneDataRef = new XplaneDataRef(); + Source = new SimConnectSource(); TestValue = new ConnectorValue() { type = FSUIPCOffsetType.Float, Float64 = 1 }; Modifiers = new ModifierList(); - Pin = new OutputConfig.Pin(); - LedModule = new OutputConfig.LedModule(); - LcdDisplay = new OutputConfig.LcdDisplay(); - Servo = new OutputConfig.Servo(); - Stepper = new OutputConfig.Stepper() { CompassMode = false }; - BcdPins = new List() { "A01", "A02", "A03", "A04", "A05" }; - ShiftRegister = new OutputConfig.ShiftRegister(); + Device = null; Preconditions = new PreconditionList(); ConfigRefs = new ConfigRefList(); ButtonInputConfig = null; @@ -73,47 +45,18 @@ public OutputConfigItem() } public override bool Equals(object obj) - { + { + if (obj == null || !(obj is OutputConfigItem item)) return false; + if (!base.Equals(obj)) return false; + return ( - obj != null && obj is OutputConfigItem && - this.DisplayType == (obj as OutputConfigItem).DisplayType && - this.DisplaySerial == (obj as OutputConfigItem).DisplaySerial && - this.SourceType == (obj as OutputConfigItem).SourceType && - this.FSUIPC.Equals((obj as OutputConfigItem).FSUIPC) && - this.SimConnectValue.Equals((obj as OutputConfigItem).SimConnectValue) && - this.XplaneDataRef.Equals((obj as OutputConfigItem).XplaneDataRef) && - this.MobiFlightVariable.Equals((obj as OutputConfigItem).MobiFlightVariable) && - //=== - this.TestValue.Equals((obj as OutputConfigItem).TestValue) && - //=== - this.Modifiers.Equals((obj as OutputConfigItem).Modifiers) && - //=== - this.Pin.Equals((obj as OutputConfigItem).Pin) && - //=== - this.LedModule.Equals((obj as OutputConfigItem).LedModule) && - //=== - this.LcdDisplay.Equals((obj as OutputConfigItem).LcdDisplay) && - //=== - this.Stepper.Equals((obj as OutputConfigItem).Stepper) && - //== - this.Servo.Equals((obj as OutputConfigItem).Servo) && - //=== - // TODO: I will ignore this, because it is a deprecated feature - // this.BcdPins.Equals((obj as OutputConfigItem).BcdPins) && - //=== - this.ShiftRegister.Equals((obj as OutputConfigItem).ShiftRegister) && - //=== - this.CustomDevice.Equals((obj as OutputConfigItem).CustomDevice) && - //=== - this.Preconditions.Equals((obj as OutputConfigItem).Preconditions) && - //=== - this.ConfigRefs.Equals((obj as OutputConfigItem).ConfigRefs) && - //=== - ((this.ButtonInputConfig == null && (obj as OutputConfigItem).ButtonInputConfig == null) || ( - this.ButtonInputConfig != null && this.ButtonInputConfig.Equals((obj as OutputConfigItem).ButtonInputConfig))) && - //=== - ((this.AnalogInputConfig==null&&(obj as OutputConfigItem).AnalogInputConfig == null) || ( - this.AnalogInputConfig != null && this.AnalogInputConfig.Equals((obj as OutputConfigItem).AnalogInputConfig))) + DeviceName == item.DeviceName && + DeviceType == item.DeviceType && + Source.AreEqual(item.Source) && + TestValue.AreEqual(item.TestValue) && + Device.AreEqual(item.Device) && + ButtonInputConfig.AreEqual(item.ButtonInputConfig) && + AnalogInputConfig.AreEqual(item.AnalogInputConfig) ); } @@ -128,23 +71,23 @@ public virtual void ReadXml(XmlReader reader) { // try to read it as FSUIPC Offset if (reader["type"] == "SimConnect") { - SourceType = SourceType.SIMCONNECT; - this.SimConnectValue.ReadXml(reader); + Source = new SimConnectSource(); + (Source as SimConnectSource).SimConnectValue.ReadXml(reader); } else if (reader["type"] == "Variable") { - SourceType = SourceType.VARIABLE; - this.MobiFlightVariable.ReadXml(reader); + Source = new VariableSource(); + (Source as VariableSource).MobiFlightVariable.ReadXml(reader); } else if (reader["type"] == "XplaneDataRef") { - SourceType = SourceType.XPLANE; - this.XplaneDataRef.ReadXml(reader); + Source = new XplaneSource(); + (Source as XplaneSource).XplaneDataRef.ReadXml(reader); } else { - SourceType = SourceType.FSUIPC; - this.FSUIPC.ReadXml(reader); - - if(FSUIPC.OffsetType == FSUIPCOffsetType.String) + Source = new FsuipcSource(); + (Source as FsuipcSource).FSUIPC.ReadXml(reader); + + if((Source as FsuipcSource).FSUIPC.OffsetType == FSUIPCOffsetType.String) { // this is a special case for backward compatibility // https://github.com/MobiFlight/MobiFlight-Connector/issues/1348 @@ -199,53 +142,50 @@ public virtual void ReadXml(XmlReader reader) if (reader.LocalName == "display") { - DisplayType = reader["type"]; + DeviceType = reader["type"]; // preserve backward compatibility - if (DisplayType == "Pin") DisplayType = MobiFlightOutput.TYPE; - if (DisplayType == ArcazeLedDigit.OLDTYPE) DisplayType = ArcazeLedDigit.TYPE; - - DisplaySerial = reader["serial"]; - DisplayTrigger = reader["trigger"]; + if (DeviceType == "Pin") DeviceType = MobiFlightOutput.TYPE; + if (DeviceType == ArcazeLedDigit.OLDTYPE) DeviceType = ArcazeLedDigit.TYPE; - if (DisplayType == MobiFlightOutput.TYPE) + ModuleSerial = reader["serial"]; + + if (DeviceType == MobiFlightOutput.TYPE) { - Pin.ReadXml(reader); + Device = new OutputConfig.Output(); + (Device as OutputConfig.Output).ReadXml(reader); } - else if (DisplayType == MobiFlightLedModule.TYPE) + else if (DeviceType == MobiFlightLedModule.TYPE) { - LedModule.XmlRead(reader); + Device = new OutputConfig.LedModule(); + (Device as OutputConfig.LedModule).XmlRead(reader); } - else if (DisplayType == ArcazeBcd4056.TYPE) + else if (DeviceType == MobiFlightServo.TYPE) { - // ignore empty values - if (reader["bcdPins"] != null && reader["bcdPins"] != "") - { - BcdPins = reader["bcdPins"].Split(',').ToList(); - } + Device = new OutputConfig.Servo(); + (Device as Servo).ReadXml(reader); } - else if (DisplayType == MobiFlightServo.TYPE) + else if (DeviceType == MobiFlightStepper.TYPE) { - Servo.ReadXml(reader); + Device = new OutputConfig.Stepper(); + (Device as Stepper).ReadXml(reader); } - else if (DisplayType == MobiFlightStepper.TYPE) + else if (DeviceType == OutputConfig.LcdDisplay.DeprecatedType) { - Stepper.ReadXml(reader); + Device = new OutputConfig.LcdDisplay(); + (Device as LcdDisplay).ReadXml(reader); } - else if (DisplayType == OutputConfig.LcdDisplay.Type) + else if (DeviceType == MobiFlightShiftRegister.TYPE) { - if (LcdDisplay == null) LcdDisplay = new OutputConfig.LcdDisplay(); - LcdDisplay.ReadXml(reader); + Device = new OutputConfig.ShiftRegister(); + (Device as ShiftRegister).ReadXml(reader); } - else if (DisplayType == MobiFlightShiftRegister.TYPE) + else if (DeviceType == MobiFlightCustomDevice.TYPE) { - ShiftRegister.ReadXml(reader); + Device = new OutputConfig.CustomDevice(); + (Device as CustomDevice).ReadXml(reader); } - else if (DisplayType == MobiFlightCustomDevice.TYPE) - { - CustomDevice.ReadXml(reader); - } - else if (DisplayType == "InputAction") + else if (DeviceType == "InputAction") { reader.Read(); @@ -343,15 +283,26 @@ public virtual void ReadXml(XmlReader reader) public virtual void WriteXml(XmlWriter writer) { + WriteXml(writer, true); + } + + public void WriteXml(XmlWriter writer, bool writeInstanceData) + { + if (writeInstanceData) + { + writer.WriteAttributeString("msdata:InstanceType", $"MobiFlight.OutputConfigItem, MFConnector, Version={Assembly.GetExecutingAssembly().GetName().Version}, Culture=neutral, PublicKeyToken=null"); + writer.WriteAttributeString("xmlns:msdata", "urn:schemas-microsoft-com:xml-msdata"); + } + writer.WriteStartElement("source"); - if (SourceType == SourceType.FSUIPC) - this.FSUIPC.WriteXml(writer); - else if (SourceType == SourceType.VARIABLE) - this.MobiFlightVariable.WriteXml(writer); - else if (SourceType == SourceType.XPLANE) - this.XplaneDataRef.WriteXml(writer); + if (Source is FsuipcSource) + (this.Source as FsuipcSource).FSUIPC.WriteXml(writer); + else if (Source is VariableSource) + (this.Source as VariableSource).MobiFlightVariable.WriteXml(writer); + else if (Source is XplaneSource) + (this.Source as XplaneSource).XplaneDataRef.WriteXml(writer); else - this.SimConnectValue.WriteXml(writer); + (this.Source as SimConnectSource).SimConnectValue.WriteXml(writer); writer.WriteEndElement(); writer.WriteStartElement("test"); @@ -362,43 +313,34 @@ public virtual void WriteXml(XmlWriter writer) Modifiers.WriteXml(writer); writer.WriteStartElement("display"); - writer.WriteAttributeString("type", DisplayType); - writer.WriteAttributeString("serial", DisplaySerial); + writer.WriteAttributeString("type", DeviceType); + writer.WriteAttributeString("serial", ModuleSerial); - if ( DisplayTrigger != null) - writer.WriteAttributeString("trigger", DisplayTrigger); - - if (DisplayType == ArcazeLedDigit.TYPE) + if (Device is LedModule) { - LedModule.WriteXml(writer); - + (Device as LedModule).WriteXml(writer); } - else if (DisplayType == ArcazeBcd4056.TYPE) + else if (DeviceType == MobiFlightServo.TYPE) { - writer.WriteAttributeString("bcdPins", String.Join(",", BcdPins)); + (Device as Servo).WriteXml(writer); } - else if (DisplayType == MobiFlightServo.TYPE) + else if (DeviceType == MobiFlightStepper.TYPE) { - Servo.WriteXml(writer); + (Device as Stepper).WriteXml(writer); } - else if (DisplayType == MobiFlightStepper.TYPE) + else if (DeviceType == MobiFlightLcdDisplay.TYPE) { - Stepper.WriteXml(writer); + (Device as LcdDisplay).WriteXml(writer); } - else if (DisplayType == MobiFlightLcdDisplay.TYPE) + else if (DeviceType == MobiFlightShiftRegister.TYPE) { - if (LcdDisplay == null) LcdDisplay = new OutputConfig.LcdDisplay(); - LcdDisplay.WriteXml(writer); + (Device as ShiftRegister).WriteXml(writer); } - else if (DisplayType == MobiFlightShiftRegister.TYPE) + else if (DeviceType == MobiFlightCustomDevice.TYPE) { - ShiftRegister.WriteXml(writer); + (Device as CustomDevice).WriteXml(writer); } - else if (DisplayType == MobiFlightCustomDevice.TYPE) - { - CustomDevice.WriteXml(writer); - } - else if (DisplayType == "InputAction") + else if (DeviceType == "InputAction") { if (ButtonInputConfig != null) { @@ -413,9 +355,9 @@ public virtual void WriteXml(XmlWriter writer) writer.WriteEndElement(); } } - else + else if (DeviceType == MobiFlightOutput.TYPE) { - Pin.WriteXml(writer); + (Device as Output).WriteXml(writer); } writer.WriteEndElement(); // end of display @@ -430,53 +372,51 @@ public virtual void WriteXml(XmlWriter writer) writer.WriteEndElement(); } - public object Clone() + public OutputConfigItem(OutputConfigItem config) : base(config) { - OutputConfigItem clone = new OutputConfigItem(); - clone.SourceType = this.SourceType; - clone.FSUIPC = this.FSUIPC.Clone() as FsuipcOffset; - clone.SimConnectValue = this.SimConnectValue.Clone() as SimConnectValue; - clone.MobiFlightVariable = this.MobiFlightVariable.Clone() as MobiFlightVariable; - clone.XplaneDataRef = this.XplaneDataRef.Clone() as XplaneDataRef; - - - //clone.Transform = this.Transform.Clone() as Transformation; - //clone.Comparison = this.Comparison.Clone() as Comparison; - - clone.DisplayType = this.DisplayType; - clone.DisplaySerial = this.DisplaySerial; - - clone.LedModule = this.LedModule.Clone() as OutputConfig.LedModule; - - clone.Pin = this.Pin.Clone() as OutputConfig.Pin; + this.Source = config.Source.Clone() as Source; - clone.BcdPins = new List(this.BcdPins); + this.DeviceType = config.DeviceType; + this.ModuleSerial = config.ModuleSerial; - clone.DisplayTrigger = this.DisplayTrigger; - clone.Servo = Servo.Clone() as OutputConfig.Servo; - clone.Stepper = Stepper.Clone() as OutputConfig.Stepper; + this.Device = config.Device?.Clone() as IDeviceConfig; - clone.ShiftRegister = ShiftRegister.Clone() as OutputConfig.ShiftRegister; - clone.CustomDevice = CustomDevice.Clone() as OutputConfig.CustomDevice; + this.Preconditions = Preconditions.Clone() as PreconditionList; - clone.LcdDisplay = this.LcdDisplay.Clone() as OutputConfig.LcdDisplay; - clone.Preconditions = Preconditions.Clone() as PreconditionList; + this.ConfigRefs = config.ConfigRefs.Clone() as ConfigRefList; + this.ButtonInputConfig = config.ButtonInputConfig?.Clone() as InputConfig.ButtonInputConfig; + this.AnalogInputConfig = config.AnalogInputConfig?.Clone() as InputConfig.AnalogInputConfig; - clone.ConfigRefs = ConfigRefs.Clone() as ConfigRefList; - clone.ButtonInputConfig = this.ButtonInputConfig?.Clone() as InputConfig.ButtonInputConfig; - clone.AnalogInputConfig = this.AnalogInputConfig?.Clone() as InputConfig.AnalogInputConfig; + this.Modifiers = config.Modifiers.Clone() as ModifierList; + this.TestValue = config.TestValue.Clone() as ConnectorValue; + } - clone.Modifiers = this.Modifiers.Clone() as ModifierList; - clone.TestValue = this.TestValue.Clone() as ConnectorValue; + public override object Clone() + { + OutputConfigItem clone = new OutputConfigItem(this); return clone; } - } - public enum SourceType - { - FSUIPC, - SIMCONNECT, - VARIABLE, - XPLANE + public override Base.IConfigItem Duplicate() + { + return new OutputConfigItem(this) { GUID = System.Guid.NewGuid().ToString() }; + } + + protected override IDeviceConfig GetDeviceConfig() + { + switch (DeviceType) + { + case MobiFlightOutput.TYPE: + case ArcazeLedDigit.TYPE: + case MobiFlightServo.TYPE: + case MobiFlightStepper.TYPE: + case MobiFlightShiftRegister.TYPE: + case MobiFlightLcdDisplay.TYPE: + case MobiFlightCustomDevice.TYPE: + return Device; + default: + return null; + } + } } } diff --git a/MobiFlight/ThreadSafeWebView2.cs b/MobiFlight/ThreadSafeWebView2.cs new file mode 100644 index 000000000..450043a54 --- /dev/null +++ b/MobiFlight/ThreadSafeWebView2.cs @@ -0,0 +1,20 @@ +using Microsoft.Web.WebView2.WinForms; +using System; + +namespace MobiFlight +{ + public class ThreadSafeWebView2 : WebView2 + { + public void PostWebMessageAsJsonThreadSafe(string jsonMessage) + { + if (this.InvokeRequired) + { + this.Invoke(new Action(() => CoreWebView2.PostWebMessageAsJson(jsonMessage))); + } + else + { + CoreWebView2.PostWebMessageAsJson(jsonMessage); + } + } + } +} diff --git a/MobiFlightConnector.csproj b/MobiFlightConnector.csproj index a2392c944..f3017ec63 100644 --- a/MobiFlightConnector.csproj +++ b/MobiFlightConnector.csproj @@ -57,7 +57,7 @@ true bin\Debug\ - TRACE;DEBUG;MOBIFLIGHT DEBUG SIMCONNECT ARCAZE + DEBUG;MOBIFLIGHT DEBUG SIMCONNECT ARCAZE bin\Debug\MFConnector.xml 2 full @@ -240,24 +240,60 @@ packages\XPlaneConnector.1.3.0\lib\netstandard2.0\XPlaneConnector.dll + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -336,12 +372,15 @@ - + + + Component + @@ -403,7 +442,7 @@ ArduinoIdePathForm.cs - + Form @@ -545,11 +584,11 @@ MFCustomDevicePanel.cs - + UserControl - - InputConfigPanel.cs + + FrontendPanel.cs UserControl @@ -617,12 +656,6 @@ TransformModifierPanel.cs - - UserControl - - - OutputConfigPanel.cs - UserControl @@ -683,12 +716,6 @@ MobiFlightPanel.cs - - UserControl - - - StartupPanel.cs - @@ -713,7 +740,7 @@ - + Form @@ -846,12 +873,6 @@ ActionTypePanel.cs - - UserControl - - - DisplayBcdPanel.cs - UserControl @@ -1550,11 +1571,8 @@ MFShiftRegisterPanel.cs - - InputConfigPanel.cs - - - InputConfigPanel.cs + + FrontendPanel.cs AnalogPanel.cs @@ -1589,14 +1607,6 @@ TransformModifierPanel.cs - - OutputConfigPanel.cs - Designer - - - OutputConfigPanel.cs - Designer - DisplayPanel.cs Designer @@ -1658,9 +1668,6 @@ MobiFlightPanel.cs Designer - - StartupPanel.cs - MFLcdDisplayPanel.cs @@ -1837,9 +1844,6 @@ ActionTypePanel.cs - - DisplayBcdPanel.cs - DisplayLedDisplayPanel.cs diff --git a/MobiFlightUnitTests/App.config b/MobiFlightUnitTests/App.config index 4cb812a9f..ece18f75e 100644 --- a/MobiFlightUnitTests/App.config +++ b/MobiFlightUnitTests/App.config @@ -17,7 +17,7 @@ - + diff --git a/MobiFlightUnitTests/Base/ConfigFileFactoryTests.cs b/MobiFlightUnitTests/Base/ConfigFileFactoryTests.cs new file mode 100644 index 000000000..bdba41ce6 --- /dev/null +++ b/MobiFlightUnitTests/Base/ConfigFileFactoryTests.cs @@ -0,0 +1,75 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MobiFlight.Base.Tests +{ + [TestClass()] + public class ConfigFileFactoryTests + { + [TestMethod()] + public void CreateConfigFileTest() + { + var testFile = @"assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc"; + var configFile = ConfigFileFactory.CreateConfigFile(testFile); + + configFile.OpenFile(); + Assert.IsTrue(configFile.ConfigItems.Count > 0); + + testFile = @"assets/Base/ConfigFile/Json/OpenConfig.mfjson"; + configFile = ConfigFileFactory.CreateConfigFile(testFile); + configFile.OpenFile(); + Assert.IsTrue(configFile.ConfigItems.Count == 3); + } + + [TestMethod] + public void ConfigFile_BackwardCompatibility_Test() + { + var testFile = @"assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc"; + var configFile = new DeprecatedConfigFile { FileName = testFile }; + configFile.OpenFile(); + + var newConfigFile = new ConfigFile() + { + FileName = testFile, + ReferenceOnly = configFile.ReferenceOnly, + EmbedContent = false, + ConfigItems = configFile.ConfigItems + }; + + var testFileOut = @"assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mfjson"; + newConfigFile.FileName = testFileOut; + newConfigFile.SaveFile(); + + CollectionAssert.AreEqual(configFile.ConfigItems, newConfigFile.ConfigItems); + + var configFileOut = ConfigFileFactory.CreateConfigFile(testFileOut); + configFileOut.OpenFile(); + configFileOut.FileName = testFileOut; + + Assert.AreEqual(configFile.ConfigItems[0].Name, configFileOut.ConfigItems[0].Name); + Assert.AreEqual(configFile.ConfigItems[0].Value, configFileOut.ConfigItems[0].Value); + Assert.AreEqual(configFile.ConfigItems[0].RawValue, configFileOut.ConfigItems[0].RawValue); + Assert.AreEqual(configFile.ConfigItems[0].Device, configFileOut.ConfigItems[0].Device); + Assert.AreEqual(configFile.ConfigItems[0].GUID, configFileOut.ConfigItems[0].GUID); + Assert.AreEqual(configFile.ConfigItems[0].Type, configFileOut.ConfigItems[0].Type); + Assert.AreEqual(configFile.ConfigItems[0].Active, configFileOut.ConfigItems[0].Active); + Assert.AreEqual(configFile.ConfigItems[0].ConfigRefs, configFileOut.ConfigItems[0].ConfigRefs); + Assert.AreEqual(configFile.ConfigItems[0].Modifiers, configFileOut.ConfigItems[0].Modifiers); + Assert.AreEqual(configFile.ConfigItems[0].ModuleSerial, configFileOut.ConfigItems[0].ModuleSerial); + Assert.AreEqual(configFile.ConfigItems[0].Preconditions, configFileOut.ConfigItems[0].Preconditions); + + Assert.IsTrue(configFileOut.ConfigItems.Count > 0); + for (int i = 0; i < configFile.ConfigItems.Count; i++) + { + Assert.AreEqual(configFile.ConfigItems[i], configFileOut.ConfigItems[i]); + } + + Assert.AreEqual(newConfigFile, configFileOut); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/ConfigFileTests.cs b/MobiFlightUnitTests/Base/ConfigFileTests.cs index 9ad201177..ca274f7b7 100644 --- a/MobiFlightUnitTests/Base/ConfigFileTests.cs +++ b/MobiFlightUnitTests/Base/ConfigFileTests.cs @@ -1,434 +1,180 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight; -using System; +using MobiFlight.Base; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.OutputConfig; +using Newtonsoft.Json; using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Xml; +using System.IO; -namespace MobiFlight.Tests +namespace MobiFlight.Base.Tests { - [TestClass()] + [TestClass] public class ConfigFileTests { - [TestMethod()] - public void ConfigFileTest() - { + private const string TestFileName = "testConfigFile.json"; - ConfigFile o = new ConfigFile(@"assets\Base\ConfigFile\OpenConfigFile.xml"); - Assert.IsNotNull(o, "Object is null"); + private OutputConfigItem CreateOutputConfigItem() + { + return new OutputConfigItem() + { + Device = new LedModule() { DisplayLedAddress = "0", DisplayLedConnector = 1 } + }; } - [TestMethod()] - //[Ignore] - public void OpenFileTest() + private InputConfigItem CreateInputConfigItem() { - String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; - String expFile = @"assets\Base\ConfigFile\OpenFileTest.xml.exp"; - String inFileTemp = @"assets\Base\ConfigFile\temp_OpenFileTest.xml"; - ConfigFile o = new ConfigFile(inFile); - DataSet InputConfig = new DataSet(); - DataSet OutputConfig = new DataSet(); - initializeOutputDataSet(OutputConfig); - initializeInputDataSet(InputConfig); - - //o.OpenFile(); - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - ConfigFile oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - String s1 = System.IO.File.ReadAllText(expFile); - String s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - - Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); - System.IO.File.Delete(inFileTemp); - - OutputConfig.Clear(); - InputConfig.Clear(); - - inFile = @"assets\Base\ConfigFile\OpenFileTest.2912.xml"; - expFile = @"assets\Base\ConfigFile\OpenFileTest.2912.xml.exp"; - inFileTemp = @"assets\Base\ConfigFile\temp_OpenFileTest.2912.xml"; - - o = new ConfigFile(inFile); - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - s1 = System.IO.File.ReadAllText(expFile); - s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - - Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); - System.IO.File.Delete(inFileTemp); - - OutputConfig.Clear(); - InputConfig.Clear(); - - inFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc"; - inFileTemp = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.tmp"; - expFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; - - o = new ConfigFile(inFile); - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - s1 = System.IO.File.ReadAllText(expFile); - s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - - Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); - System.IO.File.Delete(inFileTemp); - - // Load the new version was problematic\ - OutputConfig.Clear(); - InputConfig.Clear(); - - inFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; - inFileTemp = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.tmp"; - expFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; - - o = new ConfigFile(inFile); - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - s1 = System.IO.File.ReadAllText(expFile); - s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - - Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); - System.IO.File.Delete(inFileTemp); - - // the files are partially from this project - // and also the example files are copied over - // from the examples folder (Main project) - foreach (string file in System.IO.Directory.GetFiles(@"assets\Base\ConfigFile\", "*.mcc")) { - OutputConfig.Clear(); - InputConfig.Clear(); - - inFile = file; - expFile = inFile; - if (System.IO.File.Exists(inFile + ".exp")) expFile = inFile + ".exp"; - inFileTemp = inFile + ".tmp"; - - o = new ConfigFile(inFile); - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - s1 = System.IO.File.ReadAllText(expFile); - s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - - Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); - System.IO.File.Delete(inFileTemp); - } - - // load a broken config - OutputConfig.Clear(); - InputConfig.Clear(); - - inFile = @"assets\Base\ConfigFile\OpenFileBrokenTest.xml"; - inFileTemp = @"assets\Base\ConfigFile\OpenFileBrokenTest.xml.tmp"; - - try { - s1 = "a"; - s2 = "b"; - o = new ConfigFile(inFile); - - OutputConfig.ReadXml(o.getOutputConfig()); - InputConfig.ReadXml(o.getInputConfig()); - - oTemp = new ConfigFile(inFileTemp); - oTemp.SaveFile(OutputConfig, InputConfig); - - s1 = System.IO.File.ReadAllText(inFile); - s2 = System.IO.File.ReadAllText(inFileTemp); - - // get rid of the individual version number - // that varies every time we increment the MobiFlight version - s1 = replaceVersionInformation(s1); - s2 = replaceVersionInformation(s2); - + return new InputConfigItem() + { + }; + } - } catch (Exception e) + [TestInitialize] + public void TestInitialize() + { + // Clean up before each test + if (File.Exists(TestFileName)) { - Assert.IsTrue(e.Message == "Error reading config"); + File.Delete(TestFileName); } } - [TestMethod()] - public void SaveFileTest() + [TestCleanup] + public void TestCleanup() { - // implicitly tested in OpenFileTest(); - Assert.IsTrue(true); + // Clean up after each test + if (File.Exists(TestFileName)) + { + File.Delete(TestFileName); + } } - [TestMethod()] - public void getInputConfigTest() + [TestMethod] + public void ConfigFile_Creation_Test() { - String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; - ConfigFile o = new ConfigFile(inFile); - XmlReader xr = o.getInputConfig(); - - Assert.IsNotNull(xr); + var configFile = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = true, + ConfigItems = new List() + }; + + Assert.AreEqual(TestFileName, configFile.FileName); + Assert.IsFalse(configFile.ReferenceOnly); + Assert.IsTrue(configFile.EmbedContent); + Assert.IsNotNull(configFile.ConfigItems); } - [TestMethod()] - public void getOutputConfigTest() + [TestMethod] + public void ConfigFile_Serialization_Test() { - String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; - ConfigFile o = new ConfigFile(inFile); - XmlReader xr = o.getOutputConfig(); - - Assert.IsNotNull(xr); + var configFile = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = true, + ConfigItems = new List() + }; + + var json = configFile.ToJson(); + var deserializedConfigFile = JsonConvert.DeserializeObject(json); + + Assert.AreEqual(configFile.FileName, deserializedConfigFile.FileName); + Assert.AreEqual(configFile.ReferenceOnly, deserializedConfigFile.ReferenceOnly); + Assert.AreEqual(configFile.EmbedContent, deserializedConfigFile.EmbedContent); + Assert.AreEqual(configFile.ConfigItems.Count, deserializedConfigFile.ConfigItems.Count); + + configFile.ConfigItems.Add(CreateOutputConfigItem()); + configFile.ConfigItems.Add(CreateInputConfigItem()); + + json = configFile.ToJson(); + deserializedConfigFile = JsonConvert.DeserializeObject(json); + + Assert.AreEqual(configFile.FileName, deserializedConfigFile.FileName); + Assert.AreEqual(configFile.ReferenceOnly, deserializedConfigFile.ReferenceOnly); + Assert.AreEqual(configFile.EmbedContent, deserializedConfigFile.EmbedContent); + Assert.AreEqual(configFile.ConfigItems.Count, deserializedConfigFile.ConfigItems.Count); + Assert.IsTrue(configFile.ConfigItems.Count == 2); + + Assert.AreEqual((configFile.ConfigItems[0] as OutputConfigItem).Device, (deserializedConfigFile.ConfigItems[0] as OutputConfigItem).Device); + Assert.AreEqual((configFile.ConfigItems[1] as InputConfigItem).Device, (deserializedConfigFile.ConfigItems[1] as InputConfigItem).Device); } - string replaceVersionInformation(string s1) + [TestMethod] + public void ConfigFile_OpenFile_Test() { - s1 = Regex.Replace(s1, @"Version=[^,]+", "Version=1.0.0.0"); - return s1; + var configFile = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = false, + ConfigItems = new List() + }; + + var json = configFile.ToJson(); + File.WriteAllText(TestFileName, json); + + var newConfigFile = new ConfigFile { FileName = TestFileName, EmbedContent = false }; + newConfigFile.OpenFile(); + + Assert.AreEqual(configFile.FileName, newConfigFile.FileName); + Assert.AreEqual(configFile.ReferenceOnly, newConfigFile.ReferenceOnly); + Assert.AreEqual(configFile.EmbedContent, newConfigFile.EmbedContent); + Assert.AreEqual(configFile.ConfigItems.Count, newConfigFile.ConfigItems.Count); } - void initializeOutputDataSet(DataSet dataSetConfig) + [TestMethod] + public void ConfigFile_SaveFile_Test() { - System.Data.DataTable configDataTable; - System.Data.DataColumn activeDataColumn; - System.Data.DataColumn fsuipcOffsetDataColumn; - System.Data.DataColumn converterDataColumn; - System.Data.DataColumn maskDataColumn; - System.Data.DataColumn usbArcazePinDataColumn; - System.Data.DataColumn typeDataColumn; - System.Data.DataColumn durationDataColumn; - System.Data.DataColumn comparisonDataColumn; - System.Data.DataColumn comparisonValueDataColumn; - System.Data.DataColumn descriptionDataColumn; - System.Data.DataColumn fsuipcSizeDataColumn; - System.Data.DataColumn triggerDataColumn; - System.Data.DataColumn arcazeSerialDataColumn; - System.Data.DataColumn settingsColumn; - System.Data.DataColumn guidDataColumn; + var configFile = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = false, + ConfigItems = new List() + }; + + configFile.SaveFile(); + + Assert.IsTrue(File.Exists(TestFileName)); + + var json = File.ReadAllText(TestFileName); + var deserializedConfigFile = JsonConvert.DeserializeObject(json); - configDataTable = new System.Data.DataTable(); - activeDataColumn = new System.Data.DataColumn(); - fsuipcOffsetDataColumn = new System.Data.DataColumn(); - converterDataColumn = new System.Data.DataColumn(); - maskDataColumn = new System.Data.DataColumn(); - usbArcazePinDataColumn = new System.Data.DataColumn(); - typeDataColumn = new System.Data.DataColumn(); - durationDataColumn = new System.Data.DataColumn(); - comparisonDataColumn = new System.Data.DataColumn(); - comparisonValueDataColumn = new System.Data.DataColumn(); - descriptionDataColumn = new System.Data.DataColumn(); - fsuipcSizeDataColumn = new System.Data.DataColumn(); - triggerDataColumn = new System.Data.DataColumn(); - arcazeSerialDataColumn = new System.Data.DataColumn(); - settingsColumn = new System.Data.DataColumn(); - guidDataColumn = new System.Data.DataColumn(); - // - // dataSetConfig - // - dataSetConfig.DataSetName = "outputs"; - dataSetConfig.Tables.AddRange(new System.Data.DataTable[] { - configDataTable}); - // - // configDataTable - // - configDataTable.Columns.AddRange(new System.Data.DataColumn[] { - activeDataColumn, - fsuipcOffsetDataColumn, - converterDataColumn, - maskDataColumn, - usbArcazePinDataColumn, - typeDataColumn, - durationDataColumn, - comparisonDataColumn, - comparisonValueDataColumn, - descriptionDataColumn, - fsuipcSizeDataColumn, - triggerDataColumn, - arcazeSerialDataColumn, - settingsColumn, - guidDataColumn}); - configDataTable.TableName = "config"; - // - // activeDataColumn - // - activeDataColumn.Caption = "Active"; - activeDataColumn.ColumnName = "active"; - activeDataColumn.DataType = typeof(bool); - activeDataColumn.DefaultValue = false; - // - // fsuipcOffsetDataColumn - // - fsuipcOffsetDataColumn.Caption = "FsuipcOffset"; - fsuipcOffsetDataColumn.ColumnName = "fsuipcOffset"; - // - // converterDataColumn - // - converterDataColumn.Caption = "Converter"; - converterDataColumn.ColumnName = "converter"; - converterDataColumn.DefaultValue = "Boolean"; - // - // maskDataColumn - // - maskDataColumn.Caption = "Mask"; - maskDataColumn.ColumnName = "mask"; - // - // usbArcazePinDataColumn - // - usbArcazePinDataColumn.Caption = "USBArcazePin"; - usbArcazePinDataColumn.ColumnName = "usbArcazePin"; - // - // typeDataColumn - // - typeDataColumn.Caption = "Type"; - typeDataColumn.ColumnName = "type"; - // - // durationDataColumn - // - durationDataColumn.Caption = "Duration"; - durationDataColumn.ColumnName = "duration"; - // - // comparisonDataColumn - // - comparisonDataColumn.Caption = "Comparison"; - comparisonDataColumn.ColumnName = "comparison"; - comparisonDataColumn.DefaultValue = "="; - // - // comparisonValueDataColumn - // - comparisonValueDataColumn.Caption = "ComparisonValue"; - comparisonValueDataColumn.ColumnName = "comparisonValue"; - // - // descriptionDataColumn - // - descriptionDataColumn.AllowDBNull = false; - descriptionDataColumn.Caption = "Description"; - descriptionDataColumn.ColumnName = "description"; - descriptionDataColumn.DefaultValue = ""; - // - // fsuipcSizeDataColumn - // - fsuipcSizeDataColumn.Caption = "Fsuipc Size"; - fsuipcSizeDataColumn.ColumnName = "fsuipcSize"; - fsuipcSizeDataColumn.DefaultValue = "1"; - fsuipcSizeDataColumn.MaxLength = 3; - // - // triggerDataColumn - // - triggerDataColumn.ColumnName = "trigger"; - triggerDataColumn.DefaultValue = "change"; - // - // arcazeSerialDataColumn - // - arcazeSerialDataColumn.ColumnName = "arcazeSerial"; - arcazeSerialDataColumn.DefaultValue = ""; - // - // settingsColumn - // - settingsColumn.Caption = "settings"; - settingsColumn.ColumnName = "settings"; - settingsColumn.DataType = typeof(object); - // - // guidDataColumn - // - guidDataColumn.ColumnMapping = System.Data.MappingType.Attribute; - guidDataColumn.ColumnName = "guid"; - guidDataColumn.DataType = typeof(System.Guid); + Assert.AreEqual(configFile.FileName, deserializedConfigFile.FileName); + Assert.AreEqual(configFile.ReferenceOnly, deserializedConfigFile.ReferenceOnly); + Assert.AreEqual(configFile.EmbedContent, deserializedConfigFile.EmbedContent); + Assert.AreEqual(configFile.ConfigItems.Count, deserializedConfigFile.ConfigItems.Count); } - void initializeInputDataSet (DataSet dataSetInputs) + [TestMethod()] + public void EqualsTest() { - System.Data.DataTable inputsDataTable; - System.Data.DataColumn inputsActiveDataColumn; - System.Data.DataColumn inputsDescriptionDataColumn; - System.Data.DataColumn inputsSettingsDataColumn; - System.Data.DataColumn inputsGuidDataColumn; - - inputsDataTable = new System.Data.DataTable(); - inputsActiveDataColumn = new System.Data.DataColumn(); - inputsDescriptionDataColumn = new System.Data.DataColumn(); - inputsGuidDataColumn = new System.Data.DataColumn(); - inputsSettingsDataColumn = new System.Data.DataColumn(); - - // - // dataSetInputs - // - dataSetInputs.DataSetName = "inputs"; - dataSetInputs.Tables.AddRange(new System.Data.DataTable[] { - inputsDataTable}); - // - // inputsDataTable - // - inputsDataTable.Columns.AddRange(new System.Data.DataColumn[] { - inputsActiveDataColumn, - inputsDescriptionDataColumn, - inputsGuidDataColumn, - inputsSettingsDataColumn}); - inputsDataTable.TableName = "config"; - - // - // inputsActiveDataColumn - // - inputsActiveDataColumn.Caption = "Active"; - inputsActiveDataColumn.ColumnName = "active"; - inputsActiveDataColumn.DataType = typeof(bool); - inputsActiveDataColumn.DefaultValue = false; - // - // inputsDescriptionDataColumn - // - inputsDescriptionDataColumn.AllowDBNull = false; - inputsDescriptionDataColumn.Caption = "Description"; - inputsDescriptionDataColumn.ColumnName = "description"; - inputsDescriptionDataColumn.DefaultValue = ""; - // - // inputsGuidDataColumn - // - inputsGuidDataColumn.ColumnMapping = System.Data.MappingType.Attribute; - inputsGuidDataColumn.ColumnName = "guid"; - inputsGuidDataColumn.DataType = typeof(System.Guid); - // - // inputsSettingsDataColumn - // - inputsSettingsDataColumn.ColumnName = "settings"; - inputsSettingsDataColumn.DataType = typeof(object); + var configFile = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = false, + ConfigItems = new List() + { + CreateOutputConfigItem(), + CreateInputConfigItem() + } + }; + + var configFile2 = new ConfigFile + { + FileName = TestFileName, + ReferenceOnly = false, + EmbedContent = false, + ConfigItems = new List() + { + configFile.ConfigItems[0].Clone() as OutputConfigItem, + configFile.ConfigItems[1].Clone() as InputConfigItem + } + }; + + Assert.IsTrue(configFile.Equals(configFile2)); + Assert.AreEqual(configFile, configFile2); } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/ConfigItemTests.cs b/MobiFlightUnitTests/Base/ConfigItemTests.cs new file mode 100644 index 000000000..3b637d3ef --- /dev/null +++ b/MobiFlightUnitTests/Base/ConfigItemTests.cs @@ -0,0 +1,111 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.Base; +using MobiFlight.Modifier; +using MobiFlight.OutputConfig; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MobiFlight.Base.Tests +{ + [TestClass()] + public class ConfigItemTests + { + Precondition CreatePrecondition() + { + return new Precondition(); + } + IConfigItem CreateOutputConfigItem() + { + var PreconditionList = new PreconditionList + { + CreatePrecondition() + }; + + var ModifierList = new ModifierList(); + ModifierList.Items.Add(new Comparison()); + ModifierList.Items.Add(new Transformation()); + + var ConfigRefList = new ConfigRefList(); + ConfigRefList.Add(new ConfigRef() { Active = true, Placeholder = "#", Ref = "123", TestValue = "0" }); + + return new OutputConfigItem() + { + Name = "Test1", + Device = new LedModule() { DisplayLedAddress = "0", DisplayLedConnector = 1 }, + Active = true, + Preconditions = PreconditionList, + Modifiers = ModifierList, + ConfigRefs = ConfigRefList + }; + } + + [TestMethod()] + public void DuplicateTest() + { + var OutputConfigItem = CreateOutputConfigItem() as OutputConfigItem; + + var duplicatedConfigItem = OutputConfigItem.Duplicate() as OutputConfigItem; + + Assert.IsNotNull(duplicatedConfigItem); + Assert.AreEqual(OutputConfigItem.Name, duplicatedConfigItem.Name); + Assert.AreNotEqual(OutputConfigItem.GUID, duplicatedConfigItem.GUID); + Assert.AreEqual(OutputConfigItem.Device, duplicatedConfigItem.Device); + Assert.AreEqual(OutputConfigItem.Active, duplicatedConfigItem.Active); + Assert.AreEqual(OutputConfigItem.Preconditions, duplicatedConfigItem.Preconditions); + Assert.AreEqual(OutputConfigItem.Modifiers, duplicatedConfigItem.Modifiers); + Assert.AreEqual(OutputConfigItem.ConfigRefs, duplicatedConfigItem.ConfigRefs); + } + + [TestMethod()] + public void CloneTest() + { + var OutputConfigItem = CreateOutputConfigItem(); + + var ClonedConfigItem = OutputConfigItem.Clone() as OutputConfigItem; + + Assert.IsNotNull(ClonedConfigItem); + Assert.AreEqual(OutputConfigItem.Name, ClonedConfigItem.Name); + Assert.AreEqual(OutputConfigItem.GUID, ClonedConfigItem.GUID); + Assert.AreEqual(OutputConfigItem.Device, ClonedConfigItem.Device); + Assert.AreEqual(OutputConfigItem.Active, ClonedConfigItem.Active); + Assert.AreEqual(OutputConfigItem.Preconditions, ClonedConfigItem.Preconditions); + Assert.AreEqual(OutputConfigItem.Modifiers, ClonedConfigItem.Modifiers); + Assert.AreEqual(OutputConfigItem.ConfigRefs, ClonedConfigItem.ConfigRefs); + } + + [TestMethod()] + public void EqualsTest() + { + var OutputConfigItem = CreateOutputConfigItem(); + var ConfigItems = new List() { + OutputConfigItem + }; + + var OutputConfigItemOther = OutputConfigItem.Clone() as IConfigItem; + var ConfigItemsOther = new List() { + OutputConfigItemOther + }; + CollectionAssert.AreEqual(ConfigItems, ConfigItemsOther); + + // this test failed because of wrong Equals implementation + // Let's verify it works for OutputConfigItems + var foundConfig = ConfigItems.Find(x => x.GUID == OutputConfigItem.GUID); + Assert.IsNotNull(foundConfig); + Assert.AreEqual(OutputConfigItem.GUID, foundConfig.GUID); + Assert.IsTrue(ConfigItems.Remove(foundConfig)); + Assert.AreEqual(OutputConfigItem, foundConfig); + // Let's verify it works for InputConfigItem, too + var InputConfigItem = new InputConfigItem() as IConfigItem; + ConfigItems.Add(InputConfigItem); + foundConfig = ConfigItems.Find(x => x.GUID == InputConfigItem.GUID); + Assert.IsNotNull(foundConfig); + Assert.AreEqual(InputConfigItem.GUID, foundConfig.GUID); + Assert.IsTrue(ConfigItems.Remove(foundConfig)); + Assert.AreEqual(InputConfigItem, foundConfig); + + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/ConfigRefListTests.cs b/MobiFlightUnitTests/Base/ConfigRefListTests.cs index e100681fd..fcb1ed72c 100644 --- a/MobiFlightUnitTests/Base/ConfigRefListTests.cs +++ b/MobiFlightUnitTests/Base/ConfigRefListTests.cs @@ -1,5 +1,6 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using MobiFlight.Base; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; @@ -64,5 +65,31 @@ public void EqualsTest() o2.Add(new ConfigRef() { Active = true, Placeholder = "#", Ref = "Ref" }); Assert.IsTrue(o1.Equals(o2)); } + + [TestMethod()] + public void JsonSerializationDeserializationTest() + { + ConfigRefList originalList = new ConfigRefList + { + new ConfigRef { Active = true, Placeholder = "#", Ref = "Ref1", TestValue = "1" }, + new ConfigRef { Active = false, Placeholder = "$", Ref = "Ref2", TestValue = "2" } + }; + + string json = JsonConvert.SerializeObject(originalList); + ConfigRefList deserializedList = JsonConvert.DeserializeObject(json); + + Assert.IsNotNull(deserializedList); + Assert.AreEqual(originalList.Count, deserializedList.Count); + + var originalArray = originalList.ToArray(); + var deserializedArray = deserializedList.ToArray(); + + for (int i = 0; i < originalList.Count; i++) + { + Assert.AreEqual(originalArray[i].Active, deserializedArray[i].Active); + Assert.AreEqual(originalArray[i].Placeholder, deserializedArray[i].Placeholder); + Assert.AreEqual(originalArray[i].Ref, deserializedArray[i].Ref); + } + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/Deprecated/DeprecatedConfigFileTests.cs b/MobiFlightUnitTests/Base/Deprecated/DeprecatedConfigFileTests.cs new file mode 100644 index 000000000..02e67372d --- /dev/null +++ b/MobiFlightUnitTests/Base/Deprecated/DeprecatedConfigFileTests.cs @@ -0,0 +1,240 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.OutputConfig; +using System; +using System.Text.RegularExpressions; + +namespace MobiFlight.Base.Deprecated.Tests +{ + [TestClass()] + public class DeprecatedConfigFileTests + { + [TestMethod()] + public void ConfigFileTest() + { + + var o = new DeprecatedConfigFile(@"assets\Base\ConfigFile\OpenConfigFile.xml"); + Assert.IsNotNull(o, "Object is null"); + } + + [TestMethod()] + //[Ignore] + public void OpenFileTest() + { + String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; + String expFile = @"assets\Base\ConfigFile\OpenFileTest.xml.exp"; + String inFileTemp = @"assets\Base\ConfigFile\temp_OpenFileTest.xml"; + + var o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + var oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + String s1 = System.IO.File.ReadAllText(expFile); + String s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + + Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); + System.IO.File.Delete(inFileTemp); + + + inFile = @"assets\Base\ConfigFile\OpenFileTest.2912.xml"; + expFile = @"assets\Base\ConfigFile\OpenFileTest.2912.xml.exp"; + inFileTemp = @"assets\Base\ConfigFile\temp_OpenFileTest.2912.xml"; + + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + s1 = System.IO.File.ReadAllText(expFile); + s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + + Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); + System.IO.File.Delete(inFileTemp); + + inFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc"; + inFileTemp = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.tmp"; + expFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; + + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + s1 = System.IO.File.ReadAllText(expFile); + s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + + Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); + System.IO.File.Delete(inFileTemp); + + // Load the new version was problematic\ + inFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; + inFileTemp = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.tmp"; + expFile = @"assets\Base\ConfigFile\7.5.0-7.5.1-upgrade.mcc.exp"; + + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + s1 = System.IO.File.ReadAllText(expFile); + s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + + Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); + System.IO.File.Delete(inFileTemp); + + // the files are partially from this project + // and also the example files are copied over + // from the examples folder (Main project) + foreach (string file in System.IO.Directory.GetFiles(@"assets\Base\ConfigFile\", "*.mcc")) + { + inFile = file; + expFile = inFile; + if (System.IO.File.Exists(inFile + ".exp")) expFile = inFile + ".exp"; + inFileTemp = inFile + ".tmp"; + + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + s1 = System.IO.File.ReadAllText(expFile); + s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + + Assert.AreEqual(s1, s2, inFile + ": Files are not the same"); + System.IO.File.Delete(inFileTemp); + } + + // load a broken config + inFile = @"assets\Base\ConfigFile\OpenFileBrokenTest.xml"; + inFileTemp = @"assets\Base\ConfigFile\OpenFileBrokenTest.xml.tmp"; + + bool exceptionThrown = false; + + try + { + s1 = "a"; + s2 = "b"; + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + + oTemp = new DeprecatedConfigFile(inFileTemp); + oTemp.OutputConfigItems = o.OutputConfigItems; + oTemp.InputConfigItems = o.InputConfigItems; + oTemp.SaveFile(); + + s1 = System.IO.File.ReadAllText(inFile); + s2 = System.IO.File.ReadAllText(inFileTemp); + + // get rid of the individual version number + // that varies every time we increment the MobiFlight version + s1 = replaceTestIrrelevantXmlInformation(s1); + s2 = replaceTestIrrelevantXmlInformation(s2); + } + catch (Exception) + { + exceptionThrown = true; + } + Assert.IsTrue(exceptionThrown); + + + // During testing for backward compatibility I noticed + // that an output config item could lack a settings node + // in this case the file should still load. + inFile = @"assets\Base\ConfigFile\OpenFileTest.NoSettingNode.xml"; + exceptionThrown = false; + try + { + o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + Assert.IsTrue(o.ConfigItems[0].Active); + Assert.IsTrue(o.ConfigItems[0].Name == "ConfigItem For Precondition"); + Assert.IsTrue(o.ConfigItems[0].GUID == "bdd97308-b4f8-475c-a8c4-729e191101af"); + } + catch (Exception) + { + exceptionThrown = true; + } + Assert.IsFalse(exceptionThrown); + } + + [TestMethod()] + public void SaveFileTest() + { + // implicitly tested in OpenFileTest(); + Assert.IsTrue(true); + } + + [TestMethod()] + public void getInputConfigTest() + { + String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; + var o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + var xr = o.OutputConfigItems; + + Assert.IsNotNull(xr); + } + + [TestMethod()] + public void getOutputConfigTest() + { + String inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; + var o = new DeprecatedConfigFile(inFile); + o.OpenFile(); + var xr = o.OutputConfigItems; + + Assert.IsNotNull(xr); + } + + string replaceTestIrrelevantXmlInformation(string s1) + { + s1 = Regex.Replace(s1, @"Version=[^,]+", "Version=1.0.0.0"); + s1 = s1.Replace(" msdata:InstanceType=\"MobiFlight.OutputConfigItem, MFConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"", ""); + s1 = s1.Replace(" msdata:InstanceType=\"MobiFlight.InputConfigItem, MFConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"", ""); + s1 = s1.Replace(" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\"", ""); + s1 = s1.Replace("", ""); + return s1; + } + } + +} \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/ExtensionsTests.cs b/MobiFlightUnitTests/Base/ExtensionsTests.cs index 48022aa7e..86177caf4 100644 --- a/MobiFlightUnitTests/Base/ExtensionsTests.cs +++ b/MobiFlightUnitTests/Base/ExtensionsTests.cs @@ -29,7 +29,7 @@ public void ReverseTest() [TestMethod()] public void GenerateSimpleHashTest() - { + { string xTouch = "X-TOUCH MINI"; int xTouchHash = xTouch.GenerateSimpleHash(); Assert.AreEqual(954907131, xTouchHash, "Failed to generate correct hash from string."); @@ -58,5 +58,20 @@ public void GenerateSimpleHashTest() int failHash = fail.GenerateSimpleHash(); Assert.AreNotEqual(0, failHash, "Hash of 0 should not be the result."); } + + [TestMethod()] + public void AreEqualTest() + { + string s1 = null; + string s2 = null; + Assert.IsTrue(s1.AreEqual(s2)); + + s1 = "Hello"; + Assert.IsFalse(s1.AreEqual(s2)); + s2 = "World!"; + Assert.IsFalse(s1.AreEqual(s2)); + s2 = "Hello"; + Assert.IsTrue(s1.AreEqual(s2)); + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/PreconditionListTests.cs b/MobiFlightUnitTests/Base/PreconditionListTests.cs index cb74ed5b6..04513bbd1 100644 --- a/MobiFlightUnitTests/Base/PreconditionListTests.cs +++ b/MobiFlightUnitTests/Base/PreconditionListTests.cs @@ -1,11 +1,9 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight.Base; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace MobiFlight.Base.Tests @@ -154,5 +152,53 @@ public void EqualsTest() Assert.IsTrue(o1.Equals(o2)); } + + [TestMethod()] + public void JsonSerializationDeserializationTest() + { + var originalList = new PreconditionList + { + new Precondition + { + PreconditionType = "config", + PreconditionLabel = "TestPreCon1", + PreconditionActive = true, + PreconditionRef = "TestRef1", + PreconditionOperand = "<", + PreconditionValue = "TestValue1", + PreconditionLogic = "or" + }, + new Precondition + { + PreconditionType = "config", + PreconditionLabel = "TestPreCon2", + PreconditionActive = false, + PreconditionRef = "TestRef2", + PreconditionOperand = ">", + PreconditionValue = "TestValue2", + PreconditionLogic = "and" + } + }; + + string json = JsonConvert.SerializeObject(originalList); + PreconditionList deserializedList = JsonConvert.DeserializeObject(json); + + Assert.IsNotNull(deserializedList); + Assert.AreEqual(originalList.Count, deserializedList.Count); + + var originalArray = originalList.ToArray(); + var deserializedArray = deserializedList.ToArray(); + + for (int i = 0; i < originalList.Count; i++) + { + Assert.AreEqual(originalArray[i].PreconditionType, deserializedArray[i].PreconditionType); + Assert.AreEqual(originalArray[i].PreconditionLabel, deserializedArray[i].PreconditionLabel); + Assert.AreEqual(originalArray[i].PreconditionActive, deserializedArray[i].PreconditionActive); + Assert.AreEqual(originalArray[i].PreconditionRef, deserializedArray[i].PreconditionRef); + Assert.AreEqual(originalArray[i].PreconditionOperand, deserializedArray[i].PreconditionOperand); + Assert.AreEqual(originalArray[i].PreconditionValue, deserializedArray[i].PreconditionValue); + Assert.AreEqual(originalArray[i].PreconditionLogic, deserializedArray[i].PreconditionLogic); + } + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/ProjectTests.cs b/MobiFlightUnitTests/Base/ProjectTests.cs new file mode 100644 index 000000000..e0657ac9a --- /dev/null +++ b/MobiFlightUnitTests/Base/ProjectTests.cs @@ -0,0 +1,110 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace MobiFlight.Base.Tests +{ + [TestClass()] + public class ProjectTests + { + [TestMethod()] + public void OpenFileTest_Single_Xml() + { + string inFile = @"assets\Base\ConfigFile\OpenFileTest.xml"; + var o = new Project(); + Assert.IsNotNull(o); + + o.FilePath = inFile; + o.OpenFile(); + + Assert.IsNotNull(o.ConfigFiles); + Assert.IsTrue(o.ConfigFiles.Count > 0); + + var config = o.ConfigFiles[0]; + var inputConfigs = config.ConfigItems.Where(i => i is InputConfigItem); + + Assert.IsNotNull(inputConfigs); + Assert.IsTrue(inputConfigs.Count() > 0); + + var outputConfigs = config.ConfigItems.Where(i => i is OutputConfigItem); + Assert.IsNotNull(outputConfigs); + Assert.IsTrue(outputConfigs.Count() > 0); + } + + [TestMethod()] + public void OpenFileTest_Single_Json_Embedded() + { + string inFile = @"assets\Base\ConfigFile\Json\OpenProjectTest.mfproj"; + var o = new Project(); + Assert.IsNotNull(o); + + o.FilePath = inFile; + o.OpenFile(); + + Assert.IsNotNull(o.ConfigFiles); + Assert.IsTrue(o.ConfigFiles.Count > 0); + + var config = o.ConfigFiles[0]; + var inputConfigs = config.ConfigItems.Where(i => i is InputConfigItem); + + Assert.IsNotNull(inputConfigs); + Assert.IsTrue(inputConfigs.Count() > 0); + + var outputConfigs = config.ConfigItems.Where(i => i is OutputConfigItem); + Assert.IsNotNull(outputConfigs); + Assert.IsTrue(outputConfigs.Count() > 0); + } + + [TestMethod()] + public void SaveFileTest() + { + string inFile = @"assets\Base\ConfigFile\Json\OpenProjectTest.mfproj"; + var o = new Project(); + o.FilePath = inFile; + o.OpenFile(); + + string outFile = @"assets\Base\ConfigFile\Json\SaveProjectTest.mfproj"; + o.FilePath = outFile; + o.SaveFile(); + + var o2 = new Project(); + o2.FilePath = outFile; + o2.OpenFile(); + Assert.IsNotNull(o2.ConfigFiles); + Assert.AreEqual(o, o2); + } + + [TestMethod()] + public void EqualsTest() + { + var o = new Project(); + o.Name = "Test"; + o.FilePath = "TestPath"; + + var o2 = new Project(); + o2.Name = "Test"; + o2.FilePath = "TestPath"; + Assert.IsTrue(o2.Equals(o)); + + o.ConfigFiles.Add(new ConfigFile()); + Assert.IsFalse(o2.Equals(o)); + + o2.ConfigFiles.Add(new ConfigFile()); + Assert.IsTrue(o2.Equals(o)); + + var ici1 = new InputConfigItem(); + var ici2 = new InputConfigItem(ici1); + + o2.ConfigFiles[0].ConfigItems.Add(ici1); + Assert.IsFalse(o2.Equals(o)); + + o.ConfigFiles[0].ConfigItems.Add(ici2); + Assert.IsTrue(o2.Equals(o)); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/Base/Serialization/Json/SourceConverterTests.cs b/MobiFlightUnitTests/Base/Serialization/Json/SourceConverterTests.cs new file mode 100644 index 000000000..e6c8ba581 --- /dev/null +++ b/MobiFlightUnitTests/Base/Serialization/Json/SourceConverterTests.cs @@ -0,0 +1,86 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.OutputConfig; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; + +namespace MobiFlight.Base.Serialization.Json.Tests +{ + [TestClass()] + public class SourceConverterTests + { + private JsonSerializerSettings _serializerSettings; + private List _sourceTypes; + + [TestInitialize] + public void Setup() + { + _serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new SourceConverter() } + }; + + _sourceTypes = new List() { + typeof(SimConnectSource), + typeof(VariableSource), + typeof(XplaneSource), + typeof(FsuipcSource), + }; + } + + private void SetProperties(Source original) + { + if (original is SimConnectSource simConnect) + { + simConnect.SimConnectValue = new SimConnectValue() + { + UUID = Guid.NewGuid().ToString(), + VarType = SimConnectVarType.CODE, + Value = "TestValue" + }; + } + else if (original is VariableSource variable) + { + variable.MobiFlightVariable = new MobiFlightVariable() + { + Name = "TestName", + Expression = "TestExpression", + Number = 123, + Text = "TestText", + }; + } + else if (original is XplaneSource xplane) + { + xplane.XplaneDataRef = new xplane.XplaneDataRef() + { + Path = "TestPath", + }; + } + else if (original is FsuipcSource fsuipc) + { + fsuipc.FSUIPC = new FsuipcOffset() + { + BcdMode = false, + Mask = 255, + Offset = 123, + OffsetType = FSUIPCOffsetType.Integer, + Size = 4, + }; + } + } + + [TestMethod()] + public void ReadJsonTest() + { + foreach (var type in _sourceTypes) + { + var original = Activator.CreateInstance(type) as Source; + SetProperties(original); + var json = JsonConvert.SerializeObject(original, _serializerSettings); + var deserialized = JsonConvert.DeserializeObject(json, _serializerSettings); + Assert.AreEqual(original, deserialized); + } + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ConfigItemConverterTests.cs b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ConfigItemConverterTests.cs new file mode 100644 index 000000000..2ddb27fc2 --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ConfigItemConverterTests.cs @@ -0,0 +1,69 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.Base; +using MobiFlight.Base.Serialization.Json; +using Newtonsoft.Json; +using System; + +namespace MobiFlight.BrowserMessages.Incoming.Converter.Tests +{ + [TestClass()] + public class ConfigItemConverterTests + { + [TestMethod] + public void CanConvertTest() + { + var converter = new ConfigItemConverter(); + Assert.IsTrue(converter.CanConvert(typeof(InputConfigItem))); + Assert.IsTrue(converter.CanConvert(typeof(OutputConfigItem))); + Assert.IsFalse(converter.CanConvert(typeof(string))); + } + + [TestMethod] + public void ReadJson_InputConfigItem_DeserializesCorrectly() + { + var json = "{\"Type\":\"InputConfigItem\",\"Name\":\"SomeValue\"}"; + var result = JsonConvert.DeserializeObject(json); + + Assert.IsInstanceOfType(result, typeof(InputConfigItem)); + Assert.AreEqual("SomeValue", ((InputConfigItem)result).Name); + } + + [TestMethod] + public void ReadJson_OutputConfigItem_DeserializesCorrectly() + { + var json = "{\"Type\":\"OutputConfigItem\",\"Name\":\"SomeValue\"}"; + var result = JsonConvert.DeserializeObject(json); + + Assert.IsInstanceOfType(result, typeof(OutputConfigItem)); + Assert.AreEqual("SomeValue", ((OutputConfigItem)result).Name); + } + + [TestMethod] + [ExpectedException(typeof(NotSupportedException))] + public void ReadJson_UnsupportedType_ThrowsNotSupportedException() + { + var json = "{\"Type\":\"UnsupportedConfigItem\"}"; + JsonConvert.DeserializeObject(json); + } + + [TestMethod] + public void WriteJson_InputConfigItem_SerializesCorrectly() + { + var item = new InputConfigItem { Name = "SomeValue" }; + var json = JsonConvert.SerializeObject(item); + + StringAssert.Contains(json, "\"Type\":\"InputConfigItem\""); + StringAssert.Contains(json, "\"Name\":\"SomeValue\""); + } + + [TestMethod] + public void WriteJson_OutputConfigItem_SerializesCorrectly() + { + var item = new OutputConfigItem { Name = "SomeValue" }; + var json = JsonConvert.SerializeObject(item); + + StringAssert.Contains(json, "\"Type\":\"OutputConfigItem\""); + StringAssert.Contains(json, "\"Name\":\"SomeValue\""); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverterTests.cs b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverterTests.cs new file mode 100644 index 000000000..34c595ec3 --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/InputActionConverterTests.cs @@ -0,0 +1,131 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.InputConfig; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; + +namespace MobiFlight.BrowserMessages.Incoming.Converter.Tests +{ + [TestClass()] + public class InputActionConverterTests + { + private JsonSerializerSettings _serializerSettings; + private List _inputActionTypes; + + [TestInitialize] + public void Setup() + { + _serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new InputActionConverter() } + }; + + _inputActionTypes = InputActionFactory.GetAllInputActionTypes(); + } + + private void SetProperties(InputAction action) + { + if (action is MSFS2020CustomInputAction msfsAction) + { + msfsAction.Command = "TestCommand"; + msfsAction.PresetId = "TestPresetId"; + } + else if (action is VariableInputAction variableAction) + { + variableAction.Variable = new MobiFlightVariable() + { + Name = "TestVariable" + }; + } + else if (action is EventIdInputAction eventIdAction) + { + eventIdAction.EventId = 12345; + } + else if (action is JeehellInputAction jeehellAction) + { + jeehellAction.EventId = 123; + jeehellAction.Param = "TestParam"; + } + else if (action is XplaneInputAction xplaneAction) + { + xplaneAction.Expression = "TestExpression"; + xplaneAction.InputType = "TestInputType"; + xplaneAction.Path = "TestPath"; + } + else if (action is KeyInputAction keyAction) + { + keyAction.Key = System.Windows.Forms.Keys.V; + } + else if (action is LuaMacroInputAction luaAction) + { + luaAction.MacroValue = "TestMacro"; + } + else if (action is RetriggerInputAction retriggerAction) + { + } + else if (action is FsuipcOffsetInputAction fsuipcAction) + { + fsuipcAction.Value = "12345"; + fsuipcAction.FSUIPC = new OutputConfig.FsuipcOffset() + { + BcdMode = false, + Offset = 123, + OffsetType = FSUIPCOffsetType.Integer, + Size = 1, + Mask = 0xBA + }; + } + else if (action is PmdgEventIdInputAction pmdgAction) + { + pmdgAction.EventId = 12345; + pmdgAction.Param = "TestParam"; + } + else if (action is VJoyInputAction vjoyAction) + { + vjoyAction.sendValue = "12345"; + vjoyAction.axisString = "TestAxisString"; + vjoyAction.buttonComand = true; + vjoyAction.buttonNr = 12; + vjoyAction.vJoyID = 1; + } + + // Add other InputAction types and set their properties here + } + + [TestMethod()] + public void CanConvertTest() + { + var converter = new InputActionConverter(); + foreach (var type in _inputActionTypes) + { + Assert.IsTrue(converter.CanConvert(type)); + } + } + + [TestMethod()] + public void WriteJsonTest() + { + foreach (var type in _inputActionTypes) + { + var originalAction = new MSFS2020CustomInputAction() as InputAction; + SetProperties(originalAction); + var json = JsonConvert.SerializeObject(originalAction, _serializerSettings); + Assert.IsFalse(string.IsNullOrEmpty(json)); + } + } + + [TestMethod()] + public void ReadJsonTest() + { + foreach (var type in _inputActionTypes) + { + var originalAction = Activator.CreateInstance(type) as InputAction; + SetProperties(originalAction); + var json = JsonConvert.SerializeObject(originalAction, _serializerSettings); + var deserializedAction = JsonConvert.DeserializeObject(json, _serializerSettings); + Assert.AreEqual(originalAction, deserializedAction); + } + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverterTests.cs b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverterTests.cs new file mode 100644 index 000000000..eb5c0c4b3 --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/BrowserMessages/Incoming/Converter/ModifierBaseConverterTests.cs @@ -0,0 +1,84 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.Modifier; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; + +namespace MobiFlight.BrowserMessages.Incoming.Converter.Tests +{ + [TestClass()] + public class ModifierBaseConverterTests + { + private JsonSerializerSettings _serializerSettings; + private List _modifierTypes; + + [TestInitialize] + public void Setup() + { + _serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new InputActionConverter() } + }; + + _modifierTypes = new List() { + typeof(Blink), + typeof(Comparison), + typeof(Interpolation), + typeof(Padding), + typeof(Substring), + typeof(Transformation), + }; + } + + [TestMethod()] + public void WriteJsonTest() + { + foreach (var type in _modifierTypes) + { + var originalModifier = Activator.CreateInstance(type) as ModifierBase; + SetProperties(originalModifier); + var json = JsonConvert.SerializeObject(originalModifier, _serializerSettings); + var deserializedModifier = JsonConvert.DeserializeObject(json, _serializerSettings); + Assert.AreEqual(originalModifier, deserializedModifier); + } + } + + private void SetProperties(ModifierBase originalModifier) + { + if (originalModifier is Blink blink) + { + blink.BlinkValue = " "; + blink.FirstExecutionTime = 100; + blink.OffDurationInMs = 200; + blink.OnOffSequence = new List() { 200, 300 }; + } + else if (originalModifier is Comparison compare) + { + compare.IfValue = "0"; + compare.ElseValue = "1"; + compare.Value = "TestValue"; + compare.Operand = "="; + } + else if (originalModifier is Interpolation interpolation) + { + interpolation.Add(3000, 6000); + } + else if (originalModifier is Padding padding) + { + padding.Character = '0'; + padding.Length = 10; + padding.Direction = Padding.PaddingDirection.Left; + } + else if (originalModifier is Substring substring) + { + substring.End = 10; + substring.Start = 0; + } + else if (originalModifier is Transformation transformation) + { + transformation.Expression = "$ + 1"; + } + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageExchangeTests.cs b/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageExchangeTests.cs new file mode 100644 index 000000000..09c2396a9 --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageExchangeTests.cs @@ -0,0 +1,116 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; +using Newtonsoft.Json; +using System; + +namespace MobiFlight.BrowserMessages.Tests +{ + [TestClass()] + public class MessageExchangeTests + { + private Mock mockPublisher; + private MessageExchange messageExchange; + private Action capturedCallback; + + [TestInitialize] + public void TestInitialize() + { + // Reset the singleton instance if possible, or ensure tests run in isolation + // This depends on your implementation of MessageExchange + messageExchange = MessageExchange.Instance; + + mockPublisher = new Mock(); + + // Capture the callback passed to OnMessageReceived + mockPublisher + .Setup(p => p.OnMessageReceived(It.IsAny>())) + .Callback>(callback => + { + capturedCallback = callback; + }); + + // Act: Set the publisher, which should register the captured callback + messageExchange.SetPublisher(mockPublisher.Object); + } + + [TestMethod()] + public void SetPublisherTest() + { + // Arrange + // Initialization is done in TestInitialize + + // Act + // Already performed in TestInitialize + + // Assert + mockPublisher.Verify(p => p.OnMessageReceived(It.IsAny>()), Times.Once); + Assert.IsNotNull(capturedCallback, "The callback should have been captured."); + } + + [TestMethod()] + public void PublishTest() + { + // Arrange + var testEvent = new Test { Property1 = "TestValue" }; + + // Act + messageExchange.Publish(testEvent); + + // Assert + mockPublisher.Verify(p => p.Publish(It.Is(e => e.Property1 == testEvent.Property1)), Times.Once); + } + + [TestMethod()] + public void SubscribeTest() + { + // Arrange + var testEvent = new Test { Property1 = "TestValue" }; + var messageJson = JsonConvert.SerializeObject(new Message("Test", testEvent)); + + bool isSubscriberInvoked = false; + Action subscriberAction = receivedEvent => + { + isSubscriberInvoked = true; + Assert.AreEqual(testEvent.Property1, receivedEvent.Property1); + }; + + // Act + messageExchange.Subscribe(subscriberAction); + // Simulate receiving a message + capturedCallback(messageJson); + + // Assert + Assert.IsTrue(isSubscriberInvoked, "Subscriber should have been invoked."); + } + + [TestMethod()] + public void UnsubscribeTest() + { + // Arrange + var testEvent = new Test { Property1 = "TestValue" }; + var messageJson = JsonConvert.SerializeObject(new Message("Test", testEvent)); + + bool isSubscriberInvoked = false; + Action subscriberAction = receivedEvent => + { + isSubscriberInvoked = true; + Assert.AreEqual(testEvent.Property1, receivedEvent.Property1); + }; + + messageExchange.Subscribe(subscriberAction); + messageExchange.Unsubscribe(subscriberAction); + + // Act + // Simulate receiving a message + capturedCallback(messageJson); + + // Assert + Assert.IsFalse(isSubscriberInvoked, "Subscriber should not have been invoked after unsubscription."); + } + } + + public class Test + { + public string Property1 { get; set; } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageTests.cs b/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageTests.cs new file mode 100644 index 000000000..3486fdd4d --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/BrowserMessages/MessageTests.cs @@ -0,0 +1,31 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.BrowserMessages; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MobiFlight.BrowserMessages.Tests +{ + [TestClass()] + public class MessageTests + { + [TestMethod()] + public void MessageTest() + { + // Constructor tests + Message message = new Message(); + Assert.IsNull(message.key); + Assert.IsNull(message.payload); + + message = new Message("key", "payload"); + Assert.AreEqual("key", message.key); + Assert.AreEqual("payload", message.payload); + + message = new Message("payload"); + Assert.AreEqual("String", message.key); + Assert.AreEqual("payload", message.payload); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/InputConfig/AnalogInputConfigTests.cs b/MobiFlightUnitTests/MobiFlight/InputConfig/AnalogInputConfigTests.cs index 7f8f04bb8..14541ad4f 100644 --- a/MobiFlightUnitTests/MobiFlight/InputConfig/AnalogInputConfigTests.cs +++ b/MobiFlightUnitTests/MobiFlight/InputConfig/AnalogInputConfigTests.cs @@ -1,11 +1,9 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight.InputConfig; +using MobiFlight.BrowserMessages.Incoming.Converter; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace MobiFlight.InputConfig.Tests @@ -108,5 +106,21 @@ public void GetInputActionsByTypeTest() result = cfg.GetInputActionsByType(typeof(VariableInputAction)); Assert.AreEqual(result.Count, 0); } + + [TestMethod()] + public void JsonSerializationTest() + { + var serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new InputActionConverter() } + }; + + var original = generateTestObject(); + string json = JsonConvert.SerializeObject(original, serializerSettings); + var deserialized = JsonConvert.DeserializeObject(json, serializerSettings); + + Assert.AreEqual(original, deserialized); + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/InputConfig/ButtonInputConfigTests.cs b/MobiFlightUnitTests/MobiFlight/InputConfig/ButtonInputConfigTests.cs index 8e9695ced..ad6655f2c 100644 --- a/MobiFlightUnitTests/MobiFlight/InputConfig/ButtonInputConfigTests.cs +++ b/MobiFlightUnitTests/MobiFlight/InputConfig/ButtonInputConfigTests.cs @@ -1,5 +1,8 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; +using MobiFlight.BrowserMessages.Incoming.Converter; +using Newtonsoft.Json; using System; +using System.Collections.Generic; using System.IO; using System.Xml; @@ -193,5 +196,21 @@ public void GetInputActionsByTypeTest() Assert.AreEqual(result[1].GetType(), typeof(VariableInputAction)); Assert.AreEqual(result[2].GetType(), typeof(VariableInputAction)); } + + [TestMethod()] + public void JsonSerializationTest() + { + var serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new InputActionConverter() } + }; + + var original = generateTestObject(); + string json = JsonConvert.SerializeObject(original, serializerSettings); + var deserialized = JsonConvert.DeserializeObject(json, serializerSettings); + + Assert.AreEqual(original, deserialized); + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/InputConfig/EncoderInputConfigTests.cs b/MobiFlightUnitTests/MobiFlight/InputConfig/EncoderInputConfigTests.cs index f358004df..9f37496a1 100644 --- a/MobiFlightUnitTests/MobiFlight/InputConfig/EncoderInputConfigTests.cs +++ b/MobiFlightUnitTests/MobiFlight/InputConfig/EncoderInputConfigTests.cs @@ -1,11 +1,9 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight.InputConfig; +using MobiFlight.BrowserMessages.Incoming.Converter; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace MobiFlight.InputConfig.Tests @@ -147,5 +145,21 @@ public void GetInputActionsByTypeTest() Assert.AreEqual(result[2].GetType(), typeof(VariableInputAction)); Assert.AreEqual(result[3].GetType(), typeof(VariableInputAction)); } + + [TestMethod()] + public void JsonSerializationTest() + { + var serializerSettings = new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + Converters = new List { new InputActionConverter() } + }; + + var original = generateTestObject(); + string json = JsonConvert.SerializeObject(original, serializerSettings); + var deserialized = JsonConvert.DeserializeObject(json, serializerSettings); + + Assert.AreEqual(original, deserialized); + } } } \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/InputConfigItemTests.cs b/MobiFlightUnitTests/MobiFlight/InputConfigItemTests.cs index 28ec10eb3..990c001c4 100644 --- a/MobiFlightUnitTests/MobiFlight/InputConfigItemTests.cs +++ b/MobiFlightUnitTests/MobiFlight/InputConfigItemTests.cs @@ -1,14 +1,13 @@ -using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight; +using MobiFlight; +using Microsoft.VisualStudio.TestTools.UnitTesting; using MobiFlight.InputConfig; using MobiFlight.OutputConfig; using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; +using MobiFlight.Base; +using System.Collections.Generic; +using System.Linq; namespace MobiFlight.Tests { @@ -21,7 +20,7 @@ public void InputConfigItemTest() InputConfigItem o = new InputConfigItem(); Assert.IsInstanceOfType(o, typeof(InputConfigItem), "Not of type InputConfigItem"); Assert.AreEqual(o.Preconditions.Count, 0, "Preconditions Count other than 0"); - Assert.AreEqual(o.Type, InputConfigItem.TYPE_NOTSET, "Type other than NOTSET"); + Assert.AreEqual(o.DeviceType, InputConfigItem.TYPE_NOTSET, "Type other than NOTSET"); } [TestMethod()] @@ -45,9 +44,9 @@ public void ReadXmlTest() o.ReadXml(xmlReader); Assert.AreEqual(o.ModuleSerial, "TestSerial", "ModuleSerial not the same"); - Assert.AreEqual(o.Name, "TestName", "Name not the same"); + Assert.AreEqual(o.DeviceName, "TestName", "Name not the same"); Assert.AreEqual(o.Preconditions.Count, 0, "Preconditions Count not the same"); - Assert.AreEqual(o.Type, "Button", "Type not the same"); + Assert.AreEqual(o.DeviceType, "Button", "Type not the same"); Assert.IsNull(o.button.onPress, "button onpress not null"); Assert.IsNotNull(o.button.onRelease, "button onRelease is null"); Assert.IsNotNull(o.ConfigRefs, "ConfigRefs is null"); @@ -64,9 +63,9 @@ public void ReadXmlTest() o.ReadXml(xmlReader); Assert.AreEqual(o.ModuleSerial, "TestSerial", "ModuleSerial not the same"); - Assert.AreEqual(o.Name, "TestName", "Name not the same"); Assert.AreEqual(o.Preconditions.Count, 0, "Preconditions Count not the same"); - Assert.AreEqual(o.Type, "Button", "Type not the same"); + Assert.AreEqual(o.DeviceName, "TestName", "Name not the same"); + Assert.AreEqual(o.DeviceType, "Button", "Type not the same"); Assert.IsNull(o.button.onPress, "button onpress not null"); Assert.IsNotNull(o.button.onRelease, "button onRelease is null"); Assert.IsNull(o.encoder.onLeft, "encoder onLeft not null"); @@ -87,9 +86,9 @@ public void ReadXmlTest() o.ReadXml(xmlReader); Assert.AreEqual(o.ModuleSerial, "TestSerial", "ModuleSerial not the same"); - Assert.AreEqual(o.Name, "TestName", "Name not the same"); Assert.AreEqual(o.Preconditions.Count, 0, "Preconditions Count not the same"); - Assert.AreEqual(o.Type, "Button", "Type not the same"); + Assert.AreEqual(o.DeviceName, "TestName", "Name not the same"); + Assert.AreEqual(o.DeviceType, "Button", "Type not the same"); Assert.IsNull(o.inputShiftRegister.onPress, "button onpress not null"); Assert.IsNotNull(o.inputShiftRegister.onRelease, "button onRelease is null"); Assert.IsNotNull(o.inputShiftRegister.onRelease as JeehellInputAction, "OnRelease is not of type JeehellInputAction"); @@ -105,9 +104,9 @@ public void ReadXmlTest() o.ReadXml(xmlReader); Assert.AreEqual(o.ModuleSerial, "TestSerial", "ModuleSerial not the same"); - Assert.AreEqual(o.Name, "TestName", "Name not the same"); Assert.AreEqual(o.Preconditions.Count, 0, "Preconditions Count not the same"); - Assert.AreEqual(o.Type, "Button", "Type not the same"); + Assert.AreEqual(o.DeviceName, "TestName", "Name not the same"); + Assert.AreEqual(o.DeviceType, "Button", "Type not the same"); Assert.IsNull(o.inputMultiplexer.onPress, "button onpress not null"); Assert.IsNotNull(o.inputMultiplexer.onRelease, "button onRelease is null"); Assert.IsNotNull(o.inputMultiplexer.onRelease as JeehellInputAction, "OnRelease is not of type JeehellInputAction"); @@ -123,7 +122,7 @@ public void ReadXmlTest() o.ReadXml(xmlReader); Assert.AreEqual(o.ModuleSerial, "737PEDESTAL1/ SN-769-a6a", "ModuleSerial not the same"); - Assert.AreEqual(o.Name, "Analog 67 A13", "Name not the same"); + Assert.AreEqual(o.DeviceName, "Analog 67 A13", "Name not the same"); Assert.AreEqual(o.Preconditions.Count, 1, "Preconditions Count not the same"); Assert.AreEqual(o.ConfigRefs.Count, 1, "Config ref count is not correct"); } @@ -140,7 +139,7 @@ public void WriteXmlTest() InputConfigItem o = generateTestObject(); xmlWriter.WriteStartElement("settings"); - o.WriteXml(xmlWriter); + o.WriteXml(xmlWriter, false); xmlWriter.WriteEndElement(); xmlWriter.Flush(); string s = sw.ToString(); @@ -151,14 +150,14 @@ public void WriteXmlTest() // https://github.com/MobiFlight/MobiFlight-Connector/issues/797 o = new InputConfigItem(); - o.Type = InputConfigItem.TYPE_ANALOG; + o.DeviceType = InputConfigItem.TYPE_ANALOG; if (o.analog == null) o.analog = new InputConfig.AnalogInputConfig(); o.analog.onChange = new MSFS2020CustomInputAction() { Command = "test", PresetId = Guid.NewGuid().ToString() }; sw = new StringWriter(); xmlWriter = System.Xml.XmlWriter.Create(sw, settings); xmlWriter.WriteStartElement("settings"); - o.WriteXml(xmlWriter); + o.WriteXml(xmlWriter, false); xmlWriter.WriteEndElement(); xmlWriter.Flush(); s = sw.ToString(); @@ -192,6 +191,10 @@ public void CloneTest() private InputConfigItem generateTestObject() { InputConfigItem result = new InputConfigItem(); + result.Name = "Test Input Config Item"; + result.Active = false; + result.GUID = "123-input"; + result.button = new InputConfig.ButtonInputConfig(); result.button.onRelease = new InputConfig.FsuipcOffsetInputAction() { @@ -204,11 +207,11 @@ private InputConfigItem generateTestObject() }, Value = "1" }; - result.Type = InputConfigItem.TYPE_BUTTON; result.encoder = null; result.ModuleSerial = "TestSerial"; - result.Name = "TestName"; + result.DeviceName = "TestName"; + result.DeviceType = InputConfigItem.TYPE_BUTTON; result.Preconditions.Add(new Precondition() { PreconditionSerial = "PreConTestSerial" }); result.ConfigRefs.Add(new Base.ConfigRef() { Active = true, Placeholder = "@", Ref = "0b1c877f-baf3-4c69-99e6-6c31429fe3bd" }); result.ConfigRefs.Add(new Base.ConfigRef() { Active = false, Placeholder = "%", Ref = "7d1370d3-56e9-497a-8abb-63ecc169defe" }); @@ -221,6 +224,7 @@ public void EqualsTest() { InputConfigItem o1 = new InputConfigItem(); InputConfigItem o2 = new InputConfigItem(); + o1.GUID = o2.GUID; Assert.IsTrue(o1.Equals(o2)); @@ -228,8 +232,12 @@ public void EqualsTest() Assert.IsFalse(o1.Equals(o2)); o2 = generateTestObject(); - Assert.IsTrue(o1.Equals(o2)); + + var list1 = new List() { o1, o2 }; + var list2 = new List() { o1, o2 }; + + Assert.IsTrue(list1.SequenceEqual(list2)); } [TestMethod()] diff --git a/MobiFlightUnitTests/MobiFlight/Modifier/BlinkTests.cs b/MobiFlightUnitTests/MobiFlight/Modifier/BlinkTests.cs new file mode 100644 index 000000000..4161d4dfc --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/Modifier/BlinkTests.cs @@ -0,0 +1,42 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace MobiFlight.Modifier.Tests +{ + [TestClass()] + public class BlinkTests + { + [TestMethod()] + public void EqualsTest() + { + // Check for equality between two Blink objects + var blink1 = new Blink(); + var blink2 = new Blink(); + Assert.AreEqual(blink1, blink2); + + // Check for inequality between two Blink objects + blink1.BlinkValue = "1"; + Assert.AreNotEqual(blink1, blink2); + + blink2.BlinkValue = "1"; + Assert.AreEqual(blink1, blink2); + + blink1.OnOffSequence.Add(1); + Assert.AreNotEqual(blink1, blink2); + + blink2.OnOffSequence.Add(1); + Assert.AreEqual(blink1, blink2); + + blink1.FirstExecutionTime = 1; + Assert.AreNotEqual(blink1, blink2); + + blink2.FirstExecutionTime = 1; + Assert.AreEqual(blink1, blink2); + + blink1.OffDurationInMs = 1; + Assert.AreNotEqual(blink1, blink2); + + blink2.OffDurationInMs = 1; + Assert.AreEqual(blink1, blink2); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/OutputConfig/CustomDeviceTests.cs b/MobiFlightUnitTests/MobiFlight/OutputConfig/CustomDeviceTests.cs index d6ace013d..399e1bca7 100644 --- a/MobiFlightUnitTests/MobiFlight/OutputConfig/CustomDeviceTests.cs +++ b/MobiFlightUnitTests/MobiFlight/OutputConfig/CustomDeviceTests.cs @@ -108,7 +108,7 @@ public void WriteXmlTest() o.MessageType = 3; xmlWriter.WriteStartElement("display"); - xmlWriter.WriteAttributeString("type", CustomDevice.Type); + xmlWriter.WriteAttributeString("type", CustomDevice.DeprecatedType); xmlWriter.WriteAttributeString("serial", "Serial"); xmlWriter.WriteAttributeString("trigger", "normal"); o.WriteXml(xmlWriter); diff --git a/MobiFlightUnitTests/MobiFlight/OutputConfig/PinTests.cs b/MobiFlightUnitTests/MobiFlight/OutputConfig/OutputTests.cs similarity index 88% rename from MobiFlightUnitTests/MobiFlight/OutputConfig/PinTests.cs rename to MobiFlightUnitTests/MobiFlight/OutputConfig/OutputTests.cs index 6d544e6dc..b657f06ef 100644 --- a/MobiFlightUnitTests/MobiFlight/OutputConfig/PinTests.cs +++ b/MobiFlightUnitTests/MobiFlight/OutputConfig/OutputTests.cs @@ -1,22 +1,17 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight.OutputConfig; using System; -using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace MobiFlight.OutputConfig.Tests { [TestClass()] - public class PinTests + public class OutputTests { [TestMethod()] public void PinTest() { - Pin o = new Pin(); + Output o = new Output(); Assert.IsNotNull(o); Assert.AreEqual(byte.MaxValue, o.DisplayPinBrightness); Assert.AreEqual(false, o.DisplayPinPWM); @@ -25,11 +20,11 @@ public void PinTest() [TestMethod()] public void CloneTest() { - Pin o = new Pin(); + Output o = new Output(); o.DisplayPin = "DisplayPin"; o.DisplayPinBrightness = 128; o.DisplayPinPWM = true; - Pin clone = o.Clone() as Pin; + Output clone = o.Clone() as Output; Assert.AreEqual(o.DisplayPin,clone.DisplayPin); Assert.AreEqual(o.DisplayPinBrightness, clone.DisplayPinBrightness); @@ -39,8 +34,8 @@ public void CloneTest() [TestMethod()] public void EqualsTest() { - Pin o1 = new Pin(); - Pin o2 = new Pin(); + Output o1 = new Output(); + Output o2 = new Output(); Assert.IsTrue(o1.Equals(o2)); o1.DisplayPin = "DisplayPin"; @@ -57,7 +52,7 @@ public void EqualsTest() [TestMethod()] public void ReadXmlTest() { - Pin o = new Pin(); + Output o = new Output(); String s = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\Pin\ReadXmlTest.1.xml"); StringReader sr = new StringReader(s); @@ -83,7 +78,7 @@ public void WriteXmlTest() //settings.NewLineHandling = NewLineHandling.Entitize; System.Xml.XmlWriter xmlWriter = System.Xml.XmlWriter.Create(sw, settings); - Pin o = new Pin(); + Output o = new Output(); o.DisplayPin = "Pin"; o.DisplayPinBrightness = 128; o.DisplayPinPWM = true; diff --git a/MobiFlightUnitTests/MobiFlight/OutputConfig/ShiftRegisterTests.cs b/MobiFlightUnitTests/MobiFlight/OutputConfig/ShiftRegisterTests.cs new file mode 100644 index 000000000..aa3c6f980 --- /dev/null +++ b/MobiFlightUnitTests/MobiFlight/OutputConfig/ShiftRegisterTests.cs @@ -0,0 +1,145 @@ +using MobiFlight.OutputConfig; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Net; +using System.IO; +using System.Xml; +using System; + +namespace MobiFlight.OutputConfig.Tests +{ + [TestClass()] + public class ShiftRegisterTests + { + [TestMethod()] + public void ShiftRegisterTest() + { + var o = new ShiftRegister(); + Assert.IsNotNull(o); + Assert.AreEqual("", o.Address); + Assert.AreEqual("", o.Pin); + Assert.AreEqual(byte.MaxValue, o.Brightness); + Assert.IsFalse(o.PWM); + + o.Pin = "Pin"; + Assert.AreEqual("Pin", o.Pin); + + o.Address = "Address"; + Assert.AreEqual("Address", o.Address); + Assert.AreEqual(o.Address, o.Name); + } + + [TestMethod()] + public void EqualsTest() + { + var o = new ShiftRegister(); + var other = new ShiftRegister(); + Assert.IsTrue(o.Equals(other)); + + o.PWM = true; + Assert.IsFalse(o.Equals(other)); + + other.PWM = o.PWM; + Assert.IsTrue(o.Equals(other)); + + o.Address = "Address"; + Assert.IsFalse(o.Equals(other)); + other.Address = o.Address; + Assert.IsTrue(o.Equals(other)); + + o.Brightness = 1; + Assert.IsFalse(o.Equals(other)); + other.Brightness = o.Brightness; + Assert.IsTrue(o.Equals(other)); + + } + + [TestMethod()] + public void ReadXmlTest() + { + var o = new ShiftRegister(); + + String s = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\ShiftRegister\ReadXmlTest.1.xml"); + StringReader sr = new StringReader(s); + XmlReaderSettings settings = new XmlReaderSettings(); + settings.IgnoreWhitespace = true; + + System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(sr, settings); + xmlReader.ReadToDescendant("display"); + o.ReadXml(xmlReader); + + Assert.AreEqual("Output 4", o.Pin); + Assert.AreEqual(128, o.Brightness); + Assert.AreEqual(true, o.PWM); + } + + [TestMethod()] + public void WriteXmlTest() + { + StringWriter sw = new StringWriter(); + XmlWriterSettings settings = new XmlWriterSettings(); + settings.Encoding = System.Text.Encoding.UTF8; + settings.Indent = true; + //settings.NewLineHandling = NewLineHandling.Entitize; + System.Xml.XmlWriter xmlWriter = System.Xml.XmlWriter.Create(sw, settings); + + var o = new ShiftRegister(); + o.Address = "ShiftRegister"; + o.Pin = "Output 4"; + o.Brightness = 128; + o.PWM = true; + + xmlWriter.WriteStartElement("display"); + xmlWriter.WriteAttributeString("type", MobiFlightShiftRegister.TYPE); + xmlWriter.WriteAttributeString("serial", "DisplaySerial"); + o.WriteXml(xmlWriter); + xmlWriter.WriteEndElement(); + xmlWriter.Flush(); + string s = sw.ToString(); + + String result = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\ShiftRegister\WriteXmlTest.1.xml"); + + Assert.AreEqual(result, s, "The both strings are not equal"); + } + + [TestMethod()] + public void ToStringTest() + { + // The list of selected pins is stored as a string in this format: Output 1|Output 2|Output 10 + // That's too wordy to display in UI so strip out the "Output " and "|", then separate + // the pin assignments with a comma. The resulting display string is: ShiftRegister:1,2,10. + // + // The UI forces at least one pin assignment so there is no case where the resulting string + // would be ShiftRegister: (with no pins listed and a trailing colon). + + // return $"{Address}:{Pin.Replace("Output ", ",").Replace("|", "").TrimStart(',')}"; + + var o = new ShiftRegister(); + o.Pin = "Output 1|Output 2|Output 3"; + o.Address = "Address"; + Assert.AreEqual("Address:1,2,3", o.ToString()); + + o.Pin = "Output 1"; + o.Address = "Address"; + Assert.AreEqual("Address:1", o.ToString()); + } + + [TestMethod()] + public void CloneTest() + { + var o = new ShiftRegister(); + o.Pin = "Pin"; + o.Address = "Address"; + o.Brightness = 128; + o.PWM = true; + + var clone = o.Clone() as ShiftRegister; + + Assert.AreEqual(o.Pin, clone.Pin); + Assert.AreEqual(o.Address, clone.Address); + Assert.AreEqual(o.Brightness, clone.Brightness); + Assert.AreEqual(o.PWM, clone.PWM); + + Assert.AreNotSame(o, clone); + } + } +} \ No newline at end of file diff --git a/MobiFlightUnitTests/MobiFlight/OutputConfigItemTests.cs b/MobiFlightUnitTests/MobiFlight/OutputConfigItemTests.cs index c4d53ac06..e56414d35 100644 --- a/MobiFlightUnitTests/MobiFlight/OutputConfigItemTests.cs +++ b/MobiFlightUnitTests/MobiFlight/OutputConfigItemTests.cs @@ -1,14 +1,10 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; -using MobiFlight; using MobiFlight.Base; using MobiFlight.Modifier; +using MobiFlight.OutputConfig; using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; using System.Xml; namespace MobiFlight.Tests @@ -41,11 +37,12 @@ public void ReadXmlTest() System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(sr, settings); oci.ReadXml(xmlReader); - Assert.AreEqual(oci.FSUIPC.OffsetType, FSUIPCOffsetType.Integer); - Assert.AreEqual(oci.FSUIPC.Offset, 0x034E); - Assert.AreEqual(oci.FSUIPC.Size, 2); - Assert.AreEqual(oci.FSUIPC.Mask, 0xFFFF); - Assert.AreEqual(oci.FSUIPC.BcdMode, true); + Assert.IsTrue(oci.Source is FsuipcSource); + Assert.AreEqual((oci.Source as FsuipcSource).FSUIPC.OffsetType, FSUIPCOffsetType.Integer); + Assert.AreEqual((oci.Source as FsuipcSource).FSUIPC.Offset, 0x034E); + Assert.AreEqual((oci.Source as FsuipcSource).FSUIPC.Size, 2); + Assert.AreEqual((oci.Source as FsuipcSource).FSUIPC.Mask, 0xFFFF); + Assert.AreEqual((oci.Source as FsuipcSource).FSUIPC.BcdMode, true); Assert.AreEqual(oci.Modifiers.Transformation.Expression, "$+123"); // read backward compatible @@ -55,7 +52,8 @@ public void ReadXmlTest() oci.ReadXml(xmlReader); Assert.AreEqual(oci.Modifiers.Transformation.Active, true); Assert.AreEqual(oci.Modifiers.Transformation.Expression, "$*123"); - Assert.AreEqual(oci.LedModule.DisplayLedBrightnessReference, "CF057791-E133-4638-A99E-FEF9B187C4DB"); + Assert.IsTrue(oci.Device is LedModule); + Assert.AreEqual((oci.Device as LedModule).DisplayLedBrightnessReference, "CF057791-E133-4638-A99E-FEF9B187C4DB"); // read problem with missing configrefs s = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\OutputConfigItem\ReadXmlTest.3.xml"); @@ -137,7 +135,7 @@ public void ReadXmlTest() xmlReader = System.Xml.XmlReader.Create(sr, settings); oci = new OutputConfigItem(); oci.ReadXml(xmlReader); - Assert.AreEqual("Display Module", oci.DisplayType, "Display Type not Display Module"); + Assert.AreEqual("Display Module", oci.DeviceType, "Display Type not Display Module"); Assert.AreEqual(true, oci.Modifiers.Interpolation.Active, "AnalogInputConfig.onPress null"); Assert.AreEqual(5, oci.Modifiers.Interpolation.Count, "Interpolation Count is not 5"); } @@ -155,13 +153,34 @@ public void WriteXmlTest() OutputConfigItem o = _generateConfigItem(); xmlWriter.WriteStartElement("settings"); - o.WriteXml(xmlWriter); + o.WriteXml(xmlWriter, false); xmlWriter.WriteEndElement(); xmlWriter.Flush(); string s = sw.ToString(); String result = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\OutputConfigItem\WriteXmlTest.1.xml"); + Assert.AreEqual(s, result, "The both strings are not equal"); + + // Do the same for SimConnect + o.Source = new SimConnectSource() + { + SimConnectValue = new SimConnectValue() + { + UUID = "1234", + Value = "Test", + VarType = SimConnectVarType.CODE + } + }; + + sw = new StringWriter(); + xmlWriter = System.Xml.XmlWriter.Create(sw, settings); + xmlWriter.WriteStartElement("settings"); + o.WriteXml(xmlWriter, false); + xmlWriter.WriteEndElement(); + xmlWriter.Flush(); + s = sw.ToString(); + result = System.IO.File.ReadAllText(@"assets\MobiFlight\OutputConfig\OutputConfigItem\WriteXmlTest.2.xml"); Assert.AreEqual(s, result, "The both strings are not equal"); } @@ -171,55 +190,86 @@ public void CloneTest() OutputConfigItem o = _generateConfigItem(); OutputConfigItem c = (OutputConfigItem)o.Clone(); - Assert.AreEqual(o.FSUIPC.Offset, c.FSUIPC.Offset, "clone: FSUIPCOffset not the same"); - Assert.AreEqual(o.FSUIPC.Mask, c.FSUIPC.Mask, " clone: FSUIPCMask not the same"); + Assert.AreEqual(o.Name, c.Name, "clone: Name not the same"); + Assert.AreEqual(o.Active, c.Active, "clone: Active not the same"); + Assert.AreEqual(o.GUID, c.GUID, "clone: GUID not the same"); + Assert.AreEqual(o.Type, c.Type, "clone: Type not the same"); + + Assert.AreEqual((o.Source as FsuipcSource).FSUIPC.Offset, (c.Source as FsuipcSource).FSUIPC.Offset, "clone: FSUIPCOffset not the same"); + Assert.AreEqual((o.Source as FsuipcSource).FSUIPC.Mask, (c.Source as FsuipcSource).FSUIPC.Mask, " clone: FSUIPCMask not the same"); + Assert.AreEqual((o.Source as FsuipcSource).FSUIPC.OffsetType, (c.Source as FsuipcSource).FSUIPC.OffsetType, "clone: FSUIPCOffsetType not the same"); + Assert.AreEqual((o.Source as FsuipcSource).FSUIPC.Size, (c.Source as FsuipcSource).FSUIPC.Size, "clone: FSUIPCSize not the same"); + Assert.AreEqual((o.Source as FsuipcSource).FSUIPC.BcdMode, (c.Source as FsuipcSource).FSUIPC.BcdMode, "clone: FSUIPCBcdMode not the same"); Assert.AreEqual(o.Modifiers.Transformation.Expression, c.Modifiers.Transformation.Expression, "clone: FSUIPCOffsetType not the same"); - Assert.AreEqual(o.FSUIPC.OffsetType, c.FSUIPC.OffsetType, "clone: FSUIPCOffsetType not the same"); - Assert.AreEqual(o.FSUIPC.Size, c.FSUIPC.Size, "clone: FSUIPCSize not the same"); - Assert.AreEqual(o.FSUIPC.BcdMode, c.FSUIPC.BcdMode, "clone: FSUIPCBcdMode not the same"); Assert.AreEqual(o.Modifiers.Comparison.Active, c.Modifiers.Comparison.Active, "clone: ComparisonActive not the same"); Assert.AreEqual(o.Modifiers.Comparison.Operand, c.Modifiers.Comparison.Operand, "clone: ComparisonOperand not the same"); Assert.AreEqual(o.Modifiers.Comparison.Value, c.Modifiers.Comparison.Value, "clone: ComparisonValue not the same"); Assert.AreEqual(o.Modifiers.Comparison.IfValue, c.Modifiers.Comparison.IfValue, "clone: ComparisonIfValue not the same"); Assert.AreEqual(o.Modifiers.Comparison.ElseValue, c.Modifiers.Comparison.ElseValue, "clone: ComparisonElseValue not the same"); - Assert.AreEqual(o.Pin.DisplayPin, c.Pin.DisplayPin, "clone: DisplayPin not the same"); - Assert.AreEqual(o.DisplayType, c.DisplayType, "clone: DisplayType not the same"); - Assert.AreEqual(o.DisplaySerial, c.DisplaySerial, "clone: DisplaySerial not the same"); - Assert.AreEqual(o.Pin.DisplayPinBrightness, c.Pin.DisplayPinBrightness, "clone: DisplayPinBrightness not the same"); - Assert.AreEqual(o.Pin.DisplayPinPWM, c.Pin.DisplayPinPWM, "clone: DisplayPinPWM not the same"); - - Assert.AreEqual(o.LedModule.DisplayLedConnector, c.LedModule.DisplayLedConnector, "clone: DisplayLedConnector not the same"); - Assert.AreEqual(o.LedModule.DisplayLedAddress, c.LedModule.DisplayLedAddress, "clone: DisplayLedAddress not the same"); - Assert.AreEqual(o.LedModule.DisplayLedPadding, c.LedModule.DisplayLedPadding, "clone: DisplayLedPadding not the same"); - Assert.AreEqual(o.LedModule.DisplayLedReverseDigits, c.LedModule.DisplayLedReverseDigits, "clone: DisplayLedReverseDigits not the same"); - Assert.AreEqual(o.LedModule.DisplayLedPaddingChar, c.LedModule.DisplayLedPaddingChar, "clone: DisplayLedPaddingChar not the same"); - Assert.AreEqual(o.LedModule.DisplayLedModuleSize, c.LedModule.DisplayLedModuleSize, "clone: DisplayLedModuleSize not the same"); - Assert.AreEqual(o.LedModule.DisplayLedBrightnessReference, c.LedModule.DisplayLedBrightnessReference, "clone: DisplayLedBrighntessReference is not the same"); - - Assert.AreEqual(o.LedModule.DisplayLedDigits[0], c.LedModule.DisplayLedDigits[0], "clone: DisplayLedDigits not the same"); - Assert.AreEqual(o.LedModule.DisplayLedDecimalPoints[0], c.LedModule.DisplayLedDecimalPoints[0], "clone: DisplayLedDecimalPoints not the same"); - Assert.AreEqual(o.Servo.Address, c.Servo.Address, "clone: ServoAddress not the same"); - Assert.AreEqual(o.Servo.Max, c.Servo.Max, "clone: ServoMax not the same"); - Assert.AreEqual(o.Servo.Min, c.Servo.Min, "clone: ServoMin not the same"); - Assert.AreEqual(o.Servo.MaxRotationPercent, c.Servo.MaxRotationPercent, "clone: ServoMaxRotationPercent not the same"); - - Assert.AreEqual(o.Stepper.Address, c.Stepper.Address, "clone: StepperAddress not the same"); - Assert.AreEqual(o.Stepper.InputRev, c.Stepper.InputRev, "clone: StepperInputRev not the same"); - Assert.AreEqual(o.Stepper.OutputRev, c.Stepper.OutputRev, "clone: StepperOutputRev not the same"); - Assert.AreEqual(o.Stepper.TestValue, c.Stepper.TestValue, "clone: StepperTestValue not the same"); - - Assert.AreEqual(o.BcdPins[0], c.BcdPins[0], "clone: BcdPins not the same"); - - // Shift Register - Assert.AreEqual(o.ShiftRegister.Address, c.ShiftRegister.Address, "clone: ShiftRegister.Address not the same"); - Assert.AreEqual(o.ShiftRegister.Pin, c.ShiftRegister.Pin, "clone: ShiftRegister.Address not the same"); - - // Custom Device - Assert.AreEqual(o.CustomDevice.CustomType, c.CustomDevice.CustomType, "clone: CustomDevice.CustomType not the same"); - Assert.AreEqual(o.CustomDevice.CustomName, c.CustomDevice.CustomName, "clone: CustomDevice.CustomName not the same"); - Assert.AreEqual(o.CustomDevice.MessageType, c.CustomDevice.MessageType, "clone: CustomDevice.MessageType not the same"); - Assert.AreEqual(o.CustomDevice.Value, c.CustomDevice.Value, "clone: CustomDevice.Value not the same"); + Assert.AreEqual(o.DeviceType, c.DeviceType, "clone: DisplayType not the same"); + Assert.AreEqual(o.ModuleSerial, c.ModuleSerial, "clone: DisplaySerial not the same"); + + if (o.DeviceType == MobiFlight.DeviceType.Output.ToString("F")) + { + Assert.AreEqual((o.Device as Output).DisplayPin, (c.Device as Output).DisplayPin, "clone: DisplayPin not the same"); + Assert.AreEqual((o.Device as Output).DisplayPinBrightness, (c.Device as Output).DisplayPinBrightness, "clone: DisplayPinBrightness not the same"); + Assert.AreEqual((o.Device as Output).DisplayPinPWM, (c.Device as Output).DisplayPinPWM, "clone: DisplayPinPWM not the same"); + } + + if (o.Device is LedModule) + { + Assert.AreEqual((o.Device as LedModule).DisplayLedConnector, (c.Device as LedModule).DisplayLedConnector, "clone: DisplayLedConnector not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedAddress, (c.Device as LedModule).DisplayLedAddress, "clone: DisplayLedAddress not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedPadding, (c.Device as LedModule).DisplayLedPadding, "clone: DisplayLedPadding not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedReverseDigits, (c.Device as LedModule).DisplayLedReverseDigits, "clone: DisplayLedReverseDigits not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedPaddingChar, (c.Device as LedModule).DisplayLedPaddingChar, "clone: DisplayLedPaddingChar not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedModuleSize, (c.Device as LedModule).DisplayLedModuleSize, "clone: DisplayLedModuleSize not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedDigits[0], (c.Device as LedModule).DisplayLedDigits[0], "clone: DisplayLedDigits not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedDecimalPoints[0], (c.Device as LedModule).DisplayLedDecimalPoints[0], "clone: DisplayLedDecimalPoints not the same"); + Assert.AreEqual((o.Device as LedModule).DisplayLedBrightnessReference, (c.Device as LedModule).DisplayLedBrightnessReference, "clone: DisplayLedBrighntessReference is not the same"); + } + + if (o.Device is Servo) + { + var oServo = o.Device as Servo; + var cServo = c.Device as Servo; + + Assert.AreEqual(oServo.Address, cServo.Address, "clone: ServoAddress not the same"); + Assert.AreEqual(oServo.Max, cServo.Max, "clone: ServoMax not the same"); + Assert.AreEqual(oServo.Min, cServo.Min, "clone: ServoMin not the same"); + Assert.AreEqual(oServo.MaxRotationPercent, cServo.MaxRotationPercent, "clone: ServoMaxRotationPercent not the same"); + } + + if (o.Device is Stepper) { + var oStepper = o.Device as Stepper; + var cStepper = c.Device as Stepper; + + Assert.AreEqual(oStepper.Address, cStepper.Address, "clone: StepperAddress not the same"); + Assert.AreEqual(oStepper.InputRev, cStepper.InputRev, "clone: StepperInputRev not the same"); + Assert.AreEqual(oStepper.OutputRev, cStepper.OutputRev, "clone: StepperOutputRev not the same"); + Assert.AreEqual(oStepper.TestValue, cStepper.TestValue, "clone: StepperTestValue not the same"); + } + + if (o.Device is ShiftRegister) + { + var oShiftRegister = o.Device as ShiftRegister; + var cShiftRegister = c.Device as ShiftRegister; + // Shift Register + Assert.AreEqual(oShiftRegister.Address, cShiftRegister.Address, "clone: ShiftRegister.Address not the same"); + Assert.AreEqual(oShiftRegister.Pin, cShiftRegister.Pin, "clone: ShiftRegister.Address not the same"); + } + + if (o.Device is CustomDevice) + { + var oCustomDevice = o.Device as CustomDevice; + var cCustomDevice = c.Device as CustomDevice; + // Custom Device + Assert.AreEqual(oCustomDevice.CustomType, cCustomDevice.CustomType, "clone: CustomDevice.CustomType not the same"); + Assert.AreEqual(oCustomDevice.CustomName, cCustomDevice.CustomName, "clone: CustomDevice.CustomName not the same"); + Assert.AreEqual(oCustomDevice.MessageType, cCustomDevice.MessageType, "clone: CustomDevice.MessageType not the same"); + Assert.AreEqual(oCustomDevice.Value, cCustomDevice.Value, "clone: CustomDevice.Value not the same"); + } //o. = new Interpolation(); Assert.AreEqual(o.Modifiers.Interpolation.Active, c.Modifiers.Interpolation.Active, "clone: Interpolation.Active is not the same."); @@ -233,39 +283,110 @@ public void CloneTest() } - private OutputConfigItem _generateConfigItem() + private OutputConfigItem _generateConfigItem(string deviceType = "Stepper") { OutputConfigItem o = new OutputConfigItem(); + o.Name = "Test"; + o.Active = false; + o.GUID = "123"; - o.FSUIPC.Offset = 0x1234; - o.FSUIPC.Mask = 0xFFFF; + o.Source = new FsuipcSource() + { + FSUIPC = new FsuipcOffset() + { + Offset = 0x1234, + Mask = 0xFFFF, + OffsetType = FSUIPCOffsetType.Integer, + Size = 2, + BcdMode = true + } + }; + o.Modifiers.Transformation.Active = true; o.Modifiers.Transformation.Expression = "$+123"; - - o.FSUIPC.OffsetType = FSUIPCOffsetType.Float; - o.FSUIPC.Size = 2; - o.FSUIPC.BcdMode = true; o.Modifiers.Comparison.Active = true; o.Modifiers.Comparison.Operand = ">"; o.Modifiers.Comparison.Value = "1"; o.Modifiers.Comparison.IfValue = "2"; o.Modifiers.Comparison.ElseValue = "3"; - o.DisplayType = MobiFlight.DeviceType.Stepper.ToString("F"); - o.DisplaySerial = "Ser123"; - o.Pin.DisplayPin = "A01"; - o.Pin.DisplayPinBrightness = byte.MinValue; - o.Pin.DisplayPinPWM = true; - o.LedModule.DisplayLedConnector = 2; - o.LedModule.DisplayLedAddress = "1"; - o.LedModule.DisplayLedPadding = true; - o.LedModule.DisplayLedReverseDigits = true; - o.LedModule.DisplayLedPaddingChar = "1"; - o.LedModule.DisplayLedModuleSize = 7; - o.LedModule.DisplayLedDigits = new List() { "1", "2" }; - o.LedModule.DisplayLedDecimalPoints = new List() { "3", "4" }; - o.LedModule.DisplayLedBrightnessReference = "CF057791-E133-4638-A99E-FEF9B187C4DB"; // testing with true as default is false - o.BcdPins = new List() { "Moop" }; + o.DeviceType = MobiFlight.DeviceType.Stepper.ToString("F"); + o.ModuleSerial = "Ser123"; + + switch (deviceType) + { + case "Display": + o.DeviceType = MobiFlight.DeviceType.Output.ToString("F"); + o.Device = new Output() + { + DisplayPin = "A01", + DisplayPinBrightness = byte.MinValue, + DisplayPinPWM = true + }; + break; + + case "LedModule": + o.DeviceType = MobiFlight.DeviceType.LedModule.ToString("F"); + o.Device = new LedModule() + { + DisplayLedConnector = 2, + DisplayLedAddress = "1", + DisplayLedPadding = true, + DisplayLedReverseDigits = true, + DisplayLedPaddingChar = "1", + DisplayLedModuleSize = 7, + DisplayLedDigits = new List() { "1", "2" }, + DisplayLedDecimalPoints = new List() { "3", "4" }, + DisplayLedBrightnessReference = "CF057791-E133-4638-A99E-FEF9B187C4DB" + }; + break; + + case "Servo": + o.DeviceType = MobiFlight.DeviceType.Servo.ToString("F"); + o.Device = new Servo() + { + Address = "A2", + Max = "11", + Min = "111", + MaxRotationPercent = "176" + }; + break; + + case "ShiftRegister": + o.DeviceType = MobiFlight.DeviceType.ShiftRegister.ToString("F"); + o.Device = new ShiftRegister() + { + Address = "ShiftRegister", + Pin = "99" + }; + break; + + case "Stepper": + o.DeviceType = MobiFlight.DeviceType.Stepper.ToString("F"); + o.Device = new Stepper() + { + Address = "S22", + InputRev = 1123, + OutputRev = 3212, + TestValue = 212, + CompassMode = true + }; + break; + + case "CustomDevice": + o.DeviceType = MobiFlight.DeviceType.CustomDevice.ToString("F"); + o.Device = new CustomDevice() + { + CustomType = "TestCustomType", + CustomName = "Test Custom Name", + MessageType = 1, + Value = "Test Value" + }; + break; + + default: + throw new ArgumentException("Invalid device type"); + } var i = new Interpolation() { Active = true }; i.Add(123, 456); @@ -274,23 +395,6 @@ private OutputConfigItem _generateConfigItem() o.Preconditions = new PreconditionList(); o.Preconditions.Add(new Precondition() { PreconditionLabel = "Test", PreconditionType = "config", PreconditionRef = "Ref123", PreconditionOperand = "op123", PreconditionValue = "val123", PreconditionLogic = "AND" }); - o.Servo.Address = "A2"; - o.Servo.Max = "11"; - o.Servo.Min = "111"; - o.Servo.MaxRotationPercent = "176"; - - o.Stepper.Address = "S22"; - o.Stepper.InputRev = 1123; - o.Stepper.OutputRev = 3212; - o.Stepper.TestValue = 212; - o.Stepper.CompassMode = true; - - o.ShiftRegister = new OutputConfig.ShiftRegister() - { - Address = "ShiftRegister", - Pin = "99" - }; - o.ButtonInputConfig = new InputConfig.ButtonInputConfig(); o.AnalogInputConfig = new InputConfig.AnalogInputConfig(); @@ -305,9 +409,11 @@ public void EqualsTest() { OutputConfigItem o1 = new OutputConfigItem(); OutputConfigItem o2 = new OutputConfigItem(); - + o1.GUID = o2.GUID; + Assert.IsTrue(o1.Equals(o2)); + // test different GUID o1 = _generateConfigItem(); Assert.IsFalse(o1.Equals(o2)); @@ -315,23 +421,27 @@ public void EqualsTest() Assert.IsTrue(o1.Equals(o2)); - o2.ShiftRegister.Address = "ShiftRegister1"; - o2.ShiftRegister.Pin = "69"; + // Check for the ShiftRegister + o1 = _generateConfigItem("ShiftRegister"); + o2 = _generateConfigItem("ShiftRegister"); + (o2.Device as ShiftRegister).Address = "ShiftRegister1"; + (o2.Device as ShiftRegister).Pin = "69"; Assert.IsFalse(o1.Equals(o2)); // reset o2 // https://github.com/MobiFlight/MobiFlight-Connector/issues/697 - o2 = _generateConfigItem(); - o2.Servo.MaxRotationPercent = "90"; + o1 = _generateConfigItem("Servo"); + o2 = _generateConfigItem("Servo"); + (o2.Device as Servo).MaxRotationPercent = "90"; Assert.IsFalse(o1.Equals(o2)); o2 = _generateConfigItem(); - o2.DisplayType = "nonsense"; + o2.DeviceType = "nonsense"; Assert.IsFalse(o1.Equals(o2)); - o2 = _generateConfigItem(); - o2.CustomDevice.Value = "Test value will fail"; + o2 = _generateConfigItem("CustomDevice"); + (o2.Device as CustomDevice).Value = "Test value will fail"; Assert.IsFalse(o1.Equals(o2)); } } diff --git a/MobiFlightUnitTests/MobiFlightUnitTests.csproj b/MobiFlightUnitTests/MobiFlightUnitTests.csproj index 8b931f4a1..00618945b 100644 --- a/MobiFlightUnitTests/MobiFlightUnitTests.csproj +++ b/MobiFlightUnitTests/MobiFlightUnitTests.csproj @@ -39,11 +39,24 @@ x86 + + ..\packages\Castle.Core.5.1.1\lib\net462\Castle.Core.dll + + + ..\packages\Moq.4.20.72\lib\net462\Moq.dll + ..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + @@ -66,20 +79,31 @@ + + + + + + + + + + + @@ -109,8 +133,9 @@ - + + @@ -132,12 +157,27 @@ Designer Always + + Always + + + Always + + + Always + + + Always + Always Always + + PreserveNewest + Always Designer @@ -385,6 +425,18 @@ Designer Always + + Designer + Always + + + Designer + Always + + + Designer + Always + Designer Always diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/7.5.0-7.5.1-upgrade.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/7.5.0-7.5.1-upgrade.mcc.exp index f77393f5d..0ddfd7db0 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/7.5.0-7.5.1-upgrade.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/7.5.0-7.5.1-upgrade.mcc.exp @@ -11,7 +11,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -71,7 +71,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -116,7 +116,7 @@ - + @@ -131,7 +131,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -191,7 +191,7 @@ - + @@ -206,7 +206,7 @@ - + @@ -221,7 +221,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -251,7 +251,7 @@ - + @@ -266,7 +266,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -296,7 +296,7 @@ - + @@ -311,7 +311,7 @@ - + @@ -326,7 +326,7 @@ - + @@ -341,7 +341,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -371,7 +371,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -401,7 +401,7 @@ - + @@ -416,7 +416,7 @@ - + @@ -431,7 +431,7 @@ - + @@ -446,7 +446,7 @@ - + @@ -461,7 +461,7 @@ - + @@ -476,7 +476,7 @@ - + @@ -491,7 +491,7 @@ - + @@ -506,7 +506,7 @@ - + @@ -521,7 +521,7 @@ - + @@ -536,7 +536,7 @@ - + @@ -551,7 +551,7 @@ - + @@ -566,7 +566,7 @@ - + @@ -581,7 +581,7 @@ - + @@ -596,7 +596,7 @@ - + @@ -611,7 +611,7 @@ - + @@ -626,7 +626,7 @@ - + @@ -641,7 +641,7 @@ - + @@ -656,7 +656,7 @@ - + @@ -682,7 +682,7 @@ - + @@ -697,7 +697,7 @@ - + @@ -712,7 +712,7 @@ - + @@ -727,7 +727,7 @@ - + @@ -742,7 +742,7 @@ - + @@ -757,7 +757,7 @@ - + @@ -772,7 +772,7 @@ - + @@ -787,7 +787,7 @@ - + @@ -802,7 +802,7 @@ - + @@ -817,7 +817,7 @@ - + @@ -832,7 +832,7 @@ - + @@ -847,7 +847,7 @@ - + @@ -864,7 +864,7 @@ - + @@ -879,7 +879,7 @@ - + @@ -894,7 +894,7 @@ - + @@ -909,7 +909,7 @@ - + @@ -924,7 +924,7 @@ - + @@ -939,7 +939,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/Homecockpit_C172.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/Homecockpit_C172.mcc.exp index 7f2ada2ed..f51652773 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/Homecockpit_C172.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/Homecockpit_C172.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -106,7 +106,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -140,7 +140,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -174,7 +174,7 @@ - + @@ -188,7 +188,7 @@ - + @@ -207,7 +207,7 @@ - + @@ -225,7 +225,7 @@ - + @@ -239,7 +239,7 @@ - + @@ -253,7 +253,7 @@ - + @@ -267,7 +267,7 @@ - + @@ -281,7 +281,7 @@ - + @@ -295,7 +295,7 @@ - + @@ -309,7 +309,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenConfig.mfjson b/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenConfig.mfjson new file mode 100644 index 000000000..d2cecbd90 --- /dev/null +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenConfig.mfjson @@ -0,0 +1,148 @@ +{ + "FileName": "assets/Base/ConfigFile/force-ap-and-workshop-xp.mfjson", + "ReferenceOnly": false, + "EmbedContent": false, + "ConfigItems": [ + { + "Source": { + "XplaneDataRef": { + "Path": "sim/cockpit2/autopilot/approach_status" + }, + "Type": "XplaneSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "FSM.GA APR - Green", + "DisplayPin": "FSM.GA APR - Green", + "DisplayPinBrightness": 255, + "DisplayPinPWM": false, + "Type": "Output" + }, + "DeviceType": "Output", + "DeviceName": "FSM.GA APR - Green", + "GUID": "63f3f051-e6bf-496d-8967-655927a82b29", + "Active": true, + "Name": "APR Active", + "Type": "OutputConfigItem", + "ModuleSerial": " VKBSim NXT THQ FSM.GA / JS-ca5666b0-dc27-11ef-8002-444553540000", + "Preconditions": [], + "Modifiers": { + "Items": [ + { + "Type": "Transformation", + "Expression": "$", + "Active": false + }, + { + "Type": "Comparison", + "Operand": "=", + "Value": "2", + "IfValue": "1", + "ElseValue": "0", + "Active": false + } + ] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "XplaneDataRef": { + "Path": "sim/cockpit2/autopilot/approach_status" + }, + "Type": "XplaneSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "FSM.GA APR - Red", + "DisplayPin": "FSM.GA APR - Red", + "DisplayPinBrightness": 255, + "DisplayPinPWM": false, + "Type": "Output" + }, + "DeviceType": "Output", + "DeviceName": "FSM.GA APR - Red", + "GUID": "40060827-fb1f-4e17-97fd-537589b71015", + "Active": true, + "Name": "APR Armed", + "Type": "OutputConfigItem", + "ModuleSerial": " VKBSim NXT THQ FSM.GA / JS-ca5666b0-dc27-11ef-8002-444553540000", + "Preconditions": [], + "Modifiers": { + "Items": [ + { + "Type": "Transformation", + "Expression": "$", + "Active": false + }, + { + "Type": "Comparison", + "Operand": "=", + "Value": "1", + "IfValue": "1", + "ElseValue": "0", + "Active": false + } + ] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "XplaneDataRef": { + "Path": "sim/cockpit2/autopilot/autopilot_on" + }, + "Type": "XplaneSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "FSM.GA AP - Green", + "DisplayPin": "FSM.GA AP - Green", + "DisplayPinBrightness": 255, + "DisplayPinPWM": false, + "Type": "Output" + }, + "DeviceType": "Output", + "DeviceName": "FSM.GA AP - Green", + "GUID": "ae52c03b-e8d3-41ac-b8ae-4a2dac573d15", + "Active": true, + "Name": "AP Active", + "Type": "OutputConfigItem", + "ModuleSerial": " VKBSim NXT THQ FSM.GA / JS-ca5666b0-dc27-11ef-8002-444553540000", + "Preconditions": [], + "Modifiers": { + "Items": [ + { + "Type": "Transformation", + "Expression": "$", + "Active": false + }, + { + "Type": "Comparison", + "Operand": "", + "Value": "", + "IfValue": "", + "ElseValue": "", + "Active": false + } + ] + }, + "ConfigRefs": [], + "Status": {} + } + ] +} \ No newline at end of file diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenProjectTest.mfproj b/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenProjectTest.mfproj new file mode 100644 index 000000000..a33b6b93b --- /dev/null +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/Json/OpenProjectTest.mfproj @@ -0,0 +1,462 @@ +{ + "Name": "MobiFlight Project", + "ConfigFiles": [ + { + "FileName": null, + "ReferenceOnly": false, + "EmbedContent": true, + "ConfigItems": [ + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "b5a95362-411e-422d-9e6e-598b8b0bdcdf", + "Value": "(A:COM ACTIVE FREQUENCY:1,KHz)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "7-Segment", + "DisplayLedAddress": "7-Segment", + "DisplayLedConnector": 1, + "DisplayLedModuleSize": 8, + "DisplayLedPadding": false, + "DisplayLedPaddingChar": "0", + "DisplayLedDigits": [], + "DisplayLedDecimalPoints": [], + "DisplayLedReverseDigits": false, + "DisplayLedBrightnessReference": "", + "Type": "LedModule" + }, + "DeviceType": "Display Module", + "GUID": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "Active": true, + "Name": "7-Segment", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "02d438f0-b1cd-4920-8884-e3fc4998e49c", + "Value": "(A:PROP RPM:1,Rpm)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "Stepper 1", + "Address": "Stepper 1", + "InputRev": 1000, + "TestValue": 500, + "OutputRev": 2040, + "CompassMode": false, + "Acceleration": 800, + "Speed": 467, + "Type": "Stepper" + }, + "DeviceType": "Stepper", + "GUID": "c6e321b0-d6e4-42db-be98-0b7867db58eb", + "Active": true, + "Name": "Stepper 2", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "7de0a675-da06-4aef-8f02-8f93de402273", + "Value": "(A:FUEL SELECTED QUANTITY PERCENT,Percent Over 100)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "Servo 1", + "Address": "Servo 1", + "Min": "0", + "Max": "255", + "MaxRotationPercent": "100", + "Type": "Servo" + }, + "DeviceType": "Servo", + "GUID": "4eb61c0f-a3c1-4b86-b0ff-d06e6ddc0363", + "Active": true, + "Name": "Servo", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "dbf414f2-5a45-4b55-9983-7703862edaf0", + "Value": "(A:COM ACTIVE FREQ NAME:1,String)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "LCD 1", + "Address": "LCD 1", + "Lines": [ + "1234567890123456", + "******Test******", + "1234567890123456", + "******Test******" + ], + "Type": "LcdDisplay" + }, + "DeviceType": "LcdDisplay", + "GUID": "61ae4145-c7d5-41ef-b2a9-c993f8986be1", + "Active": true, + "Name": "LCD", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "0cf15a1c-712f-4bf2-bd16-eb4e6b103e20", + "Value": "(A:BRAKE PARKING INDICATOR,Bool)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "LED 2", + "DisplayPin": "LED 2", + "DisplayPinBrightness": 255, + "DisplayPinPWM": false, + "Type": "Output" + }, + "DeviceType": "Output", + "GUID": "f79f75dd-0d45-4c91-870d-599cfc75ede1", + "Active": true, + "Name": "LED 23 Test", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [ + { + "PreconditionLabel": "Config: < 1 ", + "PreconditionType": "config", + "PreconditionRef": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "PreconditionSerial": null, + "PreconditionPin": null, + "PreconditionOperand": "<", + "PreconditionValue": "1", + "PreconditionLogic": "and", + "PreconditionActive": true + } + ], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [ + { + "Active": true, + "Ref": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "Placeholder": "#", + "TestValue": "1" + }, + { + "Active": true, + "Ref": "c6e321b0-d6e4-42db-be98-0b7867db58eb", + "Placeholder": "!", + "TestValue": "1" + } + ], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "UUID": "b0abd7a4-65cb-4109-b85b-6df6431ebcd6", + "Value": "(A:LIGHT LANDING,Bool)", + "VarType": 2 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "Device": { + "Name": "ShiftRegister 1", + "Pin": "Output 0", + "Address": "ShiftRegister 1", + "Type": "ShiftRegister" + }, + "DeviceType": "ShiftRegister", + "GUID": "54e5ac64-e314-48de-8ebb-6d8ccc4689e4", + "Active": true, + "Name": "ShiftRegister", + "Type": "OutputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "VarType": 0 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "DeviceType": "", + "GUID": "8f74c497-c8e9-42c9-8c1d-69d5db217037", + "Active": true, + "Name": "New Output Config", + "Type": "OutputConfigItem", + "ModuleSerial": "", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "VarType": 0 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "DeviceType": "", + "GUID": "e0262d3b-c4f9-44e1-b468-1306bd48fbb3", + "Active": true, + "Name": "New Output Config", + "Type": "OutputConfigItem", + "ModuleSerial": "", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "VarType": 0 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "DeviceType": "", + "GUID": "9a6267d0-5f40-457c-b724-ccc835510abf", + "Active": true, + "Name": "New Output Config", + "Type": "OutputConfigItem", + "ModuleSerial": "", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "VarType": 0 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "DeviceType": "", + "GUID": "81c4908e-429d-48c8-83f4-4e5f577be1f2", + "Active": true, + "Name": "New Output Config", + "Type": "OutputConfigItem", + "ModuleSerial": "", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "Source": { + "SourceType": "SIMCONNECT", + "SimConnectValue": { + "VarType": 0 + }, + "Type": "SimConnectSource" + }, + "TestValue": { + "type": 1, + "Float64": 1.0, + "String": null + }, + "DeviceType": "", + "GUID": "de57dc80-be81-4049-95d0-2349109d58c1", + "Active": true, + "Name": "New Output Config", + "Type": "OutputConfigItem", + "ModuleSerial": "", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "button": { + "onPress": { + "Type": "MSFS2020CustomInputAction" + }, + "onRelease": null, + "onLongRelease": null, + "onHold": null, + "LongReleaseDelay": 350, + "HoldDelay": 350, + "RepeatDelay": 0 + }, + "DeviceType": "Button", + "DeviceName": "Button 4", + "GUID": "49079f13-b7cc-442d-a64b-70edbf7a1334", + "Active": true, + "Name": "Button", + "Type": "InputConfigItem", + "ModuleSerial": "WINWING Orion Joystick Base 2 + JGRIP-F16 / JS-3145ad90-c6f2-11ef-8001-444553540000", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "encoder": { + "onLeft": { + "Type": "MSFS2020CustomInputAction" + }, + "onLeftFast": null, + "onRight": { + "Type": "MSFS2020CustomInputAction" + }, + "onRightFast": null + }, + "DeviceType": "Encoder", + "DeviceName": "Encoder 1", + "GUID": "68285201-23d5-40ea-b81f-dbd3ffe7328d", + "Active": true, + "Name": "Encoder", + "Type": "InputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + }, + { + "analog": { + "onChange": { + "Type": "MSFS2020CustomInputAction" + } + }, + "DeviceType": "AnalogInput", + "DeviceName": "POT 1", + "GUID": "be1ffab3-4252-4001-a090-4b98c7cd126a", + "Active": true, + "Name": "AnalogInput", + "Type": "InputConfigItem", + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Preconditions": [], + "Modifiers": { + "Items": [] + }, + "ConfigRefs": [], + "Status": {} + } + ] + } + ] +} \ No newline at end of file diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.2912.xml.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.2912.xml.exp index f76ff7d51..0fcec5b88 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.2912.xml.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.2912.xml.exp @@ -11,7 +11,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc new file mode 100644 index 000000000..d643b6528 --- /dev/null +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc @@ -0,0 +1,28 @@ + + + + + true + COM1 Active + + + + + + + + COM1 ACT:$$$.$$$ + STBY:###.### + ******Test****** + + + + + + + + + + + + \ No newline at end of file diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc.exp new file mode 100644 index 000000000..2477514a2 --- /dev/null +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.LCD-serialization-bc.mcc.exp @@ -0,0 +1,28 @@ + + + + + true + COM1 Active + + + + + + + + COM1 ACT:$$$.$$$ + STBY:###.### + ******Test****** + + + + + + + + + + + + \ No newline at end of file diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.NoSettingNode.xml b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.NoSettingNode.xml new file mode 100644 index 000000000..65d549468 --- /dev/null +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.NoSettingNode.xml @@ -0,0 +1,15 @@ + + + + + true + Boolean + = + ConfigItem For Precondition + 1 + change + - + + + + \ No newline at end of file diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.xml.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.xml.exp index c1b360b85..60f078423 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.xml.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/OpenFileTest.xml.exp @@ -10,7 +10,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -43,7 +43,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/example-default-plane-v6.1.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/example-default-plane-v6.1.mcc.exp index 5e6c67548..d6f8a0ab5 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/example-default-plane-v6.1.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/example-default-plane-v6.1.mcc.exp @@ -11,7 +11,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -43,7 +43,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -90,7 +90,7 @@ - + @@ -105,7 +105,7 @@ - + @@ -120,7 +120,7 @@ - + @@ -135,7 +135,7 @@ - + @@ -150,7 +150,7 @@ - + @@ -165,7 +165,7 @@ - + @@ -180,7 +180,7 @@ - + @@ -195,7 +195,7 @@ - + @@ -217,7 +217,7 @@ - + @@ -232,7 +232,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/example-jeehell-datapipe.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/example-jeehell-datapipe.mcc.exp index 032de606b..c1a669661 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/example-jeehell-datapipe.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/example-jeehell-datapipe.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -53,7 +53,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -81,7 +81,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/example-release-5.0.0.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/example-release-5.0.0.mcc.exp index 5956857f1..d797e87bf 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/example-release-5.0.0.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/example-release-5.0.0.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -38,7 +38,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/example-tutorial-7-segment.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/example-tutorial-7-segment.mcc.exp index b2caa87f6..f3f385c94 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/example-tutorial-7-segment.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/example-tutorial-7-segment.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/mobiflight-in-action-episode-1.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/mobiflight-in-action-episode-1.mcc.exp index f9b44163d..242d7435b 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/mobiflight-in-action-episode-1.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/mobiflight-in-action-episode-1.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -98,7 +98,7 @@ - + diff --git a/MobiFlightUnitTests/assets/Base/ConfigFile/tutorial-episode2.mcc.exp b/MobiFlightUnitTests/assets/Base/ConfigFile/tutorial-episode2.mcc.exp index e80b5b5cb..f9f1f37b2 100644 --- a/MobiFlightUnitTests/assets/Base/ConfigFile/tutorial-episode2.mcc.exp +++ b/MobiFlightUnitTests/assets/Base/ConfigFile/tutorial-episode2.mcc.exp @@ -10,7 +10,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -80,7 +80,7 @@ - + @@ -94,7 +94,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -126,7 +126,7 @@ - + diff --git a/MobiFlightUnitTests/assets/MobiFlight/OutputConfig/OutputConfigItem/WriteXmlTest.1.xml b/MobiFlightUnitTests/assets/MobiFlight/OutputConfig/OutputConfigItem/WriteXmlTest.1.xml index 0f3fdee9f639ccf60d33632b98530bcfac6d4885..26d2d452be01a002790436bc590a13bb123691dc 100644 GIT binary patch delta 163 zcmZqTf51PXr{0Yrm?4zGlOce?nL&v`fgztE4G4=FQW;7ZY=I&M3>6H93`Pvb3?>-z zAqfgs5S%j-|G|Qa3xd$JaKTVjg-Sg@C7SkLoDVEHb`-l&^XGw?U8m0Ue#bb$J(kE2VS^dgD3PK-j!$@jL%hX1{zi=CNcerqXpV(N?@(cmH$;6P z<^-Sd9M2Fl!;F!tMwa#Wh*=aXaK|bMF%dCatoWo_SHv%IX0>yEOBhw<8{85VK*5|HqjSJ#j#~4RAwiBZkpQ=95=5kIy3f6T78$N{^hkLRtYiH)v z;2ydc((Jk`YPh9yB^@jHytM4@bi`+=O|1jsJ0U`v-1&QYv^Jj2-W=dHotG}5nyS2_ zy0zpkTMK|#c+4xN`nTYEpodz;pMj*VD#h)Jjx)9c6j9ovqS)FLHYR&GzZl&)%5 z#Y;Y^LvqpgK<}Zmn&)uhl-Z|@YtG9WKjsv8rY7=&T2`E*3O|V6)NTyry) z(a%0H234oSLuhTa&!Sj=0=ZmSlf9$5R<=-=TN z`DZpKYg6#j*lWVo_qO)_ogD7KoSv#fLyXRC^R$I>CvfuF*SBF#2mi%MH%H&2osWw4 H|2h8xF-0M(gygJM-w4e~4Lx%rp&?dZoQN@XY7C9zDCD`~F6~LNkb`$z zu#-cg+FX@Xxl``@`Yz70OuD_Xr-px=78Uf({^j+*Q~A|>hTo>J7~78CqgoB<*^Gsu i6HT0H{+(30yqw3b!*5eqjBQ8nQLP5_ZN|dT ji6+i8|4yo0UQX|Qu^z(;FXpQ2dSoHRSxi59Teo@vOQS + + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs index 9e938b892..c5bdf7f16 100644 --- a/Program.cs +++ b/Program.cs @@ -18,8 +18,8 @@ static void Main() { if (mutex.WaitOne(TimeSpan.Zero, true)) { - // if (Environment.OSVersion.Version.Major >= 6) - // SetProcessDPIAware(); + //if (Environment.OSVersion.Version.Major >= 6) + // SetProcessDPIAware(); CheckForCorruptSettings(); diff --git a/UI/Dialogs/ConfigWizard.cs b/UI/Dialogs/ConfigWizard.cs index 58838fe7a..87f9f4926 100644 --- a/UI/Dialogs/ConfigWizard.cs +++ b/UI/Dialogs/ConfigWizard.cs @@ -1,18 +1,12 @@ -using System; +using MobiFlight.Base; +using MobiFlight.Properties; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; -using System.Drawing; +using System.Diagnostics; using System.Linq; -using System.Text; using System.Windows.Forms; -using MobiFlight; -using MobiFlight.Base; -using MobiFlight.Properties; -using MobiFlight.UI.Forms; -using MobiFlight.UI.Panels.Config; -using MobiFlight.UI.Panels.OutputWizard; -using Newtonsoft.Json.Linq; namespace MobiFlight.UI.Dialogs { @@ -26,9 +20,8 @@ public partial class ConfigWizard : Form OutputConfigItem config = null; OutputConfigItem originalConfig = null; ErrorProvider errorProvider = new ErrorProvider(); - DataSet _dataSetConfig = null; + List outputConfigs = null; Timer TestTimer = new Timer(); - String CurrentGuid = null; public OutputConfigItem Config { get { return config; } } #if ARCAZE @@ -36,15 +29,13 @@ public partial class ConfigWizard : Form Dictionary moduleSettings; #endif - public ConfigWizard( ExecutionManager mainForm, + public ConfigWizard(ExecutionManager mainForm, OutputConfigItem cfg, #if ARCAZE - ArcazeCache arcazeCache, - Dictionary moduleSettings, + ArcazeCache arcazeCache, + Dictionary moduleSettings, #endif - DataSet dataSetConfig, - String filterGuid, - String description) + List outputConfigs) { Init(mainForm, cfg); #if ARCAZE @@ -56,33 +47,25 @@ public ConfigWizard( ExecutionManager mainForm, // copy this so that no filtering will // impact the list of displayed items // https://github.com/MobiFlight/MobiFlight-Connector/issues/1447 - _dataSetConfig = dataSetConfig.Copy(); - var list = _dataSetConfig.GetConfigsWithGuidAndLabel(filterGuid); - - // store the current guid - CurrentGuid = filterGuid; + this.outputConfigs = outputConfigs.ToArray().ToList(); + var list = this.outputConfigs.Where(c => c.GUID != cfg.GUID) + .Select(c => new ListItem() { Label = c.Name, Value = c.GUID }).ToList(); preconditionPanel.SetAvailableConfigs(list); preconditionPanel.SetAvailableVariables(mainForm.GetAvailableVariables()); - initConfigRefDropDowns(_dataSetConfig, filterGuid); + initConfigRefDropDowns(this.outputConfigs, cfg.GUID); // Append the row description to the window title if one was provided. - if (!String.IsNullOrEmpty(description)) + if (!String.IsNullOrEmpty(cfg.Name)) { - this.Text = $"{this.Text} - {description}"; + this.Text = $"{this.Text} - {cfg.Name}"; } } - private void initConfigRefDropDowns(DataSet dataSetConfig, string filterGuid) + private void initConfigRefDropDowns(List outputConfigs, string filterGuid) { - DataRow[] rows = dataSetConfig.Tables["config"].Select("guid <> '" + filterGuid + "'"); - - // this filters the current config - DataView dv = new DataView(dataSetConfig.Tables["config"]); - dv.RowFilter = "guid <> '" + filterGuid + "'"; - - configRefPanel.SetConfigRefsDataView(dv, filterGuid); - displayPanel1.SetConfigRefsDataView(dv, filterGuid); + configRefPanel.SetConfigRefsDataView(outputConfigs, filterGuid); + displayPanel1.SetConfigRefsDataView(outputConfigs, filterGuid); } public bool ConfigHasChanged() @@ -140,7 +123,7 @@ protected void Init(ExecutionManager executionManager, OutputConfigItem cfg) testValuePanel1.TestModeStart += TestValuePanel_TestModeStart; testValuePanel1.TestModeStop += TestValuePanel_TestModeEnd; testValuePanel1.TestValueChanged += ModifierPanel1_ModifierChanged; - TestTimer.Interval = Settings.Default.TestTimerInterval; + TestTimer.Interval = Properties.Settings.Default.TestTimerInterval; TestTimer.Tick += TestTimer_Tick; modifierPanel1.ModifierChanged += ModifierPanel1_ModifierChanged; } @@ -153,7 +136,7 @@ private void ModifierPanel1_ModifierChanged(object sender, EventArgs e) private void TestTimer_Tick(object sender, EventArgs e) { - TestTimer.Interval = Settings.Default.TestTimerInterval; + TestTimer.Interval = Properties.Settings.Default.TestTimerInterval; var value = config.TestValue.Clone() as ConnectorValue; if (value == null) value = new ConnectorValue(); @@ -163,14 +146,15 @@ private void TestTimer_Tick(object sender, EventArgs e) // Apply all modifiers to the test value // so that the test value yields the final value config.Modifiers.Items.FindAll(x => x.Active).ForEach(y => value = y.Apply(value, configRefs)); - } catch (Exception ex) + } + catch (Exception ex) { // ShowError? Or don't do anything? } - + testValuePanel1.Result = value.ToString(); - _execManager.ExecuteTestOn(config, CurrentGuid, value); + _execManager.ExecuteTestOn(config, value); } private List CreateTestConfigRefs(ConfigRefList configRefs) @@ -219,7 +203,7 @@ private void ActivateCorrectTab(OutputConfigItem cfg) // by default always the first tab is activated. // if one opens the dialog for an existing config, // then we use the lastTabActive - if (cfg?.DisplaySerial != null && cfg?.DisplaySerial != SerialNumber.NOT_SET) + if (cfg?.ModuleSerial != null && cfg?.ModuleSerial != SerialNumber.NOT_SET) { tabControlFsuipc.SelectedIndex = lastTabActive; } @@ -227,7 +211,7 @@ private void ActivateCorrectTab(OutputConfigItem cfg) private void SimConnectPanel1_OnGetLVarListRequested(object sender, EventArgs e) { - if(_execManager.GetSimConnectCache().IsConnected()) + if (_execManager.GetSimConnectCache().IsConnected()) { _execManager.GetSimConnectCache().RefreshLVarsList(); } @@ -238,19 +222,19 @@ private void ConfigWizard_LVarListUpdated(object sender, EventArgs e) simConnectPanel1.HubHopPresetPanel.LVars = (sender as List); } - + #if ARCAZE /// /// sync the config wizard with the provided settings from arcaze cache such as available modules, ports, etc. /// /// - public void initWithArcazeCache (ArcazeCache arcazeCache) + public void initWithArcazeCache(ArcazeCache arcazeCache) { List PreconditionModuleList = new List(); List DisplayModuleList = new List(); - + foreach (IModuleInfo module in arcazeCache.getModuleInfo()) { arcazeFirmware[module.Serial] = module.Version; @@ -283,7 +267,7 @@ public void initWithArcazeCache (ArcazeCache arcazeCache) public void initWithoutArcazeCache() { var DisplayModuleList = new List(); - + _AddMobiFlightModules(DisplayModuleList); _AddJoysticks(DisplayModuleList); _AddMidiBoards(DisplayModuleList); @@ -327,7 +311,7 @@ protected void _AddJoysticks(List DisplayModuleList) protected void _AddMidiBoards(List DisplayModuleList) { foreach (MidiBoard midiBoard in _execManager.GetMidiBoardManager().GetMidiBoards()) - { + { if (midiBoard.GetAvailableOutputDevices().Count == 0) continue; DisplayModuleList.Add(new ListItem() @@ -351,7 +335,7 @@ protected bool _syncConfigToForm(OutputConfigItem config) if (config == null) throw new Exception(i18n._tr("uiException_ConfigItemNotFound")); _syncFsuipcTabFromConfig(config); - + displayPanel1.syncFromConfig(config); modifierPanel1.fromConfig(config); @@ -365,10 +349,10 @@ protected bool _syncConfigToForm(OutputConfigItem config) private void _syncFsuipcTabFromConfig(OutputConfigItem config) { - OffsetTypeFsuipRadioButton.Checked = (config.SourceType == SourceType.FSUIPC); - OffsetTypeSimConnectRadioButton.Checked = (config.SourceType == SourceType.SIMCONNECT); - OffsetTypeVariableRadioButton.Checked = (config.SourceType == SourceType.VARIABLE); - OffsetTypeXplaneRadioButton.Checked = (config.SourceType == SourceType.XPLANE); + OffsetTypeFsuipRadioButton.Checked = (config.Source is FsuipcSource); + OffsetTypeSimConnectRadioButton.Checked = (config.Source is SimConnectSource); + OffsetTypeVariableRadioButton.Checked = (config.Source is VariableSource); + OffsetTypeXplaneRadioButton.Checked = (config.Source is XplaneSource); fsuipcConfigPanel.syncFromConfig(config); @@ -377,34 +361,38 @@ private void _syncFsuipcTabFromConfig(OutputConfigItem config) configRefPanel.syncFromConfig(config); xplaneDataRefPanel1.syncFromConfig(config); } - + /// /// sync current status of form values to config /// /// protected bool _syncFormToConfig() { - config.SourceType = SourceType.FSUIPC; - if (OffsetTypeSimConnectRadioButton.Checked) config.SourceType = SourceType.SIMCONNECT; - if (OffsetTypeVariableRadioButton.Checked) config.SourceType = SourceType.VARIABLE; - if (OffsetTypeXplaneRadioButton.Checked) config.SourceType = SourceType.XPLANE; - - if (config.SourceType == SourceType.FSUIPC) + if (OffsetTypeFsuipRadioButton.Checked) + { + config.Source = new FsuipcSource(); fsuipcConfigPanel.syncToConfig(config); - else if (config.SourceType == SourceType.SIMCONNECT) + } else + if (OffsetTypeSimConnectRadioButton.Checked) + { + config.Source = new SimConnectSource(); simConnectPanel1.syncToConfig(config); - else if (config.SourceType == SourceType.VARIABLE) + } else + if (OffsetTypeVariableRadioButton.Checked) + { + config.Source = new VariableSource(); variablePanel1.syncToConfig(config); - else if (config.SourceType == SourceType.XPLANE) + } else + if (OffsetTypeXplaneRadioButton.Checked) + { + config.Source = new XplaneSource(); xplaneDataRefPanel1.syncToConfig(config); + } configRefPanel.syncToConfig(config); - modifierPanel1.toConfig(config); - displayPanel1.syncToConfig(); preconditionPanel.syncToConfig(config); - testValuePanel1.ToConfig(config); return true; @@ -413,13 +401,15 @@ protected bool _syncFormToConfig() private void button1_Click(object sender, EventArgs e) { _testModeStop(true); - try { + try + { if (!ValidateChildren()) { Log.Instance.log("The dialog cannot be closed. There are invalid values on some tab.", LogSeverity.Error); return; } - } catch (System.InvalidOperationException ex) + } + catch (System.InvalidOperationException ex) { Log.Instance.log(ex.Message, LogSeverity.Error); } @@ -437,7 +427,7 @@ private void ConfigWizard_Load(object sender, EventArgs e) { _syncConfigToForm(config); } - + private void _validatingHexFields(object sender, CancelEventArgs e, int length) { try @@ -446,7 +436,7 @@ private void _validatingHexFields(object sender, CancelEventArgs e, int length) (sender as TextBox).Text = "0x" + Int64.Parse(tmp, System.Globalization.NumberStyles.HexNumber).ToString("X" + length.ToString()); } catch (Exception ex) - { + { e.Cancel = true; Log.Instance.log($"Parsing problem: {ex.Message}", LogSeverity.Debug); MessageBox.Show(i18n._tr("uiMessageConfigWizard_ValidHexFormat"), i18n._tr("Hint")); @@ -466,7 +456,7 @@ private void removeError(Control control) errorProvider.SetError( control, ""); - } + } private void tabControlFsuipc_SelectedIndexChanged(object sender, EventArgs e) { diff --git a/UI/Dialogs/InputConfigWizard.cs b/UI/Dialogs/InputConfigWizard.cs index f45fabd1d..5c90a50dd 100644 --- a/UI/Dialogs/InputConfigWizard.cs +++ b/UI/Dialogs/InputConfigWizard.cs @@ -38,17 +38,11 @@ struct ButtonStyle ErrorProvider errorProvider = new ErrorProvider(); Dictionary arcazeFirmware = new Dictionary(); - DataSet _dataSetConfig = null; + List outputConfigItems = null; #if ARCAZE Dictionary moduleSettings; #endif - - UI.Panels.DisplayPinPanel displayPinPanel = new UI.Panels.DisplayPinPanel(); - UI.Panels.DisplayBcdPanel displayBcdPanel = new UI.Panels.DisplayBcdPanel(); - UI.Panels.DisplayLedDisplayPanel displayLedDisplayPanel = new UI.Panels.DisplayLedDisplayPanel(); - UI.Panels.DisplayNothingSelectedPanel displayNothingSelectedPanel = new UI.Panels.DisplayNothingSelectedPanel(); - UI.Panels.ServoPanel servoPanel = new UI.Panels.ServoPanel(); - + ButtonStyle ScanForInputButtonDefaultStyle; Dictionary ScanForInputThreshold = new Dictionary(); @@ -60,9 +54,7 @@ public InputConfigWizard(ExecutionManager mainForm, ArcazeCache arcazeCache, Dictionary moduleSettings, #endif - DataSet dataSetConfig, - String filterGuid, - String description) + List outputConfigItems) { Init(mainForm, cfg); #if ARCAZE @@ -74,12 +66,14 @@ public InputConfigWizard(ExecutionManager mainForm, // copy this so that no filtering will // impact the list of displayed items // https://github.com/MobiFlight/MobiFlight-Connector/issues/1447 - _dataSetConfig = dataSetConfig.Copy(); + this.outputConfigItems = outputConfigItems.ToArray().ToList(); + + var list = outputConfigItems.Where(c => c.GUID != cfg.GUID) + .Select(c => new ListItem() { Label = c.Name, Value = c.GUID }) as List; - var list = _dataSetConfig.GetConfigsWithGuidAndLabel(filterGuid); preconditionPanel.SetAvailableConfigs(list); preconditionPanel.SetAvailableVariables(mainForm.GetAvailableVariables()); - initConfigRefDropDowns(_dataSetConfig, filterGuid); + initConfigRefDropDowns(this.outputConfigItems, cfg.GUID); _loadPresets(); // remember the default style of the button @@ -88,22 +82,15 @@ public InputConfigWizard(ExecutionManager mainForm, ScanForInputButtonDefaultStyle.BorderColor = ScanForInputButton.FlatAppearance.BorderColor; // Append the row description to the window title if one was provided. - if (!String.IsNullOrEmpty(description)) + if (!String.IsNullOrEmpty(cfg.Name)) { - this.Text = $"{this.Text} - {description}"; + this.Text = $"{this.Text} - {cfg.Name}"; } } - private void initConfigRefDropDowns(DataSet dataSetConfig, string filterGuid) + private void initConfigRefDropDowns(List dataSetConfig, string filterGuid) { - DataRow[] rows = dataSetConfig.Tables["config"].Select("guid <> '" + filterGuid + "'"); - - // this filters the current config - DataView dv = new DataView(dataSetConfig.Tables["config"]); - dv.RowFilter = "guid <> '" + filterGuid + "'"; - - configRefPanel.SetConfigRefsDataView(dv, filterGuid); - displayLedDisplayPanel.SetConfigRefsDataView(dv, filterGuid); + configRefPanel.SetConfigRefsDataView(dataSetConfig, filterGuid); } private void ConfigWizard_Load(object sender, EventArgs e) @@ -129,7 +116,7 @@ protected void Init(ExecutionManager mainForm, InputConfigItem cfg) InitializeComponent(); - ActivateCorrectTab(config); + ActivateCorrectTab(config); // PRECONDITION PANEL preconditionPanel.Init(); @@ -195,7 +182,8 @@ public void initWithArcazeCache(ArcazeCache arcazeCache) { arcazeFirmware[module.Serial] = module.Version; - PreconditionModuleList.Add(new ListItem() { + PreconditionModuleList.Add(new ListItem() + { Value = $"{module.Name}{SerialNumber.SerialSeparator}{module.Serial}", Label = $"{module.Name} ({module.Serial})" }); @@ -221,7 +209,7 @@ public void initWithArcazeCache(ArcazeCache arcazeCache) } foreach (MidiBoard midiBoard in _execManager.GetMidiBoardManager().GetMidiBoards()) - { + { inputModuleNameComboBox.Items.Add(new ListItem() { Value = $"{midiBoard.Name} {SerialNumber.SerialSeparator}{midiBoard.Serial}", @@ -264,7 +252,7 @@ public void initWithoutArcazeCache() } foreach (MidiBoard midiBoard in _execManager.GetMidiBoardManager().GetMidiBoards()) - { + { inputModuleNameComboBox.Items.Add(new ListItem() { Value = $"{midiBoard.Name} {SerialNumber.SerialSeparator}{midiBoard.Serial}", @@ -295,10 +283,10 @@ protected bool _syncConfigToForm(InputConfigItem config) } // second tab - if (config.Name != null && !ComboBoxHelper.SetSelectedDeviceByDeviceName(inputTypeComboBox, config.Name)) + if (config.DeviceName != null && !ComboBoxHelper.SetSelectedDeviceByDeviceName(inputTypeComboBox, config.DeviceName)) { // TODO: provide error message - Log.Instance.log($"Exception on selecting item in input type ComboBox. {config.Name}", LogSeverity.Error); + Log.Instance.log($"Exception on selecting item in input type ComboBox. {config.DeviceName}", LogSeverity.Error); } preconditionPanel.syncFromConfig(config); @@ -342,7 +330,7 @@ protected bool _syncFormToConfig() IBaseDevice device = ((ListItem)inputTypeComboBox.SelectedItem).Value; if (device.Label != InputConfigItem.TYPE_NOTSET) - config.Name = device.Name; + config.DeviceName = device.Name; DeviceType currentInputType = determineCurrentDeviceType(SerialNumber.ExtractSerial(config.ModuleSerial)); @@ -351,21 +339,21 @@ protected bool _syncFormToConfig() switch (currentInputType) { case DeviceType.Button: - config.Type = InputConfigItem.TYPE_BUTTON; + config.DeviceType = InputConfigItem.TYPE_BUTTON; if (config.button == null) config.button = new InputConfig.ButtonInputConfig(); if (groupBoxInputSettings.Controls[0] != null) (groupBoxInputSettings.Controls[0] as ButtonPanel).ToConfig(config.button); break; case DeviceType.Encoder: - config.Type = InputConfigItem.TYPE_ENCODER; + config.DeviceType = InputConfigItem.TYPE_ENCODER; if (config.encoder == null) config.encoder = new InputConfig.EncoderInputConfig(); if (groupBoxInputSettings.Controls[0] != null) (groupBoxInputSettings.Controls[0] as EncoderPanel).ToConfig(config.encoder); break; case DeviceType.InputShiftRegister: - config.Type = InputConfigItem.TYPE_INPUT_SHIFT_REGISTER; + config.DeviceType = InputConfigItem.TYPE_INPUT_SHIFT_REGISTER; if (config.inputShiftRegister == null) config.inputShiftRegister = new InputConfig.InputShiftRegisterConfig(); config.inputShiftRegister.ExtPin = (int)inputPinDropDown.SelectedItem; if (groupBoxInputSettings.Controls[0] != null) @@ -373,7 +361,7 @@ protected bool _syncFormToConfig() break; case DeviceType.InputMultiplexer: - config.Type = InputConfigItem.TYPE_INPUT_MULTIPLEXER; + config.DeviceType = InputConfigItem.TYPE_INPUT_MULTIPLEXER; if (config.inputMultiplexer == null) config.inputMultiplexer = new InputConfig.InputMultiplexerConfig(); config.inputMultiplexer.DataPin = (int)inputPinDropDown.SelectedItem; if (groupBoxInputSettings.Controls[0] != null) @@ -381,15 +369,15 @@ protected bool _syncFormToConfig() break; case DeviceType.AnalogInput: - config.Type = InputConfigItem.TYPE_ANALOG; + config.DeviceType = InputConfigItem.TYPE_ANALOG; if (config.analog == null) config.analog = new InputConfig.AnalogInputConfig(); if (groupBoxInputSettings.Controls[0] != null) (groupBoxInputSettings.Controls[0] as AnalogPanel).ToConfig(config.analog); break; case DeviceType.NotSet: - config.Type = InputConfigItem.TYPE_NOTSET; - config.Name = InputConfigItem.TYPE_NOTSET; + config.DeviceType = InputConfigItem.TYPE_NOTSET; + config.DeviceName = InputConfigItem.TYPE_NOTSET; break; } @@ -460,14 +448,14 @@ private void ModuleSerialComboBox_SelectedIndexChanged(object sender, EventArgs if (device != null) { - device.Name = config.Name; + device.Name = config.DeviceName; inputTypeComboBox.Items.Add(new ListItem() { Label = device.Label, Value = device }); } inputTypeComboBox.Enabled = false; } // Add all Joysticks else if (Joystick.IsJoystickSerial(serial)) - { + { Joystick joystick = _execManager.GetJoystickManager().GetJoystickBySerial(serial); inputTypeComboBox.Items.AddRange(joystick.GetAvailableDevicesAsListItems().ToArray()); } @@ -524,9 +512,9 @@ private void ModuleSerialComboBox_SelectedIndexChanged(object sender, EventArgs } // third tab - if (config.Name != null && !ComboBoxHelper.SetSelectedDeviceByDeviceName(inputTypeComboBox, config.Name)) + if (config.DeviceName != null && !ComboBoxHelper.SetSelectedDeviceByDeviceName(inputTypeComboBox, config.DeviceName)) { - Log.Instance.log($"Problem setting input type ComboBox. {config.Name}", LogSeverity.Error); + Log.Instance.log($"Problem setting input type ComboBox. {config.DeviceName}", LogSeverity.Error); } } catch (Exception ex) @@ -633,30 +621,6 @@ private void inputTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) } } - void displayLedAddressComboBox_SelectedIndexChanged(object sender, EventArgs e) - { - ComboBox cb = inputModuleNameComboBox; - String serial = SerialNumber.ExtractSerial(cb.SelectedItem.ToString()); - MobiFlightModule module = _execManager.getMobiFlightModuleCache().GetModuleBySerial(serial); - - List connectors = new List(); - - if (module != null) - { - foreach (IConnectedDevice device in module.GetConnectedDevices()) - { - if (device.Type != DeviceType.LedModule) continue; - if (device.Name != ((sender as ComboBox).SelectedItem as ListItem).Value) continue; - for (int i = 0; i < (device as MobiFlightLedModule).SubModules; i++) - { - connectors.Add(new ListItem() { Label = (i + 1).ToString(), Value = (i + 1).ToString() }); - } - } - } - - displayLedDisplayPanel.SetConnectors(connectors); - } - private void displayError(Control control, String message) { errorProvider.SetError( @@ -709,44 +673,6 @@ private void portComboBox_Validating(object sender, CancelEventArgs e) } } - private void displayLedDisplayComboBox_Validating(object sender, CancelEventArgs e) - { - if (inputTypeComboBox.Text == ArcazeLedDigit.TYPE) - { - try - { - int.Parse(displayLedDisplayPanel.displayLedAddressComboBox.Text); - removeError(displayLedDisplayPanel.displayLedAddressComboBox); - } - catch (Exception exc) - { - Log.Instance.log("displayLedDisplayComboBox_Validating : Parsing problem, " + exc.Message, LogSeverity.Debug); - e.Cancel = true; - tabControlFsuipc.SelectedTab = displayTabPage; - displayLedDisplayPanel.displayLedAddressComboBox.Focus(); - displayError(displayLedDisplayPanel.displayLedAddressComboBox, i18n._tr("uiMessageConfigWizard_ProvideLedDisplayAddress")); - } - } - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - int value = Int16.Parse((sender as ComboBox).Text); - for (int i = 0; i < 8; i++) - { - displayLedDisplayPanel.displayLedDigitFlowLayoutPanel.Controls["displayLedDigit" + i + "CheckBox"].Visible = i < value; - displayLedDisplayPanel.displayLedDecimalPointFlowLayoutPanel.Controls["displayLedDecimalPoint" + i + "CheckBox"].Visible = i < value; - displayLedDisplayPanel.Controls["displayLedDisplayLabel" + i].Visible = i < value; - - // uncheck all invisible checkboxes to ensure correct mask - if (i >= value) - { - (displayLedDisplayPanel.displayLedDigitFlowLayoutPanel.Controls["displayLedDigit" + i + "CheckBox"] as CheckBox).Checked = false; - (displayLedDisplayPanel.displayLedDecimalPointFlowLayoutPanel.Controls["displayLedDecimalPoint" + i + "CheckBox"] as CheckBox).Checked = false; - } - } - } - private void tabControlFsuipc_SelectedIndexChanged(object sender, EventArgs e) { lastTabActive = (sender as TabControl).SelectedIndex; @@ -768,7 +694,8 @@ private void ScanForInputButton_Click(object sender, EventArgs e) if (!ScanningForInput) { ActivateScanForInputMode(); - } else + } + else { DeactivateScanForInputMode(); } @@ -838,13 +765,13 @@ private void ScanforInput_OnButtonPressed(object sender, InputEventArgs e) { // Add item to device list if not yet there if (!inputTypeComboBox.Items.OfType>().Any(i => i.Value.Name == e.DeviceId)) - { + { MidiBoardDevice mbd = new MidiBoardDevice(); - mbd.Label = e.DeviceLabel; + mbd.Label = e.DeviceLabel; mbd.Name = e.DeviceId; mbd.Type = DeviceType.Button; inputTypeComboBox.Items.Add(new ListItem { Label = mbd.Label, Value = mbd }); - } + } ComboBoxHelper.SetSelectedItem(inputTypeComboBox, e.DeviceLabel); } else @@ -854,9 +781,9 @@ private void ScanforInput_OnButtonPressed(object sender, InputEventArgs e) if (e.Type == DeviceType.InputMultiplexer || e.Type == DeviceType.InputShiftRegister) { ComboBoxHelper.SetSelectedItem(inputPinDropDown, e.ExtPin.ToString()); - } + } } - + DeactivateScanForInputMode(); } diff --git a/UI/Dialogs/OrphanedSerialsDialog.cs b/UI/Dialogs/OrphanedSerialsDialog.cs index 672c76011..9042ad467 100644 --- a/UI/Dialogs/OrphanedSerialsDialog.cs +++ b/UI/Dialogs/OrphanedSerialsDialog.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Data; +using System.Linq; using System.Windows.Forms; namespace MobiFlight.UI.Dialogs @@ -12,20 +13,16 @@ public partial class OrphanedSerialsDialog : Form private List connectedModuleSerials = new List(); private List connectedArcazeSerials = new List(); private List connectedJoystickSerials = new List(); - private DataTable configDataTable = null; - private DataTable realConfigDataTable = null; - private DataTable inputDataTable = null; - private DataTable realInputDataTable = null; + private List allConfigItems = null; + private List originalAllConfigItems = null; private bool changed = false; - public OrphanedSerialsDialog(List serials, DataTable dataTable, DataTable inputDataTable) + public OrphanedSerialsDialog(List serials, List dataTable) { this.allConnectedSerials = serials; - this.configDataTable = dataTable.Copy(); - this.realConfigDataTable = dataTable; - this.inputDataTable = inputDataTable.Copy(); - this.realInputDataTable = inputDataTable; - + this.allConfigItems = dataTable.Select(item => (IConfigItem)item.Clone()).ToList(); + this.originalAllConfigItems = dataTable; + foreach (string serial in allConnectedSerials) { string serialNumber = SerialNumber.ExtractSerial(serial); @@ -59,19 +56,10 @@ protected void updateOrphanedList() connectedModulesComboBox.Items.Add(serial); } - foreach (DataRow row in configDataTable.Rows) + foreach (IConfigItem cfg in allConfigItems) { - OutputConfigItem cfg = row["settings"] as OutputConfigItem; - CheckAndAddConfigSerial(cfg.DisplaySerial, configSerials); - } - - foreach (DataRow row in inputDataTable.Rows) - { - InputConfigItem cfg = row["settings"] as InputConfigItem; - if (cfg != null) - { - CheckAndAddConfigSerial(cfg.ModuleSerial, configSerials); - } + if (cfg== null) continue; + CheckAndAddConfigSerial(cfg.ModuleSerial, configSerials); } if (connectedModulesComboBox.Items.Count > 0) connectedModulesComboBox.SelectedIndex = 0; @@ -99,23 +87,11 @@ private void CheckAndAddConfigSerial(string configSerial, List configSer protected void replaceSerialBySerial(string oldSerial, string newSerial) { - foreach (DataRow row in configDataTable.Rows) + foreach (IConfigItem cfg in allConfigItems) { - OutputConfigItem cfg = row["settings"] as OutputConfigItem; - if (cfg?.DisplaySerial == oldSerial) - { - cfg.DisplaySerial = newSerial; - row["settings"] = cfg; - } - } - - foreach (DataRow row in inputDataTable.Rows) - { - InputConfigItem cfg = row["settings"] as InputConfigItem; if (cfg?.ModuleSerial == oldSerial) { cfg.ModuleSerial = newSerial; - row["settings"] = cfg; } } } @@ -132,15 +108,11 @@ private void CancelButton_Click(object sender, EventArgs e) private void OkButton_Click(object sender, EventArgs e) { - for (int i=0; i!=realConfigDataTable.Rows.Count;++i) + for (int i=0; i!=originalAllConfigItems.Count;++i) { - realConfigDataTable.Rows[i]["settings"] = configDataTable.Rows[i]["settings"]; + originalAllConfigItems[i] = allConfigItems[i]; } - for (int i = 0; i != realInputDataTable.Rows.Count; ++i) - { - realInputDataTable.Rows[i]["settings"] = inputDataTable.Rows[i]["settings"]; - } //realConfigDataTable = configDataTable; DialogResult = DialogResult.OK; } diff --git a/UI/MainForm.Designer.cs b/UI/MainForm.Designer.cs index c4e4cbea2..477aafccf 100644 --- a/UI/MainForm.Designer.cs +++ b/UI/MainForm.Designer.cs @@ -62,11 +62,6 @@ private void InitializeComponent() this.überToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.releaseNotesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panelMain = new System.Windows.Forms.Panel(); - this.inputsTabControl = new System.Windows.Forms.TabControl(); - this.OutputTabPage = new System.Windows.Forms.TabPage(); - this.outputConfigPanel = new MobiFlight.UI.Panels.OutputConfigPanel(); - this.InputTabPage = new System.Windows.Forms.TabPage(); - this.inputConfigPanel = new MobiFlight.UI.Panels.InputConfigPanel(); this.tabPageImageList = new System.Windows.Forms.ImageList(this.components); this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components); this.contextMenuStripNotifyIcon = new System.Windows.Forms.ContextMenuStrip(this.components); @@ -97,6 +92,7 @@ private void InitializeComponent() this.statusStripPanel = new System.Windows.Forms.Panel(); this.statusStrip2 = new System.Windows.Forms.StatusStrip(); this.connectedDevicesToolStripLabel = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripConnectedDevicesIcon = new System.Windows.Forms.ToolStripStatusLabel(); this.connectedDevicesToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); this.joysticksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.noneToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); @@ -134,14 +130,9 @@ private void InitializeComponent() this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.logSplitter = new System.Windows.Forms.Splitter(); - this.startupPanel = new MobiFlight.UI.Panels.StartupPanel(); + this.frontendPanel1 = new MobiFlight.UI.Panels.FrontendPanel(); this.logPanel1 = new MobiFlight.UI.Panels.LogPanel(); - this.toolStripConnectedDevicesIcon = new System.Windows.Forms.ToolStripStatusLabel(); this.menuStrip.SuspendLayout(); - this.panelMain.SuspendLayout(); - this.inputsTabControl.SuspendLayout(); - this.OutputTabPage.SuspendLayout(); - this.InputTabPage.SuspendLayout(); this.contextMenuStripNotifyIcon.SuspendLayout(); this.toolStrip1.SuspendLayout(); this.statusStripPanel.SuspendLayout(); @@ -361,49 +352,8 @@ private void InitializeComponent() // panelMain // resources.ApplyResources(this.panelMain, "panelMain"); - this.panelMain.Controls.Add(this.inputsTabControl); this.panelMain.Name = "panelMain"; // - // inputsTabControl - // - this.inputsTabControl.Controls.Add(this.OutputTabPage); - this.inputsTabControl.Controls.Add(this.InputTabPage); - resources.ApplyResources(this.inputsTabControl, "inputsTabControl"); - this.inputsTabControl.ImageList = this.tabPageImageList; - this.inputsTabControl.Multiline = true; - this.inputsTabControl.Name = "inputsTabControl"; - this.inputsTabControl.SelectedIndex = 0; - this.inputsTabControl.SizeMode = System.Windows.Forms.TabSizeMode.FillToRight; - this.inputsTabControl.SelectedIndexChanged += new System.EventHandler(this.inputsTabControl_TabIndexChanged); - this.inputsTabControl.TabIndexChanged += new System.EventHandler(this.inputsTabControl_TabIndexChanged); - // - // OutputTabPage - // - this.OutputTabPage.BackColor = System.Drawing.Color.Transparent; - this.OutputTabPage.Controls.Add(this.outputConfigPanel); - resources.ApplyResources(this.OutputTabPage, "OutputTabPage"); - this.OutputTabPage.Name = "OutputTabPage"; - // - // outputConfigPanel - // - resources.ApplyResources(this.outputConfigPanel, "outputConfigPanel"); - this.outputConfigPanel.ExecutionManager = null; - this.outputConfigPanel.Name = "outputConfigPanel"; - // - // InputTabPage - // - this.InputTabPage.Controls.Add(this.inputConfigPanel); - resources.ApplyResources(this.InputTabPage, "InputTabPage"); - this.InputTabPage.Name = "InputTabPage"; - this.InputTabPage.UseVisualStyleBackColor = true; - // - // inputConfigPanel - // - resources.ApplyResources(this.inputConfigPanel, "inputConfigPanel"); - this.inputConfigPanel.ExecutionManager = null; - this.inputConfigPanel.Name = "inputConfigPanel"; - this.inputConfigPanel.OutputDataSetConfig = null; - // // tabPageImageList // this.tabPageImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("tabPageImageList.ImageStream"))); @@ -629,6 +579,13 @@ private void InitializeComponent() this.connectedDevicesToolStripLabel.Name = "connectedDevicesToolStripLabel"; resources.ApplyResources(this.connectedDevicesToolStripLabel, "connectedDevicesToolStripLabel"); // + // toolStripConnectedDevicesIcon + // + this.toolStripConnectedDevicesIcon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripConnectedDevicesIcon.Image = global::MobiFlight.Properties.Resources.warning; + this.toolStripConnectedDevicesIcon.Name = "toolStripConnectedDevicesIcon"; + resources.ApplyResources(this.toolStripConnectedDevicesIcon, "toolStripConnectedDevicesIcon"); + // // connectedDevicesToolStripDropDownButton // this.connectedDevicesToolStripDropDownButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.None; @@ -869,30 +826,22 @@ private void InitializeComponent() this.logSplitter.Name = "logSplitter"; this.logSplitter.TabStop = false; // - // startupPanel + // frontendPanel1 // - this.startupPanel.BackColor = System.Drawing.SystemColors.Window; - resources.ApplyResources(this.startupPanel, "startupPanel"); - this.startupPanel.Name = "startupPanel"; + resources.ApplyResources(this.frontendPanel1, "frontendPanel1"); + this.frontendPanel1.Name = "frontendPanel1"; // // logPanel1 // resources.ApplyResources(this.logPanel1, "logPanel1"); this.logPanel1.Name = "logPanel1"; // - // toolStripConnectedDevicesIcon - // - this.toolStripConnectedDevicesIcon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.toolStripConnectedDevicesIcon.Image = global::MobiFlight.Properties.Resources.warning; - this.toolStripConnectedDevicesIcon.Name = "toolStripConnectedDevicesIcon"; - resources.ApplyResources(this.toolStripConnectedDevicesIcon, "toolStripConnectedDevicesIcon"); - // // MainForm // resources.ApplyResources(this, "$this"); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.startupPanel); this.Controls.Add(this.logSplitter); + this.Controls.Add(this.frontendPanel1); this.Controls.Add(this.panelMain); this.Controls.Add(this.logPanel1); this.Controls.Add(this.statusStripPanel); @@ -910,10 +859,6 @@ private void InitializeComponent() this.Resize += new System.EventHandler(this.MainForm_Resize); this.menuStrip.ResumeLayout(false); this.menuStrip.PerformLayout(); - this.panelMain.ResumeLayout(false); - this.inputsTabControl.ResumeLayout(false); - this.OutputTabPage.ResumeLayout(false); - this.InputTabPage.ResumeLayout(false); this.contextMenuStripNotifyIcon.ResumeLayout(false); this.toolStrip1.ResumeLayout(false); this.toolStrip1.PerformLayout(); @@ -974,9 +919,6 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; private System.Windows.Forms.ToolStripButton donateToolStripButton; private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; - private System.Windows.Forms.TabControl inputsTabControl; - private System.Windows.Forms.TabPage OutputTabPage; - private System.Windows.Forms.TabPage InputTabPage; private System.Windows.Forms.DataGridViewCheckBoxColumn activeDataGridViewCheckBoxColumn; private System.Windows.Forms.DataGridViewCheckBoxColumn activeDataGridViewTextBoxColumn; private System.Windows.Forms.DataGridViewTextBoxColumn descriptionDataGridViewTextBoxColumn; @@ -988,11 +930,8 @@ private void InitializeComponent() private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; private System.Windows.Forms.ToolStripMenuItem checkForUpdateToolStripMenuItem; - private UI.Panels.StartupPanel startupPanel; private System.Windows.Forms.Splitter logSplitter; private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel4; - private Panels.OutputConfigPanel outputConfigPanel; - private Panels.InputConfigPanel inputConfigPanel; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem mSFS2020ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem installWASMModuleToolStripMenuItem; @@ -1039,6 +978,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem2; private System.Windows.Forms.ToolStripStatusLabel toolStripConnectedDevicesIcon; + private Panels.FrontendPanel frontendPanel1; } } diff --git a/UI/MainForm.cs b/UI/MainForm.cs index 0beb2efd7..f47840847 100644 --- a/UI/MainForm.cs +++ b/UI/MainForm.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Data; -using System.Drawing; using System.Linq; using System.Windows.Forms; using System.Diagnostics; @@ -21,7 +20,9 @@ using MobiFlight.InputConfig; using Newtonsoft.Json; using System.IO; -using FSUIPC; +using MobiFlight.BrowserMessages.Incoming; +using MobiFlight.BrowserMessages; +using MobiFlight.BrowserMessages.Outgoing; namespace MobiFlight.UI { @@ -39,7 +40,7 @@ public partial class MainForm : Form /// the currently used filename of the loaded config file /// private string currentFileName = null; - private ConfigFile configFile = null; + private Project project = null; private CmdLineParams cmdLineParams; private ExecutionManager execManager; private Dictionary AutoLoadConfigs = new Dictionary(); @@ -53,9 +54,11 @@ public partial class MainForm : Form private bool IsMSFSRunning = false; - public string CurrentFileName { + public string CurrentFileName + { get { return currentFileName; } - set { + set + { if (currentFileName == value) return; currentFileName = value; CurrentFilenameChanged?.Invoke(this, value); @@ -70,21 +73,23 @@ private void InitializeUILanguage() } } - public ConfigFile ConfigFile { get { return configFile; } } - public bool InitialLookupFinished { get; private set; } = false; public bool SettingsDialogActive { get; private set; } - public event EventHandler ConfigLoaded; + public event EventHandler ConfigLoaded; + public event EventHandler ProjectLoaded; private readonly LogAppenderFile logAppenderFile = new LogAppenderFile(); + private int StartupProgressValue = 0; + private void InitializeLogging() { LogAppenderLogPanel logAppenderTextBox = new LogAppenderLogPanel(logPanel1); Log.Instance.AddAppender(logAppenderTextBox); Log.Instance.AddAppender(logAppenderFile); + Log.Instance.AddAppender(new Base.LogAppender.MessageExchangeAppender()); Log.Instance.LogJoystickAxis = Properties.Settings.Default.LogJoystickAxis; Log.Instance.Enabled = Properties.Settings.Default.LogEnabled; logPanel1.Visible = Log.Instance.Enabled; @@ -116,6 +121,12 @@ private void InitializeSettings() { UpgradeSettingsFromPreviousInstallation(); Properties.Settings.Default.SettingChanging += new System.Configuration.SettingChangingEventHandler(Default_SettingChanging); + + Properties.Settings.Default.SettingsSaving += (s, e) => + { + MessageExchange.Instance.Publish(new Settings(Properties.Settings.Default)); + }; + UpdateAutoLoadConfig(); RestoreAutoLoadConfig(); CurrentFilenameChanged += (s, e) => { UpdateAutoLoadMenu(); }; @@ -125,11 +136,17 @@ private void InitializeSettings() // there are no recent files which // could lead to a filename change UpdateAutoLoadMenu(); + + // Send the current settings to the UI + MessageExchange.Instance.Publish(new Settings(Properties.Settings.Default)); } public MainForm() { // this shall happen before anything else + InitializeFrontendSubscriptions(); + + // set up the old winforms UI InitializeUILanguage(); // then initialize components @@ -154,6 +171,123 @@ public MainForm() InitializeTracking(); } + private void InitializeFrontendSubscriptions() + { + MessageExchange.Instance.Subscribe((message) => + { + var msg = message; + if (msg.Action != "edit") return; + if (msg.Item.Type == typeof(OutputConfigItem).Name) + { + OpenOutputConfigWizardForId(message.Item.GUID); + } + else if (msg.Item.Type == typeof(InputConfigItem).Name) + { + OpenInputConfigWizardForId(message.Item.GUID); + } + }); + } + + private void OpenOutputConfigWizardForId(string guid) + { + if (this.InvokeRequired) + { + this.Invoke((Action)(() => OpenOutputConfigWizardForId(guid))); + return; + } + + var cfg = execManager.ConfigItems.Find(c => c.GUID == guid); + if (cfg == null) return; + if (!(cfg is OutputConfigItem)) return; + + // Show a modal dialog after the current event handler is completed, to avoid potential reentrancy caused by running a nested message loop in the WebView2 event handler. + System.Threading.SynchronizationContext.Current.Post((_) => + { + EditConfigWithWizard(cfg as OutputConfigItem, false); + }, null); + } + + private void EditConfigWithWizard(OutputConfigItem cfg, bool create) + { + // refactor!!! dependency to arcaze cache etc not nice + ConfigWizard wizard = new ConfigWizard(execManager, + cfg, +#if ARCAZE + execManager.getModuleCache(), + execManager.getModuleCache().GetArcazeModuleSettings(), +#endif + execManager.ConfigItems.Where(item => item is OutputConfigItem).Cast().ToList() + ) + { + StartPosition = FormStartPosition.CenterParent + }; + wizard.SettingsDialogRequested += ConfigPanel_SettingsDialogRequested; + + if (wizard.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (wizard.ConfigHasChanged()) + { + // we have to update the config + // using the duplicated config + // that the user edited with the wizard + var index = execManager.ConfigItems.FindIndex(c => c.GUID == cfg.GUID); + execManager.ConfigItems[index] = wizard.Config; + MessageExchange.Instance.Publish(new ConfigValueUpdate() { ConfigItems = new List() { wizard.Config } }); + ExecManager_OnConfigHasChanged(wizard.Config, null); + } + }; + } + + private void OpenInputConfigWizardForId(string guid) + { + if (this.InvokeRequired) + { + this.Invoke((Action)(() => OpenInputConfigWizardForId(guid))); + return; + } + + var cfg = execManager.ConfigItems.Find(c => c.GUID == guid); + if (cfg == null || !(cfg is InputConfigItem)) return; + + // Show a modal dialog after the current event handler is completed, to avoid potential reentrancy caused by running a nested message loop in the WebView2 event handler. + System.Threading.SynchronizationContext.Current.Post((_) => + { + _editConfigWithInputWizard(cfg as InputConfigItem, false); + }, null); + } + + private void _editConfigWithInputWizard(InputConfigItem cfg, bool create) + { + // refactor!!! dependency to arcaze cache etc not nice + InputConfigWizard wizard = new InputConfigWizard( + execManager, + cfg, +#if ARCAZE + execManager.getModuleCache(), + execManager.getModuleCache().GetArcazeModuleSettings(), +#endif + execManager.ConfigItems.Where(item => item is OutputConfigItem).Cast().ToList() + ) + { + StartPosition = FormStartPosition.CenterParent + }; + + wizard.SettingsDialogRequested += ConfigPanel_SettingsDialogRequested; + if (wizard.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (wizard.ConfigHasChanged()) + { + // we have to update the config + // using the duplicated config + // that the user edited with the wizard + var index = execManager.ConfigItems.FindIndex(c => c.GUID == cfg.GUID); + execManager.ConfigItems[index] = wizard.Config; + MessageExchange.Instance.Publish(new ConfigValueUpdate() { ConfigItems = new List() { wizard.Config } }); + ExecManager_OnConfigHasChanged(wizard.Config, null); + } + }; + } + private void InitializeTracking() { AppTelemetry.Instance.Enabled = Properties.Settings.Default.CommunityFeedback; @@ -161,11 +295,24 @@ private void InitializeTracking() private void MainForm_Load(object sender, EventArgs e) { - panelMain.Visible = false; - startupPanel.Visible = true; menuStrip.Enabled = false; toolStrip1.Enabled = false; - startupPanel.Dock = DockStyle.Fill; + + ConfigLoaded += (s, config) => + { + MessageExchange.Instance.Publish(config); + }; + + ProjectLoaded += (s, project) => + { + var configFile = new ConfigFile(); + if (project.ConfigFiles.Count > 0) + { + configFile = project.ConfigFiles[0]; + } + + MessageExchange.Instance.Publish(configFile); + }; } private void MainForm_Shown(object sender, EventArgs e) @@ -188,12 +335,10 @@ private void MainForm_Shown(object sender, EventArgs e) Properties.Settings.Default.Started = Properties.Settings.Default.Started + 1; - // this is everything that used to be directly in the constructor - inputsTabControl.DrawItem += new DrawItemEventHandler(tabControl1_DrawItem); - cmdLineParams = new CmdLineParams(Environment.GetCommandLineArgs()); - execManager = new ExecutionManager(outputConfigPanel.DataGridViewConfig, inputConfigPanel.InputsDataGridView, this.Handle); + execManager = new ExecutionManager(this.Handle); + execManager.OnConfigHasChanged += ExecManager_OnConfigHasChanged; execManager.OnExecute += new EventHandler(ExecManager_Executed); execManager.OnStopped += new EventHandler(ExecManager_Stopped); execManager.OnStarted += new EventHandler(ExecManager_Started); @@ -247,29 +392,27 @@ private void MainForm_Shown(object sender, EventArgs e) _updateRecentFilesMenuItems(); - // TODO: REFACTOR THIS DEPENDENCY - outputConfigPanel.ExecutionManager = execManager; - outputConfigPanel.SettingsChanged += OutputConfigPanel_SettingsChanged; - outputConfigPanel.SettingsDialogRequested += ConfigPanel_SettingsDialogRequested; - - inputConfigPanel.ExecutionManager = execManager; - inputConfigPanel.SettingsChanged += InputConfigPanel_SettingsChanged; - inputConfigPanel.SettingsDialogRequested += ConfigPanel_SettingsDialogRequested; - inputConfigPanel.OutputDataSetConfig = outputConfigPanel.DataSetConfig; - inputConfigPanel.SettingsChanged += execManager.OnInputConfigSettingsChanged; - if (System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName != "de") { // change ui icon to english donateToolStripButton.Image = Properties.Resources.btn_donate_uk_SM; } - startupPanel.UpdateStatusText("Start Connecting"); + StartupProgressValue = 0; + MessageExchange.Instance.Publish(new StatusBarUpdate { Value = StartupProgressValue, Text = "Start Connecting" }); + #if ARCAZE _initializeArcazeModuleSettings(); #endif Update(); Refresh(); + + // test subscription + BrowserMessages.MessageExchange.Instance.Subscribe((message) => + { + var msg = message; + MessageBox.Show(msg.Message); + }); } private void RefreshConnectedDevicesIcon() @@ -374,7 +517,7 @@ private void UpdateAircraft(String aircraftName) !AutoLoadConfigs.ContainsKey(key)) { UpdateAutoLoadMenu(); - + return; } @@ -439,7 +582,7 @@ private void OnFirstStart() // MSFS2020 installed Msfs2020StartupForm msfsForm = new Msfs2020StartupForm(); msfsForm.StartPosition = FormStartPosition.CenterParent; - if (msfsForm.ShowDialog()==DialogResult.OK) + if (msfsForm.ShowDialog() == DialogResult.OK) { InstallWasmModule(); } @@ -447,7 +590,8 @@ private void OnFirstStart() } // if the user is not participating yet, ask for permission - if (!Properties.Settings.Default.CommunityFeedback) { + if (!Properties.Settings.Default.CommunityFeedback) + { CommunityFeedbackStartupForm cfpForm = new CommunityFeedbackStartupForm(); cfpForm.StartPosition = FormStartPosition.CenterParent; if (cfpForm.ShowDialog() == DialogResult.OK) @@ -458,12 +602,6 @@ private void OnFirstStart() } } - private void OutputConfigPanel_SettingsChanged(object sender, EventArgs e) - { - saveToolStripButton.Enabled = true; - UpdateAllConnectionIcons(); - } - private void UpdateAllConnectionIcons() { UpdateSimStatusIcon(); @@ -483,7 +621,7 @@ private void ConfigPanel_SettingsDialogRequested(object sender, EventArgs e) ShowSettingsDialog("mobiFlightTabPage", moduleInfo, null, null); } - private void InputConfigPanel_SettingsChanged(object sender, EventArgs e) + private void ExecManager_OnConfigHasChanged(object sender, EventArgs e) { saveToolStripButton.Enabled = true; UpdateAllConnectionIcons(); @@ -507,18 +645,16 @@ void ExecManager_OnInitialModuleLookupFinished(object sender, EventArgs e) this.Invoke(new EventHandler(ExecManager_OnInitialModuleLookupFinished), new object[] { sender, e }); return; } - - startupPanel.UpdateStatusText("Checking for Firmware Updates..."); - startupPanel.UpdateProgressBar(70); + StartupProgressValue = 70; + MessageExchange.Instance.Publish(new StatusBarUpdate { Value = StartupProgressValue, Text = "Checking for Firmware Updates..." }); CheckForFirmwareUpdates(); - startupPanel.UpdateStatusText("Loading last config..."); - startupPanel.UpdateProgressBar(90); + StartupProgressValue = 90; + MessageExchange.Instance.Publish(new StatusBarUpdate { Value = StartupProgressValue, Text = "Loading last config..." }); _autoloadConfig(); - startupPanel.UpdateProgressBar(100); - panelMain.Visible = true; - startupPanel.Visible = false; + StartupProgressValue = 100; + MessageExchange.Instance.Publish(new StatusBarUpdate { Value = StartupProgressValue, Text = "Finished." }); menuStrip.Enabled = true; toolStrip1.Enabled = true; @@ -546,7 +682,7 @@ void ExecManager_OnInitialModuleLookupFinished(object sender, EventArgs e) private void CheckForHubhopUpdate() { - + if (!WasmModuleUpdater.HubHopPresetsPresent()) { DownloadHubHopPresets(); @@ -555,12 +691,12 @@ private void CheckForHubhopUpdate() var lastModification = WasmModuleUpdater.HubHopPresetTimestamp(); UpdateHubHopTimestampInStatusBar(lastModification); - + if (lastModification > DateTime.UtcNow.AddDays(-7)) return; // we could provide a warning icon or so. if (!Properties.Settings.Default.HubHopAutoCheck) return; // we haven't updated hubhop events in more than 7 days. - + TimeoutMessageDialog tmd = new TimeoutMessageDialog(); tmd.StartPosition = FormStartPosition.CenterParent; tmd.DefaultDialogResult = DialogResult.Cancel; @@ -576,10 +712,10 @@ private void CheckForHubhopUpdate() private void CheckForWasmModuleUpdate() { WasmModuleUpdater updater = new WasmModuleUpdater(); - + } - void CheckForFirmwareUpdates () + void CheckForFirmwareUpdates() { MobiFlightCache mfCache = execManager.getMobiFlightModuleCache(); @@ -695,7 +831,7 @@ private DialogResult ShowSettingsDialog(String SelectedTab, MobiFlightModuleInfo execManager.OnModuleConnected += dlg.UpdateConnectedModule; execManager.OnModuleRemoved += dlg.UpdateRemovedModule; - switch(SelectedTab) + switch (SelectedTab) { case "mobiFlightTabPage": dlg.tabControl1.SelectedTab = dlg.mobiFlightTabPage; @@ -779,13 +915,13 @@ void Default_SettingChanging(object sender, System.Configuration.SettingChanging if (e.SettingName == "LogEnabled") { - logPanel1.Visible = (bool) e.NewValue; - logSplitter.Visible = (bool) e.NewValue; + logPanel1.Visible = (bool)e.NewValue; + logSplitter.Visible = (bool)e.NewValue; } } private void _autoloadConfig() - { + { if (cmdLineParams.ConfigFile != null) { if (!System.IO.File.Exists(cmdLineParams.ConfigFile)) @@ -802,7 +938,7 @@ private void _autoloadConfig() { LoadConfig(cmdLineParams.ConfigFile); return; - } + } } _autoloadLastConfig(); @@ -855,14 +991,14 @@ private void _initializeArcazeModuleSettings() { } } - } - + } + execManager.updateModuleSettings(execManager.getModuleCache().GetArcazeModuleSettings()); } #endif private void Module_Connected(object sender, EventArgs e) - { + { if (InvokeRequired) { this.Invoke(new EventHandler(Module_Connected), new object[] { sender, e }); @@ -875,11 +1011,10 @@ private void Module_Connected(object sender, EventArgs e) // and we would like to display some progress information if (!InitialLookupFinished) { - startupPanel.UpdateStatusText("Scanning for boards."); - var progress = startupPanel.GetProgressBar(); - var progressIncrement = (75 - progress) / 2; - startupPanel.UpdateProgressBar(progress + progressIncrement); - + StartupProgressValue = 50; + var progressIncrement = (75 - StartupProgressValue) / 2; + StartupProgressValue += progressIncrement; + MessageExchange.Instance.Publish(new StatusBarUpdate { Value = StartupProgressValue, Text = "Scanning for boards." }); return; } @@ -902,7 +1037,7 @@ private void Module_Connected(object sender, EventArgs e) PerformFirmwareInstallProcess(module.ToMobiFlightModuleInfo()); return; - } + } // The board already has MF firmware if (!module.FirmwareRequiresUpdate()) return; @@ -957,7 +1092,7 @@ void ModuleCache_Available(object sender, EventArgs e) /// private bool RunIsAvailable() { - return + return // We are not already running !execManager.IsStarted() && !execManager.TestModeIsStarted(); } @@ -989,7 +1124,7 @@ void SimCache_Closed(object sender, EventArgs e) private void ExecManager_OnSimAvailable(object sender, EventArgs e) { - FlightSimType flightSim = (FlightSimType) sender; + FlightSimType flightSim = (FlightSimType)sender; switch (flightSim) { @@ -1071,7 +1206,8 @@ void SimCache_Connected(object sender, EventArgs e) Log.Instance.log("Connected to SimConnect (MSFS).", LogSeverity.Info); } - if ((sender as SimConnectCache).IsConnected()) { + if ((sender as SimConnectCache).IsConnected()) + { simConnectToolStripMenuItem.Text = "WASM Module (MSFS)"; simConnectToolStripMenuItem.Image = Properties.Resources.check; simConnectToolStripMenuItem.Enabled = true; @@ -1102,14 +1238,15 @@ void SimCache_Connected(object sender, EventArgs e) AppTelemetry.Instance.TrackFlightSimConnected(FlightSim.FlightSimType.ToString(), FlightSimConnectionMethod.XPLANE.ToString()); Log.Instance.log($"{FlightSim.SimNames[FlightSim.FlightSimType]} detected. [{FlightSim.SimConnectionNames[FlightSim.FlightSimConnectionMethod]}].", LogSeverity.Info); } - else if (sender.GetType() == typeof(Fsuipc2Cache)) { + else if (sender.GetType() == typeof(Fsuipc2Cache)) + { Fsuipc2Cache c = sender as Fsuipc2Cache; switch (FlightSim.FlightSimConnectionMethod) { case FlightSimConnectionMethod.FSUIPC: CurrentConnectionMethod = FlightSimConnectionMethod.FSUIPC; - FsuipcToolStripMenuItem.Text = i18n._tr("fsuipcStatus") + " ("+ FlightSim.FlightSimType.ToString() +")"; + FsuipcToolStripMenuItem.Text = i18n._tr("fsuipcStatus") + " (" + FlightSim.FlightSimType.ToString() + ")"; break; case FlightSimConnectionMethod.XPLANE: @@ -1137,8 +1274,8 @@ void SimCache_Connected(object sender, EventArgs e) /// /// gets triggered as soon as the fsuipc is connected /// - void CheckAutoRun () - { + void CheckAutoRun() + { if (Properties.Settings.Default.AutoRun || cmdLineParams.AutoRun) { execManager.Stop(); @@ -1169,7 +1306,7 @@ void SimCache_ConnectionLost(object sender, EventArgs e) _showError(i18n._tr("uiMessageSimConnectConnectionLost")); UpdateSimConnectStatusIcon(); } - else if(sender.GetType() == typeof(XplaneCache)) + else if (sender.GetType() == typeof(XplaneCache)) { _showError(i18n._tr("uiMessageXplaneConnectionLost")); UpdateXplaneDirectConnectStatusIcon(); @@ -1178,7 +1315,7 @@ void SimCache_ConnectionLost(object sender, EventArgs e) { _showError(i18n._tr("uiMessageFsuipcConnectionLost")); if (execManager.GetSimConnectCache().IsConnected()) - UpdateFsuipcStatusIcon(); + UpdateFsuipcStatusIcon(); } UpdateSeparatorInStatusMenu(); @@ -1195,7 +1332,7 @@ void ExecManager_Started(object sender, EventArgs e) return; } - runToolStripButton.Enabled = RunIsAvailable(); + runToolStripButton.Enabled = RunIsAvailable(); runTestToolStripButton.Enabled = TestRunIsAvailable(); stopToolStripButton.Enabled = true; updateNotifyContextMenu(execManager.IsStarted()); @@ -1206,9 +1343,9 @@ void ExecManager_Started(object sender, EventArgs e) /// void ExecManager_Stopped(object sender, EventArgs e) { - if(InvokeRequired) + if (InvokeRequired) { - Invoke(new EventHandler(ExecManager_Stopped), new object[] { sender, e}); + Invoke(new EventHandler(ExecManager_Stopped), new object[] { sender, e }); return; } @@ -1328,11 +1465,11 @@ protected void updateNotifyContextMenu(bool isRunning) /// /// present errors to user via message dialog or when minimized via balloon /// - private void _showError (string msg) + private void _showError(string msg) { if (this.WindowState != FormWindowState.Minimized) { - TimeoutMessageDialog.Show(msg, i18n._tr("Hint"), MessageBoxButtons.OK, MessageBoxIcon.Warning); + TimeoutMessageDialog.Show(msg, i18n._tr("Hint"), MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { @@ -1343,31 +1480,31 @@ private void _showError (string msg) /// /// handles the resize event /// - private void MainForm_Resize (object sender, EventArgs e) + private void MainForm_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Maximized) return; - minimizeMainForm (FormWindowState.Minimized == this.WindowState); + minimizeMainForm(FormWindowState.Minimized == this.WindowState); } //MainForm_Resize() /// /// handles minimize event /// - protected void minimizeMainForm (bool minimized) + protected void minimizeMainForm(bool minimized) { if (minimized) { notifyIcon.Visible = true; notifyIcon.BalloonTipTitle = i18n._tr("uiMessageMFConnectorInterfaceActive"); notifyIcon.BalloonTipText = i18n._tr("uiMessageApplicationIsRunningInBackgroundMode"); - notifyIcon.ShowBalloonTip(1000); + notifyIcon.ShowBalloonTip(1000); this.Hide(); } else { - notifyIcon.Visible = false; + notifyIcon.Visible = false; this.Show(); - if (this.WindowState!=FormWindowState.Normal) + if (this.WindowState != FormWindowState.Normal) this.WindowState = FormWindowState.Normal; this.BringToFront(); } @@ -1402,9 +1539,9 @@ private void exitToolStripMenuItem_Click(object sender, EventArgs e) /// opens file dialog when clicking on according button /// private void loadToolStripMenuItem_Click(object sender, EventArgs e) - { + { OpenFileDialog fd = new OpenFileDialog(); - fd.Filter = "MobiFlight Connector Config (*.mcc)|*.mcc|ArcazeUSB Interface Config (*.aic) |*.aic"; + fd.Filter = "MobiFlight Files|*.mfproj;*.mcc|MobiFlight Project (*.mfproj)|*.mfproj|MobiFlight Connector Config (*.mcc)|*.mcc|ArcazeUSB Interface Config (*.aic) |*.aic"; if (saveToolStripButton.Enabled && MessageBox.Show( i18n._tr("uiMessageConfirmDiscardUnsaved"), @@ -1464,7 +1601,7 @@ private void _updateRecentFilesMenuItems() recentDocumentsToolStripMenuItem.DropDownItems.Add(current); } - recentDocumentsToolStripMenuItem.Enabled = recentDocumentsToolStripMenuItem.DropDownItems.Count > 0; + recentDocumentsToolStripMenuItem.Enabled = recentDocumentsToolStripMenuItem.DropDownItems.Count > 0; } //_updateRecentFilesMenuItems() /// @@ -1482,7 +1619,7 @@ void recentMenuItem_Click(object sender, EventArgs e) { saveToolStripButton_Click(saveToolStripButton, new EventArgs()); }; - LoadConfig((sender as ToolStripMenuItem).Text); + LoadConfig((sender as ToolStripMenuItem).Text); } //recentMenuItem_Click() /// @@ -1545,33 +1682,17 @@ private void LoadConfig(string fileName, bool merge = false) execManager.Stop(); - // Reset sorting if active - if (outputConfigPanel.IsSortingActive()) outputConfigPanel.ResetSorting(); - if (inputConfigPanel.IsSortingActive()) inputConfigPanel.ResetSorting(); - if (!merge) { - outputConfigPanel.DataSetConfig.Clear(); - inputConfigPanel.InputDataSetConfig.Clear(); + execManager.ConfigItems.Clear(); } - configFile = new ConfigFile(fileName); try { - // refactor!!! - outputConfigPanel.DataSetConfig.ReadXml(configFile.getOutputConfig()); - } - catch (Exception ex) - { - Log.Instance.log($"Unable to load configuration file: {ex.Message}", LogSeverity.Error); - MessageBox.Show(i18n._tr("uiMessageProblemLoadingConfig"), i18n._tr("Hint")); - return; - } - try - { - // refactor!!! - inputConfigPanel.InputDataSetConfig.ReadXml(configFile.getInputConfig()); + project = new Project() { FilePath = fileName }; + project.OpenFile(); + execManager.Project = project; } catch (InvalidExpressionException) { @@ -1584,22 +1705,21 @@ private void LoadConfig(string fileName, bool merge = false) return; } - // for backward compatibility - // we check if there are rows that need to - // initialize our config item correctly - _applyBackwardCompatibilityLoading(); - _restoreValuesInGridView(); - if (!merge) { - CurrentFileName = fileName; - _setFilenameInTitle(fileName); - _storeAsRecentFile(fileName); + CurrentFileName = fileName.Replace(".mcc", ".mfproj"); + _setFilenameInTitle(CurrentFileName); + _storeAsRecentFile(CurrentFileName); // set the button back to "disabled" // since due to initiliazing the dataSet // it will automatically gets enabled saveToolStripButton.Enabled = false; + + if (CurrentFileName != fileName) + { + saveToolStripButton.Enabled = true; + } } else { @@ -1611,18 +1731,17 @@ private void LoadConfig(string fileName, bool merge = false) // always put this after "normal" initialization // savetoolstripbutton may be set to "enabled" // if user has changed something + _checkForOrphanedSerials(false); _checkForOrphanedJoysticks(false); - _checkForOrphanedSerials(false); _checkForOrphanedMidiBoards(false); // Track config loaded event - AppTelemetry.Instance.ConfigLoaded(configFile); + AppTelemetry.Instance.ProjectLoaded(project); AppTelemetry.Instance.TrackBoardStatistics(execManager); AppTelemetry.Instance.TrackSettings(); - ConfigLoaded?.Invoke(this, configFile); + ProjectLoaded?.Invoke(this, project); } - private void _checkForOrphanedJoysticks(bool showNotNecessaryMessage) { List serials = new List(); @@ -1633,28 +1752,21 @@ private void _checkForOrphanedJoysticks(bool showNotNecessaryMessage) serials.Add($"{j.Name} {SerialNumber.SerialSeparator}{j.Serial}"); } - if (configFile == null) return; - - foreach (OutputConfigItem item in configFile.GetOutputConfigItems()) - { - if (item.DisplaySerial.Contains(Joystick.SerialPrefix) && - !serials.Contains(item.DisplaySerial) && - !NotConnectedJoysticks.Contains(item.DisplaySerial)) - { - NotConnectedJoysticks.Add(item.DisplaySerial); - } - } + if (project == null) return; + - foreach (InputConfigItem item in configFile.GetInputConfigItems()) + + foreach (IConfigItem item in project.ConfigFiles[0].ConfigItems) { if (item.ModuleSerial.Contains(Joystick.SerialPrefix) && - !serials.Contains(item.ModuleSerial) && - !NotConnectedJoysticks.Contains(item.ModuleSerial)) { + !serials.Contains(item.ModuleSerial) && + !NotConnectedJoysticks.Contains(item.ModuleSerial)) + { NotConnectedJoysticks.Add(item.ModuleSerial); } } - if (NotConnectedJoysticks.Count>0) + if (NotConnectedJoysticks.Count > 0) { TimeoutMessageDialog tmd = new TimeoutMessageDialog(); tmd.HasCancelButton = false; @@ -1679,22 +1791,12 @@ private void _checkForOrphanedMidiBoards(bool showNotNecessaryMessage) foreach (MidiBoard mb in execManager.GetMidiBoardManager().GetMidiBoards()) { - serials.Add($"{mb.Name} {SerialNumber.SerialSeparator}{mb.Serial}"); + serials.Add($"{mb.Name} {SerialNumber.SerialSeparator}{mb.Serial}"); } - if (configFile == null) return; - - foreach (OutputConfigItem item in configFile.GetOutputConfigItems()) - { - if (item.DisplaySerial.Contains(MidiBoard.SerialPrefix) && - !serials.Contains(item.DisplaySerial) && - !NotConnectedMidiBoards.Contains(item.DisplaySerial)) - { - NotConnectedMidiBoards.Add(item.DisplaySerial); - } - } + if (project == null) return; - foreach (InputConfigItem item in configFile.GetInputConfigItems()) + foreach (IConfigItem item in project.ConfigFiles[0].ConfigItems) { if (item.ModuleSerial.Contains(MidiBoard.SerialPrefix) && !serials.Contains(item.ModuleSerial) && @@ -1722,18 +1824,12 @@ private void _checkForOrphanedMidiBoards(bool showNotNecessaryMessage) } } - private void _restoreValuesInGridView() - { - outputConfigPanel.RestoreValuesInGridView(); - inputConfigPanel.RestoreValuesInGridView(); - } - private void _checkForOrphanedSerials(bool showNotNecessaryMessage) { List serials = new List(); - + foreach (IModuleInfo moduleInfo in execManager.GetAllConnectedModulesInfo()) - { + { serials.Add($"{moduleInfo.Name}{SerialNumber.SerialSeparator}{moduleInfo.Serial}"); } @@ -1742,18 +1838,17 @@ private void _checkForOrphanedSerials(bool showNotNecessaryMessage) // Extra space between Name and Separator is necessary! serials.Add($"{joystick.Name} {SerialNumber.SerialSeparator}{joystick.Serial}"); } - + if (serials.Count == 0) return; try { - OrphanedSerialsDialog opd = new OrphanedSerialsDialog(serials, outputConfigPanel.ConfigDataTable, inputConfigPanel.ConfigDataTable); + OrphanedSerialsDialog opd = new OrphanedSerialsDialog(serials, project.ConfigFiles[0].ConfigItems); opd.StartPosition = FormStartPosition.CenterParent; if (opd.HasOrphanedSerials()) { if (opd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { - _restoreValuesInGridView(); saveToolStripButton.Enabled = opd.HasChanged(); } } @@ -1762,7 +1857,8 @@ private void _checkForOrphanedSerials(bool showNotNecessaryMessage) TimeoutMessageDialog.Show(i18n._tr("uiMessageNoOrphanedSerialsFound"), i18n._tr("Hint"), MessageBoxButtons.OK, MessageBoxIcon.Information); } } - catch (Exception ex) { + catch (Exception ex) + { // do nothing Log.Instance.log($"Orphaned serials exception: {ex.Message}", LogSeverity.Error); } @@ -1770,11 +1866,12 @@ private void _checkForOrphanedSerials(bool showNotNecessaryMessage) private void SetTitle(string title) { - string NewTitle = "MobiFlight Connector ("+ Version +")"; - if (VersionBeta.Split('.')[3]!="0") { + string NewTitle = "MobiFlight Connector (" + Version + ")"; + if (VersionBeta.Split('.')[3] != "0") + { NewTitle = "MobiFlight Connector BETA (" + VersionBeta + ")"; } - if (title!=null && title!="") + if (title != null && title != "") { NewTitle = title + " - " + NewTitle; } @@ -1782,7 +1879,7 @@ private void SetTitle(string title) Text = NewTitle; } - public static String DisplayVersion () + public static String DisplayVersion() { if (VersionBeta.Split('.')[3] != "0") { @@ -1802,85 +1899,30 @@ public static String CurrentVersion() private void _setFilenameInTitle(string fileName) { - SetTitle(fileName.Substring(fileName.LastIndexOf('\\')+1)); + SetTitle(fileName.Substring(fileName.LastIndexOf('\\') + 1)); } - /// - /// due to the new settings-node there must be some routine to load - /// data from legacy config files - /// - private void _applyBackwardCompatibilityLoading() - { - foreach (DataRow row in outputConfigPanel.ConfigDataTable.Rows) { - if (row["settings"].GetType() == typeof(System.DBNull)) - { - OutputConfigItem cfgItem = new OutputConfigItem(); - - if (row["fsuipcOffset"].GetType() != typeof(System.DBNull)) - cfgItem.FSUIPC.Offset = Int32.Parse(row["fsuipcOffset"].ToString().Replace("0x", ""), System.Globalization.NumberStyles.HexNumber); - - if (row["fsuipcSize"].GetType() != typeof(System.DBNull)) - cfgItem.FSUIPC.Size = Byte.Parse(row["fsuipcSize"].ToString()); - - if (row["mask"].GetType() != typeof(System.DBNull)) - cfgItem.FSUIPC.Mask = (row["mask"].ToString() != "") ? Int32.Parse(row["mask"].ToString()) : Int32.MaxValue; - - // comparison - if (row["comparison"].GetType() != typeof(System.DBNull)) - { - cfgItem.Modifiers.Comparison.Active = true; - cfgItem.Modifiers.Comparison.Operand = row["comparison"].ToString(); - } - - if (row["comparisonValue"].GetType() != typeof(System.DBNull)) - { - cfgItem.Modifiers.Comparison.Value = row["comparisonValue"].ToString(); - } - - if (row["converter"].GetType() != typeof(System.DBNull)) - { - if (row["converter"].ToString() == "Boolean") - { - cfgItem.Modifiers.Comparison.IfValue = "1"; - cfgItem.Modifiers.Comparison.ElseValue = "0"; - } - } - - if (row["trigger"].GetType() != typeof(System.DBNull)) - { - cfgItem.DisplayTrigger = row["trigger"].ToString(); - } - - if (row["usbArcazePin"].GetType() != typeof(System.DBNull)) - { - cfgItem.DisplayType = MobiFlightOutput.TYPE; - cfgItem.Pin.DisplayPin = row["usbArcazePin"].ToString(); - } - - if (row["arcazeSerial"].GetType() != typeof(System.DBNull)) - { - cfgItem.DisplaySerial = row["arcazeSerial"].ToString(); - } - - row["settings"] = cfgItem; - } - } - } - /// /// saves the current config to filename /// private void SaveConfig(string fileName) { - outputConfigPanel.ApplyBackwardCompatibilitySaving(); - - ConfigFile configFile = new ConfigFile(fileName); - + execManager.Project.FilePath = fileName; + execManager.Project.ConfigFiles.Clear(); + execManager.Project.ConfigFiles.Add( + new ConfigFile() + { + EmbedContent = true, + ReferenceOnly = false, + ConfigItems = execManager.ConfigItems, + } + ); + // Issue 1401: Saving the file can result in an UnauthorizedAccessException, so catch any // errors during save and show it in a dialog instead of crashing. try { - configFile.SaveFile(outputConfigPanel.DataSetConfig, inputConfigPanel.InputDataSetConfig); + execManager.Project.SaveFile(); } catch (Exception ex) { @@ -1889,7 +1931,6 @@ private void SaveConfig(string fileName) } CurrentFileName = fileName; - _restoreValuesInGridView(); _storeAsRecentFile(fileName); _setFilenameInTitle(fileName); saveToolStripButton.Enabled = false; @@ -1902,7 +1943,7 @@ private void UpdateSimConnectStatusIcon() simConnectToolStripMenuItem.Enabled = true; simConnectToolStripMenuItem.ToolTipText = "Some configs are using MSFS2020 presets -> WASM module required"; - if (!ContainsConfigOfSourceType(outputConfigPanel.GetConfigItems(), inputConfigPanel.GetConfigItems(), SourceType.SIMCONNECT)) + if (!ContainsConfigOfSourceType(execManager.ConfigItems, new SimConnectSource())) { simConnectToolStripMenuItem.Image = Properties.Resources.disabled; simConnectToolStripMenuItem.Visible = false; @@ -1913,7 +1954,7 @@ private void UpdateSimConnectStatusIcon() if (execManager.GetSimConnectCache().IsConnected()) simConnectToolStripMenuItem.Image = Properties.Resources.check; - else + else SimConnectionIconStatusToolStripStatusLabel.Image = Properties.Resources.warning; UpdateSeparatorInStatusMenu(); @@ -1921,7 +1962,7 @@ private void UpdateSimConnectStatusIcon() private void UpdateSeparatorInStatusMenu() { - separatorToolStripMenuItem.Visible = simConnectToolStripMenuItem.Enabled || xPlaneDirectToolStripMenuItem.Enabled|| FsuipcToolStripMenuItem.Enabled; + separatorToolStripMenuItem.Visible = simConnectToolStripMenuItem.Enabled || xPlaneDirectToolStripMenuItem.Enabled || FsuipcToolStripMenuItem.Enabled; } private void UpdateXplaneDirectConnectStatusIcon() @@ -1931,7 +1972,7 @@ private void UpdateXplaneDirectConnectStatusIcon() xPlaneDirectToolStripMenuItem.Enabled = true; xPlaneDirectToolStripMenuItem.ToolTipText = "Some configs are using XPlane DataRefs/Commands -> XPlane direct required"; - if (!ContainsConfigOfSourceType(outputConfigPanel.GetConfigItems(), inputConfigPanel.GetConfigItems(), SourceType.XPLANE)) + if (!ContainsConfigOfSourceType(execManager.ConfigItems, new XplaneSource())) { xPlaneDirectToolStripMenuItem.Image = Properties.Resources.disabled; xPlaneDirectToolStripMenuItem.Visible = false; @@ -1942,7 +1983,7 @@ private void UpdateXplaneDirectConnectStatusIcon() if (execManager.GetXlpaneConnectCache().IsConnected()) xPlaneDirectToolStripMenuItem.Image = Properties.Resources.check; - else + else SimConnectionIconStatusToolStripStatusLabel.Image = Properties.Resources.warning; UpdateSeparatorInStatusMenu(); @@ -1955,7 +1996,7 @@ private void UpdateFsuipcStatusIcon() FsuipcToolStripMenuItem.Enabled = true; FsuipcToolStripMenuItem.ToolTipText = "Some configs are using FSUIPC -> FSUIPC required"; - if (!ContainsConfigOfSourceType(outputConfigPanel.GetConfigItems(), inputConfigPanel.GetConfigItems(), SourceType.FSUIPC)) + if (!ContainsConfigOfSourceType(execManager.ConfigItems, new FsuipcSource())) { FsuipcToolStripMenuItem.Image = Properties.Resources.disabled; FsuipcToolStripMenuItem.Visible = false; @@ -1983,13 +2024,13 @@ private void UpdateSimStatusIcon() /// triggers the save dialog if user clicks on according buttons /// private void saveToolStripMenuItem_Click(object sender, EventArgs e) - { + { SaveFileDialog fd = new SaveFileDialog(); - fd.Filter = "MobiFlight Connector Config (*.mcc)|*.mcc"; + fd.Filter = "MobiFlight Project (*.mfproj)|*.mfproj|MobiFlight Connector Config (*.mcc)|*.mcc"; if (DialogResult.OK == fd.ShowDialog()) { SaveConfig(fd.FileName); - } + } } //saveToolStripMenuItem_Click() /// @@ -2007,20 +2048,17 @@ private void AboutToolStripMenuItem_Click(object sender, EventArgs e) /// private void newFileToolStripMenuItem_Click(object sender, EventArgs e) { - if ( MessageBox.Show( + if (MessageBox.Show( i18n._tr("uiMessageConfirmNewConfig"), - i18n._tr("uiMessageConfirmNewConfigTitle"), + i18n._tr("uiMessageConfirmNewConfigTitle"), MessageBoxButtons.OKCancel) == DialogResult.OK) { execManager.Stop(); CurrentFileName = null; _setFilenameInTitle(i18n._tr("DefaultFileName")); - // Reset sorting if active - if (outputConfigPanel.IsSortingActive()) outputConfigPanel.ResetSorting(); - if (inputConfigPanel.IsSortingActive()) inputConfigPanel.ResetSorting(); - // Clear data - outputConfigPanel.ConfigDataTable.Clear(); - inputConfigPanel.ConfigDataTable.Clear(); + var project = new Project() { Name = i18n._tr("DefaultFileName") }; + execManager.Project = project; + ProjectLoaded?.Invoke(this, project); }; } //toolStripMenuItem3_Click() @@ -2126,7 +2164,7 @@ private void MainForm_FormClosing(object sender, FormClosingEventArgs e) // only cancel closing if not saved before // which is indicated by empty CurrentFilename e.Cancel = (CurrentFileName == null); - saveToolStripButton_Click(saveToolStripButton, new EventArgs()); + saveToolStripButton_Click(saveToolStripButton, new EventArgs()); }; } @@ -2142,43 +2180,7 @@ private void orphanedSerialsFinderToolStripMenuItem_Click(object sender, EventAr private void donateToolStripButton_Click(object sender, EventArgs e) { - Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7GV3DCC7BXWLY"); - } - - /// taken from - /// http://msdn.microsoft.com/en-us/library/ms404305.aspx - private void tabControl1_DrawItem(Object sender, System.Windows.Forms.DrawItemEventArgs e) - { - Graphics g = e.Graphics; - Brush _textBrush = new System.Drawing.SolidBrush(e.ForeColor); - - // Get the item from the collection. - TabPage _tabPage = inputsTabControl.TabPages[e.Index]; - - // Get the real bounds for the tab rectangle. - Rectangle _tabBounds = inputsTabControl.GetTabRect(e.Index); - - if (e.State == DrawItemState.Selected) - { - - // Draw a different background color, and don't paint a focus rectangle. - //_textBrush = new SolidBrush(Color.Red); - //g.FillRectangle(Brushes.Gray, e.Bounds); - } - else - { - _textBrush = new System.Drawing.SolidBrush(e.ForeColor); - e.DrawBackground(); - } - - // Use our own font. - Font _tabFont = new Font("Arial", (float)10.0, FontStyle.Bold, GraphicsUnit.Pixel); - - // Draw string. Center the text. - StringFormat _stringFlags = new StringFormat(); - _stringFlags.Alignment = StringAlignment.Center; - _stringFlags.LineAlignment = StringAlignment.Center; - g.DrawString(_tabPage.Text, _tabFont, _textBrush, _tabBounds, new StringFormat(_stringFlags)); + Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7GV3DCC7BXWLY"); } private void MainForm_KeyUp(object sender, KeyEventArgs e) @@ -2188,7 +2190,7 @@ private void MainForm_KeyUp(object sender, KeyEventArgs e) // Do what you want here e.SuppressKeyPress = true; // Stops bing! Also sets handled which stop event bubbling if (saveToolStripButton.Enabled) - saveToolStripButton_Click(null, null); + saveToolStripButton_Click(null, null); } } @@ -2250,7 +2252,7 @@ private void InstallWasmModule() if (IsMSFSRunning) { MessageBox.Show( - i18n._tr("uiMessageWasmMSFSRunning"), + i18n._tr("uiMessageWasmMSFSRunning"), i18n._tr("uiMessageWasmUpdater"), MessageBoxButtons.OK, MessageBoxIcon.Warning); return; @@ -2285,7 +2287,8 @@ private void InstallWasmModule() return; } } - catch (Exception ex) { + catch (Exception ex) + { Log.Instance.log(ex.Message, LogSeverity.Error); } @@ -2328,23 +2331,24 @@ private void downloadLatestEventsToolStripMenuItem_Click(object sender, EventArg Control MainForm = this; updater.DownloadAndInstallProgress += progressForm.OnProgressUpdated; - var t = new Task(() => { - if (!updater.AutoDetectCommunityFolder()) - { - Log.Instance.log(i18n._tr("uiMessageWasmUpdateCommunityFolderNotFound"), LogSeverity.Error); - return; - } + var t = new Task(() => + { + if (!updater.AutoDetectCommunityFolder()) + { + Log.Instance.log(i18n._tr("uiMessageWasmUpdateCommunityFolderNotFound"), LogSeverity.Error); + return; + } - if (updater.InstallWasmEvents()) - { - progressForm.DialogResult = DialogResult.OK; - } - else - { - progressForm.DialogResult = DialogResult.No; - Log.Instance.log(i18n._tr("uiMessageWasmEventsInstallationError"), LogSeverity.Error); - } + if (updater.InstallWasmEvents()) + { + progressForm.DialogResult = DialogResult.OK; } + else + { + progressForm.DialogResult = DialogResult.No; + Log.Instance.log(i18n._tr("uiMessageWasmEventsInstallationError"), LogSeverity.Error); + } + } ); t.Start(); @@ -2354,7 +2358,8 @@ private void downloadLatestEventsToolStripMenuItem_Click(object sender, EventArg i18n._tr("uiMessageWasmEventsInstallationSuccessful"), i18n._tr("uiMessageWasmUpdater"), MessageBoxButtons.OK, MessageBoxIcon.Information); - } else + } + else { TimeoutMessageDialog.Show( i18n._tr("uiMessageWasmEventsInstallationError"), @@ -2373,7 +2378,8 @@ private void DownloadHubHopPresets() progressForm.Text = i18n._tr("uiTitleHubhopAutoUpdate"); updater.DownloadAndInstallProgress += progressForm.OnProgressUpdated; - var t = new Task(() => { + var t = new Task(() => + { if (updater.DownloadHubHopPresets()) { Msfs2020HubhopPresetListSingleton.Instance.Clear(); @@ -2447,53 +2453,44 @@ private void releaseNotesToolStripMenuItem_Click(object sender, EventArgs e) Process.Start($"https://github.com/MobiFlight/MobiFlight-Connector/releases/tag/{CurrentVersion()}"); } - private void inputsTabControl_TabIndexChanged(object sender, EventArgs e) - { - if (inputsTabControl.SelectedIndex == 0) - { - OutputTabPage.ImageKey = "mf-output.png"; - InputTabPage.ImageKey = "mf-input-inactive.png"; - } else - { - OutputTabPage.ImageKey = "mf-output-inactive.png"; - InputTabPage.ImageKey = "mf-input.png"; - } - } - - public static bool ContainsConfigOfSourceType(List outputConfigItems, List inputConfigItems, SourceType type) + public static bool ContainsConfigOfSourceType(List configItems, Source type) { var result = false; - if (type == SourceType.SIMCONNECT) - { - result = outputConfigItems - .Any(x => x?.SourceType == type) || - inputConfigItems - .Any(x => x?.GetInputActionsByType(typeof(MSFS2020CustomInputAction)).Count > 0); - } - else if (type == SourceType.FSUIPC) - { - result = outputConfigItems - .Any(x => x?.SourceType == type) || - inputConfigItems - .Any(x => x?.GetInputActionsByType(typeof(FsuipcOffsetInputAction)).Count > 0 || - x?.GetInputActionsByType(typeof(EventIdInputAction)).Count > 0 || - x?.GetInputActionsByType(typeof(PmdgEventIdInputAction)).Count > 0 || - x?.GetInputActionsByType(typeof(JeehellInputAction)).Count > 0 || - x?.GetInputActionsByType(typeof(LuaMacroInputAction)).Count > 0); - } - else if (type == SourceType.XPLANE) - { - result = outputConfigItems - .Any(x => x?.SourceType == type) || - inputConfigItems - .Any(x => x?.GetInputActionsByType(typeof(XplaneInputAction)).Count > 0); - } - else if (type == SourceType.VARIABLE) - { - result = outputConfigItems - .Any(x => x?.SourceType == type) || - inputConfigItems - .Any(x => x?.GetInputActionsByType(typeof(VariableInputAction)).Count > 0); + if (type is SimConnectSource) + { + result = configItems + .Any(x => x is OutputConfigItem && (x as OutputConfigItem)?.Source is SimConnectSource) || + configItems + .Any(x => x is InputConfigItem && (x as InputConfigItem)?.GetInputActionsByType(typeof(MSFS2020CustomInputAction)).Count > 0); + } + else if (type is FsuipcSource) + { + result = configItems + .Any(x => x is OutputConfigItem && (x as OutputConfigItem)?.Source is FsuipcSource) || + configItems + .Any(x => x is InputConfigItem && + ( + (x as InputConfigItem)?.GetInputActionsByType(typeof(FsuipcOffsetInputAction)).Count > 0 || + (x as InputConfigItem)?.GetInputActionsByType(typeof(EventIdInputAction)).Count > 0 || + (x as InputConfigItem)?.GetInputActionsByType(typeof(PmdgEventIdInputAction)).Count > 0 || + (x as InputConfigItem)?.GetInputActionsByType(typeof(JeehellInputAction)).Count > 0 || + (x as InputConfigItem)?.GetInputActionsByType(typeof(LuaMacroInputAction)).Count > 0 + ) + ); + } + else if (type is XplaneSource) + { + result = configItems + .Any(x => x is OutputConfigItem && (x as OutputConfigItem)?.Source is XplaneSource) || + configItems + .Any(x => x is InputConfigItem && (x as InputConfigItem)?.GetInputActionsByType(typeof(XplaneInputAction)).Count > 0); + } + else if (type is VariableSource) + { + result = configItems + .Any(x => x is OutputConfigItem && (x as OutputConfigItem)?.Source is VariableSource) || + configItems + .Any(x => x is InputConfigItem && (x as InputConfigItem)?.GetInputActionsByType(typeof(VariableInputAction)).Count > 0); } return result; } @@ -2542,7 +2539,7 @@ private void unlinkConfigToolStripMenuItem_Click(object sender, EventArgs e) toolStripAircraftDropDownButton.Image = null; if (!AutoLoadConfigs.Remove(key)) return; - + SaveAutoLoadConfig(); } diff --git a/UI/MainForm.resx b/UI/MainForm.resx index 0037cdc7c..46f41d6ea 100644 --- a/UI/MainForm.resx +++ b/UI/MainForm.resx @@ -455,7 +455,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABm - PgAAAk1TRnQBSQFMAgEBBAEAAWABAQFgAQEBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + PgAAAk1TRnQBSQFMAgEBBAEAAYABAQGAAQEBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABMAMAAQEBAAEgBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A /wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ADYAAcwBZgEzAf8BzAFmATMB/wHMAWYBMwH/AcwBZgEz Af8BzAFmATMB/wHMAWYBMwH/AcwBZgEzAf8BzAFmATMB/wHMAWYBMwH/AcwBZgEzAf8BzAFmATMB/wHM @@ -739,6 +739,9 @@ 3 + + False + inputsTabControl @@ -763,6 +766,9 @@ 1 + + False + panelMain @@ -7106,256 +7112,256 @@ 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 - YII= + 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 + QmCC @@ -7682,7 +7688,7 @@ | - 526, 17 + 557, 17 Status Info... @@ -7865,31 +7871,31 @@ $this - 2 + 1 - - 414, 225 + + Fill - - 4, 5, 4, 5 + + 0, 52 - - 452, 323 + + 1008, 499 - - 3 + + 1 - - startupPanel + + frontendPanel1 - - MobiFlight.UI.Panels.StartupPanel, MFConnector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null + + MobiFlight.UI.Panels.FrontendPanel, MFConnector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null - + $this - - 1 + + 2 Bottom @@ -8071,8 +8077,11 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + NoControl + - 546, 213 + 800, 600 CenterScreen @@ -8416,6 +8425,12 @@ System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + toolStripConnectedDevicesIcon + + + System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + connectedDevicesToolStripDropDownButton @@ -8632,12 +8647,6 @@ System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - toolStripConnectedDevicesIcon - - - System.Windows.Forms.ToolStripStatusLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - MainForm diff --git a/UI/Panels/Config/ConfigRefPanel.cs b/UI/Panels/Config/ConfigRefPanel.cs index 686da61a9..2c7f633c3 100644 --- a/UI/Panels/Config/ConfigRefPanel.cs +++ b/UI/Panels/Config/ConfigRefPanel.cs @@ -1,20 +1,17 @@ -using System; +using MobiFlight.Base; +using MobiFlight.Config; +using MobiFlight.UI.Dialogs; +using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; using System.Data; using System.Linq; -using System.Text; using System.Windows.Forms; -using MobiFlight.Base; -using MobiFlight.Config; -using MobiFlight.UI.Dialogs; namespace MobiFlight.UI.Panels.Config { public partial class ConfigRefPanel : UserControl { - DataView dv; + List outputConfigs; // static byte MAX_CONFIG_REFS = 8; static string[] CONFIG_REFS_PLACEHOLDER = { "#", "!", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M" }; @@ -24,31 +21,27 @@ public ConfigRefPanel() } - public void SetConfigRefsDataView(DataView dv, String filterGuid) + public void SetConfigRefsDataView(List outputConfigs, String filterGuid) { - this.dv = dv; - dv.RowFilter = "guid <> '" + filterGuid + "'"; + this.outputConfigs = outputConfigs.Where(c => c.GUID != filterGuid).ToList(); // don't show the panel as long as we have no configs for reference - noConfigRefsPanel.Visible = (dv.Count == 0); - + noConfigRefsPanel.Visible = (outputConfigs.Count == 0); // disable the button in case there are no more configs to add as reference - addReferenceButton.Enabled = (dv.Count> 0); + addReferenceButton.Enabled = (outputConfigs.Count > 0); } internal void syncFromConfig(IConfigRefConfigItem config) { configRefItemPanel.Controls.Clear(); - DataView defaultView = dv.Table.DefaultView; foreach (ConfigRef configRef in config.ConfigRefs) { - defaultView.RowFilter = "guid = '" + configRef.Ref + "'"; - if (defaultView.Count == 0) continue; + if (outputConfigs.Where(c => c.GUID == configRef.Ref).ToList().Count == 0) continue; - ConfigRefPanelItem p = new ConfigRefPanelItem(); - p.SetDataView(dv); + ConfigRefPanelItem p = new ConfigRefPanelItem(); + p.SetDataView(outputConfigs); p.syncFromConfig(configRef); p.ConfigRemoved += P_ConfigRemoved; @@ -75,7 +68,7 @@ internal IConfigRefConfigItem syncToConfig(IConfigRefConfigItem config) private void addReferenceButton_Click(object sender, EventArgs e) { - if (configRefItemPanel.Controls.Count >= dv.Count) + if (configRefItemPanel.Controls.Count >= outputConfigs.Count) { String msg = i18n._tr("uiMessageNoMoreConfigReferenceAvailable"); TimeoutMessageDialog.Show(msg, i18n._tr("Hint"), MessageBoxButtons.OK, MessageBoxIcon.Warning); @@ -85,7 +78,7 @@ private void addReferenceButton_Click(object sender, EventArgs e) ConfigRefPanelItem p = new ConfigRefPanelItem(); p.SetPlaceholder(FindAvailablePlaceholder()); - p.SetDataView(dv); + p.SetDataView(outputConfigs); p.configRefComboBox.SelectedIndex = configRefItemPanel.Controls.Count; p.ConfigRemoved += P_ConfigRemoved; @@ -104,13 +97,13 @@ private String FindAvailablePlaceholder() String result = ""; List usedPlaceholder = new List(); - foreach(var cfgRefPanel in configRefItemPanel.Controls) + foreach (var cfgRefPanel in configRefItemPanel.Controls) { ConfigRef configRef = new ConfigRef(); (cfgRefPanel as ConfigRefPanelItem).syncToConfig(configRef); usedPlaceholder.Add(configRef.Placeholder); } - foreach(var ph in CONFIG_REFS_PLACEHOLDER) + foreach (var ph in CONFIG_REFS_PLACEHOLDER) { if (usedPlaceholder.Contains(ph)) continue; result = ph; diff --git a/UI/Panels/Config/ConfigRefPanelItem.cs b/UI/Panels/Config/ConfigRefPanelItem.cs index 1db9ecbd7..ca92cf6eb 100644 --- a/UI/Panels/Config/ConfigRefPanelItem.cs +++ b/UI/Panels/Config/ConfigRefPanelItem.cs @@ -20,11 +20,11 @@ public ConfigRefPanelItem() checkBoxUse.Checked = true; } - public void SetDataView(DataView dv) + public void SetDataView(List outputConfigs) { - configRefComboBox.DataSource = dv; - configRefComboBox.ValueMember = "guid"; - configRefComboBox.DisplayMember = "description"; + configRefComboBox.DataSource = outputConfigs; + configRefComboBox.ValueMember = "GUID"; + configRefComboBox.DisplayMember = "Name"; } public void SetPlaceholder (String placeholder) diff --git a/UI/Panels/Config/FsuipcConfigPanel.cs b/UI/Panels/Config/FsuipcConfigPanel.cs index 9645a1a56..43704718f 100644 --- a/UI/Panels/Config/FsuipcConfigPanel.cs +++ b/UI/Panels/Config/FsuipcConfigPanel.cs @@ -1,10 +1,15 @@ -using MobiFlight.InputConfig; +using FSUIPC; +using MobiFlight.Base; +using MobiFlight.InputConfig; +using MobiFlight.OutputConfig; using MobiFlight.UI.Forms; +using SharpDX.Multimedia; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; namespace MobiFlight.UI.Panels.Config { @@ -267,35 +272,40 @@ public void syncFromConfig(object config) } } - internal void syncToConfig(IFsuipcConfigItem config) + internal void syncToConfig(OutputConfigItem config) { - config.FSUIPC.Offset = Int32.Parse(fsuipcOffsetTextBox.Text.Replace("0x", "").ToLower(), System.Globalization.NumberStyles.HexNumber); - config.FSUIPC.OffsetType = (FSUIPCOffsetType)Enum.Parse(typeof(FSUIPCOffsetType), ((ListItem)(fsuipcOffsetTypeComboBox.SelectedItem)).Value); - - - if (config.FSUIPC.OffsetType != FSUIPCOffsetType.String) + config.Source = new FsuipcSource(); + SyncOffsetToConfig((config.Source as FsuipcSource).FSUIPC); + transformOptionsGroup1.syncToConfig(config); + } + + internal void SyncOffsetToConfig(FsuipcOffset offset) + { + + offset.Offset = Int32.Parse(fsuipcOffsetTextBox.Text.Replace("0x", "").ToLower(), System.Globalization.NumberStyles.HexNumber); + offset.OffsetType = (FSUIPCOffsetType)Enum.Parse(typeof(FSUIPCOffsetType), ((ListItem)(fsuipcOffsetTypeComboBox.SelectedItem)).Value); + + if (offset.OffsetType != FSUIPCOffsetType.String) { // the mask has only meaning for values other than strings - config.FSUIPC.Mask = Int64.Parse(fsuipcMaskTextBox.Text.Replace("0x", "").ToLower(), System.Globalization.NumberStyles.HexNumber); - config.FSUIPC.Size = Byte.Parse(fsuipcSizeComboBox.Text); - - } + offset.Mask = Int64.Parse(fsuipcMaskTextBox.Text.Replace("0x", "").ToLower(), System.Globalization.NumberStyles.HexNumber); + offset.Size = Byte.Parse(fsuipcSizeComboBox.Text); + } else { // by default we set the string length to 255 // because we don't offer an option for the string length yet - config.FSUIPC.Size = 255; + offset.Size = 255; } - config.FSUIPC.BcdMode = fsuipcBcdModeCheckBox.Checked; - transformOptionsGroup1.syncToConfig(config); + offset.BcdMode = fsuipcBcdModeCheckBox.Checked; } public InputConfig.InputAction ToConfig() { FsuipcOffsetInputAction config = new FsuipcOffsetInputAction(); - syncToConfig(config); - + SyncOffsetToConfig(config.FSUIPC); + transformOptionsGroup1.syncToConfig(config); return config; } diff --git a/UI/Panels/Config/HubHopPresetPanel.cs b/UI/Panels/Config/HubHopPresetPanel.cs index 947cc3afe..7d7c59607 100644 --- a/UI/Panels/Config/HubHopPresetPanel.cs +++ b/UI/Panels/Config/HubHopPresetPanel.cs @@ -3,6 +3,7 @@ using MobiFlight.InputConfig; using MobiFlight.OutputConfig; using MobiFlight.UI.Forms; +using MobiFlight.xplane; using System; using System.Collections.Generic; using System.Diagnostics; @@ -213,20 +214,26 @@ private void _loadPresets() internal void syncToConfig(OutputConfigItem config) { - config.XplaneDataRef = new xplane.XplaneDataRef(); - config.SimConnectValue = new SimConnectValue(); - if (FlightSimType==FlightSimType.MSFS2020) { - config.SimConnectValue.VarType = SimConnectVarType.CODE; - Msfs2020HubhopPreset selectedPreset = (PresetComboBox.Items[PresetComboBox.SelectedIndex] as Msfs2020HubhopPreset); - - config.SimConnectValue.UUID = selectedPreset?.id; - config.SimConnectValue.Value = SimVarNameTextBox.Text.ToLF(); - } else if (FlightSimType == FlightSimType.XPLANE) + config.Source = new SimConnectSource() { + SimConnectValue = new SimConnectValue() + { + UUID = selectedPreset?.id, + VarType = SimConnectVarType.CODE, + Value = SimVarNameTextBox.Text.ToLF(), + } + }; + } else + if (FlightSimType == FlightSimType.XPLANE) { - config.XplaneDataRef.Path = SimVarNameTextBox.Text.Trim(); + config.Source = new XplaneSource() { + XplaneDataRef = new XplaneDataRef() + { + Path = SimVarNameTextBox.Text.Trim() + } + }; } } @@ -271,7 +278,10 @@ internal void syncFromConfig(OutputConfigItem config) internal void syncFromConfigXplane(OutputConfigItem config) { - var VariableValue = config.XplaneDataRef.Path?.Trim(); + if (!(config.Source is XplaneSource)) return; + var source = (config.Source as XplaneSource); + + var VariableValue = source.XplaneDataRef.Path?.Trim(); // Restore the code if (VariableValue != "") @@ -289,22 +299,25 @@ internal void syncFromConfigXplane(OutputConfigItem config) internal void syncFromConfigMSFS(OutputConfigItem config) { - var VariableValue = config.SimConnectValue.Value; + var source = (config.Source as SimConnectSource); + if (source == null) return; + + var VariableValue = source.SimConnectValue.Value; // Restore the code - if (config.SimConnectValue.Value != "") { + if (source.SimConnectValue.Value != "") { SimVarNameTextBox.TextChanged -= SimVarNameTextBox_TextChanged; - SimVarNameTextBox.Text = config.SimConnectValue.Value.ToCRLF(); + SimVarNameTextBox.Text = source.SimConnectValue.Value.ToCRLF(); SimVarNameTextBox.TextChanged += SimVarNameTextBox_TextChanged; } - if (config.SimConnectValue.UUID!=null) { + if (source.SimConnectValue.UUID!=null) { // Try to find the preset by UUID Msfs2020HubhopPreset OriginalPreset = - PresetList.FindByUUID(Mode == HubHopPanelMode.Input ? HubHopType.AllInputs : HubHopType.Output, config.SimConnectValue.UUID); + PresetList.FindByUUID(Mode == HubHopPanelMode.Input ? HubHopType.AllInputs : HubHopType.Output, source.SimConnectValue.UUID); if (OriginalPreset != null) { - String Code = Regex.Replace(config.SimConnectValue.Value, @":\d+", ":index"); + String Code = Regex.Replace(source.SimConnectValue.Value, @":\d+", ":index"); // Code was modified by user after // originally using a preset as template @@ -318,7 +331,7 @@ internal void syncFromConfigMSFS(OutputConfigItem config) // Try to find the original preset and // initialize comboboxes accordingly - String OriginalCode = config.SimConnectValue.Value; + String OriginalCode = source.SimConnectValue.Value; TryToSelectOriginalPresetFromCode(OriginalCode); } diff --git a/UI/Panels/Config/PreconditionPanel.cs b/UI/Panels/Config/PreconditionPanel.cs index fe66f3bc7..f75a0fc07 100644 --- a/UI/Panels/Config/PreconditionPanel.cs +++ b/UI/Panels/Config/PreconditionPanel.cs @@ -176,7 +176,7 @@ public void SetModules(List ModuleList) preconditionPinSerialComboBox.SelectedIndex = 0; } - public bool syncFromConfig(IBaseConfigItem config) + public bool syncFromConfig(ConfigItem config) { // Until with have the preconditions completely refactored, // add an empty precondition in case the current cfg doesn't have one @@ -202,7 +202,7 @@ public bool syncFromConfig(IBaseConfigItem config) return true; } - public bool syncToConfig(IBaseConfigItem config) + public bool syncToConfig(ConfigItem config) { config.Preconditions = Preconditions; return true; diff --git a/UI/Panels/Config/TransformOptionsGroup.cs b/UI/Panels/Config/TransformOptionsGroup.cs index a0815a51b..720cfe967 100644 --- a/UI/Panels/Config/TransformOptionsGroup.cs +++ b/UI/Panels/Config/TransformOptionsGroup.cs @@ -1,4 +1,6 @@ -using System; +using MobiFlight.Base; +using MobiFlight.InputConfig; +using System; using System.Windows.Forms; namespace MobiFlight.UI.Panels.Config @@ -51,12 +53,12 @@ internal void syncFromConfig(IFsuipcConfigItem config) fsuipcValueTextBox.Text = config.Value; } - internal void syncToConfig(OutputConfigItem config) + internal void syncToConfig(IConfigItem config) { config.Value = fsuipcValueTextBox.Text; } - internal void syncToConfig(IFsuipcConfigItem config) + internal void syncToConfig(FsuipcOffsetInputAction config) { config.Value = fsuipcValueTextBox.Text; } diff --git a/UI/Panels/Config/VariablePanel.cs b/UI/Panels/Config/VariablePanel.cs index ec87c179c..bcdb45367 100644 --- a/UI/Panels/Config/VariablePanel.cs +++ b/UI/Panels/Config/VariablePanel.cs @@ -1,4 +1,5 @@ -using System; +using MobiFlight.Base; +using System; using System.Collections.Generic; using System.Windows.Forms; @@ -51,21 +52,29 @@ internal void SetVariableReferences(Dictionary varia internal void syncToConfig(OutputConfigItem config) { - config.MobiFlightVariable.TYPE = TypeComboBox.SelectedValue.ToString(); - config.MobiFlightVariable.Name = NameTextBox.Text; + config.Source = new VariableSource() + { + MobiFlightVariable = new MobiFlightVariable() + { + Name = NameTextBox.Text, + TYPE = TypeComboBox.SelectedValue.ToString() + } + }; transformOptionsGroup1.syncToConfig(config); } internal void syncFromConfig(OutputConfigItem config) { + if (!(config.Source is VariableSource)) return; + try { - TypeComboBox.SelectedValue = config.MobiFlightVariable.TYPE; + TypeComboBox.SelectedValue = (config.Source as VariableSource).MobiFlightVariable.TYPE; } catch (Exception) { TypeComboBox.SelectedValue = MobiFlightVariable.TYPE_NUMBER; } - NameTextBox.Text = config.MobiFlightVariable.Name; + NameTextBox.Text = (config.Source as VariableSource).MobiFlightVariable.Name; transformOptionsGroup1.syncFromConfig(config); } diff --git a/UI/Panels/FrontendPanel.Designer.cs b/UI/Panels/FrontendPanel.Designer.cs new file mode 100644 index 000000000..8497d059d --- /dev/null +++ b/UI/Panels/FrontendPanel.Designer.cs @@ -0,0 +1,63 @@ +namespace MobiFlight.UI.Panels +{ + partial class FrontendPanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.FrontendWebView = new ThreadSafeWebView2(); + ((System.ComponentModel.ISupportInitialize)(this.FrontendWebView)).BeginInit(); + this.SuspendLayout(); + // + // FrontendWebView + // + this.FrontendWebView.AllowExternalDrop = true; + this.FrontendWebView.CreationProperties = null; + this.FrontendWebView.DefaultBackgroundColor = System.Drawing.Color.White; + this.FrontendWebView.Dock = System.Windows.Forms.DockStyle.Fill; + this.FrontendWebView.Location = new System.Drawing.Point(0, 0); + this.FrontendWebView.Name = "FrontendWebView"; + this.FrontendWebView.Size = new System.Drawing.Size(864, 663); + this.FrontendWebView.TabIndex = 0; + this.FrontendWebView.ZoomFactor = 1D; + // + // FrontendPanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.FrontendWebView); + this.Name = "FrontendPanel"; + this.Size = new System.Drawing.Size(864, 663); + ((System.ComponentModel.ISupportInitialize)(this.FrontendWebView)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private ThreadSafeWebView2 FrontendWebView; + } +} diff --git a/UI/Panels/FrontendPanel.cs b/UI/Panels/FrontendPanel.cs new file mode 100644 index 000000000..3b466936f --- /dev/null +++ b/UI/Panels/FrontendPanel.cs @@ -0,0 +1,63 @@ +using Microsoft.Web.WebView2.Core; +using MobiFlight.BrowserMessages; +using MobiFlight.BrowserMessages.Publisher; +using System; +using System.Windows.Forms; + +namespace MobiFlight.UI.Panels +{ + public partial class FrontendPanel : UserControl + { + public new bool DesignMode + { + get + { + return (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"); + } + } + + public FrontendPanel() + { + InitializeComponent(); + if (!DesignMode) + InitializeAsync(); + } + + async void InitializeAsync() + { + if (Application.ExecutablePath.IndexOf("devenv.exe", StringComparison.OrdinalIgnoreCase) > -1) + { + //Design time, no init due to DllNotFound Exception of VisualStudio + } + else + { + await FrontendWebView.EnsureCoreWebView2Async(null); + } +#if DEBUG + FrontendWebView.Source = new Uri("http://localhost:5173/index.html"); +#else + FrontendWebView.CoreWebView2.SetVirtualHostNameToFolderMapping("mobiflight", + "frontend/dist", CoreWebView2HostResourceAccessKind.DenyCors); + FrontendWebView.CoreWebView2.Navigate("http://mobiflight/index.html"); + FrontendWebView.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false; + FrontendWebView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false; +#endif + FrontendWebView.CoreWebView2.Settings.IsWebMessageEnabled = true; + FrontendWebView.CoreWebView2.Settings.IsStatusBarEnabled = false; + FrontendWebView.CoreWebView2.WebMessageReceived += CoreWebView2_WebMessageReceived; + FrontendWebView.CoreWebView2.DOMContentLoaded += CoreWebView2_DOMContentLoaded; + + MessageExchange.Instance.SetPublisher(new PostMessagePublisher(FrontendWebView)); + } + + private void CoreWebView2_DOMContentLoaded(object sender, CoreWebView2DOMContentLoadedEventArgs e) + { + //var settings = new GlobalSettings(Properties.Settings.Default); + //MessageExchange.Instance.Publish(new Message(settings)); + } + + private void CoreWebView2_WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs e) + { + } + } +} diff --git a/UI/Panels/Output/DisplayBcdPanel.resx b/UI/Panels/FrontendPanel.resx similarity index 100% rename from UI/Panels/Output/DisplayBcdPanel.resx rename to UI/Panels/FrontendPanel.resx diff --git a/UI/Panels/InputConfigPanel.Designer.cs b/UI/Panels/InputConfigPanel.Designer.cs deleted file mode 100644 index e299d6978..000000000 --- a/UI/Panels/InputConfigPanel.Designer.cs +++ /dev/null @@ -1,321 +0,0 @@ -namespace MobiFlight.UI.Panels -{ - partial class InputConfigPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InputConfigPanel)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - this.inputsDataGridViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); - this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.duplicateInputsRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteInputsRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.dataSetInputs = new System.Data.DataSet(); - this.inputsDataTable = new System.Data.DataTable(); - this.inputsActiveDataColumn = new System.Data.DataColumn(); - this.inputsDescriptionDataColumn = new System.Data.DataColumn(); - this.inputsGuidDataColumn = new System.Data.DataColumn(); - this.inputsSettingsDataColumn = new System.Data.DataColumn(); - this.inputNameDataColumn = new System.Data.DataColumn(); - this.inputTypeDataColumn = new System.Data.DataColumn(); - this.moduleSerialDataColumn = new System.Data.DataColumn(); - this.inputsDataGridView = new System.Windows.Forms.DataGridView(); - this.inputActive = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.inputDescription = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.inputsGuid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.moduleSerial = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.inputName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.inputType = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.inputEditButtonColumn = new System.Windows.Forms.DataGridViewButtonColumn(); - this.inputsDataGridViewContextMenuStrip.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataSetInputs)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.inputsDataTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.inputsDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // inputsDataGridViewContextMenuStrip - // - this.inputsDataGridViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyToolStripMenuItem, - this.pasteToolStripMenuItem, - this.toolStripMenuItem1, - this.duplicateInputsRowToolStripMenuItem, - this.deleteInputsRowToolStripMenuItem}); - this.inputsDataGridViewContextMenuStrip.Name = "inputsDataGridViewContextMenuStrip"; - resources.ApplyResources(this.inputsDataGridViewContextMenuStrip, "inputsDataGridViewContextMenuStrip"); - this.inputsDataGridViewContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.inputsDataGridViewContextMenuStrip_Opening); - // - // copyToolStripMenuItem - // - this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; - resources.ApplyResources(this.copyToolStripMenuItem, "copyToolStripMenuItem"); - this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); - // - // pasteToolStripMenuItem - // - this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; - resources.ApplyResources(this.pasteToolStripMenuItem, "pasteToolStripMenuItem"); - this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1"); - // - // duplicateInputsRowToolStripMenuItem - // - this.duplicateInputsRowToolStripMenuItem.Name = "duplicateInputsRowToolStripMenuItem"; - resources.ApplyResources(this.duplicateInputsRowToolStripMenuItem, "duplicateInputsRowToolStripMenuItem"); - this.duplicateInputsRowToolStripMenuItem.Click += new System.EventHandler(this.duplicateInputsRowToolStripMenuItem_Click); - // - // deleteInputsRowToolStripMenuItem - // - this.deleteInputsRowToolStripMenuItem.Name = "deleteInputsRowToolStripMenuItem"; - resources.ApplyResources(this.deleteInputsRowToolStripMenuItem, "deleteInputsRowToolStripMenuItem"); - this.deleteInputsRowToolStripMenuItem.Click += new System.EventHandler(this.deleteInputsRowToolStripMenuItem_Click); - // - // dataSetInputs - // - this.dataSetInputs.DataSetName = "inputs"; - this.dataSetInputs.Tables.AddRange(new System.Data.DataTable[] { - this.inputsDataTable}); - // - // inputsDataTable - // - this.inputsDataTable.Columns.AddRange(new System.Data.DataColumn[] { - this.inputsActiveDataColumn, - this.inputsDescriptionDataColumn, - this.inputsGuidDataColumn, - this.inputsSettingsDataColumn, - this.inputNameDataColumn, - this.inputTypeDataColumn, - this.moduleSerialDataColumn}); - this.inputsDataTable.TableName = "config"; - this.inputsDataTable.RowChanged += new System.Data.DataRowChangeEventHandler(this.configDataTable_RowChanged_1); - this.inputsDataTable.TableNewRow += new System.Data.DataTableNewRowEventHandler(this.configDataTable_TableNewRow); - // - // inputsActiveDataColumn - // - this.inputsActiveDataColumn.Caption = "Active"; - this.inputsActiveDataColumn.ColumnName = "active"; - this.inputsActiveDataColumn.DataType = typeof(bool); - this.inputsActiveDataColumn.DefaultValue = true; - // - // inputsDescriptionDataColumn - // - this.inputsDescriptionDataColumn.AllowDBNull = false; - this.inputsDescriptionDataColumn.Caption = "Description"; - this.inputsDescriptionDataColumn.ColumnName = "description"; - this.inputsDescriptionDataColumn.DefaultValue = ""; - // - // inputsGuidDataColumn - // - this.inputsGuidDataColumn.ColumnMapping = System.Data.MappingType.Attribute; - this.inputsGuidDataColumn.ColumnName = "guid"; - this.inputsGuidDataColumn.DataType = typeof(System.Guid); - // - // inputsSettingsDataColumn - // - this.inputsSettingsDataColumn.ColumnName = "settings"; - this.inputsSettingsDataColumn.DataType = typeof(object); - // - // inputNameDataColumn - // - this.inputNameDataColumn.ColumnMapping = System.Data.MappingType.Hidden; - this.inputNameDataColumn.ColumnName = "inputName"; - // - // inputTypeDataColumn - // - this.inputTypeDataColumn.ColumnMapping = System.Data.MappingType.Hidden; - this.inputTypeDataColumn.ColumnName = "inputType"; - // - // moduleSerialDataColumn - // - this.moduleSerialDataColumn.ColumnMapping = System.Data.MappingType.Hidden; - this.moduleSerialDataColumn.ColumnName = "moduleSerial"; - // - // inputsDataGridView - // - this.inputsDataGridView.AllowDrop = true; - this.inputsDataGridView.AllowUserToResizeRows = false; - this.inputsDataGridView.AutoGenerateColumns = false; - this.inputsDataGridView.BackgroundColor = System.Drawing.SystemColors.Window; - this.inputsDataGridView.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable; - resources.ApplyResources(this.inputsDataGridView, "inputsDataGridView"); - this.inputsDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; - this.inputsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.inputActive, - this.inputDescription, - this.inputsGuid, - this.moduleSerial, - this.inputName, - this.inputType, - this.inputEditButtonColumn}); - this.inputsDataGridView.ContextMenuStrip = this.inputsDataGridViewContextMenuStrip; - this.inputsDataGridView.DataMember = "config"; - this.inputsDataGridView.DataSource = this.dataSetInputs; - this.inputsDataGridView.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; - this.inputsDataGridView.Name = "inputsDataGridView"; - this.inputsDataGridView.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(0, 1, 0, 1); - this.inputsDataGridView.RowTemplate.Height = 26; - this.inputsDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.inputsDataGridView.ShowEditingIcon = false; - this.inputsDataGridView.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.inputsDataGridView_CellBeginEdit); - this.inputsDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputsDataGridView_CellContentClick); - this.inputsDataGridView.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputsDataGridView_CellContentDoubleClick); - this.inputsDataGridView.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputsDataGridView_CellEndEdit); - this.inputsDataGridView.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputsDataGridView_CellEnter); - this.inputsDataGridView.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.inputsDataGridView_CellMouseDown); - this.inputsDataGridView.DataBindingComplete += new System.Windows.Forms.DataGridViewBindingCompleteEventHandler(this.inputsDataGridView_DataBindingComplete); - this.inputsDataGridView.DefaultValuesNeeded += new System.Windows.Forms.DataGridViewRowEventHandler(this.inputsDataGridViewConfig_DefaultValuesNeeded); - this.inputsDataGridView.Sorted += new System.EventHandler(this.inputsDataGridView_Sorted); - this.inputsDataGridView.DragDrop += new System.Windows.Forms.DragEventHandler(this.inputsDataGridView_DragDrop); - this.inputsDataGridView.DragOver += new System.Windows.Forms.DragEventHandler(this.inputsDataGridView_DragOver); - this.inputsDataGridView.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.inputsDataGridView_GiveFeedback); - this.inputsDataGridView.QueryContinueDrag += new System.Windows.Forms.QueryContinueDragEventHandler(this.inputsDataGridView_QueryContinueDrag); - this.inputsDataGridView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridViewConfig_KeyUp); - this.inputsDataGridView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.inputsDataGridView_MouseDown); - this.inputsDataGridView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.inputsDataGridView_MouseMove); - // - // inputActive - // - this.inputActive.DataPropertyName = "active"; - resources.ApplyResources(this.inputActive, "inputActive"); - this.inputActive.Name = "inputActive"; - this.inputActive.Resizable = System.Windows.Forms.DataGridViewTriState.False; - // - // inputDescription - // - this.inputDescription.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.inputDescription.DataPropertyName = "description"; - this.inputDescription.FillWeight = 1000F; - resources.ApplyResources(this.inputDescription, "inputDescription"); - this.inputDescription.Name = "inputDescription"; - // - // inputsGuid - // - this.inputsGuid.DataPropertyName = "guid"; - resources.ApplyResources(this.inputsGuid, "inputsGuid"); - this.inputsGuid.Name = "inputsGuid"; - this.inputsGuid.ReadOnly = true; - // - // moduleSerial - // - this.moduleSerial.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.moduleSerial.DataPropertyName = "moduleSerial"; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.ControlLight; - this.moduleSerial.DefaultCellStyle = dataGridViewCellStyle1; - this.moduleSerial.FillWeight = 150F; - resources.ApplyResources(this.moduleSerial, "moduleSerial"); - this.moduleSerial.Name = "moduleSerial"; - this.moduleSerial.ReadOnly = true; - this.moduleSerial.Resizable = System.Windows.Forms.DataGridViewTriState.True; - // - // inputName - // - this.inputName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.inputName.DataPropertyName = "inputName"; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ControlLight; - this.inputName.DefaultCellStyle = dataGridViewCellStyle2; - this.inputName.FillWeight = 150F; - resources.ApplyResources(this.inputName, "inputName"); - this.inputName.Name = "inputName"; - this.inputName.ReadOnly = true; - this.inputName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - // - // inputType - // - this.inputType.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.inputType.DataPropertyName = "inputType"; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ControlLight; - this.inputType.DefaultCellStyle = dataGridViewCellStyle3; - this.inputType.FillWeight = 150F; - resources.ApplyResources(this.inputType, "inputType"); - this.inputType.Name = "inputType"; - this.inputType.ReadOnly = true; - // - // inputEditButtonColumn - // - this.inputEditButtonColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.ControlLight; - dataGridViewCellStyle4.NullValue = "..."; - this.inputEditButtonColumn.DefaultCellStyle = dataGridViewCellStyle4; - resources.ApplyResources(this.inputEditButtonColumn, "inputEditButtonColumn"); - this.inputEditButtonColumn.Name = "inputEditButtonColumn"; - this.inputEditButtonColumn.Resizable = System.Windows.Forms.DataGridViewTriState.False; - this.inputEditButtonColumn.Text = "..."; - this.inputEditButtonColumn.UseColumnTextForButtonValue = true; - // - // InputConfigPanel - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.inputsDataGridView); - this.DoubleBuffered = true; - this.Name = "InputConfigPanel"; - this.inputsDataGridViewContextMenuStrip.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dataSetInputs)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.inputsDataTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.inputsDataGridView)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ContextMenuStrip inputsDataGridViewContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem duplicateInputsRowToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem deleteInputsRowToolStripMenuItem; - private System.Data.DataSet dataSetInputs; - private System.Data.DataTable inputsDataTable; - private System.Data.DataColumn inputsActiveDataColumn; - private System.Data.DataColumn inputsDescriptionDataColumn; - private System.Data.DataColumn inputsGuidDataColumn; - private System.Data.DataColumn inputsSettingsDataColumn; - private System.Windows.Forms.DataGridView inputsDataGridView; - private System.Data.DataColumn inputNameDataColumn; - private System.Data.DataColumn inputTypeDataColumn; - private System.Data.DataColumn moduleSerialDataColumn; - private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.DataGridViewCheckBoxColumn inputActive; - private System.Windows.Forms.DataGridViewTextBoxColumn inputDescription; - private System.Windows.Forms.DataGridViewTextBoxColumn inputsGuid; - private System.Windows.Forms.DataGridViewTextBoxColumn moduleSerial; - private System.Windows.Forms.DataGridViewTextBoxColumn inputName; - private System.Windows.Forms.DataGridViewTextBoxColumn inputType; - private System.Windows.Forms.DataGridViewButtonColumn inputEditButtonColumn; - } -} diff --git a/UI/Panels/InputConfigPanel.cs b/UI/Panels/InputConfigPanel.cs deleted file mode 100644 index 81347ebc1..000000000 --- a/UI/Panels/InputConfigPanel.cs +++ /dev/null @@ -1,951 +0,0 @@ -using MobiFlight.Base; -using MobiFlight.UI.Dialogs; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Windows.Forms; - -namespace MobiFlight.UI.Panels -{ - public partial class InputConfigPanel : UserControl - { - public event EventHandler SettingsChanged; - public event EventHandler SettingsDialogRequested; - - private int lastClickedRow = -1; - private List SelectedGuids = new List(); - - private Point DataGridTopLeftPoint = new Point(); - private Point DataGridBottomRightPoint = new Point(); - private Rectangle RectangleMouseDown; - private int RowIndexMouseDown; - private int RowCurrentDragHighlight = 0; - private int RowNeighbourDragHighlight = 0; - private bool IsInCurrentRowTopHalf; - private System.Windows.Forms.Timer DropTimer = new Timer(); - private Bitmap CurrentCursorBitmap; - private string LastSortingColumnName = string.Empty; - private SortOrder LastSortingOrder = SortOrder.None; - - private object[] EditedItem = null; - public ExecutionManager ExecutionManager { get; set; } - public DataSet OutputDataSetConfig { get; set; } - public DataSet InputDataSetConfig { get { return dataSetInputs; } } - public DataTable ConfigDataTable { get { return inputsDataTable; } } - public DataGridView DataGridViewConfig { get { return inputsDataGridView; } } - - public InputConfigPanel() - { - InitializeComponent(); - Init(); - } - - public DataGridView InputsDataGridView { get { return inputsDataGridView; } } - - void Init() - { - inputsDataGridView.DataMember = null; - inputsDataGridView.DataSource = inputsDataTable; - Helper.DoubleBufferedDGV(inputsDataGridView, true); - - inputsDataTable.RowChanged += new DataRowChangeEventHandler(configDataTable_RowChanged); - inputsDataTable.RowDeleted += new DataRowChangeEventHandler(configDataTable_RowChanged); - inputsDataTable.TableCleared += new DataTableClearEventHandler((o, a) => { SettingsChanged?.Invoke(this, null); }); - - inputsDataGridView.Columns["inputDescription"].DefaultCellStyle.NullValue = i18n._tr("uiLabelDoubleClickToAddConfig"); - inputsDataGridView.Columns["inputEditButtonColumn"].DefaultCellStyle.NullValue = "..."; - - DropTimer.Interval = 400; - DropTimer.Tick += DropTimer_Tick; - } - - private void _editConfigWithInputWizard(DataRow dataRow, InputConfigItem cfg, bool create) - { - // refactor!!! dependency to arcaze cache etc not nice - InputConfigWizard wizard = new InputConfigWizard( - ExecutionManager, - cfg, -#if ARCAZE - ExecutionManager.getModuleCache(), - ExecutionManager.getModuleCache().GetArcazeModuleSettings(), -#endif - OutputDataSetConfig, - dataRow["guid"].ToString(), - dataRow["description"].ToString() - ) - { - StartPosition = FormStartPosition.CenterParent - }; - - wizard.SettingsDialogRequested += new EventHandler(wizard_SettingsDialogRequested); - if (wizard.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - if (dataRow == null) return; - - if (wizard.ConfigHasChanged()) - { - // we have to update the config - // using the duplicated config - // that the user edited with the wizard - dataRow["settings"] = wizard.Config; - SettingsChanged?.Invoke(cfg, null); - RestoreValuesInGridView(); - } - }; - } - - void wizard_SettingsDialogRequested(object sender, EventArgs e) - { - //(sender as InputConfigWizard).Close(); - SettingsDialogRequested?.Invoke(sender, null); - - } - - /// - /// enables the save button in toolbar after the user has changed config data - /// - void configDataTable_RowChanged(object sender, DataRowChangeEventArgs e) - { - if (e.Action == DataRowAction.Add || - e.Action == DataRowAction.Delete) - SettingsChanged?.Invoke(sender, null); - } //configDataTable_RowChanged - - /// - /// click event when button in gridview gets clicked - /// - /// - /// - private void inputsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - // handle clicks on header cells or row-header cells - if (e.RowIndex < 0 || e.ColumnIndex < 0) return; - - switch (inputsDataGridView[e.ColumnIndex, e.RowIndex].OwningColumn.Name) - { - case "inputEditButtonColumn": - bool isNew = inputsDataGridView.Rows[e.RowIndex].IsNewRow; - if (isNew) - { - MessageBox.Show(i18n._tr("uiMessageConfigLineNotSavedYet"), - i18n._tr("Hint")); - return; - } //if - - InputConfigItem cfg; - bool create = false; - DataRow row = (inputsDataGridView.Rows[e.RowIndex].DataBoundItem as DataRowView)?.Row; - - if (row == null) - break; - - // the row had been saved but no config object has been created - // TODO: move this logic to an appropriate event, e.g. when leaving the gridrow focus of the new row - if (row["settings"].GetType() == typeof(System.DBNull)) - { - row["settings"] = new InputConfigItem(); - } - - cfg = row["settings"] as InputConfigItem; - - _editConfigWithInputWizard( - row, - cfg, - create); - - inputsDataGridView.EndEdit(); - break; - - case "inputActive": - // always end editing to store changes - inputsDataGridView.EndEdit(); - break; - } - } - - /// - /// when using tab in the grid view, the focus ignores readonly cell and jumps ahead to the next cell - /// - /// - /// - private void inputsDataGridView_CellEnter(object sender, DataGridViewCellEventArgs e) - { - if (inputsDataGridView[e.ColumnIndex, e.RowIndex].ReadOnly) - { - SendKeys.Send("{TAB}"); - } - } - - private void deleteInputsRowToolStripMenuItem_Click(object sender, EventArgs e) - { - // do somehting here - foreach (DataGridViewRow row in inputsDataGridView.SelectedRows) - { - // we cannot delete a row which hasn't been saved yet - if (row.IsNewRow) continue; - inputsDataGridView.Rows.Remove(row); - } - } - - private void inputsDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) - { - // handle clicks on header cells or row-header cells - if (e.RowIndex < 0 || e.ColumnIndex < 0) return; - - switch (inputsDataGridView[e.ColumnIndex, e.RowIndex].OwningColumn.Name) - { - case "inputDescription": - inputsDataGridView.CurrentCell = inputsDataGridView[e.ColumnIndex, e.RowIndex]; - inputsDataGridView.BeginEdit(true); - break; - } - } - - private void duplicateInputsRowToolStripMenuItem_Click(object sender, EventArgs e) - { - // this is called to ensure - // that all data has been stored in - // the data table - // otherwise there can occur strange inserts of new rows - // at the first position instead of the expected one - this.Validate(); - - // do somehting here - foreach (DataGridViewRow row in inputsDataGridView.SelectedRows) - { - // ignore new rows since they cannot be copied nor deleted - if (row.IsNewRow) continue; - - // get current config item - // duplicate it - // duplicate row - // link to new config item - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow == null) continue; - - DataRow newRow = inputsDataTable.NewRow(); - - foreach (DataColumn col in inputsDataTable.Columns) - { - newRow[col.ColumnName] = currentRow[col.ColumnName]; - } - - InputConfigItem cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as InputConfigItem); - if (cfg != null) - { - cfg = (cfg.Clone() as InputConfigItem); - } - else - { - cfg = new InputConfigItem(); - } - - newRow["description"] += " " + i18n._tr("suffixCopy"); - newRow["settings"] = cfg; - newRow["guid"] = Guid.NewGuid(); - - int currentPosition = inputsDataTable.Rows.IndexOf(currentRow); - if (currentPosition == -1) - { - currentPosition = 1; - } - - inputsDataTable.Rows.InsertAt(newRow, currentPosition + 1); - - row.Selected = false; - } - } - - /// - /// Is sorting in DataGridView active. - /// - public bool IsSortingActive() - { - return inputsDataGridView.SortOrder != SortOrder.None; - } - - /// - /// Reset sorting in DataGridView - /// - public void ResetSorting() - { - LastSortingColumnName = string.Empty; - LastSortingOrder = SortOrder.None; - inputsDataTable.DefaultView.Sort = string.Empty; - } - - private void inputsDataGridView_Sorted(object sender, EventArgs e) - { - if (IsSortingActive()) - { - string name = inputsDataGridView.SortedColumn.Name; - // It is always (Ascending) -> (Descending) -> (Ascending) - // Reset sorting after previous Descending - if (LastSortingColumnName == name && LastSortingOrder == SortOrder.Descending) - { - ResetSorting(); - } - else - { - // Store current sorting - LastSortingColumnName = name; - LastSortingOrder = InputsDataGridView.SortOrder; - } - } - } - - private void inputsDataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) - { - if (e.ListChangedType == ListChangedType.Reset) - { - inputsDataGridView.ClearSelection(); // necessary because on sorting reset, callback is called twice - foreach (DataGridViewRow row in (sender as DataGridView).Rows) - { - if (row.DataBoundItem as DataRowView == null) continue; - - DataRow currentRow = (row.DataBoundItem as DataRowView).Row; - String guid = currentRow["guid"].ToString(); - - if (SelectedGuids.Contains(guid)) - row.Selected = true; - } - } - } - - - private void dataGridViewConfig_KeyUp(object sender, KeyEventArgs e) - { - DataGridView dgv = (sender as DataGridView); - int cellIndex = 2; - if (dgv.Name == inputsDataGridView.Name) cellIndex = 1; - - // do something - // toggle active if current key is a simple character - if (e.KeyCode.ToString().Length == 1 && !e.Control) - { - - // handle clicks on header cells or row-header cells - // Issue 1863: Check for null (nothing in the grid) so there's no crash - if (dgv.CurrentRow == null || dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - dgv.CurrentCell = dgv[cellIndex, dgv.CurrentRow.Index]; - - if (!dgv.CurrentRow.Cells[cellIndex].IsInEditMode) - { - dgv.BeginEdit(true); - if (e.KeyCode != Keys.F2) - { - (dgv.EditingControl as TextBox).Text = (e.Shift || Control.IsKeyLocked(Keys.CapsLock)) ? e.KeyCode.ToString() : e.KeyCode.ToString().ToLower(); - (dgv.EditingControl as TextBox).Select(1, 0); - } - } - return; - } - // un/check all rows if key is a space - else if (e.KeyCode == Keys.Space) - { - e.SuppressKeyPress = true; - - bool isChecked = false; - if ((sender as DataGridView).SelectedRows.Count == 0) return; - - // it is assumed that the first cell is the one with the checkbox - isChecked = Boolean.Parse((sender as DataGridView).SelectedRows[0].Cells[0].Value.ToString()); - - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - row.Cells[0].Value = !isChecked; - } - - dgv.RefreshEdit(); - SettingsChanged?.Invoke(sender, null); - } - else if (e.KeyCode == Keys.Return) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - e.Handled = true; - e.SuppressKeyPress = true; - - if (!dgv.CurrentRow.Cells[cellIndex].IsInEditMode) - { - if (dgv.Name == inputsDataGridView.Name) - { - dgv.CurrentCell = dgv[cellIndex, dgv.CurrentRow.Index]; - - InputConfigItem cfg; - DataRow row = null; - bool create = false; - - if (inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem == null) - { - return; - } - - row = (inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row; - - // the row had been saved but no config object has been created - // TODO: move this logic to an appropriate event, e.g. when leaving the gridrow focus of the new row - if (row["settings"].GetType() == typeof(System.DBNull)) - { - row["settings"] = new InputConfigItem(); - } - - cfg = row["settings"] as InputConfigItem; - - _editConfigWithInputWizard( - row, - cfg, - create); - inputsDataGridView.EndEdit(); - } - } - } - else if (e.KeyCode == Keys.V && e.Control) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - int index = dgv.CurrentRow.Index; - - PasteFromClipboard(index+1); - } - - else if (e.KeyCode == Keys.C && e.Control) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - if ((inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView)?.Row["description"] != null) - { - bool Active = (bool)(inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["active"]; - String Description = (inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["description"].ToString(); - InputConfigItem cfg = ((inputsDataGridView.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["settings"] as InputConfigItem); - CopyToClipboard(Active, Description, cfg); - } - } - else - { - // do nothing - } - } - - - private void inputsDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) - { - inputsDataGridView_CellContentClick(sender, e); - } - - private void inputsDataGridViewConfig_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) - { - e.Row.Cells["inputsGuid"].Value = Guid.NewGuid(); - } - - private void configDataTable_TableNewRow(object sender, DataTableNewRowEventArgs e) - { - e.Row["guid"] = Guid.NewGuid(); - } - - private void configDataTable_RowChanged_1(object sender, DataRowChangeEventArgs e) - { - if (e.Row["guid"] == DBNull.Value) - e.Row["guid"] = Guid.NewGuid(); - } - - private void ActivateAutoColumnWidth() - { - inputsDataGridView.Columns["moduleSerial"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - inputsDataGridView.Columns["inputName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - inputsDataGridView.Columns["inputType"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - } - - private void DeactivateAutoColumnWidth() - { - inputsDataGridView.Columns["moduleSerial"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - inputsDataGridView.Columns["inputName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - inputsDataGridView.Columns["inputType"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; - } - - /// - /// use the settings from the config object and initialize the grid cells - /// this is needed after loading and saving configs - /// - public void RestoreValuesInGridView() - { - // Needed for performance reasons - DeactivateAutoColumnWidth(); - foreach (DataRow row in ConfigDataTable.Rows) - { - InputConfigItem cfg = row["settings"] as InputConfigItem; - row["inputName"] = "-"; - row["inputType"] = "-"; - row["moduleSerial"] = "-"; - - if (cfg != null) - { - if (cfg.ModuleSerial == null) continue; - var serialNumber = SerialNumber.ExtractSerial(cfg.ModuleSerial); - var moduleName = SerialNumber.ExtractDeviceName(cfg.ModuleSerial); - row["moduleSerial"] = moduleName; - - if (cfg.Name=="") continue; - - // Input shift registers show their name in the grid as the shifter name + configured pin for clarity. - if (cfg.Type == InputConfigItem.TYPE_INPUT_SHIFT_REGISTER) - { - row["inputName"] = $"{cfg.Name}:{cfg.inputShiftRegister.ExtPin}"; - } - else if (cfg.Type == InputConfigItem.TYPE_INPUT_MULTIPLEXER) { - row["inputName"] = $"{cfg.Name}:{cfg.inputMultiplexer?.DataPin}"; - } - else if (Joystick.IsJoystickSerial(cfg.ModuleSerial)) { - var j = ExecutionManager.GetJoystickManager().GetJoystickBySerial(serialNumber); - if (j != null) - { - row["inputName"] = j.MapDeviceNameToLabel(cfg.Name); - } else - { - row["inputName"] = cfg.Name; - } - } - else if (MidiBoard.IsMidiBoardSerial(cfg.ModuleSerial)) { - // Map not by board instance, but by midiboard type. Works also when board is not connected. - row["inputName"] = ExecutionManager.GetMidiBoardManager().MapDeviceNameToLabel(moduleName, cfg.Name); - } - else - { - row["inputName"] = cfg.Name; - } - row["inputType"] = cfg.Type; - } - } - ActivateAutoColumnWidth(); - } //_restoreValuesInGridView() - - private void inputsDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) - { - DataGridViewRow gridrow = inputsDataGridView.Rows[e.RowIndex]; - DataRowView rowview = (DataRowView)gridrow.DataBoundItem; - - // can be null on creating a new config (last line) - if (rowview == null) return; - - DataRow row = rowview.Row; - if (row.RowState==DataRowState.Detached) - row.Table.Rows.Add(row); - - if (EditedItem != null && - ( // this is the checkbox - (bool)row.ItemArray[0] != (bool)EditedItem[0] || - // this is the description text - row.ItemArray[1] as string != EditedItem[1] as string - ) - ) - { - SettingsChanged?.Invoke(sender, null); - } - } - - private void inputsDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) - { - DataGridViewRow gridrow = inputsDataGridView.Rows[e.RowIndex]; - DataRowView rowview = (DataRowView)gridrow.DataBoundItem; - - // can be null on creating a new config (last line) - if (rowview == null) return; - - if (rowview.Row.ItemArray != null) - EditedItem = rowview.Row.ItemArray; - } - - private void dataGridViewConfig_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) - { - e.Control.ContextMenu = new ContextMenu(); - //e.Control.ContextMenuStrip = inputsDataGridViewContextMenuStrip; - } - - private void copyToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in inputsDataGridView.SelectedRows) - { - // ignore new rows since they cannot be copied nor deleted - if (row.IsNewRow) continue; - - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow == null) continue; - - bool Active = (bool) currentRow["active"]; - String Description = currentRow["description"] as String; - InputConfigItem cfg = currentRow["settings"] as InputConfigItem; - CopyToClipboard(Active, Description, cfg); - return; - } - } - - private void pasteToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in inputsDataGridView.SelectedRows) - { - int index = row.Index; - PasteFromClipboard(index+1); - return; - } - } - - private static void CopyToClipboard(bool Active, string Description, InputConfigItem cfg) - { - System.Windows.Forms.Clipboard.SetText(Description); - Clipboard.Instance.InputConfigActive = Active; - Clipboard.Instance.InputConfigName = Description; - - if (cfg != null) - { - Clipboard.Instance.InputConfigItem = cfg; - } - } - - private void PasteFromClipboard(int index) - { - this.Validate(); - DataRow currentRow = inputsDataTable.NewRow(); - currentRow["guid"] = Guid.NewGuid(); - currentRow["active"] = Clipboard.Instance.InputConfigActive; - - if (Clipboard.Instance.InputConfigName != null) - { - currentRow["description"] = Clipboard.Instance.InputConfigName.Clone() as String; - currentRow["description"] += $" ({i18n._tr("suffixCopy")})"; - } - - if (Clipboard.Instance.InputConfigItem != null) - { - InputConfigItem cfg = Clipboard.Instance.InputConfigItem.Clone() as InputConfigItem; - currentRow["settings"] = cfg; - } - - if (currentRow.RowState == DataRowState.Detached) - { - inputsDataTable.Rows.InsertAt(currentRow, index); - } - - RestoreValuesInGridView(); - } - - private void inputsDataGridViewContextMenuStrip_Opening(object sender, CancelEventArgs e) - { - bool isNotLastRow = (lastClickedRow != inputsDataGridView.Rows.Count - 1); - copyToolStripMenuItem.Enabled = isNotLastRow; - pasteToolStripMenuItem.Enabled = Clipboard.Instance.InputConfigItem != null; - duplicateInputsRowToolStripMenuItem.Enabled = isNotLastRow; - deleteInputsRowToolStripMenuItem.Enabled = isNotLastRow; - } - - private void inputsDataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) - { - lastClickedRow = e.RowIndex; - - if (e.Button == MouseButtons.Right) - { - if (inputsDataGridView.IsCurrentCellInEditMode) return; - - inputsDataGridView.EndEdit(); - - if (e.RowIndex != -1) - { - if (!(sender as DataGridView).Rows[e.RowIndex].Selected) - { - // reset all rows since we are not right clicking on a currently - // selected one - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - row.Selected = false; - } - } - - // the current one becomes selected in any case - (sender as DataGridView).Rows[e.RowIndex].Selected = true; - } - } - else - { - if (e.RowIndex == -1) - { - // we know that we have clicked on the header area for sorting - SelectedGuids.Clear(); - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow != null) - SelectedGuids.Add(currentRow["guid"].ToString()); - } - } - } - } - - internal List GetConfigItems() - { - List result = new List(); - - foreach (DataRow row in ConfigDataTable.Rows) - { - InputConfigItem cfg = row["settings"] as InputConfigItem; - result.Add(cfg); - } - - return result; - } - - private void ChangeRowBackgroundColor(int rowIndex, Color color) - { - if (rowIndex > -1) - { - foreach (DataGridViewCell cell in inputsDataGridView.Rows[rowIndex].Cells) - { - cell.Style.BackColor = color; - cell.Style.Padding = new Padding(0, 0, 0, 0); - } - } - } - - private void AdjustDragTargetHighlight(int rowIndex) - { - var color = Color.LightBlue; - if (RowCurrentDragHighlight != rowIndex) - { - ChangeRowBackgroundColor(RowCurrentDragHighlight, Color.Empty); - RowCurrentDragHighlight = rowIndex; - ChangeRowBackgroundColor(RowCurrentDragHighlight, color); - } - - if (rowIndex > 0 && rowIndex < (inputsDataGridView.Rows.Count - 1)) - { - int neighbourRow = IsInCurrentRowTopHalf ? (rowIndex - 1) : (rowIndex + 1); - if (RowNeighbourDragHighlight != neighbourRow) - { - if (RowNeighbourDragHighlight != RowCurrentDragHighlight) - { - ChangeRowBackgroundColor(RowNeighbourDragHighlight, Color.Empty); - } - RowNeighbourDragHighlight = neighbourRow; - ChangeRowBackgroundColor(RowNeighbourDragHighlight, color); - } - } - } - - private void RemoveDragTargetHighlight() - { - ChangeRowBackgroundColor(RowCurrentDragHighlight, Color.Empty); - ChangeRowBackgroundColor(RowNeighbourDragHighlight, Color.Empty); - RowCurrentDragHighlight = 0; - RowNeighbourDragHighlight = 0; - } - - private void inputsDataGridView_MouseDown(object sender, MouseEventArgs e) - { - RowIndexMouseDown = inputsDataGridView.HitTest(e.X, e.Y).RowIndex; - - // Handle row "Double-click...." which has no underlying data - if (RowIndexMouseDown != -1 && (inputsDataTable.Rows.Count >= (RowIndexMouseDown + 1))) - { - Size dragSize = SystemInformation.DragSize; - dragSize.Width = dragSize.Width * 5; - dragSize.Height = dragSize.Height * 5; - Point location = new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)); - RectangleMouseDown = new Rectangle(location, dragSize); - DataGridTopLeftPoint.X = inputsDataGridView.Location.X; - DataGridTopLeftPoint.Y = inputsDataGridView.Location.Y; - DataGridBottomRightPoint.X = inputsDataGridView.Location.X + inputsDataGridView.Width; - DataGridBottomRightPoint.Y = inputsDataGridView.Location.Y + inputsDataGridView.Height; - } - else - { - // Reset if not on datagrid - RectangleMouseDown = Rectangle.Empty; - } - } - - private void inputsDataGridView_MouseMove(object sender, MouseEventArgs e) - { - if (MouseButtons.Left == (e.Button & MouseButtons.Left)) - { - // When mouse did not leave rectangle return, otherwise start drag and drop - if (RectangleMouseDown == Rectangle.Empty || RectangleMouseDown.Contains(e.X, e.Y)) return; - - if (!IsSortingActive()) - { - // Only select Row which is to be moved, needed because of active multiselect - inputsDataGridView.ClearSelection(); - inputsDataGridView.Rows[RowIndexMouseDown].Selected = true; - inputsDataGridView.CurrentCell = inputsDataGridView.Rows[RowIndexMouseDown].Cells["inputDescription"]; - // Start drag and drop - inputsDataGridView.DoDragDrop(inputsDataTable.Rows[RowIndexMouseDown], DragDropEffects.Move); - } - else - { - // Show message box no drag and drop on sorted list - MessageBox.Show(i18n._tr("uiMessageDragDropNotAllowed"), i18n._tr("Hint")); - } - } - } - - private void inputsDataGridView_DragOver(object sender, DragEventArgs e) - { - e.Effect = DragDropEffects.Move; - Point clientPoint = inputsDataGridView.PointToClient(new Point(e.X, e.Y)); - var hti = inputsDataGridView.HitTest(clientPoint.X, clientPoint.Y); - int currentRow = hti.RowIndex; - - if (hti.RowIndex != -1 && hti.ColumnIndex != -1) - { - Rectangle myRect = inputsDataGridView.GetCellDisplayRectangle(hti.ColumnIndex, hti.RowIndex, false); - IsInCurrentRowTopHalf = clientPoint.Y < (myRect.Top + (myRect.Height / 2)); - } - - if (currentRow > -1) - { - AdjustDragTargetHighlight(currentRow); - } - - // Autoscroll - int autoScrollMargin = 20; - int headerHeight = inputsDataGridView.ColumnHeadersHeight; - if ((e.Y <= PointToScreen(DataGridTopLeftPoint).Y + headerHeight + autoScrollMargin) && - (inputsDataGridView.FirstDisplayedScrollingRowIndex > 0)) - { - // Scroll up - inputsDataGridView.FirstDisplayedScrollingRowIndex -= 1; - } - if (e.Y >= PointToScreen(DataGridBottomRightPoint).Y - autoScrollMargin) - { - // Scroll down - inputsDataGridView.FirstDisplayedScrollingRowIndex += 1; - } - } - - private void inputsDataGridView_DragDrop(object sender, DragEventArgs e) - { - Point clientPoint = inputsDataGridView.PointToClient(new Point(e.X, e.Y)); - int rowIndexDrop = inputsDataGridView.HitTest(clientPoint.X, clientPoint.Y).RowIndex; - if (rowIndexDrop < (inputsDataGridView.Rows.Count - 1) && !IsInCurrentRowTopHalf) - { - rowIndexDrop++; - } - - // If move operation, remove row at start position and insert at drop position - if (e.Effect == DragDropEffects.Move && rowIndexDrop != -1) - { - DataRow rowToRemove = (DataRow)e.Data.GetData(typeof(DataRow)); - DataRow rowToInsert = inputsDataTable.NewRow(); - rowToInsert.ItemArray = rowToRemove.ItemArray; // needs to be cloned - inputsDataGridView.ClearSelection(); - inputsDataTable.Rows.InsertAt(rowToInsert, rowIndexDrop); - EditedItem = null; // safety measure, otherwise on some circumstances exception can be provoked - inputsDataTable.Rows.Remove(rowToRemove); - int newIndex = inputsDataTable.Rows.IndexOf(rowToInsert); - inputsDataGridView.CurrentCell = inputsDataGridView.Rows[newIndex].Cells["inputDescription"]; - // Used to keep the two rows colored for a short period of time after drop - if (newIndex > 0) - RowNeighbourDragHighlight = newIndex - 1; - if (newIndex < (inputsDataGridView.Rows.Count - 1)) - RowCurrentDragHighlight = newIndex + 1; - } - } - - private void inputsDataGridView_GiveFeedback(object sender, GiveFeedbackEventArgs e) - { - // Sets the custom cursor based upon the effect. - e.UseDefaultCursors = false; - if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move) - { - // For performance reason we want to only - // calculate the bitmap for the cursor - // once when it changes from default - if (Cursor.Current == Cursors.Default || Cursor.Current == Cursors.No) - { - int offsetX = CalculateCorrectCursorOffset(); - - // This creates the bitmap of the row and creates assigns it as the new cursor - Cursor.Current = CreateCursor(inputsDataGridView.Rows[RowIndexMouseDown]); - - // This now corrects the position of the cursor using the offset, - // so that the cursor won't show displaced - Cursor.Position = new Point(Cursor.Position.X - offsetX, Cursor.Position.Y); - } - } - else - Cursor.Current = Cursors.Default; - } - - private int CalculateCorrectCursorOffset() - { - // Transform cursor position from screen coords to control coords - var localCoords = PointToClient(Cursor.Position); - - // Get the size of the row which is equivalent to the cursor bitmap - Rectangle rowRectangle = inputsDataGridView.GetRowDisplayRectangle(RowCurrentDragHighlight, true); - - double cursorWidth = rowRectangle.Width; - // if we grab the row exactly in the center, then the offset is 0 - // if we grab it at the very left, then the offset must be -(half size of cursor) - // if we grab it at the very right, then the offset must be +(half size of cursor) - return (int)(localCoords.X - cursorWidth / 2); - } - - private Cursor CreateCursor(DataGridViewRow row) - { - if (CurrentCursorBitmap == null) - { - Size clientSize = inputsDataGridView.ClientSize; - Rectangle rowRectangle = inputsDataGridView.GetRowDisplayRectangle(RowIndexMouseDown, true); - var scalingFactor = GetScalingFactor(this.Handle); - - using (Bitmap dataGridViewBmp = new Bitmap(clientSize.Width, clientSize.Height)) - using (Bitmap rowBmp = new Bitmap(rowRectangle.Width, rowRectangle.Height)) - { - inputsDataGridView.DrawToBitmap(dataGridViewBmp, new Rectangle(Point.Empty, clientSize)); - using (Graphics G = Graphics.FromImage(rowBmp)) - { - G.DrawImage(dataGridViewBmp, new Rectangle(Point.Empty, rowRectangle.Size), rowRectangle, GraphicsUnit.Pixel); - } - - var scaledX = (int)Math.Round(rowRectangle.Width * scalingFactor, 0); - var scaledY = (int)Math.Round(rowRectangle.Height * scalingFactor, 0); - - CurrentCursorBitmap = new Bitmap(rowBmp, new Size(scaledX, scaledY)); - } - } - return new Cursor(CurrentCursorBitmap.GetHicon()); - } - - - private double GetScalingFactor(IntPtr handle) - { - using (Graphics g = Graphics.FromHwnd(handle)) - { - // Get the current display scaling factor. - return DPIUtil.GetWindowsScreenScalingFactor(this, false); - } - } - - private void inputsDataGridView_QueryContinueDrag(object sender, QueryContinueDragEventArgs e) - { - if (e.Action == DragAction.Cancel || e.Action == DragAction.Drop) - { - if (CurrentCursorBitmap != null) - { - CurrentCursorBitmap.Dispose(); - CurrentCursorBitmap = null; - } - DropTimer.Start(); - } - } - - private void DropTimer_Tick(object sender, EventArgs e) - { - DropTimer.Stop(); - RemoveDragTargetHighlight(); - } - } -} diff --git a/UI/Panels/InputConfigPanel.de.resx b/UI/Panels/InputConfigPanel.de.resx deleted file mode 100644 index 2ffb9343d..000000000 --- a/UI/Panels/InputConfigPanel.de.resx +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - 160, 22 - - - Kopieren - - - 160, 22 - - - Einfügen - - - 157, 6 - - - 160, 22 - - - Zeile duplizieren - - - 160, 22 - - - Zeile löschen - - - 161, 98 - - - Aktiv - - - - - - Beschreibung - - - Der Name oder Beschreibung der Config - - - Modul - - - Das verwendete Board in der Config - - - Das verwendete Gerät in der Config - - - Typ - - - Der Geräte-Typ in der Config - - \ No newline at end of file diff --git a/UI/Panels/InputConfigPanel.resx b/UI/Panels/InputConfigPanel.resx deleted file mode 100644 index 0819a2552..000000000 --- a/UI/Panels/InputConfigPanel.resx +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 136, 22 - - - - 150, 22 - - - Copy - - - 150, 22 - - - Paste - - - 147, 6 - - - 150, 22 - - - Duplicate Row - - - 150, 22 - - - Delete Row - - - 151, 98 - - - inputsDataGridViewContextMenuStrip - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 431, 19 - - - - 34 - - - Active - - - The device used in the config - - - 42 - - - Description - - - The name or description of your config - - - True - - - guid - - - False - - - True - - - Module - - - The board used in the config - - - 67 - - - True - - - Input - - - The device used in the config - - - 56 - - - True - - - Type - - - The type of device used in the config - - - 56 - - - True - - - Edit - - - 55 - - - ... - - - 55 - - - - Fill - - - 0, 0 - - - 788, 519 - - - 3 - - - inputsDataGridView - - - System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - True - - - 6, 13 - - - 788, 519 - - - copyToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pasteToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - duplicateInputsRowToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - deleteInputsRowToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - dataSetInputs - - - System.Data.DataSet, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsDataTable - - - System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsActiveDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsDescriptionDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsGuidDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsSettingsDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputNameDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputTypeDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - moduleSerialDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputActive - - - System.Windows.Forms.DataGridViewCheckBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputDescription - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputsGuid - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - moduleSerial - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputName - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputType - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - inputEditButtonColumn - - - System.Windows.Forms.DataGridViewButtonColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - InputConfigPanel - - - System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/UI/Panels/Output/CustomDevicePanel.cs b/UI/Panels/Output/CustomDevicePanel.cs index 5c15bf467..e2f14c2ba 100644 --- a/UI/Panels/Output/CustomDevicePanel.cs +++ b/UI/Panels/Output/CustomDevicePanel.cs @@ -33,32 +33,38 @@ public void SetCustomDeviceNames(List> pins) public void syncFromConfig(OutputConfigItem config) { - if (!ComboBoxHelper.SetSelectedItem(customDeviceNamesComboBox, config.CustomDevice.CustomName)) + if (!(config.Device is CustomDevice)) return; + + var customDevice = config.Device as CustomDevice; + if (!ComboBoxHelper.SetSelectedItem(customDeviceNamesComboBox, customDevice.CustomName)) { Log.Instance.log("Exception on selecting item in Custom Device Name ComboBox.", LogSeverity.Error); } - if (!ComboBoxHelper.SetSelectedItemByValue(MessageTypeComboBox, config.CustomDevice.MessageType.ToString())) + if (!ComboBoxHelper.SetSelectedItemByValue(MessageTypeComboBox, customDevice.MessageType.ToString())) { Log.Instance.log("Exception on selecting item in Custom Device Name ComboBox.", LogSeverity.Error); } - valueTextBox.Text = config.CustomDevice.Value; + valueTextBox.Text = customDevice.Value; } internal OutputConfigItem syncToConfig(OutputConfigItem config) { + config.Device = new CustomDevice(); + var customDevice = config.Device as CustomDevice; + if (customDeviceNamesComboBox.SelectedValue != null) { - config.CustomDevice.CustomName = (customDeviceNamesComboBox.SelectedValue as MobiFlightCustomDevice).Name.ToString(); + customDevice.CustomName = (customDeviceNamesComboBox.SelectedValue as MobiFlightCustomDevice).Name.ToString(); } if (MessageTypeComboBox.SelectedValue != null) { - config.CustomDevice.MessageType = (MessageTypeComboBox.SelectedValue as CustomDevices.MessageType).Id; + customDevice.MessageType = (MessageTypeComboBox.SelectedValue as CustomDevices.MessageType).Id; } - config.CustomDevice.Value = valueTextBox.Text; + customDevice.Value = valueTextBox.Text; return config; } diff --git a/UI/Panels/Output/DisplayBcdPanel.Designer.cs b/UI/Panels/Output/DisplayBcdPanel.Designer.cs deleted file mode 100644 index 3b7b39023..000000000 --- a/UI/Panels/Output/DisplayBcdPanel.Designer.cs +++ /dev/null @@ -1,237 +0,0 @@ -namespace MobiFlight.UI.Panels -{ - partial class DisplayBcdPanel - { - /// - /// Erforderliche Designervariable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Verwendete Ressourcen bereinigen. - /// - /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Vom Komponenten-Designer generierter Code - - /// - /// Erforderliche Methode für die Designerunterstützung. - /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. - /// - private void InitializeComponent() - { - this.displayBcdPin4Label = new System.Windows.Forms.Label(); - this.displayBcdPin3Label = new System.Windows.Forms.Label(); - this.displayBcdPin2Label = new System.Windows.Forms.Label(); - this.displayBcdPin1Label = new System.Windows.Forms.Label(); - this.displayBcdPin4ComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdPin3ComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdPin2ComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdPin1ComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdPortComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdPinsLabel = new System.Windows.Forms.Label(); - this.displayBcdStrobeLabel = new System.Windows.Forms.Label(); - this.displayBcdStrobePinComboBox = new System.Windows.Forms.ComboBox(); - this.displayBcdStrobePortComboBox = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // displayBcdPin4Label - // - this.displayBcdPin4Label.AutoSize = true; - this.displayBcdPin4Label.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdPin4Label.Location = new System.Drawing.Point(261, 24); - this.displayBcdPin4Label.Name = "displayBcdPin4Label"; - this.displayBcdPin4Label.Size = new System.Drawing.Size(13, 13); - this.displayBcdPin4Label.TabIndex = 19; - this.displayBcdPin4Label.Text = "4"; - // - // displayBcdPin3Label - // - this.displayBcdPin3Label.AutoSize = true; - this.displayBcdPin3Label.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdPin3Label.Location = new System.Drawing.Point(222, 24); - this.displayBcdPin3Label.Name = "displayBcdPin3Label"; - this.displayBcdPin3Label.Size = new System.Drawing.Size(13, 13); - this.displayBcdPin3Label.TabIndex = 18; - this.displayBcdPin3Label.Text = "3"; - // - // displayBcdPin2Label - // - this.displayBcdPin2Label.AutoSize = true; - this.displayBcdPin2Label.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdPin2Label.Location = new System.Drawing.Point(183, 24); - this.displayBcdPin2Label.Name = "displayBcdPin2Label"; - this.displayBcdPin2Label.Size = new System.Drawing.Size(13, 13); - this.displayBcdPin2Label.TabIndex = 17; - this.displayBcdPin2Label.Text = "2"; - // - // displayBcdPin1Label - // - this.displayBcdPin1Label.AutoSize = true; - this.displayBcdPin1Label.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdPin1Label.Location = new System.Drawing.Point(144, 24); - this.displayBcdPin1Label.Name = "displayBcdPin1Label"; - this.displayBcdPin1Label.Size = new System.Drawing.Size(13, 13); - this.displayBcdPin1Label.TabIndex = 16; - this.displayBcdPin1Label.Text = "1"; - // - // displayBcdPin4ComboBox - // - this.displayBcdPin4ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdPin4ComboBox.FormattingEnabled = true; - this.displayBcdPin4ComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdPin4ComboBox.Location = new System.Drawing.Point(250, 39); - this.displayBcdPin4ComboBox.Name = "displayBcdPin4ComboBox"; - this.displayBcdPin4ComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdPin4ComboBox.TabIndex = 15; - // - // displayBcdPin3ComboBox - // - this.displayBcdPin3ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdPin3ComboBox.FormattingEnabled = true; - this.displayBcdPin3ComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdPin3ComboBox.Location = new System.Drawing.Point(211, 39); - this.displayBcdPin3ComboBox.Name = "displayBcdPin3ComboBox"; - this.displayBcdPin3ComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdPin3ComboBox.TabIndex = 14; - // - // displayBcdPin2ComboBox - // - this.displayBcdPin2ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdPin2ComboBox.FormattingEnabled = true; - this.displayBcdPin2ComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdPin2ComboBox.Location = new System.Drawing.Point(172, 39); - this.displayBcdPin2ComboBox.Name = "displayBcdPin2ComboBox"; - this.displayBcdPin2ComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdPin2ComboBox.TabIndex = 13; - // - // displayBcdPin1ComboBox - // - this.displayBcdPin1ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdPin1ComboBox.FormattingEnabled = true; - this.displayBcdPin1ComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdPin1ComboBox.Location = new System.Drawing.Point(133, 39); - this.displayBcdPin1ComboBox.Name = "displayBcdPin1ComboBox"; - this.displayBcdPin1ComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdPin1ComboBox.TabIndex = 12; - // - // displayBcdPortComboBox - // - this.displayBcdPortComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdPortComboBox.FormattingEnabled = true; - this.displayBcdPortComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdPortComboBox.Location = new System.Drawing.Point(95, 39); - this.displayBcdPortComboBox.Name = "displayBcdPortComboBox"; - this.displayBcdPortComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdPortComboBox.TabIndex = 11; - // - // displayBcdPinsLabel - // - this.displayBcdPinsLabel.AutoSize = true; - this.displayBcdPinsLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdPinsLabel.Location = new System.Drawing.Point(62, 44); - this.displayBcdPinsLabel.Name = "displayBcdPinsLabel"; - this.displayBcdPinsLabel.Size = new System.Drawing.Size(27, 13); - this.displayBcdPinsLabel.TabIndex = 10; - this.displayBcdPinsLabel.Text = "Pins"; - // - // displayBcdStrobeLabel - // - this.displayBcdStrobeLabel.AutoSize = true; - this.displayBcdStrobeLabel.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.displayBcdStrobeLabel.Location = new System.Drawing.Point(51, 4); - this.displayBcdStrobeLabel.Name = "displayBcdStrobeLabel"; - this.displayBcdStrobeLabel.Size = new System.Drawing.Size(38, 13); - this.displayBcdStrobeLabel.TabIndex = 9; - this.displayBcdStrobeLabel.Text = "Strobe"; - // - // displayBcdStrobePinComboBox - // - this.displayBcdStrobePinComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdStrobePinComboBox.FormattingEnabled = true; - this.displayBcdStrobePinComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdStrobePinComboBox.Location = new System.Drawing.Point(95, 1); - this.displayBcdStrobePinComboBox.Name = "displayBcdStrobePinComboBox"; - this.displayBcdStrobePinComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdStrobePinComboBox.TabIndex = 8; - // - // displayBcdStrobePortComboBox - // - this.displayBcdStrobePortComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.displayBcdStrobePortComboBox.FormattingEnabled = true; - this.displayBcdStrobePortComboBox.Items.AddRange(new object[] { - "Pin", - "7-Segment", - "3BCD-8Bit-with-Strobe"}); - this.displayBcdStrobePortComboBox.Location = new System.Drawing.Point(133, 1); - this.displayBcdStrobePortComboBox.Name = "displayBcdStrobePortComboBox"; - this.displayBcdStrobePortComboBox.Size = new System.Drawing.Size(35, 21); - this.displayBcdStrobePortComboBox.TabIndex = 7; - // - // DisplayBcdPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.displayBcdPin4Label); - this.Controls.Add(this.displayBcdPin3Label); - this.Controls.Add(this.displayBcdPin2Label); - this.Controls.Add(this.displayBcdPin1Label); - this.Controls.Add(this.displayBcdPin4ComboBox); - this.Controls.Add(this.displayBcdPin3ComboBox); - this.Controls.Add(this.displayBcdPin2ComboBox); - this.Controls.Add(this.displayBcdPin1ComboBox); - this.Controls.Add(this.displayBcdPortComboBox); - this.Controls.Add(this.displayBcdPinsLabel); - this.Controls.Add(this.displayBcdStrobeLabel); - this.Controls.Add(this.displayBcdStrobePinComboBox); - this.Controls.Add(this.displayBcdStrobePortComboBox); - this.Name = "DisplayBcdPanel"; - this.Size = new System.Drawing.Size(311, 66); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - public System.Windows.Forms.Label displayBcdPin4Label; - public System.Windows.Forms.Label displayBcdPin3Label; - public System.Windows.Forms.Label displayBcdPin2Label; - public System.Windows.Forms.Label displayBcdPin1Label; - public System.Windows.Forms.ComboBox displayBcdPin4ComboBox; - public System.Windows.Forms.ComboBox displayBcdPin3ComboBox; - public System.Windows.Forms.ComboBox displayBcdPin2ComboBox; - public System.Windows.Forms.ComboBox displayBcdPin1ComboBox; - public System.Windows.Forms.ComboBox displayBcdPortComboBox; - public System.Windows.Forms.Label displayBcdPinsLabel; - public System.Windows.Forms.Label displayBcdStrobeLabel; - public System.Windows.Forms.ComboBox displayBcdStrobePinComboBox; - public System.Windows.Forms.ComboBox displayBcdStrobePortComboBox; - } -} diff --git a/UI/Panels/Output/DisplayBcdPanel.cs b/UI/Panels/Output/DisplayBcdPanel.cs deleted file mode 100644 index d09acd68a..000000000 --- a/UI/Panels/Output/DisplayBcdPanel.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace MobiFlight.UI.Panels -{ - public partial class DisplayBcdPanel : UserControl - { - public DisplayBcdPanel() - { - InitializeComponent(); - } - - public void SetPorts(List ports) - { - // displayBcdPortComboBox - displayBcdStrobePortComboBox.DataSource = new List(ports); - displayBcdStrobePortComboBox.DisplayMember = "Label"; - displayBcdStrobePortComboBox.ValueMember = "Value"; - if (ports.Count > 0) - displayBcdStrobePortComboBox.SelectedIndex = 0; - - displayBcdStrobePortComboBox.Enabled = ports.Count > 0; - - displayBcdPortComboBox.DataSource = new List(ports); - displayBcdPortComboBox.DisplayMember = "Label"; - displayBcdPortComboBox.ValueMember = "Value"; - if (ports.Count > 0) - displayBcdPortComboBox.SelectedIndex = 0; - - displayBcdPortComboBox.Enabled = ports.Count > 0; - } - - /** - * displayBcdPanel.displayBcdStrobePinComboBox.Items.Add(v); - displayBcdPanel.displayBcdPin1ComboBox.Items.Add(v); - displayBcdPanel.displayBcdPin2ComboBox.Items.Add(v); - displayBcdPanel.displayBcdPin3ComboBox.Items.Add(v); - displayBcdPanel.displayBcdPin4ComboBox.Items.Add(v); - * */ - - public void SetPins(List pins) - { - displayBcdStrobePinComboBox.DataSource = new List(pins); - displayBcdStrobePinComboBox.DisplayMember = "Label"; - displayBcdStrobePinComboBox.ValueMember = "Value"; - - if (pins.Count > 0) - displayBcdStrobePinComboBox.SelectedIndex = 0; - - displayBcdStrobePinComboBox.Visible = displayBcdStrobePinComboBox.Enabled = pins.Count > 0; - - displayBcdPin1ComboBox.DataSource = new List(pins); - displayBcdPin1ComboBox.DisplayMember = "Label"; - displayBcdPin1ComboBox.ValueMember = "Value"; - - if (pins.Count > 0) - displayBcdPin1ComboBox.SelectedIndex = 0; - - displayBcdPin1ComboBox.Visible = displayBcdPin1ComboBox.Enabled = pins.Count > 0; - - displayBcdPin2ComboBox.DataSource = new List(pins); - displayBcdPin2ComboBox.DisplayMember = "Label"; - displayBcdPin2ComboBox.ValueMember = "Value"; - - if (pins.Count > 0) - displayBcdPin2ComboBox.SelectedIndex = 0; - - displayBcdPin2ComboBox.Visible = displayBcdPin2ComboBox.Enabled = pins.Count > 0; - - displayBcdPin3ComboBox.DataSource = new List(pins); - displayBcdPin3ComboBox.DisplayMember = "Label"; - displayBcdPin3ComboBox.ValueMember = "Value"; - - if (pins.Count > 0) - displayBcdPin3ComboBox.SelectedIndex = 0; - - displayBcdPin3ComboBox.Visible = displayBcdPin3ComboBox.Enabled = pins.Count > 0; - - displayBcdPin4ComboBox.DataSource = new List(pins); - displayBcdPin4ComboBox.DisplayMember = "Label"; - displayBcdPin4ComboBox.ValueMember = "Value"; - - if (pins.Count > 0) - displayBcdPin4ComboBox.SelectedIndex = 0; - - displayBcdPin4ComboBox.Visible = displayBcdPin4ComboBox.Enabled = pins.Count > 0; - } - - internal void syncFromConfig(OutputConfigItem config) - { - // preselect BCD4056 - for (int i = 0; i < config.BcdPins.Count(); i++) - { - if (config.BcdPins[i] != "") - { - string tmpPort = config.BcdPins[i].Substring(0, 1); - string tmpPin = config.BcdPins[i].Substring(1); - - if (i == 0) - { - if (!ComboBoxHelper.SetSelectedItem(displayBcdStrobePortComboBox, tmpPort)) { /* TODO: provide error message */ } - if (!ComboBoxHelper.SetSelectedItem(displayBcdStrobePinComboBox, tmpPin)) { /* TODO: provide error message */ } - } - else - { - if (!ComboBoxHelper.SetSelectedItem(displayBcdPortComboBox, tmpPort)) { /* TODO: provide error message */ } - if (!ComboBoxHelper.SetSelectedItem(Controls["displayBcdPin" + i + "ComboBox"] as ComboBox, tmpPin)) { /* TODO: provide error message */ } - } - } - } - } - - internal OutputConfigItem syncToConfig(OutputConfigItem config) - { - config.BcdPins.Clear(); - config.BcdPins.Add(displayBcdStrobePortComboBox.Text + displayBcdStrobePinComboBox.Text); - for (int i = 1; i <= 4; i++) - { - config.BcdPins.Add( - displayBcdStrobePortComboBox.Text + - (Controls["displayBcdPin" + i + "ComboBox"] as ComboBox).Text); - } - - return config; - } - } -} diff --git a/UI/Panels/Output/DisplayLedDisplayPanel.cs b/UI/Panels/Output/DisplayLedDisplayPanel.cs index 37fc69048..62df4d952 100644 --- a/UI/Panels/Output/DisplayLedDisplayPanel.cs +++ b/UI/Panels/Output/DisplayLedDisplayPanel.cs @@ -7,6 +7,7 @@ using System.Text; using System.Windows.Forms; using MobiFlight.Base; +using MobiFlight.Config; namespace MobiFlight.UI.Panels { @@ -28,15 +29,21 @@ public DisplayLedDisplayPanel() private void InitPanelWithDefaultSettings() { - syncFromConfig(new OutputConfigItem()); + syncFromConfig(new OutputConfigItem() + { + Device = new OutputConfig.LedModule() + }); } internal void syncFromConfig(OutputConfigItem config) { + if (!(config.Device is OutputConfig.LedModule)) return; + + var ledModule = config.Device as OutputConfig.LedModule; // preselect display stuff - if (config.LedModule.DisplayLedAddress != null) + if (ledModule.DisplayLedAddress != null) { - if (!ComboBoxHelper.SetSelectedItem(displayLedAddressComboBox, config.LedModule.DisplayLedAddress.ToString())) + if (!ComboBoxHelper.SetSelectedItem(displayLedAddressComboBox, ledModule.DisplayLedAddress.ToString())) { // TODO: provide error message Log.Instance.log("Exception on selecting item in LED address ComboBox.", LogSeverity.Error); @@ -46,38 +53,38 @@ internal void syncFromConfig(OutputConfigItem config) } } - if (config.LedModule.DisplayLedAddress != null) + if (ledModule.DisplayLedAddress != null) { - if (!ComboBoxHelper.SetSelectedItem(displayLedConnectorComboBox, config.LedModule.DisplayLedConnector.ToString())) + if (!ComboBoxHelper.SetSelectedItem(displayLedConnectorComboBox, ledModule.DisplayLedConnector.ToString())) { // TODO: provide error message Log.Instance.log("Exception on selecting item in LED connector ComboBox.", LogSeverity.Error); } } - if (!ComboBoxHelper.SetSelectedItem(displayLedModuleSizeComboBox, config.LedModule.DisplayLedModuleSize.ToString())) + if (!ComboBoxHelper.SetSelectedItem(displayLedModuleSizeComboBox, ledModule.DisplayLedModuleSize.ToString())) { // TODO: provide error message Log.Instance.log("Exception on selecting item in LED module size ComboBox.", LogSeverity.Error); } - displayLedPaddingCheckBox.Checked = config.LedModule.DisplayLedPadding; - displayLedReverseDigitsCheckBox.Checked = config.LedModule.DisplayLedReverseDigits; - SetPaddingChar(config.LedModule.DisplayLedPaddingChar); + displayLedPaddingCheckBox.Checked = ledModule.DisplayLedPadding; + displayLedReverseDigitsCheckBox.Checked = ledModule.DisplayLedReverseDigits; + SetPaddingChar(ledModule.DisplayLedPaddingChar); - foreach (string digit in config.LedModule.DisplayLedDigits) + foreach (string digit in ledModule.DisplayLedDigits) { (displayLedDigitFlowLayoutPanel.Controls["displayLedDigit" + digit + "Checkbox"] as CheckBox).Checked = true; } - foreach (string digit in config.LedModule.DisplayLedDecimalPoints) + foreach (string digit in ledModule.DisplayLedDecimalPoints) { (displayLedDecimalPointFlowLayoutPanel.Controls["displayLedDecimalPoint" + digit + "Checkbox"] as CheckBox).Checked = true; } - if (!string.IsNullOrEmpty(config.LedModule.DisplayLedBrightnessReference)) + if (!string.IsNullOrEmpty(ledModule.DisplayLedBrightnessReference)) { - brightnessDropDown.SelectedValue = config.LedModule.DisplayLedBrightnessReference; + brightnessDropDown.SelectedValue = ledModule.DisplayLedBrightnessReference; } } @@ -155,62 +162,68 @@ public string GetPaddingChar() internal OutputConfigItem syncToConfig(OutputConfigItem config) { + config.Device = new OutputConfig.LedModule(); + var ledModule = config.Device as OutputConfig.LedModule; + if (displayLedAddressComboBox.SelectedValue as String != null) - config.LedModule.DisplayLedAddress = displayLedAddressComboBox.SelectedValue as String; + ledModule.DisplayLedAddress = displayLedAddressComboBox.SelectedValue as String; if (brightnessDropDown.SelectedValue!=null) - config.LedModule.DisplayLedBrightnessReference = brightnessDropDown.SelectedValue.ToString(); + ledModule.DisplayLedBrightnessReference = brightnessDropDown.SelectedValue.ToString(); - config.LedModule.DisplayLedPadding = displayLedPaddingCheckBox.Checked; - config.LedModule.DisplayLedReverseDigits = displayLedReverseDigitsCheckBox.Checked; - config.LedModule.DisplayLedPaddingChar = GetPaddingChar(); + ledModule.DisplayLedPadding = displayLedPaddingCheckBox.Checked; + ledModule.DisplayLedReverseDigits = displayLedReverseDigitsCheckBox.Checked; + ledModule.DisplayLedPaddingChar = GetPaddingChar(); try { - config.LedModule.DisplayLedConnector = byte.Parse(displayLedConnectorComboBox.Text); - config.LedModule.DisplayLedModuleSize = byte.Parse(displayLedModuleSizeComboBox.Text); + ledModule.DisplayLedConnector = byte.Parse(displayLedConnectorComboBox.Text); + ledModule.DisplayLedModuleSize = byte.Parse(displayLedModuleSizeComboBox.Text); } catch (FormatException ex) { Log.Instance.log($"Exception parsing values: {ex.Message}", LogSeverity.Error); } - config.LedModule.DisplayLedDigits.Clear(); - config.LedModule.DisplayLedDecimalPoints.Clear(); + ledModule.DisplayLedDigits.Clear(); + ledModule.DisplayLedDecimalPoints.Clear(); for (int i = 0; i < 8; i++) { CheckBox cb = (displayLedDigitFlowLayoutPanel.Controls["displayLedDigit" + i + "Checkbox"] as CheckBox); if (cb.Checked) { - config.LedModule.DisplayLedDigits.Add(i.ToString()); + ledModule.DisplayLedDigits.Add(i.ToString()); } //if cb = (displayLedDecimalPointFlowLayoutPanel.Controls["displayLedDecimalPoint" + i + "Checkbox"] as CheckBox); if (cb.Checked) { - config.LedModule.DisplayLedDecimalPoints.Add(i.ToString()); + ledModule.DisplayLedDecimalPoints.Add(i.ToString()); } //if } if (brightnessDropDown.SelectedIndex <= 0) { - config.LedModule.DisplayLedBrightnessReference = string.Empty; + ledModule.DisplayLedBrightnessReference = string.Empty; } else { - config.LedModule.DisplayLedBrightnessReference = brightnessDropDown.SelectedValue.ToString(); + ledModule.DisplayLedBrightnessReference = brightnessDropDown.SelectedValue.ToString(); } return config; } - internal void SetConfigRefsDataView(DataView dv, string filterGuid) + internal void SetConfigRefsDataView(List dv, string filterGuid) { - this.filterReferenceGuid = filterGuid==null?string.Empty:filterGuid; + this.filterReferenceGuid = filterGuid == null ? string.Empty : filterGuid; + + List configRefs = new List + { + new ListItem { Value = string.Empty, Label = "" } + }; - List configRefs = new List(); - configRefs.Add(new ListItem { Value = string.Empty, Label = "" }); - foreach (DataRow refRow in dv.Table.Rows) + foreach (var refCfg in dv) { - if (!filterReferenceGuid.Equals(refRow["guid"].ToString())) + if (!filterReferenceGuid.Equals(refCfg.GUID)) { - configRefs.Add(new ListItem { Value = ((Guid)refRow["guid"]).ToString(), Label = refRow["description"] as string }); + configRefs.Add(new ListItem { Value = refCfg.GUID, Label = refCfg.Name }); } } diff --git a/UI/Panels/Output/DisplayPinPanel.cs b/UI/Panels/Output/DisplayPinPanel.cs index 4afa32cac..90ab81ae9 100644 --- a/UI/Panels/Output/DisplayPinPanel.cs +++ b/UI/Panels/Output/DisplayPinPanel.cs @@ -94,58 +94,58 @@ private void displayPortComboBox_SelectedIndexChanged(object sender, EventArgs e internal void syncFromConfig(OutputConfigItem config) { - String serial = config.DisplaySerial; + String serial = config.ModuleSerial; serial = SerialNumber.ExtractSerial(serial); - if (config.Pin.DisplayPin != null && config.Pin.DisplayPin != "") - { - string port = ""; - string pin = config.Pin.DisplayPin; + if (!(config.Device is Output)) return; - if (SerialNumber.IsJoystickSerial(serial) || - SerialNumber.IsMidiBoardSerial(serial)) - { - // disable multi-select option - _MultiSelectOptions(false); - pin = config.Pin.DisplayPin; - } - else if (SerialNumber.IsArcazeSerial(serial)) - { - // these are Arcaze Boards. - // Arcaze Boards only have "single output" - port = config.Pin.DisplayPin.Substring(0, 1); - pin = config.Pin.DisplayPin.Substring(1); + string port = ""; + var cfg = config.Device as Output; + string pin = cfg.DisplayPin; - // disable multi-select option - _MultiSelectOptions(false); - } else if (SerialNumber.IsMobiFlightSerial(serial)) { + if (SerialNumber.IsJoystickSerial(serial) || + SerialNumber.IsMidiBoardSerial(serial)) + { + // disable multi-select option + _MultiSelectOptions(false); + pin = cfg.DisplayPin; + } + else if (SerialNumber.IsArcazeSerial(serial)) + { + // these are Arcaze Boards. + // Arcaze Boards only have "single output" + port = cfg.DisplayPin.Substring(0, 1); + pin = cfg.DisplayPin.Substring(1); - // this is MobiFlight Outputs - _MultiSelectOptions(true); + // disable multi-select option + _MultiSelectOptions(false); + } else if (SerialNumber.IsMobiFlightSerial(serial)) { + + // this is MobiFlight Outputs + _MultiSelectOptions(true); - // initialize multi-select panel - MultiPinSelectPanel?.SetSelectedPinsFromString(config.Pin.DisplayPin, config.DisplaySerial); + // initialize multi-select panel + MultiPinSelectPanel?.SetSelectedPinsFromString(cfg.DisplayPin, config.ModuleSerial); - // get the first from the multi select - pin = config.Pin.DisplayPin.Split(Panels.PinSelectPanel.POSITION_SEPERATOR)[0]; + // get the first from the multi select + pin = cfg.DisplayPin.Split(Panels.PinSelectPanel.POSITION_SEPERATOR)[0]; - selectMultiplePinsCheckBox.Checked = config.Pin.DisplayPin.Split(Panels.PinSelectPanel.POSITION_SEPERATOR).Length > 1; - } + selectMultiplePinsCheckBox.Checked = cfg.DisplayPin.Split(Panels.PinSelectPanel.POSITION_SEPERATOR).Length > 1; + } - // preselect normal pin drop downs - if (!ComboBoxHelper.SetSelectedItem(displayPortComboBox, port)) { /* TODO: provide error message */ } + // preselect normal pin drop downs + if (!ComboBoxHelper.SetSelectedItem(displayPortComboBox, port)) { /* TODO: provide error message */ } - if (displayPinComboBox.Items.Count == 0) { - displayPinComboBox.DataSource = new List() { new ListItem() { Label = pin, Value = pin } }; - } + if (displayPinComboBox.Items.Count == 0) { + displayPinComboBox.DataSource = new List() { new ListItem() { Label = pin, Value = pin } }; + } - if (!ComboBoxHelper.SetSelectedItem(displayPinComboBox, pin)) { /* TODO: provide error message */ } + if (!ComboBoxHelper.SetSelectedItem(displayPinComboBox, pin)) { /* TODO: provide error message */ } - int range = displayPinBrightnessTrackBar.Maximum - displayPinBrightnessTrackBar.Minimum; - displayPinBrightnessTrackBar.Value = (int)((config.Pin.DisplayPinBrightness / (double)255) * (range)) + displayPinBrightnessTrackBar.Minimum; + int range = displayPinBrightnessTrackBar.Maximum - displayPinBrightnessTrackBar.Minimum; + displayPinBrightnessTrackBar.Value = (int)((cfg.DisplayPinBrightness / (double)255) * (range)) + displayPinBrightnessTrackBar.Minimum; - displayPwmCheckBox.Checked = config.Pin.DisplayPinPWM; - } + displayPwmCheckBox.Checked = cfg.DisplayPinPWM; } private void _MultiSelectOptions(bool state) @@ -156,15 +156,18 @@ private void _MultiSelectOptions(bool state) virtual internal OutputConfigItem syncToConfig(OutputConfigItem config) { - config.Pin.DisplayPin = displayPortComboBox.Text + displayPinComboBox.Text; - - if (selectMultiplePinsCheckBox.Checked) - config.Pin.DisplayPin = MultiPinSelectPanel?.GetSelectedPinString(); + var cfg = new Output() + { + DisplayPin = displayPortComboBox.Text + displayPinComboBox.Text, + }; - config.Pin.DisplayPinBrightness = (byte)(255 * ((displayPinBrightnessTrackBar.Value) / (double)(displayPinBrightnessTrackBar.Maximum))); + if (selectMultiplePinsCheckBox.Checked) + cfg.DisplayPin = MultiPinSelectPanel?.GetSelectedPinString(); - config.Pin.DisplayPinPWM = pwmPinPanel.Enabled && displayPwmCheckBox.Checked; + cfg.DisplayPinBrightness = (byte)(255 * ((displayPinBrightnessTrackBar.Value) / (double)(displayPinBrightnessTrackBar.Maximum))); + cfg.DisplayPinPWM = pwmPinPanel.Enabled && displayPwmCheckBox.Checked; + config.Device = cfg; return config; } diff --git a/UI/Panels/Output/DisplayPinPanel.resx b/UI/Panels/Output/DisplayPinPanel.resx index b51f97696..faeb716bd 100644 --- a/UI/Panels/Output/DisplayPinPanel.resx +++ b/UI/Panels/Output/DisplayPinPanel.resx @@ -119,20 +119,20 @@ - 2, 3 + 3, 5 - 2, 3, 3, 3 + 3, 5, 4, 5 - 122, 0 + 181, 0 - 47, 0 + 68, 0 - 47, 21 + 68, 28 @@ -157,13 +157,10 @@ NoControl - 27, 45 - - - 2, 0, 2, 0 + 38, 69 - 438, 32 + 661, 50 15 @@ -196,13 +193,10 @@ NoControl - 465, 45 - - - 2, 0, 2, 0 + 699, 69 - 29, 13 + 42, 20 16 @@ -235,13 +229,10 @@ NoControl - 0, 45 - - - 2, 0, 2, 0 + 0, 69 - 27, 13 + 38, 20 14 @@ -270,8 +261,11 @@ 0, 0 + + 4, 5, 4, 5 + - 494, 45 + 741, 69 16 @@ -292,10 +286,13 @@ Fill - 106, 0 + 159, 0 + + + 4, 5, 4, 5 - 494, 77 + 741, 119 17 @@ -316,10 +313,13 @@ NoControl - 28, 3 + 42, 5 + + + 4, 0, 4, 0 - 75, 25 + 112, 38 15 @@ -348,8 +348,11 @@ 0, 0 + + 4, 5, 4, 5 + - 106, 77 + 159, 119 7 @@ -370,10 +373,13 @@ Fill - 0, 155 + 0, 238 + + + 4, 5, 4, 5 - 600, 77 + 900, 119 15 @@ -394,10 +400,13 @@ NoControl - 109, 1 + 164, 2 + + + 4, 5, 4, 5 - 167, 22 + 250, 34 9 @@ -421,10 +430,13 @@ NoControl - 9, 5 + 14, 8 + + + 4, 0, 4, 0 - 97, 13 + 146, 20 8 @@ -451,16 +463,16 @@ Top - 0, 129 + 0, 198 - 2, 1, 2, 1 + 3, 2, 3, 2 - 0, 26 + 0, 40 - 600, 26 + 900, 40 16 @@ -478,19 +490,19 @@ 1 - 54, 3 + 78, 5 - 2, 3, 3, 3 + 3, 5, 4, 5 - 235, 0 + 350, 0 - 47, 0 + 68, 0 - 137, 21 + 204, 28 6 @@ -514,10 +526,10 @@ 0, 0 - 0, 3, 0, 3 + 0, 5, 0, 5 - 194, 28 + 291, 43 7 @@ -544,10 +556,13 @@ NoControl - 3, 6 + 4, 9 + + + 4, 5, 4, 5 - 92, 17 + 135, 24 7 @@ -583,19 +598,19 @@ Fill - 0, 28 + 0, 43 - 4, 5, 4, 5 + 6, 8, 6, 8 - 150, 100 + 225, 154 - 3, 3, 3, 3 + 4, 5, 4, 5 - 194, 101 + 291, 155 0 @@ -604,7 +619,7 @@ MultiPinSelectPanel - MobiFlight.UI.Panels.PinSelectPanel, MFConnector, Version=9.5.0.3, Culture=neutral, PublicKeyToken=null + MobiFlight.UI.Panels.PinSelectPanel, MFConnector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null PinSelectPanel @@ -616,10 +631,13 @@ Fill - 106, 0 + 159, 0 + + + 4, 5, 4, 5 - 194, 129 + 291, 198 12 @@ -646,13 +664,16 @@ Right - 300, 0 + 450, 0 + + + 4, 5, 4, 5 - 300, 0 + 450, 0 - 300, 129 + 450, 198 1 @@ -673,10 +694,13 @@ NoControl - 6, 7 + 9, 11 + + + 4, 0, 4, 0 - 97, 13 + 146, 20 11 @@ -705,8 +729,11 @@ 0, 0 + + 4, 5, 4, 5 + - 106, 129 + 159, 198 0 @@ -729,8 +756,11 @@ 0, 0 + + 4, 5, 4, 5 + - 600, 129 + 900, 198 10 @@ -751,10 +781,13 @@ True - 6, 13 + 9, 20 + + + 4, 5, 4, 5 - 600, 232 + 900, 357 DisplayPinPanel diff --git a/UI/Panels/Output/DisplayShiftRegisterPanel.cs b/UI/Panels/Output/DisplayShiftRegisterPanel.cs index 498480e0f..3aaffd301 100644 --- a/UI/Panels/Output/DisplayShiftRegisterPanel.cs +++ b/UI/Panels/Output/DisplayShiftRegisterPanel.cs @@ -1,11 +1,6 @@ -using System; +using MobiFlight.OutputConfig; +using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows.Forms; namespace MobiFlight.UI.Panels @@ -26,20 +21,28 @@ public DisplayShiftRegisterPanel() internal void SyncFromConfig(OutputConfigItem config) { + if (!(config.Device is ShiftRegister)) return; + + var shiftRegister = config.Device as ShiftRegister; // pre-select display stuff - if (config.ShiftRegister != null && config.ShiftRegister.Address != null) + if (shiftRegister.Address != null) { - if (!ComboBoxHelper.SetSelectedItem(shiftRegistersComboBox, config.ShiftRegister.Address)) + if (!ComboBoxHelper.SetSelectedItem(shiftRegistersComboBox, shiftRegister.Address)) { - Log.Instance.log($"Exception on selecting item {config.ShiftRegister.Address} in Shift Register ComboBox.", LogSeverity.Error); + Log.Instance.log($"Exception on selecting item {shiftRegister.Address} in Shift Register ComboBox.", LogSeverity.Error); } } UpdatePinList(); - if (config.ShiftRegister.Pin != null) { + if (shiftRegister.Pin != null) { OutputConfigItem cfg = config.Clone() as OutputConfigItem; - cfg.Pin.DisplayPin = config.ShiftRegister.Pin; + cfg.Device = new Output() + { + DisplayPin = shiftRegister.Pin, + DisplayPinBrightness = shiftRegister.Brightness, + DisplayPinPWM = shiftRegister.PWM + }; displayPinPanel.syncFromConfig(cfg); } } @@ -78,12 +81,17 @@ public void SetAddresses(List ports) internal OutputConfigItem syncToConfig(OutputConfigItem config) { - config.ShiftRegister.Address = shiftRegistersComboBox.SelectedValue as String; + config.Device = new ShiftRegister(); + var shiftRegister = config.Device as ShiftRegister; + + shiftRegister.Address = shiftRegistersComboBox.SelectedValue as String; OutputConfigItem cfg = config.Clone() as OutputConfigItem; cfg = displayPinPanel.syncToConfig(cfg); - config.ShiftRegister.Pin = cfg.Pin.DisplayPin; + shiftRegister.Pin = (cfg.Device as Output).DisplayPin; + shiftRegister.Brightness = (cfg.Device as Output).DisplayPinBrightness; + shiftRegister.PWM = (cfg.Device as Output).DisplayPinPWM; return config; } internal void SetNumModules(int num8bitRegisters) diff --git a/UI/Panels/Output/LCDDisplayPanel.cs b/UI/Panels/Output/LCDDisplayPanel.cs index 00aa0eb8a..1044d47e1 100644 --- a/UI/Panels/Output/LCDDisplayPanel.cs +++ b/UI/Panels/Output/LCDDisplayPanel.cs @@ -1,13 +1,9 @@ -using System; +using MobiFlight.OutputConfig; +using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; using System.Data; using System.Linq; -using System.Text; using System.Windows.Forms; -using MobiFlight.Base; -using MobiFlight.UI.Panels.Config; namespace MobiFlight.UI.Panels { @@ -45,17 +41,20 @@ public void DisableOutputDefinition() internal void syncFromConfig(OutputConfigItem config) { + if (!(config.Device is LcdDisplay)) return; + + var lcdDisplay = config.Device as LcdDisplay; // preselect display stuff - if (config.LcdDisplay.Address != null) + if (lcdDisplay.Address != null) { - if (!ComboBoxHelper.SetSelectedItem(DisplayComboBox, config.LcdDisplay.Address)) + if (!ComboBoxHelper.SetSelectedItem(DisplayComboBox, lcdDisplay.Address)) { // TODO: provide error message - Log.Instance.log($"Exception on selecting item {config.LcdDisplay.Address} in LCD address ComboBox.", LogSeverity.Error); + Log.Instance.log($"Exception on selecting item {lcdDisplay.Address} in LCD address ComboBox.", LogSeverity.Error); } } - if (config.LcdDisplay.Lines.Count > 0) - lcdDisplayTextBox.Lines = config.LcdDisplay.Lines.ToArray(); + if (lcdDisplay.Lines.Count > 0) + lcdDisplayTextBox.Lines = lcdDisplay.Lines.ToArray(); } internal OutputConfigItem syncToConfig(OutputConfigItem config) @@ -63,13 +62,12 @@ internal OutputConfigItem syncToConfig(OutputConfigItem config) // check if this is currently selected and properly initialized if (DisplayComboBox.SelectedValue == null) return config; - config.LcdDisplay.Address = DisplayComboBox.SelectedValue.ToString().Split(',').ElementAt(0); - - config.LcdDisplay.Lines.Clear(); - foreach (String line in lcdDisplayTextBox.Lines) + config.Device = new LcdDisplay() { - config.LcdDisplay.Lines.Add(line); - } + Address = DisplayComboBox.SelectedValue.ToString().Split(',').ElementAt(0), + Lines = new List(lcdDisplayTextBox.Lines) + }; + return config; } diff --git a/UI/Panels/Output/ServoPanel.cs b/UI/Panels/Output/ServoPanel.cs index 5e45268ef..f98822e1f 100644 --- a/UI/Panels/Output/ServoPanel.cs +++ b/UI/Panels/Output/ServoPanel.cs @@ -1,10 +1,6 @@ -using System; +using MobiFlight.OutputConfig; +using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; using System.Windows.Forms; namespace MobiFlight.UI.Panels @@ -45,25 +41,31 @@ public void SetAdresses(List pins) public void syncFromConfig(OutputConfigItem config) { - if (!ComboBoxHelper.SetSelectedItem(servoAddressesComboBox, config.Servo.Address)) + if (!(config.Device is Servo)) return; + + var servo = config.Device as Servo; + + if (!ComboBoxHelper.SetSelectedItem(servoAddressesComboBox, servo.Address)) { // TODO: provide error message - Log.Instance.log($"Exception on selecting item {config.Servo.Address} in Servo address ComboBox.", LogSeverity.Error); + Log.Instance.log($"Exception on selecting item {servo.Address} in Servo address ComboBox.", LogSeverity.Error); } - if (config.Servo.Min != null) minValueTextBox.Text = config.Servo.Min; - if (config.Servo.Max != null) maxValueTextBox.Text = config.Servo.Max; - if (config.Servo.MaxRotationPercent != null) maxRotationPercentNumericUpDown.Text = config.Servo.MaxRotationPercent; + if (servo.Min != null) minValueTextBox.Text = servo.Min; + if (servo.Max != null) maxValueTextBox.Text = servo.Max; + if (servo.MaxRotationPercent != null) maxRotationPercentNumericUpDown.Text = servo.MaxRotationPercent; } internal OutputConfigItem syncToConfig(OutputConfigItem config) { + config.Device = new Servo(); + var servo = config.Device as Servo; if (servoAddressesComboBox.SelectedValue != null) { - config.Servo.Address = servoAddressesComboBox.SelectedValue.ToString(); - config.Servo.Min = minValueTextBox.Text; - config.Servo.Max = maxValueTextBox.Text; - config.Servo.MaxRotationPercent = maxRotationPercentNumericUpDown.Text; + servo.Address = servoAddressesComboBox.SelectedValue.ToString(); + servo.Min = minValueTextBox.Text; + servo.Max = maxValueTextBox.Text; + servo.MaxRotationPercent = maxRotationPercentNumericUpDown.Text; } return config; diff --git a/UI/Panels/Output/StepperPanel.cs b/UI/Panels/Output/StepperPanel.cs index 8c0335042..dfad51c58 100644 --- a/UI/Panels/Output/StepperPanel.cs +++ b/UI/Panels/Output/StepperPanel.cs @@ -31,35 +31,42 @@ public void ShowManualCalibration(Boolean state) internal void syncFromConfig(OutputConfigItem config) { + if (!(config.Device is OutputConfig.Stepper)) return; + + var configStepper = config.Device as OutputConfig.Stepper; + // stepper initialization - if (!ComboBoxHelper.SetSelectedItem(stepperAddressesComboBox, config.Stepper.Address)) + if (!ComboBoxHelper.SetSelectedItem(stepperAddressesComboBox, configStepper.Address)) { // TODO: provide error message - Log.Instance.log($"Exception on selecting item {config.Stepper.Address} in Stepper address ComboBox.", LogSeverity.Debug); + Log.Instance.log($"Exception on selecting item {configStepper.Address} in Stepper address ComboBox.", LogSeverity.Debug); } - inputRevTextBox.Text = config.Stepper.InputRev.ToString(); - outputRevTextBox.Text = config.Stepper.OutputRev.ToString(); + inputRevTextBox.Text = configStepper.InputRev.ToString(); + outputRevTextBox.Text = configStepper.OutputRev.ToString(); - if (config.Stepper.Speed>0) - SpeedTextBox.Text = config.Stepper.Speed.ToString(); + if (configStepper.Speed>0) + SpeedTextBox.Text = configStepper.Speed.ToString(); - if (config.Stepper.Acceleration>0) - AccelerationTextBox.Text = config.Stepper.Acceleration.ToString(); + if (configStepper.Acceleration>0) + AccelerationTextBox.Text = configStepper.Acceleration.ToString(); - CompassModeCheckBox.Checked = config.Stepper.CompassMode; + CompassModeCheckBox.Checked = configStepper.CompassMode; } internal OutputConfigItem syncToConfig(OutputConfigItem config) { if (stepperAddressesComboBox.SelectedValue != null) { - config.Stepper.Address = stepperAddressesComboBox.SelectedValue.ToString(); - config.Stepper.InputRev = Int16.Parse(inputRevTextBox.Text); - config.Stepper.OutputRev = Int16.Parse(outputRevTextBox.Text); - config.Stepper.CompassMode = CompassModeCheckBox.Checked; - config.Stepper.Acceleration = Int16.Parse(AccelerationTextBox.Text); - config.Stepper.Speed = Int16.Parse(SpeedTextBox.Text); + config.Device = new OutputConfig.Stepper() + { + Address = stepperAddressesComboBox.SelectedValue.ToString(), + InputRev = Int16.Parse(inputRevTextBox.Text), + OutputRev = Int16.Parse(outputRevTextBox.Text), + CompassMode = CompassModeCheckBox.Checked, + Acceleration = Int16.Parse(AccelerationTextBox.Text), + Speed = Int16.Parse(SpeedTextBox.Text) + }; } return config; } diff --git a/UI/Panels/OutputConfigPanel.Designer.cs b/UI/Panels/OutputConfigPanel.Designer.cs deleted file mode 100644 index 67b9399da..000000000 --- a/UI/Panels/OutputConfigPanel.Designer.cs +++ /dev/null @@ -1,506 +0,0 @@ -namespace MobiFlight.UI.Panels -{ - partial class OutputConfigPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OutputConfigPanel)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - this.dataGridViewConfig = new System.Windows.Forms.DataGridView(); - this.active = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.guid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.moduleSerial = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.OutputName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.OutputType = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.FsuipcOffset = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.fsuipcValueColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.arcazeValueColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.EditButtonColumn = new System.Windows.Forms.DataGridViewButtonColumn(); - this.dataGridViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components); - this.copyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pasteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.duplicateRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.dataSetConfig = new System.Data.DataSet(); - this.configDataTable = new System.Data.DataTable(); - this.activeDataColumn = new System.Data.DataColumn(); - this.fsuipcOffsetDataColumn = new System.Data.DataColumn(); - this.converterDataColumn = new System.Data.DataColumn(); - this.maskDataColumn = new System.Data.DataColumn(); - this.usbArcazePinDataColumn = new System.Data.DataColumn(); - this.typeDataColumn = new System.Data.DataColumn(); - this.durationDataColumn = new System.Data.DataColumn(); - this.comparisonDataColumn = new System.Data.DataColumn(); - this.comparisonValueDataColumn = new System.Data.DataColumn(); - this.descriptionDataColumn = new System.Data.DataColumn(); - this.fsuipcSizeDataColumn = new System.Data.DataColumn(); - this.triggerDataColumn = new System.Data.DataColumn(); - this.arcazeSerialDataColumn = new System.Data.DataColumn(); - this.settingsColumn = new System.Data.DataColumn(); - this.guidDataColumn = new System.Data.DataColumn(); - this.outputDataColumn = new System.Data.DataColumn(); - this.outputTypeDataColumn = new System.Data.DataColumn(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.dataGridViewConfig)).BeginInit(); - this.dataGridViewContextMenuStrip.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dataSetConfig)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.configDataTable)).BeginInit(); - this.SuspendLayout(); - // - // dataGridViewConfig - // - this.dataGridViewConfig.AllowDrop = true; - this.dataGridViewConfig.AllowUserToResizeRows = false; - this.dataGridViewConfig.AutoGenerateColumns = false; - this.dataGridViewConfig.BackgroundColor = System.Drawing.SystemColors.Window; - this.dataGridViewConfig.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.dataGridViewConfig.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.BottomCenter; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dataGridViewConfig.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; - this.dataGridViewConfig.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dataGridViewConfig.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.active, - this.guid, - this.Description, - this.moduleSerial, - this.OutputName, - this.OutputType, - this.FsuipcOffset, - this.fsuipcValueColumn, - this.arcazeValueColumn, - this.EditButtonColumn}); - this.dataGridViewConfig.ContextMenuStrip = this.dataGridViewContextMenuStrip; - this.dataGridViewConfig.DataMember = "config"; - this.dataGridViewConfig.DataSource = this.dataSetConfig; - dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle10.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dataGridViewConfig.DefaultCellStyle = dataGridViewCellStyle10; - resources.ApplyResources(this.dataGridViewConfig, "dataGridViewConfig"); - this.dataGridViewConfig.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2; - this.dataGridViewConfig.Name = "dataGridViewConfig"; - dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.BottomCenter; - dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle11.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dataGridViewConfig.RowHeadersDefaultCellStyle = dataGridViewCellStyle11; - this.dataGridViewConfig.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(0, 1, 0, 1); - this.dataGridViewConfig.RowTemplate.Height = 26; - this.dataGridViewConfig.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.dataGridViewConfig.ShowEditingIcon = false; - this.dataGridViewConfig.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.dataGridViewConfig_CellBeginEdit); - this.dataGridViewConfig.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewConfig_CellContentClick); - this.dataGridViewConfig.CellContentDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewConfig_CellContentDoubleClick); - this.dataGridViewConfig.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewConfig_CellDoubleClick); - this.dataGridViewConfig.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridViewConfig_CellEndEdit); - this.dataGridViewConfig.CellEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewConfig_CellEnter); - this.dataGridViewConfig.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.DataGridViewConfig_CellMouseDown); - this.dataGridViewConfig.CellValidated += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewConfig_CellValidated); - this.dataGridViewConfig.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.DataGridViewConfig_CellValidating); - this.dataGridViewConfig.DataBindingComplete += new System.Windows.Forms.DataGridViewBindingCompleteEventHandler(this.dataGridViewConfig_DataBindingComplete); - this.dataGridViewConfig.DefaultValuesNeeded += new System.Windows.Forms.DataGridViewRowEventHandler(this.DataGridViewConfig_DefaultValuesNeeded); - this.dataGridViewConfig.EditingControlShowing += new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.dataGridViewConfig_EditingControlShowing); - this.dataGridViewConfig.Sorted += new System.EventHandler(this.dataGridViewConfig_Sorted); - this.dataGridViewConfig.DragDrop += new System.Windows.Forms.DragEventHandler(this.dataGridViewConfig_DragDrop); - this.dataGridViewConfig.DragOver += new System.Windows.Forms.DragEventHandler(this.dataGridViewConfig_DragOver); - this.dataGridViewConfig.GiveFeedback += new System.Windows.Forms.GiveFeedbackEventHandler(this.dataGridViewConfig_GiveFeedback); - this.dataGridViewConfig.QueryContinueDrag += new System.Windows.Forms.QueryContinueDragEventHandler(this.dataGridViewConfig_QueryContinueDrag); - this.dataGridViewConfig.KeyDown += new System.Windows.Forms.KeyEventHandler(this.DataGridViewConfig_KeyUp); - this.dataGridViewConfig.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGridViewConfig_MouseDown); - this.dataGridViewConfig.MouseMove += new System.Windows.Forms.MouseEventHandler(this.dataGridViewConfig_MouseMove); - // - // active - // - this.active.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.ColumnHeader; - this.active.DataPropertyName = "active"; - this.active.FillWeight = 50F; - resources.ApplyResources(this.active, "active"); - this.active.Name = "active"; - // - // guid - // - this.guid.DataPropertyName = "guid"; - resources.ApplyResources(this.guid, "guid"); - this.guid.Name = "guid"; - this.guid.ReadOnly = true; - // - // Description - // - this.Description.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.Description.DataPropertyName = "description"; - dataGridViewCellStyle2.NullValue = "Doppelklicken für neuen Eintrag..."; - this.Description.DefaultCellStyle = dataGridViewCellStyle2; - this.Description.FillWeight = 1000F; - resources.ApplyResources(this.Description, "Description"); - this.Description.Name = "Description"; - // - // moduleSerial - // - this.moduleSerial.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.moduleSerial.DataPropertyName = "arcazeSerial"; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ControlLight; - this.moduleSerial.DefaultCellStyle = dataGridViewCellStyle3; - this.moduleSerial.FillWeight = 150F; - resources.ApplyResources(this.moduleSerial, "moduleSerial"); - this.moduleSerial.Name = "moduleSerial"; - this.moduleSerial.ReadOnly = true; - this.moduleSerial.Resizable = System.Windows.Forms.DataGridViewTriState.True; - // - // OutputName - // - this.OutputName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.OutputName.DataPropertyName = "OutputName"; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.ControlLight; - this.OutputName.DefaultCellStyle = dataGridViewCellStyle4; - this.OutputName.FillWeight = 150F; - resources.ApplyResources(this.OutputName, "OutputName"); - this.OutputName.Name = "OutputName"; - this.OutputName.ReadOnly = true; - // - // OutputType - // - this.OutputType.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.OutputType.DataPropertyName = "OutputType"; - dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.ControlLight; - this.OutputType.DefaultCellStyle = dataGridViewCellStyle5; - resources.ApplyResources(this.OutputType, "OutputType"); - this.OutputType.Name = "OutputType"; - this.OutputType.ReadOnly = true; - // - // FsuipcOffset - // - this.FsuipcOffset.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.FsuipcOffset.DataPropertyName = "fsuipcOffset"; - dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.ControlLight; - this.FsuipcOffset.DefaultCellStyle = dataGridViewCellStyle6; - resources.ApplyResources(this.FsuipcOffset, "FsuipcOffset"); - this.FsuipcOffset.Name = "FsuipcOffset"; - this.FsuipcOffset.ReadOnly = true; - // - // fsuipcValueColumn - // - this.fsuipcValueColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.ControlLight; - this.fsuipcValueColumn.DefaultCellStyle = dataGridViewCellStyle7; - this.fsuipcValueColumn.FillWeight = 150F; - resources.ApplyResources(this.fsuipcValueColumn, "fsuipcValueColumn"); - this.fsuipcValueColumn.Name = "fsuipcValueColumn"; - this.fsuipcValueColumn.ReadOnly = true; - this.fsuipcValueColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.fsuipcValueColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // arcazeValueColumn - // - this.arcazeValueColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.ControlLight; - this.arcazeValueColumn.DefaultCellStyle = dataGridViewCellStyle8; - this.arcazeValueColumn.FillWeight = 150F; - resources.ApplyResources(this.arcazeValueColumn, "arcazeValueColumn"); - this.arcazeValueColumn.Name = "arcazeValueColumn"; - this.arcazeValueColumn.ReadOnly = true; - this.arcazeValueColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; - // - // EditButtonColumn - // - dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.ControlLight; - dataGridViewCellStyle9.NullValue = "..."; - this.EditButtonColumn.DefaultCellStyle = dataGridViewCellStyle9; - resources.ApplyResources(this.EditButtonColumn, "EditButtonColumn"); - this.EditButtonColumn.Name = "EditButtonColumn"; - this.EditButtonColumn.Text = "..."; - this.EditButtonColumn.UseColumnTextForButtonValue = true; - // - // dataGridViewContextMenuStrip - // - this.dataGridViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.copyToolStripMenuItem, - this.pasteToolStripMenuItem, - this.toolStripMenuItem1, - this.duplicateRowToolStripMenuItem, - this.deleteRowToolStripMenuItem, - this.toolStripMenuItem2, - this.testToolStripMenuItem}); - this.dataGridViewContextMenuStrip.Name = "dataGridViewContextMenuStrip"; - resources.ApplyResources(this.dataGridViewContextMenuStrip, "dataGridViewContextMenuStrip"); - this.dataGridViewContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.DataGridViewContextMenuStrip_Opening); - // - // copyToolStripMenuItem - // - resources.ApplyResources(this.copyToolStripMenuItem, "copyToolStripMenuItem"); - this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; - this.copyToolStripMenuItem.Click += new System.EventHandler(this.copyToolStripMenuItem_Click); - // - // pasteToolStripMenuItem - // - resources.ApplyResources(this.pasteToolStripMenuItem, "pasteToolStripMenuItem"); - this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; - this.pasteToolStripMenuItem.Click += new System.EventHandler(this.pasteToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - resources.ApplyResources(this.toolStripMenuItem1, "toolStripMenuItem1"); - // - // duplicateRowToolStripMenuItem - // - this.duplicateRowToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - resources.ApplyResources(this.duplicateRowToolStripMenuItem, "duplicateRowToolStripMenuItem"); - this.duplicateRowToolStripMenuItem.Image = global::MobiFlight.Properties.Resources.star_yellow_new; - this.duplicateRowToolStripMenuItem.Name = "duplicateRowToolStripMenuItem"; - this.duplicateRowToolStripMenuItem.Click += new System.EventHandler(this.DuplicateRowToolStripMenuItem_Click); - // - // deleteRowToolStripMenuItem - // - this.deleteRowToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - resources.ApplyResources(this.deleteRowToolStripMenuItem, "deleteRowToolStripMenuItem"); - this.deleteRowToolStripMenuItem.Image = global::MobiFlight.Properties.Resources.delete2; - this.deleteRowToolStripMenuItem.Name = "deleteRowToolStripMenuItem"; - this.deleteRowToolStripMenuItem.Click += new System.EventHandler(this.DeleteRowToolStripMenuItem_Click); - // - // dataSetConfig - // - this.dataSetConfig.DataSetName = "outputs"; - this.dataSetConfig.Tables.AddRange(new System.Data.DataTable[] { - this.configDataTable}); - // - // configDataTable - // - this.configDataTable.Columns.AddRange(new System.Data.DataColumn[] { - this.activeDataColumn, - this.fsuipcOffsetDataColumn, - this.converterDataColumn, - this.maskDataColumn, - this.usbArcazePinDataColumn, - this.typeDataColumn, - this.durationDataColumn, - this.comparisonDataColumn, - this.comparisonValueDataColumn, - this.descriptionDataColumn, - this.fsuipcSizeDataColumn, - this.triggerDataColumn, - this.arcazeSerialDataColumn, - this.settingsColumn, - this.guidDataColumn, - this.outputDataColumn, - this.outputTypeDataColumn}); - this.configDataTable.TableName = "config"; - this.configDataTable.RowChanged += new System.Data.DataRowChangeEventHandler(this.ConfigDataTable_RowChanged_1); - this.configDataTable.TableNewRow += new System.Data.DataTableNewRowEventHandler(this.ConfigDataTable_TableNewRow); - // - // activeDataColumn - // - this.activeDataColumn.Caption = "Active"; - this.activeDataColumn.ColumnName = "active"; - this.activeDataColumn.DataType = typeof(bool); - this.activeDataColumn.DefaultValue = true; - // - // fsuipcOffsetDataColumn - // - this.fsuipcOffsetDataColumn.Caption = "FsuipcOffset"; - this.fsuipcOffsetDataColumn.ColumnName = "fsuipcOffset"; - // - // converterDataColumn - // - this.converterDataColumn.Caption = "Converter"; - this.converterDataColumn.ColumnName = "converter"; - this.converterDataColumn.DefaultValue = "Boolean"; - // - // maskDataColumn - // - this.maskDataColumn.Caption = "Mask"; - this.maskDataColumn.ColumnName = "mask"; - // - // usbArcazePinDataColumn - // - this.usbArcazePinDataColumn.Caption = "USBArcazePin"; - this.usbArcazePinDataColumn.ColumnName = "usbArcazePin"; - // - // typeDataColumn - // - this.typeDataColumn.Caption = "Type"; - this.typeDataColumn.ColumnName = "type"; - // - // durationDataColumn - // - this.durationDataColumn.Caption = "Duration"; - this.durationDataColumn.ColumnName = "duration"; - // - // comparisonDataColumn - // - this.comparisonDataColumn.Caption = "Comparison"; - this.comparisonDataColumn.ColumnName = "comparison"; - this.comparisonDataColumn.DefaultValue = "="; - // - // comparisonValueDataColumn - // - this.comparisonValueDataColumn.Caption = "ComparisonValue"; - this.comparisonValueDataColumn.ColumnName = "comparisonValue"; - // - // descriptionDataColumn - // - this.descriptionDataColumn.AllowDBNull = false; - this.descriptionDataColumn.Caption = "Description"; - this.descriptionDataColumn.ColumnName = "description"; - this.descriptionDataColumn.DefaultValue = ""; - // - // fsuipcSizeDataColumn - // - this.fsuipcSizeDataColumn.Caption = "Fsuipc Size"; - this.fsuipcSizeDataColumn.ColumnName = "fsuipcSize"; - this.fsuipcSizeDataColumn.DefaultValue = "1"; - this.fsuipcSizeDataColumn.MaxLength = 3; - // - // triggerDataColumn - // - this.triggerDataColumn.ColumnName = "trigger"; - this.triggerDataColumn.DefaultValue = "change"; - // - // arcazeSerialDataColumn - // - this.arcazeSerialDataColumn.ColumnName = "arcazeSerial"; - this.arcazeSerialDataColumn.DefaultValue = ""; - // - // settingsColumn - // - this.settingsColumn.Caption = "settings"; - this.settingsColumn.ColumnName = "settings"; - this.settingsColumn.DataType = typeof(object); - // - // guidDataColumn - // - this.guidDataColumn.ColumnMapping = System.Data.MappingType.Attribute; - this.guidDataColumn.ColumnName = "guid"; - this.guidDataColumn.DataType = typeof(System.Guid); - // - // outputDataColumn - // - this.outputDataColumn.Caption = "Output"; - this.outputDataColumn.ColumnMapping = System.Data.MappingType.Hidden; - this.outputDataColumn.ColumnName = "OutputName"; - // - // outputTypeDataColumn - // - this.outputTypeDataColumn.Caption = "Type"; - this.outputTypeDataColumn.ColumnMapping = System.Data.MappingType.Hidden; - this.outputTypeDataColumn.ColumnName = "OutputType"; - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2"); - // - // testToolStripMenuItem - // - resources.ApplyResources(this.testToolStripMenuItem, "testToolStripMenuItem"); - this.testToolStripMenuItem.Name = "testToolStripMenuItem"; - this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click); - // - // OutputConfigPanel - // - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.dataGridViewConfig); - this.DoubleBuffered = true; - this.Name = "OutputConfigPanel"; - ((System.ComponentModel.ISupportInitialize)(this.dataGridViewConfig)).EndInit(); - this.dataGridViewContextMenuStrip.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dataSetConfig)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.configDataTable)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - public System.Windows.Forms.DataGridView dataGridViewConfig; - private System.Windows.Forms.ContextMenuStrip dataGridViewContextMenuStrip; - private System.Windows.Forms.ToolStripMenuItem duplicateRowToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem deleteRowToolStripMenuItem; - private System.Data.DataSet dataSetConfig; - private System.Data.DataColumn activeDataColumn; - private System.Data.DataColumn fsuipcOffsetDataColumn; - private System.Data.DataColumn converterDataColumn; - private System.Data.DataColumn maskDataColumn; - private System.Data.DataColumn usbArcazePinDataColumn; - private System.Data.DataColumn typeDataColumn; - private System.Data.DataColumn durationDataColumn; - private System.Data.DataColumn comparisonDataColumn; - private System.Data.DataColumn comparisonValueDataColumn; - private System.Data.DataColumn descriptionDataColumn; - private System.Data.DataColumn fsuipcSizeDataColumn; - private System.Data.DataColumn triggerDataColumn; - private System.Data.DataColumn arcazeSerialDataColumn; - private System.Data.DataColumn settingsColumn; - private System.Data.DataColumn guidDataColumn; - - private System.Data.DataTable configDataTable; - private System.Data.DataColumn outputDataColumn; - private System.Data.DataColumn outputTypeDataColumn; - private System.Windows.Forms.ToolStripMenuItem copyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.DataGridViewCheckBoxColumn active; - private System.Windows.Forms.DataGridViewTextBoxColumn guid; - private System.Windows.Forms.DataGridViewTextBoxColumn Description; - private System.Windows.Forms.DataGridViewTextBoxColumn moduleSerial; - private System.Windows.Forms.DataGridViewTextBoxColumn OutputName; - private System.Windows.Forms.DataGridViewTextBoxColumn OutputType; - private System.Windows.Forms.DataGridViewTextBoxColumn FsuipcOffset; - private System.Windows.Forms.DataGridViewTextBoxColumn fsuipcValueColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn arcazeValueColumn; - private System.Windows.Forms.DataGridViewButtonColumn EditButtonColumn; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem; - } -} diff --git a/UI/Panels/OutputConfigPanel.cs b/UI/Panels/OutputConfigPanel.cs deleted file mode 100644 index de30138c6..000000000 --- a/UI/Panels/OutputConfigPanel.cs +++ /dev/null @@ -1,1134 +0,0 @@ -using MobiFlight.Base; -using MobiFlight.UI.Dialogs; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Windows.Forms; - -namespace MobiFlight.UI.Panels -{ - public partial class OutputConfigPanel : UserControl - { - public event EventHandler SettingsChanged; - public event EventHandler SettingsDialogRequested; - private object[] EditedItem = null; - - private int lastClickedRow = -1; - private List SelectedGuids = new List(); - //private DataTable configDataTable; - - private Point DataGridTopLeftPoint = new Point(); - private Point DataGridBottomRightPoint = new Point(); - private Rectangle RectangleMouseDown; - private int RowIndexMouseDown; - private int RowCurrentDragHighlight = 0; - private int RowNeighbourDragHighlight = 0; - private bool IsInCurrentRowTopHalf; - private System.Windows.Forms.Timer DropTimer = new Timer(); - private Bitmap CurrentCursorBitmap; - private string LastSortingColumnName = string.Empty; - private SortOrder LastSortingOrder = SortOrder.None; - - public OutputConfigPanel() - { - InitializeComponent(); - Init(); - } - - private void Init() - { - dataGridViewConfig.DataMember = null; - dataGridViewConfig.DataSource = configDataTable; - dataGridViewConfig.Columns["Description"].DefaultCellStyle.NullValue = i18n._tr("uiLabelDoubleClickToAddConfig"); - dataGridViewConfig.Columns["EditButtonColumn"].DefaultCellStyle.NullValue = "..."; - - dataGridViewConfig.RowsAdded += new DataGridViewRowsAddedEventHandler(DataGridViewConfig_RowsAdded); - - configDataTable.RowChanged += new DataRowChangeEventHandler(ConfigDataTable_RowChanged); - configDataTable.RowDeleted += new DataRowChangeEventHandler(ConfigDataTable_RowChanged); - configDataTable.TableCleared += new DataTableClearEventHandler((o,a)=> { SettingsChanged?.Invoke(this, null); }); - - Helper.DoubleBufferedDGV(dataGridViewConfig, true); - - DropTimer.Interval = 400; - DropTimer.Tick += DropTimer_Tick; - - dataGridViewConfig.SelectionChanged += (s, e) => { - if (testToolStripMenuItem.Checked) - { - // this disables the currently tested item - UpdateSingleItemTestMode(); - } - - var AtLeastOneRowSelectedAndNotLastRow = dataGridViewConfig.SelectedRows.Count > 0 && !dataGridViewConfig.SelectedRows[0].IsNewRow; - testToolStripMenuItem.Enabled = AtLeastOneRowSelectedAndNotLastRow; - }; - } - - public ExecutionManager ExecutionManager { get; set; } - - public DataSet DataSetConfig { get { return dataSetConfig; } } - public DataTable ConfigDataTable { get { return configDataTable; } } - - public DataGridView DataGridViewConfig { get { return dataGridViewConfig; } } - - public OutputConfigItem ItemInTestMode { get; private set; } - - void DataGridViewConfig_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) - { - // if datagridviewconfig.RowCount == 1 this means that only the "new line" is added yet - /* - if (e.RowIndex != -1 && dataGridViewConfig.RowCount != 1) - { - (sender as DataGridView).Rows[e.RowIndex].Cells["active"].Style.BackColor - = (sender as DataGridView).DefaultCellStyle.BackColor; - - (sender as DataGridView).Rows[e.RowIndex].Cells["description"].Style.BackColor - = (sender as DataGridView).DefaultCellStyle.BackColor; - } - * */ - } - - /// - /// gets triggered if user changes values in the data grid - /// - private void DataGridViewConfig_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) - { - if ((e.FormattedValue as String) == "") return; - - switch (dataGridViewConfig[e.ColumnIndex, e.RowIndex].OwningColumn.Name) - { - case "FsuipcOffset": - try - { - Int32 tmp = Int32.Parse((e.FormattedValue as String).Replace("0x", ""), System.Globalization.NumberStyles.HexNumber); - } - catch - { - e.Cancel = true; - MessageBox.Show( - i18n._tr("uiMessageInvalidValueHexOnly"), - i18n._tr("InputValidation"), - MessageBoxButtons.OK, - MessageBoxIcon.Error); - } - break; - } - - } //DataGridViewConfig_CellValidating() - - /// - /// click event when button in gridview gets clicked - /// - /// - /// - private void DataGridViewConfig_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - // handle clicks on header cells or row-header cells - if (e.RowIndex < 0 || e.ColumnIndex < 0) return; - - switch (dataGridViewConfig[e.ColumnIndex, e.RowIndex].OwningColumn.Name) - { - case "FsuipcOffset": - case "fsuipcValueColumn": - case "arcazeValueColumn": - case "moduleSerial": - case "EditButtonColumn": - case "OutputName": - case "OutputType": - var Row = dataGridViewConfig.Rows[e.RowIndex]; - bool isNew = Row.IsNewRow; - if (isNew) - { - MessageBox.Show(i18n._tr("uiMessageConfigLineNotSavedYet"), - i18n._tr("Hint")); - return; - } //if - - OutputConfigItem cfg; - DataRow DataRow = null; - bool create = false; - if (isNew) - { - cfg = new OutputConfigItem(); - } - else - { - DataRow = (Row.DataBoundItem as DataRowView).Row; - - // the row had been saved but no config object has been created - // TODO: move this logic to an appropriate event, e.g. when leaving the gridrow focus of the new row - if (DataRow["settings"].GetType() == typeof(System.DBNull)) - { - DataRow["settings"] = new OutputConfigItem(); - } - - cfg = DataRow["settings"] as OutputConfigItem; - } - EditConfigWithWizard( - DataRow, - cfg, - create); - - dataGridViewConfig.EndEdit(); - break; - case "active": - // always end editing to store changes - dataGridViewConfig.EndEdit(); - break; - } - } - - /// - /// when using tab in the grid view, the focus ignores readonly cell and jumps ahead to the next cell - /// - /// - /// - private void DataGridViewConfig_CellEnter(object sender, DataGridViewCellEventArgs e) - { - if (dataGridViewConfig[e.ColumnIndex, e.RowIndex].ReadOnly) - { - SendKeys.Send("{TAB}"); - } - } - - private void DeleteRowToolStripMenuItem_Click(object sender, EventArgs e) - { - // do somehting here - foreach (DataGridViewRow row in dataGridViewConfig.SelectedRows) - { - // we cannot delete a row which hasn't been saved yet - if (row.IsNewRow) continue; - dataGridViewConfig.Rows.Remove(row); - } - } - - /// - /// this method is used to select the current row so that the context menu events may detect the current row - /// - /// - /// - private void DataGridViewConfig_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) - { - lastClickedRow = e.RowIndex; - - if (e.Button == MouseButtons.Right) - { - if (dataGridViewConfig.IsCurrentCellInEditMode) return; - - dataGridViewConfig.EndEdit(); - - if (e.RowIndex != -1) - { - if (!(sender as DataGridView).Rows[e.RowIndex].Selected) - { - // reset all rows since we are not right clicking on a currently - // selected one - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - row.Selected = false; - } - } - - // the current one becomes selected in any case - (sender as DataGridView).Rows[e.RowIndex].Selected = true; - } - } else - { - if (e.RowIndex == -1) - { - // we know that we have clicked on the header area for sorting - SelectedGuids.Clear(); - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow != null) - SelectedGuids.Add(currentRow["guid"].ToString()); - } - } - } - } - - private void DataGridViewConfig_CellValidated(object sender, DataGridViewCellEventArgs e) - { - dataGridViewConfig.EndEdit(); - } - - private void DataGridViewConfig_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) - { - // handle clicks on header cells or row-header cells - if (e.RowIndex < 0 || e.ColumnIndex < 0) return; - - switch (dataGridViewConfig[e.ColumnIndex, e.RowIndex].OwningColumn.Name) - { - case "Description": - dataGridViewConfig.CurrentCell = dataGridViewConfig[e.ColumnIndex, e.RowIndex]; - dataGridViewConfig.BeginEdit(true); - break; - } - } - - private void DuplicateRowToolStripMenuItem_Click(object sender, EventArgs e) - { - // this is called to ensure - // that all data has been stored in - // the data table - // otherwise there can occur strange inserts of new rows - // at the first position instead of the expected one - this.Validate(); - - // do somehting here - foreach (DataGridViewRow row in dataGridViewConfig.SelectedRows) - { - // ignore new rows since they cannot be copied nor deleted - if (row.IsNewRow) continue; - - // get current config item - // duplicate it - // duplicate row - // link to new config item - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow == null) continue; - - DataRow newRow = configDataTable.NewRow(); - - foreach (DataColumn col in configDataTable.Columns) - { - newRow[col.ColumnName] = currentRow[col.ColumnName]; - } - - OutputConfigItem cfg = ((row.DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); - if (cfg != null) - { - cfg = (cfg.Clone() as OutputConfigItem); - } - else - { - cfg = new OutputConfigItem(); - } - - newRow["description"] += " " + i18n._tr("suffixCopy"); - newRow["settings"] = cfg; - newRow["guid"] = Guid.NewGuid(); - - int currentPosition = configDataTable.Rows.IndexOf(currentRow); - if (currentPosition == -1) - { - currentPosition = 1; - } - - configDataTable.Rows.InsertAt(newRow, currentPosition + 1); - - row.Selected = false; - } - } - - private void DataGridViewContextMenuStrip_Opening(object sender, CancelEventArgs e) - { - // do not show up context menu - // id there is only the new line visible - // e.Cancel = (dataGridViewConfig.Rows.Count == 1 || (lastClickedRow == dataGridViewConfig.Rows.Count - 1)); - bool isNotLastRow = (lastClickedRow != dataGridViewConfig.Rows.Count - 1); - copyToolStripMenuItem.Enabled = isNotLastRow; - pasteToolStripMenuItem.Enabled = Clipboard.Instance.OutputConfigItem != null; - duplicateRowToolStripMenuItem.Enabled = isNotLastRow; - deleteRowToolStripMenuItem.Enabled = isNotLastRow; - } - - private void DataGridViewConfig_KeyUp(object sender, KeyEventArgs e) - { - DataGridView dgv = (sender as DataGridView); - int cellIndex = 2; - - // do something - // toggle active if current key is a simple character - if (e.KeyCode.ToString().Length == 1 && !e.Control) - { - - // handle clicks on header cells or row-header cells - // Issue 1863: Check for null (nothing in the grid) so there's no crash - if (dgv.CurrentRow == null || dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - dgv.CurrentCell = dgv[cellIndex, dgv.CurrentRow.Index]; - - if (!dgv.CurrentRow.Cells[cellIndex].IsInEditMode) - { - dgv.BeginEdit(true); - if (e.KeyCode != Keys.F2) - { - - (dgv.EditingControl as TextBox).Text = (e.Shift || Control.IsKeyLocked(Keys.CapsLock)) ? e.KeyCode.ToString() : e.KeyCode.ToString().ToLower(); - (dgv.EditingControl as TextBox).Select(1, 0); - } - } - } - // un/check all rows if key is a space - else if (e.KeyCode == Keys.Space) - { - e.Handled = true; - e.SuppressKeyPress = true; - - bool isChecked = false; - if ((sender as DataGridView).SelectedRows.Count == 0) return; - - // it is assumed that the first cell is the one with the checkbox - isChecked = Boolean.Parse((sender as DataGridView).SelectedRows[0].Cells[0].Value.ToString()); - - foreach (DataGridViewRow row in (sender as DataGridView).SelectedRows) - { - row.Cells[0].Value = !isChecked; - } - - SettingsChanged?.Invoke(sender, null); - dgv.RefreshEdit(); - } - else if (e.KeyCode == Keys.Return) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - e.Handled = true; - e.SuppressKeyPress = true; - - if (!dgv.CurrentRow.Cells[cellIndex].IsInEditMode) - { - if (dgv.Name == dataGridViewConfig.Name) - { - dgv.CurrentCell = dgv[cellIndex, dgv.CurrentRow.Index]; - - OutputConfigItem cfg; - DataRow row = null; - bool create = false; - - if (dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem == null) - { - return; - } - - row = (dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row; - - // the row had been saved but no config object has been created - // TODO: move this logic to an appropriate event, e.g. when leaving the gridrow focus of the new row - if (row["settings"].GetType() == typeof(System.DBNull)) - { - row["settings"] = new OutputConfigItem(); - } - - cfg = row["settings"] as OutputConfigItem; - - EditConfigWithWizard( - row, - cfg, - create); - - dataGridViewConfig.EndEdit(); - } - } - } - else if (e.KeyCode == Keys.V && e.Control) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - int index = dgv.CurrentRow.Index; - - PasteFromClipboard(index + 1); - } - - else if (e.KeyCode == Keys.C && e.Control) - { - // handle clicks on header cells or row-header cells - if (dgv.CurrentRow.Index < 0 || dgv.CurrentCell.ColumnIndex < 0) return; - - if ((dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView)?.Row["description"] != null) - { - bool Active = (bool)(dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["active"]; - String Description = (dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["description"].ToString(); - OutputConfigItem cfg = ((dataGridViewConfig.Rows[dgv.CurrentRow.Index].DataBoundItem as DataRowView).Row["settings"] as OutputConfigItem); - - CopyToClipboard(Active, Description, cfg); - } - } - else - { - // do nothing - } - } - - private static void CopyToClipboard(bool Active, string Description, OutputConfigItem cfg) - { - System.Windows.Forms.Clipboard.SetText(Description); - Clipboard.Instance.OutputConfigActive = Active; - Clipboard.Instance.OutputConfigName = Description; - - if (cfg != null) - { - Clipboard.Instance.OutputConfigItem = cfg; - } - } - - private void PasteFromClipboard(int index) - { - this.Validate(); - DataRow currentRow = configDataTable.NewRow(); - currentRow["guid"] = Guid.NewGuid(); - currentRow["active"] = Clipboard.Instance.OutputConfigActive; - - if (Clipboard.Instance.OutputConfigName != null) - { - currentRow["description"] = Clipboard.Instance.OutputConfigName.Clone() as String; - currentRow["description"] += $" ({i18n._tr("suffixCopy")})"; - } - - if (Clipboard.Instance.OutputConfigItem != null) - { - OutputConfigItem cfg = Clipboard.Instance.OutputConfigItem.Clone() as OutputConfigItem; - currentRow["settings"] = cfg; - } - - if (currentRow.RowState == DataRowState.Detached) - { - configDataTable.Rows.InsertAt(currentRow, index); - } - - RestoreValuesInGridView(); - } - - private void DataGridViewConfig_CellDoubleClick(object sender, DataGridViewCellEventArgs e) - { - DataGridViewConfig_CellContentClick(sender, e); - } - - /// - /// initializes the config wizard and shows the modal dialog. - /// afterwards stores some values in the data set so that the visible grid columns are filled with data. - /// - /// - /// - /// - private void EditConfigWithWizard(DataRow dataRow, OutputConfigItem cfg, bool create) - { - // refactor!!! dependency to arcaze cache etc not nice - ConfigWizard wizard = new ConfigWizard(ExecutionManager, - cfg, -#if ARCAZE - ExecutionManager.getModuleCache(), - ExecutionManager.getModuleCache().GetArcazeModuleSettings(), -#endif - dataSetConfig, - dataRow["guid"].ToString(), - dataRow["description"].ToString() - ) - { - StartPosition = FormStartPosition.CenterParent - }; - wizard.SettingsDialogRequested += new EventHandler(wizard_SettingsDialogRequested); - - if (wizard.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - if (dataRow == null) return; - - if (wizard.ConfigHasChanged()) { - // we have to update the config - // using the duplicated config - // that the user edited with the wizard - dataRow["settings"] = wizard.Config; - SettingsChanged?.Invoke(cfg, null); - RestoreValuesInGridView(); - } - }; - } - - void wizard_SettingsDialogRequested(object sender, EventArgs e) - { - //(sender as InputConfigWizard).Close(); - SettingsDialogRequested?.Invoke(sender, null); - - } - - /// - /// enables the save button in toolbar after the user has changed config data - /// - void ConfigDataTable_RowChanged(object sender, DataRowChangeEventArgs e) - { - if (e.Action==DataRowAction.Add || - //e.Action == DataRowAction.Change || - e.Action == DataRowAction.Delete) - SettingsChanged?.Invoke(sender, null); - - } //configDataTable_RowChanged - - private void ConfigDataTable_TableNewRow(object sender, DataTableNewRowEventArgs e) - { - e.Row["guid"] = Guid.NewGuid(); - } - - private void ConfigDataTable_RowChanged_1(object sender, DataRowChangeEventArgs e) - { - if (e.Row["guid"] == DBNull.Value) - e.Row["guid"] = Guid.NewGuid(); - } - - private void DataGridViewConfig_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) - { - e.Row.Cells["guid"].Value = Guid.NewGuid(); - } - - private void ActivateAutoColumnWidth() - { - dataGridViewConfig.Columns["moduleSerial"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - dataGridViewConfig.Columns["OutputName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - dataGridViewConfig.Columns["OutputType"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; - } - - private void DeactivateAutoColumnWidth() - { - dataGridViewConfig.Columns["moduleSerial"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dataGridViewConfig.Columns["OutputName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - dataGridViewConfig.Columns["OutputType"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; - } - - /// - /// use the settings from the config object and initialize the grid cells - /// this is needed after loading and saving configs - /// - public void RestoreValuesInGridView() - { - // Needed for performance reasons - DeactivateAutoColumnWidth(); - foreach (DataRow row in ConfigDataTable.Rows) - { - OutputConfigItem cfgItem = row["settings"] as OutputConfigItem; - row["OutputName"] = "-"; - row["OutputType"] = "-"; - row["arcazeSerial"] = "-"; - - if (cfgItem != null) - { - row["fsuipcOffset"] = "0x" + cfgItem.FSUIPC.Offset.ToString("X4"); - if (cfgItem.DisplaySerial != null && cfgItem.DisplaySerial != "-") - { - row["arcazeSerial"] = SerialNumber.ExtractDeviceName(cfgItem.DisplaySerial); - - row["OutputType"] = cfgItem.DisplayType; - - // only exception for the type label - if (cfgItem.DisplayType == MobiFlightOutput.TYPE) - row["OutputType"] = "LED / Output"; - - if (cfgItem.DisplayType == MobiFlightCustomDevice.TYPE) - row["OutputType"] = cfgItem.CustomDevice.CustomType; - - switch (cfgItem.DisplayType) - { - case MobiFlightLedModule.TYPE: - row["OutputName"] = cfgItem.LedModule.DisplayLedAddress; - break; - case MobiFlightOutput.TYPE: - row["OutputName"] = cfgItem.Pin.DisplayPin; - break; - case MobiFlightLcdDisplay.TYPE: - row["OutputName"] = cfgItem.LcdDisplay.Address; - break; - case MobiFlightServo.TYPE: - row["OutputName"] = cfgItem.Servo.Address; - break; - case MobiFlightStepper.TYPE: - row["OutputName"] = cfgItem.Stepper.Address; - break; - case MobiFlightShiftRegister.TYPE: - row["OutputName"] = cfgItem.ShiftRegister.ToString(); - break; - case MobiFlightCustomDevice.TYPE: - row["OutputName"] = cfgItem.CustomDevice.CustomName; - break; - - } - } else if(cfgItem.DisplayType=="InputAction") - { - row["OutputType"] = cfgItem.DisplayType; - if (cfgItem.ButtonInputConfig != null) - { - if (cfgItem.ButtonInputConfig.onRelease != null) - row["OutputName"] = cfgItem.ButtonInputConfig.onRelease.GetType().ToString().Replace("MobiFlight.InputConfig.", ""); - if (cfgItem.ButtonInputConfig.onPress != null) - row["OutputName"] = cfgItem.ButtonInputConfig.onPress.GetType().ToString().Replace("MobiFlight.InputConfig.", ""); - } - if (cfgItem.AnalogInputConfig != null) - { - if (cfgItem.AnalogInputConfig.onChange != null) - row["OutputName"] = cfgItem.AnalogInputConfig.onChange.GetType().ToString().Replace("MobiFlight.InputConfig.", ""); - } - } - } - } - - ActivateAutoColumnWidth(); - } //_restoreValuesInGridView() - - /// - /// removes unnecessary information that is now stored in the settings node itself - /// - /// DEPRECATED - public void ApplyBackwardCompatibilitySaving() - { - // delete old values from config that are part of the new settings-node now - foreach (DataRow row in ConfigDataTable.Rows) - { - if (row["settings"].GetType() != typeof(System.DBNull)) - { - row["converter"] = null; - row["trigger"] = null; - row["fsuipcOffset"] = null; - row["fsuipcSize"] = null; - row["mask"] = null; - row["comparison"] = null; - row["comparisonValue"] = null; - row["usbArcazePin"] = null; - row["arcazeSerial"] = null; - } - } - } //_applyBackwardCompatibilitySaving() - - - - private void DataGridViewConfig_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Return) - { - e.Handled = true; - } - } - - private void dataGridViewConfig_CellEndEdit(object sender, DataGridViewCellEventArgs e) - { - DataGridViewRow gridrow = dataGridViewConfig.Rows[e.RowIndex]; - DataRowView rowview = (DataRowView)gridrow.DataBoundItem; - - - // can be null on creating a new config (last line) - if (rowview == null) return; - - DataRow row = rowview.Row; - if (row.RowState == DataRowState.Detached) - row.Table.Rows.Add(row); - - if (EditedItem != null && - ( // this is the checkbox - (bool)row.ItemArray[0]!= (bool)EditedItem[0] || - // this is the description text - row.ItemArray[9] as string != EditedItem[9] as string) - ) - { - SettingsChanged?.Invoke(sender, null); - } - } - - private void dataGridViewConfig_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) - { - DataGridViewRow gridrow = dataGridViewConfig.Rows[e.RowIndex]; - DataRowView rowview = (DataRowView)gridrow.DataBoundItem; - - // can be null on creating a new config (last line) - if (rowview == null) return; - - if (rowview.Row.ItemArray != null) - EditedItem = rowview.Row.ItemArray; - } - - private void dataGridViewConfig_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) - { - e.Control.ContextMenu = new ContextMenu(); - } - - private void copyToolStripMenuItem_Click(object sender, EventArgs e) - { - // do somehting here - foreach (DataGridViewRow row in dataGridViewConfig.SelectedRows) - { - // ignore new rows since they cannot be copied nor deleted - if (row.IsNewRow) continue; - - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow == null) continue; - - bool Active = (bool)currentRow["active"]; - String Description = currentRow["description"] as String; - OutputConfigItem cfg = currentRow["settings"] as OutputConfigItem; - CopyToClipboard(Active, Description, cfg); - return; - } - } - - private void pasteToolStripMenuItem_Click(object sender, EventArgs e) - { - // do somehting here - foreach (DataGridViewRow row in dataGridViewConfig.SelectedRows) - { - int index = row.Index; - PasteFromClipboard(index+1); - return; - } - } - - /// - /// Is sorting in DataGridView active. - /// - public bool IsSortingActive() - { - return dataGridViewConfig.SortOrder != SortOrder.None; - } - - /// - /// Reset sorting in DataGridView - /// - public void ResetSorting() - { - LastSortingColumnName = string.Empty; - LastSortingOrder = SortOrder.None; - configDataTable.DefaultView.Sort = string.Empty; - } - - private void dataGridViewConfig_Sorted(object sender, EventArgs e) - { - if (IsSortingActive()) - { - string name = dataGridViewConfig.SortedColumn.Name; - // It is always (Ascending) -> (Descending) -> (Ascending) - // Reset sorting after previous Descending - if (LastSortingColumnName == name && LastSortingOrder == SortOrder.Descending) - { - ResetSorting(); - } - else - { - // Store current sorting - LastSortingColumnName = name; - LastSortingOrder = dataGridViewConfig.SortOrder; - } - } - } - - private void dataGridViewConfig_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) - { - if (e.ListChangedType == ListChangedType.Reset) - { - dataGridViewConfig.ClearSelection(); // necessary because on sorting reset, callback is called twice - foreach (DataGridViewRow row in (sender as DataGridView).Rows) - { - if (row.DataBoundItem as DataRowView == null) continue; - - DataRow currentRow = (row.DataBoundItem as DataRowView).Row; - String guid = currentRow["guid"].ToString(); - - if (SelectedGuids.Contains(guid)) - row.Selected = true; - } - } - } - - internal List GetConfigItems() - { - List result = new List(); - - foreach (DataRow row in ConfigDataTable.Rows) - { - OutputConfigItem cfg = row["settings"] as OutputConfigItem; - result.Add(cfg); - } - - return result; - } - - private void ChangeRowBackgroundColor(int rowIndex, Color color) - { - if (rowIndex > -1) - { - foreach (DataGridViewCell cell in dataGridViewConfig.Rows[rowIndex].Cells) - { - cell.Style.BackColor = color; - cell.Style.Padding = new Padding(0,0,0,0); - } - } - } - - private void AdjustDragTargetHighlight(int rowIndex) - { - var color = Color.LightBlue; - if (RowCurrentDragHighlight != rowIndex) - { - ChangeRowBackgroundColor(RowCurrentDragHighlight, Color.Empty); - RowCurrentDragHighlight = rowIndex; - ChangeRowBackgroundColor(RowCurrentDragHighlight, color); - } - - if (rowIndex > 0 && rowIndex < (dataGridViewConfig.Rows.Count - 1)) - { - int neighbourRow = IsInCurrentRowTopHalf ? (rowIndex - 1) : (rowIndex + 1); - if (RowNeighbourDragHighlight != neighbourRow) - { - if (RowNeighbourDragHighlight != RowCurrentDragHighlight) - { - ChangeRowBackgroundColor(RowNeighbourDragHighlight, Color.Empty); - } - RowNeighbourDragHighlight = neighbourRow; - ChangeRowBackgroundColor(RowNeighbourDragHighlight, color); - } - } - } - - private void RemoveDragTargetHighlight() - { - ChangeRowBackgroundColor(RowCurrentDragHighlight, Color.Empty); - ChangeRowBackgroundColor(RowNeighbourDragHighlight, Color.Empty); - RowCurrentDragHighlight = 0; - RowNeighbourDragHighlight = 0; - } - - private void dataGridViewConfig_MouseDown(object sender, MouseEventArgs e) - { - RowIndexMouseDown = dataGridViewConfig.HitTest(e.X, e.Y).RowIndex; - - // Handle row "Double-click...." which has no underlying data - if (RowIndexMouseDown != -1 && (configDataTable.Rows.Count >= (RowIndexMouseDown + 1))) - { - Size dragSize = SystemInformation.DragSize; - dragSize.Width = dragSize.Width * 5; - dragSize.Height = dragSize.Height * 5; - Point location = new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)); - RectangleMouseDown = new Rectangle(location, dragSize); - DataGridTopLeftPoint = dataGridViewConfig.Location; - DataGridBottomRightPoint.X = dataGridViewConfig.Location.X + dataGridViewConfig.Width; - DataGridBottomRightPoint.Y = dataGridViewConfig.Location.Y + dataGridViewConfig.Height; - } - else - { - // Reset if not on datagrid - RectangleMouseDown = Rectangle.Empty; - } - } - - private void dataGridViewConfig_MouseMove(object sender, MouseEventArgs e) - { - if (MouseButtons.Left == (e.Button & MouseButtons.Left)) - { - // When mouse did not leave rectangle return, otherwise start drag and drop - if (RectangleMouseDown == Rectangle.Empty || RectangleMouseDown.Contains(e.X, e.Y)) return; - - if (!IsSortingActive()) - { - // Only select Row which is to be moved, needed because of active multiselect - dataGridViewConfig.ClearSelection(); - dataGridViewConfig.Rows[RowIndexMouseDown].Selected = true; - dataGridViewConfig.CurrentCell = dataGridViewConfig.Rows[RowIndexMouseDown].Cells["description"]; - // Start drag and drop - dataGridViewConfig.DoDragDrop(configDataTable.Rows[RowIndexMouseDown], DragDropEffects.Move); - } - else - { - // Show message box no drag and drop on sorted list - MessageBox.Show(i18n._tr("uiMessageDragDropNotAllowed"), i18n._tr("Hint")); - } - } - } - - private void dataGridViewConfig_DragOver(object sender, DragEventArgs e) - { - e.Effect = DragDropEffects.Move; - Point clientPoint = dataGridViewConfig.PointToClient(new Point(e.X, e.Y)); - var hti = dataGridViewConfig.HitTest(clientPoint.X, clientPoint.Y); - int currentRow = hti.RowIndex; - - if (hti.RowIndex != -1 && hti.ColumnIndex != -1) - { - Rectangle myRect = dataGridViewConfig.GetCellDisplayRectangle(hti.ColumnIndex, hti.RowIndex, false); - IsInCurrentRowTopHalf = clientPoint.Y < (myRect.Top + (myRect.Height / 2)); - } - - if (currentRow > -1) - { - AdjustDragTargetHighlight(currentRow); - } - - // Autoscroll - int autoScrollMargin = 20; - int headerHeight = dataGridViewConfig.ColumnHeadersHeight; - if ((e.Y <= PointToScreen(DataGridTopLeftPoint).Y + headerHeight + autoScrollMargin) && - (dataGridViewConfig.FirstDisplayedScrollingRowIndex > 0)) - { - // Scroll up - dataGridViewConfig.FirstDisplayedScrollingRowIndex -= 1; - } - if (e.Y >= PointToScreen(DataGridBottomRightPoint).Y - autoScrollMargin) - { - // Scroll down - dataGridViewConfig.FirstDisplayedScrollingRowIndex += 1; - } - } - - private void dataGridViewConfig_DragDrop(object sender, DragEventArgs e) - { - Point clientPoint = dataGridViewConfig.PointToClient(new Point(e.X, e.Y)); - int rowIndexDrop = dataGridViewConfig.HitTest(clientPoint.X, clientPoint.Y).RowIndex; - if (rowIndexDrop < (dataGridViewConfig.Rows.Count - 1) && !IsInCurrentRowTopHalf) - { - rowIndexDrop++; - } - - // If move operation, remove row at start position and insert at drop position - if (e.Effect == DragDropEffects.Move && rowIndexDrop != -1) - { - DataRow rowToRemove = (DataRow)e.Data.GetData(typeof(DataRow)); - DataRow rowToInsert = configDataTable.NewRow(); - rowToInsert.ItemArray = rowToRemove.ItemArray; // needs to be cloned - dataGridViewConfig.ClearSelection(); - configDataTable.Rows.InsertAt(rowToInsert, rowIndexDrop); - EditedItem = null; // safety measure, otherwise on some circumstances exception can be provoked - configDataTable.Rows.Remove(rowToRemove); - int newIndex = configDataTable.Rows.IndexOf(rowToInsert); - dataGridViewConfig.CurrentCell = dataGridViewConfig.Rows[newIndex].Cells["description"]; - // Used to keep the two rows colored for a short period of time after drop - if (newIndex > 0) - RowNeighbourDragHighlight = newIndex - 1; - if (newIndex < (dataGridViewConfig.Rows.Count - 1)) - RowCurrentDragHighlight = newIndex + 1; - } - } - - private void dataGridViewConfig_GiveFeedback(object sender, GiveFeedbackEventArgs e) - { - // Sets the custom cursor based upon the effect. - e.UseDefaultCursors = false; - if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move) - { - // For performance reason we want to only - // calculate the bitmap for the cursor - // once when it changes from default - // or from No, which happens after leaving the client area and returning - if (Cursor.Current == Cursors.Default || Cursor.Current == Cursors.No) - { - int offsetX = CalculateCorrectCursorOffset(); - - // This creates the bitmap of the row and creates assigns it as the new cursor - Cursor.Current = CreateCursor(dataGridViewConfig.Rows[RowIndexMouseDown]); - - // This now corrects the position of the cursor using the offset, - // so that the cursor won't show displaced - Cursor.Position = new Point(Cursor.Position.X - offsetX, Cursor.Position.Y); - } - } - - else - Cursor.Current = Cursors.Default; - } - - private int CalculateCorrectCursorOffset() - { - // Transform cursor position from screen coords to control coords - var localCoords = PointToClient(Cursor.Position); - - // Get the size of the row which is equivalent to the cursor bitmap - Rectangle rowRectangle = dataGridViewConfig.GetRowDisplayRectangle(RowCurrentDragHighlight, true); - - double cursorWidth = rowRectangle.Width; - // if we grab the row exactly in the center, then the offset is 0 - // if we grab it at the very left, then the offset must be -(half size of cursor) - // if we grab it at the very right, then the offset must be +(half size of cursor) - return (int)(localCoords.X - cursorWidth / 2); - } - - private Cursor CreateCursor(DataGridViewRow row) - { - if (CurrentCursorBitmap == null) - { - Size clientSize = dataGridViewConfig.ClientSize; - Rectangle rowRectangle = dataGridViewConfig.GetRowDisplayRectangle(RowIndexMouseDown, true); - var scalingFactor = GetScalingFactor(this.Handle); - - using (Bitmap dataGridViewBmp = new Bitmap(clientSize.Width, clientSize.Height)) - using (Bitmap rowBmp = new Bitmap(rowRectangle.Width, rowRectangle.Height)) - { - dataGridViewConfig.DrawToBitmap(dataGridViewBmp, new Rectangle(Point.Empty, clientSize)); - using (Graphics G = Graphics.FromImage(rowBmp)) - { - G.DrawImage(dataGridViewBmp, new Rectangle(Point.Empty, rowRectangle.Size), rowRectangle, GraphicsUnit.Pixel); - } - - var scaledX = (int)Math.Round(rowRectangle.Width * scalingFactor, 0); - var scaledY = (int)Math.Round(rowRectangle.Height * scalingFactor, 0); - - CurrentCursorBitmap = new Bitmap(rowBmp, new Size(scaledX, scaledY)); - } - } - return new Cursor(CurrentCursorBitmap.GetHicon()); - } - - private double GetScalingFactor(IntPtr handle) - { - using (Graphics g = Graphics.FromHwnd(handle)) - { - // Get the current display scaling factor. - return DPIUtil.GetWindowsScreenScalingFactor(this, false); - } - } - - private void dataGridViewConfig_QueryContinueDrag(object sender, QueryContinueDragEventArgs e) - { - if (e.Action == DragAction.Cancel || e.Action == DragAction.Drop) - { - if (CurrentCursorBitmap != null) - { - CurrentCursorBitmap.Dispose(); - CurrentCursorBitmap = null; - } - DropTimer.Start(); - } - } - - private void DropTimer_Tick(object sender, EventArgs e) - { - DropTimer.Stop(); - RemoveDragTargetHighlight(); - } - - private void testToolStripMenuItem_Click(object sender, EventArgs e) - { - UpdateSingleItemTestMode(); - } - - private void UpdateSingleItemTestMode() - { - var isTestOn = testToolStripMenuItem.Checked; - - if (isTestOn && ItemInTestMode!=null) - { - ExecutionManager.ExecuteTestOff(ItemInTestMode, true); - ItemInTestMode = null; - testToolStripMenuItem.Checked = false; - return; - } - - foreach (DataGridViewRow row in dataGridViewConfig.SelectedRows) - { - // ignore new rows since they cannot be copied nor deleted - if (row.IsNewRow) continue; - - DataRow currentRow = (row.DataBoundItem as DataRowView)?.Row; - if (currentRow == null) continue; - - OutputConfigItem cfg = currentRow["settings"] as OutputConfigItem; - var currentGuid = currentRow["guid"].ToString(); - - if (cfg == null) return; - - ItemInTestMode = cfg; - ExecutionManager.ExecuteTestOn(cfg, currentGuid, cfg.TestValue); - testToolStripMenuItem.Checked = true; - - return; - } - } - } -} diff --git a/UI/Panels/OutputConfigPanel.de.resx b/UI/Panels/OutputConfigPanel.de.resx deleted file mode 100644 index 576effedb..000000000 --- a/UI/Panels/OutputConfigPanel.de.resx +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktiv - - - - 37 - - - Beschreibung - - - Der Name oder Beschreibung der Config - - - Modul - - - Typ - - - Flight Sim Wert - - - Output Wert - - - - 160, 22 - - - Kopieren - - - 160, 22 - - - Einfügen - - - 157, 6 - - - 160, 22 - - - Zeile duplizieren - - - 160, 22 - - - Zeile löschen - - - Delete the current selected row - - - 161, 98 - - \ No newline at end of file diff --git a/UI/Panels/OutputConfigPanel.resx b/UI/Panels/OutputConfigPanel.resx deleted file mode 100644 index a39e8fb79..000000000 --- a/UI/Panels/OutputConfigPanel.resx +++ /dev/null @@ -1,579 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Active - - - - 43 - - - True - - - guid - - - False - - - True - - - Description - - - 100 - - - The name or description of your config - - - True - - - Module - - - 90 - - - The board used in the config - - - 90 - - - True - - - Output - - - 90 - - - The device used in the config - - - 90 - - - True - - - Type - - - The type of device used in the config - - - 56 - - - True - - - FSUIPC Offset - - - 65 - - - Der FSUIPC Offset laut Dokumentation - - - False - - - 65 - - - True - - - Flight Sim Value - - - 65 - - - The value read from the sim / variable - - - 65 - - - True - - - Output Value - - - 40 - - - The final value used for output - - - 65 - - - True - - - Edit - - - 55 - - - 55 - - - 591, 56 - - - False - - - - 180, 22 - - - Copy - - - False - - - 180, 22 - - - Paste - - - 177, 6 - - - False - - - 180, 22 - - - Duplicate row - - - False - - - 180, 22 - - - Delete row(s) - - - Delete selected row(s) - - - 177, 6 - - - False - - - 180, 22 - - - Test - - - 181, 148 - - - dataGridViewContextMenuStrip - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 815, 56 - - - - Fill - - - 0, 0 - - - 929, 629 - - - 2 - - - dataGridViewConfig - - - System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - True - - - 280 - - - 6, 13 - - - 929, 629 - - - active - - - System.Windows.Forms.DataGridViewCheckBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - guid - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Description - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - moduleSerial - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - OutputName - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - OutputType - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - FsuipcOffset - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - fsuipcValueColumn - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - arcazeValueColumn - - - System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - EditButtonColumn - - - System.Windows.Forms.DataGridViewButtonColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - copyToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pasteToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem1 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - duplicateRowToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - deleteRowToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - dataSetConfig - - - System.Data.DataSet, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - configDataTable - - - System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - activeDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - fsuipcOffsetDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - converterDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - maskDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - usbArcazePinDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - typeDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - durationDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - comparisonDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - comparisonValueDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - descriptionDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - fsuipcSizeDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - triggerDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - arcazeSerialDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - settingsColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - guidDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - outputDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - outputTypeDataColumn - - - System.Data.DataColumn, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - toolStripMenuItem2 - - - System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - testToolStripMenuItem - - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - OutputConfigPanel - - - System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/UI/Panels/OutputWizard/DisplayPanel.cs b/UI/Panels/OutputWizard/DisplayPanel.cs index 6c2308c17..8bff64079 100644 --- a/UI/Panels/OutputWizard/DisplayPanel.cs +++ b/UI/Panels/OutputWizard/DisplayPanel.cs @@ -1,12 +1,9 @@ using MobiFlight.Base; -using MobiFlight.Config; using MobiFlight.InputConfig; -using MobiFlight.OutputConfig; using MobiFlight.UI.Panels.Settings.Device; using System; using System.Collections.Generic; using System.ComponentModel; -using System.Data; using System.Windows.Forms; namespace MobiFlight.UI.Panels.OutputWizard @@ -33,7 +30,6 @@ public partial class DisplayPanel : UserControl ExecutionManager _execManager = null; Panels.DisplayPinPanel displayPinPanel = new Panels.DisplayPinPanel(); - Panels.DisplayBcdPanel displayBcdPanel = new Panels.DisplayBcdPanel(); Panels.DisplayLedDisplayPanel displayLedDisplayPanel = new Panels.DisplayLedDisplayPanel(); Panels.DisplayNothingSelectedPanel displayNothingSelectedPanel = new Panels.DisplayNothingSelectedPanel(); Panels.LCDDisplayPanel displayLcdDisplayPanel = new Panels.LCDDisplayPanel(); @@ -48,9 +44,9 @@ public DisplayPanel() InitializeComponent(); } - public void SetConfigRefsDataView(DataView dv, string filterGuid) + public void SetConfigRefsDataView(List outputConfigs, string filterGuid) { - displayLedDisplayPanel.SetConfigRefsDataView(dv, filterGuid); + displayLedDisplayPanel.SetConfigRefsDataView(outputConfigs, filterGuid); } public bool ConfigHasChanged() @@ -61,7 +57,7 @@ public bool ConfigHasChanged() public void Init(ExecutionManager executionManager) { _execManager = executionManager; - _initDisplayPanels(); + _initDisplayPanels(); } public void SetModules(List ModuleList) @@ -81,7 +77,6 @@ protected void _initDisplayPanels() { displayPanels = new List() { displayPinPanel, - displayBcdPanel, displayLedDisplayPanel, displayNothingSelectedPanel, servoPanel, @@ -94,8 +89,8 @@ protected void _initDisplayPanels() displayPanelHeight = 0; displayLcdDisplayPanel.AutoSize = false; - displayPanels.ForEach(control => { - groupBoxDisplaySettings.Controls.Add (control); + displayPanels.ForEach(control => { + groupBoxDisplaySettings.Controls.Add(control); control.Dock = DockStyle.Top; if (control.Height > 0 && (control.Height > displayPanelHeight)) displayPanelHeight = control.Height; @@ -117,24 +112,24 @@ internal void syncFromConfig(OutputConfigItem cfg) originalConfig = cfg.Clone() as OutputConfigItem; config = cfg; - OutputTypeComboBox.SelectedIndex = (config.DisplayType == "InputAction") ? 1 : 0; + OutputTypeComboBox.SelectedIndex = (config.DeviceType == "InputAction") ? 1 : 0; if (OutputTypeIsDisplay()) { - if (config.DisplaySerial != null && config.DisplaySerial != "") + if (config.ModuleSerial != null && config.ModuleSerial != "") { - if (!ComboBoxHelper.SetSelectedItemByValue(displayModuleNameComboBox, config.DisplaySerial)) + if (!ComboBoxHelper.SetSelectedItemByValue(displayModuleNameComboBox, config.ModuleSerial)) { - Log.Instance.log($"Trying to show config but {config.DisplaySerial} currently not connected.", LogSeverity.Error); + Log.Instance.log($"Trying to show config but {config.ModuleSerial} currently not connected.", LogSeverity.Error); } } - if (config.DisplayType != null && !ComboBoxHelper.SetSelectedItemByValue(displayTypeComboBox, config.DisplayType)) + if (config.DeviceType != null && !ComboBoxHelper.SetSelectedItemByValue(displayTypeComboBox, config.DeviceType)) { - Log.Instance.log($"Trying to show config but display type {config.DisplayType} not present.", LogSeverity.Error); + Log.Instance.log($"Trying to show config but display type {config.DeviceType} not present.", LogSeverity.Error); } - switch (config.DisplayType) + switch (config.DeviceType) { case MobiFlightOutput.TYPE: displayPinPanel.syncFromConfig(config); @@ -192,17 +187,16 @@ internal void SetArcazeSettings(Dictionary arcazeFirmware, Dicti } internal void syncToConfig() { - if (OutputTypeIsDisplay()) + if (OutputTypeIsDisplay()) { if (displayTypeComboBox.SelectedItem == null) return; - config.DisplayType = (displayTypeComboBox.SelectedItem as ListItem).Value; - config.DisplayTrigger = "normal"; - config.DisplaySerial = displayModuleNameComboBox.SelectedItem.ToString(); + config.DeviceType = (displayTypeComboBox.SelectedItem as ListItem).Value; + config.ModuleSerial = displayModuleNameComboBox.SelectedItem.ToString(); if ((displayTypeComboBox.SelectedItem as ListItem).Value == "-") return; - switch (config.DisplayType) + switch (config.DeviceType) { case MobiFlightOutput.TYPE: displayPinPanel.syncToConfig(config); @@ -236,8 +230,8 @@ internal void syncToConfig() } } else if (OutputTypeIsInputAction()) - { - config.DisplayType = "InputAction"; + { + config.DeviceType = "InputAction"; if (analogPanel1.Enabled) { @@ -245,7 +239,8 @@ internal void syncToConfig() analogPanel1.ToConfig(tmpConfig); config.AnalogInputConfig = tmpConfig; config.ButtonInputConfig = null; - } else + } + else { ButtonInputConfig tmpConfig = new ButtonInputConfig(); buttonPanel1.ToConfig(tmpConfig); @@ -292,16 +287,16 @@ private void displaySerialComboBox_SelectedIndexChanged(object sender, EventArgs { foreach (var deviceType in joystick.GetConnectedOutputDeviceTypes()) { - switch (deviceType) + switch (deviceType) { case DeviceType.Output: - deviceTypeOptions.Add(new ListItem() { Value = MobiFlightOutput.TYPE, Label = "LED / Output" }); + deviceTypeOptions.Add(new ListItem() { Value = MobiFlightOutput.TYPE, Label = "LED / Output" }); break; case DeviceType.LcdDisplay: deviceTypeOptions.Add(new ListItem() { Value = MobiFlightLcdDisplay.TYPE, Label = MobiFlightLcdDisplay.TYPE }); break; } - } + } } } else if (serial.IndexOf(MidiBoard.SerialPrefix) == 0) @@ -312,9 +307,9 @@ private void displaySerialComboBox_SelectedIndexChanged(object sender, EventArgs // type of module else if (serial.IndexOf("SN") != 0) { - deviceTypeOptions.Add(new ListItem() { Value = MobiFlightOutput.TYPE, Label = "LED / Output" } ); - deviceTypeOptions.Add(new ListItem() { Value = ArcazeLedDigit.TYPE, Label = ArcazeLedDigit.TYPE } ); - deviceTypeOptions.Add(new ListItem() { Value = MobiFlightShiftRegister.TYPE, Label = MobiFlightShiftRegister.TYPE } ); + deviceTypeOptions.Add(new ListItem() { Value = MobiFlightOutput.TYPE, Label = "LED / Output" }); + deviceTypeOptions.Add(new ListItem() { Value = ArcazeLedDigit.TYPE, Label = ArcazeLedDigit.TYPE }); + deviceTypeOptions.Add(new ListItem() { Value = MobiFlightShiftRegister.TYPE, Label = MobiFlightShiftRegister.TYPE }); } // update the available types depending on the // type of module @@ -323,7 +318,8 @@ private void displaySerialComboBox_SelectedIndexChanged(object sender, EventArgs MobiFlightModule module = _execManager.getMobiFlightModuleCache() .GetModuleBySerial(serial); - if (module != null) { + if (module != null) + { foreach (DeviceType devType in module.GetConnectedOutputDeviceTypes()) { switch (devType) @@ -351,7 +347,7 @@ private void displaySerialComboBox_SelectedIndexChanged(object sender, EventArgs case DeviceType.CustomDevice: deviceTypeOptions.Add(new ListItem() { Value = MobiFlightCustomDevice.TYPE, Label = MobiFlightCustomDevice.TYPE }); - break; + break; case DeviceType.ShiftRegister: deviceTypeOptions.Add(new ListItem() { Value = MobiFlightShiftRegister.TYPE, Label = MobiFlightShiftRegister.TYPE }); @@ -391,13 +387,13 @@ private void displaySerialComboBox_SelectedIndexChanged(object sender, EventArgs // because module information is set // before config is loaded if (config == null) return; - config.DisplaySerial = rawSerial; + config.ModuleSerial = rawSerial; // third tab - if (config.DisplayType != null && - !ComboBoxHelper.SetSelectedItemByValue(displayTypeComboBox, config.DisplayType)) + if (config.DeviceType != null && + !ComboBoxHelper.SetSelectedItemByValue(displayTypeComboBox, config.DeviceType)) { - Log.Instance.log($"Trying to show config but display type {config.DisplayType} not present.", LogSeverity.Error); + Log.Instance.log($"Trying to show config but display type {config.DeviceType} not present.", LogSeverity.Error); } } catch (Exception ex) @@ -462,7 +458,7 @@ private bool InitializeJoystickDisplays(ComboBox cb, string serial) List outputs = new List(); List lcdDisplays = new List(); - + foreach (var deviceType in joystick.GetConnectedOutputDeviceTypes()) { switch (deviceType) @@ -477,18 +473,18 @@ private bool InitializeJoystickDisplays(ComboBox cb, string serial) int Cols = (device as MobiFlight.Config.LcdDisplay).Cols; int Lines = (device as MobiFlight.Config.LcdDisplay).Lines; lcdDisplays.Add(new ListItem() { Value = device.Name + "," + Cols + "," + Lines, Label = device.Name }); - } + } break; } } - + displayPinPanel.WideStyle = true; displayPinPanel.EnablePWMSelect(false); displayPinPanel.SetPorts(new List()); displayPinPanel.SetPins(outputs); displayLcdDisplayPanel.DisableOutputDefinition(); - displayLcdDisplayPanel.SetAddresses(lcdDisplays); + displayLcdDisplayPanel.SetAddresses(lcdDisplays); return true; } @@ -524,12 +520,6 @@ private void ShowActiveDisplayPanel(object sender, string serial, bool panelEnab { displayPinPanel.Enabled = panelEnabled; displayPinPanel.Height = displayPanelHeight; - } - - else if (SelectedItemValue == ArcazeBcd4056.TYPE) - { - displayBcdPanel.Enabled = panelEnabled; - displayBcdPanel.Height = displayPanelHeight; } else if (SelectedItemValue == ArcazeLedDigit.TYPE) @@ -593,11 +583,11 @@ private bool InitializeMobiFlightDisplays(ComboBox cb, string serial) List> customDevices = new List>(); - if (module!=null) + if (module != null) { foreach (IConnectedDevice device in module.GetConnectedDevices()) { - switch (device.Type) + switch (device.TypeDeprecated) { case DeviceType.LedModule: ledSegments.Add(new ListItem() { Value = device.Name, Label = device.Name }); @@ -703,8 +693,7 @@ private bool InitializeArcazeDisplays(ComboBox cb, string serial) } displayPinPanel.SetPorts(ports); - displayBcdPanel.SetPorts(ports); - + List pins = new List(); foreach (String v in ArcazeModule.getPins()) { @@ -713,7 +702,6 @@ private bool InitializeArcazeDisplays(ComboBox cb, string serial) } displayPinPanel.SetPins(pins); - displayBcdPanel.SetPins(pins); displayPinPanel.WideStyle = false; List addr = new List(); @@ -751,7 +739,7 @@ void displayLedAddressComboBox_SelectedIndexChanged(object sender, EventArgs e) { foreach (IConnectedDevice device in module.GetConnectedDevices()) { - if (device.Type != DeviceType.LedModule) continue; + if (device.TypeDeprecated != DeviceType.LedModule) continue; if (device.Name != ((sender as ComboBox).SelectedItem as ListItem).Value) continue; // Found the device we sought MobiFlightLedModule dev = device as MobiFlightLedModule; @@ -762,7 +750,7 @@ void displayLedAddressComboBox_SelectedIndexChanged(object sender, EventArgs e) var maxdigits = 8; if (dev.ModelType == MobiFlight.Config.LedModule.MODEL_TYPE_TM1637_4DIGIT) { maxdigits = 4; } - else + else if (dev.ModelType == MobiFlight.Config.LedModule.MODEL_TYPE_TM1637_6DIGIT) { maxdigits = 6; } for (int i = 2; i < maxdigits; i++) @@ -779,21 +767,22 @@ void displayLedAddressComboBox_SelectedIndexChanged(object sender, EventArgs e) private void StepperPanel_OnStepperSelected(object sender, StepperConfigChangedEventArgs e) { // we have a fresh config, nothing to do. - if (config?.DisplaySerial == null) return; + if (config?.ModuleSerial == null) return; String stepperAddress = e.StepperAddress; - String serial = SerialNumber.ExtractSerial(config.DisplaySerial); + String serial = SerialNumber.ExtractSerial(config.ModuleSerial); try { MobiFlightModule module = _execManager.getMobiFlightModuleCache() .GetModuleBySerial(serial); - if (module == null) { + if (module == null) + { // we want to execute the catch block below // GetModuleBySerial used to throw this exception // see #1157 - throw new IndexOutOfRangeException(); + throw new IndexOutOfRangeException(); } MobiFlightStepper stepper = module.GetStepper(stepperAddress); @@ -805,14 +794,14 @@ private void StepperPanel_OnStepperSelected(object sender, StepperConfigChangedE { // the module with that serial is currently not connected // so we cannot lookup anything sensible - Log.Instance.log($"Trying to show stepper config but module {config.DisplaySerial} is not connected. Using default profile.", LogSeverity.Error); - stepperPanel.setStepperProfile(MFStepperPanel.Profiles.Find(p=>p.Value.id == 0).Value); + Log.Instance.log($"Trying to show stepper config but module {config.ModuleSerial} is not connected. Using default profile.", LogSeverity.Error); + stepperPanel.setStepperProfile(MFStepperPanel.Profiles.Find(p => p.Value.id == 0).Value); } } void stepperPanel_OnSetZeroTriggered(object sender, StepperConfigChangedEventArgs e) { - String serial = SerialNumber.ExtractSerial(config.DisplaySerial); + String serial = SerialNumber.ExtractSerial(config.ModuleSerial); _execManager.getMobiFlightModuleCache().ResetStepper(serial, (sender as String)); } @@ -822,27 +811,27 @@ void stepperPanel_OnManualCalibrationTriggered(object sender, Panels.ManualCalib // to prevent overriding accidentaly something syncToConfig(); - string serial = SerialNumber.ExtractSerial(config.DisplaySerial); + string serial = SerialNumber.ExtractSerial(config.ModuleSerial); MobiFlightModule module = _execManager.getMobiFlightModuleCache() .GetModuleBySerial(serial); if (module == null) return; - MobiFlightStepper stepper = module.GetStepper(config.Stepper.Address); + var configStepper = config.Device as OutputConfig.Stepper; + MobiFlightStepper stepper = module.GetStepper(configStepper.Address); int CurrentValue = stepper.Position(); int NextValue = (CurrentValue + e.Steps); _execManager.getMobiFlightModuleCache().SetStepper( serial, - config.Stepper.Address, + configStepper.Address, (NextValue).ToString(), - config.Stepper.OutputRev, - config.Stepper.OutputRev, - config.Stepper.CompassMode + configStepper.OutputRev, + configStepper.OutputRev, + configStepper.CompassMode ); - } #endregion @@ -856,16 +845,16 @@ private void shiftRegistersComboBox_selectedIndexChanged(object sender, EventArg int numModules = 0; - if(module!= null) + if (module != null) { foreach (IConnectedDevice device in module.GetConnectedDevices()) { - if (device.Type != DeviceType.ShiftRegister) continue; + if (device.TypeDeprecated != DeviceType.ShiftRegister) continue; if (device.Name != ((sender as ComboBox).SelectedItem as ListItem).Value) continue; numModules = (device as MobiFlightShiftRegister).NumberOfShifters; } } - + displayShiftRegisterPanel.SetNumModules(numModules); } @@ -900,7 +889,7 @@ private void displayLedDisplayComboBox_Validating(object sender, CancelEventArgs { Log.Instance.log($"Parsing problem: {ex.Message}", LogSeverity.Error); e.Cancel = true; - + displayLedDisplayPanel.displayLedAddressComboBox.Focus(); displayError(displayLedDisplayPanel.displayLedAddressComboBox, i18n._tr("uiMessageConfigWizard_ProvideLedDisplayAddress")); DisplayPanelValidatingError?.Invoke(this, EventArgs.Empty); @@ -953,7 +942,7 @@ private void OutputTypeComboBox_SelectedIndexChanged(object sender, EventArgs e) { InputTypeButtonRadioButton.Checked = config.AnalogInputConfig?.onChange == null; InputTypeAnalogRadioButton.Checked = config.AnalogInputConfig?.onChange != null; - } + } } private void InputTypeButtonRadioButton_CheckedChanged(object sender, EventArgs e) diff --git a/UI/Panels/Settings/GeneralPanel.cs b/UI/Panels/Settings/GeneralPanel.cs index 935e8baf5..abf23ff39 100644 --- a/UI/Panels/Settings/GeneralPanel.cs +++ b/UI/Panels/Settings/GeneralPanel.cs @@ -25,6 +25,7 @@ protected void InitializeLanguageComboBox() languageOptions.Add(new ListItem() { Value = "", Label = "System Default" }); languageOptions.Add(new ListItem() { Value = "en-US", Label = "English" }); languageOptions.Add(new ListItem() { Value = "de-DE", Label = "Deutsch" }); + languageOptions.Add(new ListItem() { Value = "es-ES", Label = "Español" }); languageComboBox.DataSource = languageOptions; languageComboBox.DisplayMember = "Label"; diff --git a/UI/Panels/StartupPanel.Designer.cs b/UI/Panels/StartupPanel.Designer.cs deleted file mode 100644 index 64639b44a..000000000 --- a/UI/Panels/StartupPanel.Designer.cs +++ /dev/null @@ -1,98 +0,0 @@ -namespace MobiFlight.UI.Panels -{ - partial class StartupPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StartupPanel)); - this.progressBar = new System.Windows.Forms.ProgressBar(); - this.StatusText = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // progressBar - // - this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.progressBar.Location = new System.Drawing.Point(75, 626); - this.progressBar.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.progressBar.Name = "progressBar"; - this.progressBar.Size = new System.Drawing.Size(1131, 42); - this.progressBar.TabIndex = 0; - // - // StatusText - // - this.StatusText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.StatusText.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.StatusText.Location = new System.Drawing.Point(77, 577); - this.StatusText.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.StatusText.Name = "StatusText"; - this.StatusText.Size = new System.Drawing.Size(1129, 29); - this.StatusText.TabIndex = 1; - this.StatusText.Text = "Starting up..."; - this.StatusText.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // pictureBox1 - // - this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(0, 392); - this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(1281, 165); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pictureBox1.TabIndex = 2; - this.pictureBox1.TabStop = false; - this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); - // - // StartupPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.Window; - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.StatusText); - this.Controls.Add(this.progressBar); - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.Name = "StartupPanel"; - this.Size = new System.Drawing.Size(1281, 964); - this.Load += new System.EventHandler(this.StartupPanel_Load); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ProgressBar progressBar; - private System.Windows.Forms.Label StatusText; - private System.Windows.Forms.PictureBox pictureBox1; - } -} diff --git a/UI/Panels/StartupPanel.cs b/UI/Panels/StartupPanel.cs deleted file mode 100644 index bad531ed7..000000000 --- a/UI/Panels/StartupPanel.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace MobiFlight.UI.Panels -{ - public partial class StartupPanel : UserControl - { - delegate void progressBarCallback(int percent); - delegate void updateStatusTextCallback(String StatusText); - - public StartupPanel() - { - InitializeComponent(); - } - - public void UpdateStatusText(String StatusText) - { - // InvokeRequired required compares the thread ID of the - // calling thread to the thread ID of the creating thread. - // If these threads are different, it returns true. - if (this.StatusText.InvokeRequired) - { - this.StatusText.Invoke(new updateStatusTextCallback(UpdateStatusText), new object[] { StatusText }); - } - else - { - this.StatusText.Text = StatusText; - } - } - - public void UpdateProgressBar(int percent) - { - // InvokeRequired required compares the thread ID of the - // calling thread to the thread ID of the creating thread. - // If these threads are different, it returns true. - if (progressBar.InvokeRequired) - { - progressBar.Invoke(new progressBarCallback(UpdateProgressBar), new object[] { percent }); - } - else - { - if (percent > 100) percent = percent / 2; - this.progressBar.Value = percent; - } - } - - public int GetProgressBar() - { - return this.progressBar.Value; - } - - private void pictureBox1_Click(object sender, EventArgs e) - { - - } - - private void StartupPanel_Load(object sender, EventArgs e) - { - - } - } -} diff --git a/UI/Panels/StartupPanel.resx b/UI/Panels/StartupPanel.resx deleted file mode 100644 index f5faf3e51..000000000 --- a/UI/Panels/StartupPanel.resx +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAAlgAAAJaCAYAAADzrjnXAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAv - 9gAAL/YBYaziMwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAFM9SURBVHhe7b37 - d1XV1YD9/T3vGN8P7/hExdYLtra1rW1ta1vb17a2tdwEQe4IKioqclEU5CYKBURQlIuoyEVRAVFyIwkQ - QggBAkmAhITcb+fLjAsLZOVckrX3XnOf5xnjecdrITlrr7U4Z56955rz//nf4bn/8//9+1ACEREREQev - xFYEWIiIiIgOJcBCREREdCwBFiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHR - sQRYiIiIiI4lwEJERER0LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGx - BFiIiIiIjiXAQkRERHQsARYiIiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEE - WIiIiIiOJcBCREREdCwBFiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRY - iIiIiI4lwEJERER0LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiI - iIiIjiXAQkRERHQsARYiIiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiI - iIiOJcBCREREdCwBFiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRYiIiI - iI4lwEJERER0LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiI - jiXAQkRERHQsARYiIiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiIiIiO - JcBCREREdCwBFiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRYiIiIiI4l - wEJERER0LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiIjiXA - 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 - H3P09UOdtarcei3op9NXnLSuI2anvQGW/B/bHyIiIiJi5hJgISIiIjqWAAsRERHRsQRYiIiIiI4lwEJE - RER0LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiIjiXAQkRE - RHQsARYiIiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiIiIiOJcBCRERE - dCwBFiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRYiIiIiI4lwEJERER0 - LAEWIiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiIjiXAQkRERHQs - ARYiIiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiIiIiOJcBCREREdCwB - FiIiIqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRYiIiIiI4lwEJERER0LAEW - IiIiomMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiIjiXAQkRERHQsARYi - IiKiYwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiIiIiOJcBCREREdCwBFiIi - IqJjCbAQERERHUuAhYiIiOhYAixERERExxJgISIiIjqWAAsRERHRsQRYiIiIiI4lwEJERER0LAEWIiIi - omMJsBAREREdS4CFiIiI6FgCLERERETHEmAhIiIiOpYACxEREdGxBFiIiIiIjiXAQkRERHQsARYiIiKi - YwmwEBERER1LgIWIiIjoWAIsRERERMcSYCEiIiI6lgALERER0bEEWIiIiIiOJcBCREREdOz/Ds/9n/8f - ep6JpzG1EV0AAAAASUVORK5CYII= - - - \ No newline at end of file diff --git a/frontend/.devcontainer/devcontainer.json b/frontend/.devcontainer/devcontainer.json new file mode 100644 index 000000000..5de515911 --- /dev/null +++ b/frontend/.devcontainer/devcontainer.json @@ -0,0 +1,31 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +{ + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/typescript-node:latest", + "features": { + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "sudo npx playwright install-deps && npx playwright install", + "customizations": { + "vscode": { + "extensions": [ + "bradlc.vscode-tailwindcss", + "esbenp.prettier-vscode", + "ms-playwright.playwright" + ] + } + }, + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 000000000..f4264baa5 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,31 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Vite deps folder +.vite + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 000000000..b1d5f38eb --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,4 @@ +{ + "semi": false, + "plugins": ["prettier-plugin-tailwindcss"] +} \ No newline at end of file diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 000000000..341e063c2 --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,22 @@ +# Initial setup of frontend project + +## vite / react / tailwindcss / shadcn +Followed the information from the vite and tailwind websites, e.g. https://ui.shadcn.com/docs/installation/vite + +## playwright test +Follow information for playwright installation, e.g. https://playwright.dev/docs/intro + +## prettier for tailwind +``` +npm install --save-dev --save-exact prettier prettier-plugin-tailwindcss +``` +## react-i18next +Follow information from website: https://github.com/i18next/react-i18next +Add http backend, `npm install i18next-http-backend` + +## zustand +https://www.npmjs.com/package/zustand + +## lodash-es +https://www.npmjs.com/package/lodash-es +and @types/lodash-es \ No newline at end of file diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 000000000..c64be31c4 --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "src/App.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/frontend/dist/assets/background-nologo.jpg b/frontend/dist/assets/background-nologo.jpg deleted file mode 100644 index 62d32d0478fa4fc7d4f159cfcdc72417b5d207ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108033 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 UY2az>4(_L~W}DalzyJ3C0Ycs7hyVZp diff --git a/frontend/dist/assets/edit/elements/example_wiring_button.png b/frontend/dist/assets/edit/elements/example_wiring_button.png deleted file mode 100644 index 993f1b9f5bd18ff47b1275829bb3fc56c4038ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52863 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 mc00>qN|laM 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 diff --git a/frontend/dist/assets/hand-flipping-switch-BavH9Bvp.png b/frontend/dist/assets/hand-flipping-switch-BavH9Bvp.png deleted file mode 100644 index 97fe3b62a697faaed4efdca65ab67832b69b8ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1897383 zcmV)!K#;$QP)00001b5ch_0Itp) z=>PyA07*naRCr#@y?2wG*>&c5(woY%KotrFZyRmUmh5geDT!=Sh8l%d(nL(GCPK0E z1vcix=&zkGFdNd&Y9e+wVnwk@il&?G9owNB9w?wt-laDizvtZh=9^hSlM~WxOp)lS z%F2AreeXT@JkNQ~Ihhxa)dr@oj1BZt#s+<}OeV{ZHpphJKNwiAKd=FRvyAlzW~PRGh-vzEzbEtmD5vpHVRST@IbGX68? z)bR(_@Aqvm;GCv^er0BZK36dO;ytO~bcN}!(cjE6S^qTW^Y1x*=bF-AIbFA3SNd!8 z^FAJaoYBvZT*DyTOSo3sq59)jb8r9dvy&w zr_`&X_v>?lXOYcjtdP%HK5JGk6|Gt+Td`EKQnhBeV$lkPvgHaT%at}Oj`JDALS?gKe2HCu2a(NqMvYL;)-q)DstZyajcKg=vc5Kk^ za=|v}^{n4*Td&u#zVTXL*Ocw|b)DAjT83xZ?^|!s%j7MS z&098Kuw1^tqVV<8XO8!*+i6+1)3$c2VVzFHdi{>&ay}nfD}z4w82+W^?dZHWtr^YZ z^nBIi>RYedv0kUGdt|J+{z13HMX->Q=kLp(yJ5W3EAPOx2`_{-`*o8ntha|AA)YJF zc?^%{yieTBAY)m+$G`K3OkdYFI=7i?KIh{6#g=GwWOMq?I%mxCJn?+SDut|7a#@=$ zm93i3+hnz5l|s&ngT7_D9nDdmPrKW(POoR(Uf;Ud9_Ctapkwt1ee3eK!N6L*zO^l5 zZOd8PvexRGwS%4PhdYoxOD#5@S+sfawz+;^^5KnqPk!eRTu{gI>i75dm_&5tV^I_S$5bByF%yd%r`!xG{g8M9o@*HSUhb#vbX%V+sLr(@(8 zOZ}d=VzJ2CWdB(sef$D!Xg+V1`FXo|`6>I>@4aH>shX|cziS`7|E?7>89Q_SqRkvR zWyR{O6^oOW%U8_G71>}j_JEFMu)Y0`_759$tkY>)#<0;{*|Tz`Y^_GaO4SK{@Admu zDVJpL@`b#{r`f1msalbrQg00`U!Jsysd>v5DmLi(Iv!xh2fpT6V!0e6XO_W{>G|C2 zb$ga8TgMoFsT`QF<$?tlWxqL9J1MAoKb+gWy=NY?d@1L#~#qK z{rzpLlnT~sH!VNtTD!4t*6Ub%f7^2XhBbG$tk-Cn;bS#gHfVQjcVo-Ap+YZf^__hy z7t6M{yJz+NhIQLr>$W-!mkrv?$)fGm>z2*twbxsjAtVFtf1W1XJ=jWyZf9N67L!CLLM_PuDQ`HB6L z$=6~(3i};l%F3o@MiSJsXw@&y=6jK3@E6w2%0e z?q|i-5?q+HKNZf;{m4e=a$4tn20w){VbSH}YnZj$ZCy_uU!>R9HOdaRuV?vu z(dzZOwOTFtYbQ>euzaa#Tie^#;dxuZ%2htsvx!>G+MSL~&rIvyxc;q;4O?H|(D)r) zJYpU0so%3gp-n!Y=3Vr`0p93RV(hd3bkd1r=#nU|C1}|XYSSa z=z)&U{dYRuWG+liP1)q+q#d50*Y)r1?b-g`zID1i-OJ3(tSu}o*vS(otlntY^=sE` zV{_Bmovu|UChYj}<2ok(0ndVKy&%R)ve)6SFOibB+y>1sSUa&iN?%2|?V>UfKZ8vY-vKPMjP2Kn3|NYi z*wWEs_J97vKiK8Vmv!&kJ3D&+mtTHqk6(J+KL6rNYc^W8SKqf+zWs{UJ?G}Sc6YhY zeOp^ww!m_!Hefiaw_T2N&>0Yi~yJn?AQRBul;2Ug#&+tk#w-czeh*tHwi?TM$Jw8^Py`_VuB*gkmkP5Yz2{I|AnB&j^;)~Di#EIj!y}f1C>V%y; zch-LP&p)+SzxO@+`Okl@xzcPl?b&CawcEFD+w$GJcIM1!`}pJE*!Iqr^?NR^QvR&5cc4JaR;@EiNwD)vH%+Zf?%DwzjNX zE^FN$JGNx^@88q$_V#zJTCG|aU$)cHK3SQV(45VDbEzhGK)^qImyOnz1(?UcvpMu- zfTJVKM$zGS06*^)5X;&C$17h98z5k7=p4y03g90jA>f}4f5%%1=hbEujP?QFP`lO8 zmHeFufRxWR1pa={(SeSyKMMHAGe!cye~-Z9Q2>dJ)xkpIyr$l&EBGIr0PqQkqij~l z=dD!CrwD+ul`2)s=86Kna&`+PIfH?&v0SDv=P?oh8Jz7_)4_kYWrKc8&bI(5z#3-@ z=Po#1(Rq)kh4c*qAgh1fY{vQ^Xg207n1XJHH+?Dze= zIF|aIYwZCRdQ5!F^tnC<2qFpwed~1FBhMEH9|Kb?6fA>-Uo6YBt%1cJ>yC`_~#!+CxJ9$zC8rbTzwg9AyWbb!7XdKH=%3HEtjN&# z<+l`w4xVfvE*!Es@c&&1fN>%~_B1sP2>~!h03IMT$L!C@aid9oq8$F?8 z>){jh9WdSrPmZ+)XmJpx`3@N^&;~I8z%VP6D^{#jEnld}3Cyy#11M*RIS+(FR>0nm z89^V!A4Hs!Vom~z1P~Zz_6@ID&nsS^NQJPcWpfER;Di8s8$>s2K4*EZDS&?L0nQ+M zO}u}B_4sd$0Em!8-vJo`&~rZ!VzQBe$o167`(>sH5`jxPXM?Lkt&;4vV5^ z2*Ak^(IGp}`t4i3R2BhHot`%wzsTY z$XchdXSGVnHdY^4t(>#HjTPJ5T(fL%VBJQ`%GsQ4Jy^GXyJObwTWhCo{Z`L<9p-RP z;J@GPTL%K53*l9=W}{>6HrH6PW~(DR#+Zos7MU5qwWe3b+FbzuK+iLiEn26`n8-Nk zXFjig*gw`_20ySb(AXWAHCk=Wffm=qTGblK2`o9z1|UM@day@e88U@u(T70jS*BR9 z7JdN4LpCeW$9mDs4*paGc+q4;+lqY_aOSxR;SYVVX#ZkxDfw(XW{LzD60eE(=fNqi z0XweQ#X8UFd`w7yx&XbI19;8NuI476wpJX8bDUvQ;Y;`AGSELEr1Ud$KFsD?y?{F=NeUUEsgj zY{;fKV8@SywA$4%0JGc=_NLLOYrrd&ij^Tciba7P086XY7T~T_syYVelAqBeg*>(0UU?#JSWDT^X=~K+Wvms4jnpVM~)m3LBikG zH#Wj}_eD(1&(CYDAwpNz*Yvl=#YI~@depApzOBD8r)Oqn1UdocH*Vgvdc9>+le2dI z{6+iX$`xCA@WB4`Pyf_D{>^U$m}h2ZZD)5+bN}p_v-a+L@7akHC++m<(>llU^0MaO zg^P~~r2gb5KebY^V#ki3uunhzRObf}?(Of{t=qTl#g|^Pnduq3apR`OVrOsHDiAjL zoIv&cd-wGWc-{c_C!c&$d+ojDdv@mRSzEb(-#YD%o+I~+ZF~2fx2>4V+Ro~lRjXw? ze&(c|KX=A{^nd+7_Tb*Kp6~p^f}J{jO3&o|_utd_KXv)Ch#9u4+qZAq=`*JVp5J}< zU0oa3ip_oV&9`l8a@x+HJ8$h)$0jBw?C_z(cIC?}Ha#<_(bwjBC<20K;ubd99Nf_pGtcY85MUCOi6%J>fE-K@oznQ(w97e807M6T zTmdldC?{LMNJP^&&foU+(CBRZ&?62I!A(D5rXO~ee|-gjB3y}s>!1Q4#B*d46$?cx zm5MSPrBd0-<*H?j4bUB2oLzS{&9aI(`9Gp-omO4W9N@p#a;J_+2hkih7DeUQ*aG+$ zgRkQqRA~6~@hHB}T?l}T4e|x+U6}vba17pDWM2BB0fUsuLK#TkDbXy`F zFdlrz7(hk{{>!N!RjxdIK8{CV<^AY*J(&BT0Ep4E0TBnz5u)shql|$6-!{3qx}iGZ zq3hu56acBUn%qwkagm2Lvh=l%lIXu*+o&EWtpEswrkqBPx+(&S)0Bk($XX?zwGz>k zY}Tr!f|YVP%k{c?53_?yA;J|E07S^JZHklyC&!&&<_{#mz*>Wht5GZ~g%o6y>}3S~ zV@e~x!x*#uZzlj^M4I_FRB;X0%XkF;fPx^{-G@HA-+=&dVEwy(MW8>NSN^zD6i%R{ zFU?(Z2FTO=M(@{^wBrDB>QEFWPNL0O*)KDU=}kx?Nu%*ds;A z2doPR+{qIX7#ZGeRET+mKdKFU4eGf_0e}s1fWS4e{@Lsy23#%R0cAPu0aT|I0OR0a zkXGsk#%xRh5EKfEtO*>)s3+eY@aME*9l$%m5r_vV^E~pc2)OoVQ-t5&lM&z_5(2Jv zs1(@`N)ECsWvfh0+ntpaJ9hG<{m~D9Xfq3k?aI}!6p7?n<;xYDnw_=cMAdSIvgPwt zD-|a|OHOWRupxCiB4|*I$!_&KT9bfjR0xpDomRv8-LBMD00W$OCslij>WI9-4b2dxX4ofWuMfTYvWzKEU1iROKg zh`@Kj$%0hjIYDFfgO?T16K|3Gk=#aC?65fnYC7@ErkGf5a7=k)tfE7 z58nVls|dN741-OAov?WccX>t3RxYC0Sthh_qI{p_1t%2 zz5&MYL+~#ELju*Pmx8~*9L82KcZryDOvZ>vcLeA75=6fVFyNQ%?eFUxRn`+qgTX-S zk*GC4Gxm`*nVy~rR%2j$`*l74%0$hkXJ-YJxo>qh-Xas8^7~e);_>S^9ACq)k-4tD0HyNTpz~=f6UXiH z6OY?_Z@q1Az4>c<X4c+)=RNz?FJCw2@1Otq|0G~L zKY!S+UB7A@+grA{v}CihhwR*i3wHP3iscGL*^K-5?%Ce%j_&{Bg$ugxx88c&o`2za z`{<*OMS4J}T)%O{jxHV*u*ayNssQ}I@ci>q0I<(}{`u#&aAZOAb#rq=3W7VgZwb7w zt*+XsQ>SF3-hSt8`~Iu1+Uu|X%4)Tm&CSj#Vn26i&c3|zrRFOtoLjeUxq@J7Qi>3W zhOfT-QuCa3@Y&~|+L_a*MF`aE`!+dIwe__%TR3!B z@-U1E&Wj>yI65p4NvvJk9AXRs2;xWt;1UdRjE=;VfHVQ%hB^SdAm2G4K@FQobU8-| z0Qq{q8v)?JKLVy9aCj8(f4GAj80?e_EYLb86OEr8mybHQ9)&Q8JFH=FDOCj22e0A3 z0|Ah_m-Obxb7Y~i`Cy2UUWx!HR$OKpoNd3ype4ak?X@kJ!O#W*poNptwm}!kZAbr< zA`s+y2~di1Up9@9Lc;yWF?9Kyi^x2h?_ev#;!h-)IOb&s1wjFjFO`zH-Y1%CB}Ilh z{f_26jto%^IV|0t6|)7);4JjeQxaW4iVFDm)BvR^bdmBqVIVRi$dh@tY)TOT;2@y{ z;CI#w5e<(};OMwK4MhQly@g5w=Kz2nq{BX6!+MH9WQ?pCoqGW!OXA#-^DMPRpK*5y zEe6J;>_eawBaFX`0^sWj0GD2W-B$!Sqie&JIS%w9&=2zO;Iw&)LNe2mQ^fn{c*FUj z5T{2;`&}#LJO!Wxz(MAm%~~1NMlNePoF>B=$6+>WA;k?T03rZL0YK)Q5CEq6g5!%K z3epq;z|%~|qW@abqZ0n8x{5dOCzQ?jWE`bT)CO^#tUZD8V4LE2r)?Atfu|S5{Um_-5Q+0BAa*Da0jcl)dW^tl z3?ESY>k3GR2}To;+#uOG`GtxM(-;-mzx4W!u|3wlKe_ z^o*&w!**!#sAbAT2g_E-mOz9-Fc#ESgRTewo>QmUlHv@zij<$!D-;|B)+%bRoatg?!1vK9xqqD{^mHY?T4`b0S$v?1m1wi+SiF;rE!D#TMxIH!}?F4K;r(vZu` zdYVwDt!n}B^Hr%<1-=>$q}f==o|TI^+u7Q%YPq1_H`dpzRLEL6m$58Jeb5sr-mdQ| z1t2r%T5EsLtWDZn-!>ksS|wk!_U^t?0d_aGZP4jkr{1zm&#YN*36=Ic5EfAlzzcb6 zw*ct{MM$H9Gm@H+_keT<&aUu8skYy2%GRNd)7~jkz$5q~&@D*)1DLJ1nn~0jq8$+L zsRYcYoTo~$o=73d=XE}j?MjmxNJXIa9Ik~pxzY>V{n7ZdZ@T(txHCyjCGx=20HQL> zi5VvxlxC`wJOABPAH#ix*Fvai)cOQarK$-{SOZJ>~Kq{pb0iL}H$X@#1`pU$|Kv2j2oBfX@)sj422L^8_C%u0A9> zD#Zrlp91%$Xf3sivvxu9z$9TZz@16yBT zPoks4dm#o;3Gf~O8FKkZ_SR~XR;^a7 zSYm(4={<~z>~}tI7cN{(2!{u&t9lP$YjN>tLZ|?$@7-U~c^G?s=Xn9Zxdxs!09WKi zyKNJ-NdbEHxA}!5cJKZ@fp!Q3j(_~b37b1~$Zp@gqtp-n27&ba^WU(a|NIyBjcOcpF4Bf&R;ldAAk6Pz4lK(vi8o7 zoqznIJ^So48n4ej`^@g#y(1;WcfRv`)@(J5@ggy?)UaNl_I*S38BzSSnDG*_`zFTVVW)K0AXudZB?66NBBi;CL6 z^6l@~yYIfEd2{^u38hW|$noI`YMwfE+HT#sWe-*!2$b_W()_pIdB?u@z3J8-kzx?Gd?fkiO zBF3r{6|3*>OC`WMXD?)qvmXNVnO{d27wyWG&-HhuYhYLVeH|NB0Hh7%)?<%7W}klc ziBcL+gFu|IXA#WJoSdB*FcFDjVQkw(LxZ%HXqQL&aa4$;I@nT_S9z8WWTKQlO21{Z zgOd=s)QAIO)FetIA4LGTMHm|P@aqAzj(u zkISvKakwJY!AK(QWz%s7J#IJ&aD4W7%U04T+O>h~e*4;y5&_kt<+b210N&zq{ zWCvE_A4CA8Odyu>*{oCm0)b&Iw+%V6OBxjs1K>*n3+PA2>d)8Sc>n+)07*naR1ve7 zD&?SmSbIR6!GWlMyzVgqG6lGmM;W742~i0U8?ALPu4o#M@c*|e0MZfeI3phU@WN9` zn;1rK_!Vm&1b`px#Hd9ZJxc_-(UJE#>CQBdga}b`G@?4CqLr(F|3XMR0~qElr+FC( z!#J-|89}O%U+!x{WF$mDsQnSu+W>zN0Ez?;2?|AtlRaT5p^y7jjF#gVCLmd$AGxZN z0Qy-f03t;Iq@mbp6Ia4 z+?i{Uh=|vs9QZ8xxCPk(U8ev**`wW%p1rQ5lZWRQY-MBJsx#Ae>ih)}0L4nhZr-_V z^;ScY)cw7N&Cbr-<4-+fnNr0Dg_0`*h%gJ7;W+UeAY|N$a*1}dT>%{COD^w`UBCzm2Y?FB7||B(jpc%&4Cnf)m6C0)tr%qqig}3r zu9fmRt8Z>7C5}Cky>ez|(!TikLt9#0u={uJ*i5Zv>-Qg6u5Si)u)Drx`F_SW9;{id zRJF~uO)KV#*4QK3YDxiM%Hrf@jAutgi4-Q6@e9N&_ulOo03U$Jo<#mL>2mmSK~SGe95k zkCMQVzOVOw)|CLBdH`VVB*Xy{VqRt~dHsd}=HuQFf-v!Q`IU=5X2D~5q(eAeLgRrLqtd*j<|26`mS_vg@o=? z{x|BOtf%6}YZ396(Y$9(#{I(6)lj)GW(6x1%bs(eae$BN0Duc&S|}B4a(YI8Z-rDA z{!UIh!HUVr89ieM$yM2k^^NsJ*#OW%Y8`XNAvRc_9IxG|yRt=VGcPbqG@ttgfM7?b zCTq#418Rtx`|zRi=-Fg#GSm%oVv=J6<~c9q0N2Hsu?7{{+}qcAbPV=$1*)h~RS4_U z(+)p>~3ox$Q3+~-)k@w1V*`T2oGLIodA&MS)q^s zWO2QvN=4&Oem;Pn==xKapOSLnqmMsQWFElHGvl0h@7>dD+q=7V{=!9DTVKZ_~v$}8Wt`zsG*gU+12AcfVvdn^L;_wKU2@x~i==jv5EdEtURdHJ%PJb6;j z^NlxtZC5_|)MghJ><|9n50nyc=gwVQzIWeR&9*HqE!o*K=afG4`RAXCJb3c*Q+D+D zF@gU(%gc6j>A2lnc_14^odY80C;;|$NaxtobK`!9$U`Uru&;dag8I_(4?ob7CUXDn?|jEzfBkhSVAum(!RrbnBKIg{ z*h|_ifOkP^0?xU+yCb5Cv4yy0E-l|%7NLBIYlN66m$U{RtlYO^uAplc9_aV=-s$Nn z*#w>$1P*^9MS^SLbEL4`xN*%cT)3cg3rHwb6pUx4R<6jO!IXFgoEJ*N=*qY!0L9SUfQLfgzr+i;7@40ssC&;_u7A20$Jis-(b6h<`mSVxD$555VOZ zF-@H(8i#a5Es2=L%_KN^5rD*Vq)C7TF2x-GkQ0tP<$a;po6=ZQbWHs&3(F^7Ut$Svi-hQeV)l~hoSdj}x4TfTt-`eDcA zKzmU@&j}7|OvN@m^2El50a2b#rz7Vl)_-v zpdSFgWaVD$(}*Cv!McRfBNTtZs#vuvQNMK%C6qHX|?HTJAM9~ z{#LG3ZT|2Pn>&2OdIR$4E7s2z^c-`F`V#ePBiJ{dj~4;-Txj-to~MY5K;EiO0};_S zQR=Qt`tJ6Q0Bft=x9apE%ax}rTbZ(6m$`sO%}EofxQMpvX9|9HCCQg_)^1rL?+S`I zDY3yg-lS%+RS~tBs8&P}fgII5N!3`2KaYD$PKpJYetf!tFo^HfQ;!O>U^Px>i+w{*i^lwswEn?%cjAa_t>P!y4|f|#b@9&?PMe&7H8t9k~HUA!nj&e#I#A#I4r^FHozB8X#x74X%maD>>11UCo7Pc2q!Ww!}JRAcE0C#TL1oZbLk6*fg;P5*f zRpc*tZVuGk%pQn_{R;_zQNVCe5kO)>&MQP$@ z;>5|Y8g!ZzNN-MGAE6JM?AH_;h*HkacTomF`B?z}Qq?jd04iRIzgSR|0~dlKN8~u-tcU<0j~j<56m??*4YM}XukbbD zS07}PV&i5pdBZ&rHvC3 zAR%OelN#4&oT0I@aPVb(ltae>oK}hqiUbG|P<31g#YbWth8UH9Smb^bY9A~DI7}sQ zROjm~g8xwxAVS16lQB*J42x_el#zEN!Fl^F06TrHZqFzQi2?xN?*srK&%uS~`sGq~ ztVb${^^_VS(m~l0-r>ZvuS4yWAhV9?PwB25T0tq*&jBJ(^%p|b{*(ehKt5$Soghec zg9rpbyvHQ+KSrRA@B?E6QF@MyJIwy{hEOQ6FR3?10Gi;XgmfALr~~sM$oze+r={1< zmV2b%0hv-QA_1hacQB}&;36GJs#dI)oz&A_Gz9;`7b66KOUI=`3etb6c2FdRvZYQ? z23c3Q7uoG_%|lxlYL%o3fMfxBR6Zg00x2?706+p{g90E(VI#=KIVbX;0_hR>d+|Om zTp09DfzV2&O{8i7#K)9YPQ~j2@O!#JMiPD}0GtTGp@6*L=cGP>lnN*;a;mV*SW{H$ z#F^7}>FKAeIz4F*R@X$V9y@tTL>Lm{EYa}YJv)8=f=x_LSzr0)+*#oz?wyg{qRW9khIOK}h zX8P9J-BRH{&N)#j+V<9(69SEWo0_QF#{Cr=blSFf{)~P4t6!)SNwt`_R&(F>clNB9 zDOtDKvDSV=9RTuxo4vZV_v^N|wQto@&2}~^yyityk%xBM%#p0M$w|r-Rcukk_$(uk z4~YY?*LP|Oux|2s1w_ctD?_Fe~G9Utcd|`YIzVH`Bjo>c_`Dtik383;ho)ynw zc5Y5784YzS@U8{;LAr-*&T7*$HZd{ng&3s>B5&Rc=<$yTEx-#f4N#)k*w*HD;-gTp zd~Rk+1S{)=;{#gAR|aUaUPLZJOf?RDcLl34I+W#MPHkB z2lz%2Kx7>|hHRg|JAs$cF+8P#b&%72U|TpA_oISq4VQ8=z5p=NF{S>@xe|hV<^8;` zkS}_r{Mv+$>%P|TdYM5YfGI{eHD%RGRZ&xo@H?7`i>RD4)fO+xwlTRd_Yfuqz zJrwz)(A|w2w^W4in=ig(t844FeD}V6;~Ov9^UuGa{CNr^5*@$t#TDh(KX&e{&Cbo( z%Gv{)u1#2}-?P_${&Ty2^M*AWd-nWOPgtdxSHu}`O`$;|_z=jD4$PlVKmSa`NOQk# z=Pq8d`Gt9V>E)O0`puj6lrK3kRXIJjs({oUL2Nh#nvzeJ`yLRoWNTnyActTQtQg9)20RJcmAbYsq zt<5cwHRSkn4CV&Un*xRWOwmOo`8-n!3I2!w@W1FgDF$>)fLvkju;((5NDF{SVE+B! z4}V}Ee(<4)1X2$mU#LMwCxlCv9&_^01~xN2ZU6k!pJ^XlT3pmTpoYNJt6ymjQ*e+d zKWn_czo+NQH9=f(Y@PvggsupXco0(=D^H>COCl!}g^4Z&n~L&$L;$#x2FVMa#B=NShqM(;Bx4Wrz+>d=kpzHCP}5%r0F<*Z$y?GJ zUi{N2P>M`VbpM0=S&?a6yPP5oNdGAcm?wwTdPdnZ2mp}){EkznGyr#^i1sLIN@d|B z?Lv6pi!TXLc}3#%6?;yd=VLpelB(U1NPLGg4ZlPTcZrC9(ekAU%j8QcP(=y=Rr$RT z4`83dM93gR&Ob~sfE!s}lCv1)`XRTtKq}0TAQPhxKqu-i@K1+>mgK4wI~=qd9@Pxe zaW*%v>KjRbLSXMbLXbEo8WT?oQ0^PG2~Y%(I~ahq2bIX<-19fY|*bhn&xOMiL0LD4>sN{vaU;Dl(p zPZgx2e#Ea+03<32?`j%S0L=2VHKUbTaGVvfRlIh1m6E0^zu%)dNsW_ODLTkNb^fI0 zz?i^&^oGamBWDcuQ$*Krr6wsvNzI4hyw`Ze8UQ2qFWRxur;xUvX^HYCj`k<5`yAkVB-_7>*iytW7Gfj%<58$c0yu9-j%U>)Rz#8@ z^sqsZsMhmL%!(6~fv#~?ju(|9I>q-$V#Epyy5B&O4uON)LXirpRPOTh_)kwfAvRLd z{DeFRg#k%TP@&X703^i&Jp}-!UW|RL1)$G6sqJY~j7?bo&`;sDG(jQaA@wX{o-8jZ zXFo*x1^OYw6rFSeN=5%d<#M(9g9O0&;Ce-<7DS{j99Ux&GcS!}kqOBXjAB0C=w{X9(gM z=NNwkTgK0%eu$#QCTB}luFVMWQY~5)<5kpqs*p`a6yS=ILXB<%|R0|o~T3fZL$q7aN>wDW$ z#Z6DuZ2iFlYwz#dp_wULxpz0|M6$EFZtJV}t&}TTDO0v?vuAaRv9-IlasPo;3uW8i z*|k9j8&eK9efIJbi%gkQ982ATZJ* z0H~l(Y5~d}^5t2lp%8Qg)GA^%FmDkTTI0#Qq=EamzZlnZP{oWZ1jYj}2iNG^EA_)gJ4fFXiZqaB#UkL=&Im^%3Q1NO4fj zfzVQr&nf>{B?-J3plU9tlSk2}C#Q7`z!$^=@@^GNEEJSRrFu@4sz6h*>_t6U0jNi~ zM}PyB-}##&<)KRf_L()ongJNK+g^d6YbTn$x4k3TKKGa}c+Ne3N2}e^>*P6ezvTM^ zqN#AM;(;mB0Dz?&{Ypi3HCSH&bNNQyu0Sj&0U!@zo5ko)+&XdG*lbqAn@bX2bY?b|voDG`tX9RJ?E`;zt_SzOfE1L)Wvw|2HQ zKCDmLiW6>=&94EMd*@_L6JLZ9V{L_X3sqPoWT0w!}Ds&f)a(6 zd=Lrj1=Kv?{Onb){o_9h2fX*;`*vt%+WzqOf6v}};|-ghomP>&kKTJ%iV9jw5)D_) zoJ>Y33bdT$_oZXU?b73qYavs#?#8WKlHx!6{Bt5fKL6s17h&vl1)_<*Gv8L%R<$-D zI?9y^DOk9F)*vaj9RK*zlEC-E{Jib%Y>N<}H6JMnC>U7J6eHx?AOM&%q)L4H*{8B| zUtIY@DH4naz#IYtX}-E{^!oOj-+W>(yzmVX1E?EN((>FP3s6d+aN(JL@Zksc@=Gu2 zIkG$dK$1 zDT5FQQcKB^(h~cz2$KVpQO|N5pr(m|s16wBSbFp*m=2y&6_P_?r16Mb zloLmToXB+LkYecly9{wc0E`kF={ri41dl3q764jw*yCrTBd#%gg!3Jv!Q-TZHl;YQ zVFybeZvw?Lr%|bz!W{s3ibZ*aaBaM>^hFqNt|@d-2#T2G`G%^tTq|Sf#mZtI za|afYSc;Jmk1F^ErpU#`E3sF0sH&gOh5uBeUx#`hIbu%$`2o#Uq%4TQHmZS`dUsg4Jhaf zuoY=L7xQ2JeE{HLiVua%vT89`Qc6#htm2fU_k(x|ig-)jO%&JvIoai^7ngK+JGt~c zPH$Pm@rteX(zA_dPXvr%ZHPdNuZ2F>iP|isGzm38JonyH!4Bg7&xYEK-DwN9{d&@AWr)F7Z#1e~ulB0wX>#p5UJ5C7y(Uu!l_8NBT%y~OBe?-SnUvyst ziPFnSUon?erk8Krvg3!3+ZVt2LRH5%RQSH0zVKz+K`J{@vu39w;)eZbztI#Spkj(0Z!OnoJK!f+wBMxI zmaoee#qmOP9N^FX$mb#GI3^KCBK`un08XWl3w&`Q@ksV z6A$6#ylh>+1sZtV4jZY-=d4iA35{9kP-*i%95oZD)HYNs*vl zNuJaPrQw8joS|-jJ~vrY+eF3z3HaXLuD7Rb(?P^jE+9fUE_wgH7da_|vOsA)_z(HK z3Ii22Pw5J%^mJEI=#_Y-VOw zY6bwK*177C6eSt=XV_3pgVohFo1B`q6Q@pT-tao}kn>ZtZ)R@JUU}s^cJ=yo$;#jV z;6pok>ZIiNUO%O24_4Q$)#~WAo!woLGDP1uDf+j*Zl7Pdq9ES0&pa#H{2zYrRoUxn zSFhUk=7zod_FJ~Jbi{V|ckG$xp0kO`S^M#ie_|hg@V;t796z=wd#Lt~sD|oI5fpqe zRutyLwybY%sQv+|D%4jX+K*BRg@PjAGt)tpRkyjhS+7k~V9rj+zHuC$8GbB#5NQe! zP$!Nr$!f%%P%4SN8QKyJU{@k{pEr=QyV;d#wp_HsxD?t$EYiY8KPAkJS> z)mqqcwQr?$ZS)P?wx|n$RTc&+OqL*ZFPN3i9rTF5N41q}L{6R}RzWS0k}-`tnB%y3 zq$+r5`xgQC_-AGKLZs^eG6*kt(Ymx;eVA*G^OMux9txOy_Sr5srM<_{RupD&iT&-iz@TEmxeh(!{hCkcCMFK#BlWH3tIi6zSvo=mJ2b zNdh>EK`E}m90#bE)&OK0s-KWd{3*1&qT_TaFavA)uUxR+gyf<)<|memZJi7o;6KsPuXSbq1c`ubCi$( zOe!N;^*X$chFbmcdaT+dfQY}i%c{k2mR9hseCL!g- zBlMw4e@F!oL8Uf<%v0tG=Zyvb0vQl&WgN#y(viy_!M}^A(xgLH1-W7>fNBmDoNVxv zB-CAbZ-1&f3mKbTm^a|t{k2t_J~U^)|NZaV^WXfYqDT+cR_*?S6-9xMpFCp=M~_>n zI%(5KmJ%XOs6DJOt+P~5b_jsR{v_4)9NLyatTwS$(yJd6JQ?|Xn z;e|$JfBRAc^pQ9tE6$pTh+z%0{JW$iV6P1j)wFr~=gaN#tWr&j7-Q;(P#m zepcs`USG~PV8f%|6cB7noxyRG%O9fhN-GF$`eO8%?{wbrKJujKxLTA5v-_H^%1|mm z0K?=P1J;K_IJ+2Ul*B%KC z-(!3|#tt$f6#_Yz6!rsPDz%aT1Ei(jpDNm`{(`3kiqNC#H+x!8MS8V=_es1(ovTp! z9FcG&>s)Va>4)DzPC0+$`O#9aGT|L8VmE_)p{(aYT>vRQ)Vk3-89*WtNkqmCD2@fz zI2NQ1dugFi(e9WO-dH8*}$ARboh`yqZW=3 zlA%+?=`&}whA3W0x*CND=jLd`IBUOt^L2atu}dN#NbmUBPk*Ad^zutD>)HJLpZ{4o z{GWaPnbvFs<$Jq(Hh*}*u3WhyLg&blMcEmi17msT_H6}7Ayw|&xvl2~$X;GvR)n7- zgse4Q<6h64Ib+waUYCEs=TRaoDBpj}jw~*OHsBtBMbQD_^wpPN+3C}#?C_z(TBDzQ z{IRXAt%?AEkYP?!BjMwZKNQKcL291n;VuImP1=ecK`@>ef5^I!$Np^{R8kuJx060dYzVA|YdgKah4x?}Bjog7? zY$KQE_WddyfFb=I%Z*O-fDkcR%M~XqU#eQMR<(R61c;$lFpYbYare9{jdk?YV*)Ia zSTVB>(jfpK1CUsHkldxp+>@ka4Wd77eMdf8ufrs_q%x4=KpVJMxyG@g&H@?leINl`sWWtdqyPwolSJSI@GdYEDxXWKkyIFm2nbyP z5)vR3XN!_r&8YzJ#v=Hmf|4PDlLlE43I~|?TRK$)h?5li8>a1W%;O16i)KzgbeT-P&_rXF?A9k^n(u4XZUtD19H=%b~lU%1wv#3M!PL z^gpP5g42&9D`y+IZ9>jMOqWIEQDGeC18FgiD7mY#h-NxZKNXV;E&M#%F9LwVZ2;SZ z(#O z)RXqa)6dxb)fMII?ok!nviA9xH|^Cw{Gpw@_!!8=404rvL7{oVum~f2tk*C}^71p@ z?u%M6YRA~^$Wc>W5_KveM;c!QNjP&OZ{>+;%T*?H4)Wb2A*IxgXwR5Oy{>wc%TB3l z3(h|F&(#^&P;5G?E~D-XfA4jzP{>$^2zN+L0TkhQruQbU86_JL#hvXp0(xb7=p}YkGgiYd-@Q zbUNl(OGO1;T?M%JD0V2O3TP$&8DfE=k0IAw3pz)kBp=GVGk8w9T9<}rh1!t_KR%DT zfvMX{PHO@nL2`!|FYvm-pk~IY2A-^7=i_!t&tXwIntsPa(k^YnKuQjW} zpMITG-{<{Yj}!nZ1nFbV93ryH`LSVoomy0MF9{NS?genkdlhxfc-4QvIpZZBxZfAp zCr=)-guHLAR}%k5UB{Z3m`un5z!UeWAP(z*`URveDA?s44%qKl1GBTU!RC>+)V0mc zP5GKULyiN1pnUejhjmZXA&A`x@F!8zV0&2KTn|!z$WB0H1eEyUQE3$mMYh^aR}o-e zMbz~|t43FGuvS@f=g(h|x?^K=OC%4e0Tk1_ar2gddK1jBP7p6xhjb|&+z#1 zV{T_N84(h+4BXh-)HpI`q(rEbNa((RS_WV|IXR`Yij${KDfb`3g)|8w^>^+r+r^6) zrF5&;_w4xbCA)R&hR6dt3CzzQwlk+s+duvIpRCzvN|^wjxp@AfWc!TCojZ3#MA0Jf z-tv6`cTy(Q^`YL7f`OKS%ggs{sy3v>bpE09z!`$2< zo1LAp4?g%n$9e1Rx9rrZleW3JVc-4zKM0Ziij)Zt?%%gR`!|24R08JZuitz_T>w}w zQX;D}M#(<;o=ryV2<&Ax*9NF_?hd@WNSwUX{Sf>=1}EShAB9lk|~Ck ze^_8Img7<+0nw3s_jI&t)Vw}i0T4l5NYqUtgfZft7G)w@J5Ic z$&c86O%59pNvg$DkdEjx2G^O+N`>mE6&0c2JCTwI2NW?>3V=)Caq!yYH?e3?^DD(A zR`DiUR)hdx<8p>qZFOkrM+AcSV%GsSn=}Sn1!P*G&7OESj0Hh0u zs?$VxmI=rYfYnJdCyj`DN&FpJ4%R;a(YTb{(*S(_CDHky zM$^2DDIku+5>iT0e-Qu<++#fe<>?2qR)s5ryg!mO@mgX#KaUCyyx3qM0aWon7W)fD z{?yMKG9?tkWPGP)X9V;fY_8kliDUNf{`#+NV|&}GwVHkM*{6y)tgPO*C!c!O&YXS9 zPMkh3-ylCR;Ytxw7|+*DD*%S$Hzb#UR81n41J6%xbx~yHY;x|fs{tWi zAzWiEAhq-Jy~$hAq9W*O+`KzYPk^313?+cl&blqxEo`i0zM-oNdjb1fshCrg3UD<~ zj%=u!jE(1-ah?>BB4r|%vB}zm-d`+`hfnJ>_66Vf)UBc4v-<9i6|fn!#BDZhes0dT z);9!xaDta_-?k%%=k4x|TUG@~*X!14w5{LlSw2&+^|cM_cLr81Rc&W$M}AGWjq;4K zqs3ZN6N#dJ>`}3bJ85bV0QhPEInv*V+$wq;2~W#f6MzX3&}@fxx_PzMB9$Pm0AOCQ zP673v>yHx7BlpY!MTN^1FEU7a1NWTG+77+KOYE8O9{`}doK>|{4TPU0{;~6h_HhUM zNnnMVEbKe#7vHwL+I3hdmHL2Ie2oFZdC2+nga1A z!j$!+8XB%HU@dX(=;sfM1iDWHfkc5z)F9XfNEp>bkctL*c2#pkK2Rt`NPPho*c3VI zQ`1T63v_p*WzYM?fS%3h+KaI79_tm~%1?Nc&^a zKt2PR0cpVdBl)6Mhav_iLtC~jeKw~5a!ve=`{o#Xdpp)@l1uIdo@3XwSS$`-n&-uO z;O&p!8@ zfF`8D4}bVWyLt153gwZ%&)Nsv-oAOu3fa6p@%ZBc)XWjc9zIvDl+~ePW_DWZfU$u{ z;+X*W8CT{N5&rF+U0YdM(YVeL8P8?ZJZ;72*ScFW+63%%3$wTS(S1bMMs2lZmPWwF@l*=}^E}J^S3VYFD_k zy=||)`hENGgAZ(WZq{zyx~c94jP02-r&UA{I{?{1?SVUtvF1x%bJpjhcdJox!NSzB z#0Dmj#~@3J#!pU6kX)-ckA4r1Z%6|e7H1ok%*Paf5#XN&_~RBh99M*cK({*-5BpLq zMpcoWD4z1VB_ic&?=9RR`8KIDF$d{PB9mo$ApI#vSx@ z*67zsOm%G|h{he}Xu#8B-~_}l+9~D6fkJALAQ^r#U0)#?*pyT24zdG3N%G?Pk&LVO zk>{avDwwiT84_T^Y7>*n)u9JBMoGX*aooB<50rCQQlCrBVK#<_3ibM(og?mXy z*pj;lpvJ`wVSMFic%(>C3Gytn-UnG-EdUHE^cJeVOFYeH<{&l#3W0B&S(x@v%!bVe zhn&rWoV6i&<53Jn{BaUhU6x#Z^Ubt zV|0|e8`qlTk753XO%UV8x!d$v#=%v6j-mI$y}Gi&Bd}_pq`ubf5_yVA?7raD*Q3l^ zuSeh?x-_7s5vbBX+?Zkhvm6vju!nN$^qP#%Zd4%D_hMAu*K9a~a__^>p_pWP zU8Hj^{dIqHI`S`I6sinMNfO8fKc7dSiEiq@VFUH!9+dhYNLw1amvPe-)mARejxE`O z&5XAgY@d6g!!a5s07Otkg3%vo;zW#`cl?@CQU6C#s~WjL1f}h31lkcukEHU1_MRhA z@gUoc`MoY22}Ep2mr^lD04w7mknd}CkfDv|l-98vQ^`SnFT$Z_Z3rMk?#SN9i2e{1 z5?LPR{12o5vN5STG2_oMQG6vjjj(0_bSXtgx(KGH(}WrTsno0Vnuuj4#bcH^}G!k^Q_ylR%6Esg`7)y0jgWuib6uFV(YnIh+Uj5oHynn;{o`g0yCt{`q~34 z7YdqZq_{x@P)lHYYeR)#Yn75xPH5|Qcy?N90N&r0RG-}cJ*)5T+cQsIwog9z$hOut ztX7$@ez$KM54I$=-QFbX-?w6}XgixbmM3?)2@s-CTvkQhAd!g}Qpco8`#yjXq)X5< z@E$8B=d> zM^U)4qQHtO=W=SRTW>WSu!eobBewoLm9s7tCWS4da?9sR^og_=(RMGS6hxOLsf`l% zs}%STCh?)ZWBi+ke-3`>wdiN02=(+kz5dl`g5?NdFxF+tH%RPS*vBI{mn_}KMyCxb zs7M4ve<<1{<{&^r%7{>)Q-q3qw_yuH?R%kP0Ppkdn>9e7BPSmtoqB*zg0BK0qe9Bm zabP|LKa+U`iQ~#E2SNZr&P(n!z(*>BY{u$!Iy?+Q=YhOUPtE9BiB@ty&3Z%fbd+2Q zyrBAMJHe)uF={h)y?`IS7@!a^Pl{9QLZE9G8Jg9(u_shNXZ)1ckFu$dm+y(>y;81t zQOn>f1KM0^&`c`yt9T;yoCvUV+9C@$zgJJ+@IVlAz1>z`y+_z77K-2J>mX4(6pG5B z#~0*T5**?m`kHI4E{Uu}{ti=>f>4E(CUh=Q=SpsX~ya zPMxwZu6$`{&s~t;${gYI0CdRFciw(mtqs>#SMB^`kJ(@U`+u+M{cpbYmdF9#N72%| zckbA&o44%j*)y60M7fDrW80DU(^;a?B6Ve8M~^P)9NZry2x=8<4Fm~*oCy8u%BtoQ z5qO?CbA)R9s0*ehYqqxbK>IA|8x-H0o|<;DmOZdgv@2J>lysh;8Abn4FDT8WHlb+# z6Hh#8ufOqzs_jz~f#^QZi17mdeE#_rd;IZBlJiqM5H$d#50&}>3P8nk zDu)I!=F7UV8&=6q07RW(msX)gP|g8NPURJLp1EV zZ_WLOyUGWOZlwYILnOKf0K-@abDRK(QPM~P#Lvg)6^--5ukW`J0I?`nYO73o-4Cl= z#{ybNHAw>?nxSs@0kz<7$lps~n=lIB0wh(4fBdA^@5$vkIG5+->6| zA144FHg4RVS{A{OhkqF&7DUn2&N6F-ER1sOh3z0A3%jXO@)R(l(2Q@CykGME0Q}W2 zmSQD2&z;qVqUx~`EVJ3N$+fgmB7bC2VVJam=w}E1a*jf)L6<&yWoG7&=j}n95Yg~W ziw)hY)q3yn*m;8|6{8Nya|`JPT^!v23R1p{mVnFsaezJ5LF*jRiS)v=I96!S_5GnEU5F z+CG&1%YFq9(jy;3$^THeo<5ID^3z`$>p&bPucxX}Kg#P=mG)FYO98+XaUyUTea{rZ zk#;PH4&;y&N-EaJ?jw(|SJ9!4b0j*_55HbtFOkTR#5_h>gN#0&*NG%gACXI};(JcQ z#(I*<@(#Axi5K;&a+L+o0rCxC7Tai%B2%nMV$9mp!D8eZbq-`6;}!GyWAQyzddEh& zv|N4TL-gM}a)ci6VT%|_--n|xe7?i|$>+JZE{*$B{O;rFV02iVFA9VMIg^lNVaA0t z6r5U*^y3Ie@b9$)1o(s8b(p&!$fGcCv_+}*hp%goZhMhcrJ97uzbgK#)hPYEy^agd zAHo(}MepdzL$mg8|L1>ahmS7Wc74xo-Cefp*REN&-cax1QnhB!zx*vbbnLhp?e?-& zFZHfk3y{RL*J1>M`l92N$fF7br<#Zf^G3Pqs(a#X$;y?QB%`#B!w#nvB}q{~%`dke z8t>53PkW7|wI~zKI{OsrGf7T)FU~(cfs~6z4m`vVg$J8z*9W*D0*MT{LRwaIq>&8= zHHC;q-X6`L#<(VXeBi}qkU&{ZPgCX&RVO1?kv9e~zjx5>o?YlNTIb-*hS8Sp(Y4;>AowmjvEoOVxZ37mF{*hDN zQ|>F{*lf17A3E62OS1&D;F#1(;8-5@ z&)I&fX~jxeg#c01aV(!wGF1Rk`yuKIE{ z6=R~*ols;E-$LV-bKih<&AL_OJ$%I=0s*=>E`a(7@}k0*;EtkzL^gRo_%@#}AdASl15dx_Va)|UKM~qUnD8Ec29V>c#V^%@QhG~H@8@Sg8t32|`I7C+WE81a zJ~p7AdK#q2QkVwA}KzvQzVfh zdDuk&u@}iE^`od-0a5}{b3xLu<+}g?AOJ~3K~zP&i;~_WWruW-A|jJj3czlC-%g!5 ztu6v6m`+{1U@v^*8+P;NExUB-ar@$nEB5ZY@5x?J760VPQz}x(eEIwT@_(qRKeYg6 z56#<;UwcjM3@NPl^ixkN%KhmlRNc=hn$7rJyMEQ9))Wk^lr$z3yxZ8=QocJ%0_G`X z1w|48)e8$pq>e&qf^tAWcy?A}N$myl;!m77W*h5k3O+KH+>2E%@KlzhCvDaV!l~pPw zD@*0;&+PWC+cq~hXDjztbbg*oi`Ig*NnIng9su@>i;Efy$RvmWS}@W=k$o9e1H`lk z40F0?h@+*YMZ0_Zj(j697h?bk#JWRK!#xeKw^0F*j(n?_OE7>5;7ln1WXA#lAVxD( z8rGuvIszam`WGTqG0!`t2#CkacKBQIv&JpPDlYaP<+K=d>%O*f)Q-l zNGrCHJ>}5^zyT>-cosu&7YP6de1QIR;kdY2W6*J~h}^Iskb`Nn$Wc5G<3gLKK+c4S zkQcK<7T@u9GXW%M^F5&H9*#lWK%;Zc-60VL>{A#lOS?a{{o`kP;AV^lHOk42ZL^Rd zBe$Y5G6kbTrCGK1qq_mUV2dRcF~W#e3Rx?vI=7Pm(YcES5izJ@T#@|)#<@2n`l^cS zWPnFGkgehj(VEFYky_Qn{=v#`a|fNx5267huRK+4NOTGSJo>y9EK`d`2o*05s5Fbv z`ezs+$$GRtMF2z<0BhW(?>@)Uk=qF9^m;&W>YE;`oU7QD6F~_uN`PyagaU!F*E{&c zq3sCaH{x84{v9Laa>-PbWxT3ruoFqdHWtzg9Rl1|1to$;*xX|DjBuYm41P)W*_<5l(G~EE!3JL%Ts09t>>;HUDGh11TzUisDVr&Drn0`dvG5 z>ZHB*{`-pJl&M@#p{risPMkew^GnC<^2^_*H>Mf6;W;Yidl6pjJWbpOh_nan6>b{} znY?vc{0_^ErW095jgtx}*@eM3&DDiSA%qr22?0B?oeN zctR8aRM!<+D?+3eO1d6i>p@@|El|5w%$V(OZ@GdB>3+MdND)PoA^=HCvpE*dI}Wwv zwS%6mKUlH(Lx-%@*tf?1j+AoL0od8zvQD#Zl~U1eU%z2X3k!DV<_#<5^J?Q)DV7yQ z?6$i0#A8p{NAG=TOY=wV!Sae#iWNy~!FG*$%lcH?C(>W1&P-bowEBKi`z(e0*jpgb zAjH`(0PjRs>#e3bX3&`eA(0-YD>>w8MDk^C3a{ziC@QO8w1o8r)XT8K!19j9=!ym7ZkBtEQ@?O># za|R#UNt~d7)ibitpPqtw*#2_TE*O&q`al@jLgs@4d{bZV)1NBQ|yuQBjS`%xAy%efOSw z&bgJ6_NhuR^2(um2{2~VQ9`C~Lmd+!fPg)*R$U6<*B1@Fx9Q_&b!Alv_sf@S+OFhQ z)rt~P=6d2Njxj3wBzL?ouYu(M5wZf`C*CD)(kHEYyCZ1?mG{lfbqyZIJ1=57u0{Nt zd*E^ml6aSqa?EVs0S`~)-8aS8y)X*IgQWN(ULg6EhX88{_Yu&c8TZVKSW%TmH}8H0 zV^#Sj(HM_47rXJdgFp`GEXohyt#{wmzwh0@Czip}r;nAizW4rzcKXyA`|7Lf_T=$X zd-uKfB^mhS``@$cH*eVA|N7Uqwy|Z)tH)%jeeu#IZ@XABfv4!|ak}T4asM#Q6J>s5 z-G2S+e~{@PfWn0f7bLUb{xWW0F_8Fk%{VXEWnW+a+TMNl9f3txzxqo0dn)iJPad~+ zt04&h^E*BPC4-4H$*%X((uyeh?4NzJ9}@6~kEq%o*Wdr?pZ`xC3!V{QU%z2L`}xo9 z)}7mS|NaB};DZnK`|Y>i65zr$CAojG_FT{Q`|rIgX#&Q9fHOGy1B!Bw=`?fk{COEF zwp)Jh0bxk|0YC69U>qTj;2r}Y007_x0nh=X=G?h+YG;UnB7Om<0S|U}^?jHwTr1iH za?e|^nX3z@CwefFrqZkV6>oi&1&~PsP?$ld0RV4F5*n5)Kq?gM@&G;WXYB!tKcHD4 zHZ#{AhU!LAk`)94G0gygs9vJ+PXRp%UNVr9P6~Q>1i7M0O#=X-*~$;+Frrwog6^N3 z1^`kmPXLL}_y;Q41v+k#@-}@Lau9&O=RweHHT2*@HBC^<%?=|7o8G7E{ew~|hif@# zJAGd?emVG)c=BGVB-QIemO%d)JB>z5AOH)!2ki7huz7n<|@8wJWFKj-;I+uhwYG$yhzBNfcztyxA-W6NYx z9{)xFXfaOnF@lCWQUApzNMoeXJ}aK3ta_b>;(pRXM_iS=%KKjqK2_5ofa1DzLRta~ z6w0Z^uP`oDK`wkQ*fIr`N%rjf*9z_b;^HOBzl;Ra9L4@aj~V;+IVc~f2P#f8kEj>` z8QThmY_xhyrx_LWf)-Zuo!^w~dby*13i{MRBel&7wo9VO=kw~pT9^(k%|BU9Br{v| zxh*q@OaOq|=OvB1zwdWZ0D$bF6PT2N7oKDSt}z#nxGyBRq6gP(-(a}lc<&~31VqL4 z$mxZwFMbuMlDlHS-6e-cuBHuU@_0FrAP0ER#T-_~LCvMTBYgVLCH zv&28Uk7?wm?N9-Z4haE>gw!Ah0UR7~Bg&NQA0h#e8-8N001WtNaR|==0I%{V03d-Q z&H!*TUtIm=13;ve_DNub5*cTA(&e|_eaAlhzkV6s1(8u(^z3R z10Yn}nzIunNv%~~UWid&*Qyh|8&a~!{mKA&@u$731ZIM1yi?U6;30rw8wAu)GyA=v z5)4|ARjSZvkxuQ}V7IG2)vYGXHGE;l3Q7SBxYwAuL5o%IXSLfx`|petqylTtpQ)`? zOALUX-Maa;eef<7v8xI)2{;+6!@ZszUp->CzrHSG;+2I(yL0ol+H&2wbx*YZes?Iq zWN*7`!~VzyJJ%^E%{M$sbCx3ZFjXm+vk1y+_Mr-=!0*c#^SsHu0d|H*+z zfE70ZRHZ$&=8i4^JYnIvA+x)*UP$6dqMpowgXt$wHG$g{ZnSQc%btiQmXM4cWgzGP zgSrcF?-EPV3l%QmBAB)JZ&t4FNWXeps0c4Z#HNuBkIZIT?R%CGJT?u(*! zlWMy>&cJ}6dNT)8K@RD&4EuHf>>Q}%bI{NQWWk)FM0z%=0cDuzyM0+K|RjSgil z3ZOwktTjYzX}n8@^4g-UA1{E&kec%Oh51DRg^YplMBsS=q~O}(tRHRas0K5{NG4h9 z_&%T}>>L3t@~IjNL-?#OxZEIsRZ{5;9uUx*YxsuocBRpvQfGyD8+3wvtceO6z zd`~h>h=J6>nt{`fEK)~(x$ zCHXup{7AGv{P08jmw&<3@2rdpq55+_(C+{E$3M3Jc|#y5_n+9Fu|S3Y!i9^;$dfo{-(GNTD=T*H>{)yK__4qqV=Tl(^p!Br%# z5j1;1?}14+O(rxmzCTrYPluFMEET+_fHTe1c|M)omC{6pjx;n|UiJ^y{MS{`Q>CXk z7tj2A)&y|s?L*pw%>n?kCR~~X^XdLTMSQA)GIRZA4^xY2RB+>tq(mXIs$4puo1GVWGE5LJl zjHsPZU+aym2CV%g)3it!cyL5TlkC8y2TCYd6kQ=HN9n-;y4b*bPRo&>g^UXQFd^SC zSxeTQoA>0O{@0DBEzmB5M2A*Y5L;#DH_&&b@ejH`?PJE!@f-kPky0vNYumU4pavL) zi!!E1Wd{T>ol6UbP-`mc0$rp}(1J#_h)IB8i@>c~r{8HKm*AxKeE=t7RU{|cxX$je z;KwfTMpRjh5>oXyc~k^I#b@*9(v$J5Ljnm_VuJXXa98zg3}w{1;z*n}nLFSCkSf`S zKVs8x!eIcw!RN{SNtD3F9F`?(v+zVD6n=$VN|1L2;FuWQF&729Y5G{dxdq^KkQaUv zp3pgsJ%OT`kzGEoWfc1aR0!C>I4j*lr_=`k;Q!76kC1iw5fmj;u1j|+ih{tD0F0dy zC8}+mXNq}UpK<-Xo&l-`Nn7vvm{;gD7bfsUSU}k;{D4*Pu}S;|$OaIr`{bsV?st(h zH5@2$3cSvT9_~t*3)dz|5&-q|>~Ku`{zLWO0f6*8Wt}Y?z|4goKJUdVX9Ohw{|t!9 zBXYGLOlx1z!+oL+V8V|vD5h#VnE4I({+un~pD+4TWF~+~|6kAA_9f2)*b)f<@LLt@ zw&&0S5djZ%j3lW|ch#i>GqAg$Urqq4 z<+;K-W>!a|zdyEquj`KgldJbPx25@cJG!zg zgFZg9yS*jH{^i95+uPo@oy`q9e(Z=nxPMRW$!I@y;_N9INgZ8TwN|xecdp;CrOupH zNVfL?D+V^~13KV`FtRcF{7G4rEI@#rovxnT(GURFE13Yo0M5AocX#_%t<Jj4X3)K%?=MMnkL*#R|Ce(6xd|C7X_`-k=)>;U`% z#P?7Y*u4hAmq^K2qWnu!EsA+nYg5rYITBrBfpGrk$#FRgm1?j4hbCU}OgyT}ttk?C zv1bNn_0TnsDzpDTSnO1$I3z;Ru`ka5q*#-Mf@vnQOoab9HSDJGH7$k>m z(0w5U)AD}#8C*p4bH)nmpG+avBcdiu+iSq zd(6wRe}YVDC$S<-V3~J1aM0S@wEFeoJU2HsRajHPt~t&9Tio!l>vaBF-R2kObwBn1 z2YDsg8UO+NRtEyus)>oi`E$Npdq6s_FEn>5#ynln-Z>9GFY3J*LSxa?*%mDZIkv^c zWm`RRRL2Ul?Ai0@wzRS$5P*3H!#-Faumirldet62d@Setlc!F}fRF2iPXSeLH274u zN%XH?y{3va>kr3IMV>_bXFvP7{q5iWH*am(YO1QvJqNG_*rA9AJ2twH-Me>B3Q3536 zA143l$ykoDd?tN20$}Yo)AgrTQE75;jUT+aWo?SMS zu*@L62ekSHinJDp84rPsLYp=|4FIGH)?uq(f!-VRU{BO^R8xnVvn-s-nI(7Xoeibd z>E3Z)+DHlyp={jw| z(!GK{nA%lID{CdIL)%Xd`br`ajZT5Nxve1Y=nJD_S4hwB^ z+=Xl`6r?#>%#`SjhXDXoR~Z*M0FWCB&Qi{&Bmgmn3uTo9ijS#L5_J6hkFyMbZvp`P z8FVnffzH$=Aq%`>=JDS-0N_uF6xafQJkgq}2;~>+(D_5t-IU3c&wJWd0$nxtCQ!={ zDW}nk0-2uGs0eX9QMC#GjPQi;h2FQ~@}@`*!~ej43v3dTgAkf|lljseyUQ?X&^I!^ zxLV}&31p%=>hhhQ?GK?PJ7A^lC8{U@9ti|kXl{&PV$?E_{kb40X z007;(kN|i`3uj9ZFv3`>NOmKjiTSctvaQ`MJ9GZD{q*NQwM%baw*GkE{_cPLopo?% zFHNk`ZdUnghSm2Er( zd~gX9Kfd-2>fox~33lI#A$o0l_gqE>z9Axwh5@ zz+Nr`^OLCNP}_0U-`#fbQl@|oXt7NWx7}_knGmCZ>L#FP>Z~%heXBKU_Wa3X8TU0S zWqbbQi75YD>l@bF-L+$@t1|X;=D0_c2A)4WrV&q?}~)_BGk4;1$#lRlBuCk?); z{Yl#&z(HI~H}>@N<9U+@0nhMgXlv{1qKnIe0?=;XY<_-GMs6BQwVG{UItK%%-PSV* z!-m9~B$T8|ZP{A>9^eBl`edXx#!-JxfFO?NB<9|N+Ei%;I3U5H8cM9FmX;XkiP_^x z1^d9|pX5HS4aY)4$lSzl&Mk^7TnCbC5@)U*-*;eOU&kb=k&FjDfu<0~4^`VRi4IQ( zUBCT(ne>qeave!nqe@G)n`3~nM6Am8xrX6Cf>z$UIfPNSo1D5IgvS@r;Xr^v%PagG z2W(v!4s4HC7h}(qEA{s992h7$X09NyCLv}{4q(IEC02CJ-7l*yfR$&Ru2@`u_H+Ki z1tqB@`u86^wB;kKN@Slte{QY0j-9)3(Q5Ukm`EhxQ0&pfL-$up#Uy8C8>_2FwSB7W z%x!O6dPCp?Z52tVkp-MMaa>~ny8qn#T#}~(25oEY@@`pf<_ztgdj}Z6y~2Y64-;5R zj2Xrr+u}GFO9F1nWjk`@sQu<&e`6ni{INZI?ww*7&oXI*A%j=I%Bnqj@>t#r&VCu$ z@#9C8v|}Rp-~apH*&AA zHA%~012A_2j;y_WDOrMO|0~P3_Tsr+yl_$b;`!L#+!FZ47{x1rYsGlOyMZxKY9D`d zqRNf>uck^=#sF~5(CYvI1wtwLXD~(o&<{(H^HkAGc-j6*x{z^?Rk_8j(M2!7Hb|fPbbEI4gjES6->c0 z_QNdDPyhg80mv2zzf@BR`}8p;%=%jc0L5*F3%m!`^hzd3;`$s&{xb*W-0eLAaxHAQ z%R-$>i;=4H3Hg+RX;jV%RPHe@#Dw-GOo%*~k?U)X$&-GwP2Cst_udyfDrRK^->y#3 z<~zvX?%+Al;QDmTg;LT&JHEbGfM5hLA)wm_jpj$y(<&~nzUZ(3gzk^01fkj0M~@DTuj-}e9_X8{0pDS6Fn z8UWB!l2x`N84Lix=ZMt8G@yn8MZc)&k3dZFcjgIa2|6PylFV?-Pu>SgSQCSQ;~0@D z)jMX@hQ>S~RkPhuMNd93(B}!93Y{NF%mzFIeb-nsP92DFFoEPBNsar+P$?$a%M<1Z zPMogkBis{dzm9Qhm9VB~-H)61a*r1!fnp_iyEU}_HcrNFRG|R?81qS*ARr3K(kv5V z2EdH*^lAVgfj0soJ@AboBYLeEQQnzRx>b2fmVNA3^c3H>w^z>NSM0MNY0x*AM? zi~*3`{u4Tx2nlZdmkdiaZzMp1gn|D)`QazFa%9C`Zmc<#v{JDvZ@p#r?%owUV`24( zU3vclYb+34?AYqbOUA@3`IIgm53pZ%23{ZC=xA*1#W@AnB%j=Gbzmv^8tja$itCkW z|A@p8pA<~Jhwv+NX~n*?gzvF8z(Vy{q|CmE|Sdq{sKbStoP>pwdY|_>&+1)SfBm=-RCr;W|UtF^z%g1f)`MQ`IRQZu`$>AM?w0%?14Uj@5l952=Urz$9m@75g z>j7wcKNbtdq`3e9AOJ~3K~%*l^C+ykDoUpE;{4(aFat<+ul?NP{YdyV0K-5$zt3mYe5al}BR6NiIrf=Wa~M?tTo$@W$p9G;F2#2O zYtoz!a7#i@((6Xa2}nr$;cq0@@*V;x8hV$F<>h6qN3ceaLMk~1oI=Kuk|r?^)E3f{ zD`J|ARXK1iJWli^`6P~1Ft@jNZSBRH#y>zCa{|>;z(A5P5;l??UI2zT?DHal(lgx- z#zHcrY(&svd#gmeY!_sKFG7-UJDL1z-r?E0TxOA_&3|;n!+I9*Z>=1zYajS@gcHQCDf_f z&pEJN2VR;=aH-xCZ->VNg(KaIUO!`fxa`BdAGlxK7ny+W?df~mW7YzXV_`4tsHNcL zD_0b|!iakM!WjX}nCHEGslR{x$@dgDW2OfHfaHK{!*Svh5Zw^|;xGO}WAW*;XF7L$ z14xcJcfTHhnhwkZ8UVcX_I7Np(^f^^We(o4fbTFrGv>%0*dJzxJX=)s**-bI{rmSd zjsOKPNWA*hHEI6&J7$S*z5TXbyMEpN%U}N&`__JQ0$9a;th>vZUpQ5Rc)YaSm^eTc2)A@0 znt}eNEVejlh1TB#w_MZ8gHm+GbP!-RsrJbz^rFQHUKNsH0q8@KK&Y{h)2Ng2mC_mL zgHT8@NCVB_=JLZpO*gwf@k%iWJb@PURRW6PkicaqR|~*svE@}!zpEbLX4?*Ga$-(MTSVKG0tnzeHNDD3 zMG!x!;e`9>01lKy25GxlmpKUIDcZS66PvYkE32AU-G`=~wA9f%IGLuzB+kRGs^xfK zdwV-J9C-2~(-ndkwEQwN!r+MNCv>fbn`9(PGuIc(KBx5XSziQ*hnYCl`Vcx@!z=XY zDCu8bt+%DKjTif35s-1;Xdv`jtpiiPSw}u2srJ@=Tx+@mNZwHKg^p_~3Z1$gILaSE z0*GTU0oa~s!N~-%Si{bq%q(h30Y$M7axyDarB^Mz^6?<*cP0Vw0Hw$P2x&kuKr6oQ ziPEe4&_@6_m0w5u(e%eZ830I0W>m)g>rwH~=cuW9F7w+cw52R&sd@xnfxe};W+|uo zdZ7=z62hc4FD8dnwSuNUyN%c*W05H`f?D0il#qsRK^VHoS*3xA zXIlxulwOp?KRKCaQV;1by_ILMXbA8egrEZDi~{xnt3XuoESYyx!eE^FJ@7C-14u)f zm1G=oO=cki3=9K)$dAMXE7yyy@7tQ`i{C)c}1I;7=3HTHM5c6G<0HoG`I+m(~ z2M)xR#f~CCJbvt0RkqDp}V&$cV*6<@2PSxqq?e%`+Wfp^c`ou z$BBQ?gHk`S^_OeX=ste($d1x(YG+470g5cgu)MG&uy?1sBT!`pBe0U$+LOm(8FX>8 zhax|j$h1k6*WIpNID5_>+`F&JPNUY4!#@=_+MexfZrT1|WJ8kn{y=^TwQ|#5u5H-L z(h;>8Yu24g40X3&YuLu-mev#gAFxpXbIB{3Jae@4gC$37w1)|7sjP}V>kr@n008>` zMysjBUc|dfMF0R`AAk+=0oV4!baD;9bp0t&hf<5dAL~zl=*G3oAKrO@vF2R|a`ub^ zdi;&+BZ@M|n}C^MWvPlCqa(Ec1y3Z8Nm9HRU1_EWnbQDsOvgD$JIx?db$o`yHC2s| zV|n$IKJ{&_PX%9=80E2Exj&{S<*$0ZYWc{IE1g5yMzM-t+~zE(pmP<&EBS?_!id)B z0&tLlu+e%j#S&VVlaCJfNi2@S4&7+hnFs3lgfa2RyFEA+-N#9}R>_S1*!Nrq8o75w zVw*}LWj=_n6onX)Y$T4ZU5BF0SOYO33McEk|%7+jzk&q9*N;78&ng;iCC<2We( z5GTsdAd?LEIm0gC{Kce5tYEHR6winqdFB;P$T)JMgjhv~SNxTf_hLKmBiN+sAj5kZ-twEJl3X zPm=Z9cW&uiHa0c|WZl1iPcjAe&pO0?JhHN4pa1^%cJ}lc`?ueJCJ=-1%lGcyy{r4X zy1Hz4ZX+*vL&pMm1B-@z6YC3z-rUeLKwi)G-@0-|paCyH0L(8H=P~aex$?aU$^Vdn zh&hImDJtm+Nu23rngy?gKs>wyxWEKJ#n-f^-77qftU2l>7xpx@cty;?f&8KHpi)RH zX$%P&6OI!7y4Bi?t}!LY;+P4TYJdS%Q6O98nl*R`2#hr=(n1GH&9?M_svf0Eaj_?= zg1$7PPcax?Gnp3`tXK?Yb;Gj>i_;PFB&e8>`(-(#3R+|<6g08f!V`;TxVHzgn;F66 zmGS^T{1~91J55s81(O+p0N%pSjjQ}>WFP9nZu_n`U3v4mL{l?5I`xz19Vf>Op7 zt2K89uXy`D976fbe5WmBmjIT@iQrE6kRI+bPJ^yFG})S@7G#@p+2jZ3U^g6U5f6(d;AzJv!;sjX{zHuUL@i;IaypNC{M9~8@kq)xL33;4d0J|+LGBgtC^s(bv1 zlAeA-K2W?&MPOMP_mn)kXMt1xor#ik|9}8PD5fd-mr<#E7G$y|4DuowPszW=Zn~h( zke&vDBs<8eXVXD^008b?;IcWV@Vj2ufgP7D1t8$_XOg)k7QkT)0Ph5lSO6FrC1X&w z@9hv>A|;(XfqAt5Q|AD02MDN0<%rK=NOa=l3H$uZFEr1f{r?ZY_>WpsNfwWuIAupK zzTts8^Dy%k!E~i={F13=Xo8&FBzs4?!}*i5E{(o0Diz`qHMsQmMNWC46%=6qDP=s{0HJLp?? z2Y30B))fA>x%OQ1?VRZ8-fx;@oq(F8o=VD#r_WS0VE#OL>ZE!%!x8{c*xM$F9|%Z# z{`9GR|9juFt6yDJaL8Kq<>z16$>S&O%}bZecO)qz#^Q6_-&;3s z+tR|Sl_soi zvM|}q?r)anKRbONH0PUM!KSwTCjbD4E)P@E*uw#UV)rPml1WxJbv}viEPyq|>&1>1 z*|Da1uNcQgOz-!^jRuSHtqM+BXJ~`$RB~@kNEO*N`dllR9so%sD#SP3UScxhCE_y1 z1oISZ%Shx%(n&x&odw(6An}Je>C#9FB@{Hg3qVEHS)LQV!;5)AY%yv zLKh9ICgyrK1+BFeJs=9(mh*jy&I+F3%ike+g@_SLR|6`;@=a6(#KAmkObi6`i8D0baq$_6w1z>J*RVkIlx@Q zI>tHBIYmZy3kzbVkn98CJbC;?_nw6L>C>l5tQA}L`?kEYoV8Qr+Huct_lH>p^8f=q z=FfHA`>Gfl%$4|0upg4~ufF<9vIfqFB>uO*{jHrkeMa{SZ-HO@FTb#V`1^lQa{lQ(#XlTVcN^Ec*9zW?yiLwon#cg0Kr2s(4>v|YdYm3{QV2lmTf{!-ou z?DN9K3j&8>u`&MTi-Am{*Avjf_qjGC{#?Jcm$VQ(qV|GX&yZZS+!uj!jXalUuypk8 zA5L&X$I%!18voYA;rzzbaxSlFgzk8%Qj&s|2(eS+83J4AsFE>Yq~r8FZ<)r=o^^M& zl!z5kxH$gr0su(*iGp+gEX!aT0EkIe6ZvZZ06)eVSL7mMp3J?xFZcAq>H&6c2II+` z|KOk<004m*fj+-I49qLM4g?%b-)0xoKoDbbAwU&sNMcWrk?w1S#H8L-#exZCAprpN z>2v@9K*yc&ivU0ghJu`4-O$9f?|w~Loam7}#Q^An06PE>NNP|j35b~x_`SdH43kD{ zUSlsz%v2>oD<_&idbg(NmIQj76aE2cI5|h@n5hnOJaSLx_t=IB0Oy5Z_yf2IkmLf{>&(Wz|4z@KP^5m72JiF{?}fSC^7*Qc(DNV_EOT6x&$0>P0p(& z#UMykn&|P)YQ^_wy=F;;X0e=*d;FUNapI`8(es03d_Y0sxSz z7&-C$U^wO!?nA@0EO~rgl7IL&{jWShfLBEpKn@7{wTTv*nFiJ$`}9gZu!}wck&Kck zCW9zIHIn^Gy={&8WdQ*7R!7g9Kq{CkYHQ}SbFZ#bK_8jH1cIFcQ-;Jpbpuh-g>*&$ zfK!m&*pl6{@5CZYt?mG0GXu{sDojA8Yx+HC(!5e&mXX{>^;jb`0RVaRpX2NKu_j=E z<5#y2(f-3Atf0p)04?!u0GnLcOfOsbZu~tMZ`B#;N6?$8z=vdnL&wB3Gh7S+AoBo7 z3;>z2C5?Z<1Hjw(g+#zX6M;qm?Q|tcb9l&hxa8jYigmD}AR4XV6m-V#AE2HxxCe++7;HT*59U!z(_!5O%*UV-a5&t#f37vHlho2{Z%@ex%mI1U&=PNZTkgr|GTAP= z%GIT1v8cKm8@9K*V|Q=gwx4|Zse;)+cChI<2h`QoJ=T|H`hJA1aev}(_v zJ=eAY+34MjiPVGp_pQ}v+s4anTby4O3xMh-ZTs0SYOR{EM|l zWv<<^_04UU<;mH+E0CVx9Ds#=b_W;=CZkfQ!kWMFaBy(mlLV40??Io%I|ZHp?3{U^ zN}pkIJ~tFS0J4xN&7QL{%AX|xNR#&TiZu-k&H?~a)Aj2XgPHdnXvkx%Z?neaMW<;7 zgtk~LV5N>PvF%7SWxh%wElCLifSG0MF?R-Qj4?tI=u<8p57;lGE<-lrf8%~fyJ#x7 z-foWA&7I^0W~QPbF(5!9^9scnAT9s^dcr?@=7}DO85(DX)k%^$7@3j{>?nZ*41j$j zhx~;Fd4=#I31bX$K5UQQB$P5bY{B~Ud+Hi+n4%toQOQL%6&?fuDiD8#o}TJ**PfIZ@~yu~9i>+;gFQ|gC98IkgvWLIG2UROW{*CA^$h~6Ae zj$~>WhJIA-0W`Qj{a#;%qA=v-9&#+f+&~{L@EK#zz9;%y%)eCoYu+V*;|vo+sPkdU z7)%alcRA>UEQ{pX_4OD+?y6vbgh(KOnOf&Dr*IEmtgR(Kgq{rZaQx?3xW-63*v`ol zCsomg4G=(-YxsA>3gwR>Iv`Yo7>SXeh<>eLI-r2FI&z{@6 z@4O>+0>^am;sv$n<2v!TD_5?Fg?0bI1H1g@oA#UE{?;yCyyT{_sq+lSAYXuTNiFyQ z1z-uBK6N^^?e#G>zp!9io11pw{CTY@umEn~yeXCg=Z3_A7taP@G~9oeEsD(H) ztEOd?q}-`FCi6T(4c%52%4Ze+=|r*M()ol+Te z+VPNq1`_~XZIS*z#fR`@@0G`w7#{@*LiABrun#i>^C=RL*1R>EZFk{sHf8F>Z`w$q zW2JJWz_;p}e}YOS@`JAKV<4AWgc4m4Eh5FF008hcAaEtH>G)i0WZB}Usun;Sz*BEeG*gac zZ+FvncDHS34>rJ1ddvX{RXPq&{`v8W7_-P{`x}zUYcR#(flR z+b0ig>rVs#oFe9?YZ{~J0x1}n@vq1vCs|)&H`~g_c5*{k-|(zM#Y~rg0wD060|1Eu z;D&%j=~C|GUo>SBa3;#_tDe7a5z(cO7U}!}00giWwEeiQSsTvO3!7`6%Wr&xz5pg5 zPL%gl|6Z!6a!3WvbbrTR}#rk0t`vXA@h+m;*94# zY5zG^c@?C#f06*CF&1;IBui5)i@1ilL?=uB(>M$UfEWuYDArkW9))Kpl5yrIf5QRX z7H;?19h&w8;P38pFf9Ry>VM34MUMdHm5dRQ9aEYV5}WMk(N+85kA7f_OAB&?CLs9d zfB9EwxzC(CXU9*Tw1+kW!giU~pj z-X_tX*gznC%PQ5DSqUnv>+UsQAQc$(tdiOjazXgMX#8w5b)6xJ*R}Nr&gVP1_m6FT z?S(#1pia`ydIU3r?{f?20sz=S0s%0LDdEo6rY+&jFFAo*Xl~L06Zr`|JXHJ~5Cl8-m ztKPCkwI%Yx)5lNk%&9Y~@{?>33_3XNfwB5Kx94nkt1AWoZ3=PoXaAyZ?^7uq3V6mZ z25Fpk0D#7eR=;N5e$R$wI_P+7Kg@Ii3t&WI%7VK>+JG))ccM0NoAJ=S>2@(~~Yv>vuNiPEQS4C9pLZ8to zJ}6O%s&snRvPyqpTAh_Y9c&F;kT<6JCjWY2ZcO>~?Dk&2{ln+?SpeWw$$1>>w@Kb( zkADsT5ZiEIaC+@30syfOMVK>g+nxg?ecB-fq%?E7+)MOvFBY;L#;yAy?b~3V4ia7| zr&@{bnwW-)B(Vwq4(&NfrM{O;`CwyGfY}vgy{5`1RBfI~o_AtC$!k&zKK8+!0wtd9 zkN`2alB7~8=DR^rXKtmEOhvg^8K<%;d4XD1^31s(2it=o1#lLXc0h&Dy|aCuX}-5G zzo3|j=ZH(lGr}_fAmJVi-gb}k<$2@ZIJuM1!%SjKvR&xg@=e%vaD?QUXOZWGb%5=9 z$1RUF*&o$&<~pPZZhkmO3#Fvp`{Gj_0m>$&Yx zh*<0B3PFL2Z8#|H-3hpVeR8WkXDjeh63;zcT(FlL8v-MJZt;1C=mjb`Jjvu`Lfmk0mZr)UN-%S*IY8Qyc{pHJbH?G{@*Za`&0Z*6%=jIo*4Xztw z-?wX5zY<`@eR=%k ziOdf9HvoeS|DHU~z*E3!fT`!tsrs+#n#hx<<7R>sZn%a>S?~}5;K5IWXNT>T&V2Ge zO+?of2tdVmsD8Ju?RLW|X9VO_T210X1y2LolYbB9eNy#lPutMHy%HVqy%)F>!WmUd z+^}UxLJ(N7NwsdJ*1YYDUWlHwrpgt+S@7uh-fYaN%0klLs!Xg=9$B-zZ;i@CbilnX zw4t$e`{=A$+>&0Ed~7_leviokN;bVfLC4ZThRgj-qI7@?Jd+y~&0c1;UqyyQ#-J!% zr{Z#xRZU+Zk@olV>s+KRM^YaNOtv5-H|Q|R$QGM0{}Z*hZzTVs$WtW``hTGvRxk=8 zLCf#?VMdApNaO)QoLkV!1OPPK)@*fbd1Y1X4F>>P)@jk#6HUGY0HQUs;D8j%)Nk9V z^m}_kH=#UbpvHKjz==xAFaa89LBma4qfafWe0&23s7)Cz&{DisZ73tZmVzXq-A#1; zRJ@v2uGMXlj92DZTu7(@HSoev*9o@cl})dxj%`Sftb{N@WkyON*@0Jb-F@Aq0BWzL?VCqB`lu`Z@*yA8f?mOX&Ntz2XNs3o~^Ow`Kr(dsO04SKA=6x!V33*bu z?WbyZ_FghD^5@Y3pzL`}PXGFUO;X>S{D1Q&@-r${t9<;q?};aq>H386Decdsb0uj#b+WR+~Q}aE*Y=%_DIt_I}NhYZ0IUDDhnJ1i)}9G63+q zkcs9r01#{&nOO<|aDNt#!TkX8wA;ISc%nP?QqN}}15?3&GP29etO5Yw8U-*R?SD@{ z`{TZzEe8M`C@W{z(~SdtwaH}w!ClJC{-y%poLQB*=xd$J+t&KM%UfneX9rjm#d%qh zr&$xg0x+RDP2fx34sZ$p5a{6JJY*BD@%Qh^OQrA#kk}nLx?*p>d09P}|M15@sH*bb z`|sI%?|)zq9zV59Z(eaQs557^&Z5;j3o_63mToSuDr=q@E1{M%tDa|{E0pK~B*N-w zG}V~|!&9*Z)TP1!<Q^S zqymTn44}0W-ve}^!qwmF+V;kVoj7(>l@R~|0_A5D02JIgofc0n3)DDpSJbv)d&YeChlfjkmkaYo=UNfev@Y8e7w*dgA6aATG zDgE#3iXVSI0N@uQ=P(_946pp_YZ_Q(lCorEn8kuBf~5{8PRU7+)LUuoA_ZQqdc~a>pB%==1h`7);}t$lD#CuHIidL{*c&t48@D; zJ}*E4#ysB%b^+s=V`44=2p}0(K2b6qC!gb-J?S3_z+eu*L7vY^?@v6LK7*c}`Gd(_ zoe@e*yhNR+g5}aH=ysatLT$ z{27njQ&<-y`HT}P^Q@BsB#Sm;2OMm{!I5D=EJ?a_w4+I^SUOR8vr_GfhH9F=v1)r@}=fm?lJGduwd;1Ec@dh z|7ah6_<=ecz#>34z!(QOJA3w={o_CWT2g5MFOCbg1U?A?Ov$i(Fi61LmaYME0$rOV zp(vgHjNx!=XMu$_UNUP|OIE=EYQHBY z0Ko_6(%tRZ*3O=7bqA`5scS$A_NZJzg~Y)Y&;!bgSHe@P!U70z=p>uxP1)PC=kMZ! z{8bFxi`Oo$Uwl%Py{t-l@VffvQuTiJnolKOX_`*09);8<E275Lh z0{{#Z0D3T;x9BP!Yb@5jP#=6{N`_ahQi<{_=Wv;U9M=HG9Ht2)pf%^MWiY&}c!0!W z0=hVY`de~`f5t08CCDC=nH=#&C*vAt!`Av9hH^vbQmuU1b3ZU;m$4>yjpto!N?zVJF z-N8u7|K51t`ix5?E3`#a7qfloXiJlkm2o&vR9XQsG6!@(B0vCww=ges5Wp*=jBRPR zWx@rs!>jvY)OncxF-&5zXS=BLPj@^50N<96RhI;~NnNqROEQ#KxYK8nS4E(MQ$~V{ zfeufxL$@98MkT{p5H4eiB;QSo_H2NXsekFP~UU7`m z^FcfzGc}|D870?o{qsH*Y$~J)0Ei^nyR~>*JOV229W>st*eETlFDzMOe$iTsi>mfF zq5IeHi*Vye7+tgvQ`ZbtsfVi2QthqCR1@0w&?ZzX>A}9wSb+iHT`Hoty4q$UFA+VM zA0M+MlDPjfpZj=<`|T}Yy<>$_nDvY%hKmwR#$%cfWGuxz6(+MGI7+Mpj*aA>NXqQsTo zXrJ}eX0ia$ZRLPXkVT~CMt7>HsI8i}daXCTQY8Z`p6@b}czVE7As*^JK=nso`QAq# zdf(wEPpsJiR9%)))|02tth2OY7cReT_0E!&>rLr%(R-7yskNe5CO!`38A1}N%GX2& zr``&nti%s3xH9-k%|<=ftaJRVqkaw(8xOiVf97QZQxaI76=@;S($WP0UzU9gdAT$r zm*gn`2vnt*-QK2qmOLk>0^6v_l}JSdaY#JFW2qVvEz3C&K;X? z&D&&Dwykw2zTT~cbt!;Xl4Yt<7cXA2Cr_S9`%I+?P?!GKM^=wocN;*K3V*7;51b{C zG11cVC6>*Y^$g;fQ;z9|K=pqly*2Xy?)pRBCjw(wYE-yjYrqx&BmltP-r1F57Jz^! z`xpoI^d4ro9E(hDC719jA$_^2K1wElE_kn}^$#0ADunH3>MO4ARKzF^0DyUd`yNzf z#WhJ97cq>Ut|VL3zth8++hrbx#il+0#rWs-U7HhQF%L!#o7=OPCanRnK789s{=WwR zD6SWpfiz#_Qp;Hy{%lwkfM$+c=ilYCv*+vUR=&Ol`#0voi0TA3raT~v^%K;YeOAe4 z&ZZK}uYx2OxeneHXy3cm>2wrBF&?A~Z?>{(wM)VFz13d1YMl<%{M5d#-Ld)kh2#Ri z=Rg2D@WDV@ZOI1Alo-32oIBI2eO{#`>N9g_nDpVZK^ta{pM;ASb18{1-wkP+0C?88 z;XvR3YcCa5XCin-UdGGG;UB6wi7|5?Nf-MMr+mKeZ4TWyknM6U{NFq?CB=-)k33h> zee)Krr@#H z-S)op?UuKzPOUs;PB2Ur za`Qk3d%T+fU$(q}9Rx_rA z0XiHzeoV*Cwm`QdKOBptUDTC~c}( zjMvsTZF76iwtArCvVlbGOtQhmm|Y8UkjB>iRS)1#G<(-)({Qk3cV)0LPZhZs|33BLf&KNSG*t>zM`8DNchlEf?gI8sYM z_vmnz7B3D03hK~lD((7fxw7GS;?l7f1HV#7`(M5vXwsns5)>1n3@M0ibd{Bnu_K(wBXB_mp+0xYVUpPcT!6F^xk zHfh~q)+ZXZo0ksk;>Gjs7~O8#+4JY@)S0ukdhD3peegiR7XO}GTC%HOU$;}I&e&V; zzGsW8$E`cqx1|$joHa6l?MLuA6jMPUiuME8voCNS)*P<>um)&3SFJZBe}XOOZGYXd zpL3T418RN`N`6VQBjy{%Eb9)(PNg~P@Wa>|^n47GPL466LZ1(?TDR`bKoTdm#XJv4 zfMk#RfGi9%RpvDh&Z{~H{9;Jz`3&3P-vnSMj~$m&KgW$O|I~?-cJ$~m`{MJ@?W2$0 zv-@}N*xK{w;>({pan_zaerzwFJ+T#%j6LS-p)JoX*pmkjCGFVR*tK!LV$Hf&VW{G% zXLqVxQQaa?zIN@ps+fz5%XaTBZKXPP?AUR;bL*Zb+rzwt8lE-G;Z*AYbfNNltGS7^ z|062!s@U(y*&mZN;ujgmT3He@zDH$W-2-F{Sg}c^q;0{Rq{_uwfyQ67f7U0w7*g9X z5-$=kfjh7$0ZiJhObWo?v<)N`GMVk!d}mJQ4QRmHil@{pY#Szkngt`l7u(5`|01(+ z763Smh!yc?kyZ5#OGYL`h+{Ym0EqX3p&GOHH*I_N{XZ7~(DuT$w-8f*({bp!WZ#W zXzlWf+MlTNR8+v(F48BCHR$(V#otMKb2lOkSpuII(@(A7T-rnq6m6j~9^@HBGtPH7 zE-@$tKDgnb;$w=wWugLB>?05QSf0qVF2lxbo{v{sT+Z>>pT+x z58O8a-|7U>(cd|*06znCSz2Dv{oj!d^9tF_)pFDXYa18DK zu_H$XP6O@(j=@|B`aeDhNEToOFytY9x@XM6AT+y+dJ9k#!RW}651fB~d zfh7S@$2ci1T>jC-+h>r>q<~Zv$C1p#KnBZb^T4NG#0!a6%>E;t5oEwWog6F+Ras}wotFwQoCyHs@Z(2rZ!KaFf%X-zz9ZJ z@W*}I+uas*9dkeEE*m>N+t}&aX0NOLW7^hg&DmUg(J-Ey)Y}d|&@Wyt@q4xhbwbp4 zPkvuz0+unSzas$Pu*tc&h~|~lye*j?&_aSzycdypg^5N`|9QB1d3zD=ulHOY>_L5m z1p)1s>j|xvs(DG*A*1va_g6URBKY8orn5a>^~yD9d8O9rNlj^?phq!@IdzQQ;-1jv z6j|5Ksvmi(@I&{fQX#4p<0KmYQ28ynyFY*e?);T%-R2gSq)~H?f7Plj%#7Uhj{q5? zG#;or3kPjz1Oik%p-P5SVQ!|jgghsrBQrjSGEu{Tk06P}pJN3KAW-C3p@I>t4aOw? zW&^5Y83Taioe9>vS5N^%lO1Mfkr?`d3@e6--PE?I=Ad5i(J z9U#C#QsV&-pm;--XZcOm{m*;>QsU2LNC{qal2D>na%qE`gXIZg1c9#$RN}q=rvQN0 z9m}jH|MkZmdexlKQ)JdivtCI4F+R$q6NxUb`Jh~~0m*ZzVoOI(TWfyF=9g&a*RXnf z&ZSc7cU-l(cE{VGDw%YXKaJNUKcMmj{=FL_8rrCHmdf`FDk>4o{cD1bbN2>_Onrq~w9XaFP` z|E?|94?1({{*ymIrnmR+_?(mj09=b)YEb}hQXrF!tzb;0ATxV?8He03D4Hn?B3JIcJ|U``}q4mv4xcr0^22Z5*u$~l`8wh?9nOt>aw5?3%Jae zY+S1AUe*B4N&KP5s%;m+CzW3A0W6YI)+K`PGG9~4Ct>IR2?jNnV@8+El2m*|Vlv_$ zdh13>&_)CGJEmn)yS1SCl69`Z{>C`)k8Nvf!xrY|1Y$kK&tPTQ1~^f}x`HM<=-cAr zg5A1#L+;1kUa)2l??2G*h530IhoRA@@AA{9kL}LQn{u9}0<%Ay*v8tLy+gaD2M=As zHJ;ehhmYm+Lf53q1m;6Y007AbiG%c=y`IJ~I!pqwNZvtlNcLHSsLWH z8r}z7*y&mgoiKBA!J7sa0nY}>JL?tz0C5xD9K1E3OEbK(U)5TOug><~uGTle1giWb z@2~{e7p=Kii`nk(ZcjnHcLH!(NVII@yu|XrD6zMvY9643q%g^F6oRE%llK1e4nfYuWDCy6|II<`$nkxDf z+6YD~K;6>?q$BO&|WP&+TLPk8pxFgx&St54h zI7tBA{e7s!kyn4` zzccUB&W>|{j!mKoT^|+=-*eMWS{M#gb&j=C;6RxQZC7JnmHN~Yn`=RS0=TIJGIhz| znc*08t&r{j(lM8`+v;Gzv3pUA?hAc4>m;_s*iil;?#8cslB)0|l03Hn6uhEJ&u`}Z zcH28j3D~GOyNDmom-o3=e(x%_y1b$e22|v^mbJR;?7bl1YnSI4Zhno&iq3U+M@f7D z7OVyAUko{2XNtivj{t2QC{ov!?QOjeOMry?`HMB>1yuGK8+?a0wu}#4{U1Dhpt+a( z<6a6iCG%Vtt~cX{_qpD%KTe)HZC`)=wY~e!yE6FWeHdGJ?%t8}{!f4QGj$iZdGn@y z{PD-~R{+2uY3I5=eDp|c0F3rvFQfY>8E1bKuQ4Vh;l@btkAM8!&YnJLUw?hwmX{aB zDrVcf_r;fA>N;X@NPfYXLB7B>0{r3H;aL&gG>H9S(g08ZW}i55Tp%~&i_drm3K%W4 zVhssPTWkT?C_E$lF162pJYg}Y%T>3kU{N|;0!$Wq(LTKAxhA0G@|mV1wIG_EAhHpd z+8{}r3|+9=klQd-cYfpIU#@miyETmcD$+Jq>lGbOt5UMXa>x{04)uSrmP?vLA`BFAhb`b$-x+SUT<3&8&EF4e>u9 z`6uD;cXt$!5oGE5QbA*J*O+hsAoTV5ER$2dm~jA%@&!KW{9Zu;&?XZFEtf{1k#QXw z4>g(?5^ZMy;EIhOK-F4lg1{$$L^6_00ullo{-2r%?!_!JRIo~=sx@0^zn~B$GqhGq z35PUDP*Rn=1j1dmHa%&>c{>H=ROci^sW`eFNgMzGj_GdrM@4mLgPjc<;_{!6Saf5I zD`}`{`BXx$Ikpki8w?BSRm#^{G$-0~LReuG(0AJt9wp7HpaOqX+;*z{2~gC{PhdOo5C6kaZdGWG%V~ z{3*fC>m&d!2k-^BXng4o_0tT1S4jYZ0dO$H%K!510f1ETO4sq#06-Whh6}s1t5iu~ zRJ5AbSvq3N$Ipw^guaf2P4^wsOdMzh0JN1ri4-qAA7F(*O~$Vpw@2Q zu|qyHdRA*P+7!zR!?m>V0DkdImBxURdo}?GAaRsK{WJjJV>ky~!UJFy00>`#aMJe* zh>san_1&StljGEGPsx2Ut#k4~ZgA+8`#&83P*R*^L~4ze7ytnPc)#kdHJUXArDxBb zv(+Q3_QjW<%NOPCciyr$-ngXTgCy|tFRseuXzk^?62VVC{jr^Vf|YV@9lT& z(XBi7$KU;%oj!TeUcOk1ZOwgjroD8@Bk!$Wr{>5d~bB?K|Ls#wt?A{uZ+R&a0YBLE5eaM@h%tQI__6C|C zNdDPBzDJUHV8Ezn7Nfwi7yz5wTLK42<^dD9`cwf)1_-#7fWQJw@dEE@9MA!Pwt&#M zVTkUVSaBpLFb%X`(6c-_t;f6(vu2)X9^L^-Pg^2R219U~H)zokq#V4@c+FGfC7l36MbczIV}Mwu63gD&+I?mms}$O3~Iey@KAw~!T&o; zjrNeRnA`}E=hBmWmy$51!!*!kYISeR3=MuT5Xi(eQ49-h9!5$sFe9P%E(9=yD*F6h z0z>&c)l`=h_}Y^vs2=N+@H5XdY%oeCQH`zvypL>3ysQ1OwBiv*QzVSGev$0^C5~!% zE)(N#oHxlgzyk9h&kd3qo+Uty07p50fN_8Y*1mB4XMMPP?_P3xcaV{1lr^6?)UU~2 zGKS9MarVu;M)8WdCKwChpCBNAG;{_kej=$0j~D=~yK03vRKhDzu)8bp6wn$U7l8y( zj4gmu9(NIo5_3CSB3KA&4J;Ewj@tw#gkwJYKoSzq0QZftz-LH+@gZr7*56fv%yojD z^ur(iNUr#t-?Qh>Gu{8=M~|i74>ktui5@L0#R}<260-JU&91!lmRjZkyuA6=+xEp5 zUkEg~bm@{<0Gtoft~I}Z_(Yu=(>CNj;*NO;6SE) z$B&<|=TD#6nKP#~j&`=U1Smaz{LsGly-)1RFa9VG8pi0?n8}_wqsl)flG|HbTD#az zuuB*pB>8V$c}vU#7zD@?kiK!eupRge=K)wlj^XWc+j@4m=Kdbc=avI7jWh2~2(mC{ zPlf4y)agEAB!zQ(+)#jFLTypnx z^r@{{%eB*Wk~|PY&>PxERIQ1t|9EH%wUUhes%ZR2Jtg}L#;wgQQS<2ED~%ruCz?5# zPxP$YAK3Hlu5DqKF?2+P_Yx;yuI{+NqLL@4OZTryurNki~5^voX-4^^C?y&5yaAytbQv|$B(o|KTUlLRe z23=LE)n1D#v#6kQ^1e-2G|>2~H#u&j9RUFPE$x(pPO*I^iX%)f<&y(Uvtu*sOI%3sy=s~kMHb>@&gMW>!6zW2fFrvp$cSdf`hn-+ z6()dTK&SB^8uD=cPX>uj-E#>*c!K2ZlhR_I3?Y4SF92QXKqL`LZt$;qey0OEx!7e@ zaqlot&ZiGau>83L)DrVb(La?!z@mu~>rtg@OUF;y-11S|uMh~J^=~Q&$4n*=e->ad zSIT8;V8TOkO>mY>{=((oTjmXI(BHNG-j)sfyE3RGk)pCL_D_2G8sLl#7~-Re%ejgG zfI7BF;^j$8@x{1Rf`sOrs!8AVnvn#lvxd67AOUb+5Y0o9C^-FJ0Kmur0CfXFu0X=U zj?(qZT1;khbFRCO){6oKW&&d`VCJ1|bbqonE?IIZz;Tvs7y}AuN&t&MmIMsUy8J_B zFM5!;1i%eWB_~j40Dx*Jr*2XO#lJJxQWb?@n}z$+Pk(41e)NGgI}N*W>xL4&YhT~A zQ)kcH<+t9k`GqArefAAoIC;rTK0CCAo7gCIKoOe)ioC!K_rc&A5=0Xq^m_x{!@1>S zYRAPSBpM}&sw(n0(wDS$02mWoa326M!s(ynzt*T&Z+lZo06{ZrpvjK_03ZNKL_t*Z z5`nK0fj)`fZw)~wfUYyG9XU$}>?;pp^xd%iE$sdlTO&M8})FKvFl<17WWsdXkB zXVKXUI3f?_(rAddtjz?okFL6QN8g5Tl)sn|D@b9QR$hlc`Ye*K=b|7?f$fEe`= z?6Mw`-1oQ_&8BU4yPEHa2ex*0q={YM+!7-IV8FW+R8#=rGotF^IUrC4+O9Lp96N&84U9iH)FjMW6L5pdQOZ=kkL9K*SDt6}#Z%KT{2f&%8>)7WiPmaG$5?@q(0Lnl$zkaLl9kPhfmE+sKir*-9wK=e67Z?}Ccrmo*60jb!?iKH+ zPk_^`j#yi@{#L!x&K%GEaPwK$iwiK4w}2O>NcLdfGIpXOk6(qpKf(;K;~gX@uB5~o z_N3GJonh2jz;v^u1d56;2gkO;DW35v?LIj{^1DDbK!VQk(MFDOOjVvl8FmuVp77u) z>dQGE5-KY5(6@;jWzvTK0Lgq}wneTK)o#v_>aq%4opu6!=~}R>Yr&&JVjop~yi?dV za~2&DI0lZ9c?OVFMZF}Uhyopda}d^?tw5X3#2O%>W*hRIfz8_VqJiA|d#O`Y0$sRY zQ7{z1nLGe8*(8luWa#R01l`B<|J-9buzANSm!fj+e9mJkj1%Xy#<@Jh8LW~mrT3Ya zNdBWuBj?Zaj0xZE+jneXamkjL+a_HtoPgB{MIgBdPCp2e*K!-^M#S*-FtWK-FM%$yLazOw+}OoB%kZa{D_gx{Rx9sYtx~eOjjTTE>$jmxA9Pif z+E`x~;sXlANkKB^jcL4yzU_Wf4FH+wk$%;hW>C#CbT!^%zWm`*Rg=vox% zWT_oZ=%PUV2ojk%cwh)Tp)S(voN78rKI4uG2;E4BB>uc#C84NWquz4UJSeT8oK(R; zsG&*Gc1%Go{}1JVV%1bB^?=?JfAx8inH?1=#?{cqj1hFw&`&{BSqO0X-&q&40(u(Y z5&>Bx<5WvWB`DKgMIA!}EmvhkNP8_Rtgsej{*w^F2t_W63{YyIix&i(K28C3tl0LR!p8}xRRSfk07Ve5cC?r|4A0(bC` z$_kw-yxOnvn|^!p&s>V%i&ui;MUW@viuxNfx6-9$An=ayS*AKG1^|HvKQI7F?x_I? z24iV}ECHqs#|A6L*988*i_LnmN^6m%mHyPI<1xQ^HG_MH+$QqI=NoG9*oWu(S13;=#d+6$GHPH`${+BF)Xm&o~r3k_4m44 zO59ynJJdLZo~R(dUa|dQ*DLx^Oi37V`+oUSffb23^Ip5tlGeZ5-L}n*HCtI;OyEIZ zW1M~aeJKe5pq=0P`kJ1D0gn05P@&~BK1XAF`QnBCjRy>^`1W@9?B$Dfwe7op^{V~l z&wgf~efB$RAQ>E&t-G}&kQ6|8hrZXa#>!A{N7m~ii}6v$8WI#-MwBR)=y;ngd%3YC zQ(GwffL$=vys{4iY$QWI+Tg+pQh#*Voeg zfaehm5boXD`nvuN@H`+XnV%D-)~o%dB%Xh>eG)YQfN1+HW?M3JBS|1(k|`?JEjj9NC!KQ35XA@Hv0B4uSv&>-t&?{zM6Ye3}yTEn3Kh$!Kw%Dgpq`mP<%N zVQra>z5W~k;NPSDKP>jsT>I|;0J1eVX0}6g{8@}H1IcucZx=SuXe!{v2FqJx6kP8Sr zm`v=*(W3$xVEV9rJbwH{@3B8}7vds*d|PEz<^^mHhnicxBHq(HMVv_j#(PlWsibRu zPHovZFOE0-0di>pWFePY0;KUQ@SQNHbFhH6eqGW00oEd36Ns4P1ON+Y+&Kp36Fx)b zn)R3YMnL0etnHA9A{8L9XIYcSQ)1ik-6(RAWU58rkb)HZ$7GP=ns*Lhdt4ixb272! zePpk&fKud@M&`s>2&p@QOC6HLc<3@9ZxQNU1ej;oHWYsL$MqnG1E64EnEK)9&#@Bg zLwjeNj2Dcqaq{Px=l>lPnzuW5T}Mws{NT|;Z67&6kKazO zy(7TR`pXw~WOY?V0RdKcz|^YRCIti59?8XI{_e~dj!pS;y>6xI@i!%EL~}25JRBCG zUqZPdIN>2l)hG}m7IAhWsv7}VZmO@1XVrfyL`)v^?W{EwNL1==YqjX*Id6+|bJlLu ztlcOn;irvXlS-`IsGUB|4^>o*o_f1ms{B8H_Dq9hZDUJxk!W?mAR`ba!Q&iA_^3+l zp{uru3~*#h!DJ%?653{TY;pOBEv+1}_WZnhyyJQd6%`ObRP7#aoZccsbS9l;VNv@I z7yvPW&L%Ulki;UYeIMxGo~X5Mx1MC2xn~0t3zMe;%+yAYq(W`}#(+BL(*aQ2^`8U~ znj_WjEI9rS0D$5m5y_&cS-O<7%TCNOL8VGlPN^(Cmnc;2wkTZaY&359%}=wV$`$5S z-2XB9vg8^n>XPVUo)|gB*Qu&HUtM1}!HUip{9Va4mXRsx4|6~1S9{y?O%Ou{ZNJQ- z@S@nYG1S(6SHOURBf0t$fUtPES=zW-2PWT|_AOH>0EPk!fcp-J!LbAQ2~@}`1bLt~OHmAeka#Q{ zl#1kjIspr#rvNKF5l#SB00c7tfQ})+qeH4le=Y#P*ee!c71{B~xW@w+RC(7W^!*OlGgnv?yyV@yrPTfO?#D0$^PG zc+0=*!JQ-k(8E*vA;vm@0e&oM^9r*kwFD9FI!mi| zoozkBmvxinMn@to7fY}ig|cvYg;jg zC-tzL2G(h})FyRzXUkg6x;!74pD7R^&jJ|0cnfMJ>oxnPGJ`+B?$(Z6`!S?jT{&VK z{ChA|;JLZJVW&=>wylkAd+}_|PMHCbo5ku)Cc&VSC|z2e+K}d^Gb@dL|r(n zYgK`vIb+7~y6`QecAA0JZqPw8XO(!HNtl^(#D}h~{DOJM8I0W1=zEW3g(xgKMF0#c zq3+D-mXhd-LXO#Tsz66eKjK8jiF-p)4RyvRAi>_AYwYD!pl8#iD~v6QOH^Ckf2Agu zceVqyoa#THkJfi2uwJqELV^4Z(u=u{&x%=pJP zbr-Or4n7#M#(Bjv`Fa2V&lC4aKrZXjCFU-l-;sj2@i)iJyaGtd_~1Jvuv~Ah85Mih zB#Kug>Lk@%hmFlGfg{{|SRNFHFJHcFUtRr5_Y7_PqeqVf5HRmPd-hyo4Tt~x_`%d0 z+Sb!&&+N#Nqq-;1`ET9E59W-<hb~IWi1$C1P5G^1i0L$iwoKh)@D1lL@W0N`nK*#Ehjx8^&*nF#Pi|w}6D-&zB zsqRqa-?u6QdUwZ6{pX>f50#t}NbK%z3*mys0hJDYKgc&h$UYHhN+ajzmaN&Dw|a~2 z0#z$Dnl`E8bjv`366em)ZhYkn7lUVh5sgV(Iy&g51hjIyrd3IQ;B7fld$~e5>us)H z^ZHXH0I&LbOs=tqR{;QFq9&F?sv0V>5iJP%drEdi34+l9nu$>otq;4ZrZA8&eFW_B z>c0nNQU1$7;u!hN5pEX;e zK-QY>+RxuGC!0VytwZ?-9I6R5b2Bd4YRmE2yI-Wf*8l*S{J~q8VVoCzss)nZJt459 zZ~fg3RZ-p5-@6e=0stV8bgFu86a>=SnU+ruwoPz=PVFwy*^)es1YD$KibZqZY19G% zkhi4PO;Lpn=W}n7MTOldy9+oeBFJ+W$zvDs$_Qwv$_%YC%Z_Rz`Z+ zeMp9RT&k%G83}60yWCGAD6;$pCZO7%bpTLX*QyL&gDw~q7q3cCT_A~cx8MQYBGTBO zRA2%i+3{pUNIAX+tVc+4N&t5Lyz=bfQ_$Ppu|6R2_Lc+40_;4Y*NshcALEZZ?M1*? zul#r1$!x47HjPvEbMrvy{!;}#buHAji9|n_0000GZ@7_?7y@Dd|c}3<-cc`QyAVIY7N?eRP-It}Q}E91OI6%hLtcLuuazyX#i3mTh;ZE2hT+ zn)DqKQR0xg-MMqiPMX(wWGK5;{1|rZfwiQ@5suk0^BE$9?FCekf1ay+rr$UDk^Sh z=cZRON2c68sS8ArVk)(TBH*G*&wXWVGsa2u3Fg(7Hn|NyPiO05fyVgoA{Yc#B7Upep zYcm4{RFO>vWHLf#G)w^i`0!MfL`c)EHjE?vO);M&fD}*Cm`KdY(CYgmSzHrlK;l9> z;bIa#^$q5;q$T#`(%WiD&t2?7l=f3(0L)I+87N%@4$?YMlmPf_@eQw;Lism-{+qV< z9WVgmxL>8^mxObQ0WiIu9gs)~04PSluQ-XsI&c7c`r3srk4)cEyEpz8X3va2*TvUV zb)`ZJSVf}5E9OiUBU7t5b$pVPpe%QIDA>eG@)|)Zw7)N!G`RxtJh43Q$rFgAGMUsd z9@u9X>#4er*&S{6k`^8IB~I|_N1wFuoCot_nDjCJWn_o{23&m$ zW9G_d*)Kq;Ohh$zjICP6KcKB+1WZK!Dv$#|jwH)Rr&l_qj`$zA>k%lYu0( z-Wrk5!J6<60)Bp+yApNzQzb7itxLY{tCFAMsKCwCj+SmPGXL}Ah<2Yc8>ek)GFa!_U0t;Y_aBJ00mBRr0BHN% z6S_Zef4Emj)Yu>A!8r!mO^&loVnrk&h9Rv)h)mv7E z`dEg3=Z0+p0Qz_dI2z`QSOk)P!c3k%GMf;+Zjt!E$a|A#$@A;F@8&$bd~?lnH+ld8 z5+DVDuq4`~EG}eOl!u)c_ChN;Y-`~NMQCTQ{HIwI9TWvL8bhPOo@=f*=R7$+=id9v zU*>yN-6W`m?2M?Ws`oN~`5V5&z2}~LjyAUq5tdE40VVYD44h`|Rj;J#@zC|)Ly=n^ z<8yC`09+yYr@wLrx<&w(KGeCHZ6M^EYP=2ryrzQhA@*x4`~}@Fz2h&T@hj|K-wRL` zXf5<0+#K4io){%ifk18+(m@ZI&0RS2x{8UU(3Wfmy;72vF zLeIZhySB9D1jYQRD*orkFV&g?z^Wehv;hr03)l2mwP|pEPH%UxWW5!_uQ>yM5)60H z$QA%>SGx{iL?wQm@w1fZ>Ug%03kIz)6)KRdUrmGzTMDrF1H*w(jpVXk@2P!Bk z+4hxN02<9?063tE%CZ9hj7txEP+?|g0vv#qMYRI;`s+8Z*}wc>{%6}i+_9(6zqH@{ z=3{&Q?3KOq&U=Pk+*gmE+q>WWeS7=cziZw7L#wnpYJ<`<3*oDDVsK#2Mfm_T#k{G) zwAiy+y(26Ppi=jR&#E7sK5m91fH9g2Go3%{ADR)h+ESHyXP0qZX7x_XCIiH?pnqZq zI2CZ?ZW0T(iKG%#U1%Jl=Wu>fgfC0yV16jm#0?8=>qHw=A(LUeJ&7#j7QjLQr+?jB;$apRKR`F z`hZgpdpRoC(K;h74X<4CJJ$77@n?RM1W=41U}X)X>Q7tSd4H&V?tIXXqvcIkS}m_v#~0ZGz(k_TR4E}&ttiQB@op9j0xG(h`D*mf-W`3qJ@LgpnA(X zDrT<~&z*9PaA4ZWl3Pq{Hb*kz`5D9ld}_j59`sZ zS1)xuk~fm7>6prHSHf>xD~TY$8dh|Cx5rPuHZcBR5%9eni(4fZC|sh(zV7fRU&N)% zD}jiSckwszyeRX;>)LmmR-b#8Gcdhk&-FR2-vJd=>{r$Qjwkj3X!1GYSX@v53pD>z zw?S<{fG{rX$1^3_g~7RvS0r47it4Y8b0~~(p8A1$z25|YBl3{ zu+0F)xj(cJ06si@^4RX(y(7JX+qdqxZR~g=P={6o_A=U!xn5ceKKke*fdZT(=SSNC z*OaRvdnC>XPoF%|-bJ#{_0e{~z4bPmu6_=fz4}}ad?q~rtmrgY)n{6Y^h|eERguv()jH5tkoj<-xUDBLJk7{MALhw(OUV<)?bplQzU%t~TT_p5Lc~x&e^nNYSj5BwfkO*H?_@O3? z;)8yI&b@F;j0*VX$Vg#CEVe4PU~`f~hWF?bAlKOl%xg(7_rZm2TS}3yA~w`>is84@axk!m-jS&3SO!A9{tt8 z*aQHSLYD$CzbEk-4JaR@{`{RzOaPLg+EqROE5IPqnE;Bk>6KdqIOqmoCK0(v;&LwO zZw>IUs}UyPEC8KX0Rp66z)A`JP4iKe)-v6_IM1>Vy+1Ec!dCYo?+a^dz976~tJh#$ z_qJ6DWIdFIMXRkqAG<$#EZdESl4Jl|r^;8T<62`em00<#001BWNklj|;{DF?*~c<33^`^zV}hm2n(2aIL3Is6&8{hVOa z;y#b@eHQ=#7~GUw3{~i@y=^5eD6aE|pv2W3U~o|;rR8R5^TEIt1pt6;;lKuGC-RCX z*>&-{(5ng8gB03Z0RTbckBWae`IqQfQmVdfkrNtu9VaoT*r= zD##%KLn8>gs!p?MM~|Ocx7o7(`9Q4>XdKbU+irGjcXwa3OPpo+EI<>!$x^qUjP;)L z>gH}Te5i?)^8LNdbT&!<^4ep%bph3anqRj1GSyW_+|BA4F_Jiza}HYz^JcnD6B8t6rHLWz12m;g>XvuGp*JSlr;Al@sXA zYWGS6c{9%W#_{6Ugn!@kI9J}66m|Y>zGH(CP<&6cXYhZLNnXr{6j&?{<}-k;L*n%<=8* z9qngW1tw)47C{y+01Al3i1|hD#y%8ALjS^!k6{38*;c0~4Kk|wYH6reMM>vHPq#n- zGl{k_A0(O?Lg{=b)qiiJ_R4#L9-7Chx-X=g!nG^u7o%tv6pjjTg{Bpf zRRIFJc6xSJwC#`(^Bxjv5@5BX(Ly0cwhJ-}^r7fA8Y$7`^8lA>B@mmy*KKriNN&IQ z;tOd6(4Ilk`|!a-feEx&@!YOmI~02kYCJC#^l#j};cX}NhFEo23Zg;q?AbH*;Nv3j z$)}$P;Q9Xdzh{5-m;c^v_69?N3J)GVRH6=`@cCz-d7E3+d;cFjd>~swME|&_O6(8z z?TgR9uy23++xGFVf1~R0RZ&;2<>ZFuidfjW?O#~>{Qt(qzpN+*`ROZ^Aj7KzOqsO#75(D z1<2_8P{FTvdsZcR>GZ7G?pdSmH)T45dVL|gH7W{nF{m}Ig~I>dH7Wi#T3c3YAd*A( zXifCTDalgYAmZz%p) zSY4f2+VI4Uqot}v|j8I`il~Wii>V1X*z|X5t zJ1ZU>qV_zU+k|!i=?RF^52OyUM_0@+yfCSxmpVC^>ZwI;U40qR#yT5yia{*SBU=QoN)l6L?KPaNc^3Z zhVoqeIsm|10KyRNa{7wl zAy$GaHASfIL6?Lm9YmBU*hWdps{!ajUy!*KXdh$IqS! zAh~z%9lLS&ku?r)nk`_l)TP~$mVPAd%(ZGAR)Gu8F?BoL?E?7I!{&2wZv_B|$s*ek z0RVCzL2serLZgfa#?sQTgd^#O3QlVkpPLGNp-qE(PLN5$OYkunT=?3F*dSwYI<{BO zo>;q9wJlf!B+k&yQKvsU)7nG}!O_Wy?%(MA-0s}CZZi`6m#?h1y(Ko*^CypOr@Q4K zjWW@t0%ij4r(b?$JI#(YasFv_B;Z%8HWaW^wI?t-JiKOSr|0^dw=uXw3O0XgWuMms z05CP!^AQY0Y}osA**Cm}1$zE)$) z0ThEoqHvxdIE{G)07!AX5N-DTB0=Et&qe%uV+G^&?8Rc0{96D38RvYHnDMt|0KDlt z1jlFZ$~QTgtKRb(0DvDSkSgI<*g*g`N*EpFPFp`&^hJ-k98p3nF!gxynPoCssM04O zNrIZ~T+&Ud+4kP9z(d*x)Z!dH=m3Bu?tpHGoNQp@&8oX zCm|EFVX+8c(UWw*&`k8WPAKTi%d`RHZ$6ima=r_3S2?4oRoCZO-nZO;=^rPdCr(c= zg*gf6A%?-6HU-!DQo=9RvKJ}yc&w{xV+|&SDF4KtTBH3th22vii@77gSLwreBFg*G zq>`{43?;QVG^ItOdlF7B+6No1?IO#fKiE%&gP=&qXTpO<_#tMDKyD_LqMC}eO@2^>LVr59G82~=hy=h5ahd9 zGwHpjubz8K?>)&l00aBOCx1;J{zGXD(0caK#~yh?*_FRM~sp{t%$GOsWz`n)3Wk3D=i!TIFFve(Y;ac-P zrWOigl5qvo0Z@f!mUAiNy^0-vYpI7%65s`8S6&Y5wX|Au5WxK*v+5>4;Si;8#Yjh$ z)AoXgPqm%iMXCnfX47^+-nM$y?rd4T-L)~|R?x=?Qbv6no*&uq%g1(h`dt0@K+~1x zwzYTntlr(WT4&o@-5pWCg?`P#6MB4Zql-nFgmee3QXSd)r=qbtgzdixi6 z;sO9nY%v`wXr#&ufIzZGAdScz&H(jxN0eK)AHf~KK>!Ast8At)U~UO-UP=G10DwG> zPijy8owDhoe*^*9lcQkMuq+yh^#Ef6;V<<7i{8$4tZcH>Co3jbiG&v-E}K{Rru}o( zBYgEec^%rnVgg*HkJ0!J1&q zL4}-hPdxFb9l{wA^zge*0_`Z$gOCuPC%`G1a#_GI)4xdjuDU_7tCIk!Z(11v{nF?a z5Wus*0qDEZP~;1)x;%6r~?VgCn#K@VJ65V}ztK6G=8z zJ&&;KN)_h$r4y?1gnZk0Xh_w@XZSUI@q8Z!8uD90!0Fbnx@GsyBAQnK9 zKdh@(vwCY=EU}$~8`kRetVvbC7Pi%_DM>_&CMY|i|Eu?Zcpd=2&?bYSjR$=>noLFm zDaQBDPsQv>4G+dmx|^)lHy<&pAi$q@Ch>K|%*1Sq%DW#I|5`DRHNw&9}Gm<7nl@W3(b{aUvMP=EROQT1;p>A0TNZ8 z$b2==CXtAZ-s_B0pHEB};l+vVbXwX^CnI!oCU))aU3>Zb8C(|I zrD7fJQh@DsDG)4ddvC`sPMl`T3+)3uyk8x?lKma*t&^88t=DQw)Gx(Ov0Ux7TK4R# z$IiZ>HE;^UprzhQG%=Q=iFKN71%^Al9UBgyrqf^Pc2Xq#h)Ss^lCd~ut#e=u(Z1z^ z$|C)-5D#E_L9=&Haqj&nEc+1W19WEzfCV6Hzwt!cN?0^fS?4&!9%TT)ll_^B4OFU_ z>x0o)|3|%F{h;lRgw1FJV1GdS2&N69ekbQ=*4c9U|6qhopo<1dMZDJ&fIu9hD&*Oj zfFzD1w-n9^EQSPwWFo4GoJTSMcplzA94wv?-BXeu$piOJtr4*n6l|^lON;e70D^K1 z@i$=rY_7OIwxjhRDq;Das{nvYD|P??IrlHeBmeOL0NsOc&<^mQG60|gU@%53SFNB zk>rw>+tzu(gS7<8ITh5bawEv*OaW)0Fo*Dm=l_5SRGmo#W%Vq&|ADH+0`I80hh<+X z_yZVlt+Y6i5T>|hd7Prp;?gA<#M&+Yv5nH|4+X^R<3*Ilb`_4NMc)}8=>R&z^g=U52V zmZ+DX+H8C-w*ZuW=Th7?>u&E^XM4|DogJ|Nu&pB5BFrY)L&2RyPgZ#2fm0ag6YF)F z8dRO$t~Em>iA^1fo0HAWWS^IPmqqW!C`TGW1e#_Tw zdYg%3AsTnZcPmRnMV8)Yd7*c0ySFQpkba(>Ue|h^nsr-ssY7!nw6oxNFs0%T&3#A< z2#LM}I%!QNNjNg|5*@2 zkh4~AsY<7030o_uq&QnpQKA}DaaCPW{-d=)=c_~yO#_$=p1{j0P3?GIrIgn?3aw2S zigd)?1H%mBSd;+({#podKs@B?Az{E$IecUiylU2^*JalW$R{BqD+7$ zZIu40oUnGy7k2vcmGw_fZD$Kh*sgu?+2`8JWLJm^et&3P?1xnqtlRnNh3uB-_eXu) z?H;j|a%(HKN=$JHpeOT8ZbFb2&d&&%2#TAr-)HL#xSF?pNs1-J`=s=b(*eD$t!DI< zy7-^m0HijKs4H}RK!Jr4{A7KJrW_SZDmbdThb`<9sx0((00Q>%`Ajrt5*}Hik&KJU zwN&zQdUmc>8h&;`HFImr1|ul1O|`WFjFa$S3CR0cX9&!R_rwYmxWkwTp)u}L(5t;K z+rhKT`$6vdC0o}k0D!fYqVn2a-a$8l46nY%8XIf&T4jGDBq2#kA+mBiK)F}F{E>`7 zv=?s1H=8^A-;x2aaf(;}_fpJr`E6epPrd1T%8ZQHz3*#}{{{v?j)~lJ^H{mZ`reK@ zK0nM60a#-|bKMod z*K)?aD*1idZxC#DS~{QrYZJnHSPjA`Iz2s8KEwA>$%h)QIT-! zc!c8f*OPbG4M=ALKVR$#!x=TIG3n?Hf&@{vt6Wn2KbU{ZK zkX3sEVvTZ_11NQk1F;<{Xxh3K(2JKZwLY;H@_Q=VT(1Q64i2=&u@4vj4sBf8YMypZ~ety?0N^I{E9vN000;|MD;G2S50sefi~AO3E20 zRM_8p?>+nFFMgphfQ24{eI)yQKZQb=^6VFUhBYZDP~VGFrnm*Ln?mjJ$&uIxXx6|&p+yc51Yn%;2fI02@U_>4UPi{z+)s2^c)-k$ zg2@%J31fw4Q0cz)`%921Re`4nOw=Vk!DP_nVp1Tyrj`JA2k<^ZKWQGGC?}zEsf{g! z@_6v_kt7J44sAIZT2=jfUF*=(+S{|v{w-_w4x~h^O13Qjj&0bd72w>?PKKhrEfL3P zc5Hk9x^=d8tlRD>*lJQ;F=%Rin~wN%u1e5M0v2vhMGHW;2MDl>)RHKW0sx@I2>>7| z1_0=bMKB-JpE%d%*g?1u5TMhsnyl2C(Qikek&9b!?cQga6yZ{uS6a0;0f4LamPAb7 zxNxU1TO?2k0BA8)b=PUaVgVEio?I(R{|MIg1(W~?xT?KV$+J>5EhgAr}CE9qR;DXm5MVw%cZ1s)!7Bs9^LAqUC`00d^^}4};0#qIVLu z6sqb0hI*NzB&;B;Ab>|I7~+$;n3gyb{>~ymxbkU-BD5!c1my&N00BPM*p#rPbZfP_ z)lCHG3M0O1^92+xz&0vOsCs)cN58%(&m=rt4@?)TS_E#Q@w!!@D&A~x%xS=YP|;Ol z9ClSo&cihVP-Mjf2+DY-y1LXA5TgFIbW>OZ09H?3&$IpfCWISN6nhGs?j+w7Z(X3IwK*I zeFtYfInKXPdM`v4i$|5>f2GQQA*AS{Px(p!%zMdEpZDvNh6`&aZ7uDtl74#DJA3S&6lbS2tX^AMt48uavkHkFK^5Z}Fls!oCHgI+3!9A-0O+g241JrPO*T}G zS>~{;GNl3|eFRU!SL_TIg-mfizaZ8MB$>(pfche%hn~km#XlVZ0L7_>^E2r2qI9C! zQ1}01W5@n>esOBw`OddhLI2h}@7N#zqd&GMPoL=jDC@s``P@GE;3szf?YHc`?|;v> z4{zA^?sYr3{>ZFxV7Bn!iJ87I*d7yA)4l!2-5FR%yjla32pt|5+yX#R5Vb(Zhw4g8 zdw|volD*-;wF6W!a_Tp2W3-Q6oS)isGPT|of>tBl!^MR4Woq?W#m-KSbe#PgH*I`; z>i*t!v))cm)c>zO|IGG#Eqn3&slZ3t3){7d98?HE5k-P#NkR@Kmv+9F&z{?j>(^AN ze)aN&+=IUS`RSQ-e9!{G25^b;{$y@VfB=cp zA=E^|Pav%DH-!B>(Pi8cV7V$bKcmOogLL|Fy_%OYCj>xIJ%iaYcZ)v~`uw}npda7W z{pAFpDpxJqU@EHSv#;RnG34CPKWKMsLSZ5LXXPTmbKs4&hHC^gVKY{2%(I8yuRh;p zI0krylXU~8V%p`6p$)4dNZ)Nw*GY`S=cH9Y!UeR0egGOCtXm~Jz_gCaJzA`;j2d2> zr2C4Xwf%1i02FJ>#&-x*j%1Jbqy|8;z4AQE06;nBZ~&O+x1vgCLdM_Dj3TC66?Mv= zm+I99BW%4$aX1kl!lCv`t5_-b95qpjiVJ?|rtmJK0bsRS*(O@azNtr<2oJ?vx7P+aAPg2Qx51{8Z zeh7D?fr0i3KrRWn>kjzKtN9$)L4EFFP5V&U5rdzr1t8ilvc-XWoc-jY{ZsgyqUX{T zGZEJkenvGuEB+|iCkU68oCz9c%$2|b|K}O7#&eIwFjdjm&y^US`@nV5LIq8p`$&AM z*r?mpeIN2Zu3K*h zJBE&`Cs5Nz7Y+b`fMEGI1f;+Res^CqZz>FU2GjDYK!kw=U3)sR;o#IJqYDML-gk#G z=(csY_Qe9QYEwdLBzsDVr_dE009Z`U%_e=T&V~XQU>o#y_N}wM<4k~1T4u{AEUXF; z!23*n3i_+OKU~EC*xU?$8vuY~c?&=S0FI7&MVI@7UvXbdhtc3%|A#Ue1*yLi0KkKS zVmV){zWV06$%|OO16Kh6#j;ie04urm6pmqGbASr{26uDV>vim4t8QD(s_6f!_p+%^ z-12aW;wKAv_>yZJ7b>-KomKUP%B(XP=ss3Auqtf&nShfr$$PU+I%wW&qhfV`Doam7 z#Q>lOl{pm^Iu=_JbE>DbuK)nd3^qW`Y1Fu)&j{FNHbdNzXDkrF0RXfBsGiamBLF~u z@JSCpbSnNNDh<3@+W`WQa5AY}l*jvOVL~v6!~Qe+$Fm(`HPY9gtrnShW@VPj=JU*F zUe;5P0NI*IUg$w=Xaw+$MfFJ=*}5^`8v%d_0LwH*X9KJ%-evwunHA&7`wBEGGaQQR zk@Z??ba2%nq8EMj%E-g!4`30nl4niTzu9s{ar7&c*oD(WO;#-4n+@nV!Manv=nisG zF+~V49bEWy_EmZX!IjoUNmSbwq&-k+001BWNkl$E#uI6HuZ(gh#2j>S0Fm6obK zx@UQ-^0CLn=f5yhI8{I)(fzTwgav?}0ivDz2iDlyw$3iV?3Q&}0J;rp!$!frQg(lc z*3Fgl8=DqM5q|5eTN4KWrXw~&0x%E4Bw!SbG`DVrx#BiZ=vyQMKnffswPZJgaL`*b zTfnjd0QImV6{TOmxbPaSWup8?Kff3N=myAV+SymUsOqyvp-V8G4(w0=^uM$p{qP6c z1Fzq{ZI2&+Wgq_HLshvE0DR}&x1~HhtJSS@9}l&^6L{jDG686rkMvwf${lE! z*y+)8Ta5d*+w0l$XD=l%3e6tsBSFn{hN#n0D)Wf(vR9ux{lcXnYYn@0cunjL?EMIG zNIbK;MHPqVhp^>nI8b}b=mPu7GcW~#{10y5weeZse)+-A?a}=QibqgiRz(C6I;!o% zsf`Bsb2F}LqW<%Yl^_`6Rvvgt=ZC-@+HBJmlr`m+tcNIEyQTpkKzZN;o&ywk!XM&f z!2|#ZSkx-&=jXYgO$5jX2!LkNl;1Nyn@#Hvhu)evUkU)AxWKw5ukz7IEdfKo7OI7f zhV}{6{}+{|7#1Y@ydMAnzd%60O?}G&04TAS<_72Ie`rbQ(0&Ox0C?EMCfT(J*w->q zDX-H-JwF1+Ouma1@U^A#5cd6B0sxsX<=pm!pfYIo#D4mdp9(OdjR9={Zd`xRx0^R^dh3ZqooVMlw*hdPmSZUVZpX^lCYRy8 zTxSb*H%a{n*D*9`Xwh}c$-$s6vE&tSnU>S8<-+|?yc}asYvLdM_y5xp!GiH%V3Xlk zLIb1WSQ`q-4l4MpVFYwcF#4?3v%`cCWyUKaNw49-dEmvvB|wELKe8zR0Dt;@QIioz zYH#(dvwKY{#@lXMZ$JgrsX z9x{==GDJJTVo?(l09^n)*CEz`%zIy-+qwY&G^9 zt>End?gyL}9S(q`5`QFxrOB23!0WWCb)0lPLB2X!7R5Wt5c<9l7E_8r^+_UtP;Zkq z>^5&y{KumU2LOiWs)Q5t>s!KpGu8hy@!3q+FYjlobIe3+oet=~-$c>N8}wD1t8e5b zN&U5+xy&?HjsZzyB5ao)fUG8)c6)zo1pvUDkkz4!q%j$x!X$FcqLu)FZ}1KPWUWvY zS}lC*0Kj@skrmN05R{qX1}07-7?6?J8UX;ffEwd9#QF#vL%(9aB>9I8z`TV158Ay@ zCCG!gnR_z_03g}Jq6GkTaQ~yKa9o+@G2Zcj0Ci^`XhTW!NNq+50(hH5x__*$Jv9JU zKT+@%-;ve*wR=?v;+3jI#m`bKaNU0JO@NxdZ{rrHeO(cfMa5sJbkGIMNnZwbg%#X- z14|)}nP|6vUk16G0*U+_MRdlpS7arMM}kJOPe2j+4^Vn}p4}cmW5-O&`BiH*K=`A2 zz2v#2jVIbCQwiNEd85MIY}pn9t0?Ibguo(+b}rTgd6>%{&hKq9JCyj(0t65kz;`$r z?{nGvG7Cy9<2I@$#q3D;1&wK54j5E%vZ#gAMYC<~gKGf*99pZlZFPid8cl20+dA(S z!Io_LV5uww0!Y!GAcqZ-zJ34z7y#3OjfbZJ01U0)cZFd6QE#==qS=R7qe<3O>5gi- zC$e6N0?5{w2uh~b6Otpaxs_=|1eu`&5Y;FL09JN?-U8q{0t$MxsgLbPKl}sx!$16c z_RhQCQV$>iz*kS6h}wsmd!yY_-~aY5J%G>c{yXnkb^p3`uiy8o|16>|o{1_;P(9hn z@J084n6-e!UqE+__953!5TK)=)pR~wd$ZNB*|;xY53pRi1yR%G{P{Op3awUMdny); zB-X7a;NZk6^N}^`3w!b9SJr9oShwRq0Q5`8(a;cq5{qDKN1}b_ub$a%Z_Di>38trG zd;0h*RlfjN)F*lBJ-PfFVI>s*&ySC!12H%~)7nk&_57>H)|ivz!(aelIoB8>ei1uo z2H?x}J5mL;ojJh2spvs%73&M;V?9KxLiL_~q1i-ykJzRXR854q5G!1PVR{s*{HLvxLWcWBUwmB~eOVm{1=iemc1c$^a3ZzLKwC)R5l!Cfa zrBGZKV9;oWcouF>P3>=d)~ozfCK)Tfwj|R{$pUKIld)PB(sC^sPUZc4J$CWyEGOqz z?d4i;;uk3nw>stua8(!*)zM7!9JF+5a{0US{{ky&TuaUYk40VIU?r+1A;b88zBgG3 zVn~!&TASd(3glRMl;=LN*+!u2ijXMT5u3uPuZwps{k%BN>p!viJihU=M@piC>({*UslPNPg1sRCEE8dhJmGQA{D(at zD?!CbGsTUW!;r``cUFvMfCTT2=R6fV@*PnOm4&#d_FnbnMY5;8L{xegUe?@`csGt4 z-V^UE?3pUf6l7huV4(HgMH2n}O5$QJWSg1x>1c1r?{!v--*vuM$$#8%-H)OT!1uib z%2Xka7AmftvCIDHc8#o0^}>oTHIsBa-B*BUUw6_WfHj3mzZeSvmU{(%5P+{U6UZ6$ z8P?KZ0??Ag*hJYME4>sh1azS?|LG^6*sa^QB@X!H$z!{9>$WUd`F`#x75xuC{7_mC zh`oOB!A~XT#~-TuZ@>Mvee%gC_UO?glkIGGOS!{mpM56qf`po5Qq2c6z?xUCH&{0g zhxXv!eLFci()|M*`1s>r$KL*>l6HFTu?zhE_kZ91>aYHTj?Xb^LxbJ%#eu! z@#DvOFMvCCwzvVnB;dROq_Q<%)~c{08-Vf?Pv)bYGw&ZD0eTbypf>W+)O|`|Q^3*x z@Gt(iB}vif;zEA9{fmKUY3HM{oef5cIlNa5rCI1=6|1AD-fVi0Njy|7h|!0`WMYGr zh|QAzgprNL7q%P^+-H3})ZYxC!)w>ALxp|!&{~N0?HowmoysT|j-AtJNY6TcnIk*D z=&SMxg>{+`@Pc9;RF8D*B>BydI0;J%_TB1`%*kYscMXcBsOJXS-bhGHq z&*ORWA3fd?tf?p%)vOe7l=?7}HufWee6$V<06+`?w{}usoHXNj|7PM}RQxt}fwjKo zugip+rR^YQZHm|f=Y-qM9%d?KQ+Is$Mj=J~iwWFn{8IBVZX_FuY3Dapjf~_=^k2-)J_l3&k?#_;@ z^ET=NbEvF?*mG=>(X{l@W+bD~_0{U_Na?@PYFk|u|Ee{rbd=>{k4CL z2R7-S+T`NQMi<968J;
PpwQyem)+F3OlppGk~oH0N578rqJtnUacc@^K~3SAo@ zDgSQW7kUA;a0hU)^g=^GKzLMNP*g_&pG3OVtgG*zO2a?=hyTF-^iThhjVA;9@aG@O zYVP)(yL!gYpFLGIvYngvYz_mc(USO{yBLJ>rvg0Y zMv9X1G|}1@tMPeo2s<8nr&5e$nOCb2y|FyVQ8?&UeMckc%Yz<+;NBfxTw{UY*iKl=-@U8^KXOk5ADV!i?NY#z`DQ%F|aopx_ z>N1bgkFC3vA1we)2LSlFs!jqud|yG7&~3jwiOD2EaT`kCBu4RGiTb&6n6I}PM_i)e zuk6{@VxIUX$adIfV()zI)dXN)BXmf&TAya{#` z)ntJKZf)iX`wCph7G;+$1&#E6H}y)pONHAhos~5c3R6cZvsq^tAP?`iiqr) zt~CK@m*c$n?)aS&?6CTk-hjaPRqU`CAEO(S{oP3;Pmxlw2Oy1hHTWUEeIXF4pn zn6Lj)QXg}%%&18)kDqzFfCB;^{{v{#D%#LmB3A=3=c+Cw8X~R|R1GZ>HcFlY@d(9W z=BCytfXQ0j4zFF4c%5_$sE$L;SH--oHL%%f3m~Wc0kKwMBR=!^tFM&&Blb;#4yB%R zeDds>z4!k6+FKq!d7^d#ME9ONd7|$HIQZa$59AEMaS`u(_uY5x7r*$0z5C9)0+ADN z;XcCzq3VC<&Mm3+-@kXyKK|&}_Rc%sQgSXJ;Ql?0t(Pxe*u6V<)$>nc|C68m#D4F0 ze@}@x>=X7mzVGgxyHfEd>1WLX+<cx;mYFU zW~JMZdJx=k_T6j&@#h{bO)3KTL{#g?zxr4IdP%^C8ambTi~hh~ou1p#U}z`(kqsv^ zZCW7qP}S0s3;=)=Bw$lJKq--P8purjY~$HNy@2EKg?jXt(~$xX8x4`AmzaT=0DFhF zb#PsbfcDm|ME*g;R>!Q_7877e0tK=@r;0GM+Hz*?dd0f!rqCAIA$IVUrzaOg5b>p~1pCG<^esUE z(M=t#D;DXJx4j-(sq&e9#X{FMUpmBU15(va$6nE+_1h8vAZ2g@{SfWZ!;i}M3IOOU zhywsX_o1wGlYwxa%I1Rfy6q@8`maNzH;;EIF)nTNiA-M&0Qi|~R($z>B^1r3b(;;_ zYhgdxQopHFSZhIX_9|y4ZVsxflJVl%t!>DwKy7`a_x~w?OBH!B2k6E1e$T7!r{f5* z!BH*cv*AfER8}@!Aqc1*{l=_wH}pdJjQwR1j^@~32(vjDM}|nt&jPt zm?T{@vc01L{nr72B>;db<1jB8uCWrzz5JbaL7t@G1)OdU6RVPRO$Ig@^_6_l15eu% zFV-r0(~^RShCrj<6%gQSf-9wKb7y?1QWkcWv;s)$;W7Z=YnBIOE;8fyY;|v=k1`lC zz6N+)5VXfi1Ys(S_Nl zZ=>^LiM8SyLj_wKwp>ghmpdRP;JR9|QH4Z{>dIXG>Szf7eAxo#(_&@YM|(AMfHXR6 z`dk*k*#Tm@1qh(d4ZWBC{-B-4Cfn(dc>5gVegEX2{8vi2fAgDh%cW4h7$s)IEgNsvZH@&TdYaI?Ql<0eK>FU)|a7K)3GP2X-SE~54*BW5J5mf({ zou3{HL#Qlg)@^s}g>M`Nh=W;?x}#2N9Re)if+S$>mjRpwXb!;|vYd-!@ z5uv&S-0^B1po7mTsQk_pfoY}cZ;WroHZ*@#qNGU_u86T_Nenjnj#d2+fJ||b0I;Ab zN1H)10n`ixKv1pONG)4SiM>MUpDf%;knd9=BjO1dAs3^8oDc{O_4ma$7D<#2A}=~z~0E;bl{lFFWI>;~8xyKjjZREl>> zuy%Q$%w$J%O7V{0uXW*8w?-tUWNiC>vr?1icw8q5m&Pf{#9*K#Ej{CTKACXve*VpK zm&Il1Dmd$-RxqNpo^7xU6dMHlDSuzyTUh=#W0Txpz8UlXGPrOF0C-)%6``TGG33L! ze7rY(Tzm1Q){Syu>dnV1D)k!x&Q;%8gtA|ELZ#m;fiJattnKT1mKl#ZV434f`ACQa z>bdjpuVOBQUs7aUV?|SneFfIE4CuZ=4b4K z)3NI%Ah0K3U@#Ojj)E#-1_dnu6@CY^g1r(T;o$HS7~0I(Ch<#22_uivn{<%3qGtkY{JmOx?k?bJUMBk|_ z0wWMw4QSs$p{;>PBeDmLkbn&ery;&J8YqAuN$KqDS?}PwZSP-`U>|^7!S{EMhn7ZZ+HvLNyL0x?%$8yoiWZ(#u6{3wOl-X1%feXkf@u#<&;vr~z+n9g;-((uB`ozo6sc69oa1Khp{JoX* z`}2|Q9SjPRMz!R)-KjGGYNEx<>pTDe=*|j4M4xjzG_@!NxB_EpIYmTuZ1YjyCd0mj zRcG|V%k$l7i3Ga@D{P|eR@WMJKuc!?Q2k(D1H!MYxw5;A>!nIg!rkOvkbINu21})a?!@ra z<}kVXXR`epou2sh4=yBrH-#ObC&rvW^vNv-`7=WVt>Tqa3Ajl|0L6Q%{{R3a)Ir@3 zu|MukS^$OwPLcdGR%D&C!2r;64lNoeo1G5qxT^a2v4wj2^s)W$hre$>``J(I;Ba5n z0R@)xiakHRuxh(wfAlB+h3(yc5GteeL;@HgDxfepT9(2VRbyJ2lZ_Wu>C(XRP%#tH zP)+rv0y9=0l6*7?5LKjwgj98Kai*jkF;KE!_UC4&B{oR|hQM-R7w2aZiKBOaIH0ZW z!n*B-fOP~7&reUa|MNXNyW4hh?3El8n*kF$owhyx{8O)o&SAUsCXAEfXC!OcCNcGzqbqsR8m~xaUB15D>RSQ8B&bqO>oWT#bp(nw#$12mT#_Z=0?8{|WY&&at*P~kIl~xN8v?*8jM5NrUlhH~Mmc;+%%a>|vSP9lwQ8 znccp9N6Y}e2VFA0lg~YV^4M6zHsx8B}?ZST-;zhkZ5u1zX! zs}M9UJV-(O2M_>sgvtV_3B4649&!_0q{AtG@^qgLf&t(jo|I+gY%=Yxb+*tP=&C9P zWe_$46br1<@`a$9dQYgZf=p{uS!E51g=J0QfQRUS(SMqWanfoOP)C277Lc$vdo2dA z0RT8<&268Ymc2rFiWB}u007zu$pDxZS+34wBVoEsiN3rPXBGXbMSAmRuiGH5VglqQ z`Zomt_)Zok68;^k|0M6@_7>reC0Jt)+SCqLoi04d2$)^W?Y>QFfD!7&m`!532>0Dr2k0@uqQq%0HDnH zNsyFa45ZyH40~!PY4!HC)`Hv%6hWL0hDigf(u$Hxw=S&66MjzLBP@j3M53{SljlnO zhv%nC`nm3k#4ORFpuN+hJ^%n907*naRK<+yH$C_b3ErtSE1m_Su@frjQhX=xhe<)J z1Av#`S4rdr?VmJ6w0|Y|ZWox8{uKRlK|iO|DOpi+mBN5at5-=}m)6_v+K+zpBLyQD z{d0Tq{IPYqE&Hec^*>dD+CLxI@x|Eo?mV>b{piO^!0H{qp}JYSYx9A7$lI(hMuFNF zp#$gY$tBefs{<0YL1Jc7VY-6~DCa3tbC@v&3NX-GkIob-v0#JqDbpS+>#Q_0oKf$5aW0GnI38DUH5rv|PYtMMmKsHzkpeLS` zHySpaj6JXo#{joDb0uyEAsj4mF+;C}GI&|XS^rtnv$C0vHat_Qa#wH;Xo>pl)(^gY zx$teYb;g=3LE+N+U;KWfa$W!cj)MEbsrHMN7C^2)Du%>LoN*F+ifc6h9C)0Q9^<)o zCxDQ#CV%@g+ry|_%1kE*JG{jiday(I66 zsLz+G>zAUT;{Lqpy~&Wc+#V3msMJOnXTSMHul@h}_m-iXxcE1;G3ec;&2^KhQU21` z;_z=MfC>7%)N-=gzl+_wL~SqPf-DY1DMHoph`CbVCz){iOgLT;)38@+EO~!{5_;xb zR$0qn1Md(sEPx-)HO627?XQcC%b;1tNmmuPU?I!SEtKTT8db>v*o?EB7QQ}LC61in zl*C1y4OM>rnnQ8F73*>Dvc-nEA~qcHXG6d9b8)r}MF+1;yFQTaVX%n+BVhn=En4G3 zUx-8())(hS!ptkhI=QcIX*w6E>1_b+jzX*i^*#Y&D(<@qZWBb)Ff2m_3{>Q&*1^D>azqapw_q+D_XP@aF@x86K7nWHw z0lfjGX-AN-UZWv^g0TU}F`G>7`n78UD7=_cS3;s9CAf_0l58m& zRJMGuG0`Ryr&&)30>;=g;Ti1qYfw9FbY@1dSAn+O)(!H0`(0}z*w;O@N`s05i?l*J zc@&=>z0}Qu+Q|*z98ezSCHhD#;sh%MJosWasWy?!bAGZ{b1Mt?_-zOc1Oex~vtI^k zhiocxgH}QXdWhW~0W|@;S81II;G#e-M&<1Q`O<`l_5eKu$qcU}f0tJ3lJa&|-(Ua~ z)-|!R78`R2PbDKmXcn7WXaFGoN0o=FkTd`YREov&vP%Eg0RRd%B!z#qRnFJ#M4O9O z`TMl|mVCz77WX*tRV@H{OsK@$-HvrzElpnN|9DADp*vb5)X7}ZWhnal#7*=q<}%`6 zwvKZuV^SJfBy&^nz$X9iNOit^Q%~DS58%q1f?uoeumAwE2~@DbzZrXu#8OEnh$Lua zT*J6wu1cU%J#B73v$}VAy&Rj=2sL>`;5_kj%9#gc0s*9+oz-Ix`15|KZ6Xp52?K^W zplc35uXQT?RRPpma8PCh6#p)t^GZV?nHvRVEnES7QS+YAA|clOW7W!WouTF$!dIM1 z(*0Mof6oZ={8IqZH%71aE2*uoo&^Aa5_}ZzQG^Ep&*z1mBUE!G`R=Rjz4}yV5mfa` zn1hY1IWPcd(?R*(8B^2#nN?=60mjbU2rw`&B3TlQM>ZKMWnx&7fQQ9V#$4W29_8#3 zt0^rYGXN?FCP~Rn7J#qYO>1`$k!-3bPv6(s5~y2kb#;I6ROh-GPcTimC(1YI6Q_8; zn8~sdnm^R@`FLcL{+UfKj%|vd>u6xJ@yOjQs6IsSF|R}$k1GdQz1bEpCg%YZ*8!@O zEK^knQve7C@InmKT`|1V(c1xFB6te`e=2eS5EvkE#&r+8l>$uw+;IRk80fCy*6lRy z;lq1!&44EOvkyO%J<#`l|99=ijq9Rv(~|MYCtui|N8hsF`_KMJwulvgAz8#lPr6Ev zQ=1Jz{88|QAp(d*b-t!`0R@lR)?R*0zysF?@J%AmT$vFN^tNm^>gc*m!3o!sDqlvW|Z3QA{=f|ohGtQ>t znYG&pKaFLl3rmIS1gtvR&}6$iohay2(n`N=e<%hbu?SXv^h?4BfWQxUIqnao-_WTy z)DF<0g%3u+(Xq4#sQ#1uBUZeadR2+0lG)S~_Y{`$MA7N8svZY^=+%7^NMCn7@%KlP zm4D4$Kv%T^AbRDAyte^lTtpD-YX<8v^nUgD$J!13AIrbNXzZ2$T3!9L1Z_!i)p{L5 ze!90>B83DJ(r`vfEfJ6Bg+eejit|`O> zOSXSy##P2sxz4_6Uw7)f)2md;3{YXUj>dlHQJTBWL?Wf?Y$=i87+j}>3Khuu>Ln&b z01xE^KhG;c)Uu=1W|Ex%z-9tgtfhW>4)!J$J>#udM2j`lSMFful(XLL;Cs<)libHGybnC}n-2>@ODM4SoBLS~sC`)IGea?8tiAHAKiF4}L^96a&(El$!w$%T2kR4-cc}2Qc45&Vhqu9-|HzUmtfO22GdUd4pI5|Dlcip;q zQ|qt3zq@76pTE%0Sa(V4*(=#Y7&E^9ENwI%X)i>->Fo4W%sD`D@@celxF4*EyyT`3 z1tRjxq7W=$N4L9l@FfaYrT90;R)V1#tN;3c{BM`NZdZQIs3^ZUIbQk)LsyOQ%_cxE<56p)L- zqQeoDoxL5=N9(=o*68jTD%qNJ^f?c)13IzulM_2RMg`h?czEDW`*Bo`8_l3-w;I-I z5!g8;g-DIy-Tk-2&MSlKg-X(RC9g+(K)b_BewW=B1}>e;3b75kyE zl#@752?R)m-9%y3i~WX|lD=XSSykaO5O)guYL`h3fE54`YRf4C814uJadH6wT`U0r zo2Rmwpl|+O3vwC6_&Wpwt^xq~{xt+^W0xqS(4;qoHCn4Fi!>;x66his@j|^kqwUn2M%ztV9~G5A9|cu zVS_VLyq6phfCP;>;-X{meV4}f=8hjhP(F;~J?FoRG%>+%K`ItK{=IDWIT zVHA`S_&^cRMF8Y;-rt+^N&k-ukmfdP26as(vEB|i{MIKnQD5opGD@ zBfu_3ESd%t0AMPf2>e}~_}_h}{ZEG%HitPDf~84GcGr@n;g;^gnGTM@EKpTdR+)eR z&XjQ`4b(f@RanE(e3@Gn@i1BA(MYp!O&bZN!3Lo1oeh^tfA&=(-N5ewcH;SJ{yA%) zNxyuzW%uvjwXYt3Y2W^xZ`%)k^aC5uCie2xkv)F;+^*fcV>fTzw|Bn(2WDGP2y04U z0ZisnnfEJO&c`+%p9`3%*4Y2p+YnxAg~C5#egN6*5i>FD0EMtnr2S2;6;x56XCmGQ zgM@}5S;w{PxsQ3p)%_cFw;Z1Pn#_Cvphc@C z+k~*~lZBS(_Z3z8nMeKMfE%xBzbpMi0Y)6K<61yCI*cdY<1azhv?g14OAd*BR5A%B z@sw7jE`H`y+kMm-%L+;fVVt+`&n4{G_}f90%hkn8F+o;tlR{j|G9+4v5L;BZHUWH& zMLbF3UH}~21K5{QRTaRVbZ>-igX*7s!#qcRFXm=c9NB-%`wGulttSYW!InWgD32ep zfMT@`_4#tUy#oU)4w(bc9(!`k6wxgUC6^QCazej~7fLL&(2?;#-*6S>*OmJ?>xqwB7jP@T%78_J28<1THrRNpcrW9iQat}PBH1F@ zlmLP^0RUy@a`ByOY*vq56{D!b%=09PorWG7AT(lh(Ke3>Njf}iFMIRD#nl7c=P$2H*blePs{>4iS?0tcI(zHd-nX9_AJ&Wm=RF( z@7}(xP$nK71%4K%Nx|JAebNc>InR=Zgjai~)3M-hcl+iTLq( z#>MmJ&jb>Xn6rNYGH@R_N3I(HfMgwg0lruJD(n1k?3TFGsaOmAoEOYC+6SDWyVSn{ z4QR_t3&0eA+}hf5)qn0gfPTAOxJ#(u6^l~N4H$X6SL>mQ)!AaT$~6RH* zdM9di8xE)T{P@hCLH{33?QF8N!K`Z25&$3;fTomJkLqD-p{fY&05MRgP|A~@Y6Vq! z`V1FS8_mYD+=GrtFfjuFP%FS#R!<}!^-j~awtKd{hgH-yYwvg;X_dZxiS*2DHX6uQ z=;gELqD7F*QntYd5;O>_1%eAvm}@nIy@;YQ0XMWV@7Z(8z9)atIsi3LB08S<%ffIn zwg~`02n!OJ^AL7-_azRvg>_e}V^sv00swH@9~41EF5Iuv7jI9P5}hRYdJ{(L3s$1! zk(`JY7b13X+#)cix){0z>M>5cCE1*eY%~aaL};5x;7k z3V%}k8)glD=4~0-(=Wgz`v;{Xp8!vc4po<(0f1U-0dNFO(M5)4YRf_|g~VTK?Fj!( z23A49PCe`i#6*=QZl{WFApp|^sGwRNLT@BlVjPH$?@2As)&VB(qen;&P#^&Su}%We zO21(Rqt%Lp$=IY}0FcB`rQ}`!0(k3)U#EZ&S?jq_jYa@kCNqEy#0&>wIE>GaZ4OIm zaN$*dc^$79PhOH+NtMn?lnVgBMb>D)$o3c|$k;BbO6u)X=vY8mr;Pw>L6r5?46&G7 zlYNXfDxOhgX~4QL$i!-^dLr!ijcbCrv0?z=0St~BJ|B{R&cFX*oH}<`X-4^+N0`jo0~9)tIerPr=uX zo44%boXo6MYud|aFRa^a+4=FQwP-gOPgMPfvFMm##U=xOMn@>3 zz7z>?An4d+#J%+DzN{c4nMp=K+ODX7pSG72^$P%ivF6M^2L!xd+}AGw0EOO)7fE<8 zefP?FsnXL+8h|YC1pojTko~9Zz@k;E>V3v(0jpLVlI3Rf!ZsQb@lzrzMe~KKMguGZ zi|VFZb#iV==}#*__21%-ff_k31kgqSt#mvWI^&cxi75l=DMZG+)|R>vbCmboT+zL9 z9_#!XNbCLA1nDb1k=0hfC&U0?4l-w>U!P>1y(Afd1zU=H5eZmQhLe5DoXEXGZ4{23FxSjRko7Q9%r16rEJo%BdHS=I<~>90052E z08BXkYCrba^(uDeWtPA(?+77_qj~@zkH+DEs{OX zcw;tEin~_PS02~dtL4u}fmH2-IE@fT)U>xdL$q12j=ZQ)Rboul-YpLSTF8Psu-YdiwO~iD%x!EMV_okGOH|&`wT{qq1HV zu&kCcKznJO^p(Uj_vy2L^yn@12YtBaAHOcr)FU0Q!i^`45hSMsB~*EcXkA%aSx{SG@Ts;u-r00z{W)`YgG zzGOB+_bDd;qoR(L6_j)WTpQyKFm{IkD)j;Zc5G|=(6)9Ct+R7rO$h_iCrKq?DhfMv zz~h&%3abndmV<+R^_DO|%|KMDszT5PKmbT}ljNL<&qm0NAyH?61+~JHnFmGHNtJez zZ7H6+U-k&ABMC`w|Lm_EOt{(kHf8Ts1)0GXU8D*LPbiVjt&B3;!hwCI{+|1)mN?PaThZYELsCrRb<_r zQiVSeWzB;~8ogrgfmkNGnslP>gwSBIP)C?lTDZNE>z`ynRY0SJ5y2H`z%HDmq>S$k z@jm7x^VC}a5WHO4WPu{O_orqbYBB=+Sw};ws-QE`p|a z^1^Q2x^4%Ddr}SV?ewhHsM*cCcg+CA+daE>>w)!d-q$!9ot;{>zLfZ0^wot{2Y?6a z1#=~l(u=6lQqr_)Yu9XnXr2qt(!zt?9`}^{JRY8FO#_r!aR1N)P)k5n`)#ed6axwk z0EQu~f!_9(jq$V&1`vrdRSQ}!`X@&c{^QuMUOu<2PD}SjR*{Rj0>Dm}3I#xogKn&| zw9Y+$`q=K?IFw_Bufy=X;1Jy?7-iz;18HW-udab^G-% zeq}cfu4(U`Lc^RbRsB}Nj@a;!79_qOPk54}s#+1aPZC6w`u|EG%a#9q4-r6c1pweb z^WWu~$upM=00Mg?!UV8k@mH*?0T{3bFJNPcUSAUs;Hv*H0qS18mj-~l2$9^2Wyv_C z=Rbx1mi*rV014!U8%OGQBmj_ssRX|w;V7u4#is6i63vareC=D}kcLFRFy)pf&eXomW)kGhySr*J!L! z@!C9}q{?P{gU&nm^fY^kUVX6!!X}dQkWd=nNU#|I0=#X|uWQAQ_wnU>HtTSL(Z#}b zRk&09%t3Vbh0o-DE#`{*_;rPtwYcbw-+1|#uaD7u5R_{|S;fwyBtt^?>}xd-Uh~~= z%2_u~Zmrs__^_<bf*w4rNXbA0;Z$i zbJ#?nh-&AnRi)rhD-$n3Ig(Zq`0bq?CG6<5Wvc*804m(P2SxyEOH$qW3@?Cy{-7_g z;Q07hHpkKvz+G-KmZr=EYxpw&hlY}Weg}{MD6_wRVEz7u?d|T`(b17&X}<5X&puPX zKY&2GCOv!hRKGhrITd9eeVVk=<8zN6KbGAeR)4Gwe2z8%*6n-u?@QHR=X=q2vBTw3 z6@Od<`2MdRKNcIE^Wyr{!;gregj~HcF9zHUExxgGSJtDf{BwPBdQjVlGt!*JR$_}p z`zvFMap}4F$~CJD80I=&`Okm%t>xkFo^`0&)Eag%oZ9JdW+#)S0|1MPjYI9$gRvMS z@{46bjOtUWMG_o^Fd*##O#)^mDp_&&gd4O2d%$c7AOKYIk1oIx>cUK$>-PS>sw3Mw z2iEEBS$FTyYR!(*JK2OsV~GWgp?}QhvMbtwmX8;9&~TG#%5e!^5ZFm!9NH2{`ccRo zV)<}!p`JY23J4GoXka7JwP16B%?Cn+7f@9D5_bRq==FAOduQKTZS1YE6G0i=Y`UNa z&s_<`EC>yOqUslcd`9z|YvDS@c|G|_JppZSaRBuk^QQm+oU%ul3Maw`^tBNi3HC73i?Boi{*XnFy3)3P+ z@=t=2G#j4h7H$u!fJXmyP(!KkF<~T>BoU%Kl3Ttd>bsWUYeVs%!6#e%3A$H#FVnKk zfui*!5n!s+5+&2my+_<_UEE?N)%r>PJ<#)@k>kl)3Q;cvFcG?1;Df#t4ch6@XauOH zp&R6zMkMe-pVwwWWmeQl_ifFECIKb?-kkRy^mql;nE+fvCb6PiXGLtyJ;R@oKmOI7 zDWELTP(6vIJt_P0%K(7RH58!z-)@nqW{5(>&#T{R!wA79Pa0AbF_MDl(e-4pF1Aq$ z%Yk~U_e>Qj@B3H9pEi;vKlfzNgS6Fv=gtt|uhvL+=*UG|0VC@o8-TzQx2RK}^aPLf zp@dTTJMH<pWWbP2BEXPfN|%o%|lTo*n5j4Rq1rZ~Eg@DHpa78vU{J>Wy9=xfZl zIB5npMZiez0GtBo`{!B!KzvRzM@YCv%0_}2S&=bdkx)!Q~7BbG^m!8%Qw94#GFITS4Db7agwBgfLM){t_16LHB3YeCDF zviRcy^)Q#0;UwQ76YJ9c_}V$DWJ&;9)LrM?3|o!))` z*+fgK=l}p907*naRNwtBip(F#7HaQsUlkJqr<;d2?CF<}Z8n@(o1k-o_~F8aRQjRJ zFDo|c1AtW|qR5zFPbIz>kJ#I3cVHbN0Hphl>`8?dL7_F3I;kj;=#3q2lH8^UQdF^rFbZTj0JVH{W%ipnSLAe>nmUr25<#ZLbB;<3s`tILz`Tno=|11(+W*59R zp5FXLDgI7y#>c-4=v{uT?x)u#B9bTpghkDwLPfvhKm~Cn{pHQJ)OzLN0lF@!1=km4X9#19N59`o^)AEU8sv9! z5I8v0-bVrW=8YTn>gY)85$j7P_l!aE4B{!q25V6=q}ZQ`tu6pL)Gp`G)StDtE?$1c zxDP-w=V|5uz(7C07y>X;)8vQmKUiMd+qdmj!y46w4M!^g;CxoG{=zN+0PcB|$eWLx ztk|-_sU4u+5MtA)Hbom&kQ|~d3MHN~y8sv2}u3^0SHuM;7mv~p6AEwQJORY}IN(yF?!3G47meuM`lflDT z7J*b`r&E2Wvj8?KnX#gjmplEtWCP-@11nm3f(Tau0II&JcN^O~@(cQjxjxz%hN=J& z;7JDnP=bLaxZ6e3@|8u*Hvs^zTcTIU;v1H;H)sYV5Re1De3Z?N;!>h;#aF5qx`T~~ zTRgUEb?X5Dh|23IroTL4(tQi7p`x!m&UbTTQ?L-*jZoua6Zgb3s|g;YtVC&&DxTw& zwgjgjyBfJ4#?jbB^D=SFghy6Z;XomwC&Z};K$jI8;EYA0B3m@CKCL#)(&iQQRegsN zX;0`qDD?4KpoYP2$m{gl>k0r!TRAaL=2I==_&=bv106^F=%J$U# zedYR~ATr0!IsgDEIe#KlHfXdt&RlcA*DVy*rEU)Z0DEErJsyzGg=fTGk_Bio99Hp# zf|Iy;2@XimR8+9_Ktz?S4BDc7#n*}yCUj>P2^o?=BS05chUialPXGwGCy2EPSi_#D z*^uC7f>$y?0IZ;0VLnx_|736`?UxzX1qdKVgMl_wss^dPoa^J80x~_eA`s^;yW;{N zm_+c{AKE*%tkJSTQeCx$oNT=E1NFa7@~t(H^^rt;tTq6WX%5k-%%$w_J^v1tb-FI7 z2$FyA;UoKlAN+y6_wFO>4^FK=ys+cbWBcr@$M&7?{k|RCx^0i%`?ghf4s1SxQtUuu z&TpSzb2C-(J!#dN4TxNC*|gTMW~=8w2icxW&O7i0W2d^16(Wo#S^%)sW&L1}k~I^F zV$lD&CujuV00RqvJpn)oaa^^zjYg{QkA{8O4RH^y9UR!x$6sl^+~3`iMgc=-I2s1X zS#`zw1!B8Z_3T#`X5IF-XqByI)t)~6N&y}FG`}Zu;CyM5c>4UA#E+#=4g3?Sbl|YBey(-ya!+7PN z-N^Nl95^VFr347(PS+>ERZ#^Xg83qmS7)IqYzT|c+^32?Px}%NGm_R!t^?FoiWzZX z0t{c*>(1{LFgIz-T2G!RE^)q$3s@{VZ>emvcFwJ)+wWjHg&8T9b1%b3-M1RQC*CIE zpsnn60anC>a{wb535rDm7${fBv$9(jiMv#RmIj3bAmtb#*S%F-<3*m$9`;QDV6)xe zQj6W%g1Qb^zadI1#@ChWaV8U`LQS$#-;`h%V1MbL>-XpD&+i+>n5E-ia#DEHMPF6) zDuXkrl>f#XcQpv$AMqkkwpo1L{onk(cB6E5Dqmx?6nq_yDw)~I(UAoE zQ0|9b4{MRN0oz*66R?8yce}SO8$ZAV)(yrAK)Bor+HH4eVy%bO&H7D|0B3*;L~GGC zfVy816M@f&8Bwk1So|#4P-mn$$iX_r`?8p;Xg@$eZ{u`kQi`6I$3Pat-VBjl2B1

M9#3bO9z-Z?|lBZ^w24Dh{sM|4ZJRJx88r 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�e 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�?-8UyruWwsnT9a4~&CX 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

-R-#onCYPFGK;x z8_@L;_t$%+n&DPC*ov9D%$E4a??ZJ8L3R9SGiOsFnDSe7@Ptww6L6f^S@`VBJesHX z(Pr$Gf{^w3b>p@56$^UVRe%2$3Ujg6+@JrtD{K4pC4C;TXpTz1y~H~K5l3}%KRUx2 z5P3(RZ*?`KQT%;UmM)Bh{2=AT)5=P_Thq+xV`G&j5eB6uR?_8~i0eUYsX@s4I6jqQ zbd?XJMYd?~UAGju6=qQ$tmD&t2No%Gkn>Nv!_-O`Ui5b{Dr_Nm=3|3S+S@NwV4QqN zZtz~{i}+Ci0^&4YJcgY66OunBCU7Yv*uc-7ms`Xi70y;h)pi9l+j{cy^l1cmxs&g6e6wWRUP+##?NX@2Tz|j zo?SplBg`WvNYhfiQ8GjmSH71$&w>H$jO^xS5h~G_uYxiG~dGJF47gNhn z!XFHQRJe>hJv@JD2D7j1^+Ikd8!Lnan*D6)kjY#%DKDJ!$l7jrbggMscNaML)}Z?D z&eCkh;jwg~7&qln8=H#IJi{up& zD~>W=4Z3NGN*;MPgd#lruQXpVzZt}Isa@`AN2-7H20xd@06NRLo&C71v;4R%m3e?D z{Nstty!>+t6J~n!uWR*pKroq1<%qChTmFTEy&X#Yo_VlnVW=b{zx31=%JHGFRLb3! zbnZvz-Om|vQREYJcLE08f&rZTroCAHAWkmVV&x%{z)hvu1*z$eg$nGGXcIyJf=So_ z(ckX~Z=LLwy~2MAA#}Vz{C^xDWie8M@WL7zcV=xVcUo!I;Ckd=CuwiE*23Qu*KfRU zs3dTe?qD#-{XKgjX7Du)v-!&&oSFTJHQGP7O**EwW+FrDQiTrpFhLaT}%K7>BlKz#- zPt4a5AN8+zS&X?g<-w6Cl+|mBLM*dn5c0pg2(*cdZQyp^I69mf3;^9|^Pe7ncp~IZ z24prh6q&K4^?U#v;>zD#gNAVcYDJo1QZt4913ox;IF?&cibGuIXnEZ#I%`K1Fbuvt zRFpfXwy&A0?x2Ca*&4{a1w*%5{Ybe|VPVh^?%WY^4sd;xQ-`t6gvF>A5xh98%Jc_T ze0aah(2m5iXC;Up6=kFwFfzdhfc3U0s@?|dqf`H~9^juAYoaR_*j0T$fPC;}w15I; zOOoO>mCg3=8Si-bFGKLTyg}FQ%dPc%g;=$e#R6iM$W*-0b4FtT;GAR)?`F| zm?dZB?Nw>yKC!W>#&pemsTdez%Gj%2ooLvKqi@#L!h?NCxrZfh;?@@t}p-~^T-q(fb&0fa*B4dnv?)+55w{PL^>T)eD&7< zCV@#^{q;HJdEWB|Yi$FAkAnZ5_&KJCUTP(bRaM&J2STPyYLPf3T(HPu9mvJgCcm~8 zFepKAaXS!|Z!tgCA<04kSXZP{-EUfL2Z?EThWS)g!DnDc4A4mh!yz66$c4tEECJu@ z7w3P0-vRLBTp>=(4{NIJ>Ux~Xrd68<`0>Ko3#p9B+&wag9|+;Acn(jlRs<2vJop z$TZ6?R+d~WP6^Gwr)AOy?G2H%Iq$?!2sjN`+eO{P=;m=7&q%e5DMz+Ax_%#unNV7O zr1Bf=ykmRo-d7i4zSRjG0m*-CvDI1UR<$Loes4?thZzvYK%ho#0Of$(B?KR5TE{0u zpy=Nkm%!mVy-#Z*CmvVtEw#IXdc_V#5`$B3KLnvrGs&)>x`+fHiY~HMBP~sQzenm{ z#f$4Z?G=;Pbz@)4Z#n-P6A|;K=Dlx){bXo03^Mw;*{+WC+LDi8WXa8M4lwR7rv9!1 znzS4cG)ef5u`j8(P;Lj+p+`;U4a&U&tqC&RFB`LWB6wXD?Di!*BpxZCZRK5(B!8?)}qTif7;m z0IudRn}*PCU>%K`-XDP~TdYbZ<4ElGt?XOnV%>yD*%0(N{{7jO;*B=ZqwUlXo-ArZ z4r1D%*yFB7t9uu;44cW&SwL3UWKkqOr))RzYZAr_BW zDn7Oa>w`24adVe0lm{O=_T$nXem-1JT|5~1zMKH?o4cpw05F;)PLS4G{eytpZDK{a zfmP5-OyYZbUCX0%|IOs-wq;sOJ;TRfOHSFTtXV?q4v86^v2*|^02F&B6VNG6f;4JX zlx9SaK4_wPT$pK+vhcd{`VpWiPH-`SFgaA#mkg6EGuFr*8nL*z-1rQ+5SS)} zp@oRQasF#79I!ieM*iwWNi@aAhPq~~FZ4z;gK;Dn)S3O4TKqJfdh%cXmm8*L6$DqV zG87f9?9eY85@Q2i2NRamM@j@$(eoPFh!rvL)OW2#>IpHyGN07T2GzP!{n@2D2WX+8 z7dBA?uXVXjzwfY0{LKFFBjY%HBw+a+9~&L4v7}!ny1w~*z>(e@lkfJ161`0~M~(TU zNlirgL0cVUiHj)mCBZp&f{D8@BE^-COD!nKR5Yg=07|BeKVCFa&x-$k{FZn+2F0dF z1BVe)84I4v9*hPxJO23z52yugS7`X!c_9Zso4bxbj&aQNhIM1{=|^2E`DS^(qOv-5 zE~;W~cAFvqlZwx~R6A4zAj{48Tp0Ricf$^_+rGdrVk^d#U!c^vF!V>r(!Jq7dFR4Go0`CtX^8AgzJD?B{dEHKHx z%D`bMO=Hk*a+I-OGPxLc6rdmgDN>^y!n8qMb%Pj zC-p_B>V1oxoMMSn4qek(GP1H8y?Z|#D$eDTPZ+taTb8y~*1}nGSd5Rg+qyxg$+?A=I(U$Um2GAGzH-lzL51EnztMqtP({Zl zu5q5)F62nS1|3l|JEQSeni5O7j+gboM=mb+?HU&-me&OZ{iD}DL?p{aMOmn>u1(7* z9#4Wi-qT|@K97Fb<2q~no=GdAN{>}vV7Ru-cBJ+$Oy601@8gpC&@VfA&3baPXV*rl zpZH!#xCnBToYmc|gc;RN*SCrXn@_$ukhAkN{nNm$ukU?OOVYBAE>F%kF8p#1o_%{u z9%113=}K;7nyI7)%oRlrTte~ID!*H{b1b5A^vVt7$(Q;7t0;gY6)vo14TahRYvu*{ zX^+Q2fn)|pcoW2_=M5%14c(<(jPW1tN3QYOg!7&63!$%P}axr z+L1$)yslD{{Z&OK90VYDEInrg4LCeN{Z*o@Yi~Y;dNac7wEL5VT({wGUqPtqp9w)b z-7crKN`r@g>t4@p&rf`Y^Lp;EWuYjrGJc2hWN<-LHwgpFge zB5^pm?5}UOel8;z0xLZ&RJ{BCYlQnmeW;s}F5#i^GD!_!d7g&L<)`%Szajn7D~rqZ z(RUb16&4ozr>8A0%XOf?&8+;g&Aj`Bgmx}IvhXbFE0G5i5tZwU4!T@w)efC5>jqub z_9Byx=%jc8Ck!sXKK{3RpEJH!uF5ompV1v{pzgS@XgE%*O&^u(;tV3DOC2JTYtCj{r2ovm2*vr z!12T@PCX=AcIz~?G;9H%f6Dgf#+JSvLDmVRp(BP*wH*)Jk%DeUNVE6Wq=Df$JvP*= zj>bKe`fYiLWQpR7#9&_4ColW##MIC8`l&jT5Ks)r$CDfv0dN4&<;bbMuilU-;|>Tv z!2{a<(4I7`Tha%;{(r}=^kSQLycPOQ}^Wq-di+e&T z4u#_GQi{7<@#608#ogi0ckrL)Ai1)Wz4ltq%-r+49w_QvJ8hUdd}tQTBx)OScKiv!%L*9R=Wu3VjM_^Doo^x9^+;fAU{nQESs$FIxIxs*vFj8kOZ7=*VMlX9x4WH#oRDC=v0XH@K}zx`q%g)E{lb zRNx+X$GxxIo)Sm{vYn&%$)s+A@V-2;0~yUU(FYrkt#;~$og`-X1hvG!>`YzAB>`{Q z?>21Gtap8Hz&L_i{9i>UzH9O6sD&t&G-r&B@IDEVHTV!p+yxY(opQ{(u!exvBUiuf zi$hQA*HDZgYx+G1MTcu(RzT_YH-2=w9BR_fKeWQXa?1cvd$@dl+VvVO6Iv9nJ}Uxf zn!xBx0z48BoD|J786lW=h&39Cr7pMwIEr~k?aP|$^acymuwZraOOehKC$5*wjPaZ= zbjTJ`cHV6=yyl1puLZ-0(;^?v!0zU#XZ*X=|2UC_!?SJ9A1e0VGyp(uF7td*kaanR zKP{uLPXhz#_wa@cO-||h&rsA+ACj05YS6?rMzsFGyeOa39RRz?$GKeqjx|axUE;Zp z3g=6Pe)G;(>hh*mm0FGK#i70#4X3qY@}jLGO!rmFL3JUYE%nhFlX%*&Z&3V}{jhYl z4tyL;=VF>-xNcKFlMzq5se4Od_dzVurcvc^a_v*F)%)#!FOu>|o*w*!jO?;pBmaA! zKAudu#x^IORd$R(TQu?1{Sdn!dC^bsJOYWCD5Ftr@U&IsFCKMM6tX~snz8|%2w~25 z5o9k109FEu)Vu!Q4gU|Dysgu1I=wu*zz5-YrlQ$Fk`%?S-drgrX!;dNeM#~A^6$ai zuyTY3{n|Zh)=UVkAEaYL`Q@W%X z3tR8?R(_Db;sqt?cACyP=~V{Jxm|zz@5z5$+@gKe z{Q>k*NoDD@KP{kt*}`gBRFHVj+eLfz{j3~j$~g-3a+D*4H;6HQ9E}BC&-EX2+P@ff z<99jC{128ICcGOu%0^VRw->vx9+)Ip$bf!$UHwnfod~m6d;lcNDp$BOq?Y*|vui&xG+!lu(Kn{N z0<8?dj}^4ar|F7Y&lK?fG%)<#&*C90Qy}2an%9fFu=_tTrPgFZqIyq=+bdl;mBD-! z!mWp=Lyb@_%ga--iXFBL?WWzucY3&)7lFfUQP(*SkH&JeZQA%*ddSyqDo-bANL3)D-yotBnXV>e&17){21^7^ELx&x)?((4l%f6ZBxfaKgoz6Ke= zpM%Y8)uY&NndsrK>Dty;l7$dCprkDQpIuLTH#eHr-rnp0DBGKk@aOombx9kHY z$yXFScoVq>=2+d@(An`f8w-Z_kHE}$(^d7SCU%?tV(BNjL^T~N zZ5*^(AzXD%_!A_otz0c>t{@Qth@9EwQ=la!Cmlq9gTz6ParFCeJ|QULlKO0fZwZR5 z{AO{1aQ}<{t{sZ0Cmo0__2`##8{<%e%;*d=<@EG5zdd<8w1S_!fNN~NH!$aStn~Z0 z%@wK_5nE=k6s}q~d`p)AYB4HVKED7kQESHNU=hb+y(HX(5qd|x$>Ri)kwTJ40K7y< z`#2LkUt=n@-Cj8^JVU~$tn58PxkFRxMHC%TsQ=4Jj>Hn5x%2H2=Sn2Ir2!L+IB=}t zXplI$>8x?S2CTrWum8kjJ;REXkh-DHRX;4J!E z311XMgPM>1vc9trg8*OyV|HU|5nlnoC6*3=3cfod86{(1_LmU(LVzSe*{_D?%|0q# z_*+ZUVTY$%4Gx-1r55NV`MC(%C7=2v`F5sn2mR2YfMf#fz&>z{^Ufo@45xhn*5OCj z7CW8-51^I;0CSHR_^ynyKH84xI5}Wf``D7*V*G83icdkCcS7a%U()ex*?+CJFLOyJ z_6F6d>T?xsZxy3E+)0l0Co9Wmx-5oOFQaKUY5sQe!Vv&DGVmyBaNVJsKKAh&Sc#vM9 zP$HJEn<7DR?$7y=*(M(~%3`28-ix1$lm`DBI0|H;KqTzTiE@9kX1UTk17RCb;z1Ee z&>r{8QC7NS^EnGAZ;6-N)U}uao3bWM$oBn0a@d<0tt`B3_W(Yc2g!KJd?E+$tz!56 z7*Q6hVgp@JsR2vm?iaOaO&lDlnndRn5vCl3aXC)31xbgln=frSMA00czYqahy@<N!s60OO>Ojnn0y$}atLr-g4rn2 z72Qu>VCBO`PjmBSjsDX`S1figwzkfoZlQWjc{ygg){kVKEI%$g8}Cqa(O|md>eY5p zC2Z4!>Lm3Yb?jbEI7UzOD_56$4u^< z4=@)`y}ni|^YZm`o6;ET;=h;TvgO5Eb2LWEXo%Eaez@eak3(J(r|q$vSD&q7p2`h z`!L=__Ny8N$CGf`U<+!6=#R1T$z@85fiZ?6ATOh)A zMss~Jig{Q59{h6X7Q5F4f9&ODBL3s~&Kvkrwc#R?w8Wj5$x1C&HD+BJ zu%lE8&N`NfFcnxZ#9rv}p_MeC)P1G<=lW^02BmCbvY{BP8TW?d7`{`m@P!V~nR z>$;BA^w(8cGOR2}AXXIKYeZQ^;R$98J$ugrcms9*S&{CKyUCsTy@+Y&$wrT?<%M3r zL`E_?gYV8}=*{yz;|6<3q&Vj5(kL(Q^h`T|>xb0rr==uhEQ?9$a}H{+oWUs*_v0f+ zw}*qG&v}g?nsOPmxxsilN`eC@@ldd2OE*yt(mr1Y{A3SE5ZFJiKhmx*x?1qNZG%8j zRqtgwaGn}Eji*T|@8~4xB`~ah3*vp8dP~IN*D8&fzsN{3`krCZxx#j2=L(BJ4 zK5$DPub<^G&Rimfx{(2d3=x9}uMFYLept%hU_jVqx04LWu|Xd6Nuv?KzhhqrKxU-oJp32dfg$R*SqP-Ga(bQ;HU+!-6-Q!4UoL{*p(JJz1 z-u1Z4PYOe|xaUxTPxGUF<7~vq;h&Ei#TAodsy`_bT@x$T^5D7%8E0T9Osm98smYrw zM@k1CB94B5s?JZzy(6pnA8ng%Pu*KzFsOhY(JC;{1b_V zBP7U#u2&KoAFd_TQXkCwYo^d^C4?N7>tE@j^D88Cy*7V;`~4wyq!7`_Ep#8VE2OT` z3>yI$_mA*{qx_*7tP9hlvRvHcA9lni2J8PhQ^W|+pT>&5H=z|0(mVH$5b}G&Zf=QM zH)_QFz|?eyNAZQ86n~3n8bTV{g#Z{tjEad5i}#LBJ-5n`x!hoq;N&?y{Pf!7yNsQ< z!65-amzzSLOR?RlP$fVVv>F=$^Gk|SOAa(QWuA6+{O**lm~ut9qxvS`jprX&Pkbm@dn*bZ5~CwW>?=`@+w^M9J^yq0l@&8+fi1(yW$_(Zb~Go{Ztoh;ox z{x^)N*8q8mJ27atAC8~)xLNV$1X`XPYCZmtwzg66UBViT-lK8WDf~LXznG|edVftH zbWj{podjpmj7be(0D(X^28S11)0?z_)%G}e6w;<8`fg$xp1ce_)|lgUS`K$tcQVPa2C|x zCVpy7VE=1t|QMjF@(&ekO|0m06@_`v52 z(tC9fS4q& zRj%oPPH}#nfYFQ=-1bxHJH3-f5-~eIgTF#Sv3+BF-3Q^;+weXp!v&a_-ws_Acjdf~nc9ATZ~8CG zL%KcibG2sm@lFE4K2cdsoqb{-L%NPZ-DPh9L8QfO|C8_9v+>hCn4}SR`F8ElvwYTp z@<3-Nh{wnn*3{PoI&eO4?!w_X72bwVp=N1{)*N#>sgXzin7K$jXBCT0tJ34N{V<@s zl>LYYnGw6{`km?fqJL$7Evsqxvcy`=u99X2607f^RY4=#fhQNJ4HY@D4eQ*M}*aW(#Uf2!p_(Rz7Sq*;=lEDwLIk9dW&Ro~2;{ueitIBX? zC&$)?-RsbK1c^`;w0+ch<{B0w_)+m6Z?)XDw|`43nJ=+*fk{sQj=yrfiYeRgPlZt{ zV~bel05Q39V9`sv=h{!BS8f$i3*qHuI1%r*d7~!>rQ_^?$J(jo>2nnomBpz)-`cNk zg&(hF)pMD)GLY>NO;Ud;hgElN<6X&Q*Lj)C4UC>FzR5X+S#Izg=+RXgO)rh6(OhA1 z{=XL>Y9{TDvIPDG(Ig7cq94b@do1(vgMwb8@uBXS^F38?EC@GzeG}cg$L09!^(ZKSiH1YEOSHz*-~^M_QT&@JOF5+{RqWH*^rQkBAk))u&x#nQM;Cl zB#;>6xzd9-w%N3LL^G9f~1uqb$q|Hyal z*Sx)xuN3F|r}7Hkuuo#&m29s{cxvTJ9Hg4m-Xt={9<3$sM+;=ds z7l$hS`>G)XUU{IOv9|I3;qxzXRDhT-V>`WiEn)e{!i)T-aMNtd-nn_`z%Npx=bS@I zgHtd8*%-4JONLX@#Dd(`YXDar1e9bkj=*+sm)L13LH?UbQy|ueamJ-^om%9U4S5P&maf@4get1&s79kSw-OBduu`Jj}rOM zEG95C?fFWqIPN`jJ|u{Z+wGF3f*o#Z>z(ru5;Y^=J#qJ?e)Fr$wwCwMxh`$D>lYFz zZk{DF!o;YDg+ZU@TK!d)i6l+rGxX+NG^_N|nvoLT$8q0c<||iWWrf_$)(mR)h=2k+ zu2IX&p3gEGEq-h0!V+O0_Gi@ zlxmc$NT7i_4w-Amoe-xtwd|MBchH}y4hSHF00O!Izx5Yb7GgAvqUtsofgARh`^N`J zX{p~D!XQy^zJZ+mPwPVjA4LTn3Y(=ruz%FG30Pw!BJ_6C5*^@l)_-2=8uiqr%`L<}L}xxCuFoHujIy!T~6Q z?{z)I$tfC$i9?QAqhjnXjA0*EOm{DB=w$CY-x>0)H^M`Hf7K=5_pdxD>H$bGeQMzP z?9eJoktiKNo@^tHQQn7R zLa$(r`X|mWq}tFS@ru`C<<-*qt8!SdM26D)^AisXFmp=JD000Kbo=)M054Ow7iTX$ zv#Q;3N#J{7XIvXeG`39CagM08?Ag$GJkx%+=oE0I?{R$)v2w?`4Hh*qv~Uo4S@ZRH zUikX*V`{I5+p3oj&SdkJ308dEu{J;5^26V0TvuNk^sSu<>ZZpg>(^c2(mezAROw{C{sFP zDDpqU7Q;LDqetH!-;p(9$-S>~cJ>=G+c_NOsQcF^-fW?WL)%1MtB}`XRAA-QI)DiT z9R$u_n2*nB7^K}JvP90~vF9f*M6=m;cqwypC(Wa6^cWqMpR&4B*_3r?GaKz;;=8wk zjP}XY?r_6xw~g=S{+pnFhH)MCc$OOI?@XyoP^e&1(?c%q)v4T@XX-ybvN&vxZboBm zOp6?w$>(jvoHKgR#$P?=77%qG^FtqO`lSe{fWnMD;Q?B>!n|n38F}fJw%zRk2g-r@ zR2CbrqEc0o+K`gQv?OTNr}3D6tBO@@lwlg%M**PAAw&t%B$^&UDla_{8+mv-&+}Hl z)RE=`P0YOEwYkqh0dJ|ZnOnfkJI<6ZF4Vp({UBTrEr5S1;AM3%)Io3a1X%Xirq{fJ zzqzH9lVOgweJ!SrR2pm2?y4$@Z^eoa!38AfK7;;^nkRf~Qp0%LE?BYQ?Y*VW`Zb-) zY5SK5ZuCRHob^af=H>*JgK!OvmvP!jk#)|hhZHRMJ#|k%*PS1vvFFv+2oE59#bg?z zlcGe%z+!&5;ds9XrlJs&IjerTd+qqa7=jF=nxV_k(JIj(08vq=TbG1Hzk>jY`I2Vz*2(_XA2lRoEqvG8nw&yLQyVKI&_Q49`v>G#(?AfRKcnbHU&>zq8m zetUlkHtSyVYELP%KwlWDzrJFWF*M{YbsJIB?!^5K04 zuK0!{tMOFc<++8m#(-L<@TA4Hv5vgH0GRHJn=JXr!v+c~0W!ut%>h}g4IDiL;8RD| znGW*x^M%i8X<&iu&eD0tu})ZMz2q7n>|!fD+bq=YHHJ<@<_v5Ykc(`1E^&)QRHstC zYS+}|6eCcTIU4RB_ff0-=b(O`YPCT#ZTso- zP64Y{X_6EF$z$`~aqIehr~O?&!v`xoKD92HU}oX#F-qYB8`KnDpD#Caw@D$GGm;s1 zyY_3hoI3PWnI!=eWE#ZV2jk}HTLwP56*6i0nTG8~U9z_|W+i6H;vJTF)2>PEDof8( zYEK7$EXZPEyWpVP$+?Qr%(nF+!eo0N%c)a+!@AC^^;hkrfBYw&{x^3Ey~j}mjK!HM zN%VG1CYo?*{>- zUTWrFSb)5vm>ny&@HTFMT26vo?EAJrmn_CK{7;)52yvpfi z&uQ_d-d!Q*2|H@2NqG>1V>2M8HmB(mbP7NE#ViOmCN1 z+Qe_sD2!7b%ZbM9w<+#htJhWITC+;aO8=)L4;PEIJ;qXxhb?K$jG|J!Ih*=jo$$F51EbYv!An$$lwK@5yB?Stz~TqB)GaLjgu=4 z8Vsrr>=(7>ADeBSvO6!*GWDIp604U_^?&m)T#bFa2$=nCj>V+xgU?#sS%y3Kb>hy| z;T^6Xa}t6U5Vkcp-f@5tQej@lvk)VCn^Gwq+*Wk+c^fw#IgwH#_E6L%nBNG}ljVP_ zYqfZK3S+xb4e!3e(s}AVPr=zQBu}I3&q+|_4p{zuFbi@j$h)lg$~kz&+@6`6l)Y_g z7@VY1+5N~8E?rDVD$WQk%Z|Vrv9xz}HMFCy3(x^(@cbm_kr8r0`}NEXXM32{#J~sZ zQ{AHr7nAm_27@b}D`Fv+^ut4vRqUK^{>L3pr_=ji_ePNQ8ch+q5H@c^8)5%9{8R-zsUI9d$=-(b0Ao@BpQteSx)Qz{*4 zk6Wg8{qRMd`5)X_AY&uoJ1MC3!s^&ZI zKswCL;i`-u(qazUCLsU$?R;9^i_ANs-6oN$<}MPRY?_XtTT2=RJDN&~nZ?}ScC8Dq_MrQKfN^}8_<2~&%%|Wyw z98R?7mxq?0{dBe_6Tg2Db&hF5i-7iXY5+%WX&$W~;Ko((pB858V z@Z>xVMNNUG<+7_EukvD(y%|enm>jlptdjt#@PI@y;>0XrAyxw{sO*d?VQyOmy~oF= z0%C51MuvDPLE&Fxkd=pN005S7P&JUj9X!9n7;PKOmE>}k0jNKwcqw-=0%2i*1gbNe z{sew}O7+{h%4^!oMmhgUhgGM^-RsDBxFfo3a&<%9+v=mz5sU`9{(CW}0}LD5+tX&& z)L#*mH%r?pPNfMe)y_#!0#YrIVyD4ulZk(x-3U18#PonyMy%>I*uMuJT0-uErlTPX zaL`6yLx#vq5Soa(GR*+@(}63|nThH)t#Asn|0oPlqo7~I6@WN!#@ao85AI_Xu4@H| z)FvKFjz<>MB1#bF5;ssn@nYLt<{IT1w7|wFS@zQ)CPRbg0N>8f`zm|($W{LRks>dCkRnJSU@k$=neq2NxajU zZ;=0r@~aEq_!aTSpMW-P>ZgZulZGG})jb{9!&w=G_469e?;2PeG)LJfIM94y}Pg8tbh}Tt!D6Cndl88_*$usk@ zwN?LO!y^t5W7T+lrzF`;AtU;&;c@XVZIoQM-Y&hB4{`=Smzh=nX9~A;WNi6)>RY0V z&66+WrE;N_9WtHe`}p-~D;d(ir=3*J;YnZBoU;NC%pd@6WV}2)ryz;%S2RdarW-GA zs%hW47;F%98Rn@}hReBR=>^avi2vQd2iY$?$GkXl8m;-lApCoM{6J+52Tz56?^=45WMjXNDP%@%J>eJ#+EO2_o{zC!S( z9^wCfq!cvcpPyr3&3VqrZTC9N1JHj2x+4^6+D94sBu=KeTs^uAf8F|SgbY0xUVr%E ze^c72-Qr*L%)uCo>E#Ejo1_q~NYTf*3j61K5Quyn&A%SohRWTc-SK2NRHmaM?)6sZ ze_K*~oawnn*!u5qT+G3#^PwosiSZJOU^aB?6UY1YR2Ybbkym{bx=tn&30i$-Ezo%? zwJVK&>QV!sqDUxG8)bRB*m1OYJ(%RfQ zNG;ZuM!IVUn;lU?QNo-uxt>eDpEivAi89bZ@{)%%BD$a-+3)L@_*~UM%E!JFw9R!> zz=U~GctY6kPayf@O(yeWkM^zHOo++_zNfF>D<$Y!e+M~^-izB$z=u=J-ApK%!dXp? zezw`GApSB8pYUBom|KIjLg}5JkbbNb10%m{Y3Z%2@nb}$fX9@W&|R)!XTZ?yokX*( zqxxP_!K(7F6^Pxv%F^4JNIU#E%^LY{}@Vg{0y)C>C7Eyi1=N?zJg~1t)6rn2B zbG?+QXvP|FdLV!q@0|<}FOofg^w&+zQqb@SbFd?XAdu5cpOfvWl{Ynp=hict^+Ptf z4(g~mt?8~o|GUr67%lHHJnxPgmXCGH)2m)2m;McvxvO&kHQykq7(Y%(LKV*rG&9AD z50eGl#^Ayd;x>_)|N1kN!{XL(=T1uOQc)TUD6<>i#|8JW!2;7~^*3oPO}RbzsFZN{ z3X2BaF4p=4;)jSd(<+>FVHz4zvznX{=|0IL;9R2~jR)wQ2$wP~fwG4!TMQM5i>}Z~ zC+Z7|1?+&y^=)v*^RQobUpQbA^Uhs~ApbSHsLy?chfeW(2xs)CgJ;1^+;2s*bQ*P@ z3gET)j%B7$RR@aAd@m0+Xy>sPxf(KgG#MB}ZASZt9do`_mn__dZN{W3ZO7Q;cd;4# ziyExymq|3wqi^o}hyfY2{Xwu&;xHE~aSD=1q@s6ptq4k3(Y=Eg;y!@tFLWG~qTCkM z+3$s)qH-$b9z~=``%Va#;gJGC5)mD^08r>RhnC`Fscr^8kulvz>-4E}UR%@{@X1lm9T({kB=h5?Q}YitX8_;Sf=Ijb6WJc-GHpUw|;vhn9R=?wkMJ?2~h zX!{+Yf`OWW3^Mi~LO2IDZm2rg=y&3A|0ljaICRIn3t+>OjaI1Pnk60G`)2CneA#@s=q(PwGV{kvbLGa$zVp zWnd-yWeg}JqH+pOEXDWdJD{Jqx3ZHuw{V!2fBwt&^?i0~Lvx{^^sN@-Z$56dYID2w z26p2rr?d%VzD&{uH$kUG`>ESo&(#V3c2b5N~H5xzp!|^92WuKtw6GO36mJU zZqOgX2K#d(CUA8g?^FXJs6Sy%v};sq>3 zb0ZlGiMDxuX%OpGg=dqJX{5O_?o!>#?b1q zhiP}_wDfnXO_8s0j=$WfbU8e~RBL4K_+R2MX;Yo=2{i~V?D*H$jBI07Or;)Q`Q`QQyDgyln(r`S;AJ3$GlAG5x2v`e0c0n8@cA= z3*Q)CEUgR}&+^^VeR$VpPyO#~(JK3AFX&Mi07=khF_yW;h&`sXKdspWmU|)ky#^D( zW(fYeqxV)>UVl1n%AIVNVwm816t{rRx0f>;+Sda*?Ee9`b6w+$C_Q>-?X(@h4pMd> z%YGLYO1C0heH&~)w7H?+VE;iSP6Hq|fR6YapHeWl8UYh|r!Jx{~vh;;Qc$$p)3)kQSAPFU7Ui)`G}YEHC>n!5b(GuoUCQKF5PzDi1Eb` zXM^9wOL+pbPsWJPQHA<1|M~t%czELcqVr2rGmB^05Co{^XK?Leejx?__8Vd>A}XIe z2usQuBRcMop{zxw@*dGj(klFVa!2a1`6sl&<4SL0;8Xq8C+%UdecC55%4%?A6dXz2 z`+i9Q-cfhcysv*#DU+Sh?hg-2&%sFfF4zT$Xh5f6iS5wfWNKTC71Q=D;+lCO zv{+``KWz%#=Pw^DV7HMWFAx~*MRivrR~K%&2kbLEY#3wnuQsx!n4)U+U;`V+R5GH@ z`(u%yjnh|0+J9f6gF#$E0i2rFTAw#eGtb8*?BZ&cRyEJ#LD0#;FGq4F&p3g)-yc=l zV0xSNm|!KS%@G9b3{ujvdJk^SP?9#MpTJJyD5^Jn{S&B0n2PVaiSs}vdYsUTN6xf;ElU~vE{hPO94emQQ73tB6{aD z`|=7nyIQL~S2RzfQn#kns=dEO*LV2cD8S~KS87vN8S0;sE zf&h@R@;)1qcEF@g;T$IlztNAmUd(YYx-xP8Yv}`3ArLnEP7#!eiqpl<>z9uYOlH!3 zp%}9Opv>^NC@1)po1}u2#Y4?>5{UfIS_(chLHHt&^PeA_0d3INl%mLn?75{c;InKx zvT(Zz(TwhV@+;st7~pgXDq(HhH-Hkro#7-4&?Z7Wmx~4QbMc2(DFJ2q zH4smiqQ9o<^-5IiKES+jCc^(jrXhMNHL3r8_u7*fWEL@_uk|tE+KJYn^(6%U^Jqh& z0s*J+{n)E~e)Ovw_blK{YX=SF(An+I+0a_fCUgbPzhxU32 zmUp^PrtN5Q4MDNHrL`YobVX0QT)5f?zYQM&DCmYHjr#^6TXa;M8Z<3$^x=|FG1^q6 z!}atV1?1SKwPn5L0hzKPAlJN@(tA)VhHY8F_$~C7==C`puMlDrpq%sf@1H3Do5=A+ zf9$N9tx0fFZ@YdrW;Mju@}&h+$al`}Y?zrC8>-p44@g}9Q&Wer0-0$!W*Fd}MtwfB zAhkn2LrN4v@B-2TNMgCjh!1Yl&YEbVD3{YAm3H*FC{l=^VH&YTN$AgvsM3Dj&;TV2 z5R_RO#a(~ph&FKnFWw+zx9fX4{^La8{|K~Ycd&JiRk%u0$iaag{19jHTO%ngrFLto zT`Nt$COla8gOZYtg{^uv>%hFNq<*Ivm2rnjW!rPj%XVewuT3e5V|Ryv>r#}un1Fr! zmt5nKlq`Wez-3$3co?HdVRZ+tN@qDmxw*4W4tJ zChJ#m7{VG}>EM=#-2h+JdAr};_kJ^!H{1#(40UZ^{Ow!&-Knr`%ZJ^X_NTFB+YFUX zh~5+(>6x~%zx0pC0`V9o$Y2MZ|FQd?3Y$o zM*s}ztL}ew;h3BtLN^-z*Ty)isPyly%!-^$$q#|p#O!>@>t$x^7$hPV4*`&L$W@;~ zP))2btUw>+xqs8($bicDiO41QG16+V-dwx;N?v zv~;eQfMRaeoW(Ii7Pl)|uolEtYgc_rg_X|5N5TE5uP07N9V*$^eReV1wYaL@gZJJ= z>J(w$D6NxNK)}Z=<#aRJl8}!Yv3!{p4z>Z4r@q&6`hp%Y|3wl^?z%31Z-3ZxTAqzz zZ~hQK%<8^KZSDEZG|LWC<`+7XPgM9upK}~mClV?vrC9EDxRChpP&zn&Fcdeoki&(W zCRxTOlA*R?;=0wejK4VL!Q?UjmyiUuVj+IzUV>6HSXpW5c;#E7JRTpXAVUEz9@e}b zBWwDd0T|6nu%?zX^j=EIW%i+oWXVbp| zAs`92IqW*`vs7%q=G+-rxWH39L<*27U}B*X7Px`a*+7IcLFqxGA;Z!wDWsrF=tV)f z>U&?#)M0%__+yYOJr8eYL#$oL48S4bpL{T;WFXCd=NV#!fB|^k@B1MG z5>_yrRAzcgp$*3&u2);CI2%A6iRUs@tN50h(n|Hf-wXL0Q#(-e(Y`YwFR zJHHdMJZCo#KWYv4qhg^N{DJR37Cph_nz^|ULvha~F|QNhhDHx1=;F%GcUlck z{y7Iz4?W8s#ipG0so1K@DoRywY(dwJoTequ37++&^&kiOZSUS*5t^AaNzoAN8On|X zt;BRVB+xD+`8WuBeBs}}-%(u?=kMr3E~s!VlUQ`~vl|Zc@0J|7?1p1REcf_S0$+KtfQg0L#P=_VNI#gL zv9x5QH0I$#2M#zj&pTxpO=b?TCmRmHcp0x08Ml_EUE85)4&*abSk9layvPgak+Mw3 z*G2!5O3oa-@omufx(GSI*X+P%xJgW99NbRLCDQ2vE`K6w(P2fxHCyJh^0PH_ATe0e zBN^E|?EA0Pp9Sn&Jgt?&Vs2%{?Gv{UJGuFQxnmEsMgU? zEP-!h=KNa#jzJUeP`F*XCDbzJI>oZwG#;^5{Gt>x5wN@8X?{f2VcKl8N@!)7h;3X6 z-dd?~>$FOwjml~G$JW*q`?7&6MJRf+bUjm-`LGf7zq;F!9iP;Uv?<y%fpb@he3nAaoq9jCrfm^xiB* z2L5FyUPYd^>&W{hdVUvl-cRQAizc*2WxL(y`qva3Ox`j*I5nlqf{uRhcV8>jjY8F`B zG25>6js>7m|6s&;KB!xTHPb0%;!?xavZPG(uGvc3bbZmNahPb_j_U|BNoDa?SV_TR zh`2Df=Q!`5rbu&#l^a_%QIx*`fDO-TxLv|t~IJYWc*jpCPd0Nn@RDptn*_QuKN|98L!A#YFvYSYn zAeb1Dp$jiTeT<-E;aayUj4e;c{Z7pw3OkR0QjR1aEtLXEye+q4i6t!IrTdR^3{~-R zOS?XQ6vlO4xS5V`NL_Bwc|_5$a`d=;twiZWX2zI) zm|92g$YF5=3s#T%i-^K>ei0;&9j8cl92~th?zulImH+~21@Xs;mrM}A-3x*Sy@L|# z{%xiO0POHqE&%2zK<0tLcvyPB*Qqw_XTOy3HdN|)Th39wT%I+8vmY{MZI{#F`0ezy zWZlcwSL#-86krp|Dp+zk=q0V5kH5UN9(*&J2~!NQsh}Pz(c;$^D8RX>JjgK-C~!&y zo>4HMD1cWKALbbfFcHB_&CX~bAi}8U8oNyH_^-L$dav=~C$SoaKV)-B>pjNPm&Q_i zYvzT&Dr080M>SY|*}C(oR(jfg-{k*~rnBsdqidIN4-niTXs{4mgS)%S6WrY)xHAL@ zP9Ow#55e6Tg1fs1cXyjJ=fnF4rf2P5-Mx3+Raa5%l``1Ua9yNk>Z{Gsu*9!GHmc^F zBFM0_UeNS3Wh?)3@teKBd5-GX(xJZH$isnox7BrQp9)4e)75FAAK)*wl?H4HK=TO{ zYHIKwia;-#w(@*Vuo9)x{~DIZJH?j5il`e`?DVp|^;5ZuesZ@8kKi+Tnw!gtZa^<2 z8{2Cg2DDQgYk$?1q+ia$Si z;8#I)xN}cKWgG(i>4fJ_P!4tvUYK}0vS$Dk#W6(TvCZstvFImFCDoWNIEN70bx#i4 z7r5RJ6574i@0O%ETxKJk43BrRh(1JQdEb1_5UsI;+>SXf23_Ysb)O$rpFRC|Bb0da zYDX^HIBfg;`#T?2HSY$^v6fys?sc4e6}Sm=9Gkw>NkMEQgP*tK8zmjV#@M*xp8$nb zlxfA1hv!ME)>lo!H4I>r+b+K<{aqt?fv1 S1*pN*BQl5dje_7CK4k?dVaR=0SPG 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

PBtZ=^@?-PN&IIh!zrlA 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%0DgUg?c|UbxjVMS`!65`P>laAAeMKbj*z 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 z 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

  • ka@g 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�-V7eG*UF0;(+DyyuX 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Φ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%0A@q$3Z4at=>1NOQt{*b&A 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

    UBJaC!l|5u#u&T06odGT%=H6C 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∨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

    G4L5v(|CIri<{uZ}C-PI%Aj>T5B7;Vc|KehBN< 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%0Duyxp#%Vsf0fgC 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 FV1lg$G*$or diff --git a/frontend/dist/assets/index-D17jxULl.css b/frontend/dist/assets/index-D17jxULl.css deleted file mode 100644 index 1abe31025..000000000 --- a/frontend/dist/assets/index-D17jxULl.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 360 0% 97%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 220 60% 50%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}.dark{--background: 0 0% 12%;--foreground: 210 40% 98%;--card: 0 0% 18%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 95%;--primary: 220 60% 50%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-4{width:1rem;height:1rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.5rem\]{height:1.5rem}.h-\[1px\]{height:1px}.h-\[300px\]{height:300px}.h-\[\]{height:}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.min-h-\[200px\]{min-height:200px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-96{width:24rem}.w-\[1\.5rem\]{width:1.5rem}.w-\[120px\]{width:120px}.w-\[150px\]{width:150px}.w-\[180px\]{width:180px}.w-\[1px\]{width:1px}.w-\[200px\]{width:200px}.w-\[240px\]{width:240px}.w-\[350px\]{width:350px}.w-\[360px\]{width:360px}.w-\[80px\]{width:80px}.w-auto{width:auto}.w-full{width:100%}.min-w-12{min-width:3rem}.min-w-16{min-width:4rem}.min-w-\[200px\]{min-width:200px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[350px\]{max-width:350px}.max-w-\[500px\]{max-width:500px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-0{--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes low-bounce{0%,to{transform:translateY(-3%);animation-timing-function:cubicBezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubicBezier(0,0,.2,1)}}.animate-low-bounce{animation:low-bounce .8s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-m-20{scroll-margin:5rem}.grid-flow-row{grid-auto-flow:row}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-baseline{align-content:baseline}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/80{background-color:#000c}.bg-blue-200{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity))}.bg-blue-800{--tw-bg-opacity: 1;background-color:rgb(30 64 175 / var(--tw-bg-opacity))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-green-700{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity))}.bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-800{--tw-bg-opacity: 1;background-color:rgb(107 33 168 / var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.bg-zinc-400{--tw-bg-opacity: 1;background-color:rgb(161 161 170 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-\[url\(\'\/assets\/background-nologo\.jpg\'\)\]{background-image:url(/assets/background-nologo.jpg)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-10\%{--tw-gradient-from-position: 10%}.via-sky-500{--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #0ea5e9 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-30\%{--tw-gradient-via-position: 30%}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-90\%{--tw-gradient-to-position: 90%}.fill-current{fill:currentColor}.fill-none{fill:none}.fill-pink-600{fill:#db2777}.fill-slate-400{fill:#94a3b8}.fill-teal-600{fill:#0d9488}.stroke-current{stroke:currentColor}.stroke-pink-600{stroke:#db2777}.stroke-primary{stroke:hsl(var(--primary))}.stroke-slate-400{stroke:#94a3b8}.stroke-teal-600{stroke:#0d9488}.stroke-white{stroke:#fff}.stroke-2{stroke-width:2}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-12{padding-left:3rem}.pl-8{padding-left:2rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-24{padding-top:6rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.align-text-top{vertical-align:text-top}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-gray-300{--tw-shadow-color: #d1d5db;--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-800\/40{--tw-shadow-color: rgb(30 41 59 / .4);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.animate-out{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.fade-in-80{--tw-enter-opacity: .8}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:mt-0:first-child{margin-top:0}.hover\:border:hover{border-width:1px}.hover\:border-none:hover{border-style:none}.hover\:border-gray-200:hover{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-300:hover{--tw-bg-opacity: 1;background-color:rgb(147 197 253 / var(--tw-bg-opacity))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}.hover\:bg-slate-800:hover{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:stroke-blue-300:hover{stroke:#93c5fd}.hover\:stroke-blue-400:hover{stroke:#60a5fa}.hover\:stroke-primary:hover{stroke:hsl(var(--primary))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-400:hover{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/card:hover .group-hover\/card\:bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.group\/card:hover .group-hover\/card\:bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.group\/card:hover .group-hover\/card\:bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity))}.group\/card:hover .group-hover\/card\:bg-primary{background-color:hsl(var(--primary))}.group\/side:hover .group-hover\/side\:stroke-blue-900{stroke:#1e3a8a}.group\/header:hover .group-hover\/header\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.aria-disabled\:bg-gray-600[aria-disabled=true]{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}:is(.dark .dark\:-rotate-90){--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:rotate-0){--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:scale-0){--tw-scale-x: 0;--tw-scale-y: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:scale-100){--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:border-none){border-style:none}:is(.dark .dark\:border-gray-800){--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}:is(.dark .dark\:border-green-600){--tw-border-opacity: 1;border-color:rgb(22 163 74 / var(--tw-border-opacity))}:is(.dark .dark\:border-primary){border-color:hsl(var(--primary))}:is(.dark .dark\:bg-background){background-color:hsl(var(--background))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-950){--tw-bg-opacity: 1;background-color:rgb(5 46 22 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-slate-800){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:bg-zinc-700\/10){background-color:#3f3f461a}:is(.dark .dark\:bg-zinc-800){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}:is(.dark .dark\:text-green-500){--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}:is(.dark .dark\:text-green-600){--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity))}:is(.dark .dark\:text-primary){color:hsl(var(--primary))}:is(.dark .dark\:text-white){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}:is(.dark .dark\:shadow-lg){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}:is(.dark .dark\:shadow-gray-800){--tw-shadow-color: #1f2937;--tw-shadow: var(--tw-shadow-colored)}:is(.dark .hover\:dark\:border-primary):hover{border-color:hsl(var(--primary))}:is(.dark .dark\:hover\:bg-slate-800:hover){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-zinc-700\/20:hover){background-color:#3f3f4633}:is(.dark .dark\:hover\:bg-zinc-700\/40:hover){background-color:#3f3f4666}:is(.dark .hover\:dark\:bg-gray-700):hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}:is(.dark .dark\:data-\[state\=checked\]\:bg-gray-700[data-state=checked]){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}:is(.dark .dark\:data-\[state\=checked\]\:bg-slate-800[data-state=checked]){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}@media (min-width: 640px){.sm\:mt-0{margin-top:0}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:block{display:block}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:gap-32{gap:8rem}}@media (min-width: 1024px){.lg\:visible{visibility:visible}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-3\/12{width:25%}.lg\:w-96{width:24rem}.lg\:w-\[250px\]{width:250px}.lg\:flex-row{flex-direction:row}.lg\:overflow-y-auto{overflow-y:auto}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width: 1280px){.xl\:table-cell{display:table-cell}}@media (min-width: 1400px){.\32xl\:table-cell{display:table-cell}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px} diff --git a/frontend/dist/assets/index-IouAf6f-.js b/frontend/dist/assets/index-IouAf6f-.js deleted file mode 100644 index 1e8f86c13..000000000 --- a/frontend/dist/assets/index-IouAf6f-.js +++ /dev/null @@ -1,185 +0,0 @@ -function m0(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in e)){const i=Object.getOwnPropertyDescriptor(r,o);i&&Object.defineProperty(e,o,i.get?i:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();var oo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Qa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var KS={exports:{}},Pf={},GS={exports:{}},et={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zc=Symbol.for("react.element"),Nk=Symbol.for("react.portal"),kk=Symbol.for("react.fragment"),Dk=Symbol.for("react.strict_mode"),jk=Symbol.for("react.profiler"),Mk=Symbol.for("react.provider"),Tk=Symbol.for("react.context"),Ik=Symbol.for("react.forward_ref"),Ok=Symbol.for("react.suspense"),Lk=Symbol.for("react.memo"),Ak=Symbol.for("react.lazy"),Zy=Symbol.iterator;function Fk(e){return e===null||typeof e!="object"?null:(e=Zy&&e[Zy]||e["@@iterator"],typeof e=="function"?e:null)}var qS={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},YS=Object.assign,XS={};function Ja(e,t,n){this.props=e,this.context=t,this.refs=XS,this.updater=n||qS}Ja.prototype.isReactComponent={};Ja.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ja.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function QS(){}QS.prototype=Ja.prototype;function v0(e,t,n){this.props=e,this.context=t,this.refs=XS,this.updater=n||qS}var x0=v0.prototype=new QS;x0.constructor=v0;YS(x0,Ja.prototype);x0.isPureReactComponent=!0;var ew=Array.isArray,JS=Object.prototype.hasOwnProperty,y0={current:null},ZS={key:!0,ref:!0,__self:!0,__source:!0};function e2(e,t,n){var r,o={},i=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(i=""+t.key),t)JS.call(t,r)&&!ZS.hasOwnProperty(r)&&(o[r]=t[r]);var c=arguments.length-2;if(c===1)o.children=n;else if(1<c){for(var u=Array(c),f=0;f<c;f++)u[f]=arguments[f+2];o.children=u}if(e&&e.defaultProps)for(r in c=e.defaultProps,c)o[r]===void 0&&(o[r]=c[r]);return{$$typeof:zc,type:e,key:i,ref:a,props:o,_owner:y0.current}}function zk(e,t){return{$$typeof:zc,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function w0(e){return typeof e=="object"&&e!==null&&e.$$typeof===zc}function Uk(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var tw=/\/+/g;function Mh(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Uk(""+e.key):t.toString(36)}function Sd(e,t,n,r,o){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(i){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case zc:case Nk:a=!0}}if(a)return a=e,o=o(a),e=r===""?"."+Mh(a,0):r,ew(o)?(n="",e!=null&&(n=e.replace(tw,"$&/")+"/"),Sd(o,t,n,"",function(f){return f})):o!=null&&(w0(o)&&(o=zk(o,n+(!o.key||a&&a.key===o.key?"":(""+o.key).replace(tw,"$&/")+"/")+e)),t.push(o)),1;if(a=0,r=r===""?".":r+":",ew(e))for(var c=0;c<e.length;c++){i=e[c];var u=r+Mh(i,c);a+=Sd(i,t,n,u,o)}else if(u=Fk(e),typeof u=="function")for(e=u.call(e),c=0;!(i=e.next()).done;)i=i.value,u=r+Mh(i,c++),a+=Sd(i,t,n,u,o);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function Bu(e,t,n){if(e==null)return e;var r=[],o=0;return Sd(e,r,"","",function(i){return t.call(n,i,o++)}),r}function Bk(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Nn={current:null},Cd={transition:null},Vk={ReactCurrentDispatcher:Nn,ReactCurrentBatchConfig:Cd,ReactCurrentOwner:y0};et.Children={map:Bu,forEach:function(e,t,n){Bu(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Bu(e,function(){t++}),t},toArray:function(e){return Bu(e,function(t){return t})||[]},only:function(e){if(!w0(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};et.Component=Ja;et.Fragment=kk;et.Profiler=jk;et.PureComponent=v0;et.StrictMode=Dk;et.Suspense=Ok;et.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Vk;et.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=YS({},e.props),o=e.key,i=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,a=y0.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)JS.call(t,u)&&!ZS.hasOwnProperty(u)&&(r[u]=t[u]===void 0&&c!==void 0?c[u]:t[u])}var u=arguments.length-2;if(u===1)r.children=n;else if(1<u){c=Array(u);for(var f=0;f<u;f++)c[f]=arguments[f+2];r.children=c}return{$$typeof:zc,type:e.type,key:o,ref:i,props:r,_owner:a}};et.createContext=function(e){return e={$$typeof:Tk,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Mk,_context:e},e.Consumer=e};et.createElement=e2;et.createFactory=function(e){var t=e2.bind(null,e);return t.type=e,t};et.createRef=function(){return{current:null}};et.forwardRef=function(e){return{$$typeof:Ik,render:e}};et.isValidElement=w0;et.lazy=function(e){return{$$typeof:Ak,_payload:{_status:-1,_result:e},_init:Bk}};et.memo=function(e,t){return{$$typeof:Lk,type:e,compare:t===void 0?null:t}};et.startTransition=function(e){var t=Cd.transition;Cd.transition={};try{e()}finally{Cd.transition=t}};et.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};et.useCallback=function(e,t){return Nn.current.useCallback(e,t)};et.useContext=function(e){return Nn.current.useContext(e)};et.useDebugValue=function(){};et.useDeferredValue=function(e){return Nn.current.useDeferredValue(e)};et.useEffect=function(e,t){return Nn.current.useEffect(e,t)};et.useId=function(){return Nn.current.useId()};et.useImperativeHandle=function(e,t,n){return Nn.current.useImperativeHandle(e,t,n)};et.useInsertionEffect=function(e,t){return Nn.current.useInsertionEffect(e,t)};et.useLayoutEffect=function(e,t){return Nn.current.useLayoutEffect(e,t)};et.useMemo=function(e,t){return Nn.current.useMemo(e,t)};et.useReducer=function(e,t,n){return Nn.current.useReducer(e,t,n)};et.useRef=function(e){return Nn.current.useRef(e)};et.useState=function(e){return Nn.current.useState(e)};et.useSyncExternalStore=function(e,t,n){return Nn.current.useSyncExternalStore(e,t,n)};et.useTransition=function(){return Nn.current.useTransition()};et.version="18.2.0";GS.exports=et;var p=GS.exports;const ce=Qa(p),b0=m0({__proto__:null,default:ce},[p]);/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Hk=p,Wk=Symbol.for("react.element"),Kk=Symbol.for("react.fragment"),Gk=Object.prototype.hasOwnProperty,qk=Hk.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Yk={key:!0,ref:!0,__self:!0,__source:!0};function t2(e,t,n){var r,o={},i=null,a=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(a=t.ref);for(r in t)Gk.call(t,r)&&!Yk.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)o[r]===void 0&&(o[r]=t[r]);return{$$typeof:Wk,type:e,key:i,ref:a,props:o,_owner:qk.current}}Pf.Fragment=Kk;Pf.jsx=t2;Pf.jsxs=t2;KS.exports=Pf;var d=KS.exports,Tg={},n2={exports:{}},lr={},r2={exports:{}},o2={};/** - * @license React - * scheduler.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(e){function t(U,B){var L=U.length;U.push(B);e:for(;0<L;){var H=L-1>>>1,oe=U[H];if(0<o(oe,B))U[H]=B,U[L]=oe,L=H;else break e}}function n(U){return U.length===0?null:U[0]}function r(U){if(U.length===0)return null;var B=U[0],L=U.pop();if(L!==B){U[0]=L;e:for(var H=0,oe=U.length,ne=oe>>>1;H<ne;){var fe=2*(H+1)-1,Se=U[fe],me=fe+1,pe=U[me];if(0>o(Se,L))me<oe&&0>o(pe,Se)?(U[H]=pe,U[me]=L,H=me):(U[H]=Se,U[fe]=L,H=fe);else if(me<oe&&0>o(pe,L))U[H]=pe,U[me]=L,H=me;else break e}}return B}function o(U,B){var L=U.sortIndex-B.sortIndex;return L!==0?L:U.id-B.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,c=a.now();e.unstable_now=function(){return a.now()-c}}var u=[],f=[],h=1,m=null,v=3,x=!1,w=!1,b=!1,P=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function E(U){for(var B=n(f);B!==null;){if(B.callback===null)r(f);else if(B.startTime<=U)r(f),B.sortIndex=B.expirationTime,t(u,B);else break;B=n(f)}}function _(U){if(b=!1,E(U),!w)if(n(u)!==null)w=!0,W(D);else{var B=n(f);B!==null&&Y(_,B.startTime-U)}}function D(U,B){w=!1,b&&(b=!1,C(O),O=-1),x=!0;var L=v;try{for(E(B),m=n(u);m!==null&&(!(m.expirationTime>B)||U&&!ie());){var H=m.callback;if(typeof H=="function"){m.callback=null,v=m.priorityLevel;var oe=H(m.expirationTime<=B);B=e.unstable_now(),typeof oe=="function"?m.callback=oe:m===n(u)&&r(u),E(B)}else r(u);m=n(u)}if(m!==null)var ne=!0;else{var fe=n(f);fe!==null&&Y(_,fe.startTime-B),ne=!1}return ne}finally{m=null,v=L,x=!1}}var N=!1,j=null,O=-1,V=5,J=-1;function ie(){return!(e.unstable_now()-J<V)}function te(){if(j!==null){var U=e.unstable_now();J=U;var B=!0;try{B=j(!0,U)}finally{B?ge():(N=!1,j=null)}}else N=!1}var ge;if(typeof S=="function")ge=function(){S(te)};else if(typeof MessageChannel<"u"){var le=new MessageChannel,T=le.port2;le.port1.onmessage=te,ge=function(){T.postMessage(null)}}else ge=function(){P(te,0)};function W(U){j=U,N||(N=!0,ge())}function Y(U,B){O=P(function(){U(e.unstable_now())},B)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(U){U.callback=null},e.unstable_continueExecution=function(){w||x||(w=!0,W(D))},e.unstable_forceFrameRate=function(U){0>U||125<U?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):V=0<U?Math.floor(1e3/U):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(U){switch(v){case 1:case 2:case 3:var B=3;break;default:B=v}var L=v;v=B;try{return U()}finally{v=L}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(U,B){switch(U){case 1:case 2:case 3:case 4:case 5:break;default:U=3}var L=v;v=U;try{return B()}finally{v=L}},e.unstable_scheduleCallback=function(U,B,L){var H=e.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0<L?H+L:H):L=H,U){case 1:var oe=-1;break;case 2:oe=250;break;case 5:oe=1073741823;break;case 4:oe=1e4;break;default:oe=5e3}return oe=L+oe,U={id:h++,callback:B,priorityLevel:U,startTime:L,expirationTime:oe,sortIndex:-1},L>H?(U.sortIndex=L,t(f,U),n(u)===null&&U===n(f)&&(b?(C(O),O=-1):b=!0,Y(_,L-H))):(U.sortIndex=oe,t(u,U),w||x||(w=!0,W(D))),U},e.unstable_shouldYield=ie,e.unstable_wrapCallback=function(U){var B=v;return function(){var L=v;v=B;try{return U.apply(this,arguments)}finally{v=L}}}})(o2);r2.exports=o2;var Xk=r2.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var i2=p,sr=Xk;function ae(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s2=new Set,fc={};function ks(e,t){Oa(e,t),Oa(e+"Capture",t)}function Oa(e,t){for(fc[e]=t,e=0;e<t.length;e++)s2.add(t[e])}var Fo=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ig=Object.prototype.hasOwnProperty,Qk=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,nw={},rw={};function Jk(e){return Ig.call(rw,e)?!0:Ig.call(nw,e)?!1:Qk.test(e)?rw[e]=!0:(nw[e]=!0,!1)}function Zk(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function e8(e,t,n,r){if(t===null||typeof t>"u"||Zk(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function kn(e,t,n,r,o,i,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var an={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){an[e]=new kn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];an[t]=new kn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){an[e]=new kn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){an[e]=new kn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){an[e]=new kn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){an[e]=new kn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){an[e]=new kn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){an[e]=new kn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){an[e]=new kn(e,5,!1,e.toLowerCase(),null,!1,!1)});var S0=/[\-:]([a-z])/g;function C0(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(S0,C0);an[t]=new kn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(S0,C0);an[t]=new kn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(S0,C0);an[t]=new kn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){an[e]=new kn(e,1,!1,e.toLowerCase(),null,!1,!1)});an.xlinkHref=new kn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){an[e]=new kn(e,1,!1,e.toLowerCase(),null,!0,!0)});function $0(e,t,n,r){var o=an.hasOwnProperty(t)?an[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(e8(t,n,o,r)&&(n=null),r||o===null?Jk(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=n===null?o.type===3?!1:"":n:(t=o.attributeName,r=o.attributeNamespace,n===null?e.removeAttribute(t):(o=o.type,n=o===3||o===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var Go=i2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Vu=Symbol.for("react.element"),da=Symbol.for("react.portal"),fa=Symbol.for("react.fragment"),P0=Symbol.for("react.strict_mode"),Og=Symbol.for("react.profiler"),a2=Symbol.for("react.provider"),l2=Symbol.for("react.context"),E0=Symbol.for("react.forward_ref"),Lg=Symbol.for("react.suspense"),Ag=Symbol.for("react.suspense_list"),R0=Symbol.for("react.memo"),vi=Symbol.for("react.lazy"),c2=Symbol.for("react.offscreen"),ow=Symbol.iterator;function kl(e){return e===null||typeof e!="object"?null:(e=ow&&e[ow]||e["@@iterator"],typeof e=="function"?e:null)}var Rt=Object.assign,Th;function Gl(e){if(Th===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Th=t&&t[1]||""}return` -`+Th+e}var Ih=!1;function Oh(e,t){if(!e||Ih)return"";Ih=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(f){var r=f}Reflect.construct(e,[],t)}else{try{t.call()}catch(f){r=f}e.call(t.prototype)}else{try{throw Error()}catch(f){r=f}e()}}catch(f){if(f&&r&&typeof f.stack=="string"){for(var o=f.stack.split(` -`),i=r.stack.split(` -`),a=o.length-1,c=i.length-1;1<=a&&0<=c&&o[a]!==i[c];)c--;for(;1<=a&&0<=c;a--,c--)if(o[a]!==i[c]){if(a!==1||c!==1)do if(a--,c--,0>c||o[a]!==i[c]){var u=` -`+o[a].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=a&&0<=c);break}}}finally{Ih=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Gl(e):""}function t8(e){switch(e.tag){case 5:return Gl(e.type);case 16:return Gl("Lazy");case 13:return Gl("Suspense");case 19:return Gl("SuspenseList");case 0:case 2:case 15:return e=Oh(e.type,!1),e;case 11:return e=Oh(e.type.render,!1),e;case 1:return e=Oh(e.type,!0),e;default:return""}}function Fg(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case fa:return"Fragment";case da:return"Portal";case Og:return"Profiler";case P0:return"StrictMode";case Lg:return"Suspense";case Ag:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case l2:return(e.displayName||"Context")+".Consumer";case a2:return(e._context.displayName||"Context")+".Provider";case E0:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case R0:return t=e.displayName||null,t!==null?t:Fg(e.type)||"Memo";case vi:t=e._payload,e=e._init;try{return Fg(e(t))}catch{}}return null}function n8(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Fg(t);case 8:return t===P0?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Mi(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function u2(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function r8(e){var t=u2(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(a){r=""+a,i.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Hu(e){e._valueTracker||(e._valueTracker=r8(e))}function d2(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=u2(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Id(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function zg(e,t){var n=t.checked;return Rt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function iw(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Mi(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function f2(e,t){t=t.checked,t!=null&&$0(e,"checked",t,!1)}function Ug(e,t){f2(e,t);var n=Mi(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Bg(e,t.type,n):t.hasOwnProperty("defaultValue")&&Bg(e,t.type,Mi(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function sw(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Bg(e,t,n){(t!=="number"||Id(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ql=Array.isArray;function Ra(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Mi(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function Vg(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(ae(91));return Rt({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function aw(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(ae(92));if(ql(n)){if(1<n.length)throw Error(ae(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Mi(n)}}function p2(e,t){var n=Mi(t.value),r=Mi(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function lw(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function h2(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Hg(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?h2(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Wu,g2=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Wu=Wu||document.createElement("div"),Wu.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Wu.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function pc(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ql={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},o8=["Webkit","ms","Moz","O"];Object.keys(Ql).forEach(function(e){o8.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ql[t]=Ql[e]})});function m2(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Ql.hasOwnProperty(e)&&Ql[e]?(""+t).trim():t+"px"}function v2(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=m2(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var i8=Rt({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wg(e,t){if(t){if(i8[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(ae(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(ae(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(ae(61))}if(t.style!=null&&typeof t.style!="object")throw Error(ae(62))}}function Kg(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Gg=null;function _0(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var qg=null,_a=null,Na=null;function cw(e){if(e=Vc(e)){if(typeof qg!="function")throw Error(ae(280));var t=e.stateNode;t&&(t=kf(t),qg(e.stateNode,e.type,t))}}function x2(e){_a?Na?Na.push(e):Na=[e]:_a=e}function y2(){if(_a){var e=_a,t=Na;if(Na=_a=null,cw(e),t)for(e=0;e<t.length;e++)cw(t[e])}}function w2(e,t){return e(t)}function b2(){}var Lh=!1;function S2(e,t,n){if(Lh)return e(t,n);Lh=!0;try{return w2(e,t,n)}finally{Lh=!1,(_a!==null||Na!==null)&&(b2(),y2())}}function hc(e,t){var n=e.stateNode;if(n===null)return null;var r=kf(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(ae(231,t,typeof n));return n}var Yg=!1;if(Fo)try{var Dl={};Object.defineProperty(Dl,"passive",{get:function(){Yg=!0}}),window.addEventListener("test",Dl,Dl),window.removeEventListener("test",Dl,Dl)}catch{Yg=!1}function s8(e,t,n,r,o,i,a,c,u){var f=Array.prototype.slice.call(arguments,3);try{t.apply(n,f)}catch(h){this.onError(h)}}var Jl=!1,Od=null,Ld=!1,Xg=null,a8={onError:function(e){Jl=!0,Od=e}};function l8(e,t,n,r,o,i,a,c,u){Jl=!1,Od=null,s8.apply(a8,arguments)}function c8(e,t,n,r,o,i,a,c,u){if(l8.apply(this,arguments),Jl){if(Jl){var f=Od;Jl=!1,Od=null}else throw Error(ae(198));Ld||(Ld=!0,Xg=f)}}function Ds(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function C2(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function uw(e){if(Ds(e)!==e)throw Error(ae(188))}function u8(e){var t=e.alternate;if(!t){if(t=Ds(e),t===null)throw Error(ae(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(o===null)break;var i=o.alternate;if(i===null){if(r=o.return,r!==null){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return uw(o),e;if(i===r)return uw(o),t;i=i.sibling}throw Error(ae(188))}if(n.return!==r.return)n=o,r=i;else{for(var a=!1,c=o.child;c;){if(c===n){a=!0,n=o,r=i;break}if(c===r){a=!0,r=o,n=i;break}c=c.sibling}if(!a){for(c=i.child;c;){if(c===n){a=!0,n=i,r=o;break}if(c===r){a=!0,r=i,n=o;break}c=c.sibling}if(!a)throw Error(ae(189))}}if(n.alternate!==r)throw Error(ae(190))}if(n.tag!==3)throw Error(ae(188));return n.stateNode.current===n?e:t}function $2(e){return e=u8(e),e!==null?P2(e):null}function P2(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=P2(e);if(t!==null)return t;e=e.sibling}return null}var E2=sr.unstable_scheduleCallback,dw=sr.unstable_cancelCallback,d8=sr.unstable_shouldYield,f8=sr.unstable_requestPaint,Lt=sr.unstable_now,p8=sr.unstable_getCurrentPriorityLevel,N0=sr.unstable_ImmediatePriority,R2=sr.unstable_UserBlockingPriority,Ad=sr.unstable_NormalPriority,h8=sr.unstable_LowPriority,_2=sr.unstable_IdlePriority,Ef=null,ao=null;function g8(e){if(ao&&typeof ao.onCommitFiberRoot=="function")try{ao.onCommitFiberRoot(Ef,e,void 0,(e.current.flags&128)===128)}catch{}}var Hr=Math.clz32?Math.clz32:x8,m8=Math.log,v8=Math.LN2;function x8(e){return e>>>=0,e===0?32:31-(m8(e)/v8|0)|0}var Ku=64,Gu=4194304;function Yl(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Fd(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=n&268435455;if(a!==0){var c=a&~o;c!==0?r=Yl(c):(i&=a,i!==0&&(r=Yl(i)))}else a=n&~o,a!==0?r=Yl(a):i!==0&&(r=Yl(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-Hr(t),o=1<<n,r|=e[n],t&=~o;return r}function y8(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function w8(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,i=e.pendingLanes;0<i;){var a=31-Hr(i),c=1<<a,u=o[a];u===-1?(!(c&n)||c&r)&&(o[a]=y8(c,t)):u<=t&&(e.expiredLanes|=c),i&=~c}}function Qg(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function N2(){var e=Ku;return Ku<<=1,!(Ku&4194240)&&(Ku=64),e}function Ah(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Uc(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Hr(t),e[t]=n}function b8(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-Hr(n),i=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~i}}function k0(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Hr(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var ut=0;function k2(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var D2,D0,j2,M2,T2,Jg=!1,qu=[],Pi=null,Ei=null,Ri=null,gc=new Map,mc=new Map,yi=[],S8="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function fw(e,t){switch(e){case"focusin":case"focusout":Pi=null;break;case"dragenter":case"dragleave":Ei=null;break;case"mouseover":case"mouseout":Ri=null;break;case"pointerover":case"pointerout":gc.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":mc.delete(t.pointerId)}}function jl(e,t,n,r,o,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[o]},t!==null&&(t=Vc(t),t!==null&&D0(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function C8(e,t,n,r,o){switch(t){case"focusin":return Pi=jl(Pi,e,t,n,r,o),!0;case"dragenter":return Ei=jl(Ei,e,t,n,r,o),!0;case"mouseover":return Ri=jl(Ri,e,t,n,r,o),!0;case"pointerover":var i=o.pointerId;return gc.set(i,jl(gc.get(i)||null,e,t,n,r,o)),!0;case"gotpointercapture":return i=o.pointerId,mc.set(i,jl(mc.get(i)||null,e,t,n,r,o)),!0}return!1}function I2(e){var t=as(e.target);if(t!==null){var n=Ds(t);if(n!==null){if(t=n.tag,t===13){if(t=C2(n),t!==null){e.blockedOn=t,T2(e.priority,function(){j2(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function $d(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Zg(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Gg=r,n.target.dispatchEvent(r),Gg=null}else return t=Vc(n),t!==null&&D0(t),e.blockedOn=n,!1;t.shift()}return!0}function pw(e,t,n){$d(e)&&n.delete(t)}function $8(){Jg=!1,Pi!==null&&$d(Pi)&&(Pi=null),Ei!==null&&$d(Ei)&&(Ei=null),Ri!==null&&$d(Ri)&&(Ri=null),gc.forEach(pw),mc.forEach(pw)}function Ml(e,t){e.blockedOn===t&&(e.blockedOn=null,Jg||(Jg=!0,sr.unstable_scheduleCallback(sr.unstable_NormalPriority,$8)))}function vc(e){function t(o){return Ml(o,e)}if(0<qu.length){Ml(qu[0],e);for(var n=1;n<qu.length;n++){var r=qu[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Pi!==null&&Ml(Pi,e),Ei!==null&&Ml(Ei,e),Ri!==null&&Ml(Ri,e),gc.forEach(t),mc.forEach(t),n=0;n<yi.length;n++)r=yi[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<yi.length&&(n=yi[0],n.blockedOn===null);)I2(n),n.blockedOn===null&&yi.shift()}var ka=Go.ReactCurrentBatchConfig,zd=!0;function P8(e,t,n,r){var o=ut,i=ka.transition;ka.transition=null;try{ut=1,j0(e,t,n,r)}finally{ut=o,ka.transition=i}}function E8(e,t,n,r){var o=ut,i=ka.transition;ka.transition=null;try{ut=4,j0(e,t,n,r)}finally{ut=o,ka.transition=i}}function j0(e,t,n,r){if(zd){var o=Zg(e,t,n,r);if(o===null)qh(e,t,r,Ud,n),fw(e,r);else if(C8(o,e,t,n,r))r.stopPropagation();else if(fw(e,r),t&4&&-1<S8.indexOf(e)){for(;o!==null;){var i=Vc(o);if(i!==null&&D2(i),i=Zg(e,t,n,r),i===null&&qh(e,t,r,Ud,n),i===o)break;o=i}o!==null&&r.stopPropagation()}else qh(e,t,r,null,n)}}var Ud=null;function Zg(e,t,n,r){if(Ud=null,e=_0(r),e=as(e),e!==null)if(t=Ds(e),t===null)e=null;else if(n=t.tag,n===13){if(e=C2(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Ud=e,null}function O2(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(p8()){case N0:return 1;case R2:return 4;case Ad:case h8:return 16;case _2:return 536870912;default:return 16}default:return 16}}var bi=null,M0=null,Pd=null;function L2(){if(Pd)return Pd;var e,t=M0,n=t.length,r,o="value"in bi?bi.value:bi.textContent,i=o.length;for(e=0;e<n&&t[e]===o[e];e++);var a=n-e;for(r=1;r<=a&&t[n-r]===o[i-r];r++);return Pd=o.slice(e,1<r?1-r:void 0)}function Ed(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Yu(){return!0}function hw(){return!1}function cr(e){function t(n,r,o,i,a){this._reactName=n,this._targetInst=o,this.type=r,this.nativeEvent=i,this.target=a,this.currentTarget=null;for(var c in e)e.hasOwnProperty(c)&&(n=e[c],this[c]=n?n(i):i[c]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Yu:hw,this.isPropagationStopped=hw,this}return Rt(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Yu)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Yu)},persist:function(){},isPersistent:Yu}),t}var Za={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},T0=cr(Za),Bc=Rt({},Za,{view:0,detail:0}),R8=cr(Bc),Fh,zh,Tl,Rf=Rt({},Bc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:I0,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Tl&&(Tl&&e.type==="mousemove"?(Fh=e.screenX-Tl.screenX,zh=e.screenY-Tl.screenY):zh=Fh=0,Tl=e),Fh)},movementY:function(e){return"movementY"in e?e.movementY:zh}}),gw=cr(Rf),_8=Rt({},Rf,{dataTransfer:0}),N8=cr(_8),k8=Rt({},Bc,{relatedTarget:0}),Uh=cr(k8),D8=Rt({},Za,{animationName:0,elapsedTime:0,pseudoElement:0}),j8=cr(D8),M8=Rt({},Za,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),T8=cr(M8),I8=Rt({},Za,{data:0}),mw=cr(I8),O8={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},L8={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},A8={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function F8(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=A8[e])?!!t[e]:!1}function I0(){return F8}var z8=Rt({},Bc,{key:function(e){if(e.key){var t=O8[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Ed(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?L8[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:I0,charCode:function(e){return e.type==="keypress"?Ed(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ed(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),U8=cr(z8),B8=Rt({},Rf,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),vw=cr(B8),V8=Rt({},Bc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:I0}),H8=cr(V8),W8=Rt({},Za,{propertyName:0,elapsedTime:0,pseudoElement:0}),K8=cr(W8),G8=Rt({},Rf,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),q8=cr(G8),Y8=[9,13,27,32],O0=Fo&&"CompositionEvent"in window,Zl=null;Fo&&"documentMode"in document&&(Zl=document.documentMode);var X8=Fo&&"TextEvent"in window&&!Zl,A2=Fo&&(!O0||Zl&&8<Zl&&11>=Zl),xw=" ",yw=!1;function F2(e,t){switch(e){case"keyup":return Y8.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function z2(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var pa=!1;function Q8(e,t){switch(e){case"compositionend":return z2(t);case"keypress":return t.which!==32?null:(yw=!0,xw);case"textInput":return e=t.data,e===xw&&yw?null:e;default:return null}}function J8(e,t){if(pa)return e==="compositionend"||!O0&&F2(e,t)?(e=L2(),Pd=M0=bi=null,pa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return A2&&t.locale!=="ko"?null:t.data;default:return null}}var Z8={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ww(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Z8[e.type]:t==="textarea"}function U2(e,t,n,r){x2(r),t=Bd(t,"onChange"),0<t.length&&(n=new T0("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var ec=null,xc=null;function eD(e){J2(e,0)}function _f(e){var t=ma(e);if(d2(t))return e}function tD(e,t){if(e==="change")return t}var B2=!1;if(Fo){var Bh;if(Fo){var Vh="oninput"in document;if(!Vh){var bw=document.createElement("div");bw.setAttribute("oninput","return;"),Vh=typeof bw.oninput=="function"}Bh=Vh}else Bh=!1;B2=Bh&&(!document.documentMode||9<document.documentMode)}function Sw(){ec&&(ec.detachEvent("onpropertychange",V2),xc=ec=null)}function V2(e){if(e.propertyName==="value"&&_f(xc)){var t=[];U2(t,xc,e,_0(e)),S2(eD,t)}}function nD(e,t,n){e==="focusin"?(Sw(),ec=t,xc=n,ec.attachEvent("onpropertychange",V2)):e==="focusout"&&Sw()}function rD(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return _f(xc)}function oD(e,t){if(e==="click")return _f(t)}function iD(e,t){if(e==="input"||e==="change")return _f(t)}function sD(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var qr=typeof Object.is=="function"?Object.is:sD;function yc(e,t){if(qr(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!Ig.call(t,o)||!qr(e[o],t[o]))return!1}return!0}function Cw(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function $w(e,t){var n=Cw(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Cw(n)}}function H2(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?H2(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function W2(){for(var e=window,t=Id();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Id(e.document)}return t}function L0(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function aD(e){var t=W2(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&H2(n.ownerDocument.documentElement,n)){if(r!==null&&L0(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=$w(n,i);var a=$w(n,r);o&&a&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var lD=Fo&&"documentMode"in document&&11>=document.documentMode,ha=null,em=null,tc=null,tm=!1;function Pw(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;tm||ha==null||ha!==Id(r)||(r=ha,"selectionStart"in r&&L0(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),tc&&yc(tc,r)||(tc=r,r=Bd(em,"onSelect"),0<r.length&&(t=new T0("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=ha)))}function Xu(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var ga={animationend:Xu("Animation","AnimationEnd"),animationiteration:Xu("Animation","AnimationIteration"),animationstart:Xu("Animation","AnimationStart"),transitionend:Xu("Transition","TransitionEnd")},Hh={},K2={};Fo&&(K2=document.createElement("div").style,"AnimationEvent"in window||(delete ga.animationend.animation,delete ga.animationiteration.animation,delete ga.animationstart.animation),"TransitionEvent"in window||delete ga.transitionend.transition);function Nf(e){if(Hh[e])return Hh[e];if(!ga[e])return e;var t=ga[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in K2)return Hh[e]=t[n];return e}var G2=Nf("animationend"),q2=Nf("animationiteration"),Y2=Nf("animationstart"),X2=Nf("transitionend"),Q2=new Map,Ew="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function zi(e,t){Q2.set(e,t),ks(t,[e])}for(var Wh=0;Wh<Ew.length;Wh++){var Kh=Ew[Wh],cD=Kh.toLowerCase(),uD=Kh[0].toUpperCase()+Kh.slice(1);zi(cD,"on"+uD)}zi(G2,"onAnimationEnd");zi(q2,"onAnimationIteration");zi(Y2,"onAnimationStart");zi("dblclick","onDoubleClick");zi("focusin","onFocus");zi("focusout","onBlur");zi(X2,"onTransitionEnd");Oa("onMouseEnter",["mouseout","mouseover"]);Oa("onMouseLeave",["mouseout","mouseover"]);Oa("onPointerEnter",["pointerout","pointerover"]);Oa("onPointerLeave",["pointerout","pointerover"]);ks("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));ks("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ks("onBeforeInput",["compositionend","keypress","textInput","paste"]);ks("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ks("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ks("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Xl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),dD=new Set("cancel close invalid load scroll toggle".split(" ").concat(Xl));function Rw(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,c8(r,t,void 0,e),e.currentTarget=null}function J2(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var a=r.length-1;0<=a;a--){var c=r[a],u=c.instance,f=c.currentTarget;if(c=c.listener,u!==i&&o.isPropagationStopped())break e;Rw(o,c,f),i=u}else for(a=0;a<r.length;a++){if(c=r[a],u=c.instance,f=c.currentTarget,c=c.listener,u!==i&&o.isPropagationStopped())break e;Rw(o,c,f),i=u}}}if(Ld)throw e=Xg,Ld=!1,Xg=null,e}function wt(e,t){var n=t[sm];n===void 0&&(n=t[sm]=new Set);var r=e+"__bubble";n.has(r)||(Z2(t,e,2,!1),n.add(r))}function Gh(e,t,n){var r=0;t&&(r|=4),Z2(n,e,r,t)}var Qu="_reactListening"+Math.random().toString(36).slice(2);function wc(e){if(!e[Qu]){e[Qu]=!0,s2.forEach(function(n){n!=="selectionchange"&&(dD.has(n)||Gh(n,!1,e),Gh(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Qu]||(t[Qu]=!0,Gh("selectionchange",!1,t))}}function Z2(e,t,n,r){switch(O2(t)){case 1:var o=P8;break;case 4:o=E8;break;default:o=j0}n=o.bind(null,t,n,e),o=void 0,!Yg||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function qh(e,t,n,r,o){var i=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var a=r.tag;if(a===3||a===4){var c=r.stateNode.containerInfo;if(c===o||c.nodeType===8&&c.parentNode===o)break;if(a===4)for(a=r.return;a!==null;){var u=a.tag;if((u===3||u===4)&&(u=a.stateNode.containerInfo,u===o||u.nodeType===8&&u.parentNode===o))return;a=a.return}for(;c!==null;){if(a=as(c),a===null)return;if(u=a.tag,u===5||u===6){r=i=a;continue e}c=c.parentNode}}r=r.return}S2(function(){var f=i,h=_0(n),m=[];e:{var v=Q2.get(e);if(v!==void 0){var x=T0,w=e;switch(e){case"keypress":if(Ed(n)===0)break e;case"keydown":case"keyup":x=U8;break;case"focusin":w="focus",x=Uh;break;case"focusout":w="blur",x=Uh;break;case"beforeblur":case"afterblur":x=Uh;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":x=gw;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":x=N8;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":x=H8;break;case G2:case q2:case Y2:x=j8;break;case X2:x=K8;break;case"scroll":x=R8;break;case"wheel":x=q8;break;case"copy":case"cut":case"paste":x=T8;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":x=vw}var b=(t&4)!==0,P=!b&&e==="scroll",C=b?v!==null?v+"Capture":null:v;b=[];for(var S=f,E;S!==null;){E=S;var _=E.stateNode;if(E.tag===5&&_!==null&&(E=_,C!==null&&(_=hc(S,C),_!=null&&b.push(bc(S,_,E)))),P)break;S=S.return}0<b.length&&(v=new x(v,w,null,n,h),m.push({event:v,listeners:b}))}}if(!(t&7)){e:{if(v=e==="mouseover"||e==="pointerover",x=e==="mouseout"||e==="pointerout",v&&n!==Gg&&(w=n.relatedTarget||n.fromElement)&&(as(w)||w[zo]))break e;if((x||v)&&(v=h.window===h?h:(v=h.ownerDocument)?v.defaultView||v.parentWindow:window,x?(w=n.relatedTarget||n.toElement,x=f,w=w?as(w):null,w!==null&&(P=Ds(w),w!==P||w.tag!==5&&w.tag!==6)&&(w=null)):(x=null,w=f),x!==w)){if(b=gw,_="onMouseLeave",C="onMouseEnter",S="mouse",(e==="pointerout"||e==="pointerover")&&(b=vw,_="onPointerLeave",C="onPointerEnter",S="pointer"),P=x==null?v:ma(x),E=w==null?v:ma(w),v=new b(_,S+"leave",x,n,h),v.target=P,v.relatedTarget=E,_=null,as(h)===f&&(b=new b(C,S+"enter",w,n,h),b.target=E,b.relatedTarget=P,_=b),P=_,x&&w)t:{for(b=x,C=w,S=0,E=b;E;E=ta(E))S++;for(E=0,_=C;_;_=ta(_))E++;for(;0<S-E;)b=ta(b),S--;for(;0<E-S;)C=ta(C),E--;for(;S--;){if(b===C||C!==null&&b===C.alternate)break t;b=ta(b),C=ta(C)}b=null}else b=null;x!==null&&_w(m,v,x,b,!1),w!==null&&P!==null&&_w(m,P,w,b,!0)}}e:{if(v=f?ma(f):window,x=v.nodeName&&v.nodeName.toLowerCase(),x==="select"||x==="input"&&v.type==="file")var D=tD;else if(ww(v))if(B2)D=iD;else{D=rD;var N=nD}else(x=v.nodeName)&&x.toLowerCase()==="input"&&(v.type==="checkbox"||v.type==="radio")&&(D=oD);if(D&&(D=D(e,f))){U2(m,D,n,h);break e}N&&N(e,v,f),e==="focusout"&&(N=v._wrapperState)&&N.controlled&&v.type==="number"&&Bg(v,"number",v.value)}switch(N=f?ma(f):window,e){case"focusin":(ww(N)||N.contentEditable==="true")&&(ha=N,em=f,tc=null);break;case"focusout":tc=em=ha=null;break;case"mousedown":tm=!0;break;case"contextmenu":case"mouseup":case"dragend":tm=!1,Pw(m,n,h);break;case"selectionchange":if(lD)break;case"keydown":case"keyup":Pw(m,n,h)}var j;if(O0)e:{switch(e){case"compositionstart":var O="onCompositionStart";break e;case"compositionend":O="onCompositionEnd";break e;case"compositionupdate":O="onCompositionUpdate";break e}O=void 0}else pa?F2(e,n)&&(O="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(O="onCompositionStart");O&&(A2&&n.locale!=="ko"&&(pa||O!=="onCompositionStart"?O==="onCompositionEnd"&&pa&&(j=L2()):(bi=h,M0="value"in bi?bi.value:bi.textContent,pa=!0)),N=Bd(f,O),0<N.length&&(O=new mw(O,e,null,n,h),m.push({event:O,listeners:N}),j?O.data=j:(j=z2(n),j!==null&&(O.data=j)))),(j=X8?Q8(e,n):J8(e,n))&&(f=Bd(f,"onBeforeInput"),0<f.length&&(h=new mw("onBeforeInput","beforeinput",null,n,h),m.push({event:h,listeners:f}),h.data=j))}J2(m,t)})}function bc(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Bd(e,t){for(var n=t+"Capture",r=[];e!==null;){var o=e,i=o.stateNode;o.tag===5&&i!==null&&(o=i,i=hc(e,n),i!=null&&r.unshift(bc(e,i,o)),i=hc(e,t),i!=null&&r.push(bc(e,i,o))),e=e.return}return r}function ta(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function _w(e,t,n,r,o){for(var i=t._reactName,a=[];n!==null&&n!==r;){var c=n,u=c.alternate,f=c.stateNode;if(u!==null&&u===r)break;c.tag===5&&f!==null&&(c=f,o?(u=hc(n,i),u!=null&&a.unshift(bc(n,u,c))):o||(u=hc(n,i),u!=null&&a.push(bc(n,u,c)))),n=n.return}a.length!==0&&e.push({event:t,listeners:a})}var fD=/\r\n?/g,pD=/\u0000|\uFFFD/g;function Nw(e){return(typeof e=="string"?e:""+e).replace(fD,` -`).replace(pD,"")}function Ju(e,t,n){if(t=Nw(t),Nw(e)!==t&&n)throw Error(ae(425))}function Vd(){}var nm=null,rm=null;function om(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var im=typeof setTimeout=="function"?setTimeout:void 0,hD=typeof clearTimeout=="function"?clearTimeout:void 0,kw=typeof Promise=="function"?Promise:void 0,gD=typeof queueMicrotask=="function"?queueMicrotask:typeof kw<"u"?function(e){return kw.resolve(null).then(e).catch(mD)}:im;function mD(e){setTimeout(function(){throw e})}function Yh(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"){if(r===0){e.removeChild(o),vc(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=o}while(n);vc(t)}function _i(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Dw(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var el=Math.random().toString(36).slice(2),io="__reactFiber$"+el,Sc="__reactProps$"+el,zo="__reactContainer$"+el,sm="__reactEvents$"+el,vD="__reactListeners$"+el,xD="__reactHandles$"+el;function as(e){var t=e[io];if(t)return t;for(var n=e.parentNode;n;){if(t=n[zo]||n[io]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Dw(e);e!==null;){if(n=e[io])return n;e=Dw(e)}return t}e=n,n=e.parentNode}return null}function Vc(e){return e=e[io]||e[zo],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function ma(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(ae(33))}function kf(e){return e[Sc]||null}var am=[],va=-1;function Ui(e){return{current:e}}function bt(e){0>va||(e.current=am[va],am[va]=null,va--)}function mt(e,t){va++,am[va]=e.current,e.current=t}var Ti={},vn=Ui(Ti),Bn=Ui(!1),vs=Ti;function La(e,t){var n=e.type.contextTypes;if(!n)return Ti;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Vn(e){return e=e.childContextTypes,e!=null}function Hd(){bt(Bn),bt(vn)}function jw(e,t,n){if(vn.current!==Ti)throw Error(ae(168));mt(vn,t),mt(Bn,n)}function eC(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(ae(108,n8(e)||"Unknown",o));return Rt({},n,r)}function Wd(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ti,vs=vn.current,mt(vn,e),mt(Bn,Bn.current),!0}function Mw(e,t,n){var r=e.stateNode;if(!r)throw Error(ae(169));n?(e=eC(e,t,vs),r.__reactInternalMemoizedMergedChildContext=e,bt(Bn),bt(vn),mt(vn,e)):bt(Bn),mt(Bn,n)}var Do=null,Df=!1,Xh=!1;function tC(e){Do===null?Do=[e]:Do.push(e)}function yD(e){Df=!0,tC(e)}function Bi(){if(!Xh&&Do!==null){Xh=!0;var e=0,t=ut;try{var n=Do;for(ut=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Do=null,Df=!1}catch(o){throw Do!==null&&(Do=Do.slice(e+1)),E2(N0,Bi),o}finally{ut=t,Xh=!1}}return null}var xa=[],ya=0,Kd=null,Gd=0,Sr=[],Cr=0,xs=null,jo=1,Mo="";function os(e,t){xa[ya++]=Gd,xa[ya++]=Kd,Kd=e,Gd=t}function nC(e,t,n){Sr[Cr++]=jo,Sr[Cr++]=Mo,Sr[Cr++]=xs,xs=e;var r=jo;e=Mo;var o=32-Hr(r)-1;r&=~(1<<o),n+=1;var i=32-Hr(t)+o;if(30<i){var a=o-o%5;i=(r&(1<<a)-1).toString(32),r>>=a,o-=a,jo=1<<32-Hr(t)+o|n<<o|r,Mo=i+e}else jo=1<<i|n<<o|r,Mo=e}function A0(e){e.return!==null&&(os(e,1),nC(e,1,0))}function F0(e){for(;e===Kd;)Kd=xa[--ya],xa[ya]=null,Gd=xa[--ya],xa[ya]=null;for(;e===xs;)xs=Sr[--Cr],Sr[Cr]=null,Mo=Sr[--Cr],Sr[Cr]=null,jo=Sr[--Cr],Sr[Cr]=null}var rr=null,nr=null,Ct=!1,Vr=null;function rC(e,t){var n=$r(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Tw(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,rr=e,nr=_i(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,rr=e,nr=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=xs!==null?{id:jo,overflow:Mo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=$r(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,rr=e,nr=null,!0):!1;default:return!1}}function lm(e){return(e.mode&1)!==0&&(e.flags&128)===0}function cm(e){if(Ct){var t=nr;if(t){var n=t;if(!Tw(e,t)){if(lm(e))throw Error(ae(418));t=_i(n.nextSibling);var r=rr;t&&Tw(e,t)?rC(r,n):(e.flags=e.flags&-4097|2,Ct=!1,rr=e)}}else{if(lm(e))throw Error(ae(418));e.flags=e.flags&-4097|2,Ct=!1,rr=e}}}function Iw(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;rr=e}function Zu(e){if(e!==rr)return!1;if(!Ct)return Iw(e),Ct=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!om(e.type,e.memoizedProps)),t&&(t=nr)){if(lm(e))throw oC(),Error(ae(418));for(;t;)rC(e,t),t=_i(t.nextSibling)}if(Iw(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(ae(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){nr=_i(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}nr=null}}else nr=rr?_i(e.stateNode.nextSibling):null;return!0}function oC(){for(var e=nr;e;)e=_i(e.nextSibling)}function Aa(){nr=rr=null,Ct=!1}function z0(e){Vr===null?Vr=[e]:Vr.push(e)}var wD=Go.ReactCurrentBatchConfig;function zr(e,t){if(e&&e.defaultProps){t=Rt({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}var qd=Ui(null),Yd=null,wa=null,U0=null;function B0(){U0=wa=Yd=null}function V0(e){var t=qd.current;bt(qd),e._currentValue=t}function um(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Da(e,t){Yd=e,U0=wa=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(zn=!0),e.firstContext=null)}function Er(e){var t=e._currentValue;if(U0!==e)if(e={context:e,memoizedValue:t,next:null},wa===null){if(Yd===null)throw Error(ae(308));wa=e,Yd.dependencies={lanes:0,firstContext:e}}else wa=wa.next=e;return t}var ls=null;function H0(e){ls===null?ls=[e]:ls.push(e)}function iC(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,H0(t)):(n.next=o.next,o.next=n),t.interleaved=n,Uo(e,r)}function Uo(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var xi=!1;function W0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sC(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function To(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ni(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,rt&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Uo(e,n)}return o=r.interleaved,o===null?(t.next=t,H0(r)):(t.next=o.next,o.next=t),r.interleaved=t,Uo(e,n)}function Rd(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,k0(e,n)}}function Ow(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=a:i=i.next=a,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xd(e,t,n,r){var o=e.updateQueue;xi=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,c=o.shared.pending;if(c!==null){o.shared.pending=null;var u=c,f=u.next;u.next=null,a===null?i=f:a.next=f,a=u;var h=e.alternate;h!==null&&(h=h.updateQueue,c=h.lastBaseUpdate,c!==a&&(c===null?h.firstBaseUpdate=f:c.next=f,h.lastBaseUpdate=u))}if(i!==null){var m=o.baseState;a=0,h=f=u=null,c=i;do{var v=c.lane,x=c.eventTime;if((r&v)===v){h!==null&&(h=h.next={eventTime:x,lane:0,tag:c.tag,payload:c.payload,callback:c.callback,next:null});e:{var w=e,b=c;switch(v=t,x=n,b.tag){case 1:if(w=b.payload,typeof w=="function"){m=w.call(x,m,v);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=b.payload,v=typeof w=="function"?w.call(x,m,v):w,v==null)break e;m=Rt({},m,v);break e;case 2:xi=!0}}c.callback!==null&&c.lane!==0&&(e.flags|=64,v=o.effects,v===null?o.effects=[c]:v.push(c))}else x={eventTime:x,lane:v,tag:c.tag,payload:c.payload,callback:c.callback,next:null},h===null?(f=h=x,u=m):h=h.next=x,a|=v;if(c=c.next,c===null){if(c=o.shared.pending,c===null)break;v=c,c=v.next,v.next=null,o.lastBaseUpdate=v,o.shared.pending=null}}while(!0);if(h===null&&(u=m),o.baseState=u,o.firstBaseUpdate=f,o.lastBaseUpdate=h,t=o.shared.interleaved,t!==null){o=t;do a|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);ws|=a,e.lanes=a,e.memoizedState=m}}function Lw(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=n,typeof o!="function")throw Error(ae(191,o));o.call(r)}}}var aC=new i2.Component().refs;function dm(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Rt({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var jf={isMounted:function(e){return(e=e._reactInternals)?Ds(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=En(),o=Di(e),i=To(r,o);i.payload=t,n!=null&&(i.callback=n),t=Ni(e,i,o),t!==null&&(Wr(t,e,o,r),Rd(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=En(),o=Di(e),i=To(r,o);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ni(e,i,o),t!==null&&(Wr(t,e,o,r),Rd(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=En(),r=Di(e),o=To(n,r);o.tag=2,t!=null&&(o.callback=t),t=Ni(e,o,r),t!==null&&(Wr(t,e,r,n),Rd(t,e,r))}};function Aw(e,t,n,r,o,i,a){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,i,a):t.prototype&&t.prototype.isPureReactComponent?!yc(n,r)||!yc(o,i):!0}function lC(e,t,n){var r=!1,o=Ti,i=t.contextType;return typeof i=="object"&&i!==null?i=Er(i):(o=Vn(t)?vs:vn.current,r=t.contextTypes,i=(r=r!=null)?La(e,o):Ti),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=jf,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function Fw(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&jf.enqueueReplaceState(t,t.state,null)}function fm(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=aC,W0(e);var i=t.contextType;typeof i=="object"&&i!==null?o.context=Er(i):(i=Vn(t)?vs:vn.current,o.context=La(e,i)),o.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(dm(e,t,i,n),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&jf.enqueueReplaceState(o,o.state,null),Xd(e,n,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Il(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(ae(309));var r=n.stateNode}if(!r)throw Error(ae(147,e));var o=r,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(a){var c=o.refs;c===aC&&(c=o.refs={}),a===null?delete c[i]:c[i]=a},t._stringRef=i,t)}if(typeof e!="string")throw Error(ae(284));if(!n._owner)throw Error(ae(290,e))}return e}function ed(e,t){throw e=Object.prototype.toString.call(t),Error(ae(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function zw(e){var t=e._init;return t(e._payload)}function cC(e){function t(C,S){if(e){var E=C.deletions;E===null?(C.deletions=[S],C.flags|=16):E.push(S)}}function n(C,S){if(!e)return null;for(;S!==null;)t(C,S),S=S.sibling;return null}function r(C,S){for(C=new Map;S!==null;)S.key!==null?C.set(S.key,S):C.set(S.index,S),S=S.sibling;return C}function o(C,S){return C=ji(C,S),C.index=0,C.sibling=null,C}function i(C,S,E){return C.index=E,e?(E=C.alternate,E!==null?(E=E.index,E<S?(C.flags|=2,S):E):(C.flags|=2,S)):(C.flags|=1048576,S)}function a(C){return e&&C.alternate===null&&(C.flags|=2),C}function c(C,S,E,_){return S===null||S.tag!==6?(S=rg(E,C.mode,_),S.return=C,S):(S=o(S,E),S.return=C,S)}function u(C,S,E,_){var D=E.type;return D===fa?h(C,S,E.props.children,_,E.key):S!==null&&(S.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===vi&&zw(D)===S.type)?(_=o(S,E.props),_.ref=Il(C,S,E),_.return=C,_):(_=Md(E.type,E.key,E.props,null,C.mode,_),_.ref=Il(C,S,E),_.return=C,_)}function f(C,S,E,_){return S===null||S.tag!==4||S.stateNode.containerInfo!==E.containerInfo||S.stateNode.implementation!==E.implementation?(S=og(E,C.mode,_),S.return=C,S):(S=o(S,E.children||[]),S.return=C,S)}function h(C,S,E,_,D){return S===null||S.tag!==7?(S=gs(E,C.mode,_,D),S.return=C,S):(S=o(S,E),S.return=C,S)}function m(C,S,E){if(typeof S=="string"&&S!==""||typeof S=="number")return S=rg(""+S,C.mode,E),S.return=C,S;if(typeof S=="object"&&S!==null){switch(S.$$typeof){case Vu:return E=Md(S.type,S.key,S.props,null,C.mode,E),E.ref=Il(C,null,S),E.return=C,E;case da:return S=og(S,C.mode,E),S.return=C,S;case vi:var _=S._init;return m(C,_(S._payload),E)}if(ql(S)||kl(S))return S=gs(S,C.mode,E,null),S.return=C,S;ed(C,S)}return null}function v(C,S,E,_){var D=S!==null?S.key:null;if(typeof E=="string"&&E!==""||typeof E=="number")return D!==null?null:c(C,S,""+E,_);if(typeof E=="object"&&E!==null){switch(E.$$typeof){case Vu:return E.key===D?u(C,S,E,_):null;case da:return E.key===D?f(C,S,E,_):null;case vi:return D=E._init,v(C,S,D(E._payload),_)}if(ql(E)||kl(E))return D!==null?null:h(C,S,E,_,null);ed(C,E)}return null}function x(C,S,E,_,D){if(typeof _=="string"&&_!==""||typeof _=="number")return C=C.get(E)||null,c(S,C,""+_,D);if(typeof _=="object"&&_!==null){switch(_.$$typeof){case Vu:return C=C.get(_.key===null?E:_.key)||null,u(S,C,_,D);case da:return C=C.get(_.key===null?E:_.key)||null,f(S,C,_,D);case vi:var N=_._init;return x(C,S,E,N(_._payload),D)}if(ql(_)||kl(_))return C=C.get(E)||null,h(S,C,_,D,null);ed(S,_)}return null}function w(C,S,E,_){for(var D=null,N=null,j=S,O=S=0,V=null;j!==null&&O<E.length;O++){j.index>O?(V=j,j=null):V=j.sibling;var J=v(C,j,E[O],_);if(J===null){j===null&&(j=V);break}e&&j&&J.alternate===null&&t(C,j),S=i(J,S,O),N===null?D=J:N.sibling=J,N=J,j=V}if(O===E.length)return n(C,j),Ct&&os(C,O),D;if(j===null){for(;O<E.length;O++)j=m(C,E[O],_),j!==null&&(S=i(j,S,O),N===null?D=j:N.sibling=j,N=j);return Ct&&os(C,O),D}for(j=r(C,j);O<E.length;O++)V=x(j,C,O,E[O],_),V!==null&&(e&&V.alternate!==null&&j.delete(V.key===null?O:V.key),S=i(V,S,O),N===null?D=V:N.sibling=V,N=V);return e&&j.forEach(function(ie){return t(C,ie)}),Ct&&os(C,O),D}function b(C,S,E,_){var D=kl(E);if(typeof D!="function")throw Error(ae(150));if(E=D.call(E),E==null)throw Error(ae(151));for(var N=D=null,j=S,O=S=0,V=null,J=E.next();j!==null&&!J.done;O++,J=E.next()){j.index>O?(V=j,j=null):V=j.sibling;var ie=v(C,j,J.value,_);if(ie===null){j===null&&(j=V);break}e&&j&&ie.alternate===null&&t(C,j),S=i(ie,S,O),N===null?D=ie:N.sibling=ie,N=ie,j=V}if(J.done)return n(C,j),Ct&&os(C,O),D;if(j===null){for(;!J.done;O++,J=E.next())J=m(C,J.value,_),J!==null&&(S=i(J,S,O),N===null?D=J:N.sibling=J,N=J);return Ct&&os(C,O),D}for(j=r(C,j);!J.done;O++,J=E.next())J=x(j,C,O,J.value,_),J!==null&&(e&&J.alternate!==null&&j.delete(J.key===null?O:J.key),S=i(J,S,O),N===null?D=J:N.sibling=J,N=J);return e&&j.forEach(function(te){return t(C,te)}),Ct&&os(C,O),D}function P(C,S,E,_){if(typeof E=="object"&&E!==null&&E.type===fa&&E.key===null&&(E=E.props.children),typeof E=="object"&&E!==null){switch(E.$$typeof){case Vu:e:{for(var D=E.key,N=S;N!==null;){if(N.key===D){if(D=E.type,D===fa){if(N.tag===7){n(C,N.sibling),S=o(N,E.props.children),S.return=C,C=S;break e}}else if(N.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===vi&&zw(D)===N.type){n(C,N.sibling),S=o(N,E.props),S.ref=Il(C,N,E),S.return=C,C=S;break e}n(C,N);break}else t(C,N);N=N.sibling}E.type===fa?(S=gs(E.props.children,C.mode,_,E.key),S.return=C,C=S):(_=Md(E.type,E.key,E.props,null,C.mode,_),_.ref=Il(C,S,E),_.return=C,C=_)}return a(C);case da:e:{for(N=E.key;S!==null;){if(S.key===N)if(S.tag===4&&S.stateNode.containerInfo===E.containerInfo&&S.stateNode.implementation===E.implementation){n(C,S.sibling),S=o(S,E.children||[]),S.return=C,C=S;break e}else{n(C,S);break}else t(C,S);S=S.sibling}S=og(E,C.mode,_),S.return=C,C=S}return a(C);case vi:return N=E._init,P(C,S,N(E._payload),_)}if(ql(E))return w(C,S,E,_);if(kl(E))return b(C,S,E,_);ed(C,E)}return typeof E=="string"&&E!==""||typeof E=="number"?(E=""+E,S!==null&&S.tag===6?(n(C,S.sibling),S=o(S,E),S.return=C,C=S):(n(C,S),S=rg(E,C.mode,_),S.return=C,C=S),a(C)):n(C,S)}return P}var Fa=cC(!0),uC=cC(!1),Hc={},lo=Ui(Hc),Cc=Ui(Hc),$c=Ui(Hc);function cs(e){if(e===Hc)throw Error(ae(174));return e}function K0(e,t){switch(mt($c,t),mt(Cc,e),mt(lo,Hc),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Hg(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Hg(t,e)}bt(lo),mt(lo,t)}function za(){bt(lo),bt(Cc),bt($c)}function dC(e){cs($c.current);var t=cs(lo.current),n=Hg(t,e.type);t!==n&&(mt(Cc,e),mt(lo,n))}function G0(e){Cc.current===e&&(bt(lo),bt(Cc))}var Pt=Ui(0);function Qd(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Qh=[];function q0(){for(var e=0;e<Qh.length;e++)Qh[e]._workInProgressVersionPrimary=null;Qh.length=0}var _d=Go.ReactCurrentDispatcher,Jh=Go.ReactCurrentBatchConfig,ys=0,Et=null,Kt=null,Jt=null,Jd=!1,nc=!1,Pc=0,bD=0;function dn(){throw Error(ae(321))}function Y0(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!qr(e[n],t[n]))return!1;return!0}function X0(e,t,n,r,o,i){if(ys=i,Et=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,_d.current=e===null||e.memoizedState===null?PD:ED,e=n(r,o),nc){i=0;do{if(nc=!1,Pc=0,25<=i)throw Error(ae(301));i+=1,Jt=Kt=null,t.updateQueue=null,_d.current=RD,e=n(r,o)}while(nc)}if(_d.current=Zd,t=Kt!==null&&Kt.next!==null,ys=0,Jt=Kt=Et=null,Jd=!1,t)throw Error(ae(300));return e}function Q0(){var e=Pc!==0;return Pc=0,e}function ro(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Jt===null?Et.memoizedState=Jt=e:Jt=Jt.next=e,Jt}function Rr(){if(Kt===null){var e=Et.alternate;e=e!==null?e.memoizedState:null}else e=Kt.next;var t=Jt===null?Et.memoizedState:Jt.next;if(t!==null)Jt=t,Kt=e;else{if(e===null)throw Error(ae(310));Kt=e,e={memoizedState:Kt.memoizedState,baseState:Kt.baseState,baseQueue:Kt.baseQueue,queue:Kt.queue,next:null},Jt===null?Et.memoizedState=Jt=e:Jt=Jt.next=e}return Jt}function Ec(e,t){return typeof t=="function"?t(e):t}function Zh(e){var t=Rr(),n=t.queue;if(n===null)throw Error(ae(311));n.lastRenderedReducer=e;var r=Kt,o=r.baseQueue,i=n.pending;if(i!==null){if(o!==null){var a=o.next;o.next=i.next,i.next=a}r.baseQueue=o=i,n.pending=null}if(o!==null){i=o.next,r=r.baseState;var c=a=null,u=null,f=i;do{var h=f.lane;if((ys&h)===h)u!==null&&(u=u.next={lane:0,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null}),r=f.hasEagerState?f.eagerState:e(r,f.action);else{var m={lane:h,action:f.action,hasEagerState:f.hasEagerState,eagerState:f.eagerState,next:null};u===null?(c=u=m,a=r):u=u.next=m,Et.lanes|=h,ws|=h}f=f.next}while(f!==null&&f!==i);u===null?a=r:u.next=c,qr(r,t.memoizedState)||(zn=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=u,n.lastRenderedState=r}if(e=n.interleaved,e!==null){o=e;do i=o.lane,Et.lanes|=i,ws|=i,o=o.next;while(o!==e)}else o===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function eg(e){var t=Rr(),n=t.queue;if(n===null)throw Error(ae(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(o!==null){n.pending=null;var a=o=o.next;do i=e(i,a.action),a=a.next;while(a!==o);qr(i,t.memoizedState)||(zn=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function fC(){}function pC(e,t){var n=Et,r=Rr(),o=t(),i=!qr(r.memoizedState,o);if(i&&(r.memoizedState=o,zn=!0),r=r.queue,J0(mC.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||Jt!==null&&Jt.memoizedState.tag&1){if(n.flags|=2048,Rc(9,gC.bind(null,n,r,o,t),void 0,null),en===null)throw Error(ae(349));ys&30||hC(n,t,o)}return o}function hC(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Et.updateQueue,t===null?(t={lastEffect:null,stores:null},Et.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function gC(e,t,n,r){t.value=n,t.getSnapshot=r,vC(t)&&xC(e)}function mC(e,t,n){return n(function(){vC(t)&&xC(e)})}function vC(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!qr(e,n)}catch{return!0}}function xC(e){var t=Uo(e,1);t!==null&&Wr(t,e,1,-1)}function Uw(e){var t=ro();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ec,lastRenderedState:e},t.queue=e,e=e.dispatch=$D.bind(null,Et,e),[t.memoizedState,e]}function Rc(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Et.updateQueue,t===null?(t={lastEffect:null,stores:null},Et.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function yC(){return Rr().memoizedState}function Nd(e,t,n,r){var o=ro();Et.flags|=e,o.memoizedState=Rc(1|t,n,void 0,r===void 0?null:r)}function Mf(e,t,n,r){var o=Rr();r=r===void 0?null:r;var i=void 0;if(Kt!==null){var a=Kt.memoizedState;if(i=a.destroy,r!==null&&Y0(r,a.deps)){o.memoizedState=Rc(t,n,i,r);return}}Et.flags|=e,o.memoizedState=Rc(1|t,n,i,r)}function Bw(e,t){return Nd(8390656,8,e,t)}function J0(e,t){return Mf(2048,8,e,t)}function wC(e,t){return Mf(4,2,e,t)}function bC(e,t){return Mf(4,4,e,t)}function SC(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function CC(e,t,n){return n=n!=null?n.concat([e]):null,Mf(4,4,SC.bind(null,t,e),n)}function Z0(){}function $C(e,t){var n=Rr();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Y0(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function PC(e,t){var n=Rr();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Y0(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function EC(e,t,n){return ys&21?(qr(n,t)||(n=N2(),Et.lanes|=n,ws|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,zn=!0),e.memoizedState=n)}function SD(e,t){var n=ut;ut=n!==0&&4>n?n:4,e(!0);var r=Jh.transition;Jh.transition={};try{e(!1),t()}finally{ut=n,Jh.transition=r}}function RC(){return Rr().memoizedState}function CD(e,t,n){var r=Di(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},_C(e))NC(t,n);else if(n=iC(e,t,n,r),n!==null){var o=En();Wr(n,e,r,o),kC(n,t,r)}}function $D(e,t,n){var r=Di(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(_C(e))NC(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var a=t.lastRenderedState,c=i(a,n);if(o.hasEagerState=!0,o.eagerState=c,qr(c,a)){var u=t.interleaved;u===null?(o.next=o,H0(t)):(o.next=u.next,u.next=o),t.interleaved=o;return}}catch{}finally{}n=iC(e,t,o,r),n!==null&&(o=En(),Wr(n,e,r,o),kC(n,t,r))}}function _C(e){var t=e.alternate;return e===Et||t!==null&&t===Et}function NC(e,t){nc=Jd=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function kC(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,k0(e,n)}}var Zd={readContext:Er,useCallback:dn,useContext:dn,useEffect:dn,useImperativeHandle:dn,useInsertionEffect:dn,useLayoutEffect:dn,useMemo:dn,useReducer:dn,useRef:dn,useState:dn,useDebugValue:dn,useDeferredValue:dn,useTransition:dn,useMutableSource:dn,useSyncExternalStore:dn,useId:dn,unstable_isNewReconciler:!1},PD={readContext:Er,useCallback:function(e,t){return ro().memoizedState=[e,t===void 0?null:t],e},useContext:Er,useEffect:Bw,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Nd(4194308,4,SC.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Nd(4194308,4,e,t)},useInsertionEffect:function(e,t){return Nd(4,2,e,t)},useMemo:function(e,t){var n=ro();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ro();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=CD.bind(null,Et,e),[r.memoizedState,e]},useRef:function(e){var t=ro();return e={current:e},t.memoizedState=e},useState:Uw,useDebugValue:Z0,useDeferredValue:function(e){return ro().memoizedState=e},useTransition:function(){var e=Uw(!1),t=e[0];return e=SD.bind(null,e[1]),ro().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Et,o=ro();if(Ct){if(n===void 0)throw Error(ae(407));n=n()}else{if(n=t(),en===null)throw Error(ae(349));ys&30||hC(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Bw(mC.bind(null,r,i,e),[e]),r.flags|=2048,Rc(9,gC.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=ro(),t=en.identifierPrefix;if(Ct){var n=Mo,r=jo;n=(r&~(1<<32-Hr(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Pc++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=bD++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ED={readContext:Er,useCallback:$C,useContext:Er,useEffect:J0,useImperativeHandle:CC,useInsertionEffect:wC,useLayoutEffect:bC,useMemo:PC,useReducer:Zh,useRef:yC,useState:function(){return Zh(Ec)},useDebugValue:Z0,useDeferredValue:function(e){var t=Rr();return EC(t,Kt.memoizedState,e)},useTransition:function(){var e=Zh(Ec)[0],t=Rr().memoizedState;return[e,t]},useMutableSource:fC,useSyncExternalStore:pC,useId:RC,unstable_isNewReconciler:!1},RD={readContext:Er,useCallback:$C,useContext:Er,useEffect:J0,useImperativeHandle:CC,useInsertionEffect:wC,useLayoutEffect:bC,useMemo:PC,useReducer:eg,useRef:yC,useState:function(){return eg(Ec)},useDebugValue:Z0,useDeferredValue:function(e){var t=Rr();return Kt===null?t.memoizedState=e:EC(t,Kt.memoizedState,e)},useTransition:function(){var e=eg(Ec)[0],t=Rr().memoizedState;return[e,t]},useMutableSource:fC,useSyncExternalStore:pC,useId:RC,unstable_isNewReconciler:!1};function Ua(e,t){try{var n="",r=t;do n+=t8(r),r=r.return;while(r);var o=n}catch(i){o=` -Error generating stack: `+i.message+` -`+i.stack}return{value:e,source:t,stack:o,digest:null}}function tg(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function pm(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var _D=typeof WeakMap=="function"?WeakMap:Map;function DC(e,t,n){n=To(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){tf||(tf=!0,Cm=r),pm(e,t)},n}function jC(e,t,n){n=To(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){pm(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){pm(e,t),typeof r!="function"&&(ki===null?ki=new Set([this]):ki.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),n}function Vw(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new _D;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=BD.bind(null,e,t,n),t.then(e,e))}function Hw(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ww(e,t,n,r,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=To(-1,1),t.tag=2,Ni(n,t,1))),n.lanes|=1),e)}var ND=Go.ReactCurrentOwner,zn=!1;function Pn(e,t,n,r){t.child=e===null?uC(t,null,n,r):Fa(t,e.child,n,r)}function Kw(e,t,n,r,o){n=n.render;var i=t.ref;return Da(t,o),r=X0(e,t,n,r,i,o),n=Q0(),e!==null&&!zn?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Bo(e,t,o)):(Ct&&n&&A0(t),t.flags|=1,Pn(e,t,r,o),t.child)}function Gw(e,t,n,r,o){if(e===null){var i=n.type;return typeof i=="function"&&!av(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,MC(e,t,i,r,o)):(e=Md(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&o)){var a=i.memoizedProps;if(n=n.compare,n=n!==null?n:yc,n(a,r)&&e.ref===t.ref)return Bo(e,t,o)}return t.flags|=1,e=ji(i,r),e.ref=t.ref,e.return=t,t.child=e}function MC(e,t,n,r,o){if(e!==null){var i=e.memoizedProps;if(yc(i,r)&&e.ref===t.ref)if(zn=!1,t.pendingProps=r=i,(e.lanes&o)!==0)e.flags&131072&&(zn=!0);else return t.lanes=e.lanes,Bo(e,t,o)}return hm(e,t,n,r,o)}function TC(e,t,n){var r=t.pendingProps,o=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},mt(Sa,Zn),Zn|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,mt(Sa,Zn),Zn|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,mt(Sa,Zn),Zn|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,mt(Sa,Zn),Zn|=r;return Pn(e,t,o,n),t.child}function IC(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function hm(e,t,n,r,o){var i=Vn(n)?vs:vn.current;return i=La(t,i),Da(t,o),n=X0(e,t,n,r,i,o),r=Q0(),e!==null&&!zn?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Bo(e,t,o)):(Ct&&r&&A0(t),t.flags|=1,Pn(e,t,n,o),t.child)}function qw(e,t,n,r,o){if(Vn(n)){var i=!0;Wd(t)}else i=!1;if(Da(t,o),t.stateNode===null)kd(e,t),lC(t,n,r),fm(t,n,r,o),r=!0;else if(e===null){var a=t.stateNode,c=t.memoizedProps;a.props=c;var u=a.context,f=n.contextType;typeof f=="object"&&f!==null?f=Er(f):(f=Vn(n)?vs:vn.current,f=La(t,f));var h=n.getDerivedStateFromProps,m=typeof h=="function"||typeof a.getSnapshotBeforeUpdate=="function";m||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(c!==r||u!==f)&&Fw(t,a,r,f),xi=!1;var v=t.memoizedState;a.state=v,Xd(t,r,a,o),u=t.memoizedState,c!==r||v!==u||Bn.current||xi?(typeof h=="function"&&(dm(t,n,h,r),u=t.memoizedState),(c=xi||Aw(t,n,c,r,v,u,f))?(m||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),a.props=r,a.state=u,a.context=f,r=c):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,sC(e,t),c=t.memoizedProps,f=t.type===t.elementType?c:zr(t.type,c),a.props=f,m=t.pendingProps,v=a.context,u=n.contextType,typeof u=="object"&&u!==null?u=Er(u):(u=Vn(n)?vs:vn.current,u=La(t,u));var x=n.getDerivedStateFromProps;(h=typeof x=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(c!==m||v!==u)&&Fw(t,a,r,u),xi=!1,v=t.memoizedState,a.state=v,Xd(t,r,a,o);var w=t.memoizedState;c!==m||v!==w||Bn.current||xi?(typeof x=="function"&&(dm(t,n,x,r),w=t.memoizedState),(f=xi||Aw(t,n,f,r,v,w,u)||!1)?(h||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(r,w,u),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(r,w,u)),typeof a.componentDidUpdate=="function"&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof a.componentDidUpdate!="function"||c===e.memoizedProps&&v===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&v===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=w),a.props=r,a.state=w,a.context=u,r=f):(typeof a.componentDidUpdate!="function"||c===e.memoizedProps&&v===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||c===e.memoizedProps&&v===e.memoizedState||(t.flags|=1024),r=!1)}return gm(e,t,n,r,i,o)}function gm(e,t,n,r,o,i){IC(e,t);var a=(t.flags&128)!==0;if(!r&&!a)return o&&Mw(t,n,!1),Bo(e,t,i);r=t.stateNode,ND.current=t;var c=a&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&a?(t.child=Fa(t,e.child,null,i),t.child=Fa(t,null,c,i)):Pn(e,t,c,i),t.memoizedState=r.state,o&&Mw(t,n,!0),t.child}function OC(e){var t=e.stateNode;t.pendingContext?jw(e,t.pendingContext,t.pendingContext!==t.context):t.context&&jw(e,t.context,!1),K0(e,t.containerInfo)}function Yw(e,t,n,r,o){return Aa(),z0(o),t.flags|=256,Pn(e,t,n,r),t.child}var mm={dehydrated:null,treeContext:null,retryLane:0};function vm(e){return{baseLanes:e,cachePool:null,transitions:null}}function LC(e,t,n){var r=t.pendingProps,o=Pt.current,i=!1,a=(t.flags&128)!==0,c;if((c=a)||(c=e!==null&&e.memoizedState===null?!1:(o&2)!==0),c?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),mt(Pt,o&1),e===null)return cm(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(a=r.children,e=r.fallback,i?(r=t.mode,i=t.child,a={mode:"hidden",children:a},!(r&1)&&i!==null?(i.childLanes=0,i.pendingProps=a):i=Of(a,r,0,null),e=gs(e,r,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=vm(n),t.memoizedState=mm,e):ev(t,a));if(o=e.memoizedState,o!==null&&(c=o.dehydrated,c!==null))return kD(e,t,a,r,c,o,n);if(i){i=r.fallback,a=t.mode,o=e.child,c=o.sibling;var u={mode:"hidden",children:r.children};return!(a&1)&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=u,t.deletions=null):(r=ji(o,u),r.subtreeFlags=o.subtreeFlags&14680064),c!==null?i=ji(c,i):(i=gs(i,a,n,null),i.flags|=2),i.return=t,r.return=t,r.sibling=i,t.child=r,r=i,i=t.child,a=e.child.memoizedState,a=a===null?vm(n):{baseLanes:a.baseLanes|n,cachePool:null,transitions:a.transitions},i.memoizedState=a,i.childLanes=e.childLanes&~n,t.memoizedState=mm,r}return i=e.child,e=i.sibling,r=ji(i,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ev(e,t){return t=Of({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function td(e,t,n,r){return r!==null&&z0(r),Fa(t,e.child,null,n),e=ev(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function kD(e,t,n,r,o,i,a){if(n)return t.flags&256?(t.flags&=-257,r=tg(Error(ae(422))),td(e,t,a,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Of({mode:"visible",children:r.children},o,0,null),i=gs(i,o,a,null),i.flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,t.mode&1&&Fa(t,e.child,null,a),t.child.memoizedState=vm(a),t.memoizedState=mm,i);if(!(t.mode&1))return td(e,t,a,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var c=r.dgst;return r=c,i=Error(ae(419)),r=tg(i,r,void 0),td(e,t,a,r)}if(c=(a&e.childLanes)!==0,zn||c){if(r=en,r!==null){switch(a&-a){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=o&(r.suspendedLanes|a)?0:o,o!==0&&o!==i.retryLane&&(i.retryLane=o,Uo(e,o),Wr(r,e,o,-1))}return sv(),r=tg(Error(ae(421))),td(e,t,a,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=VD.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,nr=_i(o.nextSibling),rr=t,Ct=!0,Vr=null,e!==null&&(Sr[Cr++]=jo,Sr[Cr++]=Mo,Sr[Cr++]=xs,jo=e.id,Mo=e.overflow,xs=t),t=ev(t,r.children),t.flags|=4096,t)}function Xw(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),um(e.return,t,n)}function ng(e,t,n,r,o){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o)}function AC(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(Pn(e,t,r.children,n),r=Pt.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Xw(e,n,t);else if(e.tag===19)Xw(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(mt(Pt,r),!(t.mode&1))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Qd(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),ng(t,!1,o,n,i);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Qd(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}ng(t,!0,n,null,i);break;case"together":ng(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function kd(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Bo(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ws|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(ae(153));if(t.child!==null){for(e=t.child,n=ji(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ji(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function DD(e,t,n){switch(t.tag){case 3:OC(t),Aa();break;case 5:dC(t);break;case 1:Vn(t.type)&&Wd(t);break;case 4:K0(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;mt(qd,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(mt(Pt,Pt.current&1),t.flags|=128,null):n&t.child.childLanes?LC(e,t,n):(mt(Pt,Pt.current&1),e=Bo(e,t,n),e!==null?e.sibling:null);mt(Pt,Pt.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return AC(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),mt(Pt,Pt.current),r)break;return null;case 22:case 23:return t.lanes=0,TC(e,t,n)}return Bo(e,t,n)}var FC,xm,zC,UC;FC=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};xm=function(){};zC=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,cs(lo.current);var i=null;switch(n){case"input":o=zg(e,o),r=zg(e,r),i=[];break;case"select":o=Rt({},o,{value:void 0}),r=Rt({},r,{value:void 0}),i=[];break;case"textarea":o=Vg(e,o),r=Vg(e,r),i=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Vd)}Wg(n,r);var a;n=null;for(f in o)if(!r.hasOwnProperty(f)&&o.hasOwnProperty(f)&&o[f]!=null)if(f==="style"){var c=o[f];for(a in c)c.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else f!=="dangerouslySetInnerHTML"&&f!=="children"&&f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&f!=="autoFocus"&&(fc.hasOwnProperty(f)?i||(i=[]):(i=i||[]).push(f,null));for(f in r){var u=r[f];if(c=o!=null?o[f]:void 0,r.hasOwnProperty(f)&&u!==c&&(u!=null||c!=null))if(f==="style")if(c){for(a in c)!c.hasOwnProperty(a)||u&&u.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in u)u.hasOwnProperty(a)&&c[a]!==u[a]&&(n||(n={}),n[a]=u[a])}else n||(i||(i=[]),i.push(f,n)),n=u;else f==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,c=c?c.__html:void 0,u!=null&&c!==u&&(i=i||[]).push(f,u)):f==="children"?typeof u!="string"&&typeof u!="number"||(i=i||[]).push(f,""+u):f!=="suppressContentEditableWarning"&&f!=="suppressHydrationWarning"&&(fc.hasOwnProperty(f)?(u!=null&&f==="onScroll"&&wt("scroll",e),i||c===u||(i=[])):(i=i||[]).push(f,u))}n&&(i=i||[]).push("style",n);var f=i;(t.updateQueue=f)&&(t.flags|=4)}};UC=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ol(e,t){if(!Ct)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function fn(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function jD(e,t,n){var r=t.pendingProps;switch(F0(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return fn(t),null;case 1:return Vn(t.type)&&Hd(),fn(t),null;case 3:return r=t.stateNode,za(),bt(Bn),bt(vn),q0(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Zu(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Vr!==null&&(Em(Vr),Vr=null))),xm(e,t),fn(t),null;case 5:G0(t);var o=cs($c.current);if(n=t.type,e!==null&&t.stateNode!=null)zC(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(ae(166));return fn(t),null}if(e=cs(lo.current),Zu(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[io]=t,r[Sc]=i,e=(t.mode&1)!==0,n){case"dialog":wt("cancel",r),wt("close",r);break;case"iframe":case"object":case"embed":wt("load",r);break;case"video":case"audio":for(o=0;o<Xl.length;o++)wt(Xl[o],r);break;case"source":wt("error",r);break;case"img":case"image":case"link":wt("error",r),wt("load",r);break;case"details":wt("toggle",r);break;case"input":iw(r,i),wt("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},wt("invalid",r);break;case"textarea":aw(r,i),wt("invalid",r)}Wg(n,i),o=null;for(var a in i)if(i.hasOwnProperty(a)){var c=i[a];a==="children"?typeof c=="string"?r.textContent!==c&&(i.suppressHydrationWarning!==!0&&Ju(r.textContent,c,e),o=["children",c]):typeof c=="number"&&r.textContent!==""+c&&(i.suppressHydrationWarning!==!0&&Ju(r.textContent,c,e),o=["children",""+c]):fc.hasOwnProperty(a)&&c!=null&&a==="onScroll"&&wt("scroll",r)}switch(n){case"input":Hu(r),sw(r,i,!0);break;case"textarea":Hu(r),lw(r);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(r.onclick=Vd)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{a=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=h2(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=a.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=a.createElement(n,{is:r.is}):(e=a.createElement(n),n==="select"&&(a=e,r.multiple?a.multiple=!0:r.size&&(a.size=r.size))):e=a.createElementNS(e,n),e[io]=t,e[Sc]=r,FC(e,t,!1,!1),t.stateNode=e;e:{switch(a=Kg(n,r),n){case"dialog":wt("cancel",e),wt("close",e),o=r;break;case"iframe":case"object":case"embed":wt("load",e),o=r;break;case"video":case"audio":for(o=0;o<Xl.length;o++)wt(Xl[o],e);o=r;break;case"source":wt("error",e),o=r;break;case"img":case"image":case"link":wt("error",e),wt("load",e),o=r;break;case"details":wt("toggle",e),o=r;break;case"input":iw(e,r),o=zg(e,r),wt("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=Rt({},r,{value:void 0}),wt("invalid",e);break;case"textarea":aw(e,r),o=Vg(e,r),wt("invalid",e);break;default:o=r}Wg(n,o),c=o;for(i in c)if(c.hasOwnProperty(i)){var u=c[i];i==="style"?v2(e,u):i==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&g2(e,u)):i==="children"?typeof u=="string"?(n!=="textarea"||u!=="")&&pc(e,u):typeof u=="number"&&pc(e,""+u):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(fc.hasOwnProperty(i)?u!=null&&i==="onScroll"&&wt("scroll",e):u!=null&&$0(e,i,u,a))}switch(n){case"input":Hu(e),sw(e,r,!1);break;case"textarea":Hu(e),lw(e);break;case"option":r.value!=null&&e.setAttribute("value",""+Mi(r.value));break;case"select":e.multiple=!!r.multiple,i=r.value,i!=null?Ra(e,!!r.multiple,i,!1):r.defaultValue!=null&&Ra(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=Vd)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return fn(t),null;case 6:if(e&&t.stateNode!=null)UC(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(ae(166));if(n=cs($c.current),cs(lo.current),Zu(t)){if(r=t.stateNode,n=t.memoizedProps,r[io]=t,(i=r.nodeValue!==n)&&(e=rr,e!==null))switch(e.tag){case 3:Ju(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Ju(r.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[io]=t,t.stateNode=r}return fn(t),null;case 13:if(bt(Pt),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ct&&nr!==null&&t.mode&1&&!(t.flags&128))oC(),Aa(),t.flags|=98560,i=!1;else if(i=Zu(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(ae(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(ae(317));i[io]=t}else Aa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;fn(t),i=!1}else Vr!==null&&(Em(Vr),Vr=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||Pt.current&1?Gt===0&&(Gt=3):sv())),t.updateQueue!==null&&(t.flags|=4),fn(t),null);case 4:return za(),xm(e,t),e===null&&wc(t.stateNode.containerInfo),fn(t),null;case 10:return V0(t.type._context),fn(t),null;case 17:return Vn(t.type)&&Hd(),fn(t),null;case 19:if(bt(Pt),i=t.memoizedState,i===null)return fn(t),null;if(r=(t.flags&128)!==0,a=i.rendering,a===null)if(r)Ol(i,!1);else{if(Gt!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=Qd(e),a!==null){for(t.flags|=128,Ol(i,!1),r=a.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)i=n,e=r,i.flags&=14680066,a=i.alternate,a===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=a.childLanes,i.lanes=a.lanes,i.child=a.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=a.memoizedProps,i.memoizedState=a.memoizedState,i.updateQueue=a.updateQueue,i.type=a.type,e=a.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return mt(Pt,Pt.current&1|2),t.child}e=e.sibling}i.tail!==null&&Lt()>Ba&&(t.flags|=128,r=!0,Ol(i,!1),t.lanes=4194304)}else{if(!r)if(e=Qd(a),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ol(i,!0),i.tail===null&&i.tailMode==="hidden"&&!a.alternate&&!Ct)return fn(t),null}else 2*Lt()-i.renderingStartTime>Ba&&n!==1073741824&&(t.flags|=128,r=!0,Ol(i,!1),t.lanes=4194304);i.isBackwards?(a.sibling=t.child,t.child=a):(n=i.last,n!==null?n.sibling=a:t.child=a,i.last=a)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Lt(),t.sibling=null,n=Pt.current,mt(Pt,r?n&1|2:n&1),t):(fn(t),null);case 22:case 23:return iv(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Zn&1073741824&&(fn(t),t.subtreeFlags&6&&(t.flags|=8192)):fn(t),null;case 24:return null;case 25:return null}throw Error(ae(156,t.tag))}function MD(e,t){switch(F0(t),t.tag){case 1:return Vn(t.type)&&Hd(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return za(),bt(Bn),bt(vn),q0(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return G0(t),null;case 13:if(bt(Pt),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(ae(340));Aa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return bt(Pt),null;case 4:return za(),null;case 10:return V0(t.type._context),null;case 22:case 23:return iv(),null;case 24:return null;default:return null}}var nd=!1,gn=!1,TD=typeof WeakSet=="function"?WeakSet:Set,xe=null;function ba(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Dt(e,t,r)}else n.current=null}function ym(e,t,n){try{n()}catch(r){Dt(e,t,r)}}var Qw=!1;function ID(e,t){if(nm=zd,e=W2(),L0(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var a=0,c=-1,u=-1,f=0,h=0,m=e,v=null;t:for(;;){for(var x;m!==n||o!==0&&m.nodeType!==3||(c=a+o),m!==i||r!==0&&m.nodeType!==3||(u=a+r),m.nodeType===3&&(a+=m.nodeValue.length),(x=m.firstChild)!==null;)v=m,m=x;for(;;){if(m===e)break t;if(v===n&&++f===o&&(c=a),v===i&&++h===r&&(u=a),(x=m.nextSibling)!==null)break;m=v,v=m.parentNode}m=x}n=c===-1||u===-1?null:{start:c,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(rm={focusedElem:e,selectionRange:n},zd=!1,xe=t;xe!==null;)if(t=xe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,xe=e;else for(;xe!==null;){t=xe;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var b=w.memoizedProps,P=w.memoizedState,C=t.stateNode,S=C.getSnapshotBeforeUpdate(t.elementType===t.type?b:zr(t.type,b),P);C.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var E=t.stateNode.containerInfo;E.nodeType===1?E.textContent="":E.nodeType===9&&E.documentElement&&E.removeChild(E.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(ae(163))}}catch(_){Dt(t,t.return,_)}if(e=t.sibling,e!==null){e.return=t.return,xe=e;break}xe=t.return}return w=Qw,Qw=!1,w}function rc(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&ym(t,n,i)}o=o.next}while(o!==r)}}function Tf(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function wm(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function BC(e){var t=e.alternate;t!==null&&(e.alternate=null,BC(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[io],delete t[Sc],delete t[sm],delete t[vD],delete t[xD])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function VC(e){return e.tag===5||e.tag===3||e.tag===4}function Jw(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||VC(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function bm(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Vd));else if(r!==4&&(e=e.child,e!==null))for(bm(e,t,n),e=e.sibling;e!==null;)bm(e,t,n),e=e.sibling}function Sm(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Sm(e,t,n),e=e.sibling;e!==null;)Sm(e,t,n),e=e.sibling}var on=null,Ur=!1;function fi(e,t,n){for(n=n.child;n!==null;)HC(e,t,n),n=n.sibling}function HC(e,t,n){if(ao&&typeof ao.onCommitFiberUnmount=="function")try{ao.onCommitFiberUnmount(Ef,n)}catch{}switch(n.tag){case 5:gn||ba(n,t);case 6:var r=on,o=Ur;on=null,fi(e,t,n),on=r,Ur=o,on!==null&&(Ur?(e=on,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):on.removeChild(n.stateNode));break;case 18:on!==null&&(Ur?(e=on,n=n.stateNode,e.nodeType===8?Yh(e.parentNode,n):e.nodeType===1&&Yh(e,n),vc(e)):Yh(on,n.stateNode));break;case 4:r=on,o=Ur,on=n.stateNode.containerInfo,Ur=!0,fi(e,t,n),on=r,Ur=o;break;case 0:case 11:case 14:case 15:if(!gn&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,a!==void 0&&(i&2||i&4)&&ym(n,t,a),o=o.next}while(o!==r)}fi(e,t,n);break;case 1:if(!gn&&(ba(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(c){Dt(n,t,c)}fi(e,t,n);break;case 21:fi(e,t,n);break;case 22:n.mode&1?(gn=(r=gn)||n.memoizedState!==null,fi(e,t,n),gn=r):fi(e,t,n);break;default:fi(e,t,n)}}function Zw(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new TD),t.forEach(function(r){var o=HD.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function Ar(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,a=t,c=a;e:for(;c!==null;){switch(c.tag){case 5:on=c.stateNode,Ur=!1;break e;case 3:on=c.stateNode.containerInfo,Ur=!0;break e;case 4:on=c.stateNode.containerInfo,Ur=!0;break e}c=c.return}if(on===null)throw Error(ae(160));HC(i,a,o),on=null,Ur=!1;var u=o.alternate;u!==null&&(u.return=null),o.return=null}catch(f){Dt(o,t,f)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)WC(t,e),t=t.sibling}function WC(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ar(t,e),to(e),r&4){try{rc(3,e,e.return),Tf(3,e)}catch(b){Dt(e,e.return,b)}try{rc(5,e,e.return)}catch(b){Dt(e,e.return,b)}}break;case 1:Ar(t,e),to(e),r&512&&n!==null&&ba(n,n.return);break;case 5:if(Ar(t,e),to(e),r&512&&n!==null&&ba(n,n.return),e.flags&32){var o=e.stateNode;try{pc(o,"")}catch(b){Dt(e,e.return,b)}}if(r&4&&(o=e.stateNode,o!=null)){var i=e.memoizedProps,a=n!==null?n.memoizedProps:i,c=e.type,u=e.updateQueue;if(e.updateQueue=null,u!==null)try{c==="input"&&i.type==="radio"&&i.name!=null&&f2(o,i),Kg(c,a);var f=Kg(c,i);for(a=0;a<u.length;a+=2){var h=u[a],m=u[a+1];h==="style"?v2(o,m):h==="dangerouslySetInnerHTML"?g2(o,m):h==="children"?pc(o,m):$0(o,h,m,f)}switch(c){case"input":Ug(o,i);break;case"textarea":p2(o,i);break;case"select":var v=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var x=i.value;x!=null?Ra(o,!!i.multiple,x,!1):v!==!!i.multiple&&(i.defaultValue!=null?Ra(o,!!i.multiple,i.defaultValue,!0):Ra(o,!!i.multiple,i.multiple?[]:"",!1))}o[Sc]=i}catch(b){Dt(e,e.return,b)}}break;case 6:if(Ar(t,e),to(e),r&4){if(e.stateNode===null)throw Error(ae(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(b){Dt(e,e.return,b)}}break;case 3:if(Ar(t,e),to(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{vc(t.containerInfo)}catch(b){Dt(e,e.return,b)}break;case 4:Ar(t,e),to(e);break;case 13:Ar(t,e),to(e),o=e.child,o.flags&8192&&(i=o.memoizedState!==null,o.stateNode.isHidden=i,!i||o.alternate!==null&&o.alternate.memoizedState!==null||(rv=Lt())),r&4&&Zw(e);break;case 22:if(h=n!==null&&n.memoizedState!==null,e.mode&1?(gn=(f=gn)||h,Ar(t,e),gn=f):Ar(t,e),to(e),r&8192){if(f=e.memoizedState!==null,(e.stateNode.isHidden=f)&&!h&&e.mode&1)for(xe=e,h=e.child;h!==null;){for(m=xe=h;xe!==null;){switch(v=xe,x=v.child,v.tag){case 0:case 11:case 14:case 15:rc(4,v,v.return);break;case 1:ba(v,v.return);var w=v.stateNode;if(typeof w.componentWillUnmount=="function"){r=v,n=v.return;try{t=r,w.props=t.memoizedProps,w.state=t.memoizedState,w.componentWillUnmount()}catch(b){Dt(r,n,b)}}break;case 5:ba(v,v.return);break;case 22:if(v.memoizedState!==null){tb(m);continue}}x!==null?(x.return=v,xe=x):tb(m)}h=h.sibling}e:for(h=null,m=e;;){if(m.tag===5){if(h===null){h=m;try{o=m.stateNode,f?(i=o.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(c=m.stateNode,u=m.memoizedProps.style,a=u!=null&&u.hasOwnProperty("display")?u.display:null,c.style.display=m2("display",a))}catch(b){Dt(e,e.return,b)}}}else if(m.tag===6){if(h===null)try{m.stateNode.nodeValue=f?"":m.memoizedProps}catch(b){Dt(e,e.return,b)}}else if((m.tag!==22&&m.tag!==23||m.memoizedState===null||m===e)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===e)break e;for(;m.sibling===null;){if(m.return===null||m.return===e)break e;h===m&&(h=null),m=m.return}h===m&&(h=null),m.sibling.return=m.return,m=m.sibling}}break;case 19:Ar(t,e),to(e),r&4&&Zw(e);break;case 21:break;default:Ar(t,e),to(e)}}function to(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(VC(n)){var r=n;break e}n=n.return}throw Error(ae(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(pc(o,""),r.flags&=-33);var i=Jw(e);Sm(e,i,o);break;case 3:case 4:var a=r.stateNode.containerInfo,c=Jw(e);bm(e,c,a);break;default:throw Error(ae(161))}}catch(u){Dt(e,e.return,u)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function OD(e,t,n){xe=e,KC(e)}function KC(e,t,n){for(var r=(e.mode&1)!==0;xe!==null;){var o=xe,i=o.child;if(o.tag===22&&r){var a=o.memoizedState!==null||nd;if(!a){var c=o.alternate,u=c!==null&&c.memoizedState!==null||gn;c=nd;var f=gn;if(nd=a,(gn=u)&&!f)for(xe=o;xe!==null;)a=xe,u=a.child,a.tag===22&&a.memoizedState!==null?nb(o):u!==null?(u.return=a,xe=u):nb(o);for(;i!==null;)xe=i,KC(i),i=i.sibling;xe=o,nd=c,gn=f}eb(e)}else o.subtreeFlags&8772&&i!==null?(i.return=o,xe=i):eb(e)}}function eb(e){for(;xe!==null;){var t=xe;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:gn||Tf(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!gn)if(n===null)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:zr(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&Lw(t,i,r);break;case 3:var a=t.updateQueue;if(a!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Lw(t,a,n)}break;case 5:var c=t.stateNode;if(n===null&&t.flags&4){n=c;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var f=t.alternate;if(f!==null){var h=f.memoizedState;if(h!==null){var m=h.dehydrated;m!==null&&vc(m)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(ae(163))}gn||t.flags&512&&wm(t)}catch(v){Dt(t,t.return,v)}}if(t===e){xe=null;break}if(n=t.sibling,n!==null){n.return=t.return,xe=n;break}xe=t.return}}function tb(e){for(;xe!==null;){var t=xe;if(t===e){xe=null;break}var n=t.sibling;if(n!==null){n.return=t.return,xe=n;break}xe=t.return}}function nb(e){for(;xe!==null;){var t=xe;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Tf(4,t)}catch(u){Dt(t,n,u)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(u){Dt(t,o,u)}}var i=t.return;try{wm(t)}catch(u){Dt(t,i,u)}break;case 5:var a=t.return;try{wm(t)}catch(u){Dt(t,a,u)}}}catch(u){Dt(t,t.return,u)}if(t===e){xe=null;break}var c=t.sibling;if(c!==null){c.return=t.return,xe=c;break}xe=t.return}}var LD=Math.ceil,ef=Go.ReactCurrentDispatcher,tv=Go.ReactCurrentOwner,Pr=Go.ReactCurrentBatchConfig,rt=0,en=null,Ft=null,sn=0,Zn=0,Sa=Ui(0),Gt=0,_c=null,ws=0,If=0,nv=0,oc=null,An=null,rv=0,Ba=1/0,_o=null,tf=!1,Cm=null,ki=null,rd=!1,Si=null,nf=0,ic=0,$m=null,Dd=-1,jd=0;function En(){return rt&6?Lt():Dd!==-1?Dd:Dd=Lt()}function Di(e){return e.mode&1?rt&2&&sn!==0?sn&-sn:wD.transition!==null?(jd===0&&(jd=N2()),jd):(e=ut,e!==0||(e=window.event,e=e===void 0?16:O2(e.type)),e):1}function Wr(e,t,n,r){if(50<ic)throw ic=0,$m=null,Error(ae(185));Uc(e,n,r),(!(rt&2)||e!==en)&&(e===en&&(!(rt&2)&&(If|=n),Gt===4&&wi(e,sn)),Hn(e,r),n===1&&rt===0&&!(t.mode&1)&&(Ba=Lt()+500,Df&&Bi()))}function Hn(e,t){var n=e.callbackNode;w8(e,t);var r=Fd(e,e===en?sn:0);if(r===0)n!==null&&dw(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&dw(n),t===1)e.tag===0?yD(rb.bind(null,e)):tC(rb.bind(null,e)),gD(function(){!(rt&6)&&Bi()}),n=null;else{switch(k2(r)){case 1:n=N0;break;case 4:n=R2;break;case 16:n=Ad;break;case 536870912:n=_2;break;default:n=Ad}n=e$(n,GC.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function GC(e,t){if(Dd=-1,jd=0,rt&6)throw Error(ae(327));var n=e.callbackNode;if(ja()&&e.callbackNode!==n)return null;var r=Fd(e,e===en?sn:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=rf(e,r);else{t=r;var o=rt;rt|=2;var i=YC();(en!==e||sn!==t)&&(_o=null,Ba=Lt()+500,hs(e,t));do try{zD();break}catch(c){qC(e,c)}while(!0);B0(),ef.current=i,rt=o,Ft!==null?t=0:(en=null,sn=0,t=Gt)}if(t!==0){if(t===2&&(o=Qg(e),o!==0&&(r=o,t=Pm(e,o))),t===1)throw n=_c,hs(e,0),wi(e,r),Hn(e,Lt()),n;if(t===6)wi(e,r);else{if(o=e.current.alternate,!(r&30)&&!AD(o)&&(t=rf(e,r),t===2&&(i=Qg(e),i!==0&&(r=i,t=Pm(e,i))),t===1))throw n=_c,hs(e,0),wi(e,r),Hn(e,Lt()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(ae(345));case 2:is(e,An,_o);break;case 3:if(wi(e,r),(r&130023424)===r&&(t=rv+500-Lt(),10<t)){if(Fd(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){En(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=im(is.bind(null,e,An,_o),t);break}is(e,An,_o);break;case 4:if(wi(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var a=31-Hr(r);i=1<<a,a=t[a],a>o&&(o=a),r&=~i}if(r=o,r=Lt()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*LD(r/1960))-r,10<r){e.timeoutHandle=im(is.bind(null,e,An,_o),r);break}is(e,An,_o);break;case 5:is(e,An,_o);break;default:throw Error(ae(329))}}}return Hn(e,Lt()),e.callbackNode===n?GC.bind(null,e):null}function Pm(e,t){var n=oc;return e.current.memoizedState.isDehydrated&&(hs(e,t).flags|=256),e=rf(e,t),e!==2&&(t=An,An=n,t!==null&&Em(t)),e}function Em(e){An===null?An=e:An.push.apply(An,e)}function AD(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var o=n[r],i=o.getSnapshot;o=o.value;try{if(!qr(i(),o))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function wi(e,t){for(t&=~nv,t&=~If,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Hr(t),r=1<<n;e[n]=-1,t&=~r}}function rb(e){if(rt&6)throw Error(ae(327));ja();var t=Fd(e,0);if(!(t&1))return Hn(e,Lt()),null;var n=rf(e,t);if(e.tag!==0&&n===2){var r=Qg(e);r!==0&&(t=r,n=Pm(e,r))}if(n===1)throw n=_c,hs(e,0),wi(e,t),Hn(e,Lt()),n;if(n===6)throw Error(ae(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,is(e,An,_o),Hn(e,Lt()),null}function ov(e,t){var n=rt;rt|=1;try{return e(t)}finally{rt=n,rt===0&&(Ba=Lt()+500,Df&&Bi())}}function bs(e){Si!==null&&Si.tag===0&&!(rt&6)&&ja();var t=rt;rt|=1;var n=Pr.transition,r=ut;try{if(Pr.transition=null,ut=1,e)return e()}finally{ut=r,Pr.transition=n,rt=t,!(rt&6)&&Bi()}}function iv(){Zn=Sa.current,bt(Sa)}function hs(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,hD(n)),Ft!==null)for(n=Ft.return;n!==null;){var r=n;switch(F0(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Hd();break;case 3:za(),bt(Bn),bt(vn),q0();break;case 5:G0(r);break;case 4:za();break;case 13:bt(Pt);break;case 19:bt(Pt);break;case 10:V0(r.type._context);break;case 22:case 23:iv()}n=n.return}if(en=e,Ft=e=ji(e.current,null),sn=Zn=t,Gt=0,_c=null,nv=If=ws=0,An=oc=null,ls!==null){for(t=0;t<ls.length;t++)if(n=ls[t],r=n.interleaved,r!==null){n.interleaved=null;var o=r.next,i=n.pending;if(i!==null){var a=i.next;i.next=o,r.next=a}n.pending=r}ls=null}return e}function qC(e,t){do{var n=Ft;try{if(B0(),_d.current=Zd,Jd){for(var r=Et.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}Jd=!1}if(ys=0,Jt=Kt=Et=null,nc=!1,Pc=0,tv.current=null,n===null||n.return===null){Gt=1,_c=t,Ft=null;break}e:{var i=e,a=n.return,c=n,u=t;if(t=sn,c.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){var f=u,h=c,m=h.tag;if(!(h.mode&1)&&(m===0||m===11||m===15)){var v=h.alternate;v?(h.updateQueue=v.updateQueue,h.memoizedState=v.memoizedState,h.lanes=v.lanes):(h.updateQueue=null,h.memoizedState=null)}var x=Hw(a);if(x!==null){x.flags&=-257,Ww(x,a,c,i,t),x.mode&1&&Vw(i,f,t),t=x,u=f;var w=t.updateQueue;if(w===null){var b=new Set;b.add(u),t.updateQueue=b}else w.add(u);break e}else{if(!(t&1)){Vw(i,f,t),sv();break e}u=Error(ae(426))}}else if(Ct&&c.mode&1){var P=Hw(a);if(P!==null){!(P.flags&65536)&&(P.flags|=256),Ww(P,a,c,i,t),z0(Ua(u,c));break e}}i=u=Ua(u,c),Gt!==4&&(Gt=2),oc===null?oc=[i]:oc.push(i),i=a;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var C=DC(i,u,t);Ow(i,C);break e;case 1:c=u;var S=i.type,E=i.stateNode;if(!(i.flags&128)&&(typeof S.getDerivedStateFromError=="function"||E!==null&&typeof E.componentDidCatch=="function"&&(ki===null||!ki.has(E)))){i.flags|=65536,t&=-t,i.lanes|=t;var _=jC(i,c,t);Ow(i,_);break e}}i=i.return}while(i!==null)}QC(n)}catch(D){t=D,Ft===n&&n!==null&&(Ft=n=n.return);continue}break}while(!0)}function YC(){var e=ef.current;return ef.current=Zd,e===null?Zd:e}function sv(){(Gt===0||Gt===3||Gt===2)&&(Gt=4),en===null||!(ws&268435455)&&!(If&268435455)||wi(en,sn)}function rf(e,t){var n=rt;rt|=2;var r=YC();(en!==e||sn!==t)&&(_o=null,hs(e,t));do try{FD();break}catch(o){qC(e,o)}while(!0);if(B0(),rt=n,ef.current=r,Ft!==null)throw Error(ae(261));return en=null,sn=0,Gt}function FD(){for(;Ft!==null;)XC(Ft)}function zD(){for(;Ft!==null&&!d8();)XC(Ft)}function XC(e){var t=ZC(e.alternate,e,Zn);e.memoizedProps=e.pendingProps,t===null?QC(e):Ft=t,tv.current=null}function QC(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=MD(n,t),n!==null){n.flags&=32767,Ft=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Gt=6,Ft=null;return}}else if(n=jD(n,t,Zn),n!==null){Ft=n;return}if(t=t.sibling,t!==null){Ft=t;return}Ft=t=e}while(t!==null);Gt===0&&(Gt=5)}function is(e,t,n){var r=ut,o=Pr.transition;try{Pr.transition=null,ut=1,UD(e,t,n,r)}finally{Pr.transition=o,ut=r}return null}function UD(e,t,n,r){do ja();while(Si!==null);if(rt&6)throw Error(ae(327));n=e.finishedWork;var o=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(ae(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(b8(e,i),e===en&&(Ft=en=null,sn=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||rd||(rd=!0,e$(Ad,function(){return ja(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=Pr.transition,Pr.transition=null;var a=ut;ut=1;var c=rt;rt|=4,tv.current=null,ID(e,n),WC(n,e),aD(rm),zd=!!nm,rm=nm=null,e.current=n,OD(n),f8(),rt=c,ut=a,Pr.transition=i}else e.current=n;if(rd&&(rd=!1,Si=e,nf=o),i=e.pendingLanes,i===0&&(ki=null),g8(n.stateNode),Hn(e,Lt()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(tf)throw tf=!1,e=Cm,Cm=null,e;return nf&1&&e.tag!==0&&ja(),i=e.pendingLanes,i&1?e===$m?ic++:(ic=0,$m=e):ic=0,Bi(),null}function ja(){if(Si!==null){var e=k2(nf),t=Pr.transition,n=ut;try{if(Pr.transition=null,ut=16>e?16:e,Si===null)var r=!1;else{if(e=Si,Si=null,nf=0,rt&6)throw Error(ae(331));var o=rt;for(rt|=4,xe=e.current;xe!==null;){var i=xe,a=i.child;if(xe.flags&16){var c=i.deletions;if(c!==null){for(var u=0;u<c.length;u++){var f=c[u];for(xe=f;xe!==null;){var h=xe;switch(h.tag){case 0:case 11:case 15:rc(8,h,i)}var m=h.child;if(m!==null)m.return=h,xe=m;else for(;xe!==null;){h=xe;var v=h.sibling,x=h.return;if(BC(h),h===f){xe=null;break}if(v!==null){v.return=x,xe=v;break}xe=x}}}var w=i.alternate;if(w!==null){var b=w.child;if(b!==null){w.child=null;do{var P=b.sibling;b.sibling=null,b=P}while(b!==null)}}xe=i}}if(i.subtreeFlags&2064&&a!==null)a.return=i,xe=a;else e:for(;xe!==null;){if(i=xe,i.flags&2048)switch(i.tag){case 0:case 11:case 15:rc(9,i,i.return)}var C=i.sibling;if(C!==null){C.return=i.return,xe=C;break e}xe=i.return}}var S=e.current;for(xe=S;xe!==null;){a=xe;var E=a.child;if(a.subtreeFlags&2064&&E!==null)E.return=a,xe=E;else e:for(a=S;xe!==null;){if(c=xe,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:Tf(9,c)}}catch(D){Dt(c,c.return,D)}if(c===a){xe=null;break e}var _=c.sibling;if(_!==null){_.return=c.return,xe=_;break e}xe=c.return}}if(rt=o,Bi(),ao&&typeof ao.onPostCommitFiberRoot=="function")try{ao.onPostCommitFiberRoot(Ef,e)}catch{}r=!0}return r}finally{ut=n,Pr.transition=t}}return!1}function ob(e,t,n){t=Ua(n,t),t=DC(e,t,1),e=Ni(e,t,1),t=En(),e!==null&&(Uc(e,1,t),Hn(e,t))}function Dt(e,t,n){if(e.tag===3)ob(e,e,n);else for(;t!==null;){if(t.tag===3){ob(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(ki===null||!ki.has(r))){e=Ua(n,e),e=jC(t,e,1),t=Ni(t,e,1),e=En(),t!==null&&(Uc(t,1,e),Hn(t,e));break}}t=t.return}}function BD(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=En(),e.pingedLanes|=e.suspendedLanes&n,en===e&&(sn&n)===n&&(Gt===4||Gt===3&&(sn&130023424)===sn&&500>Lt()-rv?hs(e,0):nv|=n),Hn(e,t)}function JC(e,t){t===0&&(e.mode&1?(t=Gu,Gu<<=1,!(Gu&130023424)&&(Gu=4194304)):t=1);var n=En();e=Uo(e,t),e!==null&&(Uc(e,t,n),Hn(e,n))}function VD(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),JC(e,n)}function HD(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(ae(314))}r!==null&&r.delete(t),JC(e,n)}var ZC;ZC=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Bn.current)zn=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return zn=!1,DD(e,t,n);zn=!!(e.flags&131072)}else zn=!1,Ct&&t.flags&1048576&&nC(t,Gd,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kd(e,t),e=t.pendingProps;var o=La(t,vn.current);Da(t,n),o=X0(null,t,r,e,o,n);var i=Q0();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Vn(r)?(i=!0,Wd(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,W0(t),o.updater=jf,t.stateNode=o,o._reactInternals=t,fm(t,r,e,n),t=gm(null,t,r,!0,i,n)):(t.tag=0,Ct&&i&&A0(t),Pn(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kd(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=KD(r),e=zr(r,e),o){case 0:t=hm(null,t,r,e,n);break e;case 1:t=qw(null,t,r,e,n);break e;case 11:t=Kw(null,t,r,e,n);break e;case 14:t=Gw(null,t,r,zr(r.type,e),n);break e}throw Error(ae(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:zr(r,o),hm(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:zr(r,o),qw(e,t,r,o,n);case 3:e:{if(OC(t),e===null)throw Error(ae(387));r=t.pendingProps,i=t.memoizedState,o=i.element,sC(e,t),Xd(t,r,null,n);var a=t.memoizedState;if(r=a.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=Ua(Error(ae(423)),t),t=Yw(e,t,r,n,o);break e}else if(r!==o){o=Ua(Error(ae(424)),t),t=Yw(e,t,r,n,o);break e}else for(nr=_i(t.stateNode.containerInfo.firstChild),rr=t,Ct=!0,Vr=null,n=uC(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Aa(),r===o){t=Bo(e,t,n);break e}Pn(e,t,r,n)}t=t.child}return t;case 5:return dC(t),e===null&&cm(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,a=o.children,om(r,o)?a=null:i!==null&&om(r,i)&&(t.flags|=32),IC(e,t),Pn(e,t,a,n),t.child;case 6:return e===null&&cm(t),null;case 13:return LC(e,t,n);case 4:return K0(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Fa(t,null,r,n):Pn(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:zr(r,o),Kw(e,t,r,o,n);case 7:return Pn(e,t,t.pendingProps,n),t.child;case 8:return Pn(e,t,t.pendingProps.children,n),t.child;case 12:return Pn(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,a=o.value,mt(qd,r._currentValue),r._currentValue=a,i!==null)if(qr(i.value,a)){if(i.children===o.children&&!Bn.current){t=Bo(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var c=i.dependencies;if(c!==null){a=i.child;for(var u=c.firstContext;u!==null;){if(u.context===r){if(i.tag===1){u=To(-1,n&-n),u.tag=2;var f=i.updateQueue;if(f!==null){f=f.shared;var h=f.pending;h===null?u.next=u:(u.next=h.next,h.next=u),f.pending=u}}i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),um(i.return,n,t),c.lanes|=n;break}u=u.next}}else if(i.tag===10)a=i.type===t.type?null:i.child;else if(i.tag===18){if(a=i.return,a===null)throw Error(ae(341));a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),um(a,n,t),a=i.sibling}else a=i.child;if(a!==null)a.return=i;else for(a=i;a!==null;){if(a===t){a=null;break}if(i=a.sibling,i!==null){i.return=a.return,a=i;break}a=a.return}i=a}Pn(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Da(t,n),o=Er(o),r=r(o),t.flags|=1,Pn(e,t,r,n),t.child;case 14:return r=t.type,o=zr(r,t.pendingProps),o=zr(r.type,o),Gw(e,t,r,o,n);case 15:return MC(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:zr(r,o),kd(e,t),t.tag=1,Vn(r)?(e=!0,Wd(t)):e=!1,Da(t,n),lC(t,r,o),fm(t,r,o,n),gm(null,t,r,!0,e,n);case 19:return AC(e,t,n);case 22:return TC(e,t,n)}throw Error(ae(156,t.tag))};function e$(e,t){return E2(e,t)}function WD(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $r(e,t,n,r){return new WD(e,t,n,r)}function av(e){return e=e.prototype,!(!e||!e.isReactComponent)}function KD(e){if(typeof e=="function")return av(e)?1:0;if(e!=null){if(e=e.$$typeof,e===E0)return 11;if(e===R0)return 14}return 2}function ji(e,t){var n=e.alternate;return n===null?(n=$r(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Md(e,t,n,r,o,i){var a=2;if(r=e,typeof e=="function")av(e)&&(a=1);else if(typeof e=="string")a=5;else e:switch(e){case fa:return gs(n.children,o,i,t);case P0:a=8,o|=8;break;case Og:return e=$r(12,n,t,o|2),e.elementType=Og,e.lanes=i,e;case Lg:return e=$r(13,n,t,o),e.elementType=Lg,e.lanes=i,e;case Ag:return e=$r(19,n,t,o),e.elementType=Ag,e.lanes=i,e;case c2:return Of(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case a2:a=10;break e;case l2:a=9;break e;case E0:a=11;break e;case R0:a=14;break e;case vi:a=16,r=null;break e}throw Error(ae(130,e==null?e:typeof e,""))}return t=$r(a,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function gs(e,t,n,r){return e=$r(7,e,r,t),e.lanes=n,e}function Of(e,t,n,r){return e=$r(22,e,r,t),e.elementType=c2,e.lanes=n,e.stateNode={isHidden:!1},e}function rg(e,t,n){return e=$r(6,e,null,t),e.lanes=n,e}function og(e,t,n){return t=$r(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function GD(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ah(0),this.expirationTimes=Ah(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ah(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function lv(e,t,n,r,o,i,a,c,u){return e=new GD(e,t,n,c,u),t===1?(t=1,i===!0&&(t|=8)):t=0,i=$r(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},W0(i),e}function qD(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:da,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function t$(e){if(!e)return Ti;e=e._reactInternals;e:{if(Ds(e)!==e||e.tag!==1)throw Error(ae(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Vn(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(ae(171))}if(e.tag===1){var n=e.type;if(Vn(n))return eC(e,n,t)}return t}function n$(e,t,n,r,o,i,a,c,u){return e=lv(n,r,!0,e,o,i,a,c,u),e.context=t$(null),n=e.current,r=En(),o=Di(n),i=To(r,o),i.callback=t??null,Ni(n,i,o),e.current.lanes=o,Uc(e,o,r),Hn(e,r),e}function Lf(e,t,n,r){var o=t.current,i=En(),a=Di(o);return n=t$(n),t.context===null?t.context=n:t.pendingContext=n,t=To(i,a),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Ni(o,t,a),e!==null&&(Wr(e,o,a,i),Rd(e,o,a)),a}function of(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function ib(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function cv(e,t){ib(e,t),(e=e.alternate)&&ib(e,t)}function YD(){return null}var r$=typeof reportError=="function"?reportError:function(e){console.error(e)};function uv(e){this._internalRoot=e}Af.prototype.render=uv.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(ae(409));Lf(e,t,null,null)};Af.prototype.unmount=uv.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;bs(function(){Lf(null,e,null,null)}),t[zo]=null}};function Af(e){this._internalRoot=e}Af.prototype.unstable_scheduleHydration=function(e){if(e){var t=M2();e={blockedOn:null,target:e,priority:t};for(var n=0;n<yi.length&&t!==0&&t<yi[n].priority;n++);yi.splice(n,0,e),n===0&&I2(e)}};function dv(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Ff(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function sb(){}function XD(e,t,n,r,o){if(o){if(typeof r=="function"){var i=r;r=function(){var f=of(a);i.call(f)}}var a=n$(t,r,e,0,null,!1,!1,"",sb);return e._reactRootContainer=a,e[zo]=a.current,wc(e.nodeType===8?e.parentNode:e),bs(),a}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var c=r;r=function(){var f=of(u);c.call(f)}}var u=lv(e,0,!1,null,null,!1,!1,"",sb);return e._reactRootContainer=u,e[zo]=u.current,wc(e.nodeType===8?e.parentNode:e),bs(function(){Lf(t,u,n,r)}),u}function zf(e,t,n,r,o){var i=n._reactRootContainer;if(i){var a=i;if(typeof o=="function"){var c=o;o=function(){var u=of(a);c.call(u)}}Lf(t,a,e,o)}else a=XD(n,t,e,o,r);return of(a)}D2=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Yl(t.pendingLanes);n!==0&&(k0(t,n|1),Hn(t,Lt()),!(rt&6)&&(Ba=Lt()+500,Bi()))}break;case 13:bs(function(){var r=Uo(e,1);if(r!==null){var o=En();Wr(r,e,1,o)}}),cv(e,1)}};D0=function(e){if(e.tag===13){var t=Uo(e,134217728);if(t!==null){var n=En();Wr(t,e,134217728,n)}cv(e,134217728)}};j2=function(e){if(e.tag===13){var t=Di(e),n=Uo(e,t);if(n!==null){var r=En();Wr(n,e,t,r)}cv(e,t)}};M2=function(){return ut};T2=function(e,t){var n=ut;try{return ut=e,t()}finally{ut=n}};qg=function(e,t,n){switch(t){case"input":if(Ug(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=kf(r);if(!o)throw Error(ae(90));d2(r),Ug(r,o)}}}break;case"textarea":p2(e,n);break;case"select":t=n.value,t!=null&&Ra(e,!!n.multiple,t,!1)}};w2=ov;b2=bs;var QD={usingClientEntryPoint:!1,Events:[Vc,ma,kf,x2,y2,ov]},Ll={findFiberByHostInstance:as,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},JD={bundleType:Ll.bundleType,version:Ll.version,rendererPackageName:Ll.rendererPackageName,rendererConfig:Ll.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Go.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=$2(e),e===null?null:e.stateNode},findFiberByHostInstance:Ll.findFiberByHostInstance||YD,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var od=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!od.isDisabled&&od.supportsFiber)try{Ef=od.inject(JD),ao=od}catch{}}lr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=QD;lr.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!dv(t))throw Error(ae(200));return qD(e,t,null,n)};lr.createRoot=function(e,t){if(!dv(e))throw Error(ae(299));var n=!1,r="",o=r$;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=lv(e,1,!1,null,null,n,!1,r,o),e[zo]=t.current,wc(e.nodeType===8?e.parentNode:e),new uv(t)};lr.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(ae(188)):(e=Object.keys(e).join(","),Error(ae(268,e)));return e=$2(t),e=e===null?null:e.stateNode,e};lr.flushSync=function(e){return bs(e)};lr.hydrate=function(e,t,n){if(!Ff(t))throw Error(ae(200));return zf(null,e,t,!0,n)};lr.hydrateRoot=function(e,t,n){if(!dv(e))throw Error(ae(405));var r=n!=null&&n.hydratedSources||null,o=!1,i="",a=r$;if(n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(a=n.onRecoverableError)),t=n$(t,null,e,1,n??null,o,!1,i,a),e[zo]=t.current,wc(e),r)for(e=0;e<r.length;e++)n=r[e],o=n._getVersion,o=o(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Af(t)};lr.render=function(e,t,n){if(!Ff(t))throw Error(ae(200));return zf(null,e,t,!1,n)};lr.unmountComponentAtNode=function(e){if(!Ff(e))throw Error(ae(40));return e._reactRootContainer?(bs(function(){zf(null,null,e,!1,function(){e._reactRootContainer=null,e[zo]=null})}),!0):!1};lr.unstable_batchedUpdates=ov;lr.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Ff(n))throw Error(ae(200));if(e==null||e._reactInternals===void 0)throw Error(ae(38));return zf(e,t,n,!1,r)};lr.version="18.2.0-next-9e3b772b8-20220608";function o$(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o$)}catch(e){console.error(e)}}o$(),n2.exports=lr;var po=n2.exports;const Uf=Qa(po),ZD=m0({__proto__:null,default:Uf},[po]);var ab=po;Tg.createRoot=ab.createRoot,Tg.hydrateRoot=ab.hydrateRoot;/** - * @remix-run/router v1.15.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function jt(){return jt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jt.apply(this,arguments)}var Ot;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Ot||(Ot={}));const lb="popstate";function ej(e){e===void 0&&(e={});function t(r,o){let{pathname:i,search:a,hash:c}=r.location;return Nc("",{pathname:i,search:a,hash:c},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(r,o){return typeof o=="string"?o:Cs(o)}return nj(t,n,null,e)}function Ge(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ss(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function tj(){return Math.random().toString(36).substr(2,8)}function cb(e,t){return{usr:e.state,key:e.key,idx:t}}function Nc(e,t,n,r){return n===void 0&&(n=null),jt({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?qo(t):t,{state:n,key:t&&t.key||r||tj()})}function Cs(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function qo(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function nj(e,t,n,r){r===void 0&&(r={});let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,c=Ot.Pop,u=null,f=h();f==null&&(f=0,a.replaceState(jt({},a.state,{idx:f}),""));function h(){return(a.state||{idx:null}).idx}function m(){c=Ot.Pop;let P=h(),C=P==null?null:P-f;f=P,u&&u({action:c,location:b.location,delta:C})}function v(P,C){c=Ot.Push;let S=Nc(b.location,P,C);n&&n(S,P),f=h()+1;let E=cb(S,f),_=b.createHref(S);try{a.pushState(E,"",_)}catch(D){if(D instanceof DOMException&&D.name==="DataCloneError")throw D;o.location.assign(_)}i&&u&&u({action:c,location:b.location,delta:1})}function x(P,C){c=Ot.Replace;let S=Nc(b.location,P,C);n&&n(S,P),f=h();let E=cb(S,f),_=b.createHref(S);a.replaceState(E,"",_),i&&u&&u({action:c,location:b.location,delta:0})}function w(P){let C=o.location.origin!=="null"?o.location.origin:o.location.href,S=typeof P=="string"?P:Cs(P);return Ge(C,"No window.location.(origin|href) available to create URL for href: "+S),new URL(S,C)}let b={get action(){return c},get location(){return e(o,a)},listen(P){if(u)throw new Error("A history only accepts one active listener");return o.addEventListener(lb,m),u=P,()=>{o.removeEventListener(lb,m),u=null}},createHref(P){return t(o,P)},createURL:w,encodeLocation(P){let C=w(P);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:v,replace:x,go(P){return a.go(P)}};return b}var kt;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(kt||(kt={}));const rj=new Set(["lazy","caseSensitive","path","id","index","children"]);function oj(e){return e.index===!0}function Rm(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((o,i)=>{let a=[...n,i],c=typeof o.id=="string"?o.id:a.join("-");if(Ge(o.index!==!0||!o.children,"Cannot specify children on an index route"),Ge(!r[c],'Found a route id collision on id "'+c+`". Route id's must be globally unique within Data Router usages`),oj(o)){let u=jt({},o,t(o),{id:c});return r[c]=u,u}else{let u=jt({},o,t(o),{id:c,children:void 0});return r[c]=u,o.children&&(u.children=Rm(o.children,t,a,r)),u}})}function Ca(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?qo(t):t,o=Yr(r.pathname||"/",n);if(o==null)return null;let i=i$(e);sj(i);let a=null;for(let c=0;a==null&&c<i.length;++c)a=gj(i[c],vj(o));return a}function ij(e,t){let{route:n,pathname:r,params:o}=e;return{id:n.id,pathname:r,params:o,data:t[n.id],handle:n.handle}}function i$(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let o=(i,a,c)=>{let u={relativePath:c===void 0?i.path||"":c,caseSensitive:i.caseSensitive===!0,childrenIndex:a,route:i};u.relativePath.startsWith("/")&&(Ge(u.relativePath.startsWith(r),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(r.length));let f=Io([r,u.relativePath]),h=n.concat(u);i.children&&i.children.length>0&&(Ge(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+f+'".')),i$(i.children,t,h,f)),!(i.path==null&&!i.index)&&t.push({path:f,score:pj(f,i.index),routesMeta:h})};return e.forEach((i,a)=>{var c;if(i.path===""||!((c=i.path)!=null&&c.includes("?")))o(i,a);else for(let u of s$(i.path))o(i,a,u)}),t}function s$(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=s$(r.join("/")),c=[];return c.push(...a.map(u=>u===""?i:[i,u].join("/"))),o&&c.push(...a),c.map(u=>e.startsWith("/")&&u===""?"/":u)}function sj(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:hj(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const aj=/^:[\w-]+$/,lj=3,cj=2,uj=1,dj=10,fj=-2,ub=e=>e==="*";function pj(e,t){let n=e.split("/"),r=n.length;return n.some(ub)&&(r+=fj),t&&(r+=cj),n.filter(o=>!ub(o)).reduce((o,i)=>o+(aj.test(i)?lj:i===""?uj:dj),r)}function hj(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function gj(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a<n.length;++a){let c=n[a],u=a===n.length-1,f=o==="/"?t:t.slice(o.length)||"/",h=_m({path:c.relativePath,caseSensitive:c.caseSensitive,end:u},f);if(!h)return null;Object.assign(r,h.params);let m=c.route;i.push({params:r,pathname:Io([o,h.pathname]),pathnameBase:bj(Io([o,h.pathnameBase])),route:m}),h.pathnameBase!=="/"&&(o=Io([o,h.pathnameBase]))}return i}function _m(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=mj(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),c=o.slice(1);return{params:r.reduce((f,h,m)=>{let{paramName:v,isOptional:x}=h;if(v==="*"){let b=c[m]||"";a=i.slice(0,i.length-b.length).replace(/(.)\/+$/,"$1")}const w=c[m];return x&&!w?f[v]=void 0:f[v]=xj(w||"",v),f},{}),pathname:i,pathnameBase:a,pattern:e}}function mj(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Ss(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,c,u)=>(r.push({paramName:c,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function vj(e){try{return decodeURI(e)}catch(t){return Ss(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function xj(e,t){try{return decodeURIComponent(e)}catch(n){return Ss(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+e+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+n+").")),e}}function Yr(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function yj(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?qo(e):e;return{pathname:n?n.startsWith("/")?n:wj(n,t):t,search:Sj(r),hash:Cj(o)}}function wj(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function ig(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function a$(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function fv(e,t){let n=a$(e);return t?n.map((r,o)=>o===e.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function pv(e,t,n,r){r===void 0&&(r=!1);let o;typeof e=="string"?o=qo(e):(o=jt({},e),Ge(!o.pathname||!o.pathname.includes("?"),ig("?","pathname","search",o)),Ge(!o.pathname||!o.pathname.includes("#"),ig("#","pathname","hash",o)),Ge(!o.search||!o.search.includes("#"),ig("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,c;if(a==null)c=n;else{let m=t.length-1;if(!r&&a.startsWith("..")){let v=a.split("/");for(;v[0]==="..";)v.shift(),m-=1;o.pathname=v.join("/")}c=m>=0?t[m]:"/"}let u=yj(o,c),f=a&&a!=="/"&&a.endsWith("/"),h=(i||a===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(f||h)&&(u.pathname+="/"),u}const Io=e=>e.join("/").replace(/\/\/+/g,"/"),bj=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Sj=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Cj=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class hv{constructor(t,n,r,o){o===void 0&&(o=!1),this.status=t,this.statusText=n||"",this.internal=o,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function gv(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const l$=["post","put","patch","delete"],$j=new Set(l$),Pj=["get",...l$],Ej=new Set(Pj),Rj=new Set([301,302,303,307,308]),_j=new Set([307,308]),sg={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Nj={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ca={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},c$=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,kj=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),u$="remix-router-transitions";function Dj(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;Ge(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let o;if(e.mapRouteProperties)o=e.mapRouteProperties;else if(e.detectErrorBoundary){let z=e.detectErrorBoundary;o=K=>({hasErrorBoundary:z(K)})}else o=kj;let i={},a=Rm(e.routes,o,void 0,i),c,u=e.basename||"/",f=jt({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),h=null,m=new Set,v=null,x=null,w=null,b=e.hydrationData!=null,P=Ca(a,e.history.location,u),C=null;if(P==null){let z=br(404,{pathname:e.history.location.pathname}),{matches:K,route:Q}=xb(a);P=K,C={[Q.id]:z}}let S,E=P.some(z=>z.route.lazy),_=P.some(z=>z.route.loader);if(E)S=!1;else if(!_)S=!0;else if(f.v7_partialHydration){let z=e.hydrationData?e.hydrationData.loaderData:null,K=e.hydrationData?e.hydrationData.errors:null;S=P.every(Q=>Q.route.loader&&Q.route.loader.hydrate!==!0&&(z&&z[Q.route.id]!==void 0||K&&K[Q.route.id]!==void 0))}else S=e.hydrationData!=null;let D,N={historyAction:e.history.action,location:e.history.location,matches:P,initialized:S,navigation:sg,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||C,fetchers:new Map,blockers:new Map},j=Ot.Pop,O=!1,V,J=!1,ie=new Map,te=null,ge=!1,le=!1,T=[],W=[],Y=new Map,U=0,B=-1,L=new Map,H=new Set,oe=new Map,ne=new Map,fe=new Set,Se=new Map,me=new Map,pe=!1;function Te(){if(h=e.history.listen(z=>{let{action:K,location:Q,delta:ue}=z;if(pe){pe=!1;return}Ss(me.size===0||ue!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let ye=ft({currentLocation:N.location,nextLocation:Q,historyAction:K});if(ye&&ue!=null){pe=!0,e.history.go(ue*-1),nt(ye,{state:"blocked",location:Q,proceed(){nt(ye,{state:"proceeding",proceed:void 0,reset:void 0,location:Q}),e.history.go(ue)},reset(){let Ve=new Map(N.blockers);Ve.set(ye,ca),Pe({blockers:Ve})}});return}return Qe(K,Q)}),n){Bj(t,ie);let z=()=>Vj(t,ie);t.addEventListener("pagehide",z),te=()=>t.removeEventListener("pagehide",z)}return N.initialized||Qe(Ot.Pop,N.location,{initialHydration:!0}),D}function Fe(){h&&h(),te&&te(),m.clear(),V&&V.abort(),N.fetchers.forEach((z,K)=>fr(K)),N.blockers.forEach((z,K)=>De(K))}function We(z){return m.add(z),()=>m.delete(z)}function Pe(z,K){K===void 0&&(K={}),N=jt({},N,z);let Q=[],ue=[];f.v7_fetcherPersist&&N.fetchers.forEach((ye,Ve)=>{ye.state==="idle"&&(fe.has(Ve)?ue.push(Ve):Q.push(Ve))}),[...m].forEach(ye=>ye(N,{deletedFetchers:ue,unstable_viewTransitionOpts:K.viewTransitionOpts,unstable_flushSync:K.flushSync===!0})),f.v7_fetcherPersist&&(Q.forEach(ye=>N.fetchers.delete(ye)),ue.forEach(ye=>fr(ye)))}function Me(z,K,Q){var ue,ye;let{flushSync:Ve}=Q===void 0?{}:Q,je=N.actionData!=null&&N.navigation.formMethod!=null&&Br(N.navigation.formMethod)&&N.navigation.state==="loading"&&((ue=z.state)==null?void 0:ue._isRedirect)!==!0,Ee;K.actionData?Object.keys(K.actionData).length>0?Ee=K.actionData:Ee=null:je?Ee=N.actionData:Ee=null;let be=K.loaderData?vb(N.loaderData,K.loaderData,K.matches||[],K.errors):N.loaderData,qe=N.blockers;qe.size>0&&(qe=new Map(qe),qe.forEach((dt,Bt)=>qe.set(Bt,ca)));let _t=O===!0||N.navigation.formMethod!=null&&Br(N.navigation.formMethod)&&((ye=z.state)==null?void 0:ye._isRedirect)!==!0;c&&(a=c,c=void 0),ge||j===Ot.Pop||(j===Ot.Push?e.history.push(z,z.state):j===Ot.Replace&&e.history.replace(z,z.state));let Ae;if(j===Ot.Pop){let dt=ie.get(N.location.pathname);dt&&dt.has(z.pathname)?Ae={currentLocation:N.location,nextLocation:z}:ie.has(z.pathname)&&(Ae={currentLocation:z,nextLocation:N.location})}else if(J){let dt=ie.get(N.location.pathname);dt?dt.add(z.pathname):(dt=new Set([z.pathname]),ie.set(N.location.pathname,dt)),Ae={currentLocation:N.location,nextLocation:z}}Pe(jt({},K,{actionData:Ee,loaderData:be,historyAction:j,location:z,initialized:!0,navigation:sg,revalidation:"idle",restoreScrollPosition:ul(z,K.matches||N.matches),preventScrollReset:_t,blockers:qe}),{viewTransitionOpts:Ae,flushSync:Ve===!0}),j=Ot.Pop,O=!1,J=!1,ge=!1,le=!1,T=[],W=[]}async function Mt(z,K){if(typeof z=="number"){e.history.go(z);return}let Q=Nm(N.location,N.matches,u,f.v7_prependBasename,z,f.v7_relativeSplatPath,K==null?void 0:K.fromRouteId,K==null?void 0:K.relative),{path:ue,submission:ye,error:Ve}=db(f.v7_normalizeFormMethod,!1,Q,K),je=N.location,Ee=Nc(N.location,ue,K&&K.state);Ee=jt({},Ee,e.history.encodeLocation(Ee));let be=K&&K.replace!=null?K.replace:void 0,qe=Ot.Push;be===!0?qe=Ot.Replace:be===!1||ye!=null&&Br(ye.formMethod)&&ye.formAction===N.location.pathname+N.location.search&&(qe=Ot.Replace);let _t=K&&"preventScrollReset"in K?K.preventScrollReset===!0:void 0,Ae=(K&&K.unstable_flushSync)===!0,dt=ft({currentLocation:je,nextLocation:Ee,historyAction:qe});if(dt){nt(dt,{state:"blocked",location:Ee,proceed(){nt(dt,{state:"proceeding",proceed:void 0,reset:void 0,location:Ee}),Mt(z,K)},reset(){let Bt=new Map(N.blockers);Bt.set(dt,ca),Pe({blockers:Bt})}});return}return await Qe(qe,Ee,{submission:ye,pendingError:Ve,preventScrollReset:_t,replace:K&&K.replace,enableViewTransition:K&&K.unstable_viewTransition,flushSync:Ae})}function lt(){if(xn(),Pe({revalidation:"loading"}),N.navigation.state!=="submitting"){if(N.navigation.state==="idle"){Qe(N.historyAction,N.location,{startUninterruptedRevalidation:!0});return}Qe(j||N.historyAction,N.navigation.location,{overrideNavigation:N.navigation})}}async function Qe(z,K,Q){V&&V.abort(),V=null,j=z,ge=(Q&&Q.startUninterruptedRevalidation)===!0,cl(N.location,N.matches),O=(Q&&Q.preventScrollReset)===!0,J=(Q&&Q.enableViewTransition)===!0;let ue=c||a,ye=Q&&Q.overrideNavigation,Ve=Ca(ue,K,u),je=(Q&&Q.flushSync)===!0;if(!Ve){let Bt=br(404,{pathname:K.pathname}),{matches:Mn,route:At}=xb(ue);Xt(),Me(K,{matches:Mn,loaderData:{},errors:{[At.id]:Bt}},{flushSync:je});return}if(N.initialized&&!le&&Oj(N.location,K)&&!(Q&&Q.submission&&Br(Q.submission.formMethod))){Me(K,{matches:Ve},{flushSync:je});return}V=new AbortController;let Ee=Fl(e.history,K,V.signal,Q&&Q.submission),be,qe;if(Q&&Q.pendingError)qe={[sc(Ve).route.id]:Q.pendingError};else if(Q&&Q.submission&&Br(Q.submission.formMethod)){let Bt=await tn(Ee,K,Q.submission,Ve,{replace:Q.replace,flushSync:je});if(Bt.shortCircuited)return;be=Bt.pendingActionData,qe=Bt.pendingActionError,ye=ag(K,Q.submission),je=!1,Ee=new Request(Ee.url,{signal:Ee.signal})}let{shortCircuited:_t,loaderData:Ae,errors:dt}=await Ut(Ee,K,Ve,ye,Q&&Q.submission,Q&&Q.fetcherSubmission,Q&&Q.replace,Q&&Q.initialHydration===!0,je,be,qe);_t||(V=null,Me(K,jt({matches:Ve},be?{actionData:be}:{},{loaderData:Ae,errors:dt})))}async function tn(z,K,Q,ue,ye){ye===void 0&&(ye={}),xn();let Ve=zj(K,Q);Pe({navigation:Ve},{flushSync:ye.flushSync===!0});let je,Ee=Dm(ue,K);if(!Ee.route.action&&!Ee.route.lazy)je={type:kt.error,error:br(405,{method:z.method,pathname:K.pathname,routeId:Ee.route.id})};else if(je=await Al("action",z,Ee,ue,i,o,u,f.v7_relativeSplatPath),z.signal.aborted)return{shortCircuited:!0};if(ds(je)){let be;return ye&&ye.replace!=null?be=ye.replace:be=je.location===N.location.pathname+N.location.search,await vt(N,je,{submission:Q,replace:be}),{shortCircuited:!0}}if($a(je)){let be=sc(ue,Ee.route.id);return(ye&&ye.replace)!==!0&&(j=Ot.Push),{pendingActionData:{},pendingActionError:{[be.route.id]:je.error}}}if(us(je))throw br(400,{type:"defer-action"});return{pendingActionData:{[Ee.route.id]:je.data}}}async function Ut(z,K,Q,ue,ye,Ve,je,Ee,be,qe,_t){let Ae=ue||ag(K,ye),dt=ye||Ve||bb(Ae),Bt=c||a,[Mn,At]=fb(e.history,N,Q,dt,K,f.v7_partialHydration&&Ee===!0,le,T,W,fe,oe,H,Bt,u,qe,_t);if(Xt(ot=>!(Q&&Q.some(ht=>ht.route.id===ot))||Mn&&Mn.some(ht=>ht.route.id===ot)),B=++U,Mn.length===0&&At.length===0){let ot=Qr();return Me(K,jt({matches:Q,loaderData:{},errors:_t||null},qe?{actionData:qe}:{},ot?{fetchers:new Map(N.fetchers)}:{}),{flushSync:be}),{shortCircuited:!0}}if(!ge&&(!f.v7_partialHydration||!Ee)){At.forEach(ht=>{let bn=N.fetchers.get(ht.key),zs=zl(void 0,bn?bn.data:void 0);N.fetchers.set(ht.key,zs)});let ot=qe||N.actionData;Pe(jt({navigation:Ae},ot?Object.keys(ot).length===0?{actionData:null}:{actionData:ot}:{},At.length>0?{fetchers:new Map(N.fetchers)}:{}),{flushSync:be})}At.forEach(ot=>{Y.has(ot.key)&&yn(ot.key),ot.controller&&Y.set(ot.key,ot.controller)});let ei=()=>At.forEach(ot=>yn(ot.key));V&&V.signal.addEventListener("abort",ei);let{results:dl,loaderResults:ti,fetcherResults:Mr}=await dr(N.matches,Q,Mn,At,z);if(z.signal.aborted)return{shortCircuited:!0};V&&V.signal.removeEventListener("abort",ei),At.forEach(ot=>Y.delete(ot.key));let mo=yb(dl);if(mo){if(mo.idx>=Mn.length){let ot=At[mo.idx-Mn.length].key;H.add(ot)}return await vt(N,mo.result,{replace:je}),{shortCircuited:!0}}let{loaderData:fl,errors:pl}=mb(N,Q,Mn,ti,_t,At,Mr,Se);Se.forEach((ot,ht)=>{ot.subscribe(bn=>{(bn||ot.done)&&Se.delete(ht)})});let hl=Qr(),ni=wn(B),Fs=hl||ni||At.length>0;return jt({loaderData:fl,errors:pl},Fs?{fetchers:new Map(N.fetchers)}:{})}function Jo(z,K,Q,ue){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Y.has(z)&&yn(z);let ye=(ue&&ue.unstable_flushSync)===!0,Ve=c||a,je=Nm(N.location,N.matches,u,f.v7_prependBasename,Q,f.v7_relativeSplatPath,K,ue==null?void 0:ue.relative),Ee=Ca(Ve,je,u);if(!Ee){Yt(z,K,br(404,{pathname:je}),{flushSync:ye});return}let{path:be,submission:qe,error:_t}=db(f.v7_normalizeFormMethod,!0,je,ue);if(_t){Yt(z,K,_t,{flushSync:ye});return}let Ae=Dm(Ee,be);if(O=(ue&&ue.preventScrollReset)===!0,qe&&Br(qe.formMethod)){Xr(z,K,be,Ae,Ee,ye,qe);return}oe.set(z,{routeId:K,path:be}),Dr(z,K,be,Ae,Ee,ye,qe)}async function Xr(z,K,Q,ue,ye,Ve,je){if(xn(),oe.delete(z),!ue.route.action&&!ue.route.lazy){let ht=br(405,{method:je.formMethod,pathname:Q,routeId:K});Yt(z,K,ht,{flushSync:Ve});return}let Ee=N.fetchers.get(z);Kn(z,Uj(je,Ee),{flushSync:Ve});let be=new AbortController,qe=Fl(e.history,Q,be.signal,je);Y.set(z,be);let _t=U,Ae=await Al("action",qe,ue,ye,i,o,u,f.v7_relativeSplatPath);if(qe.signal.aborted){Y.get(z)===be&&Y.delete(z);return}if(f.v7_fetcherPersist&&fe.has(z)){if(ds(Ae)||$a(Ae)){Kn(z,gi(void 0));return}}else{if(ds(Ae))if(Y.delete(z),B>_t){Kn(z,gi(void 0));return}else return H.add(z),Kn(z,zl(je)),vt(N,Ae,{fetcherSubmission:je});if($a(Ae)){Yt(z,K,Ae.error);return}}if(us(Ae))throw br(400,{type:"defer-action"});let dt=N.navigation.location||N.location,Bt=Fl(e.history,dt,be.signal),Mn=c||a,At=N.navigation.state!=="idle"?Ca(Mn,N.navigation.location,u):N.matches;Ge(At,"Didn't find any matches after fetcher action");let ei=++U;L.set(z,ei);let dl=zl(je,Ae.data);N.fetchers.set(z,dl);let[ti,Mr]=fb(e.history,N,At,je,dt,!1,le,T,W,fe,oe,H,Mn,u,{[ue.route.id]:Ae.data},void 0);Mr.filter(ht=>ht.key!==z).forEach(ht=>{let bn=ht.key,zs=N.fetchers.get(bn),Sp=zl(void 0,zs?zs.data:void 0);N.fetchers.set(bn,Sp),Y.has(bn)&&yn(bn),ht.controller&&Y.set(bn,ht.controller)}),Pe({fetchers:new Map(N.fetchers)});let mo=()=>Mr.forEach(ht=>yn(ht.key));be.signal.addEventListener("abort",mo);let{results:fl,loaderResults:pl,fetcherResults:hl}=await dr(N.matches,At,ti,Mr,Bt);if(be.signal.aborted)return;be.signal.removeEventListener("abort",mo),L.delete(z),Y.delete(z),Mr.forEach(ht=>Y.delete(ht.key));let ni=yb(fl);if(ni){if(ni.idx>=ti.length){let ht=Mr[ni.idx-ti.length].key;H.add(ht)}return vt(N,ni.result)}let{loaderData:Fs,errors:ot}=mb(N,N.matches,ti,pl,void 0,Mr,hl,Se);if(N.fetchers.has(z)){let ht=gi(Ae.data);N.fetchers.set(z,ht)}wn(ei),N.navigation.state==="loading"&&ei>B?(Ge(j,"Expected pending action"),V&&V.abort(),Me(N.navigation.location,{matches:At,loaderData:Fs,errors:ot,fetchers:new Map(N.fetchers)})):(Pe({errors:ot,loaderData:vb(N.loaderData,Fs,At,ot),fetchers:new Map(N.fetchers)}),le=!1)}async function Dr(z,K,Q,ue,ye,Ve,je){let Ee=N.fetchers.get(z);Kn(z,zl(je,Ee?Ee.data:void 0),{flushSync:Ve});let be=new AbortController,qe=Fl(e.history,Q,be.signal);Y.set(z,be);let _t=U,Ae=await Al("loader",qe,ue,ye,i,o,u,f.v7_relativeSplatPath);if(us(Ae)&&(Ae=await p$(Ae,qe.signal,!0)||Ae),Y.get(z)===be&&Y.delete(z),!qe.signal.aborted){if(fe.has(z)){Kn(z,gi(void 0));return}if(ds(Ae))if(B>_t){Kn(z,gi(void 0));return}else{H.add(z),await vt(N,Ae);return}if($a(Ae)){Yt(z,K,Ae.error);return}Ge(!us(Ae),"Unhandled fetcher deferred data"),Kn(z,gi(Ae.data))}}async function vt(z,K,Q){let{submission:ue,fetcherSubmission:ye,replace:Ve}=Q===void 0?{}:Q;K.revalidate&&(le=!0);let je=Nc(z.location,K.location,{_isRedirect:!0});if(Ge(je,"Expected a location on the redirect navigation"),n){let dt=!1;if(K.reloadDocument)dt=!0;else if(c$.test(K.location)){const Bt=e.history.createURL(K.location);dt=Bt.origin!==t.location.origin||Yr(Bt.pathname,u)==null}if(dt){Ve?t.location.replace(K.location):t.location.assign(K.location);return}}V=null;let Ee=Ve===!0?Ot.Replace:Ot.Push,{formMethod:be,formAction:qe,formEncType:_t}=z.navigation;!ue&&!ye&&be&&qe&&_t&&(ue=bb(z.navigation));let Ae=ue||ye;if(_j.has(K.status)&&Ae&&Br(Ae.formMethod))await Qe(Ee,je,{submission:jt({},Ae,{formAction:K.location}),preventScrollReset:O});else{let dt=ag(je,ue);await Qe(Ee,je,{overrideNavigation:dt,fetcherSubmission:ye,preventScrollReset:O})}}async function dr(z,K,Q,ue,ye){let Ve=await Promise.all([...Q.map(be=>Al("loader",ye,be,K,i,o,u,f.v7_relativeSplatPath)),...ue.map(be=>be.matches&&be.match&&be.controller?Al("loader",Fl(e.history,be.path,be.controller.signal),be.match,be.matches,i,o,u,f.v7_relativeSplatPath):{type:kt.error,error:br(404,{pathname:be.path})})]),je=Ve.slice(0,Q.length),Ee=Ve.slice(Q.length);return await Promise.all([wb(z,Q,je,je.map(()=>ye.signal),!1,N.loaderData),wb(z,ue.map(be=>be.match),Ee,ue.map(be=>be.controller?be.controller.signal:null),!0)]),{results:Ve,loaderResults:je,fetcherResults:Ee}}function xn(){le=!0,T.push(...Xt()),oe.forEach((z,K)=>{Y.has(K)&&(W.push(K),yn(K))})}function Kn(z,K,Q){Q===void 0&&(Q={}),N.fetchers.set(z,K),Pe({fetchers:new Map(N.fetchers)},{flushSync:(Q&&Q.flushSync)===!0})}function Yt(z,K,Q,ue){ue===void 0&&(ue={});let ye=sc(N.matches,K);fr(z),Pe({errors:{[ye.route.id]:Q},fetchers:new Map(N.fetchers)},{flushSync:(ue&&ue.flushSync)===!0})}function Ki(z){return f.v7_fetcherPersist&&(ne.set(z,(ne.get(z)||0)+1),fe.has(z)&&fe.delete(z)),N.fetchers.get(z)||Nj}function fr(z){let K=N.fetchers.get(z);Y.has(z)&&!(K&&K.state==="loading"&&L.has(z))&&yn(z),oe.delete(z),L.delete(z),H.delete(z),fe.delete(z),N.fetchers.delete(z)}function jr(z){if(f.v7_fetcherPersist){let K=(ne.get(z)||0)-1;K<=0?(ne.delete(z),fe.add(z)):ne.set(z,K)}else fr(z);Pe({fetchers:new Map(N.fetchers)})}function yn(z){let K=Y.get(z);Ge(K,"Expected fetch controller: "+z),K.abort(),Y.delete(z)}function Zo(z){for(let K of z){let Q=Ki(K),ue=gi(Q.data);N.fetchers.set(K,ue)}}function Qr(){let z=[],K=!1;for(let Q of H){let ue=N.fetchers.get(Q);Ge(ue,"Expected fetcher: "+Q),ue.state==="loading"&&(H.delete(Q),z.push(Q),K=!0)}return Zo(z),K}function wn(z){let K=[];for(let[Q,ue]of L)if(ue<z){let ye=N.fetchers.get(Q);Ge(ye,"Expected fetcher: "+Q),ye.state==="loading"&&(yn(Q),L.delete(Q),K.push(Q))}return Zo(K),K.length>0}function Gi(z,K){let Q=N.blockers.get(z)||ca;return me.get(z)!==K&&me.set(z,K),Q}function De(z){N.blockers.delete(z),me.delete(z)}function nt(z,K){let Q=N.blockers.get(z)||ca;Ge(Q.state==="unblocked"&&K.state==="blocked"||Q.state==="blocked"&&K.state==="blocked"||Q.state==="blocked"&&K.state==="proceeding"||Q.state==="blocked"&&K.state==="unblocked"||Q.state==="proceeding"&&K.state==="unblocked","Invalid blocker state transition: "+Q.state+" -> "+K.state);let ue=new Map(N.blockers);ue.set(z,K),Pe({blockers:ue})}function ft(z){let{currentLocation:K,nextLocation:Q,historyAction:ue}=z;if(me.size===0)return;me.size>1&&Ss(!1,"A router only supports one blocker at a time");let ye=Array.from(me.entries()),[Ve,je]=ye[ye.length-1],Ee=N.blockers.get(Ve);if(!(Ee&&Ee.state==="proceeding")&&je({currentLocation:K,nextLocation:Q,historyAction:ue}))return Ve}function Xt(z){let K=[];return Se.forEach((Q,ue)=>{(!z||z(ue))&&(Q.cancel(),K.push(ue),Se.delete(ue))}),K}function jn(z,K,Q){if(v=z,w=K,x=Q||null,!b&&N.navigation===sg){b=!0;let ue=ul(N.location,N.matches);ue!=null&&Pe({restoreScrollPosition:ue})}return()=>{v=null,w=null,x=null}}function go(z,K){return x&&x(z,K.map(ue=>ij(ue,N.loaderData)))||z.key}function cl(z,K){if(v&&w){let Q=go(z,K);v[Q]=w()}}function ul(z,K){if(v){let Q=go(z,K),ue=v[Q];if(typeof ue=="number")return ue}return null}function tu(z){i={},c=Rm(z,o,void 0,i)}return D={get basename(){return u},get future(){return f},get state(){return N},get routes(){return a},get window(){return t},initialize:Te,subscribe:We,enableScrollRestoration:jn,navigate:Mt,fetch:Jo,revalidate:lt,createHref:z=>e.history.createHref(z),encodeLocation:z=>e.history.encodeLocation(z),getFetcher:Ki,deleteFetcher:jr,dispose:Fe,getBlocker:Gi,deleteBlocker:De,_internalFetchControllers:Y,_internalActiveDeferreds:Se,_internalSetRoutes:tu},D}function jj(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Nm(e,t,n,r,o,i,a,c){let u,f;if(a){u=[];for(let m of t)if(u.push(m),m.route.id===a){f=m;break}}else u=t,f=t[t.length-1];let h=pv(o||".",fv(u,i),Yr(e.pathname,n)||e.pathname,c==="path");return o==null&&(h.search=e.search,h.hash=e.hash),(o==null||o===""||o===".")&&f&&f.route.index&&!mv(h.search)&&(h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index"),r&&n!=="/"&&(h.pathname=h.pathname==="/"?n:Io([n,h.pathname])),Cs(h)}function db(e,t,n,r){if(!r||!jj(r))return{path:n};if(r.formMethod&&!Fj(r.formMethod))return{path:n,error:br(405,{method:r.formMethod})};let o=()=>({path:n,error:br(400,{type:"invalid-body"})}),i=r.formMethod||"get",a=e?i.toUpperCase():i.toLowerCase(),c=f$(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!Br(a))return o();let v=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((x,w)=>{let[b,P]=w;return""+x+b+"="+P+` -`},""):String(r.body);return{path:n,submission:{formMethod:a,formAction:c,formEncType:r.formEncType,formData:void 0,json:void 0,text:v}}}else if(r.formEncType==="application/json"){if(!Br(a))return o();try{let v=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:a,formAction:c,formEncType:r.formEncType,formData:void 0,json:v,text:void 0}}}catch{return o()}}}Ge(typeof FormData=="function","FormData is not available in this environment");let u,f;if(r.formData)u=km(r.formData),f=r.formData;else if(r.body instanceof FormData)u=km(r.body),f=r.body;else if(r.body instanceof URLSearchParams)u=r.body,f=gb(u);else if(r.body==null)u=new URLSearchParams,f=new FormData;else try{u=new URLSearchParams(r.body),f=gb(u)}catch{return o()}let h={formMethod:a,formAction:c,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:f,json:void 0,text:void 0};if(Br(h.formMethod))return{path:n,submission:h};let m=qo(n);return t&&m.search&&mv(m.search)&&u.append("index",""),m.search="?"+u,{path:Cs(m),submission:h}}function Mj(e,t){let n=e;if(t){let r=e.findIndex(o=>o.route.id===t);r>=0&&(n=e.slice(0,r))}return n}function fb(e,t,n,r,o,i,a,c,u,f,h,m,v,x,w,b){let P=b?Object.values(b)[0]:w?Object.values(w)[0]:void 0,C=e.createURL(t.location),S=e.createURL(o),E=b?Object.keys(b)[0]:void 0,D=Mj(n,E).filter((j,O)=>{let{route:V}=j;if(V.lazy)return!0;if(V.loader==null)return!1;if(i)return V.loader.hydrate?!0:t.loaderData[V.id]===void 0&&(!t.errors||t.errors[V.id]===void 0);if(Tj(t.loaderData,t.matches[O],j)||c.some(te=>te===j.route.id))return!0;let J=t.matches[O],ie=j;return pb(j,jt({currentUrl:C,currentParams:J.params,nextUrl:S,nextParams:ie.params},r,{actionResult:P,defaultShouldRevalidate:a||C.pathname+C.search===S.pathname+S.search||C.search!==S.search||d$(J,ie)}))}),N=[];return h.forEach((j,O)=>{if(i||!n.some(ge=>ge.route.id===j.routeId)||f.has(O))return;let V=Ca(v,j.path,x);if(!V){N.push({key:O,routeId:j.routeId,path:j.path,matches:null,match:null,controller:null});return}let J=t.fetchers.get(O),ie=Dm(V,j.path),te=!1;m.has(O)?te=!1:u.includes(O)?te=!0:J&&J.state!=="idle"&&J.data===void 0?te=a:te=pb(ie,jt({currentUrl:C,currentParams:t.matches[t.matches.length-1].params,nextUrl:S,nextParams:n[n.length-1].params},r,{actionResult:P,defaultShouldRevalidate:a})),te&&N.push({key:O,routeId:j.routeId,path:j.path,matches:V,match:ie,controller:new AbortController})}),[D,N]}function Tj(e,t,n){let r=!t||n.route.id!==t.route.id,o=e[n.route.id]===void 0;return r||o}function d$(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function pb(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}async function hb(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let o=n[e.id];Ge(o,"No route found in manifest");let i={};for(let a in r){let u=o[a]!==void 0&&a!=="hasErrorBoundary";Ss(!u,'Route "'+o.id+'" has a static property "'+a+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+a+'" will be ignored.')),!u&&!rj.has(a)&&(i[a]=r[a])}Object.assign(o,i),Object.assign(o,jt({},t(o),{lazy:void 0}))}async function Al(e,t,n,r,o,i,a,c,u){u===void 0&&(u={});let f,h,m,v=b=>{let P,C=new Promise((S,E)=>P=E);return m=()=>P(),t.signal.addEventListener("abort",m),Promise.race([b({request:t,params:n.params,context:u.requestContext}),C])};try{let b=n.route[e];if(n.route.lazy)if(b){let P,C=await Promise.all([v(b).catch(S=>{P=S}),hb(n.route,i,o)]);if(P)throw P;h=C[0]}else if(await hb(n.route,i,o),b=n.route[e],b)h=await v(b);else if(e==="action"){let P=new URL(t.url),C=P.pathname+P.search;throw br(405,{method:t.method,pathname:C,routeId:n.route.id})}else return{type:kt.data,data:void 0};else if(b)h=await v(b);else{let P=new URL(t.url),C=P.pathname+P.search;throw br(404,{pathname:C})}Ge(h!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(b){f=kt.error,h=b}finally{m&&t.signal.removeEventListener("abort",m)}if(Aj(h)){let b=h.status;if(Rj.has(b)){let C=h.headers.get("Location");if(Ge(C,"Redirects returned/thrown from loaders/actions must have a Location header"),!c$.test(C))C=Nm(new URL(t.url),r.slice(0,r.indexOf(n)+1),a,!0,C,c);else if(!u.isStaticRequest){let S=new URL(t.url),E=C.startsWith("//")?new URL(S.protocol+C):new URL(C),_=Yr(E.pathname,a)!=null;E.origin===S.origin&&_&&(C=E.pathname+E.search+E.hash)}if(u.isStaticRequest)throw h.headers.set("Location",C),h;return{type:kt.redirect,status:b,location:C,revalidate:h.headers.get("X-Remix-Revalidate")!==null,reloadDocument:h.headers.get("X-Remix-Reload-Document")!==null}}if(u.isRouteRequest)throw{type:f===kt.error?kt.error:kt.data,response:h};let P;try{let C=h.headers.get("Content-Type");C&&/\bapplication\/json\b/.test(C)?h.body==null?P=null:P=await h.json():P=await h.text()}catch(C){return{type:kt.error,error:C}}return f===kt.error?{type:f,error:new hv(b,h.statusText,P),headers:h.headers}:{type:kt.data,data:P,statusCode:h.status,headers:h.headers}}if(f===kt.error)return{type:f,error:h};if(Lj(h)){var x,w;return{type:kt.deferred,deferredData:h,statusCode:(x=h.init)==null?void 0:x.status,headers:((w=h.init)==null?void 0:w.headers)&&new Headers(h.init.headers)}}return{type:kt.data,data:h}}function Fl(e,t,n,r){let o=e.createURL(f$(t)).toString(),i={signal:n};if(r&&Br(r.formMethod)){let{formMethod:a,formEncType:c}=r;i.method=a.toUpperCase(),c==="application/json"?(i.headers=new Headers({"Content-Type":c}),i.body=JSON.stringify(r.json)):c==="text/plain"?i.body=r.text:c==="application/x-www-form-urlencoded"&&r.formData?i.body=km(r.formData):i.body=r.formData}return new Request(o,i)}function km(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function gb(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Ij(e,t,n,r,o){let i={},a=null,c,u=!1,f={};return n.forEach((h,m)=>{let v=t[m].route.id;if(Ge(!ds(h),"Cannot handle redirect results in processLoaderData"),$a(h)){let x=sc(e,v),w=h.error;r&&(w=Object.values(r)[0],r=void 0),a=a||{},a[x.route.id]==null&&(a[x.route.id]=w),i[v]=void 0,u||(u=!0,c=gv(h.error)?h.error.status:500),h.headers&&(f[v]=h.headers)}else us(h)?(o.set(v,h.deferredData),i[v]=h.deferredData.data):i[v]=h.data,h.statusCode!=null&&h.statusCode!==200&&!u&&(c=h.statusCode),h.headers&&(f[v]=h.headers)}),r&&(a=r,i[Object.keys(r)[0]]=void 0),{loaderData:i,errors:a,statusCode:c||200,loaderHeaders:f}}function mb(e,t,n,r,o,i,a,c){let{loaderData:u,errors:f}=Ij(t,n,r,o,c);for(let h=0;h<i.length;h++){let{key:m,match:v,controller:x}=i[h];Ge(a!==void 0&&a[h]!==void 0,"Did not find corresponding fetcher result");let w=a[h];if(!(x&&x.signal.aborted))if($a(w)){let b=sc(e.matches,v==null?void 0:v.route.id);f&&f[b.route.id]||(f=jt({},f,{[b.route.id]:w.error})),e.fetchers.delete(m)}else if(ds(w))Ge(!1,"Unhandled fetcher revalidation redirect");else if(us(w))Ge(!1,"Unhandled fetcher deferred data");else{let b=gi(w.data);e.fetchers.set(m,b)}}return{loaderData:u,errors:f}}function vb(e,t,n,r){let o=jt({},t);for(let i of n){let a=i.route.id;if(t.hasOwnProperty(a)?t[a]!==void 0&&(o[a]=t[a]):e[a]!==void 0&&i.route.loader&&(o[a]=e[a]),r&&r.hasOwnProperty(a))break}return o}function sc(e,t){return(t?e.slice(0,e.findIndex(r=>r.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function xb(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function br(e,t){let{pathname:n,routeId:r,method:o,type:i}=t===void 0?{}:t,a="Unknown Server Error",c="Unknown @remix-run/router error";return e===400?(a="Bad Request",o&&n&&r?c="You made a "+o+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":i==="defer-action"?c="defer() is not supported in actions":i==="invalid-body"&&(c="Unable to encode submission body")):e===403?(a="Forbidden",c='Route "'+r+'" does not match URL "'+n+'"'):e===404?(a="Not Found",c='No route matches URL "'+n+'"'):e===405&&(a="Method Not Allowed",o&&n&&r?c="You made a "+o.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":o&&(c='Invalid request method "'+o.toUpperCase()+'"')),new hv(e||500,a,new Error(c),!0)}function yb(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(ds(n))return{result:n,idx:t}}}function f$(e){let t=typeof e=="string"?qo(e):e;return Cs(jt({},t,{hash:""}))}function Oj(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function us(e){return e.type===kt.deferred}function $a(e){return e.type===kt.error}function ds(e){return(e&&e.type)===kt.redirect}function Lj(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Aj(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Fj(e){return Ej.has(e.toLowerCase())}function Br(e){return $j.has(e.toLowerCase())}async function wb(e,t,n,r,o,i){for(let a=0;a<n.length;a++){let c=n[a],u=t[a];if(!u)continue;let f=e.find(m=>m.route.id===u.route.id),h=f!=null&&!d$(f,u)&&(i&&i[u.route.id])!==void 0;if(us(c)&&(o||h)){let m=r[a];Ge(m,"Expected an AbortSignal for revalidating fetcher deferred result"),await p$(c,m,o).then(v=>{v&&(n[a]=v||n[a])})}}}async function p$(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:kt.data,data:e.deferredData.unwrappedData}}catch(o){return{type:kt.error,error:o}}return{type:kt.data,data:e.deferredData.data}}}function mv(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Dm(e,t){let n=typeof t=="string"?qo(t).search:t.search;if(e[e.length-1].route.index&&mv(n||""))return e[e.length-1];let r=a$(e);return r[r.length-1]}function bb(e){let{formMethod:t,formAction:n,formEncType:r,text:o,formData:i,json:a}=e;if(!(!t||!n||!r)){if(o!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:o};if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:i,json:void 0,text:void 0};if(a!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:a,text:void 0}}}function ag(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function zj(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function zl(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Uj(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function gi(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Bj(e,t){try{let n=e.sessionStorage.getItem(u$);if(n){let r=JSON.parse(n);for(let[o,i]of Object.entries(r||{}))i&&Array.isArray(i)&&t.set(o,new Set(i||[]))}}catch{}}function Vj(e,t){if(t.size>0){let n={};for(let[r,o]of t)n[r]=[...o];try{e.sessionStorage.setItem(u$,JSON.stringify(n))}catch(r){Ss(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** - * React Router v6.22.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function $s(){return $s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$s.apply(this,arguments)}const Wc=p.createContext(null),vv=p.createContext(null),Vi=p.createContext(null),Bf=p.createContext(null),Yo=p.createContext({outlet:null,matches:[],isDataRoute:!1}),h$=p.createContext(null);function Hj(e,t){let{relative:n}=t===void 0?{}:t;Kc()||Ge(!1);let{basename:r,navigator:o}=p.useContext(Vi),{hash:i,pathname:a,search:c}=Vf(e,{relative:n}),u=a;return r!=="/"&&(u=a==="/"?r:Io([r,a])),o.createHref({pathname:u,search:c,hash:i})}function Kc(){return p.useContext(Bf)!=null}function js(){return Kc()||Ge(!1),p.useContext(Bf).location}function g$(e){p.useContext(Vi).static||p.useLayoutEffect(e)}function Hi(){let{isDataRoute:e}=p.useContext(Yo);return e?nM():Wj()}function Wj(){Kc()||Ge(!1);let e=p.useContext(Wc),{basename:t,future:n,navigator:r}=p.useContext(Vi),{matches:o}=p.useContext(Yo),{pathname:i}=js(),a=JSON.stringify(fv(o,n.v7_relativeSplatPath)),c=p.useRef(!1);return g$(()=>{c.current=!0}),p.useCallback(function(f,h){if(h===void 0&&(h={}),!c.current)return;if(typeof f=="number"){r.go(f);return}let m=pv(f,JSON.parse(a),i,h.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:Io([t,m.pathname])),(h.replace?r.replace:r.push)(m,h.state,h)},[t,r,a,i,e])}const m$=p.createContext(null);function Kj(){return p.useContext(m$)}function Gj(e){let t=p.useContext(Yo).outlet;return t&&p.createElement(m$.Provider,{value:e},t)}function tl(){let{matches:e}=p.useContext(Yo),t=e[e.length-1];return t?t.params:{}}function Vf(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=p.useContext(Vi),{matches:o}=p.useContext(Yo),{pathname:i}=js(),a=JSON.stringify(fv(o,r.v7_relativeSplatPath));return p.useMemo(()=>pv(e,JSON.parse(a),i,n==="path"),[e,a,i,n])}function qj(e,t,n,r){Kc()||Ge(!1);let{navigator:o}=p.useContext(Vi),{matches:i}=p.useContext(Yo),a=i[i.length-1],c=a?a.params:{};a&&a.pathname;let u=a?a.pathnameBase:"/";a&&a.route;let f=js(),h;if(t){var m;let P=typeof t=="string"?qo(t):t;u==="/"||(m=P.pathname)!=null&&m.startsWith(u)||Ge(!1),h=P}else h=f;let v=h.pathname||"/",x=u==="/"?v:v.slice(u.length)||"/",w=Ca(e,{pathname:x}),b=Zj(w&&w.map(P=>Object.assign({},P,{params:Object.assign({},c,P.params),pathname:Io([u,o.encodeLocation?o.encodeLocation(P.pathname).pathname:P.pathname]),pathnameBase:P.pathnameBase==="/"?u:Io([u,o.encodeLocation?o.encodeLocation(P.pathnameBase).pathname:P.pathnameBase])})),i,n,r);return t&&b?p.createElement(Bf.Provider,{value:{location:$s({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:Ot.Pop}},b):b}function Yj(){let e=w$(),t=gv(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return p.createElement(p.Fragment,null,p.createElement("h2",null,"Unexpected Application Error!"),p.createElement("h3",{style:{fontStyle:"italic"}},t),n?p.createElement("pre",{style:o},n):null,null)}const Xj=p.createElement(Yj,null);class Qj extends p.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?p.createElement(Yo.Provider,{value:this.props.routeContext},p.createElement(h$.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Jj(e){let{routeContext:t,match:n,children:r}=e,o=p.useContext(Wc);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),p.createElement(Yo.Provider,{value:t},r)}function Zj(e,t,n,r){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if((i=n)!=null&&i.errors)e=n.matches;else return null}let a=e,c=(o=n)==null?void 0:o.errors;if(c!=null){let h=a.findIndex(m=>m.route.id&&(c==null?void 0:c[m.route.id]));h>=0||Ge(!1),a=a.slice(0,Math.min(a.length,h+1))}let u=!1,f=-1;if(n&&r&&r.v7_partialHydration)for(let h=0;h<a.length;h++){let m=a[h];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(f=h),m.route.id){let{loaderData:v,errors:x}=n,w=m.route.loader&&v[m.route.id]===void 0&&(!x||x[m.route.id]===void 0);if(m.route.lazy||w){u=!0,f>=0?a=a.slice(0,f+1):a=[a[0]];break}}}return a.reduceRight((h,m,v)=>{let x,w=!1,b=null,P=null;n&&(x=c&&m.route.id?c[m.route.id]:void 0,b=m.route.errorElement||Xj,u&&(f<0&&v===0?(rM("route-fallback",!1),w=!0,P=null):f===v&&(w=!0,P=m.route.hydrateFallbackElement||null)));let C=t.concat(a.slice(0,v+1)),S=()=>{let E;return x?E=b:w?E=P:m.route.Component?E=p.createElement(m.route.Component,null):m.route.element?E=m.route.element:E=h,p.createElement(Jj,{match:m,routeContext:{outlet:h,matches:C,isDataRoute:n!=null},children:E})};return n&&(m.route.ErrorBoundary||m.route.errorElement||v===0)?p.createElement(Qj,{location:n.location,revalidation:n.revalidation,component:b,error:x,children:S(),routeContext:{outlet:null,matches:C,isDataRoute:!0}}):S()},null)}var xv=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(xv||{}),kc=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(kc||{});function v$(e){let t=p.useContext(Wc);return t||Ge(!1),t}function x$(e){let t=p.useContext(vv);return t||Ge(!1),t}function eM(e){let t=p.useContext(Yo);return t||Ge(!1),t}function y$(e){let t=eM(),n=t.matches[t.matches.length-1];return n.route.id||Ge(!1),n.route.id}function w$(){var e;let t=p.useContext(h$),n=x$(kc.UseRouteError),r=y$(kc.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}let tM=0;function b$(e){let{router:t,basename:n}=v$(xv.UseBlocker),r=x$(kc.UseBlocker),[o,i]=p.useState(""),a=p.useCallback(c=>{if(typeof e!="function")return!!e;if(n==="/")return e(c);let{currentLocation:u,nextLocation:f,historyAction:h}=c;return e({currentLocation:$s({},u,{pathname:Yr(u.pathname,n)||u.pathname}),nextLocation:$s({},f,{pathname:Yr(f.pathname,n)||f.pathname}),historyAction:h})},[n,e]);return p.useEffect(()=>{let c=String(++tM);return i(c),()=>t.deleteBlocker(c)},[t]),p.useEffect(()=>{o!==""&&t.getBlocker(o,a)},[t,o,a]),o&&r.blockers.has(o)?r.blockers.get(o):ca}function nM(){let{router:e}=v$(xv.UseNavigateStable),t=y$(kc.UseNavigateStable),n=p.useRef(!1);return g$(()=>{n.current=!0}),p.useCallback(function(o,i){i===void 0&&(i={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,$s({fromRouteId:t},i)))},[e,t])}const Sb={};function rM(e,t,n){!t&&!Sb[e]&&(Sb[e]=!0)}function S$(e){return Gj(e.context)}function oM(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Ot.Pop,navigator:i,static:a=!1,future:c}=e;Kc()&&Ge(!1);let u=t.replace(/^\/*/,"/"),f=p.useMemo(()=>({basename:u,navigator:i,static:a,future:$s({v7_relativeSplatPath:!1},c)}),[u,c,i,a]);typeof r=="string"&&(r=qo(r));let{pathname:h="/",search:m="",hash:v="",state:x=null,key:w="default"}=r,b=p.useMemo(()=>{let P=Yr(h,u);return P==null?null:{location:{pathname:P,search:m,hash:v,state:x,key:w},navigationType:o}},[u,h,m,v,x,w,o]);return b==null?null:p.createElement(Vi.Provider,{value:f},p.createElement(Bf.Provider,{children:n,value:b}))}new Promise(()=>{});function iM(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:p.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:p.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:p.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** - * React Router DOM v6.22.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Va(){return Va=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Va.apply(this,arguments)}function C$(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,i;for(i=0;i<r.length;i++)o=r[i],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function sM(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function aM(e,t){return e.button===0&&(!t||t==="_self")&&!sM(e)}function jm(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function lM(e,t){let n=jm(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}const cM=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],uM=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],dM="6";try{window.__reactRouterVersion=dM}catch{}function fM(e,t){return Dj({basename:t==null?void 0:t.basename,future:Va({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:ej({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||pM(),routes:e,mapRouteProperties:iM,window:t==null?void 0:t.window}).initialize()}function pM(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Va({},t,{errors:hM(t.errors)})),t}function hM(e){if(!e)return null;let t=Object.entries(e),n={};for(let[r,o]of t)if(o&&o.__type==="RouteErrorResponse")n[r]=new hv(o.status,o.statusText,o.data,o.internal===!0);else if(o&&o.__type==="Error"){if(o.__subType){let i=window[o.__subType];if(typeof i=="function")try{let a=new i(o.message);a.stack="",n[r]=a}catch{}}if(n[r]==null){let i=new Error(o.message);i.stack="",n[r]=i}}else n[r]=o;return n}const $$=p.createContext({isTransitioning:!1}),gM=p.createContext(new Map),mM="startTransition",Cb=b0[mM],vM="flushSync",$b=ZD[vM];function xM(e){Cb?Cb(e):e()}function Ul(e){$b?$b(e):e()}class yM{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function wM(e){let{fallbackElement:t,router:n,future:r}=e,[o,i]=p.useState(n.state),[a,c]=p.useState(),[u,f]=p.useState({isTransitioning:!1}),[h,m]=p.useState(),[v,x]=p.useState(),[w,b]=p.useState(),P=p.useRef(new Map),{v7_startTransition:C}=r||{},S=p.useCallback(j=>{C?xM(j):j()},[C]),E=p.useCallback((j,O)=>{let{deletedFetchers:V,unstable_flushSync:J,unstable_viewTransitionOpts:ie}=O;V.forEach(ge=>P.current.delete(ge)),j.fetchers.forEach((ge,le)=>{ge.data!==void 0&&P.current.set(le,ge.data)});let te=n.window==null||typeof n.window.document.startViewTransition!="function";if(!ie||te){J?Ul(()=>i(j)):S(()=>i(j));return}if(J){Ul(()=>{v&&(h&&h.resolve(),v.skipTransition()),f({isTransitioning:!0,flushSync:!0,currentLocation:ie.currentLocation,nextLocation:ie.nextLocation})});let ge=n.window.document.startViewTransition(()=>{Ul(()=>i(j))});ge.finished.finally(()=>{Ul(()=>{m(void 0),x(void 0),c(void 0),f({isTransitioning:!1})})}),Ul(()=>x(ge));return}v?(h&&h.resolve(),v.skipTransition(),b({state:j,currentLocation:ie.currentLocation,nextLocation:ie.nextLocation})):(c(j),f({isTransitioning:!0,flushSync:!1,currentLocation:ie.currentLocation,nextLocation:ie.nextLocation}))},[n.window,v,h,P,S]);p.useLayoutEffect(()=>n.subscribe(E),[n,E]),p.useEffect(()=>{u.isTransitioning&&!u.flushSync&&m(new yM)},[u]),p.useEffect(()=>{if(h&&a&&n.window){let j=a,O=h.promise,V=n.window.document.startViewTransition(async()=>{S(()=>i(j)),await O});V.finished.finally(()=>{m(void 0),x(void 0),c(void 0),f({isTransitioning:!1})}),x(V)}},[S,a,h,n.window]),p.useEffect(()=>{h&&a&&o.location.key===a.location.key&&h.resolve()},[h,v,o.location,a]),p.useEffect(()=>{!u.isTransitioning&&w&&(c(w.state),f({isTransitioning:!0,flushSync:!1,currentLocation:w.currentLocation,nextLocation:w.nextLocation}),b(void 0))},[u.isTransitioning,w]),p.useEffect(()=>{},[]);let _=p.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:j=>n.navigate(j),push:(j,O,V)=>n.navigate(j,{state:O,preventScrollReset:V==null?void 0:V.preventScrollReset}),replace:(j,O,V)=>n.navigate(j,{replace:!0,state:O,preventScrollReset:V==null?void 0:V.preventScrollReset})}),[n]),D=n.basename||"/",N=p.useMemo(()=>({router:n,navigator:_,static:!1,basename:D}),[n,_,D]);return p.createElement(p.Fragment,null,p.createElement(Wc.Provider,{value:N},p.createElement(vv.Provider,{value:o},p.createElement(gM.Provider,{value:P.current},p.createElement($$.Provider,{value:u},p.createElement(oM,{basename:D,location:o.location,navigationType:o.historyAction,navigator:_,future:{v7_relativeSplatPath:n.future.v7_relativeSplatPath}},o.initialized||n.future.v7_partialHydration?p.createElement(bM,{routes:n.routes,future:n.future,state:o}):t))))),null)}function bM(e){let{routes:t,future:n,state:r}=e;return qj(t,void 0,r,n)}const SM=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",CM=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,tr=p.forwardRef(function(t,n){let{onClick:r,relative:o,reloadDocument:i,replace:a,state:c,target:u,to:f,preventScrollReset:h,unstable_viewTransition:m}=t,v=C$(t,cM),{basename:x}=p.useContext(Vi),w,b=!1;if(typeof f=="string"&&CM.test(f)&&(w=f,SM))try{let E=new URL(window.location.href),_=f.startsWith("//")?new URL(E.protocol+f):new URL(f),D=Yr(_.pathname,x);_.origin===E.origin&&D!=null?f=D+_.search+_.hash:b=!0}catch{}let P=Hj(f,{relative:o}),C=PM(f,{replace:a,state:c,target:u,preventScrollReset:h,relative:o,unstable_viewTransition:m});function S(E){r&&r(E),E.defaultPrevented||C(E)}return p.createElement("a",Va({},v,{href:w||P,onClick:b||i?r:S,ref:n,target:u}))}),Pa=p.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:a=!1,style:c,to:u,unstable_viewTransition:f,children:h}=t,m=C$(t,uM),v=Vf(u,{relative:m.relative}),x=js(),w=p.useContext(vv),{navigator:b,basename:P}=p.useContext(Vi),C=w!=null&&RM(v)&&f===!0,S=b.encodeLocation?b.encodeLocation(v).pathname:v.pathname,E=x.pathname,_=w&&w.navigation&&w.navigation.location?w.navigation.location.pathname:null;o||(E=E.toLowerCase(),_=_?_.toLowerCase():null,S=S.toLowerCase()),_&&P&&(_=Yr(_,P)||_);const D=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let N=E===S||!a&&E.startsWith(S)&&E.charAt(D)==="/",j=_!=null&&(_===S||!a&&_.startsWith(S)&&_.charAt(S.length)==="/"),O={isActive:N,isPending:j,isTransitioning:C},V=N?r:void 0,J;typeof i=="function"?J=i(O):J=[i,N?"active":null,j?"pending":null,C?"transitioning":null].filter(Boolean).join(" ");let ie=typeof c=="function"?c(O):c;return p.createElement(tr,Va({},m,{"aria-current":V,className:J,ref:n,style:ie,to:u,unstable_viewTransition:f}),typeof h=="function"?h(O):h)});var Mm;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Mm||(Mm={}));var Pb;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Pb||(Pb={}));function $M(e){let t=p.useContext(Wc);return t||Ge(!1),t}function PM(e,t){let{target:n,replace:r,state:o,preventScrollReset:i,relative:a,unstable_viewTransition:c}=t===void 0?{}:t,u=Hi(),f=js(),h=Vf(e,{relative:a});return p.useCallback(m=>{if(aM(m,n)){m.preventDefault();let v=r!==void 0?r:Cs(f)===Cs(h);u(e,{replace:v,state:o,preventScrollReset:i,relative:a,unstable_viewTransition:c})}},[f,u,h,r,o,n,e,i,a,c])}function EM(e){let t=p.useRef(jm(e)),n=p.useRef(!1),r=js(),o=p.useMemo(()=>lM(r.search,n.current?null:t.current),[r.search]),i=Hi(),a=p.useCallback((c,u)=>{const f=jm(typeof c=="function"?c(o):c);n.current=!0,i("?"+f,u)},[i,o]);return[o,a]}function RM(e,t){t===void 0&&(t={});let n=p.useContext($$);n==null&&Ge(!1);let{basename:r}=$M(Mm.useViewTransitionState),o=Vf(e,{relative:t.relative});if(!n.isTransitioning)return!1;let i=Yr(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=Yr(n.nextLocation.pathname,r)||n.nextLocation.pathname;return _m(o.pathname,a)!=null||_m(o.pathname,i)!=null}const _M={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class sf{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||_M,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.forward(n,"log","",!0)}warn(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.forward(n,"warn","",!0)}error(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.forward(n,"error","")}deprecate(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return this.forward(n,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,r,o){return o&&!this.debug?null:(typeof t[0]=="string"&&(t[0]=`${r}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new sf(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new sf(this.logger,t)}}var so=new sf;class Hf{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(r=>{this.observers[r]||(this.observers[r]=new Map);const o=this.observers[r].get(n)||0;this.observers[r].set(n,o+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(a=>{let[c,u]=a;for(let f=0;f<u;f++)c(...r)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(a=>{let[c,u]=a;for(let f=0;f<u;f++)c.apply(c,[t,...r])})}}function Bl(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function Eb(e){return e==null?"":""+e}function NM(e,t,n){e.forEach(r=>{t[r]&&(n[r]=t[r])})}const kM=/###/g;function ac(e,t,n){function r(c){return c&&c.indexOf("###")>-1?c.replace(kM,"."):c}function o(){return!e||typeof e=="string"}const i=typeof t!="string"?t:t.split(".");let a=0;for(;a<i.length-1;){if(o())return{};const c=r(i[a]);!e[c]&&n&&(e[c]=new n),Object.prototype.hasOwnProperty.call(e,c)?e=e[c]:e={},++a}return o()?{}:{obj:e,k:r(i[a])}}function Rb(e,t,n){const{obj:r,k:o}=ac(e,t,Object);if(r!==void 0||t.length===1){r[o]=n;return}let i=t[t.length-1],a=t.slice(0,t.length-1),c=ac(e,a,Object);for(;c.obj===void 0&&a.length;)i=`${a[a.length-1]}.${i}`,a=a.slice(0,a.length-1),c=ac(e,a,Object),c&&c.obj&&typeof c.obj[`${c.k}.${i}`]<"u"&&(c.obj=void 0);c.obj[`${c.k}.${i}`]=n}function DM(e,t,n,r){const{obj:o,k:i}=ac(e,t,Object);o[i]=o[i]||[],r&&(o[i]=o[i].concat(n)),r||o[i].push(n)}function af(e,t){const{obj:n,k:r}=ac(e,t);if(n)return n[r]}function jM(e,t,n){const r=af(e,n);return r!==void 0?r:af(t,n)}function P$(e,t,n){for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):P$(e[r],t[r],n):e[r]=t[r]);return e}function na(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var MM={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function TM(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>MM[t]):e}class IM{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const OM=[" ",",","?","!",";"],LM=new IM(20);function AM(e,t,n){t=t||"",n=n||"";const r=OM.filter(a=>t.indexOf(a)<0&&n.indexOf(a)<0);if(r.length===0)return!0;const o=LM.getRegExp(`(${r.map(a=>a==="?"?"\\?":a).join("|")})`);let i=!o.test(e);if(!i){const a=e.indexOf(n);a>0&&!o.test(e.substring(0,a))&&(i=!0)}return i}function Tm(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let o=e;for(let i=0;i<r.length;){if(!o||typeof o!="object")return;let a,c="";for(let u=i;u<r.length;++u)if(u!==i&&(c+=n),c+=r[u],a=o[c],a!==void 0){if(["string","number","boolean"].indexOf(typeof a)>-1&&u<r.length-1)continue;i+=u-i+1;break}o=a}return o}function lf(e){return e&&e.indexOf("_")>0?e.replace("_","-"):e}class _b extends Hf{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,a=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let c;t.indexOf(".")>-1?c=t.split("."):(c=[t,n],r&&(Array.isArray(r)?c.push(...r):typeof r=="string"&&i?c.push(...r.split(i)):c.push(r)));const u=af(this.data,c);return!u&&!n&&!r&&t.indexOf(".")>-1&&(t=c[0],n=c[1],r=c.slice(2).join(".")),u||!a||typeof r!="string"?u:Tm(this.data&&this.data[t]&&this.data[t][n],r,i)}addResource(t,n,r,o){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const a=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let c=[t,n];r&&(c=c.concat(a?r.split(a):r)),t.indexOf(".")>-1&&(c=t.split("."),o=n,n=c[1]),this.addNamespaces(n),Rb(this.data,c,o),i.silent||this.emit("added",t,n,r,o)}addResources(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in r)(typeof r[i]=="string"||Object.prototype.toString.apply(r[i])==="[object Array]")&&this.addResource(t,n,i,r[i],{silent:!0});o.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,o,i){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},c=[t,n];t.indexOf(".")>-1&&(c=t.split("."),o=r,r=n,n=c[1]),this.addNamespaces(n);let u=af(this.data,c)||{};o?P$(u,r,i):u={...u,...r},Rb(this.data,c,u),a.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(o=>n[o]&&Object.keys(n[o]).length>0)}toJSON(){return this.data}}var E$={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,o){return e.forEach(i=>{this.processors[i]&&(t=this.processors[i].process(t,n,r,o))}),t}};const Nb={};class cf extends Hf{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),NM(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=so.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let i=n.ns||this.options.defaultNS||[];const a=r&&t.indexOf(r)>-1,c=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!AM(t,r,o);if(a&&!c){const u=t.match(this.interpolator.nestingRegexp);if(u&&u.length>0)return{key:t,namespaces:i};const f=t.split(r);(r!==o||r===o&&this.options.ns.indexOf(f[0])>-1)&&(i=f.shift()),t=f.join(o)}return typeof i=="string"&&(i=[i]),{key:t,namespaces:i}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const o=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:a,namespaces:c}=this.extractFromKey(t[t.length-1],n),u=c[c.length-1],f=n.lng||this.language,h=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f&&f.toLowerCase()==="cimode"){if(h){const _=n.nsSeparator||this.options.nsSeparator;return o?{res:`${u}${_}${a}`,usedKey:a,exactUsedKey:a,usedLng:f,usedNS:u,usedParams:this.getUsedParamsDetails(n)}:`${u}${_}${a}`}return o?{res:a,usedKey:a,exactUsedKey:a,usedLng:f,usedNS:u,usedParams:this.getUsedParamsDetails(n)}:a}const m=this.resolve(t,n);let v=m&&m.res;const x=m&&m.usedKey||a,w=m&&m.exactUsedKey||a,b=Object.prototype.toString.apply(v),P=["[object Number]","[object Function]","[object RegExp]"],C=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,S=!this.i18nFormat||this.i18nFormat.handleAsObject;if(S&&v&&(typeof v!="string"&&typeof v!="boolean"&&typeof v!="number")&&P.indexOf(b)<0&&!(typeof C=="string"&&b==="[object Array]")){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const _=this.options.returnedObjectHandler?this.options.returnedObjectHandler(x,v,{...n,ns:c}):`key '${a} (${this.language})' returned an object instead of string.`;return o?(m.res=_,m.usedParams=this.getUsedParamsDetails(n),m):_}if(i){const _=b==="[object Array]",D=_?[]:{},N=_?w:x;for(const j in v)if(Object.prototype.hasOwnProperty.call(v,j)){const O=`${N}${i}${j}`;D[j]=this.translate(O,{...n,joinArrays:!1,ns:c}),D[j]===O&&(D[j]=v[j])}v=D}}else if(S&&typeof C=="string"&&b==="[object Array]")v=v.join(C),v&&(v=this.extendTranslation(v,t,n,r));else{let _=!1,D=!1;const N=n.count!==void 0&&typeof n.count!="string",j=cf.hasDefaultValue(n),O=N?this.pluralResolver.getSuffix(f,n.count,n):"",V=n.ordinal&&N?this.pluralResolver.getSuffix(f,n.count,{ordinal:!1}):"",J=N&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),ie=J&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${O}`]||n[`defaultValue${V}`]||n.defaultValue;!this.isValidLookup(v)&&j&&(_=!0,v=ie),this.isValidLookup(v)||(D=!0,v=a);const ge=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&D?void 0:v,le=j&&ie!==v&&this.options.updateMissing;if(D||_||le){if(this.logger.log(le?"updateKey":"missingKey",f,u,a,le?ie:v),i){const U=this.resolve(a,{...n,keySeparator:!1});U&&U.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let T=[];const W=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&W&&W[0])for(let U=0;U<W.length;U++)T.push(W[U]);else this.options.saveMissingTo==="all"?T=this.languageUtils.toResolveHierarchy(n.lng||this.language):T.push(n.lng||this.language);const Y=(U,B,L)=>{const H=j&&L!==v?L:ge;this.options.missingKeyHandler?this.options.missingKeyHandler(U,u,B,H,le,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(U,u,B,H,le,n),this.emit("missingKey",U,u,B,v)};this.options.saveMissing&&(this.options.saveMissingPlurals&&N?T.forEach(U=>{const B=this.pluralResolver.getSuffixes(U,n);J&&n[`defaultValue${this.options.pluralSeparator}zero`]&&B.indexOf(`${this.options.pluralSeparator}zero`)<0&&B.push(`${this.options.pluralSeparator}zero`),B.forEach(L=>{Y([U],a+L,n[`defaultValue${L}`]||ie)})}):Y(T,a,ie))}v=this.extendTranslation(v,t,n,m,r),D&&v===a&&this.options.appendNamespaceToMissingKey&&(v=`${u}:${a}`),(D||_)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?v=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${u}:${a}`:a,_?v:void 0):v=this.options.parseMissingKeyHandler(v))}return o?(m.res=v,m.usedParams=this.getUsedParamsDetails(n),m):v}extendTranslation(t,n,r,o,i){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const f=typeof t=="string"&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let h;if(f){const v=t.match(this.interpolator.nestingRegexp);h=v&&v.length}let m=r.replace&&typeof r.replace!="string"?r.replace:r;if(this.options.interpolation.defaultVariables&&(m={...this.options.interpolation.defaultVariables,...m}),t=this.interpolator.interpolate(t,m,r.lng||this.language,r),f){const v=t.match(this.interpolator.nestingRegexp),x=v&&v.length;h<x&&(r.nest=!1)}!r.lng&&this.options.compatibilityAPI!=="v1"&&o&&o.res&&(r.lng=o.usedLng),r.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var v=arguments.length,x=new Array(v),w=0;w<v;w++)x[w]=arguments[w];return i&&i[0]===x[0]&&!r.context?(a.logger.warn(`It seems you are nesting recursively key: ${x[0]} in key: ${n[0]}`),null):a.translate(...x,n)},r)),r.interpolation&&this.interpolator.reset()}const c=r.postProcess||this.options.postProcess,u=typeof c=="string"?[c]:c;return t!=null&&u&&u.length&&r.applyPostProcessor!==!1&&(t=E$.handle(u,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),t}resolve(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r,o,i,a,c;return typeof t=="string"&&(t=[t]),t.forEach(u=>{if(this.isValidLookup(r))return;const f=this.extractFromKey(u,n),h=f.key;o=h;let m=f.namespaces;this.options.fallbackNS&&(m=m.concat(this.options.fallbackNS));const v=n.count!==void 0&&typeof n.count!="string",x=v&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),w=n.context!==void 0&&(typeof n.context=="string"||typeof n.context=="number")&&n.context!=="",b=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);m.forEach(P=>{this.isValidLookup(r)||(c=P,!Nb[`${b[0]}-${P}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(c)&&(Nb[`${b[0]}-${P}`]=!0,this.logger.warn(`key "${o}" for languages "${b.join(", ")}" won't get resolved as namespace "${c}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),b.forEach(C=>{if(this.isValidLookup(r))return;a=C;const S=[h];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(S,h,C,P,n);else{let _;v&&(_=this.pluralResolver.getSuffix(C,n.count,n));const D=`${this.options.pluralSeparator}zero`,N=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(v&&(S.push(h+_),n.ordinal&&_.indexOf(N)===0&&S.push(h+_.replace(N,this.options.pluralSeparator)),x&&S.push(h+D)),w){const j=`${h}${this.options.contextSeparator}${n.context}`;S.push(j),v&&(S.push(j+_),n.ordinal&&_.indexOf(N)===0&&S.push(j+_.replace(N,this.options.pluralSeparator)),x&&S.push(j+D))}}let E;for(;E=S.pop();)this.isValidLookup(r)||(i=E,r=this.getResource(C,P,E,n))}))})}),{res:r,usedKey:o,exactUsedKey:i,usedLng:a,usedNS:c}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,o):this.resourceStore.getResource(t,n,r,o)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&typeof t.replace!="string";let o=r?t.replace:t;if(r&&typeof t.count<"u"&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!r){o={...o};for(const i of n)delete o[i]}return o}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}function lg(e){return e.charAt(0).toUpperCase()+e.slice(1)}class kb{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=so.create("languageUtils")}getScriptPartFromCode(t){if(t=lf(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=lf(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(o=>o.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=lg(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=lg(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=lg(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const o=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(o))&&(n=o)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const o=this.getLanguagePartFromCode(r);if(this.isSupportedCode(o))return n=o;n=this.options.supportedLngs.find(i=>{if(i===o)return i;if(!(i.indexOf("-")<0&&o.indexOf("-")<0)&&i.indexOf(o)===0)return i})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),typeof t=="string"&&(t=[t]),Object.prototype.toString.apply(t)==="[object Array]")return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),o=[],i=a=>{a&&(this.isSupportedCode(a)?o.push(a):this.logger.warn(`rejecting language code not found in supportedLngs: ${a}`))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(t))):typeof t=="string"&&i(this.formatLanguageCode(t)),r.forEach(a=>{o.indexOf(a)<0&&i(this.formatLanguageCode(a))}),o}}let FM=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],zM={1:function(e){return+(e>1)},2:function(e){return+(e!=1)},3:function(e){return 0},4:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},5:function(e){return e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},6:function(e){return e==1?0:e>=2&&e<=4?1:2},7:function(e){return e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},8:function(e){return e==1?0:e==2?1:e!=8&&e!=11?2:3},9:function(e){return+(e>=2)},10:function(e){return e==1?0:e==2?1:e<7?2:e<11?3:4},11:function(e){return e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3},12:function(e){return+(e%10!=1||e%100==11)},13:function(e){return+(e!==0)},14:function(e){return e==1?0:e==2?1:e==3?2:3},15:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2},16:function(e){return e%10==1&&e%100!=11?0:e!==0?1:2},17:function(e){return e==1||e%10==1&&e%100!=11?0:1},18:function(e){return e==0?0:e==1?1:2},19:function(e){return e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3},20:function(e){return e==1?0:e==0||e%100>0&&e%100<20?1:2},21:function(e){return e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0},22:function(e){return e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3}};const UM=["v1","v2","v3"],BM=["v4"],Db={zero:0,one:1,two:2,few:3,many:4,other:5};function VM(){const e={};return FM.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:zM[t.fc]}})}),e}class HM{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=so.create("pluralResolver"),(!this.options.compatibilityJSON||BM.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=VM()}addRule(t,n){this.rules[t]=n}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(lf(t==="dev"?"en":t),{type:n.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(o=>`${n}${o}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((o,i)=>Db[o]-Db[i]).map(o=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${o}`):r.numbers.map(o=>this.getSuffix(t,o,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const o=this.getRule(t,r);return o?this.shouldUseIntlApi()?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${o.select(n)}`:this.getSuffixRetroCompatible(o,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let o=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(o===2?o="plural":o===1&&(o=""));const i=()=>this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString();return this.options.compatibilityJSON==="v1"?o===1?"":typeof o=="number"?`_plural_${o.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?i():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!UM.includes(this.options.compatibilityJSON)}}function jb(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=jM(e,t,n);return!i&&o&&typeof n=="string"&&(i=Tm(e,n,r),i===void 0&&(i=Tm(t,n,r))),i}class WM{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=so.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const n=t.interpolation;this.escape=n.escape!==void 0?n.escape:TM,this.escapeValue=n.escapeValue!==void 0?n.escapeValue:!0,this.useRawValueToEscape=n.useRawValueToEscape!==void 0?n.useRawValueToEscape:!1,this.prefix=n.prefix?na(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?na(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?na(n.nestingPrefix):n.nestingPrefixEscaped||na("$t("),this.nestingSuffix=n.nestingSuffix?na(n.nestingSuffix):n.nestingSuffixEscaped||na(")"),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||",",this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=n.alwaysFormat!==void 0?n.alwaysFormat:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,r,o){let i,a,c;const u=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function f(w){return w.replace(/\$/g,"$$$$")}const h=w=>{if(w.indexOf(this.formatSeparator)<0){const S=jb(n,u,w,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(S,void 0,r,{...o,...n,interpolationkey:w}):S}const b=w.split(this.formatSeparator),P=b.shift().trim(),C=b.join(this.formatSeparator).trim();return this.format(jb(n,u,P,this.options.keySeparator,this.options.ignoreJSONStructure),C,r,{...o,...n,interpolationkey:P})};this.resetRegExp();const m=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,v=o&&o.interpolation&&o.interpolation.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:w=>f(w)},{regex:this.regexp,safeValue:w=>this.escapeValue?f(this.escape(w)):f(w)}].forEach(w=>{for(c=0;i=w.regex.exec(t);){const b=i[1].trim();if(a=h(b),a===void 0)if(typeof m=="function"){const C=m(t,i,o);a=typeof C=="string"?C:""}else if(o&&Object.prototype.hasOwnProperty.call(o,b))a="";else if(v){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${t}`),a="";else typeof a!="string"&&!this.useRawValueToEscape&&(a=Eb(a));const P=w.safeValue(a);if(t=t.replace(i[0],P),v?(w.regex.lastIndex+=a.length,w.regex.lastIndex-=i[0].length):w.regex.lastIndex=0,c++,c>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o,i,a;function c(u,f){const h=this.nestingOptionsSeparator;if(u.indexOf(h)<0)return u;const m=u.split(new RegExp(`${h}[ ]*{`));let v=`{${m[1]}`;u=m[0],v=this.interpolate(v,a);const x=v.match(/'/g),w=v.match(/"/g);(x&&x.length%2===0&&!w||w.length%2!==0)&&(v=v.replace(/'/g,'"'));try{a=JSON.parse(v),f&&(a={...f,...a})}catch(b){return this.logger.warn(`failed parsing options string in nesting for key ${u}`,b),`${u}${h}${v}`}return delete a.defaultValue,u}for(;o=this.nestingRegexp.exec(t);){let u=[];a={...r},a=a.replace&&typeof a.replace!="string"?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;let f=!1;if(o[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(o[1])){const h=o[1].split(this.formatSeparator).map(m=>m.trim());o[1]=h.shift(),u=h,f=!0}if(i=n(c.call(this,o[1].trim(),a),a),i&&o[0]===t&&typeof i!="string")return i;typeof i!="string"&&(i=Eb(i)),i||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${t}`),i=""),f&&(i=u.reduce((h,m)=>this.format(h,m,r.lng,{...r,interpolationkey:o[1].trim()}),i.trim())),t=t.replace(o[0],i),this.regexp.lastIndex=0}return t}}function KM(e){let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const o=r[1].substring(0,r[1].length-1);t==="currency"&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):t==="relativetime"&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach(a=>{if(!a)return;const[c,...u]=a.split(":"),f=u.join(":").trim().replace(/^'+|'+$/g,"");n[c.trim()]||(n[c.trim()]=f),f==="false"&&(n[c.trim()]=!1),f==="true"&&(n[c.trim()]=!0),isNaN(f)||(n[c.trim()]=parseInt(f,10))})}return{formatName:t,formatOptions:n}}function ra(e){const t={};return function(r,o,i){const a=o+JSON.stringify(i);let c=t[a];return c||(c=e(lf(o),i),t[a]=c),c(r)}}class GM{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=so.create("formatter"),this.options=t,this.formats={number:ra((n,r)=>{const o=new Intl.NumberFormat(n,{...r});return i=>o.format(i)}),currency:ra((n,r)=>{const o=new Intl.NumberFormat(n,{...r,style:"currency"});return i=>o.format(i)}),datetime:ra((n,r)=>{const o=new Intl.DateTimeFormat(n,{...r});return i=>o.format(i)}),relativetime:ra((n,r)=>{const o=new Intl.RelativeTimeFormat(n,{...r});return i=>o.format(i,r.range||"day")}),list:ra((n,r)=>{const o=new Intl.ListFormat(n,{...r});return i=>o.format(i)})},this.init(t)}init(t){const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=ra(n)}format(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return n.split(this.formatSeparator).reduce((c,u)=>{const{formatName:f,formatOptions:h}=KM(u);if(this.formats[f]){let m=c;try{const v=o&&o.formatParams&&o.formatParams[o.interpolationkey]||{},x=v.locale||v.lng||o.locale||o.lng||r;m=this.formats[f](c,x,{...h,...o,...v})}catch(v){this.logger.warn(v)}return m}else this.logger.warn(`there was no format function for ${f}`);return c},t)}}function qM(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}class YM extends Hf{constructor(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=o,this.logger=so.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,o.backend,o)}queueLoad(t,n,r,o){const i={},a={},c={},u={};return t.forEach(f=>{let h=!0;n.forEach(m=>{const v=`${f}|${m}`;!r.reload&&this.store.hasResourceBundle(f,m)?this.state[v]=2:this.state[v]<0||(this.state[v]===1?a[v]===void 0&&(a[v]=!0):(this.state[v]=1,h=!1,a[v]===void 0&&(a[v]=!0),i[v]===void 0&&(i[v]=!0),u[m]===void 0&&(u[m]=!0)))}),h||(c[f]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(c),toLoadNamespaces:Object.keys(u)}}loaded(t,n,r){const o=t.split("|"),i=o[0],a=o[1];n&&this.emit("failedLoading",i,a,n),r&&this.store.addResourceBundle(i,a,r),this.state[t]=n?-1:2;const c={};this.queue.forEach(u=>{DM(u.loaded,[i],a),qM(u,t),n&&u.errors.push(n),u.pendingCount===0&&!u.done&&(Object.keys(u.loaded).forEach(f=>{c[f]||(c[f]={});const h=u.loaded[f];h.length&&h.forEach(m=>{c[f][m]===void 0&&(c[f][m]=!0)})}),u.done=!0,u.errors.length?u.callback(u.errors):u.callback())}),this.emit("loaded",c),this.queue=this.queue.filter(u=>!u.done)}read(t,n,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,a=arguments.length>5?arguments[5]:void 0;if(!t.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:o,wait:i,callback:a});return}this.readingCalls++;const c=(f,h)=>{if(this.readingCalls--,this.waitingReads.length>0){const m=this.waitingReads.shift();this.read(m.lng,m.ns,m.fcName,m.tried,m.wait,m.callback)}if(f&&h&&o<this.maxRetries){setTimeout(()=>{this.read.call(this,t,n,r,o+1,i*2,a)},i);return}a(f,h)},u=this.backend[r].bind(this.backend);if(u.length===2){try{const f=u(t,n);f&&typeof f.then=="function"?f.then(h=>c(null,h)).catch(c):c(null,f)}catch(f){c(f)}return}return u(t,n,c)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof n=="string"&&(n=[n]);const i=this.queueLoad(t,n,r,o);if(!i.toLoad.length)return i.pending.length||o(),null;i.toLoad.forEach(a=>{this.loadOne(a)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),o=r[0],i=r[1];this.read(o,i,"read",void 0,void 0,(a,c)=>{a&&this.logger.warn(`${n}loading namespace ${i} for language ${o} failed`,a),!a&&c&&this.logger.log(`${n}loaded namespace ${i} for language ${o}`,c),this.loaded(t,a,c)})}saveMissing(t,n,r,o,i){let a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},c=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const u={...a,isUpdate:i},f=this.backend.create.bind(this.backend);if(f.length<6)try{let h;f.length===5?h=f(t,n,r,o,u):h=f(t,n,r,o),h&&typeof h.then=="function"?h.then(m=>c(null,m)).catch(c):c(null,h)}catch(h){c(h)}else f(t,n,r,o,c,u)}!t||!t[0]||this.store.addResource(t[0],n,r,o)}}}function Mb(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){let n={};if(typeof t[1]=="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const r=t[3]||t[2];Object.keys(r).forEach(o=>{n[o]=r[o]})}return n},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function Tb(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function id(){}function XM(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}class Dc extends Hf{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=Tb(t),this.services={},this.logger=so,this.modules={external:[]},XM(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(typeof n.ns=="string"?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const o=Mb();this.options={...o,...this.options,...Tb(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...o.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);function i(h){return h?typeof h=="function"?new h:h:null}if(!this.options.isClone){this.modules.logger?so.init(i(this.modules.logger),this.options):so.init(null,this.options);let h;this.modules.formatter?h=this.modules.formatter:typeof Intl<"u"&&(h=GM);const m=new kb(this.options);this.store=new _b(this.options.resources,this.options);const v=this.services;v.logger=so,v.resourceStore=this.store,v.languageUtils=m,v.pluralResolver=new HM(m,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),h&&(!this.options.interpolation.format||this.options.interpolation.format===o.interpolation.format)&&(v.formatter=i(h),v.formatter.init(v,this.options),this.options.interpolation.format=v.formatter.format.bind(v.formatter)),v.interpolator=new WM(this.options),v.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},v.backendConnector=new YM(i(this.modules.backend),v.resourceStore,v,this.options),v.backendConnector.on("*",function(x){for(var w=arguments.length,b=new Array(w>1?w-1:0),P=1;P<w;P++)b[P-1]=arguments[P];t.emit(x,...b)}),this.modules.languageDetector&&(v.languageDetector=i(this.modules.languageDetector),v.languageDetector.init&&v.languageDetector.init(v,this.options.detection,this.options)),this.modules.i18nFormat&&(v.i18nFormat=i(this.modules.i18nFormat),v.i18nFormat.init&&v.i18nFormat.init(this)),this.translator=new cf(this.services,this.options),this.translator.on("*",function(x){for(var w=arguments.length,b=new Array(w>1?w-1:0),P=1;P<w;P++)b[P-1]=arguments[P];t.emit(x,...b)}),this.modules.external.forEach(x=>{x.init&&x.init(this)})}if(this.format=this.options.interpolation.format,r||(r=id),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const h=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);h.length>0&&h[0]!=="dev"&&(this.options.lng=h[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(h=>{this[h]=function(){return t.store[h](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(h=>{this[h]=function(){return t.store[h](...arguments),t}});const u=Bl(),f=()=>{const h=(m,v)=>{this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),u.resolve(v),r(m,v)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return h(null,this.t.bind(this));this.changeLanguage(this.options.lng,h)};return this.options.resources||!this.options.initImmediate?f():setTimeout(f,0),u}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:id;const o=typeof t=="string"?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(o&&o.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const i=[],a=c=>{if(!c||c==="cimode")return;this.services.languageUtils.toResolveHierarchy(c).forEach(f=>{f!=="cimode"&&i.indexOf(f)<0&&i.push(f)})};o?a(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>a(u)),this.options.preload&&this.options.preload.forEach(c=>a(c)),this.services.backendConnector.load(i,this.options.ns,c=>{!c&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(c)})}else r(null)}reloadResources(t,n,r){const o=Bl();return t||(t=this.languages),n||(n=this.options.ns),r||(r=id),this.services.backendConnector.reload(t,n,i=>{o.resolve(),r(i)}),o}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&E$.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n<this.languages.length;n++){const r=this.languages[n];if(!(["cimode","dev"].indexOf(r)>-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const o=Bl();this.emit("languageChanging",t);const i=u=>{this.language=u,this.languages=this.services.languageUtils.toResolveHierarchy(u),this.resolvedLanguage=void 0,this.setResolvedLanguage(u)},a=(u,f)=>{f?(i(f),this.translator.changeLanguage(f),this.isLanguageChangingTo=void 0,this.emit("languageChanged",f),this.logger.log("languageChanged",f)):this.isLanguageChangingTo=void 0,o.resolve(function(){return r.t(...arguments)}),n&&n(u,function(){return r.t(...arguments)})},c=u=>{!t&&!u&&this.services.languageDetector&&(u=[]);const f=typeof u=="string"?u:this.services.languageUtils.getBestMatchFromCodes(u);f&&(this.language||i(f),this.translator.language||this.translator.changeLanguage(f),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(f)),this.loadResources(f,h=>{a(h,f)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?c(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(c):this.services.languageDetector.detect(c):c(t),o}getFixedT(t,n,r){var o=this;const i=function(a,c){let u;if(typeof c!="object"){for(var f=arguments.length,h=new Array(f>2?f-2:0),m=2;m<f;m++)h[m-2]=arguments[m];u=o.options.overloadTranslationOptionHandler([a,c].concat(h))}else u={...c};u.lng=u.lng||i.lng,u.lngs=u.lngs||i.lngs,u.ns=u.ns||i.ns,u.keyPrefix=u.keyPrefix||r||i.keyPrefix;const v=o.options.keySeparator||".";let x;return u.keyPrefix&&Array.isArray(a)?x=a.map(w=>`${u.keyPrefix}${v}${w}`):x=u.keyPrefix?`${u.keyPrefix}${v}${a}`:a,o.t(x,u)};return typeof t=="string"?i.lng=t:i.lngs=t,i.ns=n,i.keyPrefix=r,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const a=(c,u)=>{const f=this.services.backendConnector.state[`${c}|${u}`];return f===-1||f===2};if(n.precheck){const c=n.precheck(this,a);if(c!==void 0)return c}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(r,t)&&(!o||a(i,t)))}loadNamespaces(t,n){const r=Bl();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{r.resolve(),n&&n(o)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=Bl();typeof t=="string"&&(t=[t]);const o=this.options.preload||[],i=t.filter(a=>o.indexOf(a)<0);return i.length?(this.options.preload=o.concat(i),this.loadResources(a=>{r.resolve(),n&&n(a)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new kb(Mb());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new Dc(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:id;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const o={...this.options,...t,isClone:!0},i=new Dc(o);return(t.debug!==void 0||t.prefix!==void 0)&&(i.logger=i.logger.clone(t)),["store","services","language"].forEach(c=>{i[c]=this[c]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},r&&(i.store=new _b(this.store.data,o),i.services.resourceStore=i.store),i.translator=new cf(i.services,o),i.translator.on("*",function(c){for(var u=arguments.length,f=new Array(u>1?u-1:0),h=1;h<u;h++)f[h-1]=arguments[h];i.emit(c,...f)}),i.init(o,n),i.translator.options=o,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const ln=Dc.createInstance();ln.createInstance=Dc.createInstance;ln.createInstance;ln.dir;ln.init;ln.loadResources;ln.reloadResources;ln.use;ln.changeLanguage;ln.getFixedT;ln.t;ln.exists;ln.setDefaultNamespace;ln.hasLoadedNamespace;ln.loadNamespaces;ln.loadLanguages;function Im(e){"@babel/helpers - typeof";return Im=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Im(e)}function R$(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":Im(XMLHttpRequest))==="object"}function QM(e){return!!e&&typeof e.then=="function"}function JM(e){return QM(e)?e:Promise.resolve(e)}function ZM(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Om={exports:{}},sd={exports:{}},Ib;function e9(){return Ib||(Ib=1,function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof oo<"u"&&oo,r=function(){function i(){this.fetch=!1,this.DOMException=n.DOMException}return i.prototype=n,new i}();(function(i){(function(a){var c=typeof i<"u"&&i||typeof self<"u"&&self||typeof c<"u"&&c,u={searchParams:"URLSearchParams"in c,iterable:"Symbol"in c&&"iterator"in Symbol,blob:"FileReader"in c&&"Blob"in c&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in c,arrayBuffer:"ArrayBuffer"in c};function f(T){return T&&DataView.prototype.isPrototypeOf(T)}if(u.arrayBuffer)var h=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],m=ArrayBuffer.isView||function(T){return T&&h.indexOf(Object.prototype.toString.call(T))>-1};function v(T){if(typeof T!="string"&&(T=String(T)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(T)||T==="")throw new TypeError('Invalid character in header field name: "'+T+'"');return T.toLowerCase()}function x(T){return typeof T!="string"&&(T=String(T)),T}function w(T){var W={next:function(){var Y=T.shift();return{done:Y===void 0,value:Y}}};return u.iterable&&(W[Symbol.iterator]=function(){return W}),W}function b(T){this.map={},T instanceof b?T.forEach(function(W,Y){this.append(Y,W)},this):Array.isArray(T)?T.forEach(function(W){this.append(W[0],W[1])},this):T&&Object.getOwnPropertyNames(T).forEach(function(W){this.append(W,T[W])},this)}b.prototype.append=function(T,W){T=v(T),W=x(W);var Y=this.map[T];this.map[T]=Y?Y+", "+W:W},b.prototype.delete=function(T){delete this.map[v(T)]},b.prototype.get=function(T){return T=v(T),this.has(T)?this.map[T]:null},b.prototype.has=function(T){return this.map.hasOwnProperty(v(T))},b.prototype.set=function(T,W){this.map[v(T)]=x(W)},b.prototype.forEach=function(T,W){for(var Y in this.map)this.map.hasOwnProperty(Y)&&T.call(W,this.map[Y],Y,this)},b.prototype.keys=function(){var T=[];return this.forEach(function(W,Y){T.push(Y)}),w(T)},b.prototype.values=function(){var T=[];return this.forEach(function(W){T.push(W)}),w(T)},b.prototype.entries=function(){var T=[];return this.forEach(function(W,Y){T.push([Y,W])}),w(T)},u.iterable&&(b.prototype[Symbol.iterator]=b.prototype.entries);function P(T){if(T.bodyUsed)return Promise.reject(new TypeError("Already read"));T.bodyUsed=!0}function C(T){return new Promise(function(W,Y){T.onload=function(){W(T.result)},T.onerror=function(){Y(T.error)}})}function S(T){var W=new FileReader,Y=C(W);return W.readAsArrayBuffer(T),Y}function E(T){var W=new FileReader,Y=C(W);return W.readAsText(T),Y}function _(T){for(var W=new Uint8Array(T),Y=new Array(W.length),U=0;U<W.length;U++)Y[U]=String.fromCharCode(W[U]);return Y.join("")}function D(T){if(T.slice)return T.slice(0);var W=new Uint8Array(T.byteLength);return W.set(new Uint8Array(T)),W.buffer}function N(){return this.bodyUsed=!1,this._initBody=function(T){this.bodyUsed=this.bodyUsed,this._bodyInit=T,T?typeof T=="string"?this._bodyText=T:u.blob&&Blob.prototype.isPrototypeOf(T)?this._bodyBlob=T:u.formData&&FormData.prototype.isPrototypeOf(T)?this._bodyFormData=T:u.searchParams&&URLSearchParams.prototype.isPrototypeOf(T)?this._bodyText=T.toString():u.arrayBuffer&&u.blob&&f(T)?(this._bodyArrayBuffer=D(T.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(T)||m(T))?this._bodyArrayBuffer=D(T):this._bodyText=T=Object.prototype.toString.call(T):this._bodyText="",this.headers.get("content-type")||(typeof T=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):u.searchParams&&URLSearchParams.prototype.isPrototypeOf(T)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},u.blob&&(this.blob=function(){var T=P(this);if(T)return T;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var T=P(this);return T||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(S)}),this.text=function(){var T=P(this);if(T)return T;if(this._bodyBlob)return E(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(_(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},u.formData&&(this.formData=function(){return this.text().then(J)}),this.json=function(){return this.text().then(JSON.parse)},this}var j=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function O(T){var W=T.toUpperCase();return j.indexOf(W)>-1?W:T}function V(T,W){if(!(this instanceof V))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');W=W||{};var Y=W.body;if(T instanceof V){if(T.bodyUsed)throw new TypeError("Already read");this.url=T.url,this.credentials=T.credentials,W.headers||(this.headers=new b(T.headers)),this.method=T.method,this.mode=T.mode,this.signal=T.signal,!Y&&T._bodyInit!=null&&(Y=T._bodyInit,T.bodyUsed=!0)}else this.url=String(T);if(this.credentials=W.credentials||this.credentials||"same-origin",(W.headers||!this.headers)&&(this.headers=new b(W.headers)),this.method=O(W.method||this.method||"GET"),this.mode=W.mode||this.mode||null,this.signal=W.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Y)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(Y),(this.method==="GET"||this.method==="HEAD")&&(W.cache==="no-store"||W.cache==="no-cache")){var U=/([?&])_=[^&]*/;if(U.test(this.url))this.url=this.url.replace(U,"$1_="+new Date().getTime());else{var B=/\?/;this.url+=(B.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}V.prototype.clone=function(){return new V(this,{body:this._bodyInit})};function J(T){var W=new FormData;return T.trim().split("&").forEach(function(Y){if(Y){var U=Y.split("="),B=U.shift().replace(/\+/g," "),L=U.join("=").replace(/\+/g," ");W.append(decodeURIComponent(B),decodeURIComponent(L))}}),W}function ie(T){var W=new b,Y=T.replace(/\r?\n[\t ]+/g," ");return Y.split("\r").map(function(U){return U.indexOf(` -`)===0?U.substr(1,U.length):U}).forEach(function(U){var B=U.split(":"),L=B.shift().trim();if(L){var H=B.join(":").trim();W.append(L,H)}}),W}N.call(V.prototype);function te(T,W){if(!(this instanceof te))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');W||(W={}),this.type="default",this.status=W.status===void 0?200:W.status,this.ok=this.status>=200&&this.status<300,this.statusText=W.statusText===void 0?"":""+W.statusText,this.headers=new b(W.headers),this.url=W.url||"",this._initBody(T)}N.call(te.prototype),te.prototype.clone=function(){return new te(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new b(this.headers),url:this.url})},te.error=function(){var T=new te(null,{status:0,statusText:""});return T.type="error",T};var ge=[301,302,303,307,308];te.redirect=function(T,W){if(ge.indexOf(W)===-1)throw new RangeError("Invalid status code");return new te(null,{status:W,headers:{location:T}})},a.DOMException=c.DOMException;try{new a.DOMException}catch{a.DOMException=function(W,Y){this.message=W,this.name=Y;var U=Error(W);this.stack=U.stack},a.DOMException.prototype=Object.create(Error.prototype),a.DOMException.prototype.constructor=a.DOMException}function le(T,W){return new Promise(function(Y,U){var B=new V(T,W);if(B.signal&&B.signal.aborted)return U(new a.DOMException("Aborted","AbortError"));var L=new XMLHttpRequest;function H(){L.abort()}L.onload=function(){var ne={status:L.status,statusText:L.statusText,headers:ie(L.getAllResponseHeaders()||"")};ne.url="responseURL"in L?L.responseURL:ne.headers.get("X-Request-URL");var fe="response"in L?L.response:L.responseText;setTimeout(function(){Y(new te(fe,ne))},0)},L.onerror=function(){setTimeout(function(){U(new TypeError("Network request failed"))},0)},L.ontimeout=function(){setTimeout(function(){U(new TypeError("Network request failed"))},0)},L.onabort=function(){setTimeout(function(){U(new a.DOMException("Aborted","AbortError"))},0)};function oe(ne){try{return ne===""&&c.location.href?c.location.href:ne}catch{return ne}}L.open(B.method,oe(B.url),!0),B.credentials==="include"?L.withCredentials=!0:B.credentials==="omit"&&(L.withCredentials=!1),"responseType"in L&&(u.blob?L.responseType="blob":u.arrayBuffer&&B.headers.get("Content-Type")&&B.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(L.responseType="arraybuffer")),W&&typeof W.headers=="object"&&!(W.headers instanceof b)?Object.getOwnPropertyNames(W.headers).forEach(function(ne){L.setRequestHeader(ne,x(W.headers[ne]))}):B.headers.forEach(function(ne,fe){L.setRequestHeader(fe,ne)}),B.signal&&(B.signal.addEventListener("abort",H),L.onreadystatechange=function(){L.readyState===4&&B.signal.removeEventListener("abort",H)}),L.send(typeof B._bodyInit>"u"?null:B._bodyInit)})}return le.polyfill=!0,c.fetch||(c.fetch=le,c.Headers=b,c.Request=V,c.Response=te),a.Headers=b,a.Request=V,a.Response=te,a.fetch=le,a})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var o=n.fetch?n:r;t=o.fetch,t.default=o.fetch,t.fetch=o.fetch,t.Headers=o.Headers,t.Request=o.Request,t.Response=o.Response,e.exports=t}(sd,sd.exports)),sd.exports}(function(e,t){var n;if(typeof fetch=="function"&&(typeof oo<"u"&&oo.fetch?n=oo.fetch:typeof window<"u"&&window.fetch?n=window.fetch:n=fetch),typeof ZM<"u"&&(typeof window>"u"||typeof window.document>"u")){var r=n||e9();r.default&&(r=r.default),t.default=r,e.exports=t.default}})(Om,Om.exports);var _$=Om.exports;const N$=Qa(_$),Ob=m0({__proto__:null,default:N$},[_$]);function Lb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ab(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Lb(Object(n),!0).forEach(function(r){t9(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lb(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function t9(e,t,n){return t=n9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n9(e){var t=r9(e,"string");return Ps(t)==="symbol"?t:String(t)}function r9(e,t){if(Ps(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(Ps(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ps(e){"@babel/helpers - typeof";return Ps=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ps(e)}var Oo;typeof fetch=="function"&&(typeof global<"u"&&global.fetch?Oo=global.fetch:typeof window<"u"&&window.fetch?Oo=window.fetch:Oo=fetch);var jc;R$()&&(typeof global<"u"&&global.XMLHttpRequest?jc=global.XMLHttpRequest:typeof window<"u"&&window.XMLHttpRequest&&(jc=window.XMLHttpRequest));var uf;typeof ActiveXObject=="function"&&(typeof global<"u"&&global.ActiveXObject?uf=global.ActiveXObject:typeof window<"u"&&window.ActiveXObject&&(uf=window.ActiveXObject));!Oo&&Ob&&!jc&&!uf&&(Oo=N$||Ob);typeof Oo!="function"&&(Oo=void 0);var Lm=function(t,n){if(n&&Ps(n)==="object"){var r="";for(var o in n)r+="&"+encodeURIComponent(o)+"="+encodeURIComponent(n[o]);if(!r)return t;t=t+(t.indexOf("?")!==-1?"&":"?")+r.slice(1)}return t},Fb=function(t,n,r){var o=function(a){if(!a.ok)return r(a.statusText||"Error",{status:a.status});a.text().then(function(c){r(null,{status:a.status,data:c})}).catch(r)};typeof fetch=="function"?fetch(t,n).then(o).catch(r):Oo(t,n).then(o).catch(r)},zb=!1,o9=function(t,n,r,o){t.queryStringParams&&(n=Lm(n,t.queryStringParams));var i=Ab({},typeof t.customHeaders=="function"?t.customHeaders():t.customHeaders);typeof window>"u"&&typeof global<"u"&&typeof global.process<"u"&&global.process.versions&&global.process.versions.node&&(i["User-Agent"]="i18next-http-backend (node/".concat(global.process.version,"; ").concat(global.process.platform," ").concat(global.process.arch,")")),r&&(i["Content-Type"]="application/json");var a=typeof t.requestOptions=="function"?t.requestOptions(r):t.requestOptions,c=Ab({method:r?"POST":"GET",body:r?t.stringify(r):void 0,headers:i},zb?{}:a);try{Fb(n,c,o)}catch(u){if(!a||Object.keys(a).length===0||!u.message||u.message.indexOf("not implemented")<0)return o(u);try{Object.keys(a).forEach(function(f){delete c[f]}),Fb(n,c,o),zb=!0}catch(f){o(f)}}},i9=function(t,n,r,o){r&&Ps(r)==="object"&&(r=Lm("",r).slice(1)),t.queryStringParams&&(n=Lm(n,t.queryStringParams));try{var i;jc?i=new jc:i=new uf("MSXML2.XMLHTTP.3.0"),i.open(r?"POST":"GET",n,1),t.crossDomain||i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.withCredentials=!!t.withCredentials,r&&i.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),i.overrideMimeType&&i.overrideMimeType("application/json");var a=t.customHeaders;if(a=typeof a=="function"?a():a,a)for(var c in a)i.setRequestHeader(c,a[c]);i.onreadystatechange=function(){i.readyState>3&&o(i.status>=400?i.statusText:null,{status:i.status,data:i.responseText})},i.send(r)}catch(u){console&&console.log(u)}},s9=function(t,n,r,o){if(typeof r=="function"&&(o=r,r=void 0),o=o||function(){},Oo&&n.indexOf("file:")!==0)return o9(t,n,r,o);if(R$()||typeof ActiveXObject=="function")return i9(t,n,r,o);o(new Error("No fetch and no xhr implementation found!"))};function Mc(e){"@babel/helpers - typeof";return Mc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mc(e)}function Ub(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function cg(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ub(Object(n),!0).forEach(function(r){k$(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ub(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function a9(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bb(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,D$(r.key),r)}}function l9(e,t,n){return t&&Bb(e.prototype,t),n&&Bb(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function k$(e,t,n){return t=D$(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D$(e){var t=c9(e,"string");return Mc(t)==="symbol"?t:String(t)}function c9(e,t){if(Mc(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(Mc(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var u9=function(){return{loadPath:"/locales/{{lng}}/{{ns}}.json",addPath:"/locales/add/{{lng}}/{{ns}}",parse:function(n){return JSON.parse(n)},stringify:JSON.stringify,parsePayload:function(n,r,o){return k$({},r,o||"")},parseLoadPayload:function(n,r){},request:s9,reloadInterval:typeof window<"u"?!1:60*60*1e3,customHeaders:{},queryStringParams:{},crossDomain:!1,withCredentials:!1,overrideMimeType:!1,requestOptions:{mode:"cors",credentials:"same-origin",cache:"default"}}},j$=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};a9(this,e),this.services=t,this.options=n,this.allOptions=r,this.type="backend",this.init(t,n,r)}return l9(e,[{key:"init",value:function(n){var r=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n,this.options=cg(cg(cg({},u9()),this.options||{}),o),this.allOptions=i,this.services&&this.options.reloadInterval&&setInterval(function(){return r.reload()},this.options.reloadInterval)}},{key:"readMulti",value:function(n,r,o){this._readAny(n,n,r,r,o)}},{key:"read",value:function(n,r,o){this._readAny([n],n,[r],r,o)}},{key:"_readAny",value:function(n,r,o,i,a){var c=this,u=this.options.loadPath;typeof this.options.loadPath=="function"&&(u=this.options.loadPath(n,o)),u=JM(u),u.then(function(f){if(!f)return a(null,{});var h=c.services.interpolator.interpolate(f,{lng:n.join("+"),ns:o.join("+")});c.loadUrl(h,a,r,i)})}},{key:"loadUrl",value:function(n,r,o,i){var a=this,c=typeof o=="string"?[o]:o,u=typeof i=="string"?[i]:i,f=this.options.parseLoadPayload(c,u);this.options.request(this.options,n,f,function(h,m){if(m&&(m.status>=500&&m.status<600||!m.status))return r("failed loading "+n+"; status code: "+m.status,!0);if(m&&m.status>=400&&m.status<500)return r("failed loading "+n+"; status code: "+m.status,!1);if(!m&&h&&h.message&&h.message.indexOf("Failed to fetch")>-1)return r("failed loading "+n+": "+h.message,!0);if(h)return r(h,!1);var v,x;try{typeof m.data=="string"?v=a.options.parse(m.data,o,i):v=m.data}catch{x="failed parsing "+n+" to json"}if(x)return r(x,!1);r(null,v)})}},{key:"create",value:function(n,r,o,i,a){var c=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var u=this.options.parsePayload(r,o,i),f=0,h=[],m=[];n.forEach(function(v){var x=c.options.addPath;typeof c.options.addPath=="function"&&(x=c.options.addPath(v,r));var w=c.services.interpolator.interpolate(x,{lng:v,ns:r});c.options.request(c.options,w,u,function(b,P){f+=1,h.push(b),m.push(P),f===n.length&&typeof a=="function"&&a(h,m)})})}}},{key:"reload",value:function(){var n=this,r=this.services,o=r.backendConnector,i=r.languageUtils,a=r.logger,c=o.language;if(!(c&&c.toLowerCase()==="cimode")){var u=[],f=function(m){var v=i.toResolveHierarchy(m);v.forEach(function(x){u.indexOf(x)<0&&u.push(x)})};f(c),this.allOptions.preload&&this.allOptions.preload.forEach(function(h){return f(h)}),u.forEach(function(h){n.allOptions.ns.forEach(function(m){o.read(h,m,"read",null,null,function(v,x){v&&a.warn("loading namespace ".concat(m," for language ").concat(h," failed"),v),!v&&x&&a.log("loaded namespace ".concat(m," for language ").concat(h),x),o.loaded("".concat(h,"|").concat(m),v,x)})})})}}}]),e}();j$.type="backend";function d9(){if(console&&console.warn){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];typeof t[0]=="string"&&(t[0]=`react-i18next:: ${t[0]}`),console.warn(...t)}}const Vb={};function Am(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];typeof t[0]=="string"&&Vb[t[0]]||(typeof t[0]=="string"&&(Vb[t[0]]=new Date),d9(...t))}const M$=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}};function Hb(e,t,n){e.loadNamespaces(t,M$(e,n))}function Wb(e,t,n,r){typeof n=="string"&&(n=[n]),n.forEach(o=>{e.options.ns.indexOf(o)<0&&e.options.ns.push(o)}),e.loadLanguages(t,M$(e,r))}function f9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=t.languages[0],o=t.options?t.options.fallbackLng:!1,i=t.languages[t.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const a=(c,u)=>{const f=t.services.backendConnector.state[`${c}|${u}`];return f===-1||f===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!a(t.isLanguageChangingTo,e)?!1:!!(t.hasResourceBundle(r,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||a(r,e)&&(!o||a(i,e)))}function p9(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!t.languages||!t.languages.length?(Am("i18n.languages were undefined or empty",t.languages),!0):t.options.ignoreJSONStructure!==void 0?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(o,i)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&o.services.backendConnector.backend&&o.isLanguageChangingTo&&!i(o.isLanguageChangingTo,e))return!1}}):f9(e,t,n)}const h9=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,g9={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},m9=e=>g9[e],v9=e=>e.replace(h9,m9);let Fm={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:v9};function x9(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fm={...Fm,...e}}function y9(){return Fm}let T$;function w9(e){T$=e}function b9(){return T$}const S9={type:"3rdParty",init(e){x9(e.options.react),w9(e)}},C9=p.createContext();class $9{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const P9=(e,t)=>{const n=p.useRef();return p.useEffect(()=>{n.current=t?n.current:e},[e,t]),n.current};function I$(e,t,n,r){return e.getFixedT(t,n,r)}function E9(e,t,n,r){return p.useCallback(I$(e,t,n,r),[e,t,n,r])}function yv(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:n}=t,{i18n:r,defaultNS:o}=p.useContext(C9)||{},i=n||r||b9();if(i&&!i.reportNamespaces&&(i.reportNamespaces=new $9),!i){Am("You will need to pass in an i18next instance by using initReactI18next");const D=(j,O)=>typeof O=="string"?O:O&&typeof O=="object"&&typeof O.defaultValue=="string"?O.defaultValue:Array.isArray(j)?j[j.length-1]:j,N=[D,{},!1];return N.t=D,N.i18n={},N.ready=!1,N}i.options.react&&i.options.react.wait!==void 0&&Am("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const a={...y9(),...i.options.react,...t},{useSuspense:c,keyPrefix:u}=a;let f=e||o||i.options&&i.options.defaultNS;f=typeof f=="string"?[f]:f||["translation"],i.reportNamespaces.addUsedNamespaces&&i.reportNamespaces.addUsedNamespaces(f);const h=(i.isInitialized||i.initializedStoreOnce)&&f.every(D=>p9(D,i,a)),m=E9(i,t.lng||null,a.nsMode==="fallback"?f:f[0],u),v=()=>m,x=()=>I$(i,t.lng||null,a.nsMode==="fallback"?f:f[0],u),[w,b]=p.useState(v);let P=f.join();t.lng&&(P=`${t.lng}${P}`);const C=P9(P),S=p.useRef(!0);p.useEffect(()=>{const{bindI18n:D,bindI18nStore:N}=a;S.current=!0,!h&&!c&&(t.lng?Wb(i,t.lng,f,()=>{S.current&&b(x)}):Hb(i,f,()=>{S.current&&b(x)})),h&&C&&C!==P&&S.current&&b(x);function j(){S.current&&b(x)}return D&&i&&i.on(D,j),N&&i&&i.store.on(N,j),()=>{S.current=!1,D&&i&&D.split(" ").forEach(O=>i.off(O,j)),N&&i&&N.split(" ").forEach(O=>i.store.off(O,j))}},[i,P]);const E=p.useRef(!0);p.useEffect(()=>{S.current&&!E.current&&b(v),E.current=!1},[i,u]);const _=[w,i,h];if(_.t=w,_.i18n=i,_.ready=h,h||!h&&!c)return _;throw new Promise(D=>{t.lng?Wb(i,t.lng,f,()=>D()):Hb(i,f,()=>D())})}ln.use(j$).use(S9).init({fallbackLng:"en",debug:!1});function Kb(){const e=w$();return console.error(e),d.jsxs("div",{id:"error-page",children:[d.jsx("h1",{children:"Oops!"}),d.jsx("p",{children:"Sorry, an unexpected error has occurred."}),d.jsx("p",{children:d.jsx("i",{children:gv(e)&&e.statusText})})]})}function q(){return q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},q.apply(this,arguments)}function R9(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function Wf(...e){return t=>e.forEach(n=>R9(n,t))}function Ze(...e){return p.useCallback(Wf(...e),e)}const Vo=p.forwardRef((e,t)=>{const{children:n,...r}=e,o=p.Children.toArray(n),i=o.find(_9);if(i){const a=i.props.children,c=o.map(u=>u===i?p.Children.count(a)>1?p.Children.only(null):p.isValidElement(a)?a.props.children:null:u);return p.createElement(zm,q({},r,{ref:t}),p.isValidElement(a)?p.cloneElement(a,void 0,c):null)}return p.createElement(zm,q({},r,{ref:t}),n)});Vo.displayName="Slot";const zm=p.forwardRef((e,t)=>{const{children:n,...r}=e;return p.isValidElement(n)?p.cloneElement(n,{...N9(r,n.props),ref:t?Wf(t,n.ref):n.ref}):p.Children.count(n)>1?p.Children.only(null):null});zm.displayName="SlotClone";const O$=({children:e})=>p.createElement(p.Fragment,null,e);function _9(e){return p.isValidElement(e)&&e.type===O$}function N9(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...c)=>{i(...c),o(...c)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function L$(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=L$(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function k9(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=L$(e))&&(r&&(r+=" "),r+=t);return r}const wv="-";function D9(e){const t=M9(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;function o(a){const c=a.split(wv);return c[0]===""&&c.length!==1&&c.shift(),A$(c,t)||j9(a)}function i(a,c){const u=n[a]||[];return c&&r[a]?[...u,...r[a]]:u}return{getClassGroupId:o,getConflictingClassGroupIds:i}}function A$(e,t){var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?A$(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const i=e.join(wv);return(a=t.validators.find(({validator:c})=>c(i)))==null?void 0:a.classGroupId}const Gb=/^\[(.+)\]$/;function j9(e){if(Gb.test(e)){const t=Gb.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}}function M9(e){const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return I9(Object.entries(e.classGroups),n).forEach(([i,a])=>{Um(a,r,i,t)}),r}function Um(e,t,n,r){e.forEach(o=>{if(typeof o=="string"){const i=o===""?t:qb(t,o);i.classGroupId=n;return}if(typeof o=="function"){if(T9(o)){Um(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{Um(a,qb(t,i),n,r)})})}function qb(e,t){let n=e;return t.split(wv).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n}function T9(e){return e.isThemeGetter}function I9(e,t){return t?e.map(([n,r])=>{const o=r.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([a,c])=>[t+a,c])):i);return[n,o]}):e}function O9(e){if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;function o(i,a){n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)}return{get(i){let a=n.get(i);if(a!==void 0)return a;if((a=r.get(i))!==void 0)return o(i,a),a},set(i,a){n.has(i)?n.set(i,a):o(i,a)}}}const F$="!";function L9(e){const t=e.separator,n=t.length===1,r=t[0],o=t.length;return function(a){const c=[];let u=0,f=0,h;for(let b=0;b<a.length;b++){let P=a[b];if(u===0){if(P===r&&(n||a.slice(b,b+o)===t)){c.push(a.slice(f,b)),f=b+o;continue}if(P==="/"){h=b;continue}}P==="["?u++:P==="]"&&u--}const m=c.length===0?a:a.substring(f),v=m.startsWith(F$),x=v?m.substring(1):m,w=h&&h>f?h-f:void 0;return{modifiers:c,hasImportantModifier:v,baseClassName:x,maybePostfixModifierPosition:w}}}function A9(e){if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t}function F9(e){return{cache:O9(e.cacheSize),splitModifiers:L9(e),...D9(e)}}const z9=/\s+/;function U9(e,t){const{splitModifiers:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=new Set;return e.trim().split(z9).map(a=>{const{modifiers:c,hasImportantModifier:u,baseClassName:f,maybePostfixModifierPosition:h}=n(a);let m=r(h?f.substring(0,h):f),v=!!h;if(!m){if(!h)return{isTailwindClass:!1,originalClassName:a};if(m=r(f),!m)return{isTailwindClass:!1,originalClassName:a};v=!1}const x=A9(c).join(":");return{isTailwindClass:!0,modifierId:u?x+F$:x,classGroupId:m,originalClassName:a,hasPostfixModifier:v}}).reverse().filter(a=>{if(!a.isTailwindClass)return!0;const{modifierId:c,classGroupId:u,hasPostfixModifier:f}=a,h=c+u;return i.has(h)?!1:(i.add(h),o(u,f).forEach(m=>i.add(c+m)),!0)}).reverse().map(a=>a.originalClassName).join(" ")}function B9(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=z$(t))&&(r&&(r+=" "),r+=n);return r}function z$(e){if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=z$(e[r]))&&(n&&(n+=" "),n+=t);return n}function V9(e,...t){let n,r,o,i=a;function a(u){const f=t.reduce((h,m)=>m(h),e());return n=F9(f),r=n.cache.get,o=n.cache.set,i=c,c(u)}function c(u){const f=r(u);if(f)return f;const h=U9(u,n);return o(u,h),h}return function(){return i(B9.apply(null,arguments))}}function yt(e){const t=n=>n[e]||[];return t.isThemeGetter=!0,t}const U$=/^\[(?:([a-z-]+):)?(.+)\]$/i,H9=/^\d+\/\d+$/,W9=new Set(["px","full","screen"]),K9=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,G9=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,q9=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Y9=/^-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,X9=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;function Eo(e){return fs(e)||W9.has(e)||H9.test(e)}function pi(e){return nl(e,"length",oT)}function fs(e){return!!e&&!Number.isNaN(Number(e))}function ad(e){return nl(e,"number",fs)}function Vl(e){return!!e&&Number.isInteger(Number(e))}function Q9(e){return e.endsWith("%")&&fs(e.slice(0,-1))}function Ue(e){return U$.test(e)}function hi(e){return K9.test(e)}const J9=new Set(["length","size","percentage"]);function Z9(e){return nl(e,J9,B$)}function eT(e){return nl(e,"position",B$)}const tT=new Set(["image","url"]);function nT(e){return nl(e,tT,sT)}function rT(e){return nl(e,"",iT)}function Hl(){return!0}function nl(e,t,n){const r=U$.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1}function oT(e){return G9.test(e)&&!q9.test(e)}function B$(){return!1}function iT(e){return Y9.test(e)}function sT(e){return X9.test(e)}function aT(){const e=yt("colors"),t=yt("spacing"),n=yt("blur"),r=yt("brightness"),o=yt("borderColor"),i=yt("borderRadius"),a=yt("borderSpacing"),c=yt("borderWidth"),u=yt("contrast"),f=yt("grayscale"),h=yt("hueRotate"),m=yt("invert"),v=yt("gap"),x=yt("gradientColorStops"),w=yt("gradientColorStopPositions"),b=yt("inset"),P=yt("margin"),C=yt("opacity"),S=yt("padding"),E=yt("saturate"),_=yt("scale"),D=yt("sepia"),N=yt("skew"),j=yt("space"),O=yt("translate"),V=()=>["auto","contain","none"],J=()=>["auto","hidden","clip","visible","scroll"],ie=()=>["auto",Ue,t],te=()=>[Ue,t],ge=()=>["",Eo,pi],le=()=>["auto",fs,Ue],T=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],W=()=>["solid","dashed","dotted","double","none"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter"],U=()=>["start","end","center","between","around","evenly","stretch"],B=()=>["","0",Ue],L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],H=()=>[fs,ad],oe=()=>[fs,Ue];return{cacheSize:500,separator:":",theme:{colors:[Hl],spacing:[Eo,pi],blur:["none","",hi,Ue],brightness:H(),borderColor:[e],borderRadius:["none","","full",hi,Ue],borderSpacing:te(),borderWidth:ge(),contrast:H(),grayscale:B(),hueRotate:oe(),invert:B(),gap:te(),gradientColorStops:[e],gradientColorStopPositions:[Q9,pi],inset:ie(),margin:ie(),opacity:H(),padding:te(),saturate:H(),scale:H(),sepia:B(),skew:oe(),space:te(),translate:te()},classGroups:{aspect:[{aspect:["auto","square","video",Ue]}],container:["container"],columns:[{columns:[hi]}],"break-after":[{"break-after":L()}],"break-before":[{"break-before":L()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...T(),Ue]}],overflow:[{overflow:J()}],"overflow-x":[{"overflow-x":J()}],"overflow-y":[{"overflow-y":J()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Vl,Ue]}],basis:[{basis:ie()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Ue]}],grow:[{grow:B()}],shrink:[{shrink:B()}],order:[{order:["first","last","none",Vl,Ue]}],"grid-cols":[{"grid-cols":[Hl]}],"col-start-end":[{col:["auto",{span:["full",Vl,Ue]},Ue]}],"col-start":[{"col-start":le()}],"col-end":[{"col-end":le()}],"grid-rows":[{"grid-rows":[Hl]}],"row-start-end":[{row:["auto",{span:[Vl,Ue]},Ue]}],"row-start":[{"row-start":le()}],"row-end":[{"row-end":le()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Ue]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Ue]}],gap:[{gap:[v]}],"gap-x":[{"gap-x":[v]}],"gap-y":[{"gap-y":[v]}],"justify-content":[{justify:["normal",...U()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...U(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...U(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[S]}],px:[{px:[S]}],py:[{py:[S]}],ps:[{ps:[S]}],pe:[{pe:[S]}],pt:[{pt:[S]}],pr:[{pr:[S]}],pb:[{pb:[S]}],pl:[{pl:[S]}],m:[{m:[P]}],mx:[{mx:[P]}],my:[{my:[P]}],ms:[{ms:[P]}],me:[{me:[P]}],mt:[{mt:[P]}],mr:[{mr:[P]}],mb:[{mb:[P]}],ml:[{ml:[P]}],"space-x":[{"space-x":[j]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[j]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Ue,t]}],"min-w":[{"min-w":[Ue,t,"min","max","fit"]}],"max-w":[{"max-w":[Ue,t,"none","full","min","max","fit","prose",{screen:[hi]},hi]}],h:[{h:[Ue,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Ue,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Ue,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Ue,t,"auto","min","max","fit"]}],"font-size":[{text:["base",hi,pi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ad]}],"font-family":[{font:[Hl]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Ue]}],"line-clamp":[{"line-clamp":["none",fs,ad]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Eo,Ue]}],"list-image":[{"list-image":["none",Ue]}],"list-style-type":[{list:["none","disc","decimal",Ue]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[C]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[C]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Eo,pi]}],"underline-offset":[{"underline-offset":["auto",Eo,Ue]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:te()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[C]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...T(),eT]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Z9]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},nT]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[w]}],"gradient-via-pos":[{via:[w]}],"gradient-to-pos":[{to:[w]}],"gradient-from":[{from:[x]}],"gradient-via":[{via:[x]}],"gradient-to":[{to:[x]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[c]}],"border-w-x":[{"border-x":[c]}],"border-w-y":[{"border-y":[c]}],"border-w-s":[{"border-s":[c]}],"border-w-e":[{"border-e":[c]}],"border-w-t":[{"border-t":[c]}],"border-w-r":[{"border-r":[c]}],"border-w-b":[{"border-b":[c]}],"border-w-l":[{"border-l":[c]}],"border-opacity":[{"border-opacity":[C]}],"border-style":[{border:[...W(),"hidden"]}],"divide-x":[{"divide-x":[c]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[c]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[C]}],"divide-style":[{divide:W()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...W()]}],"outline-offset":[{"outline-offset":[Eo,Ue]}],"outline-w":[{outline:[Eo,pi]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ge()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[C]}],"ring-offset-w":[{"ring-offset":[Eo,pi]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",hi,rT]}],"shadow-color":[{shadow:[Hl]}],opacity:[{opacity:[C]}],"mix-blend":[{"mix-blend":Y()}],"bg-blend":[{"bg-blend":Y()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",hi,Ue]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[E]}],sepia:[{sepia:[D]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[h]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[C]}],"backdrop-saturate":[{"backdrop-saturate":[E]}],"backdrop-sepia":[{"backdrop-sepia":[D]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Ue]}],duration:[{duration:oe()}],ease:[{ease:["linear","in","out","in-out",Ue]}],delay:[{delay:oe()}],animate:[{animate:["none","spin","ping","pulse","bounce",Ue]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[_]}],"scale-x":[{"scale-x":[_]}],"scale-y":[{"scale-y":[_]}],rotate:[{rotate:[Vl,Ue]}],"translate-x":[{"translate-x":[O]}],"translate-y":[{"translate-y":[O]}],"skew-x":[{"skew-x":[N]}],"skew-y":[{"skew-y":[N]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Ue]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ue]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":te()}],"scroll-mx":[{"scroll-mx":te()}],"scroll-my":[{"scroll-my":te()}],"scroll-ms":[{"scroll-ms":te()}],"scroll-me":[{"scroll-me":te()}],"scroll-mt":[{"scroll-mt":te()}],"scroll-mr":[{"scroll-mr":te()}],"scroll-mb":[{"scroll-mb":te()}],"scroll-ml":[{"scroll-ml":te()}],"scroll-p":[{"scroll-p":te()}],"scroll-px":[{"scroll-px":te()}],"scroll-py":[{"scroll-py":te()}],"scroll-ps":[{"scroll-ps":te()}],"scroll-pe":[{"scroll-pe":te()}],"scroll-pt":[{"scroll-pt":te()}],"scroll-pr":[{"scroll-pr":te()}],"scroll-pb":[{"scroll-pb":te()}],"scroll-pl":[{"scroll-pl":te()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ue]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Eo,pi,ad]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}const lT=V9(aT);function se(...e){return lT(k9(e))}function V$(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=V$(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function cT(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=V$(e))&&(r&&(r+=" "),r+=t);return r}const Yb=e=>typeof e=="boolean"?"".concat(e):e===0?"0":e,Xb=cT,bv=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Xb(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:i}=t,a=Object.keys(o).map(f=>{const h=n==null?void 0:n[f],m=i==null?void 0:i[f];if(h===null)return null;const v=Yb(h)||Yb(m);return o[f][v]}),c=n&&Object.entries(n).reduce((f,h)=>{let[m,v]=h;return v===void 0||(f[m]=v),f},{}),u=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,h)=>{let{class:m,className:v,...x}=h;return Object.entries(x).every(w=>{let[b,P]=w;return Array.isArray(P)?P.includes({...i,...c}[b]):{...i,...c}[b]===P})?[...f,m,v]:f},[]);return Xb(e,a,u,n==null?void 0:n.class,n==null?void 0:n.className)},Sv=bv("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),at=p.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},i)=>{const a=r?Vo:"button";return d.jsx(a,{className:se(Sv({variant:t,size:n,className:e})),ref:i,...o})});at.displayName="Button";function he(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function uT(e,t){const n=p.createContext(t);function r(i){const{children:a,...c}=i,u=p.useMemo(()=>c,Object.values(c));return p.createElement(n.Provider,{value:u},a)}function o(i){const a=p.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",[r,o]}function ur(e,t=[]){let n=[];function r(i,a){const c=p.createContext(a),u=n.length;n=[...n,a];function f(m){const{scope:v,children:x,...w}=m,b=(v==null?void 0:v[e][u])||c,P=p.useMemo(()=>w,Object.values(w));return p.createElement(b.Provider,{value:P},x)}function h(m,v){const x=(v==null?void 0:v[e][u])||c,w=p.useContext(x);if(w)return w;if(a!==void 0)return a;throw new Error(`\`${m}\` must be used within \`${i}\``)}return f.displayName=i+"Provider",[f,h]}const o=()=>{const i=n.map(a=>p.createContext(a));return function(c){const u=(c==null?void 0:c[e])||i;return p.useMemo(()=>({[`__scope${e}`]:{...c,[e]:u}}),[c,u])}};return o.scopeName=e,[r,dT(o,...t)]}function dT(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((c,{useScope:u,scopeName:f})=>{const m=u(i)[`__scope${f}`];return{...c,...m}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}function Zt(e){const t=p.useRef(e);return p.useEffect(()=>{t.current=e}),p.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function Ii({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=fT({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:r,c=Zt(n),u=p.useCallback(f=>{if(i){const m=typeof f=="function"?f(e):f;m!==e&&c(m)}else o(f)},[i,e,o,c]);return[a,u]}function fT({defaultProp:e,onChange:t}){const n=p.useState(e),[r]=n,o=p.useRef(r),i=Zt(t);return p.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}function H$(e){const t=p.useRef({value:e,previous:e});return p.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}const _n=globalThis!=null&&globalThis.document?p.useLayoutEffect:()=>{};function W$(e){const[t,n]=p.useState(void 0);return _n(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let a,c;if("borderBoxSize"in i){const u=i.borderBoxSize,f=Array.isArray(u)?u[0]:u;a=f.inlineSize,c=f.blockSize}else a=e.offsetWidth,c=e.offsetHeight;n({width:a,height:c})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}const pT=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],Oe=pT.reduce((e,t)=>{const n=p.forwardRef((r,o)=>{const{asChild:i,...a}=r,c=i?Vo:t;return p.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),p.createElement(c,q({},a,{ref:o}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function K$(e,t){e&&po.flushSync(()=>e.dispatchEvent(t))}const G$="Switch",[hT,OW]=ur(G$),[gT,mT]=hT(G$),vT=p.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:o,defaultChecked:i,required:a,disabled:c,value:u="on",onCheckedChange:f,...h}=e,[m,v]=p.useState(null),x=Ze(t,S=>v(S)),w=p.useRef(!1),b=m?!!m.closest("form"):!0,[P=!1,C]=Ii({prop:o,defaultProp:i,onChange:f});return p.createElement(gT,{scope:n,checked:P,disabled:c},p.createElement(Oe.button,q({type:"button",role:"switch","aria-checked":P,"aria-required":a,"data-state":q$(P),"data-disabled":c?"":void 0,disabled:c,value:u},h,{ref:x,onClick:he(e.onClick,S=>{C(E=>!E),b&&(w.current=S.isPropagationStopped(),w.current||S.stopPropagation())})})),b&&p.createElement(wT,{control:m,bubbles:!w.current,name:r,value:u,checked:P,required:a,disabled:c,style:{transform:"translateX(-100%)"}}))}),xT="SwitchThumb",yT=p.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,o=mT(xT,n);return p.createElement(Oe.span,q({"data-state":q$(o.checked),"data-disabled":o.disabled?"":void 0},r,{ref:t}))}),wT=e=>{const{control:t,checked:n,bubbles:r=!0,...o}=e,i=p.useRef(null),a=H$(n),c=W$(t);return p.useEffect(()=>{const u=i.current,f=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(f,"checked").set;if(a!==n&&m){const v=new Event("click",{bubbles:r});m.call(u,n),u.dispatchEvent(v)}},[a,n,r]),p.createElement("input",q({type:"checkbox","aria-hidden":!0,defaultChecked:n},o,{tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}}))};function q$(e){return e?"checked":"unchecked"}const Y$=vT,bT=yT,Wt=p.forwardRef(({className:e,...t},n)=>d.jsx(Y$,{className:se("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:d.jsx(bT,{className:se("pointer-events-none block h-5 w-5 dark:data-[state=checked]:bg-slate-800 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));Wt.displayName=Y$.displayName;var ST={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const Qb=e=>{let t;const n=new Set,r=(h,m)=>{const v=typeof h=="function"?h(t):h;if(!Object.is(v,t)){const x=t;t=m??(typeof v!="object"||v===null)?v:Object.assign({},t,v),n.forEach(w=>w(t,x))}},o=()=>t,u={setState:r,getState:o,getInitialState:()=>f,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(ST?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},f=t=e(r,o,u);return u},CT=e=>e?Qb(e):Qb;var X$={exports:{}},Q$={},J$={exports:{}},Z$={};/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Ha=p;function $T(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var PT=typeof Object.is=="function"?Object.is:$T,ET=Ha.useState,RT=Ha.useEffect,_T=Ha.useLayoutEffect,NT=Ha.useDebugValue;function kT(e,t){var n=t(),r=ET({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return _T(function(){o.value=n,o.getSnapshot=t,ug(o)&&i({inst:o})},[e,n,t]),RT(function(){return ug(o)&&i({inst:o}),e(function(){ug(o)&&i({inst:o})})},[e]),NT(n),n}function ug(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!PT(e,n)}catch{return!0}}function DT(e,t){return t()}var jT=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?DT:kT;Z$.useSyncExternalStore=Ha.useSyncExternalStore!==void 0?Ha.useSyncExternalStore:jT;J$.exports=Z$;var MT=J$.exports;/** - * @license React - * use-sync-external-store-shim/with-selector.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Kf=p,TT=MT;function IT(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var OT=typeof Object.is=="function"?Object.is:IT,LT=TT.useSyncExternalStore,AT=Kf.useRef,FT=Kf.useEffect,zT=Kf.useMemo,UT=Kf.useDebugValue;Q$.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var i=AT(null);if(i.current===null){var a={hasValue:!1,value:null};i.current=a}else a=i.current;i=zT(function(){function u(x){if(!f){if(f=!0,h=x,x=r(x),o!==void 0&&a.hasValue){var w=a.value;if(o(w,x))return m=w}return m=x}if(w=m,OT(h,x))return w;var b=r(x);return o!==void 0&&o(w,b)?w:(h=x,m=b)}var f=!1,h,m,v=n===void 0?null:n;return[function(){return u(t())},v===null?void 0:function(){return u(v())}]},[t,n,r,o]);var c=LT(e,i[0],i[1]);return FT(function(){a.hasValue=!0,a.value=c},[c]),UT(c),c};X$.exports=Q$;var BT=X$.exports;const VT=Qa(BT);var eP={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{useDebugValue:HT}=ce,{useSyncExternalStoreWithSelector:WT}=VT;let Jb=!1;const KT=e=>e;function GT(e,t=KT,n){(eP?"production":void 0)!=="production"&&n&&!Jb&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Jb=!0);const r=WT(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return HT(r),r}const Zb=e=>{(eP?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const t=typeof e=="function"?CT(e):e,n=(r,o)=>GT(t,r,o);return Object.assign(n,t),n},Ms=e=>e?Zb(e):Zb,df=Ms(e=>({settings:{},updateSetting:t=>e(n=>({settings:{...n.settings,...t}})),setSettings:t=>e(()=>({settings:t}))}));var ff={exports:{}};/** - * @license - * Lodash <https://lodash.com/> - * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> - * Released under MIT license <https://lodash.com/license> - * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ff.exports;(function(e,t){(function(){var n,r="4.17.21",o=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",c="Invalid `variable` option passed into `_.template`",u="__lodash_hash_undefined__",f=500,h="__lodash_placeholder__",m=1,v=2,x=4,w=1,b=2,P=1,C=2,S=4,E=8,_=16,D=32,N=64,j=128,O=256,V=512,J=30,ie="...",te=800,ge=16,le=1,T=2,W=3,Y=1/0,U=9007199254740991,B=17976931348623157e292,L=NaN,H=4294967295,oe=H-1,ne=H>>>1,fe=[["ary",j],["bind",P],["bindKey",C],["curry",E],["curryRight",_],["flip",V],["partial",D],["partialRight",N],["rearg",O]],Se="[object Arguments]",me="[object Array]",pe="[object AsyncFunction]",Te="[object Boolean]",Fe="[object Date]",We="[object DOMException]",Pe="[object Error]",Me="[object Function]",Mt="[object GeneratorFunction]",lt="[object Map]",Qe="[object Number]",tn="[object Null]",Ut="[object Object]",Jo="[object Promise]",Xr="[object Proxy]",Dr="[object RegExp]",vt="[object Set]",dr="[object String]",xn="[object Symbol]",Kn="[object Undefined]",Yt="[object WeakMap]",Ki="[object WeakSet]",fr="[object ArrayBuffer]",jr="[object DataView]",yn="[object Float32Array]",Zo="[object Float64Array]",Qr="[object Int8Array]",wn="[object Int16Array]",Gi="[object Int32Array]",De="[object Uint8Array]",nt="[object Uint8ClampedArray]",ft="[object Uint16Array]",Xt="[object Uint32Array]",jn=/\b__p \+= '';/g,go=/\b(__p \+=) '' \+/g,cl=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ul=/&(?:amp|lt|gt|quot|#39);/g,tu=/[&<>"']/g,z=RegExp(ul.source),K=RegExp(tu.source),Q=/<%-([\s\S]+?)%>/g,ue=/<%([\s\S]+?)%>/g,ye=/<%=([\s\S]+?)%>/g,Ve=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,je=/^\w*$/,Ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,be=/[\\^$.*+?()[\]{}|]/g,qe=RegExp(be.source),_t=/^\s+/,Ae=/\s/,dt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Mn=/,? & /,At=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ei=/[()=,{}\[\]\/\s]/,dl=/\\(\\)?/g,ti=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Mr=/\w*$/,mo=/^[-+]0x[0-9a-f]+$/i,fl=/^0b[01]+$/i,pl=/^\[object .+?Constructor\]$/,hl=/^0o[0-7]+$/i,ni=/^(?:0|[1-9]\d*)$/,Fs=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ot=/($^)/,ht=/['\n\r\u2028\u2029\\]/g,bn="\\ud800-\\udfff",zs="\\u0300-\\u036f",Sp="\\ufe20-\\ufe2f",$R="\\u20d0-\\u20ff",_1=zs+Sp+$R,N1="\\u2700-\\u27bf",k1="a-z\\xdf-\\xf6\\xf8-\\xff",PR="\\xac\\xb1\\xd7\\xf7",ER="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",RR="\\u2000-\\u206f",_R=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",D1="A-Z\\xc0-\\xd6\\xd8-\\xde",j1="\\ufe0e\\ufe0f",M1=PR+ER+RR+_R,Cp="['’]",NR="["+bn+"]",T1="["+M1+"]",nu="["+_1+"]",I1="\\d+",kR="["+N1+"]",O1="["+k1+"]",L1="[^"+bn+M1+I1+N1+k1+D1+"]",$p="\\ud83c[\\udffb-\\udfff]",DR="(?:"+nu+"|"+$p+")",A1="[^"+bn+"]",Pp="(?:\\ud83c[\\udde6-\\uddff]){2}",Ep="[\\ud800-\\udbff][\\udc00-\\udfff]",Us="["+D1+"]",F1="\\u200d",z1="(?:"+O1+"|"+L1+")",jR="(?:"+Us+"|"+L1+")",U1="(?:"+Cp+"(?:d|ll|m|re|s|t|ve))?",B1="(?:"+Cp+"(?:D|LL|M|RE|S|T|VE))?",V1=DR+"?",H1="["+j1+"]?",MR="(?:"+F1+"(?:"+[A1,Pp,Ep].join("|")+")"+H1+V1+")*",TR="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",IR="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",W1=H1+V1+MR,OR="(?:"+[kR,Pp,Ep].join("|")+")"+W1,LR="(?:"+[A1+nu+"?",nu,Pp,Ep,NR].join("|")+")",AR=RegExp(Cp,"g"),FR=RegExp(nu,"g"),Rp=RegExp($p+"(?="+$p+")|"+LR+W1,"g"),zR=RegExp([Us+"?"+O1+"+"+U1+"(?="+[T1,Us,"$"].join("|")+")",jR+"+"+B1+"(?="+[T1,Us+z1,"$"].join("|")+")",Us+"?"+z1+"+"+U1,Us+"+"+B1,IR,TR,I1,OR].join("|"),"g"),UR=RegExp("["+F1+bn+_1+j1+"]"),BR=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,VR=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],HR=-1,xt={};xt[yn]=xt[Zo]=xt[Qr]=xt[wn]=xt[Gi]=xt[De]=xt[nt]=xt[ft]=xt[Xt]=!0,xt[Se]=xt[me]=xt[fr]=xt[Te]=xt[jr]=xt[Fe]=xt[Pe]=xt[Me]=xt[lt]=xt[Qe]=xt[Ut]=xt[Dr]=xt[vt]=xt[dr]=xt[Yt]=!1;var gt={};gt[Se]=gt[me]=gt[fr]=gt[jr]=gt[Te]=gt[Fe]=gt[yn]=gt[Zo]=gt[Qr]=gt[wn]=gt[Gi]=gt[lt]=gt[Qe]=gt[Ut]=gt[Dr]=gt[vt]=gt[dr]=gt[xn]=gt[De]=gt[nt]=gt[ft]=gt[Xt]=!0,gt[Pe]=gt[Me]=gt[Yt]=!1;var WR={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},KR={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},GR={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},qR={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},YR=parseFloat,XR=parseInt,K1=typeof oo=="object"&&oo&&oo.Object===Object&&oo,QR=typeof self=="object"&&self&&self.Object===Object&&self,nn=K1||QR||Function("return this")(),_p=t&&!t.nodeType&&t,qi=_p&&!0&&e&&!e.nodeType&&e,G1=qi&&qi.exports===_p,Np=G1&&K1.process,pr=function(){try{var A=qi&&qi.require&&qi.require("util").types;return A||Np&&Np.binding&&Np.binding("util")}catch{}}(),q1=pr&&pr.isArrayBuffer,Y1=pr&&pr.isDate,X1=pr&&pr.isMap,Q1=pr&&pr.isRegExp,J1=pr&&pr.isSet,Z1=pr&&pr.isTypedArray;function Gn(A,X,G){switch(G.length){case 0:return A.call(X);case 1:return A.call(X,G[0]);case 2:return A.call(X,G[0],G[1]);case 3:return A.call(X,G[0],G[1],G[2])}return A.apply(X,G)}function JR(A,X,G,ve){for(var Ie=-1,it=A==null?0:A.length;++Ie<it;){var Vt=A[Ie];X(ve,Vt,G(Vt),A)}return ve}function hr(A,X){for(var G=-1,ve=A==null?0:A.length;++G<ve&&X(A[G],G,A)!==!1;);return A}function ZR(A,X){for(var G=A==null?0:A.length;G--&&X(A[G],G,A)!==!1;);return A}function ex(A,X){for(var G=-1,ve=A==null?0:A.length;++G<ve;)if(!X(A[G],G,A))return!1;return!0}function ri(A,X){for(var G=-1,ve=A==null?0:A.length,Ie=0,it=[];++G<ve;){var Vt=A[G];X(Vt,G,A)&&(it[Ie++]=Vt)}return it}function ru(A,X){var G=A==null?0:A.length;return!!G&&Bs(A,X,0)>-1}function kp(A,X,G){for(var ve=-1,Ie=A==null?0:A.length;++ve<Ie;)if(G(X,A[ve]))return!0;return!1}function St(A,X){for(var G=-1,ve=A==null?0:A.length,Ie=Array(ve);++G<ve;)Ie[G]=X(A[G],G,A);return Ie}function oi(A,X){for(var G=-1,ve=X.length,Ie=A.length;++G<ve;)A[Ie+G]=X[G];return A}function Dp(A,X,G,ve){var Ie=-1,it=A==null?0:A.length;for(ve&&it&&(G=A[++Ie]);++Ie<it;)G=X(G,A[Ie],Ie,A);return G}function e_(A,X,G,ve){var Ie=A==null?0:A.length;for(ve&&Ie&&(G=A[--Ie]);Ie--;)G=X(G,A[Ie],Ie,A);return G}function jp(A,X){for(var G=-1,ve=A==null?0:A.length;++G<ve;)if(X(A[G],G,A))return!0;return!1}var t_=Mp("length");function n_(A){return A.split("")}function r_(A){return A.match(At)||[]}function tx(A,X,G){var ve;return G(A,function(Ie,it,Vt){if(X(Ie,it,Vt))return ve=it,!1}),ve}function ou(A,X,G,ve){for(var Ie=A.length,it=G+(ve?1:-1);ve?it--:++it<Ie;)if(X(A[it],it,A))return it;return-1}function Bs(A,X,G){return X===X?g_(A,X,G):ou(A,nx,G)}function o_(A,X,G,ve){for(var Ie=G-1,it=A.length;++Ie<it;)if(ve(A[Ie],X))return Ie;return-1}function nx(A){return A!==A}function rx(A,X){var G=A==null?0:A.length;return G?Ip(A,X)/G:L}function Mp(A){return function(X){return X==null?n:X[A]}}function Tp(A){return function(X){return A==null?n:A[X]}}function ox(A,X,G,ve,Ie){return Ie(A,function(it,Vt,pt){G=ve?(ve=!1,it):X(G,it,Vt,pt)}),G}function i_(A,X){var G=A.length;for(A.sort(X);G--;)A[G]=A[G].value;return A}function Ip(A,X){for(var G,ve=-1,Ie=A.length;++ve<Ie;){var it=X(A[ve]);it!==n&&(G=G===n?it:G+it)}return G}function Op(A,X){for(var G=-1,ve=Array(A);++G<A;)ve[G]=X(G);return ve}function s_(A,X){return St(X,function(G){return[G,A[G]]})}function ix(A){return A&&A.slice(0,cx(A)+1).replace(_t,"")}function qn(A){return function(X){return A(X)}}function Lp(A,X){return St(X,function(G){return A[G]})}function gl(A,X){return A.has(X)}function sx(A,X){for(var G=-1,ve=A.length;++G<ve&&Bs(X,A[G],0)>-1;);return G}function ax(A,X){for(var G=A.length;G--&&Bs(X,A[G],0)>-1;);return G}function a_(A,X){for(var G=A.length,ve=0;G--;)A[G]===X&&++ve;return ve}var l_=Tp(WR),c_=Tp(KR);function u_(A){return"\\"+qR[A]}function d_(A,X){return A==null?n:A[X]}function Vs(A){return UR.test(A)}function f_(A){return BR.test(A)}function p_(A){for(var X,G=[];!(X=A.next()).done;)G.push(X.value);return G}function Ap(A){var X=-1,G=Array(A.size);return A.forEach(function(ve,Ie){G[++X]=[Ie,ve]}),G}function lx(A,X){return function(G){return A(X(G))}}function ii(A,X){for(var G=-1,ve=A.length,Ie=0,it=[];++G<ve;){var Vt=A[G];(Vt===X||Vt===h)&&(A[G]=h,it[Ie++]=G)}return it}function iu(A){var X=-1,G=Array(A.size);return A.forEach(function(ve){G[++X]=ve}),G}function h_(A){var X=-1,G=Array(A.size);return A.forEach(function(ve){G[++X]=[ve,ve]}),G}function g_(A,X,G){for(var ve=G-1,Ie=A.length;++ve<Ie;)if(A[ve]===X)return ve;return-1}function m_(A,X,G){for(var ve=G+1;ve--;)if(A[ve]===X)return ve;return ve}function Hs(A){return Vs(A)?x_(A):t_(A)}function Tr(A){return Vs(A)?y_(A):n_(A)}function cx(A){for(var X=A.length;X--&&Ae.test(A.charAt(X)););return X}var v_=Tp(GR);function x_(A){for(var X=Rp.lastIndex=0;Rp.test(A);)++X;return X}function y_(A){return A.match(Rp)||[]}function w_(A){return A.match(zR)||[]}var b_=function A(X){X=X==null?nn:Ws.defaults(nn.Object(),X,Ws.pick(nn,VR));var G=X.Array,ve=X.Date,Ie=X.Error,it=X.Function,Vt=X.Math,pt=X.Object,Fp=X.RegExp,S_=X.String,gr=X.TypeError,su=G.prototype,C_=it.prototype,Ks=pt.prototype,au=X["__core-js_shared__"],lu=C_.toString,ct=Ks.hasOwnProperty,$_=0,ux=function(){var s=/[^.]+$/.exec(au&&au.keys&&au.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}(),cu=Ks.toString,P_=lu.call(pt),E_=nn._,R_=Fp("^"+lu.call(ct).replace(be,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),uu=G1?X.Buffer:n,si=X.Symbol,du=X.Uint8Array,dx=uu?uu.allocUnsafe:n,fu=lx(pt.getPrototypeOf,pt),fx=pt.create,px=Ks.propertyIsEnumerable,pu=su.splice,hx=si?si.isConcatSpreadable:n,ml=si?si.iterator:n,Yi=si?si.toStringTag:n,hu=function(){try{var s=es(pt,"defineProperty");return s({},"",{}),s}catch{}}(),__=X.clearTimeout!==nn.clearTimeout&&X.clearTimeout,N_=ve&&ve.now!==nn.Date.now&&ve.now,k_=X.setTimeout!==nn.setTimeout&&X.setTimeout,gu=Vt.ceil,mu=Vt.floor,zp=pt.getOwnPropertySymbols,D_=uu?uu.isBuffer:n,gx=X.isFinite,j_=su.join,M_=lx(pt.keys,pt),Ht=Vt.max,cn=Vt.min,T_=ve.now,I_=X.parseInt,mx=Vt.random,O_=su.reverse,Up=es(X,"DataView"),vl=es(X,"Map"),Bp=es(X,"Promise"),Gs=es(X,"Set"),xl=es(X,"WeakMap"),yl=es(pt,"create"),vu=xl&&new xl,qs={},L_=ts(Up),A_=ts(vl),F_=ts(Bp),z_=ts(Gs),U_=ts(xl),xu=si?si.prototype:n,wl=xu?xu.valueOf:n,vx=xu?xu.toString:n;function R(s){if(Nt(s)&&!Le(s)&&!(s instanceof Je)){if(s instanceof mr)return s;if(ct.call(s,"__wrapped__"))return xy(s)}return new mr(s)}var Ys=function(){function s(){}return function(l){if(!$t(l))return{};if(fx)return fx(l);s.prototype=l;var g=new s;return s.prototype=n,g}}();function yu(){}function mr(s,l){this.__wrapped__=s,this.__actions__=[],this.__chain__=!!l,this.__index__=0,this.__values__=n}R.templateSettings={escape:Q,evaluate:ue,interpolate:ye,variable:"",imports:{_:R}},R.prototype=yu.prototype,R.prototype.constructor=R,mr.prototype=Ys(yu.prototype),mr.prototype.constructor=mr;function Je(s){this.__wrapped__=s,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=H,this.__views__=[]}function B_(){var s=new Je(this.__wrapped__);return s.__actions__=Tn(this.__actions__),s.__dir__=this.__dir__,s.__filtered__=this.__filtered__,s.__iteratees__=Tn(this.__iteratees__),s.__takeCount__=this.__takeCount__,s.__views__=Tn(this.__views__),s}function V_(){if(this.__filtered__){var s=new Je(this);s.__dir__=-1,s.__filtered__=!0}else s=this.clone(),s.__dir__*=-1;return s}function H_(){var s=this.__wrapped__.value(),l=this.__dir__,g=Le(s),y=l<0,$=g?s.length:0,k=nN(0,$,this.__views__),M=k.start,I=k.end,F=I-M,Z=y?I:M-1,ee=this.__iteratees__,re=ee.length,de=0,we=cn(F,this.__takeCount__);if(!g||!y&&$==F&&we==F)return Ux(s,this.__actions__);var Re=[];e:for(;F--&&de<we;){Z+=l;for(var He=-1,_e=s[Z];++He<re;){var Ye=ee[He],tt=Ye.iteratee,Qn=Ye.type,$n=tt(_e);if(Qn==T)_e=$n;else if(!$n){if(Qn==le)continue e;break e}}Re[de++]=_e}return Re}Je.prototype=Ys(yu.prototype),Je.prototype.constructor=Je;function Xi(s){var l=-1,g=s==null?0:s.length;for(this.clear();++l<g;){var y=s[l];this.set(y[0],y[1])}}function W_(){this.__data__=yl?yl(null):{},this.size=0}function K_(s){var l=this.has(s)&&delete this.__data__[s];return this.size-=l?1:0,l}function G_(s){var l=this.__data__;if(yl){var g=l[s];return g===u?n:g}return ct.call(l,s)?l[s]:n}function q_(s){var l=this.__data__;return yl?l[s]!==n:ct.call(l,s)}function Y_(s,l){var g=this.__data__;return this.size+=this.has(s)?0:1,g[s]=yl&&l===n?u:l,this}Xi.prototype.clear=W_,Xi.prototype.delete=K_,Xi.prototype.get=G_,Xi.prototype.has=q_,Xi.prototype.set=Y_;function vo(s){var l=-1,g=s==null?0:s.length;for(this.clear();++l<g;){var y=s[l];this.set(y[0],y[1])}}function X_(){this.__data__=[],this.size=0}function Q_(s){var l=this.__data__,g=wu(l,s);if(g<0)return!1;var y=l.length-1;return g==y?l.pop():pu.call(l,g,1),--this.size,!0}function J_(s){var l=this.__data__,g=wu(l,s);return g<0?n:l[g][1]}function Z_(s){return wu(this.__data__,s)>-1}function e5(s,l){var g=this.__data__,y=wu(g,s);return y<0?(++this.size,g.push([s,l])):g[y][1]=l,this}vo.prototype.clear=X_,vo.prototype.delete=Q_,vo.prototype.get=J_,vo.prototype.has=Z_,vo.prototype.set=e5;function xo(s){var l=-1,g=s==null?0:s.length;for(this.clear();++l<g;){var y=s[l];this.set(y[0],y[1])}}function t5(){this.size=0,this.__data__={hash:new Xi,map:new(vl||vo),string:new Xi}}function n5(s){var l=ju(this,s).delete(s);return this.size-=l?1:0,l}function r5(s){return ju(this,s).get(s)}function o5(s){return ju(this,s).has(s)}function i5(s,l){var g=ju(this,s),y=g.size;return g.set(s,l),this.size+=g.size==y?0:1,this}xo.prototype.clear=t5,xo.prototype.delete=n5,xo.prototype.get=r5,xo.prototype.has=o5,xo.prototype.set=i5;function Qi(s){var l=-1,g=s==null?0:s.length;for(this.__data__=new xo;++l<g;)this.add(s[l])}function s5(s){return this.__data__.set(s,u),this}function a5(s){return this.__data__.has(s)}Qi.prototype.add=Qi.prototype.push=s5,Qi.prototype.has=a5;function Ir(s){var l=this.__data__=new vo(s);this.size=l.size}function l5(){this.__data__=new vo,this.size=0}function c5(s){var l=this.__data__,g=l.delete(s);return this.size=l.size,g}function u5(s){return this.__data__.get(s)}function d5(s){return this.__data__.has(s)}function f5(s,l){var g=this.__data__;if(g instanceof vo){var y=g.__data__;if(!vl||y.length<o-1)return y.push([s,l]),this.size=++g.size,this;g=this.__data__=new xo(y)}return g.set(s,l),this.size=g.size,this}Ir.prototype.clear=l5,Ir.prototype.delete=c5,Ir.prototype.get=u5,Ir.prototype.has=d5,Ir.prototype.set=f5;function xx(s,l){var g=Le(s),y=!g&&ns(s),$=!g&&!y&&di(s),k=!g&&!y&&!$&&Zs(s),M=g||y||$||k,I=M?Op(s.length,S_):[],F=I.length;for(var Z in s)(l||ct.call(s,Z))&&!(M&&(Z=="length"||$&&(Z=="offset"||Z=="parent")||k&&(Z=="buffer"||Z=="byteLength"||Z=="byteOffset")||So(Z,F)))&&I.push(Z);return I}function yx(s){var l=s.length;return l?s[Zp(0,l-1)]:n}function p5(s,l){return Mu(Tn(s),Ji(l,0,s.length))}function h5(s){return Mu(Tn(s))}function Vp(s,l,g){(g!==n&&!Or(s[l],g)||g===n&&!(l in s))&&yo(s,l,g)}function bl(s,l,g){var y=s[l];(!(ct.call(s,l)&&Or(y,g))||g===n&&!(l in s))&&yo(s,l,g)}function wu(s,l){for(var g=s.length;g--;)if(Or(s[g][0],l))return g;return-1}function g5(s,l,g,y){return ai(s,function($,k,M){l(y,$,g($),M)}),y}function wx(s,l){return s&&Zr(l,Qt(l),s)}function m5(s,l){return s&&Zr(l,On(l),s)}function yo(s,l,g){l=="__proto__"&&hu?hu(s,l,{configurable:!0,enumerable:!0,value:g,writable:!0}):s[l]=g}function Hp(s,l){for(var g=-1,y=l.length,$=G(y),k=s==null;++g<y;)$[g]=k?n:$h(s,l[g]);return $}function Ji(s,l,g){return s===s&&(g!==n&&(s=s<=g?s:g),l!==n&&(s=s>=l?s:l)),s}function vr(s,l,g,y,$,k){var M,I=l&m,F=l&v,Z=l&x;if(g&&(M=$?g(s,y,$,k):g(s)),M!==n)return M;if(!$t(s))return s;var ee=Le(s);if(ee){if(M=oN(s),!I)return Tn(s,M)}else{var re=un(s),de=re==Me||re==Mt;if(di(s))return Hx(s,I);if(re==Ut||re==Se||de&&!$){if(M=F||de?{}:cy(s),!I)return F?G5(s,m5(M,s)):K5(s,wx(M,s))}else{if(!gt[re])return $?s:{};M=iN(s,re,I)}}k||(k=new Ir);var we=k.get(s);if(we)return we;k.set(s,M),Ay(s)?s.forEach(function(_e){M.add(vr(_e,l,g,_e,s,k))}):Oy(s)&&s.forEach(function(_e,Ye){M.set(Ye,vr(_e,l,g,Ye,s,k))});var Re=Z?F?uh:ch:F?On:Qt,He=ee?n:Re(s);return hr(He||s,function(_e,Ye){He&&(Ye=_e,_e=s[Ye]),bl(M,Ye,vr(_e,l,g,Ye,s,k))}),M}function v5(s){var l=Qt(s);return function(g){return bx(g,s,l)}}function bx(s,l,g){var y=g.length;if(s==null)return!y;for(s=pt(s);y--;){var $=g[y],k=l[$],M=s[$];if(M===n&&!($ in s)||!k(M))return!1}return!0}function Sx(s,l,g){if(typeof s!="function")throw new gr(a);return _l(function(){s.apply(n,g)},l)}function Sl(s,l,g,y){var $=-1,k=ru,M=!0,I=s.length,F=[],Z=l.length;if(!I)return F;g&&(l=St(l,qn(g))),y?(k=kp,M=!1):l.length>=o&&(k=gl,M=!1,l=new Qi(l));e:for(;++$<I;){var ee=s[$],re=g==null?ee:g(ee);if(ee=y||ee!==0?ee:0,M&&re===re){for(var de=Z;de--;)if(l[de]===re)continue e;F.push(ee)}else k(l,re,y)||F.push(ee)}return F}var ai=Yx(Jr),Cx=Yx(Kp,!0);function x5(s,l){var g=!0;return ai(s,function(y,$,k){return g=!!l(y,$,k),g}),g}function bu(s,l,g){for(var y=-1,$=s.length;++y<$;){var k=s[y],M=l(k);if(M!=null&&(I===n?M===M&&!Xn(M):g(M,I)))var I=M,F=k}return F}function y5(s,l,g,y){var $=s.length;for(g=ze(g),g<0&&(g=-g>$?0:$+g),y=y===n||y>$?$:ze(y),y<0&&(y+=$),y=g>y?0:zy(y);g<y;)s[g++]=l;return s}function $x(s,l){var g=[];return ai(s,function(y,$,k){l(y,$,k)&&g.push(y)}),g}function rn(s,l,g,y,$){var k=-1,M=s.length;for(g||(g=aN),$||($=[]);++k<M;){var I=s[k];l>0&&g(I)?l>1?rn(I,l-1,g,y,$):oi($,I):y||($[$.length]=I)}return $}var Wp=Xx(),Px=Xx(!0);function Jr(s,l){return s&&Wp(s,l,Qt)}function Kp(s,l){return s&&Px(s,l,Qt)}function Su(s,l){return ri(l,function(g){return Co(s[g])})}function Zi(s,l){l=ci(l,s);for(var g=0,y=l.length;s!=null&&g<y;)s=s[eo(l[g++])];return g&&g==y?s:n}function Ex(s,l,g){var y=l(s);return Le(s)?y:oi(y,g(s))}function Sn(s){return s==null?s===n?Kn:tn:Yi&&Yi in pt(s)?tN(s):hN(s)}function Gp(s,l){return s>l}function w5(s,l){return s!=null&&ct.call(s,l)}function b5(s,l){return s!=null&&l in pt(s)}function S5(s,l,g){return s>=cn(l,g)&&s<Ht(l,g)}function qp(s,l,g){for(var y=g?kp:ru,$=s[0].length,k=s.length,M=k,I=G(k),F=1/0,Z=[];M--;){var ee=s[M];M&&l&&(ee=St(ee,qn(l))),F=cn(ee.length,F),I[M]=!g&&(l||$>=120&&ee.length>=120)?new Qi(M&&ee):n}ee=s[0];var re=-1,de=I[0];e:for(;++re<$&&Z.length<F;){var we=ee[re],Re=l?l(we):we;if(we=g||we!==0?we:0,!(de?gl(de,Re):y(Z,Re,g))){for(M=k;--M;){var He=I[M];if(!(He?gl(He,Re):y(s[M],Re,g)))continue e}de&&de.push(Re),Z.push(we)}}return Z}function C5(s,l,g,y){return Jr(s,function($,k,M){l(y,g($),k,M)}),y}function Cl(s,l,g){l=ci(l,s),s=py(s,l);var y=s==null?s:s[eo(yr(l))];return y==null?n:Gn(y,s,g)}function Rx(s){return Nt(s)&&Sn(s)==Se}function $5(s){return Nt(s)&&Sn(s)==fr}function P5(s){return Nt(s)&&Sn(s)==Fe}function $l(s,l,g,y,$){return s===l?!0:s==null||l==null||!Nt(s)&&!Nt(l)?s!==s&&l!==l:E5(s,l,g,y,$l,$)}function E5(s,l,g,y,$,k){var M=Le(s),I=Le(l),F=M?me:un(s),Z=I?me:un(l);F=F==Se?Ut:F,Z=Z==Se?Ut:Z;var ee=F==Ut,re=Z==Ut,de=F==Z;if(de&&di(s)){if(!di(l))return!1;M=!0,ee=!1}if(de&&!ee)return k||(k=new Ir),M||Zs(s)?sy(s,l,g,y,$,k):Z5(s,l,F,g,y,$,k);if(!(g&w)){var we=ee&&ct.call(s,"__wrapped__"),Re=re&&ct.call(l,"__wrapped__");if(we||Re){var He=we?s.value():s,_e=Re?l.value():l;return k||(k=new Ir),$(He,_e,g,y,k)}}return de?(k||(k=new Ir),eN(s,l,g,y,$,k)):!1}function R5(s){return Nt(s)&&un(s)==lt}function Yp(s,l,g,y){var $=g.length,k=$,M=!y;if(s==null)return!k;for(s=pt(s);$--;){var I=g[$];if(M&&I[2]?I[1]!==s[I[0]]:!(I[0]in s))return!1}for(;++$<k;){I=g[$];var F=I[0],Z=s[F],ee=I[1];if(M&&I[2]){if(Z===n&&!(F in s))return!1}else{var re=new Ir;if(y)var de=y(Z,ee,F,s,l,re);if(!(de===n?$l(ee,Z,w|b,y,re):de))return!1}}return!0}function _x(s){if(!$t(s)||cN(s))return!1;var l=Co(s)?R_:pl;return l.test(ts(s))}function _5(s){return Nt(s)&&Sn(s)==Dr}function N5(s){return Nt(s)&&un(s)==vt}function k5(s){return Nt(s)&&Fu(s.length)&&!!xt[Sn(s)]}function Nx(s){return typeof s=="function"?s:s==null?Ln:typeof s=="object"?Le(s)?jx(s[0],s[1]):Dx(s):Qy(s)}function Xp(s){if(!Rl(s))return M_(s);var l=[];for(var g in pt(s))ct.call(s,g)&&g!="constructor"&&l.push(g);return l}function D5(s){if(!$t(s))return pN(s);var l=Rl(s),g=[];for(var y in s)y=="constructor"&&(l||!ct.call(s,y))||g.push(y);return g}function Qp(s,l){return s<l}function kx(s,l){var g=-1,y=In(s)?G(s.length):[];return ai(s,function($,k,M){y[++g]=l($,k,M)}),y}function Dx(s){var l=fh(s);return l.length==1&&l[0][2]?dy(l[0][0],l[0][1]):function(g){return g===s||Yp(g,s,l)}}function jx(s,l){return hh(s)&&uy(l)?dy(eo(s),l):function(g){var y=$h(g,s);return y===n&&y===l?Ph(g,s):$l(l,y,w|b)}}function Cu(s,l,g,y,$){s!==l&&Wp(l,function(k,M){if($||($=new Ir),$t(k))j5(s,l,M,g,Cu,y,$);else{var I=y?y(mh(s,M),k,M+"",s,l,$):n;I===n&&(I=k),Vp(s,M,I)}},On)}function j5(s,l,g,y,$,k,M){var I=mh(s,g),F=mh(l,g),Z=M.get(F);if(Z){Vp(s,g,Z);return}var ee=k?k(I,F,g+"",s,l,M):n,re=ee===n;if(re){var de=Le(F),we=!de&&di(F),Re=!de&&!we&&Zs(F);ee=F,de||we||Re?Le(I)?ee=I:Tt(I)?ee=Tn(I):we?(re=!1,ee=Hx(F,!0)):Re?(re=!1,ee=Wx(F,!0)):ee=[]:Nl(F)||ns(F)?(ee=I,ns(I)?ee=Uy(I):(!$t(I)||Co(I))&&(ee=cy(F))):re=!1}re&&(M.set(F,ee),$(ee,F,y,k,M),M.delete(F)),Vp(s,g,ee)}function Mx(s,l){var g=s.length;if(g)return l+=l<0?g:0,So(l,g)?s[l]:n}function Tx(s,l,g){l.length?l=St(l,function(k){return Le(k)?function(M){return Zi(M,k.length===1?k[0]:k)}:k}):l=[Ln];var y=-1;l=St(l,qn($e()));var $=kx(s,function(k,M,I){var F=St(l,function(Z){return Z(k)});return{criteria:F,index:++y,value:k}});return i_($,function(k,M){return W5(k,M,g)})}function M5(s,l){return Ix(s,l,function(g,y){return Ph(s,y)})}function Ix(s,l,g){for(var y=-1,$=l.length,k={};++y<$;){var M=l[y],I=Zi(s,M);g(I,M)&&Pl(k,ci(M,s),I)}return k}function T5(s){return function(l){return Zi(l,s)}}function Jp(s,l,g,y){var $=y?o_:Bs,k=-1,M=l.length,I=s;for(s===l&&(l=Tn(l)),g&&(I=St(s,qn(g)));++k<M;)for(var F=0,Z=l[k],ee=g?g(Z):Z;(F=$(I,ee,F,y))>-1;)I!==s&&pu.call(I,F,1),pu.call(s,F,1);return s}function Ox(s,l){for(var g=s?l.length:0,y=g-1;g--;){var $=l[g];if(g==y||$!==k){var k=$;So($)?pu.call(s,$,1):nh(s,$)}}return s}function Zp(s,l){return s+mu(mx()*(l-s+1))}function I5(s,l,g,y){for(var $=-1,k=Ht(gu((l-s)/(g||1)),0),M=G(k);k--;)M[y?k:++$]=s,s+=g;return M}function eh(s,l){var g="";if(!s||l<1||l>U)return g;do l%2&&(g+=s),l=mu(l/2),l&&(s+=s);while(l);return g}function Ke(s,l){return vh(fy(s,l,Ln),s+"")}function O5(s){return yx(ea(s))}function L5(s,l){var g=ea(s);return Mu(g,Ji(l,0,g.length))}function Pl(s,l,g,y){if(!$t(s))return s;l=ci(l,s);for(var $=-1,k=l.length,M=k-1,I=s;I!=null&&++$<k;){var F=eo(l[$]),Z=g;if(F==="__proto__"||F==="constructor"||F==="prototype")return s;if($!=M){var ee=I[F];Z=y?y(ee,F,I):n,Z===n&&(Z=$t(ee)?ee:So(l[$+1])?[]:{})}bl(I,F,Z),I=I[F]}return s}var Lx=vu?function(s,l){return vu.set(s,l),s}:Ln,A5=hu?function(s,l){return hu(s,"toString",{configurable:!0,enumerable:!1,value:Rh(l),writable:!0})}:Ln;function F5(s){return Mu(ea(s))}function xr(s,l,g){var y=-1,$=s.length;l<0&&(l=-l>$?0:$+l),g=g>$?$:g,g<0&&(g+=$),$=l>g?0:g-l>>>0,l>>>=0;for(var k=G($);++y<$;)k[y]=s[y+l];return k}function z5(s,l){var g;return ai(s,function(y,$,k){return g=l(y,$,k),!g}),!!g}function $u(s,l,g){var y=0,$=s==null?y:s.length;if(typeof l=="number"&&l===l&&$<=ne){for(;y<$;){var k=y+$>>>1,M=s[k];M!==null&&!Xn(M)&&(g?M<=l:M<l)?y=k+1:$=k}return $}return th(s,l,Ln,g)}function th(s,l,g,y){var $=0,k=s==null?0:s.length;if(k===0)return 0;l=g(l);for(var M=l!==l,I=l===null,F=Xn(l),Z=l===n;$<k;){var ee=mu(($+k)/2),re=g(s[ee]),de=re!==n,we=re===null,Re=re===re,He=Xn(re);if(M)var _e=y||Re;else Z?_e=Re&&(y||de):I?_e=Re&&de&&(y||!we):F?_e=Re&&de&&!we&&(y||!He):we||He?_e=!1:_e=y?re<=l:re<l;_e?$=ee+1:k=ee}return cn(k,oe)}function Ax(s,l){for(var g=-1,y=s.length,$=0,k=[];++g<y;){var M=s[g],I=l?l(M):M;if(!g||!Or(I,F)){var F=I;k[$++]=M===0?0:M}}return k}function Fx(s){return typeof s=="number"?s:Xn(s)?L:+s}function Yn(s){if(typeof s=="string")return s;if(Le(s))return St(s,Yn)+"";if(Xn(s))return vx?vx.call(s):"";var l=s+"";return l=="0"&&1/s==-Y?"-0":l}function li(s,l,g){var y=-1,$=ru,k=s.length,M=!0,I=[],F=I;if(g)M=!1,$=kp;else if(k>=o){var Z=l?null:Q5(s);if(Z)return iu(Z);M=!1,$=gl,F=new Qi}else F=l?[]:I;e:for(;++y<k;){var ee=s[y],re=l?l(ee):ee;if(ee=g||ee!==0?ee:0,M&&re===re){for(var de=F.length;de--;)if(F[de]===re)continue e;l&&F.push(re),I.push(ee)}else $(F,re,g)||(F!==I&&F.push(re),I.push(ee))}return I}function nh(s,l){return l=ci(l,s),s=py(s,l),s==null||delete s[eo(yr(l))]}function zx(s,l,g,y){return Pl(s,l,g(Zi(s,l)),y)}function Pu(s,l,g,y){for(var $=s.length,k=y?$:-1;(y?k--:++k<$)&&l(s[k],k,s););return g?xr(s,y?0:k,y?k+1:$):xr(s,y?k+1:0,y?$:k)}function Ux(s,l){var g=s;return g instanceof Je&&(g=g.value()),Dp(l,function(y,$){return $.func.apply($.thisArg,oi([y],$.args))},g)}function rh(s,l,g){var y=s.length;if(y<2)return y?li(s[0]):[];for(var $=-1,k=G(y);++$<y;)for(var M=s[$],I=-1;++I<y;)I!=$&&(k[$]=Sl(k[$]||M,s[I],l,g));return li(rn(k,1),l,g)}function Bx(s,l,g){for(var y=-1,$=s.length,k=l.length,M={};++y<$;){var I=y<k?l[y]:n;g(M,s[y],I)}return M}function oh(s){return Tt(s)?s:[]}function ih(s){return typeof s=="function"?s:Ln}function ci(s,l){return Le(s)?s:hh(s,l)?[s]:vy(st(s))}var U5=Ke;function ui(s,l,g){var y=s.length;return g=g===n?y:g,!l&&g>=y?s:xr(s,l,g)}var Vx=__||function(s){return nn.clearTimeout(s)};function Hx(s,l){if(l)return s.slice();var g=s.length,y=dx?dx(g):new s.constructor(g);return s.copy(y),y}function sh(s){var l=new s.constructor(s.byteLength);return new du(l).set(new du(s)),l}function B5(s,l){var g=l?sh(s.buffer):s.buffer;return new s.constructor(g,s.byteOffset,s.byteLength)}function V5(s){var l=new s.constructor(s.source,Mr.exec(s));return l.lastIndex=s.lastIndex,l}function H5(s){return wl?pt(wl.call(s)):{}}function Wx(s,l){var g=l?sh(s.buffer):s.buffer;return new s.constructor(g,s.byteOffset,s.length)}function Kx(s,l){if(s!==l){var g=s!==n,y=s===null,$=s===s,k=Xn(s),M=l!==n,I=l===null,F=l===l,Z=Xn(l);if(!I&&!Z&&!k&&s>l||k&&M&&F&&!I&&!Z||y&&M&&F||!g&&F||!$)return 1;if(!y&&!k&&!Z&&s<l||Z&&g&&$&&!y&&!k||I&&g&&$||!M&&$||!F)return-1}return 0}function W5(s,l,g){for(var y=-1,$=s.criteria,k=l.criteria,M=$.length,I=g.length;++y<M;){var F=Kx($[y],k[y]);if(F){if(y>=I)return F;var Z=g[y];return F*(Z=="desc"?-1:1)}}return s.index-l.index}function Gx(s,l,g,y){for(var $=-1,k=s.length,M=g.length,I=-1,F=l.length,Z=Ht(k-M,0),ee=G(F+Z),re=!y;++I<F;)ee[I]=l[I];for(;++$<M;)(re||$<k)&&(ee[g[$]]=s[$]);for(;Z--;)ee[I++]=s[$++];return ee}function qx(s,l,g,y){for(var $=-1,k=s.length,M=-1,I=g.length,F=-1,Z=l.length,ee=Ht(k-I,0),re=G(ee+Z),de=!y;++$<ee;)re[$]=s[$];for(var we=$;++F<Z;)re[we+F]=l[F];for(;++M<I;)(de||$<k)&&(re[we+g[M]]=s[$++]);return re}function Tn(s,l){var g=-1,y=s.length;for(l||(l=G(y));++g<y;)l[g]=s[g];return l}function Zr(s,l,g,y){var $=!g;g||(g={});for(var k=-1,M=l.length;++k<M;){var I=l[k],F=y?y(g[I],s[I],I,g,s):n;F===n&&(F=s[I]),$?yo(g,I,F):bl(g,I,F)}return g}function K5(s,l){return Zr(s,ph(s),l)}function G5(s,l){return Zr(s,ay(s),l)}function Eu(s,l){return function(g,y){var $=Le(g)?JR:g5,k=l?l():{};return $(g,s,$e(y,2),k)}}function Xs(s){return Ke(function(l,g){var y=-1,$=g.length,k=$>1?g[$-1]:n,M=$>2?g[2]:n;for(k=s.length>3&&typeof k=="function"?($--,k):n,M&&Cn(g[0],g[1],M)&&(k=$<3?n:k,$=1),l=pt(l);++y<$;){var I=g[y];I&&s(l,I,y,k)}return l})}function Yx(s,l){return function(g,y){if(g==null)return g;if(!In(g))return s(g,y);for(var $=g.length,k=l?$:-1,M=pt(g);(l?k--:++k<$)&&y(M[k],k,M)!==!1;);return g}}function Xx(s){return function(l,g,y){for(var $=-1,k=pt(l),M=y(l),I=M.length;I--;){var F=M[s?I:++$];if(g(k[F],F,k)===!1)break}return l}}function q5(s,l,g){var y=l&P,$=El(s);function k(){var M=this&&this!==nn&&this instanceof k?$:s;return M.apply(y?g:this,arguments)}return k}function Qx(s){return function(l){l=st(l);var g=Vs(l)?Tr(l):n,y=g?g[0]:l.charAt(0),$=g?ui(g,1).join(""):l.slice(1);return y[s]()+$}}function Qs(s){return function(l){return Dp(Yy(qy(l).replace(AR,"")),s,"")}}function El(s){return function(){var l=arguments;switch(l.length){case 0:return new s;case 1:return new s(l[0]);case 2:return new s(l[0],l[1]);case 3:return new s(l[0],l[1],l[2]);case 4:return new s(l[0],l[1],l[2],l[3]);case 5:return new s(l[0],l[1],l[2],l[3],l[4]);case 6:return new s(l[0],l[1],l[2],l[3],l[4],l[5]);case 7:return new s(l[0],l[1],l[2],l[3],l[4],l[5],l[6])}var g=Ys(s.prototype),y=s.apply(g,l);return $t(y)?y:g}}function Y5(s,l,g){var y=El(s);function $(){for(var k=arguments.length,M=G(k),I=k,F=Js($);I--;)M[I]=arguments[I];var Z=k<3&&M[0]!==F&&M[k-1]!==F?[]:ii(M,F);if(k-=Z.length,k<g)return ny(s,l,Ru,$.placeholder,n,M,Z,n,n,g-k);var ee=this&&this!==nn&&this instanceof $?y:s;return Gn(ee,this,M)}return $}function Jx(s){return function(l,g,y){var $=pt(l);if(!In(l)){var k=$e(g,3);l=Qt(l),g=function(I){return k($[I],I,$)}}var M=s(l,g,y);return M>-1?$[k?l[M]:M]:n}}function Zx(s){return bo(function(l){var g=l.length,y=g,$=mr.prototype.thru;for(s&&l.reverse();y--;){var k=l[y];if(typeof k!="function")throw new gr(a);if($&&!M&&Du(k)=="wrapper")var M=new mr([],!0)}for(y=M?y:g;++y<g;){k=l[y];var I=Du(k),F=I=="wrapper"?dh(k):n;F&&gh(F[0])&&F[1]==(j|E|D|O)&&!F[4].length&&F[9]==1?M=M[Du(F[0])].apply(M,F[3]):M=k.length==1&&gh(k)?M[I]():M.thru(k)}return function(){var Z=arguments,ee=Z[0];if(M&&Z.length==1&&Le(ee))return M.plant(ee).value();for(var re=0,de=g?l[re].apply(this,Z):ee;++re<g;)de=l[re].call(this,de);return de}})}function Ru(s,l,g,y,$,k,M,I,F,Z){var ee=l&j,re=l&P,de=l&C,we=l&(E|_),Re=l&V,He=de?n:El(s);function _e(){for(var Ye=arguments.length,tt=G(Ye),Qn=Ye;Qn--;)tt[Qn]=arguments[Qn];if(we)var $n=Js(_e),Jn=a_(tt,$n);if(y&&(tt=Gx(tt,y,$,we)),k&&(tt=qx(tt,k,M,we)),Ye-=Jn,we&&Ye<Z){var It=ii(tt,$n);return ny(s,l,Ru,_e.placeholder,g,tt,It,I,F,Z-Ye)}var Lr=re?g:this,Po=de?Lr[s]:s;return Ye=tt.length,I?tt=gN(tt,I):Re&&Ye>1&&tt.reverse(),ee&&F<Ye&&(tt.length=F),this&&this!==nn&&this instanceof _e&&(Po=He||El(Po)),Po.apply(Lr,tt)}return _e}function ey(s,l){return function(g,y){return C5(g,s,l(y),{})}}function _u(s,l){return function(g,y){var $;if(g===n&&y===n)return l;if(g!==n&&($=g),y!==n){if($===n)return y;typeof g=="string"||typeof y=="string"?(g=Yn(g),y=Yn(y)):(g=Fx(g),y=Fx(y)),$=s(g,y)}return $}}function ah(s){return bo(function(l){return l=St(l,qn($e())),Ke(function(g){var y=this;return s(l,function($){return Gn($,y,g)})})})}function Nu(s,l){l=l===n?" ":Yn(l);var g=l.length;if(g<2)return g?eh(l,s):l;var y=eh(l,gu(s/Hs(l)));return Vs(l)?ui(Tr(y),0,s).join(""):y.slice(0,s)}function X5(s,l,g,y){var $=l&P,k=El(s);function M(){for(var I=-1,F=arguments.length,Z=-1,ee=y.length,re=G(ee+F),de=this&&this!==nn&&this instanceof M?k:s;++Z<ee;)re[Z]=y[Z];for(;F--;)re[Z++]=arguments[++I];return Gn(de,$?g:this,re)}return M}function ty(s){return function(l,g,y){return y&&typeof y!="number"&&Cn(l,g,y)&&(g=y=n),l=$o(l),g===n?(g=l,l=0):g=$o(g),y=y===n?l<g?1:-1:$o(y),I5(l,g,y,s)}}function ku(s){return function(l,g){return typeof l=="string"&&typeof g=="string"||(l=wr(l),g=wr(g)),s(l,g)}}function ny(s,l,g,y,$,k,M,I,F,Z){var ee=l&E,re=ee?M:n,de=ee?n:M,we=ee?k:n,Re=ee?n:k;l|=ee?D:N,l&=~(ee?N:D),l&S||(l&=~(P|C));var He=[s,l,$,we,re,Re,de,I,F,Z],_e=g.apply(n,He);return gh(s)&&hy(_e,He),_e.placeholder=y,gy(_e,s,l)}function lh(s){var l=Vt[s];return function(g,y){if(g=wr(g),y=y==null?0:cn(ze(y),292),y&&gx(g)){var $=(st(g)+"e").split("e"),k=l($[0]+"e"+(+$[1]+y));return $=(st(k)+"e").split("e"),+($[0]+"e"+(+$[1]-y))}return l(g)}}var Q5=Gs&&1/iu(new Gs([,-0]))[1]==Y?function(s){return new Gs(s)}:kh;function ry(s){return function(l){var g=un(l);return g==lt?Ap(l):g==vt?h_(l):s_(l,s(l))}}function wo(s,l,g,y,$,k,M,I){var F=l&C;if(!F&&typeof s!="function")throw new gr(a);var Z=y?y.length:0;if(Z||(l&=~(D|N),y=$=n),M=M===n?M:Ht(ze(M),0),I=I===n?I:ze(I),Z-=$?$.length:0,l&N){var ee=y,re=$;y=$=n}var de=F?n:dh(s),we=[s,l,g,y,$,ee,re,k,M,I];if(de&&fN(we,de),s=we[0],l=we[1],g=we[2],y=we[3],$=we[4],I=we[9]=we[9]===n?F?0:s.length:Ht(we[9]-Z,0),!I&&l&(E|_)&&(l&=~(E|_)),!l||l==P)var Re=q5(s,l,g);else l==E||l==_?Re=Y5(s,l,I):(l==D||l==(P|D))&&!$.length?Re=X5(s,l,g,y):Re=Ru.apply(n,we);var He=de?Lx:hy;return gy(He(Re,we),s,l)}function oy(s,l,g,y){return s===n||Or(s,Ks[g])&&!ct.call(y,g)?l:s}function iy(s,l,g,y,$,k){return $t(s)&&$t(l)&&(k.set(l,s),Cu(s,l,n,iy,k),k.delete(l)),s}function J5(s){return Nl(s)?n:s}function sy(s,l,g,y,$,k){var M=g&w,I=s.length,F=l.length;if(I!=F&&!(M&&F>I))return!1;var Z=k.get(s),ee=k.get(l);if(Z&&ee)return Z==l&&ee==s;var re=-1,de=!0,we=g&b?new Qi:n;for(k.set(s,l),k.set(l,s);++re<I;){var Re=s[re],He=l[re];if(y)var _e=M?y(He,Re,re,l,s,k):y(Re,He,re,s,l,k);if(_e!==n){if(_e)continue;de=!1;break}if(we){if(!jp(l,function(Ye,tt){if(!gl(we,tt)&&(Re===Ye||$(Re,Ye,g,y,k)))return we.push(tt)})){de=!1;break}}else if(!(Re===He||$(Re,He,g,y,k))){de=!1;break}}return k.delete(s),k.delete(l),de}function Z5(s,l,g,y,$,k,M){switch(g){case jr:if(s.byteLength!=l.byteLength||s.byteOffset!=l.byteOffset)return!1;s=s.buffer,l=l.buffer;case fr:return!(s.byteLength!=l.byteLength||!k(new du(s),new du(l)));case Te:case Fe:case Qe:return Or(+s,+l);case Pe:return s.name==l.name&&s.message==l.message;case Dr:case dr:return s==l+"";case lt:var I=Ap;case vt:var F=y&w;if(I||(I=iu),s.size!=l.size&&!F)return!1;var Z=M.get(s);if(Z)return Z==l;y|=b,M.set(s,l);var ee=sy(I(s),I(l),y,$,k,M);return M.delete(s),ee;case xn:if(wl)return wl.call(s)==wl.call(l)}return!1}function eN(s,l,g,y,$,k){var M=g&w,I=ch(s),F=I.length,Z=ch(l),ee=Z.length;if(F!=ee&&!M)return!1;for(var re=F;re--;){var de=I[re];if(!(M?de in l:ct.call(l,de)))return!1}var we=k.get(s),Re=k.get(l);if(we&&Re)return we==l&&Re==s;var He=!0;k.set(s,l),k.set(l,s);for(var _e=M;++re<F;){de=I[re];var Ye=s[de],tt=l[de];if(y)var Qn=M?y(tt,Ye,de,l,s,k):y(Ye,tt,de,s,l,k);if(!(Qn===n?Ye===tt||$(Ye,tt,g,y,k):Qn)){He=!1;break}_e||(_e=de=="constructor")}if(He&&!_e){var $n=s.constructor,Jn=l.constructor;$n!=Jn&&"constructor"in s&&"constructor"in l&&!(typeof $n=="function"&&$n instanceof $n&&typeof Jn=="function"&&Jn instanceof Jn)&&(He=!1)}return k.delete(s),k.delete(l),He}function bo(s){return vh(fy(s,n,by),s+"")}function ch(s){return Ex(s,Qt,ph)}function uh(s){return Ex(s,On,ay)}var dh=vu?function(s){return vu.get(s)}:kh;function Du(s){for(var l=s.name+"",g=qs[l],y=ct.call(qs,l)?g.length:0;y--;){var $=g[y],k=$.func;if(k==null||k==s)return $.name}return l}function Js(s){var l=ct.call(R,"placeholder")?R:s;return l.placeholder}function $e(){var s=R.iteratee||_h;return s=s===_h?Nx:s,arguments.length?s(arguments[0],arguments[1]):s}function ju(s,l){var g=s.__data__;return lN(l)?g[typeof l=="string"?"string":"hash"]:g.map}function fh(s){for(var l=Qt(s),g=l.length;g--;){var y=l[g],$=s[y];l[g]=[y,$,uy($)]}return l}function es(s,l){var g=d_(s,l);return _x(g)?g:n}function tN(s){var l=ct.call(s,Yi),g=s[Yi];try{s[Yi]=n;var y=!0}catch{}var $=cu.call(s);return y&&(l?s[Yi]=g:delete s[Yi]),$}var ph=zp?function(s){return s==null?[]:(s=pt(s),ri(zp(s),function(l){return px.call(s,l)}))}:Dh,ay=zp?function(s){for(var l=[];s;)oi(l,ph(s)),s=fu(s);return l}:Dh,un=Sn;(Up&&un(new Up(new ArrayBuffer(1)))!=jr||vl&&un(new vl)!=lt||Bp&&un(Bp.resolve())!=Jo||Gs&&un(new Gs)!=vt||xl&&un(new xl)!=Yt)&&(un=function(s){var l=Sn(s),g=l==Ut?s.constructor:n,y=g?ts(g):"";if(y)switch(y){case L_:return jr;case A_:return lt;case F_:return Jo;case z_:return vt;case U_:return Yt}return l});function nN(s,l,g){for(var y=-1,$=g.length;++y<$;){var k=g[y],M=k.size;switch(k.type){case"drop":s+=M;break;case"dropRight":l-=M;break;case"take":l=cn(l,s+M);break;case"takeRight":s=Ht(s,l-M);break}}return{start:s,end:l}}function rN(s){var l=s.match(Bt);return l?l[1].split(Mn):[]}function ly(s,l,g){l=ci(l,s);for(var y=-1,$=l.length,k=!1;++y<$;){var M=eo(l[y]);if(!(k=s!=null&&g(s,M)))break;s=s[M]}return k||++y!=$?k:($=s==null?0:s.length,!!$&&Fu($)&&So(M,$)&&(Le(s)||ns(s)))}function oN(s){var l=s.length,g=new s.constructor(l);return l&&typeof s[0]=="string"&&ct.call(s,"index")&&(g.index=s.index,g.input=s.input),g}function cy(s){return typeof s.constructor=="function"&&!Rl(s)?Ys(fu(s)):{}}function iN(s,l,g){var y=s.constructor;switch(l){case fr:return sh(s);case Te:case Fe:return new y(+s);case jr:return B5(s,g);case yn:case Zo:case Qr:case wn:case Gi:case De:case nt:case ft:case Xt:return Wx(s,g);case lt:return new y;case Qe:case dr:return new y(s);case Dr:return V5(s);case vt:return new y;case xn:return H5(s)}}function sN(s,l){var g=l.length;if(!g)return s;var y=g-1;return l[y]=(g>1?"& ":"")+l[y],l=l.join(g>2?", ":" "),s.replace(dt,`{ -/* [wrapped with `+l+`] */ -`)}function aN(s){return Le(s)||ns(s)||!!(hx&&s&&s[hx])}function So(s,l){var g=typeof s;return l=l??U,!!l&&(g=="number"||g!="symbol"&&ni.test(s))&&s>-1&&s%1==0&&s<l}function Cn(s,l,g){if(!$t(g))return!1;var y=typeof l;return(y=="number"?In(g)&&So(l,g.length):y=="string"&&l in g)?Or(g[l],s):!1}function hh(s,l){if(Le(s))return!1;var g=typeof s;return g=="number"||g=="symbol"||g=="boolean"||s==null||Xn(s)?!0:je.test(s)||!Ve.test(s)||l!=null&&s in pt(l)}function lN(s){var l=typeof s;return l=="string"||l=="number"||l=="symbol"||l=="boolean"?s!=="__proto__":s===null}function gh(s){var l=Du(s),g=R[l];if(typeof g!="function"||!(l in Je.prototype))return!1;if(s===g)return!0;var y=dh(g);return!!y&&s===y[0]}function cN(s){return!!ux&&ux in s}var uN=au?Co:jh;function Rl(s){var l=s&&s.constructor,g=typeof l=="function"&&l.prototype||Ks;return s===g}function uy(s){return s===s&&!$t(s)}function dy(s,l){return function(g){return g==null?!1:g[s]===l&&(l!==n||s in pt(g))}}function dN(s){var l=Lu(s,function(y){return g.size===f&&g.clear(),y}),g=l.cache;return l}function fN(s,l){var g=s[1],y=l[1],$=g|y,k=$<(P|C|j),M=y==j&&g==E||y==j&&g==O&&s[7].length<=l[8]||y==(j|O)&&l[7].length<=l[8]&&g==E;if(!(k||M))return s;y&P&&(s[2]=l[2],$|=g&P?0:S);var I=l[3];if(I){var F=s[3];s[3]=F?Gx(F,I,l[4]):I,s[4]=F?ii(s[3],h):l[4]}return I=l[5],I&&(F=s[5],s[5]=F?qx(F,I,l[6]):I,s[6]=F?ii(s[5],h):l[6]),I=l[7],I&&(s[7]=I),y&j&&(s[8]=s[8]==null?l[8]:cn(s[8],l[8])),s[9]==null&&(s[9]=l[9]),s[0]=l[0],s[1]=$,s}function pN(s){var l=[];if(s!=null)for(var g in pt(s))l.push(g);return l}function hN(s){return cu.call(s)}function fy(s,l,g){return l=Ht(l===n?s.length-1:l,0),function(){for(var y=arguments,$=-1,k=Ht(y.length-l,0),M=G(k);++$<k;)M[$]=y[l+$];$=-1;for(var I=G(l+1);++$<l;)I[$]=y[$];return I[l]=g(M),Gn(s,this,I)}}function py(s,l){return l.length<2?s:Zi(s,xr(l,0,-1))}function gN(s,l){for(var g=s.length,y=cn(l.length,g),$=Tn(s);y--;){var k=l[y];s[y]=So(k,g)?$[k]:n}return s}function mh(s,l){if(!(l==="constructor"&&typeof s[l]=="function")&&l!="__proto__")return s[l]}var hy=my(Lx),_l=k_||function(s,l){return nn.setTimeout(s,l)},vh=my(A5);function gy(s,l,g){var y=l+"";return vh(s,sN(y,mN(rN(y),g)))}function my(s){var l=0,g=0;return function(){var y=T_(),$=ge-(y-g);if(g=y,$>0){if(++l>=te)return arguments[0]}else l=0;return s.apply(n,arguments)}}function Mu(s,l){var g=-1,y=s.length,$=y-1;for(l=l===n?y:l;++g<l;){var k=Zp(g,$),M=s[k];s[k]=s[g],s[g]=M}return s.length=l,s}var vy=dN(function(s){var l=[];return s.charCodeAt(0)===46&&l.push(""),s.replace(Ee,function(g,y,$,k){l.push($?k.replace(dl,"$1"):y||g)}),l});function eo(s){if(typeof s=="string"||Xn(s))return s;var l=s+"";return l=="0"&&1/s==-Y?"-0":l}function ts(s){if(s!=null){try{return lu.call(s)}catch{}try{return s+""}catch{}}return""}function mN(s,l){return hr(fe,function(g){var y="_."+g[0];l&g[1]&&!ru(s,y)&&s.push(y)}),s.sort()}function xy(s){if(s instanceof Je)return s.clone();var l=new mr(s.__wrapped__,s.__chain__);return l.__actions__=Tn(s.__actions__),l.__index__=s.__index__,l.__values__=s.__values__,l}function vN(s,l,g){(g?Cn(s,l,g):l===n)?l=1:l=Ht(ze(l),0);var y=s==null?0:s.length;if(!y||l<1)return[];for(var $=0,k=0,M=G(gu(y/l));$<y;)M[k++]=xr(s,$,$+=l);return M}function xN(s){for(var l=-1,g=s==null?0:s.length,y=0,$=[];++l<g;){var k=s[l];k&&($[y++]=k)}return $}function yN(){var s=arguments.length;if(!s)return[];for(var l=G(s-1),g=arguments[0],y=s;y--;)l[y-1]=arguments[y];return oi(Le(g)?Tn(g):[g],rn(l,1))}var wN=Ke(function(s,l){return Tt(s)?Sl(s,rn(l,1,Tt,!0)):[]}),bN=Ke(function(s,l){var g=yr(l);return Tt(g)&&(g=n),Tt(s)?Sl(s,rn(l,1,Tt,!0),$e(g,2)):[]}),SN=Ke(function(s,l){var g=yr(l);return Tt(g)&&(g=n),Tt(s)?Sl(s,rn(l,1,Tt,!0),n,g):[]});function CN(s,l,g){var y=s==null?0:s.length;return y?(l=g||l===n?1:ze(l),xr(s,l<0?0:l,y)):[]}function $N(s,l,g){var y=s==null?0:s.length;return y?(l=g||l===n?1:ze(l),l=y-l,xr(s,0,l<0?0:l)):[]}function PN(s,l){return s&&s.length?Pu(s,$e(l,3),!0,!0):[]}function EN(s,l){return s&&s.length?Pu(s,$e(l,3),!0):[]}function RN(s,l,g,y){var $=s==null?0:s.length;return $?(g&&typeof g!="number"&&Cn(s,l,g)&&(g=0,y=$),y5(s,l,g,y)):[]}function yy(s,l,g){var y=s==null?0:s.length;if(!y)return-1;var $=g==null?0:ze(g);return $<0&&($=Ht(y+$,0)),ou(s,$e(l,3),$)}function wy(s,l,g){var y=s==null?0:s.length;if(!y)return-1;var $=y-1;return g!==n&&($=ze(g),$=g<0?Ht(y+$,0):cn($,y-1)),ou(s,$e(l,3),$,!0)}function by(s){var l=s==null?0:s.length;return l?rn(s,1):[]}function _N(s){var l=s==null?0:s.length;return l?rn(s,Y):[]}function NN(s,l){var g=s==null?0:s.length;return g?(l=l===n?1:ze(l),rn(s,l)):[]}function kN(s){for(var l=-1,g=s==null?0:s.length,y={};++l<g;){var $=s[l];y[$[0]]=$[1]}return y}function Sy(s){return s&&s.length?s[0]:n}function DN(s,l,g){var y=s==null?0:s.length;if(!y)return-1;var $=g==null?0:ze(g);return $<0&&($=Ht(y+$,0)),Bs(s,l,$)}function jN(s){var l=s==null?0:s.length;return l?xr(s,0,-1):[]}var MN=Ke(function(s){var l=St(s,oh);return l.length&&l[0]===s[0]?qp(l):[]}),TN=Ke(function(s){var l=yr(s),g=St(s,oh);return l===yr(g)?l=n:g.pop(),g.length&&g[0]===s[0]?qp(g,$e(l,2)):[]}),IN=Ke(function(s){var l=yr(s),g=St(s,oh);return l=typeof l=="function"?l:n,l&&g.pop(),g.length&&g[0]===s[0]?qp(g,n,l):[]});function ON(s,l){return s==null?"":j_.call(s,l)}function yr(s){var l=s==null?0:s.length;return l?s[l-1]:n}function LN(s,l,g){var y=s==null?0:s.length;if(!y)return-1;var $=y;return g!==n&&($=ze(g),$=$<0?Ht(y+$,0):cn($,y-1)),l===l?m_(s,l,$):ou(s,nx,$,!0)}function AN(s,l){return s&&s.length?Mx(s,ze(l)):n}var FN=Ke(Cy);function Cy(s,l){return s&&s.length&&l&&l.length?Jp(s,l):s}function zN(s,l,g){return s&&s.length&&l&&l.length?Jp(s,l,$e(g,2)):s}function UN(s,l,g){return s&&s.length&&l&&l.length?Jp(s,l,n,g):s}var BN=bo(function(s,l){var g=s==null?0:s.length,y=Hp(s,l);return Ox(s,St(l,function($){return So($,g)?+$:$}).sort(Kx)),y});function VN(s,l){var g=[];if(!(s&&s.length))return g;var y=-1,$=[],k=s.length;for(l=$e(l,3);++y<k;){var M=s[y];l(M,y,s)&&(g.push(M),$.push(y))}return Ox(s,$),g}function xh(s){return s==null?s:O_.call(s)}function HN(s,l,g){var y=s==null?0:s.length;return y?(g&&typeof g!="number"&&Cn(s,l,g)?(l=0,g=y):(l=l==null?0:ze(l),g=g===n?y:ze(g)),xr(s,l,g)):[]}function WN(s,l){return $u(s,l)}function KN(s,l,g){return th(s,l,$e(g,2))}function GN(s,l){var g=s==null?0:s.length;if(g){var y=$u(s,l);if(y<g&&Or(s[y],l))return y}return-1}function qN(s,l){return $u(s,l,!0)}function YN(s,l,g){return th(s,l,$e(g,2),!0)}function XN(s,l){var g=s==null?0:s.length;if(g){var y=$u(s,l,!0)-1;if(Or(s[y],l))return y}return-1}function QN(s){return s&&s.length?Ax(s):[]}function JN(s,l){return s&&s.length?Ax(s,$e(l,2)):[]}function ZN(s){var l=s==null?0:s.length;return l?xr(s,1,l):[]}function e4(s,l,g){return s&&s.length?(l=g||l===n?1:ze(l),xr(s,0,l<0?0:l)):[]}function t4(s,l,g){var y=s==null?0:s.length;return y?(l=g||l===n?1:ze(l),l=y-l,xr(s,l<0?0:l,y)):[]}function n4(s,l){return s&&s.length?Pu(s,$e(l,3),!1,!0):[]}function r4(s,l){return s&&s.length?Pu(s,$e(l,3)):[]}var o4=Ke(function(s){return li(rn(s,1,Tt,!0))}),i4=Ke(function(s){var l=yr(s);return Tt(l)&&(l=n),li(rn(s,1,Tt,!0),$e(l,2))}),s4=Ke(function(s){var l=yr(s);return l=typeof l=="function"?l:n,li(rn(s,1,Tt,!0),n,l)});function a4(s){return s&&s.length?li(s):[]}function l4(s,l){return s&&s.length?li(s,$e(l,2)):[]}function c4(s,l){return l=typeof l=="function"?l:n,s&&s.length?li(s,n,l):[]}function yh(s){if(!(s&&s.length))return[];var l=0;return s=ri(s,function(g){if(Tt(g))return l=Ht(g.length,l),!0}),Op(l,function(g){return St(s,Mp(g))})}function $y(s,l){if(!(s&&s.length))return[];var g=yh(s);return l==null?g:St(g,function(y){return Gn(l,n,y)})}var u4=Ke(function(s,l){return Tt(s)?Sl(s,l):[]}),d4=Ke(function(s){return rh(ri(s,Tt))}),f4=Ke(function(s){var l=yr(s);return Tt(l)&&(l=n),rh(ri(s,Tt),$e(l,2))}),p4=Ke(function(s){var l=yr(s);return l=typeof l=="function"?l:n,rh(ri(s,Tt),n,l)}),h4=Ke(yh);function g4(s,l){return Bx(s||[],l||[],bl)}function m4(s,l){return Bx(s||[],l||[],Pl)}var v4=Ke(function(s){var l=s.length,g=l>1?s[l-1]:n;return g=typeof g=="function"?(s.pop(),g):n,$y(s,g)});function Py(s){var l=R(s);return l.__chain__=!0,l}function x4(s,l){return l(s),s}function Tu(s,l){return l(s)}var y4=bo(function(s){var l=s.length,g=l?s[0]:0,y=this.__wrapped__,$=function(k){return Hp(k,s)};return l>1||this.__actions__.length||!(y instanceof Je)||!So(g)?this.thru($):(y=y.slice(g,+g+(l?1:0)),y.__actions__.push({func:Tu,args:[$],thisArg:n}),new mr(y,this.__chain__).thru(function(k){return l&&!k.length&&k.push(n),k}))});function w4(){return Py(this)}function b4(){return new mr(this.value(),this.__chain__)}function S4(){this.__values__===n&&(this.__values__=Fy(this.value()));var s=this.__index__>=this.__values__.length,l=s?n:this.__values__[this.__index__++];return{done:s,value:l}}function C4(){return this}function $4(s){for(var l,g=this;g instanceof yu;){var y=xy(g);y.__index__=0,y.__values__=n,l?$.__wrapped__=y:l=y;var $=y;g=g.__wrapped__}return $.__wrapped__=s,l}function P4(){var s=this.__wrapped__;if(s instanceof Je){var l=s;return this.__actions__.length&&(l=new Je(this)),l=l.reverse(),l.__actions__.push({func:Tu,args:[xh],thisArg:n}),new mr(l,this.__chain__)}return this.thru(xh)}function E4(){return Ux(this.__wrapped__,this.__actions__)}var R4=Eu(function(s,l,g){ct.call(s,g)?++s[g]:yo(s,g,1)});function _4(s,l,g){var y=Le(s)?ex:x5;return g&&Cn(s,l,g)&&(l=n),y(s,$e(l,3))}function N4(s,l){var g=Le(s)?ri:$x;return g(s,$e(l,3))}var k4=Jx(yy),D4=Jx(wy);function j4(s,l){return rn(Iu(s,l),1)}function M4(s,l){return rn(Iu(s,l),Y)}function T4(s,l,g){return g=g===n?1:ze(g),rn(Iu(s,l),g)}function Ey(s,l){var g=Le(s)?hr:ai;return g(s,$e(l,3))}function Ry(s,l){var g=Le(s)?ZR:Cx;return g(s,$e(l,3))}var I4=Eu(function(s,l,g){ct.call(s,g)?s[g].push(l):yo(s,g,[l])});function O4(s,l,g,y){s=In(s)?s:ea(s),g=g&&!y?ze(g):0;var $=s.length;return g<0&&(g=Ht($+g,0)),zu(s)?g<=$&&s.indexOf(l,g)>-1:!!$&&Bs(s,l,g)>-1}var L4=Ke(function(s,l,g){var y=-1,$=typeof l=="function",k=In(s)?G(s.length):[];return ai(s,function(M){k[++y]=$?Gn(l,M,g):Cl(M,l,g)}),k}),A4=Eu(function(s,l,g){yo(s,g,l)});function Iu(s,l){var g=Le(s)?St:kx;return g(s,$e(l,3))}function F4(s,l,g,y){return s==null?[]:(Le(l)||(l=l==null?[]:[l]),g=y?n:g,Le(g)||(g=g==null?[]:[g]),Tx(s,l,g))}var z4=Eu(function(s,l,g){s[g?0:1].push(l)},function(){return[[],[]]});function U4(s,l,g){var y=Le(s)?Dp:ox,$=arguments.length<3;return y(s,$e(l,4),g,$,ai)}function B4(s,l,g){var y=Le(s)?e_:ox,$=arguments.length<3;return y(s,$e(l,4),g,$,Cx)}function V4(s,l){var g=Le(s)?ri:$x;return g(s,Au($e(l,3)))}function H4(s){var l=Le(s)?yx:O5;return l(s)}function W4(s,l,g){(g?Cn(s,l,g):l===n)?l=1:l=ze(l);var y=Le(s)?p5:L5;return y(s,l)}function K4(s){var l=Le(s)?h5:F5;return l(s)}function G4(s){if(s==null)return 0;if(In(s))return zu(s)?Hs(s):s.length;var l=un(s);return l==lt||l==vt?s.size:Xp(s).length}function q4(s,l,g){var y=Le(s)?jp:z5;return g&&Cn(s,l,g)&&(l=n),y(s,$e(l,3))}var Y4=Ke(function(s,l){if(s==null)return[];var g=l.length;return g>1&&Cn(s,l[0],l[1])?l=[]:g>2&&Cn(l[0],l[1],l[2])&&(l=[l[0]]),Tx(s,rn(l,1),[])}),Ou=N_||function(){return nn.Date.now()};function X4(s,l){if(typeof l!="function")throw new gr(a);return s=ze(s),function(){if(--s<1)return l.apply(this,arguments)}}function _y(s,l,g){return l=g?n:l,l=s&&l==null?s.length:l,wo(s,j,n,n,n,n,l)}function Ny(s,l){var g;if(typeof l!="function")throw new gr(a);return s=ze(s),function(){return--s>0&&(g=l.apply(this,arguments)),s<=1&&(l=n),g}}var wh=Ke(function(s,l,g){var y=P;if(g.length){var $=ii(g,Js(wh));y|=D}return wo(s,y,l,g,$)}),ky=Ke(function(s,l,g){var y=P|C;if(g.length){var $=ii(g,Js(ky));y|=D}return wo(l,y,s,g,$)});function Dy(s,l,g){l=g?n:l;var y=wo(s,E,n,n,n,n,n,l);return y.placeholder=Dy.placeholder,y}function jy(s,l,g){l=g?n:l;var y=wo(s,_,n,n,n,n,n,l);return y.placeholder=jy.placeholder,y}function My(s,l,g){var y,$,k,M,I,F,Z=0,ee=!1,re=!1,de=!0;if(typeof s!="function")throw new gr(a);l=wr(l)||0,$t(g)&&(ee=!!g.leading,re="maxWait"in g,k=re?Ht(wr(g.maxWait)||0,l):k,de="trailing"in g?!!g.trailing:de);function we(It){var Lr=y,Po=$;return y=$=n,Z=It,M=s.apply(Po,Lr),M}function Re(It){return Z=It,I=_l(Ye,l),ee?we(It):M}function He(It){var Lr=It-F,Po=It-Z,Jy=l-Lr;return re?cn(Jy,k-Po):Jy}function _e(It){var Lr=It-F,Po=It-Z;return F===n||Lr>=l||Lr<0||re&&Po>=k}function Ye(){var It=Ou();if(_e(It))return tt(It);I=_l(Ye,He(It))}function tt(It){return I=n,de&&y?we(It):(y=$=n,M)}function Qn(){I!==n&&Vx(I),Z=0,y=F=$=I=n}function $n(){return I===n?M:tt(Ou())}function Jn(){var It=Ou(),Lr=_e(It);if(y=arguments,$=this,F=It,Lr){if(I===n)return Re(F);if(re)return Vx(I),I=_l(Ye,l),we(F)}return I===n&&(I=_l(Ye,l)),M}return Jn.cancel=Qn,Jn.flush=$n,Jn}var Q4=Ke(function(s,l){return Sx(s,1,l)}),J4=Ke(function(s,l,g){return Sx(s,wr(l)||0,g)});function Z4(s){return wo(s,V)}function Lu(s,l){if(typeof s!="function"||l!=null&&typeof l!="function")throw new gr(a);var g=function(){var y=arguments,$=l?l.apply(this,y):y[0],k=g.cache;if(k.has($))return k.get($);var M=s.apply(this,y);return g.cache=k.set($,M)||k,M};return g.cache=new(Lu.Cache||xo),g}Lu.Cache=xo;function Au(s){if(typeof s!="function")throw new gr(a);return function(){var l=arguments;switch(l.length){case 0:return!s.call(this);case 1:return!s.call(this,l[0]);case 2:return!s.call(this,l[0],l[1]);case 3:return!s.call(this,l[0],l[1],l[2])}return!s.apply(this,l)}}function e6(s){return Ny(2,s)}var t6=U5(function(s,l){l=l.length==1&&Le(l[0])?St(l[0],qn($e())):St(rn(l,1),qn($e()));var g=l.length;return Ke(function(y){for(var $=-1,k=cn(y.length,g);++$<k;)y[$]=l[$].call(this,y[$]);return Gn(s,this,y)})}),bh=Ke(function(s,l){var g=ii(l,Js(bh));return wo(s,D,n,l,g)}),Ty=Ke(function(s,l){var g=ii(l,Js(Ty));return wo(s,N,n,l,g)}),n6=bo(function(s,l){return wo(s,O,n,n,n,l)});function r6(s,l){if(typeof s!="function")throw new gr(a);return l=l===n?l:ze(l),Ke(s,l)}function o6(s,l){if(typeof s!="function")throw new gr(a);return l=l==null?0:Ht(ze(l),0),Ke(function(g){var y=g[l],$=ui(g,0,l);return y&&oi($,y),Gn(s,this,$)})}function i6(s,l,g){var y=!0,$=!0;if(typeof s!="function")throw new gr(a);return $t(g)&&(y="leading"in g?!!g.leading:y,$="trailing"in g?!!g.trailing:$),My(s,l,{leading:y,maxWait:l,trailing:$})}function s6(s){return _y(s,1)}function a6(s,l){return bh(ih(l),s)}function l6(){if(!arguments.length)return[];var s=arguments[0];return Le(s)?s:[s]}function c6(s){return vr(s,x)}function u6(s,l){return l=typeof l=="function"?l:n,vr(s,x,l)}function d6(s){return vr(s,m|x)}function f6(s,l){return l=typeof l=="function"?l:n,vr(s,m|x,l)}function p6(s,l){return l==null||bx(s,l,Qt(l))}function Or(s,l){return s===l||s!==s&&l!==l}var h6=ku(Gp),g6=ku(function(s,l){return s>=l}),ns=Rx(function(){return arguments}())?Rx:function(s){return Nt(s)&&ct.call(s,"callee")&&!px.call(s,"callee")},Le=G.isArray,m6=q1?qn(q1):$5;function In(s){return s!=null&&Fu(s.length)&&!Co(s)}function Tt(s){return Nt(s)&&In(s)}function v6(s){return s===!0||s===!1||Nt(s)&&Sn(s)==Te}var di=D_||jh,x6=Y1?qn(Y1):P5;function y6(s){return Nt(s)&&s.nodeType===1&&!Nl(s)}function w6(s){if(s==null)return!0;if(In(s)&&(Le(s)||typeof s=="string"||typeof s.splice=="function"||di(s)||Zs(s)||ns(s)))return!s.length;var l=un(s);if(l==lt||l==vt)return!s.size;if(Rl(s))return!Xp(s).length;for(var g in s)if(ct.call(s,g))return!1;return!0}function b6(s,l){return $l(s,l)}function S6(s,l,g){g=typeof g=="function"?g:n;var y=g?g(s,l):n;return y===n?$l(s,l,n,g):!!y}function Sh(s){if(!Nt(s))return!1;var l=Sn(s);return l==Pe||l==We||typeof s.message=="string"&&typeof s.name=="string"&&!Nl(s)}function C6(s){return typeof s=="number"&&gx(s)}function Co(s){if(!$t(s))return!1;var l=Sn(s);return l==Me||l==Mt||l==pe||l==Xr}function Iy(s){return typeof s=="number"&&s==ze(s)}function Fu(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=U}function $t(s){var l=typeof s;return s!=null&&(l=="object"||l=="function")}function Nt(s){return s!=null&&typeof s=="object"}var Oy=X1?qn(X1):R5;function $6(s,l){return s===l||Yp(s,l,fh(l))}function P6(s,l,g){return g=typeof g=="function"?g:n,Yp(s,l,fh(l),g)}function E6(s){return Ly(s)&&s!=+s}function R6(s){if(uN(s))throw new Ie(i);return _x(s)}function _6(s){return s===null}function N6(s){return s==null}function Ly(s){return typeof s=="number"||Nt(s)&&Sn(s)==Qe}function Nl(s){if(!Nt(s)||Sn(s)!=Ut)return!1;var l=fu(s);if(l===null)return!0;var g=ct.call(l,"constructor")&&l.constructor;return typeof g=="function"&&g instanceof g&&lu.call(g)==P_}var Ch=Q1?qn(Q1):_5;function k6(s){return Iy(s)&&s>=-U&&s<=U}var Ay=J1?qn(J1):N5;function zu(s){return typeof s=="string"||!Le(s)&&Nt(s)&&Sn(s)==dr}function Xn(s){return typeof s=="symbol"||Nt(s)&&Sn(s)==xn}var Zs=Z1?qn(Z1):k5;function D6(s){return s===n}function j6(s){return Nt(s)&&un(s)==Yt}function M6(s){return Nt(s)&&Sn(s)==Ki}var T6=ku(Qp),I6=ku(function(s,l){return s<=l});function Fy(s){if(!s)return[];if(In(s))return zu(s)?Tr(s):Tn(s);if(ml&&s[ml])return p_(s[ml]());var l=un(s),g=l==lt?Ap:l==vt?iu:ea;return g(s)}function $o(s){if(!s)return s===0?s:0;if(s=wr(s),s===Y||s===-Y){var l=s<0?-1:1;return l*B}return s===s?s:0}function ze(s){var l=$o(s),g=l%1;return l===l?g?l-g:l:0}function zy(s){return s?Ji(ze(s),0,H):0}function wr(s){if(typeof s=="number")return s;if(Xn(s))return L;if($t(s)){var l=typeof s.valueOf=="function"?s.valueOf():s;s=$t(l)?l+"":l}if(typeof s!="string")return s===0?s:+s;s=ix(s);var g=fl.test(s);return g||hl.test(s)?XR(s.slice(2),g?2:8):mo.test(s)?L:+s}function Uy(s){return Zr(s,On(s))}function O6(s){return s?Ji(ze(s),-U,U):s===0?s:0}function st(s){return s==null?"":Yn(s)}var L6=Xs(function(s,l){if(Rl(l)||In(l)){Zr(l,Qt(l),s);return}for(var g in l)ct.call(l,g)&&bl(s,g,l[g])}),By=Xs(function(s,l){Zr(l,On(l),s)}),Uu=Xs(function(s,l,g,y){Zr(l,On(l),s,y)}),A6=Xs(function(s,l,g,y){Zr(l,Qt(l),s,y)}),F6=bo(Hp);function z6(s,l){var g=Ys(s);return l==null?g:wx(g,l)}var U6=Ke(function(s,l){s=pt(s);var g=-1,y=l.length,$=y>2?l[2]:n;for($&&Cn(l[0],l[1],$)&&(y=1);++g<y;)for(var k=l[g],M=On(k),I=-1,F=M.length;++I<F;){var Z=M[I],ee=s[Z];(ee===n||Or(ee,Ks[Z])&&!ct.call(s,Z))&&(s[Z]=k[Z])}return s}),B6=Ke(function(s){return s.push(n,iy),Gn(Vy,n,s)});function V6(s,l){return tx(s,$e(l,3),Jr)}function H6(s,l){return tx(s,$e(l,3),Kp)}function W6(s,l){return s==null?s:Wp(s,$e(l,3),On)}function K6(s,l){return s==null?s:Px(s,$e(l,3),On)}function G6(s,l){return s&&Jr(s,$e(l,3))}function q6(s,l){return s&&Kp(s,$e(l,3))}function Y6(s){return s==null?[]:Su(s,Qt(s))}function X6(s){return s==null?[]:Su(s,On(s))}function $h(s,l,g){var y=s==null?n:Zi(s,l);return y===n?g:y}function Q6(s,l){return s!=null&&ly(s,l,w5)}function Ph(s,l){return s!=null&&ly(s,l,b5)}var J6=ey(function(s,l,g){l!=null&&typeof l.toString!="function"&&(l=cu.call(l)),s[l]=g},Rh(Ln)),Z6=ey(function(s,l,g){l!=null&&typeof l.toString!="function"&&(l=cu.call(l)),ct.call(s,l)?s[l].push(g):s[l]=[g]},$e),e7=Ke(Cl);function Qt(s){return In(s)?xx(s):Xp(s)}function On(s){return In(s)?xx(s,!0):D5(s)}function t7(s,l){var g={};return l=$e(l,3),Jr(s,function(y,$,k){yo(g,l(y,$,k),y)}),g}function n7(s,l){var g={};return l=$e(l,3),Jr(s,function(y,$,k){yo(g,$,l(y,$,k))}),g}var r7=Xs(function(s,l,g){Cu(s,l,g)}),Vy=Xs(function(s,l,g,y){Cu(s,l,g,y)}),o7=bo(function(s,l){var g={};if(s==null)return g;var y=!1;l=St(l,function(k){return k=ci(k,s),y||(y=k.length>1),k}),Zr(s,uh(s),g),y&&(g=vr(g,m|v|x,J5));for(var $=l.length;$--;)nh(g,l[$]);return g});function i7(s,l){return Hy(s,Au($e(l)))}var s7=bo(function(s,l){return s==null?{}:M5(s,l)});function Hy(s,l){if(s==null)return{};var g=St(uh(s),function(y){return[y]});return l=$e(l),Ix(s,g,function(y,$){return l(y,$[0])})}function a7(s,l,g){l=ci(l,s);var y=-1,$=l.length;for($||($=1,s=n);++y<$;){var k=s==null?n:s[eo(l[y])];k===n&&(y=$,k=g),s=Co(k)?k.call(s):k}return s}function l7(s,l,g){return s==null?s:Pl(s,l,g)}function c7(s,l,g,y){return y=typeof y=="function"?y:n,s==null?s:Pl(s,l,g,y)}var Wy=ry(Qt),Ky=ry(On);function u7(s,l,g){var y=Le(s),$=y||di(s)||Zs(s);if(l=$e(l,4),g==null){var k=s&&s.constructor;$?g=y?new k:[]:$t(s)?g=Co(k)?Ys(fu(s)):{}:g={}}return($?hr:Jr)(s,function(M,I,F){return l(g,M,I,F)}),g}function d7(s,l){return s==null?!0:nh(s,l)}function f7(s,l,g){return s==null?s:zx(s,l,ih(g))}function p7(s,l,g,y){return y=typeof y=="function"?y:n,s==null?s:zx(s,l,ih(g),y)}function ea(s){return s==null?[]:Lp(s,Qt(s))}function h7(s){return s==null?[]:Lp(s,On(s))}function g7(s,l,g){return g===n&&(g=l,l=n),g!==n&&(g=wr(g),g=g===g?g:0),l!==n&&(l=wr(l),l=l===l?l:0),Ji(wr(s),l,g)}function m7(s,l,g){return l=$o(l),g===n?(g=l,l=0):g=$o(g),s=wr(s),S5(s,l,g)}function v7(s,l,g){if(g&&typeof g!="boolean"&&Cn(s,l,g)&&(l=g=n),g===n&&(typeof l=="boolean"?(g=l,l=n):typeof s=="boolean"&&(g=s,s=n)),s===n&&l===n?(s=0,l=1):(s=$o(s),l===n?(l=s,s=0):l=$o(l)),s>l){var y=s;s=l,l=y}if(g||s%1||l%1){var $=mx();return cn(s+$*(l-s+YR("1e-"+(($+"").length-1))),l)}return Zp(s,l)}var x7=Qs(function(s,l,g){return l=l.toLowerCase(),s+(g?Gy(l):l)});function Gy(s){return Eh(st(s).toLowerCase())}function qy(s){return s=st(s),s&&s.replace(Fs,l_).replace(FR,"")}function y7(s,l,g){s=st(s),l=Yn(l);var y=s.length;g=g===n?y:Ji(ze(g),0,y);var $=g;return g-=l.length,g>=0&&s.slice(g,$)==l}function w7(s){return s=st(s),s&&K.test(s)?s.replace(tu,c_):s}function b7(s){return s=st(s),s&&qe.test(s)?s.replace(be,"\\$&"):s}var S7=Qs(function(s,l,g){return s+(g?"-":"")+l.toLowerCase()}),C7=Qs(function(s,l,g){return s+(g?" ":"")+l.toLowerCase()}),$7=Qx("toLowerCase");function P7(s,l,g){s=st(s),l=ze(l);var y=l?Hs(s):0;if(!l||y>=l)return s;var $=(l-y)/2;return Nu(mu($),g)+s+Nu(gu($),g)}function E7(s,l,g){s=st(s),l=ze(l);var y=l?Hs(s):0;return l&&y<l?s+Nu(l-y,g):s}function R7(s,l,g){s=st(s),l=ze(l);var y=l?Hs(s):0;return l&&y<l?Nu(l-y,g)+s:s}function _7(s,l,g){return g||l==null?l=0:l&&(l=+l),I_(st(s).replace(_t,""),l||0)}function N7(s,l,g){return(g?Cn(s,l,g):l===n)?l=1:l=ze(l),eh(st(s),l)}function k7(){var s=arguments,l=st(s[0]);return s.length<3?l:l.replace(s[1],s[2])}var D7=Qs(function(s,l,g){return s+(g?"_":"")+l.toLowerCase()});function j7(s,l,g){return g&&typeof g!="number"&&Cn(s,l,g)&&(l=g=n),g=g===n?H:g>>>0,g?(s=st(s),s&&(typeof l=="string"||l!=null&&!Ch(l))&&(l=Yn(l),!l&&Vs(s))?ui(Tr(s),0,g):s.split(l,g)):[]}var M7=Qs(function(s,l,g){return s+(g?" ":"")+Eh(l)});function T7(s,l,g){return s=st(s),g=g==null?0:Ji(ze(g),0,s.length),l=Yn(l),s.slice(g,g+l.length)==l}function I7(s,l,g){var y=R.templateSettings;g&&Cn(s,l,g)&&(l=n),s=st(s),l=Uu({},l,y,oy);var $=Uu({},l.imports,y.imports,oy),k=Qt($),M=Lp($,k),I,F,Z=0,ee=l.interpolate||ot,re="__p += '",de=Fp((l.escape||ot).source+"|"+ee.source+"|"+(ee===ye?ti:ot).source+"|"+(l.evaluate||ot).source+"|$","g"),we="//# sourceURL="+(ct.call(l,"sourceURL")?(l.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++HR+"]")+` -`;s.replace(de,function(_e,Ye,tt,Qn,$n,Jn){return tt||(tt=Qn),re+=s.slice(Z,Jn).replace(ht,u_),Ye&&(I=!0,re+=`' + -__e(`+Ye+`) + -'`),$n&&(F=!0,re+=`'; -`+$n+`; -__p += '`),tt&&(re+=`' + -((__t = (`+tt+`)) == null ? '' : __t) + -'`),Z=Jn+_e.length,_e}),re+=`'; -`;var Re=ct.call(l,"variable")&&l.variable;if(!Re)re=`with (obj) { -`+re+` -} -`;else if(ei.test(Re))throw new Ie(c);re=(F?re.replace(jn,""):re).replace(go,"$1").replace(cl,"$1;"),re="function("+(Re||"obj")+`) { -`+(Re?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(I?", __e = _.escape":"")+(F?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+re+`return __p -}`;var He=Xy(function(){return it(k,we+"return "+re).apply(n,M)});if(He.source=re,Sh(He))throw He;return He}function O7(s){return st(s).toLowerCase()}function L7(s){return st(s).toUpperCase()}function A7(s,l,g){if(s=st(s),s&&(g||l===n))return ix(s);if(!s||!(l=Yn(l)))return s;var y=Tr(s),$=Tr(l),k=sx(y,$),M=ax(y,$)+1;return ui(y,k,M).join("")}function F7(s,l,g){if(s=st(s),s&&(g||l===n))return s.slice(0,cx(s)+1);if(!s||!(l=Yn(l)))return s;var y=Tr(s),$=ax(y,Tr(l))+1;return ui(y,0,$).join("")}function z7(s,l,g){if(s=st(s),s&&(g||l===n))return s.replace(_t,"");if(!s||!(l=Yn(l)))return s;var y=Tr(s),$=sx(y,Tr(l));return ui(y,$).join("")}function U7(s,l){var g=J,y=ie;if($t(l)){var $="separator"in l?l.separator:$;g="length"in l?ze(l.length):g,y="omission"in l?Yn(l.omission):y}s=st(s);var k=s.length;if(Vs(s)){var M=Tr(s);k=M.length}if(g>=k)return s;var I=g-Hs(y);if(I<1)return y;var F=M?ui(M,0,I).join(""):s.slice(0,I);if($===n)return F+y;if(M&&(I+=F.length-I),Ch($)){if(s.slice(I).search($)){var Z,ee=F;for($.global||($=Fp($.source,st(Mr.exec($))+"g")),$.lastIndex=0;Z=$.exec(ee);)var re=Z.index;F=F.slice(0,re===n?I:re)}}else if(s.indexOf(Yn($),I)!=I){var de=F.lastIndexOf($);de>-1&&(F=F.slice(0,de))}return F+y}function B7(s){return s=st(s),s&&z.test(s)?s.replace(ul,v_):s}var V7=Qs(function(s,l,g){return s+(g?" ":"")+l.toUpperCase()}),Eh=Qx("toUpperCase");function Yy(s,l,g){return s=st(s),l=g?n:l,l===n?f_(s)?w_(s):r_(s):s.match(l)||[]}var Xy=Ke(function(s,l){try{return Gn(s,n,l)}catch(g){return Sh(g)?g:new Ie(g)}}),H7=bo(function(s,l){return hr(l,function(g){g=eo(g),yo(s,g,wh(s[g],s))}),s});function W7(s){var l=s==null?0:s.length,g=$e();return s=l?St(s,function(y){if(typeof y[1]!="function")throw new gr(a);return[g(y[0]),y[1]]}):[],Ke(function(y){for(var $=-1;++$<l;){var k=s[$];if(Gn(k[0],this,y))return Gn(k[1],this,y)}})}function K7(s){return v5(vr(s,m))}function Rh(s){return function(){return s}}function G7(s,l){return s==null||s!==s?l:s}var q7=Zx(),Y7=Zx(!0);function Ln(s){return s}function _h(s){return Nx(typeof s=="function"?s:vr(s,m))}function X7(s){return Dx(vr(s,m))}function Q7(s,l){return jx(s,vr(l,m))}var J7=Ke(function(s,l){return function(g){return Cl(g,s,l)}}),Z7=Ke(function(s,l){return function(g){return Cl(s,g,l)}});function Nh(s,l,g){var y=Qt(l),$=Su(l,y);g==null&&!($t(l)&&($.length||!y.length))&&(g=l,l=s,s=this,$=Su(l,Qt(l)));var k=!($t(g)&&"chain"in g)||!!g.chain,M=Co(s);return hr($,function(I){var F=l[I];s[I]=F,M&&(s.prototype[I]=function(){var Z=this.__chain__;if(k||Z){var ee=s(this.__wrapped__),re=ee.__actions__=Tn(this.__actions__);return re.push({func:F,args:arguments,thisArg:s}),ee.__chain__=Z,ee}return F.apply(s,oi([this.value()],arguments))})}),s}function ek(){return nn._===this&&(nn._=E_),this}function kh(){}function tk(s){return s=ze(s),Ke(function(l){return Mx(l,s)})}var nk=ah(St),rk=ah(ex),ok=ah(jp);function Qy(s){return hh(s)?Mp(eo(s)):T5(s)}function ik(s){return function(l){return s==null?n:Zi(s,l)}}var sk=ty(),ak=ty(!0);function Dh(){return[]}function jh(){return!1}function lk(){return{}}function ck(){return""}function uk(){return!0}function dk(s,l){if(s=ze(s),s<1||s>U)return[];var g=H,y=cn(s,H);l=$e(l),s-=H;for(var $=Op(y,l);++g<s;)l(g);return $}function fk(s){return Le(s)?St(s,eo):Xn(s)?[s]:Tn(vy(st(s)))}function pk(s){var l=++$_;return st(s)+l}var hk=_u(function(s,l){return s+l},0),gk=lh("ceil"),mk=_u(function(s,l){return s/l},1),vk=lh("floor");function xk(s){return s&&s.length?bu(s,Ln,Gp):n}function yk(s,l){return s&&s.length?bu(s,$e(l,2),Gp):n}function wk(s){return rx(s,Ln)}function bk(s,l){return rx(s,$e(l,2))}function Sk(s){return s&&s.length?bu(s,Ln,Qp):n}function Ck(s,l){return s&&s.length?bu(s,$e(l,2),Qp):n}var $k=_u(function(s,l){return s*l},1),Pk=lh("round"),Ek=_u(function(s,l){return s-l},0);function Rk(s){return s&&s.length?Ip(s,Ln):0}function _k(s,l){return s&&s.length?Ip(s,$e(l,2)):0}return R.after=X4,R.ary=_y,R.assign=L6,R.assignIn=By,R.assignInWith=Uu,R.assignWith=A6,R.at=F6,R.before=Ny,R.bind=wh,R.bindAll=H7,R.bindKey=ky,R.castArray=l6,R.chain=Py,R.chunk=vN,R.compact=xN,R.concat=yN,R.cond=W7,R.conforms=K7,R.constant=Rh,R.countBy=R4,R.create=z6,R.curry=Dy,R.curryRight=jy,R.debounce=My,R.defaults=U6,R.defaultsDeep=B6,R.defer=Q4,R.delay=J4,R.difference=wN,R.differenceBy=bN,R.differenceWith=SN,R.drop=CN,R.dropRight=$N,R.dropRightWhile=PN,R.dropWhile=EN,R.fill=RN,R.filter=N4,R.flatMap=j4,R.flatMapDeep=M4,R.flatMapDepth=T4,R.flatten=by,R.flattenDeep=_N,R.flattenDepth=NN,R.flip=Z4,R.flow=q7,R.flowRight=Y7,R.fromPairs=kN,R.functions=Y6,R.functionsIn=X6,R.groupBy=I4,R.initial=jN,R.intersection=MN,R.intersectionBy=TN,R.intersectionWith=IN,R.invert=J6,R.invertBy=Z6,R.invokeMap=L4,R.iteratee=_h,R.keyBy=A4,R.keys=Qt,R.keysIn=On,R.map=Iu,R.mapKeys=t7,R.mapValues=n7,R.matches=X7,R.matchesProperty=Q7,R.memoize=Lu,R.merge=r7,R.mergeWith=Vy,R.method=J7,R.methodOf=Z7,R.mixin=Nh,R.negate=Au,R.nthArg=tk,R.omit=o7,R.omitBy=i7,R.once=e6,R.orderBy=F4,R.over=nk,R.overArgs=t6,R.overEvery=rk,R.overSome=ok,R.partial=bh,R.partialRight=Ty,R.partition=z4,R.pick=s7,R.pickBy=Hy,R.property=Qy,R.propertyOf=ik,R.pull=FN,R.pullAll=Cy,R.pullAllBy=zN,R.pullAllWith=UN,R.pullAt=BN,R.range=sk,R.rangeRight=ak,R.rearg=n6,R.reject=V4,R.remove=VN,R.rest=r6,R.reverse=xh,R.sampleSize=W4,R.set=l7,R.setWith=c7,R.shuffle=K4,R.slice=HN,R.sortBy=Y4,R.sortedUniq=QN,R.sortedUniqBy=JN,R.split=j7,R.spread=o6,R.tail=ZN,R.take=e4,R.takeRight=t4,R.takeRightWhile=n4,R.takeWhile=r4,R.tap=x4,R.throttle=i6,R.thru=Tu,R.toArray=Fy,R.toPairs=Wy,R.toPairsIn=Ky,R.toPath=fk,R.toPlainObject=Uy,R.transform=u7,R.unary=s6,R.union=o4,R.unionBy=i4,R.unionWith=s4,R.uniq=a4,R.uniqBy=l4,R.uniqWith=c4,R.unset=d7,R.unzip=yh,R.unzipWith=$y,R.update=f7,R.updateWith=p7,R.values=ea,R.valuesIn=h7,R.without=u4,R.words=Yy,R.wrap=a6,R.xor=d4,R.xorBy=f4,R.xorWith=p4,R.zip=h4,R.zipObject=g4,R.zipObjectDeep=m4,R.zipWith=v4,R.entries=Wy,R.entriesIn=Ky,R.extend=By,R.extendWith=Uu,Nh(R,R),R.add=hk,R.attempt=Xy,R.camelCase=x7,R.capitalize=Gy,R.ceil=gk,R.clamp=g7,R.clone=c6,R.cloneDeep=d6,R.cloneDeepWith=f6,R.cloneWith=u6,R.conformsTo=p6,R.deburr=qy,R.defaultTo=G7,R.divide=mk,R.endsWith=y7,R.eq=Or,R.escape=w7,R.escapeRegExp=b7,R.every=_4,R.find=k4,R.findIndex=yy,R.findKey=V6,R.findLast=D4,R.findLastIndex=wy,R.findLastKey=H6,R.floor=vk,R.forEach=Ey,R.forEachRight=Ry,R.forIn=W6,R.forInRight=K6,R.forOwn=G6,R.forOwnRight=q6,R.get=$h,R.gt=h6,R.gte=g6,R.has=Q6,R.hasIn=Ph,R.head=Sy,R.identity=Ln,R.includes=O4,R.indexOf=DN,R.inRange=m7,R.invoke=e7,R.isArguments=ns,R.isArray=Le,R.isArrayBuffer=m6,R.isArrayLike=In,R.isArrayLikeObject=Tt,R.isBoolean=v6,R.isBuffer=di,R.isDate=x6,R.isElement=y6,R.isEmpty=w6,R.isEqual=b6,R.isEqualWith=S6,R.isError=Sh,R.isFinite=C6,R.isFunction=Co,R.isInteger=Iy,R.isLength=Fu,R.isMap=Oy,R.isMatch=$6,R.isMatchWith=P6,R.isNaN=E6,R.isNative=R6,R.isNil=N6,R.isNull=_6,R.isNumber=Ly,R.isObject=$t,R.isObjectLike=Nt,R.isPlainObject=Nl,R.isRegExp=Ch,R.isSafeInteger=k6,R.isSet=Ay,R.isString=zu,R.isSymbol=Xn,R.isTypedArray=Zs,R.isUndefined=D6,R.isWeakMap=j6,R.isWeakSet=M6,R.join=ON,R.kebabCase=S7,R.last=yr,R.lastIndexOf=LN,R.lowerCase=C7,R.lowerFirst=$7,R.lt=T6,R.lte=I6,R.max=xk,R.maxBy=yk,R.mean=wk,R.meanBy=bk,R.min=Sk,R.minBy=Ck,R.stubArray=Dh,R.stubFalse=jh,R.stubObject=lk,R.stubString=ck,R.stubTrue=uk,R.multiply=$k,R.nth=AN,R.noConflict=ek,R.noop=kh,R.now=Ou,R.pad=P7,R.padEnd=E7,R.padStart=R7,R.parseInt=_7,R.random=v7,R.reduce=U4,R.reduceRight=B4,R.repeat=N7,R.replace=k7,R.result=a7,R.round=Pk,R.runInContext=A,R.sample=H4,R.size=G4,R.snakeCase=D7,R.some=q4,R.sortedIndex=WN,R.sortedIndexBy=KN,R.sortedIndexOf=GN,R.sortedLastIndex=qN,R.sortedLastIndexBy=YN,R.sortedLastIndexOf=XN,R.startCase=M7,R.startsWith=T7,R.subtract=Ek,R.sum=Rk,R.sumBy=_k,R.template=I7,R.times=dk,R.toFinite=$o,R.toInteger=ze,R.toLength=zy,R.toLower=O7,R.toNumber=wr,R.toSafeInteger=O6,R.toString=st,R.toUpper=L7,R.trim=A7,R.trimEnd=F7,R.trimStart=z7,R.truncate=U7,R.unescape=B7,R.uniqueId=pk,R.upperCase=V7,R.upperFirst=Eh,R.each=Ey,R.eachRight=Ry,R.first=Sy,Nh(R,function(){var s={};return Jr(R,function(l,g){ct.call(R.prototype,g)||(s[g]=l)}),s}(),{chain:!1}),R.VERSION=r,hr(["bind","bindKey","curry","curryRight","partial","partialRight"],function(s){R[s].placeholder=R}),hr(["drop","take"],function(s,l){Je.prototype[s]=function(g){g=g===n?1:Ht(ze(g),0);var y=this.__filtered__&&!l?new Je(this):this.clone();return y.__filtered__?y.__takeCount__=cn(g,y.__takeCount__):y.__views__.push({size:cn(g,H),type:s+(y.__dir__<0?"Right":"")}),y},Je.prototype[s+"Right"]=function(g){return this.reverse()[s](g).reverse()}}),hr(["filter","map","takeWhile"],function(s,l){var g=l+1,y=g==le||g==W;Je.prototype[s]=function($){var k=this.clone();return k.__iteratees__.push({iteratee:$e($,3),type:g}),k.__filtered__=k.__filtered__||y,k}}),hr(["head","last"],function(s,l){var g="take"+(l?"Right":"");Je.prototype[s]=function(){return this[g](1).value()[0]}}),hr(["initial","tail"],function(s,l){var g="drop"+(l?"":"Right");Je.prototype[s]=function(){return this.__filtered__?new Je(this):this[g](1)}}),Je.prototype.compact=function(){return this.filter(Ln)},Je.prototype.find=function(s){return this.filter(s).head()},Je.prototype.findLast=function(s){return this.reverse().find(s)},Je.prototype.invokeMap=Ke(function(s,l){return typeof s=="function"?new Je(this):this.map(function(g){return Cl(g,s,l)})}),Je.prototype.reject=function(s){return this.filter(Au($e(s)))},Je.prototype.slice=function(s,l){s=ze(s);var g=this;return g.__filtered__&&(s>0||l<0)?new Je(g):(s<0?g=g.takeRight(-s):s&&(g=g.drop(s)),l!==n&&(l=ze(l),g=l<0?g.dropRight(-l):g.take(l-s)),g)},Je.prototype.takeRightWhile=function(s){return this.reverse().takeWhile(s).reverse()},Je.prototype.toArray=function(){return this.take(H)},Jr(Je.prototype,function(s,l){var g=/^(?:filter|find|map|reject)|While$/.test(l),y=/^(?:head|last)$/.test(l),$=R[y?"take"+(l=="last"?"Right":""):l],k=y||/^find/.test(l);$&&(R.prototype[l]=function(){var M=this.__wrapped__,I=y?[1]:arguments,F=M instanceof Je,Z=I[0],ee=F||Le(M),re=function(Ye){var tt=$.apply(R,oi([Ye],I));return y&&de?tt[0]:tt};ee&&g&&typeof Z=="function"&&Z.length!=1&&(F=ee=!1);var de=this.__chain__,we=!!this.__actions__.length,Re=k&&!de,He=F&&!we;if(!k&&ee){M=He?M:new Je(this);var _e=s.apply(M,I);return _e.__actions__.push({func:Tu,args:[re],thisArg:n}),new mr(_e,de)}return Re&&He?s.apply(this,I):(_e=this.thru(re),Re?y?_e.value()[0]:_e.value():_e)})}),hr(["pop","push","shift","sort","splice","unshift"],function(s){var l=su[s],g=/^(?:push|sort|unshift)$/.test(s)?"tap":"thru",y=/^(?:pop|shift)$/.test(s);R.prototype[s]=function(){var $=arguments;if(y&&!this.__chain__){var k=this.value();return l.apply(Le(k)?k:[],$)}return this[g](function(M){return l.apply(Le(M)?M:[],$)})}}),Jr(Je.prototype,function(s,l){var g=R[l];if(g){var y=g.name+"";ct.call(qs,y)||(qs[y]=[]),qs[y].push({name:l,func:g})}}),qs[Ru(n,C).name]=[{name:"wrapper",func:n}],Je.prototype.clone=B_,Je.prototype.reverse=V_,Je.prototype.value=H_,R.prototype.at=y4,R.prototype.chain=w4,R.prototype.commit=b4,R.prototype.next=S4,R.prototype.plant=$4,R.prototype.reverse=P4,R.prototype.toJSON=R.prototype.valueOf=R.prototype.value=E4,R.prototype.first=R.prototype.head,ml&&(R.prototype[ml]=C4),R},Ws=b_();qi?((qi.exports=Ws)._=Ws,_p._=Ws):nn._=Ws}).call(oo)})(ff,ff.exports);var tP=ff.exports;const Bm=Qa(tP),no=(e,t)=>{p.useEffect(()=>{var r,o;const n=i=>{try{const a=JSON.parse(i.data);a.key===e&&t(a)}catch(a){console.error("Error parsing message",a)}};return(o=(r=window.chrome)==null?void 0:r.webview)==null||o.addEventListener("message",n),()=>{var i,a;(a=(i=window.chrome)==null?void 0:i.webview)==null||a.removeEventListener("message",n)}},[e,t])},qT=()=>Kj(),Gc=()=>({publish:e=>{var t,n;console.log(`Publishing FrontendMessage -> ${e.key}`),(n=(t=window.chrome)==null?void 0:t.webview)==null||n.postMessage(e)}}),YT=()=>{const e=Hi(),{t}=yv();return{prepareForToast:n=>{const r=n.payload,o={};typeof r.Value=="string"?o.Value=r.Value:Object.keys(r.Value??{}).forEach(u=>{var f;o[u]=(f=r.Value[u])==null?void 0:f.toString()});const i=t(`notification.${r.Type}.title`,o),a={duration:6e3,description:t(`notification.${r.Type}.description`,o)};return r.Action&&r.Action!==""&&(a.action={label:t(`notification.${r.Type}.action.label`),onClick:()=>{console.log(`Navigating to ${t(`notification.${r.Type}.action.navigate`)}`),e(t(`notification.${r.Type}.action.navigate`,o))}}),{title:i,options:a}}}},zt=p.forwardRef(({className:e,...t},n)=>d.jsx("div",{ref:n,className:se("rounded-lg bg-card text-card-foreground shadow-md border-4 border-transparent hover:border-gray-200 hover:bg-slate-100 hover:dark:border-primary ease-in-out transition-all hover:dark:bg-gray-700 group/card",e),...t}));zt.displayName="Card";const Rn=p.forwardRef(({className:e,...t},n)=>d.jsx("div",{ref:n,className:se("flex flex-col p-6",e),...t}));Rn.displayName="CardHeader";const pf=p.forwardRef(({className:e,...t},n)=>d.jsx("h3",{ref:n,className:se("text-2xl font-semibold leading-none tracking-tight",e),...t}));pf.displayName="CardTitle";const XT=p.forwardRef(({className:e,...t},n)=>d.jsx("p",{ref:n,className:se("text-sm text-muted-foreground",e),...t}));XT.displayName="CardDescription";const Un=p.forwardRef(({className:e,...t},n)=>d.jsx("div",{ref:n,className:se("p-6 pt-0",e),...t}));Un.displayName="CardContent";const Lo=p.forwardRef(({className:e,...t},n)=>d.jsx("div",{ref:n,className:se("flex items-center p-6 pt-0",e),...t}));Lo.displayName="CardFooter";var nP={exports:{}},QT="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",JT=QT,ZT=JT;function rP(){}function oP(){}oP.resetWarningCache=rP;var eI=function(){function e(r,o,i,a,c,u){if(u!==ZT){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:oP,resetWarningCache:rP};return n.PropTypes=n,n};nP.exports=eI();var tI=nP.exports;const rs=Qa(tI);var nI={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},rI=Object.defineProperty,oI=Object.defineProperties,iI=Object.getOwnPropertyDescriptors,hf=Object.getOwnPropertySymbols,iP=Object.prototype.hasOwnProperty,sP=Object.prototype.propertyIsEnumerable,eS=(e,t,n)=>t in e?rI(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tS=(e,t)=>{for(var n in t||(t={}))iP.call(t,n)&&eS(e,n,t[n]);if(hf)for(var n of hf(t))sP.call(t,n)&&eS(e,n,t[n]);return e},sI=(e,t)=>oI(e,iI(t)),aI=(e,t)=>{var n={};for(var r in e)iP.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&hf)for(var r of hf(e))t.indexOf(r)<0&&sP.call(e,r)&&(n[r]=e[r]);return n},Be=(e,t,n)=>{const r=p.forwardRef((o,i)=>{var a=o,{color:c="currentColor",size:u=24,stroke:f=2,children:h}=a,m=aI(a,["color","size","stroke","children"]);return p.createElement("svg",tS(sI(tS({ref:i},nI),{width:u,height:u,stroke:c,strokeWidth:f,className:`tabler-icon tabler-icon-${e}`}),m),[...n.map(([v,x])=>p.createElement(v,x)),...h||[]])});return r.propTypes={color:rs.string,size:rs.oneOfType([rs.string,rs.number]),stroke:rs.oneOfType([rs.string,rs.number])},r.displayName=`${t}`,r},lI=Be("123","Icon123",[["path",{d:"M3 10l2 -2v8",key:"svg-0"}],["path",{d:"M9 8h3a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h3",key:"svg-1"}],["path",{d:"M17 8h2.5a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1 -1.5 1.5h-1.5h1.5a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1 -1.5 1.5h-2.5",key:"svg-2"}]]),cI=Be("abc","IconAbc",[["path",{d:"M3 16v-6a2 2 0 1 1 4 0v6",key:"svg-0"}],["path",{d:"M3 13h4",key:"svg-1"}],["path",{d:"M10 8v6a2 2 0 1 0 4 0v-1a2 2 0 1 0 -4 0v1",key:"svg-2"}],["path",{d:"M20.732 12a2 2 0 0 0 -3.732 1v1a2 2 0 0 0 3.726 1.01",key:"svg-3"}]]),uI=Be("alert-circle","IconAlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]),or=Be("arrows-left-right","IconArrowsLeftRight",[["path",{d:"M21 17l-18 0",key:"svg-0"}],["path",{d:"M6 10l-3 -3l3 -3",key:"svg-1"}],["path",{d:"M3 7l18 0",key:"svg-2"}],["path",{d:"M18 20l3 -3l-3 -3",key:"svg-3"}]]),aP=Be("arrows-sort","IconArrowsSort",[["path",{d:"M3 9l4 -4l4 4m-4 -4v14",key:"svg-0"}],["path",{d:"M21 15l-4 4l-4 -4m4 4v-14",key:"svg-1"}]]),dI=Be("box","IconBox",[["path",{d:"M12 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5",key:"svg-0"}],["path",{d:"M12 12l8 -4.5",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}],["path",{d:"M12 12l-8 -4.5",key:"svg-3"}]]),fI=Be("brand-discord","IconBrandDiscord",[["path",{d:"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-0"}],["path",{d:"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3",key:"svg-2"}],["path",{d:"M7 16.5c3.5 1 6.5 1 10 0",key:"svg-3"}]]),pI=Be("brand-github","IconBrandGithub",[["path",{d:"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5",key:"svg-0"}]]),hI=Be("brand-paypal","IconBrandPaypal",[["path",{d:"M10 13l2.5 0c2.5 0 5 -2.5 5 -5c0 -3 -1.9 -5 -5 -5h-5.5c-.5 0 -1 .5 -1 1l-2 14c0 .5 .5 1 1 1h2.8l1.2 -5c.1 -.6 .4 -1 1 -1zm7.5 -5.8c1.7 1 2.5 2.8 2.5 4.8c0 2.5 -2.5 4.5 -5 4.5h-2.6l-.6 3.6a1 1 0 0 1 -1 .8l-2.7 0a.5 .5 0 0 1 -.5 -.6l.2 -1.4",key:"svg-0"}]]),gI=Be("brand-youtube","IconBrandYoutube",[["path",{d:"M2 8a4 4 0 0 1 4 -4h12a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-12a4 4 0 0 1 -4 -4v-8z",key:"svg-0"}],["path",{d:"M10 9l5 3l-5 3z",key:"svg-1"}]]),mI=Be("bulb","IconBulb",[["path",{d:"M3 12h1m8 -9v1m8 8h1m-15.4 -6.4l.7 .7m12.1 -.7l-.7 .7",key:"svg-0"}],["path",{d:"M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0 -1 3a2 2 0 0 1 -4 0a3.5 3.5 0 0 0 -1 -3",key:"svg-1"}],["path",{d:"M9.7 17l4.6 0",key:"svg-2"}]]),Gf=Be("check","IconCheck",[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]]),qf=Be("chevron-down","IconChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),vI=Be("chevron-right","IconChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]),lP=Be("chevron-up","IconChevronUp",[["path",{d:"M6 15l6 -6l6 6",key:"svg-0"}]]),xI=Be("circle-plus","IconCirclePlus",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M9 12h6",key:"svg-1"}],["path",{d:"M12 9v6",key:"svg-2"}]]),yI=Be("circle","IconCircle",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}]]),wI=Be("dashboard","IconDashboard",[["path",{d:"M12 13m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M13.45 11.55l2.05 -2.05",key:"svg-1"}],["path",{d:"M6.4 20a9 9 0 1 1 11.2 0z",key:"svg-2"}]]),bI=Be("device-gamepad-2","IconDeviceGamepad2",[["path",{d:"M12 5h3.5a5 5 0 0 1 0 10h-5.5l-4.015 4.227a2.3 2.3 0 0 1 -3.923 -2.035l1.634 -8.173a5 5 0 0 1 4.904 -4.019h3.4z",key:"svg-0"}],["path",{d:"M14 15l4.07 4.284a2.3 2.3 0 0 0 3.925 -2.023l-1.6 -8.232",key:"svg-1"}],["path",{d:"M8 9v2",key:"svg-2"}],["path",{d:"M7 10h2",key:"svg-3"}],["path",{d:"M14 10h2",key:"svg-4"}]]),SI=Be("dots-vertical","IconDotsVertical",[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),cP=Be("dots","IconDots",[["path",{d:"M5 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M19 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),CI=Be("gauge","IconGauge",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M13.41 10.59l2.59 -2.59",key:"svg-2"}],["path",{d:"M7 12a5 5 0 0 1 5 -5",key:"svg-3"}]]),Ao=Be("help","IconHelp",[["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M12 17l0 .01",key:"svg-1"}],["path",{d:"M12 13.5a1.5 1.5 0 0 1 1 -1.5a2.6 2.6 0 1 0 -3 -4",key:"svg-2"}]]),$I=Be("info-circle","IconInfoCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]]),PI=Be("list-search","IconListSearch",[["path",{d:"M15 15m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M18.5 18.5l2.5 2.5",key:"svg-1"}],["path",{d:"M4 6h16",key:"svg-2"}],["path",{d:"M4 12h4",key:"svg-3"}],["path",{d:"M4 18h4",key:"svg-4"}]]),EI=Be("list","IconList",[["path",{d:"M9 6l11 0",key:"svg-0"}],["path",{d:"M9 12l11 0",key:"svg-1"}],["path",{d:"M9 18l11 0",key:"svg-2"}],["path",{d:"M5 6l0 .01",key:"svg-3"}],["path",{d:"M5 12l0 .01",key:"svg-4"}],["path",{d:"M5 18l0 .01",key:"svg-5"}]]),RI=Be("moon","IconMoon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z",key:"svg-0"}]]),uP=Be("pencil","IconPencil",[["path",{d:"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4",key:"svg-0"}],["path",{d:"M13.5 6.5l4 4",key:"svg-1"}]]),_I=Be("player-play","IconPlayerPlay",[["path",{d:"M7 4v16l13 -8z",key:"svg-0"}]]),NI=Be("player-skip-forward","IconPlayerSkipForward",[["path",{d:"M4 5v14l12 -7z",key:"svg-0"}],["path",{d:"M20 5l0 14",key:"svg-1"}]]),kI=Be("player-stop","IconPlayerStop",[["path",{d:"M5 5m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}]]),DI=Be("plus","IconPlus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]),jI=Be("power","IconPower",[["path",{d:"M7 6a7.75 7.75 0 1 0 10 0",key:"svg-0"}],["path",{d:"M12 4l0 8",key:"svg-1"}]]),MI=Be("question-mark","IconQuestionMark",[["path",{d:"M8 8a3.5 3 0 0 1 3.5 -3h1a3.5 3 0 0 1 3.5 3a3 3 0 0 1 -2 3a3 4 0 0 0 -2 4",key:"svg-0"}],["path",{d:"M12 19l0 .01",key:"svg-1"}]]),TI=Be("refresh-dot","IconRefreshDot",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}],["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),II=Be("refresh","IconRefresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]),OI=Be("search","IconSearch",[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),LI=Be("settings","IconSettings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065z",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]),AI=Be("sun-high","IconSunHigh",[["path",{d:"M14.828 14.828a4 4 0 1 0 -5.656 -5.656a4 4 0 0 0 5.656 5.656z",key:"svg-0"}],["path",{d:"M6.343 17.657l-1.414 1.414",key:"svg-1"}],["path",{d:"M6.343 6.343l-1.414 -1.414",key:"svg-2"}],["path",{d:"M17.657 6.343l1.414 -1.414",key:"svg-3"}],["path",{d:"M17.657 17.657l1.414 1.414",key:"svg-4"}],["path",{d:"M4 12h-2",key:"svg-5"}],["path",{d:"M12 4v-2",key:"svg-6"}],["path",{d:"M20 12h2",key:"svg-7"}],["path",{d:"M12 20v2",key:"svg-8"}]]),FI=Be("trash","IconTrash",[["path",{d:"M4 7l16 0",key:"svg-0"}],["path",{d:"M10 11l0 6",key:"svg-1"}],["path",{d:"M14 11l0 6",key:"svg-2"}],["path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12",key:"svg-3"}],["path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3",key:"svg-4"}]]),Yf=Be("x","IconX",[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]]),nS=1,zI=.9,UI=.8,BI=.17,dg=.1,fg=.999,VI=.9999,HI=.99,WI=/[\\\/_+.#"@\[\(\{&]/,KI=/[\\\/_+.#"@\[\(\{&]/g,GI=/[\s-]/,dP=/[\s-]/g;function Vm(e,t,n,r,o,i,a){if(i===t.length)return o===e.length?nS:HI;var c=`${o},${i}`;if(a[c]!==void 0)return a[c];for(var u=r.charAt(i),f=n.indexOf(u,o),h=0,m,v,x,w;f>=0;)m=Vm(e,t,n,r,f+1,i+1,a),m>h&&(f===o?m*=nS:WI.test(e.charAt(f-1))?(m*=UI,x=e.slice(o,f-1).match(KI),x&&o>0&&(m*=Math.pow(fg,x.length))):GI.test(e.charAt(f-1))?(m*=zI,w=e.slice(o,f-1).match(dP),w&&o>0&&(m*=Math.pow(fg,w.length))):(m*=BI,o>0&&(m*=Math.pow(fg,f-o))),e.charAt(f)!==t.charAt(i)&&(m*=VI)),(m<dg&&n.charAt(f-1)===r.charAt(i+1)||r.charAt(i+1)===r.charAt(i)&&n.charAt(f-1)!==r.charAt(i))&&(v=Vm(e,t,n,r,f+1,i+2,a),v*dg>m&&(m=v*dg)),m>h&&(h=m),f=n.indexOf(u,f+1);return a[c]=h,h}function rS(e){return e.toLowerCase().replace(dP," ")}function qI(e,t){return Vm(e,t,rS(e),rS(t),0,0,{})}function Ma(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function YI(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function fP(...e){return t=>e.forEach(n=>YI(n,t))}function qc(...e){return p.useCallback(fP(...e),e)}function XI(e,t=[]){let n=[];function r(i,a){const c=p.createContext(a),u=n.length;n=[...n,a];function f(m){const{scope:v,children:x,...w}=m,b=(v==null?void 0:v[e][u])||c,P=p.useMemo(()=>w,Object.values(w));return p.createElement(b.Provider,{value:P},x)}function h(m,v){const x=(v==null?void 0:v[e][u])||c,w=p.useContext(x);if(w)return w;if(a!==void 0)return a;throw new Error(`\`${m}\` must be used within \`${i}\``)}return f.displayName=i+"Provider",[f,h]}const o=()=>{const i=n.map(a=>p.createContext(a));return function(c){const u=(c==null?void 0:c[e])||i;return p.useMemo(()=>({[`__scope${e}`]:{...c,[e]:u}}),[c,u])}};return o.scopeName=e,[r,QI(o,...t)]}function QI(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((c,{useScope:u,scopeName:f})=>{const m=u(i)[`__scope${f}`];return{...c,...m}},{});return p.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}const Hm=globalThis!=null&&globalThis.document?p.useLayoutEffect:()=>{},JI=b0.useId||(()=>{});let ZI=0;function pg(e){const[t,n]=p.useState(JI());return Hm(()=>{e||n(r=>r??String(ZI++))},[e]),e||(t?`radix-${t}`:"")}function Es(e){const t=p.useRef(e);return p.useEffect(()=>{t.current=e}),p.useMemo(()=>(...n)=>{var r;return(r=t.current)===null||r===void 0?void 0:r.call(t,...n)},[])}function eO({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=tO({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:r,c=Es(n),u=p.useCallback(f=>{if(i){const m=typeof f=="function"?f(e):f;m!==e&&c(m)}else o(f)},[i,e,o,c]);return[a,u]}function tO({defaultProp:e,onChange:t}){const n=p.useState(e),[r]=n,o=p.useRef(r),i=Es(t);return p.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}const Cv=p.forwardRef((e,t)=>{const{children:n,...r}=e,o=p.Children.toArray(n),i=o.find(rO);if(i){const a=i.props.children,c=o.map(u=>u===i?p.Children.count(a)>1?p.Children.only(null):p.isValidElement(a)?a.props.children:null:u);return p.createElement(Wm,q({},r,{ref:t}),p.isValidElement(a)?p.cloneElement(a,void 0,c):null)}return p.createElement(Wm,q({},r,{ref:t}),n)});Cv.displayName="Slot";const Wm=p.forwardRef((e,t)=>{const{children:n,...r}=e;return p.isValidElement(n)?p.cloneElement(n,{...oO(r,n.props),ref:fP(t,n.ref)}):p.Children.count(n)>1?p.Children.only(null):null});Wm.displayName="SlotClone";const nO=({children:e})=>p.createElement(p.Fragment,null,e);function rO(e){return p.isValidElement(e)&&e.type===nO}function oO(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?n[r]=(...c)=>{i==null||i(...c),o==null||o(...c)}:r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}const iO=["a","button","div","h2","h3","img","li","nav","ol","p","span","svg","ul"],Xf=iO.reduce((e,t)=>{const n=p.forwardRef((r,o)=>{const{asChild:i,...a}=r,c=i?Cv:t;return p.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),p.createElement(c,q({},a,{ref:o}))});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function sO(e,t){e&&po.flushSync(()=>e.dispatchEvent(t))}function aO(e){const t=Es(e);p.useEffect(()=>{const n=r=>{r.key==="Escape"&&t(r)};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[t])}const Km="dismissableLayer.update",lO="dismissableLayer.pointerDownOutside",cO="dismissableLayer.focusOutside";let oS;const uO=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),dO=p.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:c,...u}=e,f=p.useContext(uO),[h,m]=p.useState(null),[,v]=p.useState({}),x=qc(t,N=>m(N)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),P=w.indexOf(b),C=h?w.indexOf(h):-1,S=f.layersWithOutsidePointerEventsDisabled.size>0,E=C>=P,_=fO(N=>{const j=N.target,O=[...f.branches].some(V=>V.contains(j));!E||O||(o==null||o(N),a==null||a(N),N.defaultPrevented||c==null||c())}),D=pO(N=>{const j=N.target;[...f.branches].some(V=>V.contains(j))||(i==null||i(N),a==null||a(N),N.defaultPrevented||c==null||c())});return aO(N=>{C===f.layers.size-1&&(r==null||r(N),!N.defaultPrevented&&c&&(N.preventDefault(),c()))}),p.useEffect(()=>{if(h)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(oS=document.body.style.pointerEvents,document.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(h)),f.layers.add(h),iS(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(document.body.style.pointerEvents=oS)}},[h,n,f]),p.useEffect(()=>()=>{h&&(f.layers.delete(h),f.layersWithOutsidePointerEventsDisabled.delete(h),iS())},[h,f]),p.useEffect(()=>{const N=()=>v({});return document.addEventListener(Km,N),()=>document.removeEventListener(Km,N)},[]),p.createElement(Xf.div,q({},u,{ref:x,style:{pointerEvents:S?E?"auto":"none":void 0,...e.style},onFocusCapture:Ma(e.onFocusCapture,D.onFocusCapture),onBlurCapture:Ma(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Ma(e.onPointerDownCapture,_.onPointerDownCapture)}))});function fO(e){const t=Es(e),n=p.useRef(!1),r=p.useRef(()=>{});return p.useEffect(()=>{const o=a=>{if(a.target&&!n.current){let f=function(){pP(lO,t,u,{discrete:!0})};var c=f;const u={originalEvent:a};a.pointerType==="touch"?(document.removeEventListener("click",r.current),r.current=f,document.addEventListener("click",r.current,{once:!0})):f()}n.current=!1},i=window.setTimeout(()=>{document.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(i),document.removeEventListener("pointerdown",o),document.removeEventListener("click",r.current)}},[t]),{onPointerDownCapture:()=>n.current=!0}}function pO(e){const t=Es(e),n=p.useRef(!1);return p.useEffect(()=>{const r=o=>{o.target&&!n.current&&pP(cO,t,{originalEvent:o},{discrete:!1})};return document.addEventListener("focusin",r),()=>document.removeEventListener("focusin",r)},[t]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function iS(){const e=new CustomEvent(Km);document.dispatchEvent(e)}function pP(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?sO(o,i):o.dispatchEvent(i)}const hg="focusScope.autoFocusOnMount",gg="focusScope.autoFocusOnUnmount",sS={bubbles:!1,cancelable:!0},hO=p.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[c,u]=p.useState(null),f=Es(o),h=Es(i),m=p.useRef(null),v=qc(t,b=>u(b)),x=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let C=function(E){if(x.paused||!c)return;const _=E.target;c.contains(_)?m.current=_:ss(m.current,{select:!0})},S=function(E){x.paused||!c||c.contains(E.relatedTarget)||ss(m.current,{select:!0})};var b=C,P=S;return document.addEventListener("focusin",C),document.addEventListener("focusout",S),()=>{document.removeEventListener("focusin",C),document.removeEventListener("focusout",S)}}},[r,c,x.paused]),p.useEffect(()=>{if(c){lS.add(x);const b=document.activeElement;if(!c.contains(b)){const C=new CustomEvent(hg,sS);c.addEventListener(hg,f),c.dispatchEvent(C),C.defaultPrevented||(gO(wO(hP(c)),{select:!0}),document.activeElement===b&&ss(c))}return()=>{c.removeEventListener(hg,f),setTimeout(()=>{const C=new CustomEvent(gg,sS);c.addEventListener(gg,h),c.dispatchEvent(C),C.defaultPrevented||ss(b??document.body,{select:!0}),c.removeEventListener(gg,h),lS.remove(x)},0)}}},[c,f,h,x]);const w=p.useCallback(b=>{if(!n&&!r||x.paused)return;const P=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,C=document.activeElement;if(P&&C){const S=b.currentTarget,[E,_]=mO(S);E&&_?!b.shiftKey&&C===_?(b.preventDefault(),n&&ss(E,{select:!0})):b.shiftKey&&C===E&&(b.preventDefault(),n&&ss(_,{select:!0})):C===S&&b.preventDefault()}},[n,r,x.paused]);return p.createElement(Xf.div,q({tabIndex:-1},a,{ref:v,onKeyDown:w}))});function gO(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(ss(r,{select:t}),document.activeElement!==n)return}function mO(e){const t=hP(e),n=aS(t,e),r=aS(t.reverse(),e);return[n,r]}function hP(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function aS(e,t){for(const n of e)if(!vO(n,{upTo:t}))return n}function vO(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function xO(e){return e instanceof HTMLInputElement&&"select"in e}function ss(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&xO(e)&&t&&e.select()}}const lS=yO();function yO(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=cS(e,t),e.unshift(t)},remove(t){var n;e=cS(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function cS(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function wO(e){return e.filter(t=>t.tagName!=="A")}const bO=p.forwardRef((e,t)=>{var n;const{container:r=globalThis==null||(n=globalThis.document)===null||n===void 0?void 0:n.body,...o}=e;return r?Uf.createPortal(p.createElement(Xf.div,q({},o,{ref:t})),r):null});function SO(e,t){return p.useReducer((n,r)=>{const o=t[n][r];return o??n},e)}const Qf=e=>{const{present:t,children:n}=e,r=CO(t),o=typeof n=="function"?n({present:r.isPresent}):p.Children.only(n),i=qc(r.ref,o.ref);return typeof n=="function"||r.isPresent?p.cloneElement(o,{ref:i}):null};Qf.displayName="Presence";function CO(e){const[t,n]=p.useState(),r=p.useRef({}),o=p.useRef(e),i=p.useRef("none"),a=e?"mounted":"unmounted",[c,u]=SO(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const f=ld(r.current);i.current=c==="mounted"?f:"none"},[c]),Hm(()=>{const f=r.current,h=o.current;if(h!==e){const v=i.current,x=ld(f);e?u("MOUNT"):x==="none"||(f==null?void 0:f.display)==="none"?u("UNMOUNT"):u(h&&v!==x?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),Hm(()=>{if(t){const f=m=>{const x=ld(r.current).includes(m.animationName);m.target===t&&x&&po.flushSync(()=>u("ANIMATION_END"))},h=m=>{m.target===t&&(i.current=ld(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:p.useCallback(f=>{f&&(r.current=getComputedStyle(f)),n(f)},[])}}function ld(e){return(e==null?void 0:e.animationName)||"none"}let mg=0;function $O(){p.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:uS()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:uS()),mg++,()=>{mg===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),mg--}},[])}function uS(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var mn=function(){return mn=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},mn.apply(this,arguments)};function $v(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function gP(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var lc="right-scroll-bar-position",cc="width-before-scroll-bar",PO="with-scroll-bars-hidden",EO="--removed-body-scroll-bar-size";function vg(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function RO(e,t){var n=p.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var dS=new WeakMap;function mP(e,t){var n=RO(t||null,function(r){return e.forEach(function(o){return vg(o,r)})});return p.useLayoutEffect(function(){var r=dS.get(n);if(r){var o=new Set(r),i=new Set(e),a=n.current;o.forEach(function(c){i.has(c)||vg(c,null)}),i.forEach(function(c){o.has(c)||vg(c,a)})}dS.set(n,e)},[e]),n}function _O(e){return e}function NO(e,t){t===void 0&&(t=_O);var n=[],r=!1,o={read:function(){if(r)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(i){var a=t(i,r);return n.push(a),function(){n=n.filter(function(c){return c!==a})}},assignSyncMedium:function(i){for(r=!0;n.length;){var a=n;n=[],a.forEach(i)}n={push:function(c){return i(c)},filter:function(){return n}}},assignMedium:function(i){r=!0;var a=[];if(n.length){var c=n;n=[],c.forEach(i),a=n}var u=function(){var h=a;a=[],h.forEach(i)},f=function(){return Promise.resolve().then(u)};f(),n={push:function(h){a.push(h),f()},filter:function(h){return a=a.filter(h),n}}}};return o}function vP(e){e===void 0&&(e={});var t=NO(null);return t.options=mn({async:!0,ssr:!1},e),t}var xP=function(e){var t=e.sideCar,n=$v(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return p.createElement(r,mn({},n))};xP.isSideCarExport=!0;function yP(e,t){return e.useMedium(t),xP}var wP=vP(),xg=function(){},Jf=p.forwardRef(function(e,t){var n=p.useRef(null),r=p.useState({onScrollCapture:xg,onWheelCapture:xg,onTouchMoveCapture:xg}),o=r[0],i=r[1],a=e.forwardProps,c=e.children,u=e.className,f=e.removeScrollBar,h=e.enabled,m=e.shards,v=e.sideCar,x=e.noIsolation,w=e.inert,b=e.allowPinchZoom,P=e.as,C=P===void 0?"div":P,S=$v(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),E=v,_=mP([n,t]),D=mn(mn({},S),o);return p.createElement(p.Fragment,null,h&&p.createElement(E,{sideCar:wP,removeScrollBar:f,shards:m,noIsolation:x,inert:w,setCallbacks:i,allowPinchZoom:!!b,lockRef:n}),a?p.cloneElement(p.Children.only(c),mn(mn({},D),{ref:_})):p.createElement(C,mn({},D,{className:u,ref:_}),c))});Jf.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Jf.classNames={fullWidth:cc,zeroRight:lc};var kO=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function DO(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=kO();return t&&e.setAttribute("nonce",t),e}function jO(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function MO(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var TO=function(){var e=0,t=null;return{add:function(n){e==0&&(t=DO())&&(jO(t,n),MO(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},IO=function(){var e=TO();return function(t,n){p.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Pv=function(){var e=IO(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},OO={left:0,top:0,right:0,gap:0},yg=function(e){return parseInt(e||"",10)||0},LO=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[yg(n),yg(r),yg(o)]},AO=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return OO;var t=LO(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},FO=Pv(),zO=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,c=e.gap;return n===void 0&&(n="margin"),` - .`.concat(PO,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(c,"px ").concat(r,`; - } - body { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(o,`px; - padding-top: `).concat(i,`px; - padding-right: `).concat(a,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(c,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(lc,` { - right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(cc,` { - margin-right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(lc," .").concat(lc,` { - right: 0 `).concat(r,`; - } - - .`).concat(cc," .").concat(cc,` { - margin-right: 0 `).concat(r,`; - } - - body { - `).concat(EO,": ").concat(c,`px; - } -`)},bP=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r,i=p.useMemo(function(){return AO(o)},[o]);return p.createElement(FO,{styles:zO(i,!t,o,n?"":"!important")})},Gm=!1;if(typeof window<"u")try{var cd=Object.defineProperty({},"passive",{get:function(){return Gm=!0,!0}});window.addEventListener("test",cd,cd),window.removeEventListener("test",cd,cd)}catch{Gm=!1}var oa=Gm?{passive:!1}:!1,UO=function(e){var t=window.getComputedStyle(e);return t.overflowY!=="hidden"&&!(t.overflowY===t.overflowX&&t.overflowY==="visible")},BO=function(e){var t=window.getComputedStyle(e);return t.overflowX!=="hidden"&&!(t.overflowY===t.overflowX&&t.overflowX==="visible")},fS=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=SP(e,n);if(r){var o=CP(e,n),i=o[1],a=o[2];if(i>a)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},VO=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},HO=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},SP=function(e,t){return e==="v"?UO(t):BO(t)},CP=function(e,t){return e==="v"?VO(t):HO(t)},WO=function(e,t){return e==="h"&&t==="rtl"?-1:1},KO=function(e,t,n,r,o){var i=WO(e,window.getComputedStyle(t).direction),a=i*r,c=n.target,u=t.contains(c),f=!1,h=a>0,m=0,v=0;do{var x=CP(e,c),w=x[0],b=x[1],P=x[2],C=b-P-i*w;(w||C)&&SP(e,c)&&(m+=C,v+=w),c=c.parentNode}while(!u&&c!==document.body||u&&(t.contains(c)||t===c));return(h&&(o&&m===0||!o&&a>m)||!h&&(o&&v===0||!o&&-a>v))&&(f=!0),f},ud=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pS=function(e){return[e.deltaX,e.deltaY]},hS=function(e){return e&&"current"in e?e.current:e},GO=function(e,t){return e[0]===t[0]&&e[1]===t[1]},qO=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},YO=0,ia=[];function XO(e){var t=p.useRef([]),n=p.useRef([0,0]),r=p.useRef(),o=p.useState(YO++)[0],i=p.useState(function(){return Pv()})[0],a=p.useRef(e);p.useEffect(function(){a.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var b=gP([e.lockRef.current],(e.shards||[]).map(hS),!0).filter(Boolean);return b.forEach(function(P){return P.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),b.forEach(function(P){return P.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=p.useCallback(function(b,P){if("touches"in b&&b.touches.length===2)return!a.current.allowPinchZoom;var C=ud(b),S=n.current,E="deltaX"in b?b.deltaX:S[0]-C[0],_="deltaY"in b?b.deltaY:S[1]-C[1],D,N=b.target,j=Math.abs(E)>Math.abs(_)?"h":"v";if("touches"in b&&j==="h"&&N.type==="range")return!1;var O=fS(j,N);if(!O)return!0;if(O?D=j:(D=j==="v"?"h":"v",O=fS(j,N)),!O)return!1;if(!r.current&&"changedTouches"in b&&(E||_)&&(r.current=D),!D)return!0;var V=r.current||D;return KO(V,P,b,V==="h"?E:_,!0)},[]),u=p.useCallback(function(b){var P=b;if(!(!ia.length||ia[ia.length-1]!==i)){var C="deltaY"in P?pS(P):ud(P),S=t.current.filter(function(D){return D.name===P.type&&D.target===P.target&&GO(D.delta,C)})[0];if(S&&S.should){P.preventDefault();return}if(!S){var E=(a.current.shards||[]).map(hS).filter(Boolean).filter(function(D){return D.contains(P.target)}),_=E.length>0?c(P,E[0]):!a.current.noIsolation;_&&P.preventDefault()}}},[]),f=p.useCallback(function(b,P,C,S){var E={name:b,delta:P,target:C,should:S};t.current.push(E),setTimeout(function(){t.current=t.current.filter(function(_){return _!==E})},1)},[]),h=p.useCallback(function(b){n.current=ud(b),r.current=void 0},[]),m=p.useCallback(function(b){f(b.type,pS(b),b.target,c(b,e.lockRef.current))},[]),v=p.useCallback(function(b){f(b.type,ud(b),b.target,c(b,e.lockRef.current))},[]);p.useEffect(function(){return ia.push(i),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",u,oa),document.addEventListener("touchmove",u,oa),document.addEventListener("touchstart",h,oa),function(){ia=ia.filter(function(b){return b!==i}),document.removeEventListener("wheel",u,oa),document.removeEventListener("touchmove",u,oa),document.removeEventListener("touchstart",h,oa)}},[]);var x=e.removeScrollBar,w=e.inert;return p.createElement(p.Fragment,null,w?p.createElement(i,{styles:qO(o)}):null,x?p.createElement(bP,{gapMode:"margin"}):null)}const QO=yP(wP,XO);var $P=p.forwardRef(function(e,t){return p.createElement(Jf,mn({},e,{ref:t,sideCar:QO}))});$P.classNames=Jf.classNames;const JO=$P;var ZO=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},sa=new WeakMap,dd=new WeakMap,fd={},wg=0,PP=function(e){return e&&(e.host||PP(e.parentNode))},eL=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=PP(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},tL=function(e,t,n,r){var o=eL(t,Array.isArray(e)?e:[e]);fd[n]||(fd[n]=new WeakMap);var i=fd[n],a=[],c=new Set,u=new Set(o),f=function(m){!m||c.has(m)||(c.add(m),f(m.parentNode))};o.forEach(f);var h=function(m){!m||u.has(m)||Array.prototype.forEach.call(m.children,function(v){if(c.has(v))h(v);else{var x=v.getAttribute(r),w=x!==null&&x!=="false",b=(sa.get(v)||0)+1,P=(i.get(v)||0)+1;sa.set(v,b),i.set(v,P),a.push(v),b===1&&w&&dd.set(v,!0),P===1&&v.setAttribute(n,"true"),w||v.setAttribute(r,"true")}})};return h(t),c.clear(),wg++,function(){a.forEach(function(m){var v=sa.get(m)-1,x=i.get(m)-1;sa.set(m,v),i.set(m,x),v||(dd.has(m)||m.removeAttribute(r),dd.delete(m)),x||m.removeAttribute(n)}),wg--,wg||(sa=new WeakMap,sa=new WeakMap,dd=new WeakMap,fd={})}},Yc=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||ZO(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),tL(r,o,n,"aria-hidden")):function(){return null}};const EP="Dialog",[RP,LW]=XI(EP),[nL,Ts]=RP(EP),rL=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!0}=e,c=p.useRef(null),u=p.useRef(null),[f=!1,h]=eO({prop:r,defaultProp:o,onChange:i});return p.createElement(nL,{scope:t,triggerRef:c,contentRef:u,contentId:pg(),titleId:pg(),descriptionId:pg(),open:f,onOpenChange:h,onOpenToggle:p.useCallback(()=>h(m=>!m),[h]),modal:a},n)},_P="DialogPortal",[oL,NP]=RP(_P,{forceMount:void 0}),iL=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=Ts(_P,t);return p.createElement(oL,{scope:t,forceMount:n},p.Children.map(r,a=>p.createElement(Qf,{present:n||i.open},p.createElement(bO,{asChild:!0,container:o},a))))},qm="DialogOverlay",sL=p.forwardRef((e,t)=>{const n=NP(qm,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Ts(qm,e.__scopeDialog);return i.modal?p.createElement(Qf,{present:r||i.open},p.createElement(aL,q({},o,{ref:t}))):null}),aL=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Ts(qm,n);return p.createElement(JO,{as:Cv,allowPinchZoom:!0,shards:[o.contentRef]},p.createElement(Xf.div,q({"data-state":DP(o.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),Tc="DialogContent",lL=p.forwardRef((e,t)=>{const n=NP(Tc,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Ts(Tc,e.__scopeDialog);return p.createElement(Qf,{present:r||i.open},i.modal?p.createElement(cL,q({},o,{ref:t})):p.createElement(uL,q({},o,{ref:t})))}),cL=p.forwardRef((e,t)=>{const n=Ts(Tc,e.__scopeDialog),r=p.useRef(null),o=qc(t,n.contentRef,r);return p.useEffect(()=>{const i=r.current;if(i)return Yc(i)},[]),p.createElement(kP,q({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ma(e.onCloseAutoFocus,i=>{var a;i.preventDefault(),(a=n.triggerRef.current)===null||a===void 0||a.focus()}),onPointerDownOutside:Ma(e.onPointerDownOutside,i=>{const a=i.detail.originalEvent,c=a.button===0&&a.ctrlKey===!0;(a.button===2||c)&&i.preventDefault()}),onFocusOutside:Ma(e.onFocusOutside,i=>i.preventDefault())}))}),uL=p.forwardRef((e,t)=>{const n=Ts(Tc,e.__scopeDialog),r=p.useRef(!1);return p.createElement(kP,q({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{var i;if((i=e.onCloseAutoFocus)===null||i===void 0||i.call(e,o),!o.defaultPrevented){var a;r.current||(a=n.triggerRef.current)===null||a===void 0||a.focus(),o.preventDefault()}r.current=!1},onInteractOutside:o=>{var i,a;(i=e.onInteractOutside)===null||i===void 0||i.call(e,o),o.defaultPrevented||(r.current=!0);const c=o.target;((a=n.triggerRef.current)===null||a===void 0?void 0:a.contains(c))&&o.preventDefault()}}))}),kP=p.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...a}=e,c=Ts(Tc,n),u=p.useRef(null),f=qc(t,u);return $O(),p.createElement(p.Fragment,null,p.createElement(hO,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i},p.createElement(dO,q({role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":DP(c.open)},a,{ref:f,onDismiss:()=>c.onOpenChange(!1)}))),!1)});function DP(e){return e?"open":"closed"}const dL=rL,fL=iL,pL=sL,hL=lL;var gL='[cmdk-list-sizer=""]',Wl='[cmdk-group=""]',bg='[cmdk-group-items=""]',mL='[cmdk-group-heading=""]',Ev='[cmdk-item=""]',gS=`${Ev}:not([aria-disabled="true"])`,Ym="cmdk-item-select",No="data-value",vL=(e,t)=>qI(e,t),jP=p.createContext(void 0),Xc=()=>p.useContext(jP),MP=p.createContext(void 0),Rv=()=>p.useContext(MP),TP=p.createContext(void 0),IP=p.forwardRef((e,t)=>{let n=p.useRef(null),r=ua(()=>{var L,H,oe;return{search:"",value:(oe=(H=e.value)!=null?H:(L=e.defaultValue)==null?void 0:L.toLowerCase())!=null?oe:"",filtered:{count:0,items:new Map,groups:new Set}}}),o=ua(()=>new Set),i=ua(()=>new Map),a=ua(()=>new Map),c=ua(()=>new Set),u=OP(e),{label:f,children:h,value:m,onValueChange:v,filter:x,shouldFilter:w,vimBindings:b=!0,...P}=e,C=p.useId(),S=p.useId(),E=p.useId(),_=_L();rl(()=>{if(m!==void 0){let L=m.trim().toLowerCase();r.current.value=L,_(6,ie),D.emit()}},[m]);let D=p.useMemo(()=>({subscribe:L=>(c.current.add(L),()=>c.current.delete(L)),snapshot:()=>r.current,setState:(L,H,oe)=>{var ne,fe,Se;if(!Object.is(r.current[L],H)){if(r.current[L]=H,L==="search")J(),O(),_(1,V);else if(L==="value")if(((ne=u.current)==null?void 0:ne.value)!==void 0){let me=H??"";(Se=(fe=u.current).onValueChange)==null||Se.call(fe,me);return}else oe||_(5,ie);D.emit()}},emit:()=>{c.current.forEach(L=>L())}}),[]),N=p.useMemo(()=>({value:(L,H)=>{H!==a.current.get(L)&&(a.current.set(L,H),r.current.filtered.items.set(L,j(H)),_(2,()=>{O(),D.emit()}))},item:(L,H)=>(o.current.add(L),H&&(i.current.has(H)?i.current.get(H).add(L):i.current.set(H,new Set([L]))),_(3,()=>{J(),O(),r.current.value||V(),D.emit()}),()=>{a.current.delete(L),o.current.delete(L),r.current.filtered.items.delete(L);let oe=te();_(4,()=>{J(),(oe==null?void 0:oe.getAttribute("id"))===L&&V(),D.emit()})}),group:L=>(i.current.has(L)||i.current.set(L,new Set),()=>{a.current.delete(L),i.current.delete(L)}),filter:()=>u.current.shouldFilter,label:f||e["aria-label"],commandRef:n,listId:C,inputId:E,labelId:S}),[]);function j(L){var H,oe;let ne=(oe=(H=u.current)==null?void 0:H.filter)!=null?oe:vL;return L?ne(L,r.current.search):0}function O(){if(!n.current||!r.current.search||u.current.shouldFilter===!1)return;let L=r.current.filtered.items,H=[];r.current.filtered.groups.forEach(ne=>{let fe=i.current.get(ne),Se=0;fe.forEach(me=>{let pe=L.get(me);Se=Math.max(pe,Se)}),H.push([ne,Se])});let oe=n.current.querySelector(gL);ge().sort((ne,fe)=>{var Se,me;let pe=ne.getAttribute(No),Te=fe.getAttribute(No);return((Se=L.get(Te))!=null?Se:0)-((me=L.get(pe))!=null?me:0)}).forEach(ne=>{let fe=ne.closest(bg);fe?fe.appendChild(ne.parentElement===fe?ne:ne.closest(`${bg} > *`)):oe.appendChild(ne.parentElement===oe?ne:ne.closest(`${bg} > *`))}),H.sort((ne,fe)=>fe[1]-ne[1]).forEach(ne=>{let fe=n.current.querySelector(`${Wl}[${No}="${ne[0]}"]`);fe==null||fe.parentElement.appendChild(fe)})}function V(){let L=ge().find(oe=>!oe.ariaDisabled),H=L==null?void 0:L.getAttribute(No);D.setState("value",H||void 0)}function J(){if(!r.current.search||u.current.shouldFilter===!1){r.current.filtered.count=o.current.size;return}r.current.filtered.groups=new Set;let L=0;for(let H of o.current){let oe=a.current.get(H),ne=j(oe);r.current.filtered.items.set(H,ne),ne>0&&L++}for(let[H,oe]of i.current)for(let ne of oe)if(r.current.filtered.items.get(ne)>0){r.current.filtered.groups.add(H);break}r.current.filtered.count=L}function ie(){var L,H,oe;let ne=te();ne&&(((L=ne.parentElement)==null?void 0:L.firstChild)===ne&&((oe=(H=ne.closest(Wl))==null?void 0:H.querySelector(mL))==null||oe.scrollIntoView({block:"nearest"})),ne.scrollIntoView({block:"nearest"}))}function te(){var L;return(L=n.current)==null?void 0:L.querySelector(`${Ev}[aria-selected="true"]`)}function ge(){return Array.from(n.current.querySelectorAll(gS))}function le(L){let H=ge()[L];H&&D.setState("value",H.getAttribute(No))}function T(L){var H;let oe=te(),ne=ge(),fe=ne.findIndex(me=>me===oe),Se=ne[fe+L];(H=u.current)!=null&&H.loop&&(Se=fe+L<0?ne[ne.length-1]:fe+L===ne.length?ne[0]:ne[fe+L]),Se&&D.setState("value",Se.getAttribute(No))}function W(L){let H=te(),oe=H==null?void 0:H.closest(Wl),ne;for(;oe&&!ne;)oe=L>0?EL(oe,Wl):RL(oe,Wl),ne=oe==null?void 0:oe.querySelector(gS);ne?D.setState("value",ne.getAttribute(No)):T(L)}let Y=()=>le(ge().length-1),U=L=>{L.preventDefault(),L.metaKey?Y():L.altKey?W(1):T(1)},B=L=>{L.preventDefault(),L.metaKey?le(0):L.altKey?W(-1):T(-1)};return p.createElement("div",{ref:Qc([n,t]),...P,"cmdk-root":"",onKeyDown:L=>{var H;if((H=P.onKeyDown)==null||H.call(P,L),!L.defaultPrevented)switch(L.key){case"n":case"j":{b&&L.ctrlKey&&U(L);break}case"ArrowDown":{U(L);break}case"p":case"k":{b&&L.ctrlKey&&B(L);break}case"ArrowUp":{B(L);break}case"Home":{L.preventDefault(),le(0);break}case"End":{L.preventDefault(),Y();break}case"Enter":if(!L.nativeEvent.isComposing){L.preventDefault();let oe=te();if(oe){let ne=new Event(Ym);oe.dispatchEvent(ne)}}}}},p.createElement("label",{"cmdk-label":"",htmlFor:N.inputId,id:N.labelId,style:NL},f),p.createElement(MP.Provider,{value:D},p.createElement(jP.Provider,{value:N},h)))}),xL=p.forwardRef((e,t)=>{var n,r;let o=p.useId(),i=p.useRef(null),a=p.useContext(TP),c=Xc(),u=OP(e),f=(r=(n=u.current)==null?void 0:n.forceMount)!=null?r:a==null?void 0:a.forceMount;rl(()=>c.item(o,a==null?void 0:a.id),[]);let h=LP(o,i,[e.value,e.children,i]),m=Rv(),v=Rs(D=>D.value&&D.value===h.current),x=Rs(D=>f||c.filter()===!1?!0:D.search?D.filtered.items.get(o)>0:!0);p.useEffect(()=>{let D=i.current;if(!(!D||e.disabled))return D.addEventListener(Ym,w),()=>D.removeEventListener(Ym,w)},[x,e.onSelect,e.disabled]);function w(){var D,N;b(),(N=(D=u.current).onSelect)==null||N.call(D,h.current)}function b(){m.setState("value",h.current,!0)}if(!x)return null;let{disabled:P,value:C,onSelect:S,forceMount:E,..._}=e;return p.createElement("div",{ref:Qc([i,t]),..._,id:o,"cmdk-item":"",role:"option","aria-disabled":P||void 0,"aria-selected":v||void 0,"data-disabled":P||void 0,"data-selected":v||void 0,onPointerMove:P?void 0:b,onClick:P?void 0:w},e.children)}),yL=p.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...i}=e,a=p.useId(),c=p.useRef(null),u=p.useRef(null),f=p.useId(),h=Xc(),m=Rs(w=>o||h.filter()===!1?!0:w.search?w.filtered.groups.has(a):!0);rl(()=>h.group(a),[]),LP(a,c,[e.value,e.heading,u]);let v=p.useMemo(()=>({id:a,forceMount:o}),[o]),x=p.createElement(TP.Provider,{value:v},r);return p.createElement("div",{ref:Qc([c,t]),...i,"cmdk-group":"",role:"presentation",hidden:m?void 0:!0},n&&p.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),p.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},x))}),wL=p.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=p.useRef(null),i=Rs(a=>!a.search);return!n&&!i?null:p.createElement("div",{ref:Qc([o,t]),...r,"cmdk-separator":"",role:"separator"})}),bL=p.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=e.value!=null,i=Rv(),a=Rs(h=>h.search),c=Rs(h=>h.value),u=Xc(),f=p.useMemo(()=>{var h;let m=(h=u.commandRef.current)==null?void 0:h.querySelector(`${Ev}[${No}="${c}"]`);return m==null?void 0:m.getAttribute("id")},[c,u.commandRef]);return p.useEffect(()=>{e.value!=null&&i.setState("search",e.value)},[e.value]),p.createElement("input",{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":f,id:u.inputId,type:"text",value:o?e.value:a,onChange:h=>{o||i.setState("search",h.target.value),n==null||n(h.target.value)}})}),SL=p.forwardRef((e,t)=>{let{children:n,...r}=e,o=p.useRef(null),i=p.useRef(null),a=Xc();return p.useEffect(()=>{if(i.current&&o.current){let c=i.current,u=o.current,f,h=new ResizeObserver(()=>{f=requestAnimationFrame(()=>{let m=c.offsetHeight;u.style.setProperty("--cmdk-list-height",m.toFixed(1)+"px")})});return h.observe(c),()=>{cancelAnimationFrame(f),h.unobserve(c)}}},[]),p.createElement("div",{ref:Qc([o,t]),...r,"cmdk-list":"",role:"listbox","aria-label":"Suggestions",id:a.listId,"aria-labelledby":a.inputId},p.createElement("div",{ref:i,"cmdk-list-sizer":""},n))}),CL=p.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:i,container:a,...c}=e;return p.createElement(dL,{open:n,onOpenChange:r},p.createElement(fL,{container:a},p.createElement(pL,{"cmdk-overlay":"",className:o}),p.createElement(hL,{"aria-label":e.label,"cmdk-dialog":"",className:i},p.createElement(IP,{ref:t,...c}))))}),$L=p.forwardRef((e,t)=>{let n=p.useRef(!0),r=Rs(o=>o.filtered.count===0);return p.useEffect(()=>{n.current=!1},[]),n.current||!r?null:p.createElement("div",{ref:t,...e,"cmdk-empty":"",role:"presentation"})}),PL=p.forwardRef((e,t)=>{let{progress:n,children:r,...o}=e;return p.createElement("div",{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":"Loading..."},p.createElement("div",{"aria-hidden":!0},r))}),Wn=Object.assign(IP,{List:SL,Item:xL,Input:bL,Group:yL,Separator:wL,Dialog:CL,Empty:$L,Loading:PL});function EL(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function RL(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function OP(e){let t=p.useRef(e);return rl(()=>{t.current=e}),t}var rl=typeof window>"u"?p.useEffect:p.useLayoutEffect;function ua(e){let t=p.useRef();return t.current===void 0&&(t.current=e()),t}function Qc(e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}function Rs(e){let t=Rv(),n=()=>e(t.snapshot());return p.useSyncExternalStore(t.subscribe,n,n)}function LP(e,t,n){let r=p.useRef(),o=Xc();return rl(()=>{var i;let a=(()=>{var c;for(let u of n){if(typeof u=="string")return u.trim().toLowerCase();if(typeof u=="object"&&"current"in u)return u.current?(c=u.current.textContent)==null?void 0:c.trim().toLowerCase():r.current}})();o.value(e,a),(i=t.current)==null||i.setAttribute(No,a),r.current=a}),r}var _L=()=>{let[e,t]=p.useState(),n=ua(()=>new Map);return rl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,o)=>{n.current.set(r,o),t({})}},NL={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const kL=b0.useId||(()=>{});let DL=0;function co(e){const[t,n]=p.useState(kL());return _n(()=>{e||n(r=>r??String(DL++))},[e]),e||(t?`radix-${t}`:"")}function jL(e,t=globalThis==null?void 0:globalThis.document){const n=Zt(e);p.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r),()=>t.removeEventListener("keydown",r)},[n,t])}const Xm="dismissableLayer.update",ML="dismissableLayer.pointerDownOutside",TL="dismissableLayer.focusOutside";let mS;const IL=p.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Zf=p.forwardRef((e,t)=>{var n;const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:o,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:c,onDismiss:u,...f}=e,h=p.useContext(IL),[m,v]=p.useState(null),x=(n=m==null?void 0:m.ownerDocument)!==null&&n!==void 0?n:globalThis==null?void 0:globalThis.document,[,w]=p.useState({}),b=Ze(t,O=>v(O)),P=Array.from(h.layers),[C]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),S=P.indexOf(C),E=m?P.indexOf(m):-1,_=h.layersWithOutsidePointerEventsDisabled.size>0,D=E>=S,N=OL(O=>{const V=O.target,J=[...h.branches].some(ie=>ie.contains(V));!D||J||(i==null||i(O),c==null||c(O),O.defaultPrevented||u==null||u())},x),j=LL(O=>{const V=O.target;[...h.branches].some(ie=>ie.contains(V))||(a==null||a(O),c==null||c(O),O.defaultPrevented||u==null||u())},x);return jL(O=>{E===h.layers.size-1&&(o==null||o(O),!O.defaultPrevented&&u&&(O.preventDefault(),u()))},x),p.useEffect(()=>{if(m)return r&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(mS=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),vS(),()=>{r&&h.layersWithOutsidePointerEventsDisabled.size===1&&(x.body.style.pointerEvents=mS)}},[m,x,r,h]),p.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),vS())},[m,h]),p.useEffect(()=>{const O=()=>w({});return document.addEventListener(Xm,O),()=>document.removeEventListener(Xm,O)},[]),p.createElement(Oe.div,q({},f,{ref:b,style:{pointerEvents:_?D?"auto":"none":void 0,...e.style},onFocusCapture:he(e.onFocusCapture,j.onFocusCapture),onBlurCapture:he(e.onBlurCapture,j.onBlurCapture),onPointerDownCapture:he(e.onPointerDownCapture,N.onPointerDownCapture)}))});function OL(e,t=globalThis==null?void 0:globalThis.document){const n=Zt(e),r=p.useRef(!1),o=p.useRef(()=>{});return p.useEffect(()=>{const i=c=>{if(c.target&&!r.current){let h=function(){AP(ML,n,f,{discrete:!0})};var u=h;const f={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=h,t.addEventListener("click",o.current,{once:!0})):h()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function LL(e,t=globalThis==null?void 0:globalThis.document){const n=Zt(e),r=p.useRef(!1);return p.useEffect(()=>{const o=i=>{i.target&&!r.current&&AP(TL,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function vS(){const e=new CustomEvent(Xm);document.dispatchEvent(e)}function AP(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?K$(o,i):o.dispatchEvent(i)}const Sg="focusScope.autoFocusOnMount",Cg="focusScope.autoFocusOnUnmount",xS={bubbles:!1,cancelable:!0},ep=p.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[c,u]=p.useState(null),f=Zt(o),h=Zt(i),m=p.useRef(null),v=Ze(t,b=>u(b)),x=p.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;p.useEffect(()=>{if(r){let S=function(N){if(x.paused||!c)return;const j=N.target;c.contains(j)?m.current=j:mi(m.current,{select:!0})},E=function(N){if(x.paused||!c)return;const j=N.relatedTarget;j!==null&&(c.contains(j)||mi(m.current,{select:!0}))},_=function(N){if(document.activeElement===document.body)for(const O of N)O.removedNodes.length>0&&mi(c)};var b=S,P=E,C=_;document.addEventListener("focusin",S),document.addEventListener("focusout",E);const D=new MutationObserver(_);return c&&D.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",E),D.disconnect()}}},[r,c,x.paused]),p.useEffect(()=>{if(c){wS.add(x);const b=document.activeElement;if(!c.contains(b)){const C=new CustomEvent(Sg,xS);c.addEventListener(Sg,f),c.dispatchEvent(C),C.defaultPrevented||(AL(VL(FP(c)),{select:!0}),document.activeElement===b&&mi(c))}return()=>{c.removeEventListener(Sg,f),setTimeout(()=>{const C=new CustomEvent(Cg,xS);c.addEventListener(Cg,h),c.dispatchEvent(C),C.defaultPrevented||mi(b??document.body,{select:!0}),c.removeEventListener(Cg,h),wS.remove(x)},0)}}},[c,f,h,x]);const w=p.useCallback(b=>{if(!n&&!r||x.paused)return;const P=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,C=document.activeElement;if(P&&C){const S=b.currentTarget,[E,_]=FL(S);E&&_?!b.shiftKey&&C===_?(b.preventDefault(),n&&mi(E,{select:!0})):b.shiftKey&&C===E&&(b.preventDefault(),n&&mi(_,{select:!0})):C===S&&b.preventDefault()}},[n,r,x.paused]);return p.createElement(Oe.div,q({tabIndex:-1},a,{ref:v,onKeyDown:w}))});function AL(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(mi(r,{select:t}),document.activeElement!==n)return}function FL(e){const t=FP(e),n=yS(t,e),r=yS(t.reverse(),e);return[n,r]}function FP(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function yS(e,t){for(const n of e)if(!zL(n,{upTo:t}))return n}function zL(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function UL(e){return e instanceof HTMLInputElement&&"select"in e}function mi(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&UL(e)&&t&&e.select()}}const wS=BL();function BL(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=bS(e,t),e.unshift(t)},remove(t){var n;e=bS(e,t),(n=e[0])===null||n===void 0||n.resume()}}}function bS(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function VL(e){return e.filter(t=>t.tagName!=="A")}const tp=p.forwardRef((e,t)=>{var n;const{container:r=globalThis==null||(n=globalThis.document)===null||n===void 0?void 0:n.body,...o}=e;return r?Uf.createPortal(p.createElement(Oe.div,q({},o,{ref:t})),r):null});function HL(e,t){return p.useReducer((n,r)=>{const o=t[n][r];return o??n},e)}const Dn=e=>{const{present:t,children:n}=e,r=WL(t),o=typeof n=="function"?n({present:r.isPresent}):p.Children.only(n),i=Ze(r.ref,o.ref);return typeof n=="function"||r.isPresent?p.cloneElement(o,{ref:i}):null};Dn.displayName="Presence";function WL(e){const[t,n]=p.useState(),r=p.useRef({}),o=p.useRef(e),i=p.useRef("none"),a=e?"mounted":"unmounted",[c,u]=HL(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return p.useEffect(()=>{const f=pd(r.current);i.current=c==="mounted"?f:"none"},[c]),_n(()=>{const f=r.current,h=o.current;if(h!==e){const v=i.current,x=pd(f);e?u("MOUNT"):x==="none"||(f==null?void 0:f.display)==="none"?u("UNMOUNT"):u(h&&v!==x?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),_n(()=>{if(t){const f=m=>{const x=pd(r.current).includes(m.animationName);m.target===t&&x&&po.flushSync(()=>u("ANIMATION_END"))},h=m=>{m.target===t&&(i.current=pd(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:p.useCallback(f=>{f&&(r.current=getComputedStyle(f)),n(f)},[])}}function pd(e){return(e==null?void 0:e.animationName)||"none"}let $g=0;function np(){p.useEffect(()=>{var e,t;const n=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",(e=n[0])!==null&&e!==void 0?e:SS()),document.body.insertAdjacentElement("beforeend",(t=n[1])!==null&&t!==void 0?t:SS()),$g++,()=>{$g===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),$g--}},[])}function SS(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var zP=vP(),Pg=function(){},rp=p.forwardRef(function(e,t){var n=p.useRef(null),r=p.useState({onScrollCapture:Pg,onWheelCapture:Pg,onTouchMoveCapture:Pg}),o=r[0],i=r[1],a=e.forwardProps,c=e.children,u=e.className,f=e.removeScrollBar,h=e.enabled,m=e.shards,v=e.sideCar,x=e.noIsolation,w=e.inert,b=e.allowPinchZoom,P=e.as,C=P===void 0?"div":P,S=$v(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noIsolation","inert","allowPinchZoom","as"]),E=v,_=mP([n,t]),D=mn(mn({},S),o);return p.createElement(p.Fragment,null,h&&p.createElement(E,{sideCar:zP,removeScrollBar:f,shards:m,noIsolation:x,inert:w,setCallbacks:i,allowPinchZoom:!!b,lockRef:n}),a?p.cloneElement(p.Children.only(c),mn(mn({},D),{ref:_})):p.createElement(C,mn({},D,{className:u,ref:_}),c))});rp.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};rp.classNames={fullWidth:cc,zeroRight:lc};var Qm=!1;if(typeof window<"u")try{var hd=Object.defineProperty({},"passive",{get:function(){return Qm=!0,!0}});window.addEventListener("test",hd,hd),window.removeEventListener("test",hd,hd)}catch{Qm=!1}var aa=Qm?{passive:!1}:!1,KL=function(e){return e.tagName==="TEXTAREA"},UP=function(e,t){var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!KL(e)&&n[t]==="visible")},GL=function(e){return UP(e,"overflowY")},qL=function(e){return UP(e,"overflowX")},CS=function(e,t){var n=t;do{typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&(n=n.host);var r=BP(e,n);if(r){var o=VP(e,n),i=o[1],a=o[2];if(i>a)return!0}n=n.parentNode}while(n&&n!==document.body);return!1},YL=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},XL=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},BP=function(e,t){return e==="v"?GL(t):qL(t)},VP=function(e,t){return e==="v"?YL(t):XL(t)},QL=function(e,t){return e==="h"&&t==="rtl"?-1:1},JL=function(e,t,n,r,o){var i=QL(e,window.getComputedStyle(t).direction),a=i*r,c=n.target,u=t.contains(c),f=!1,h=a>0,m=0,v=0;do{var x=VP(e,c),w=x[0],b=x[1],P=x[2],C=b-P-i*w;(w||C)&&BP(e,c)&&(m+=C,v+=w),c=c.parentNode}while(!u&&c!==document.body||u&&(t.contains(c)||t===c));return(h&&(o&&m===0||!o&&a>m)||!h&&(o&&v===0||!o&&-a>v))&&(f=!0),f},gd=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},$S=function(e){return[e.deltaX,e.deltaY]},PS=function(e){return e&&"current"in e?e.current:e},ZL=function(e,t){return e[0]===t[0]&&e[1]===t[1]},eA=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},tA=0,la=[];function nA(e){var t=p.useRef([]),n=p.useRef([0,0]),r=p.useRef(),o=p.useState(tA++)[0],i=p.useState(function(){return Pv()})[0],a=p.useRef(e);p.useEffect(function(){a.current=e},[e]),p.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var b=gP([e.lockRef.current],(e.shards||[]).map(PS),!0).filter(Boolean);return b.forEach(function(P){return P.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),b.forEach(function(P){return P.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=p.useCallback(function(b,P){if("touches"in b&&b.touches.length===2)return!a.current.allowPinchZoom;var C=gd(b),S=n.current,E="deltaX"in b?b.deltaX:S[0]-C[0],_="deltaY"in b?b.deltaY:S[1]-C[1],D,N=b.target,j=Math.abs(E)>Math.abs(_)?"h":"v";if("touches"in b&&j==="h"&&N.type==="range")return!1;var O=CS(j,N);if(!O)return!0;if(O?D=j:(D=j==="v"?"h":"v",O=CS(j,N)),!O)return!1;if(!r.current&&"changedTouches"in b&&(E||_)&&(r.current=D),!D)return!0;var V=r.current||D;return JL(V,P,b,V==="h"?E:_,!0)},[]),u=p.useCallback(function(b){var P=b;if(!(!la.length||la[la.length-1]!==i)){var C="deltaY"in P?$S(P):gd(P),S=t.current.filter(function(D){return D.name===P.type&&D.target===P.target&&ZL(D.delta,C)})[0];if(S&&S.should){P.cancelable&&P.preventDefault();return}if(!S){var E=(a.current.shards||[]).map(PS).filter(Boolean).filter(function(D){return D.contains(P.target)}),_=E.length>0?c(P,E[0]):!a.current.noIsolation;_&&P.cancelable&&P.preventDefault()}}},[]),f=p.useCallback(function(b,P,C,S){var E={name:b,delta:P,target:C,should:S};t.current.push(E),setTimeout(function(){t.current=t.current.filter(function(_){return _!==E})},1)},[]),h=p.useCallback(function(b){n.current=gd(b),r.current=void 0},[]),m=p.useCallback(function(b){f(b.type,$S(b),b.target,c(b,e.lockRef.current))},[]),v=p.useCallback(function(b){f(b.type,gd(b),b.target,c(b,e.lockRef.current))},[]);p.useEffect(function(){return la.push(i),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:v}),document.addEventListener("wheel",u,aa),document.addEventListener("touchmove",u,aa),document.addEventListener("touchstart",h,aa),function(){la=la.filter(function(b){return b!==i}),document.removeEventListener("wheel",u,aa),document.removeEventListener("touchmove",u,aa),document.removeEventListener("touchstart",h,aa)}},[]);var x=e.removeScrollBar,w=e.inert;return p.createElement(p.Fragment,null,w?p.createElement(i,{styles:eA(o)}):null,x?p.createElement(bP,{gapMode:"margin"}):null)}const rA=yP(zP,nA);var HP=p.forwardRef(function(e,t){return p.createElement(rp,mn({},e,{ref:t,sideCar:rA}))});HP.classNames=rp.classNames;const op=HP,WP="Dialog",[KP,GP]=ur(WP),[oA,ho]=KP(WP),iA=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!0}=e,c=p.useRef(null),u=p.useRef(null),[f=!1,h]=Ii({prop:r,defaultProp:o,onChange:i});return p.createElement(oA,{scope:t,triggerRef:c,contentRef:u,contentId:co(),titleId:co(),descriptionId:co(),open:f,onOpenChange:h,onOpenToggle:p.useCallback(()=>h(m=>!m),[h]),modal:a},n)},qP="DialogPortal",[sA,YP]=KP(qP,{forceMount:void 0}),aA=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=ho(qP,t);return p.createElement(sA,{scope:t,forceMount:n},p.Children.map(r,a=>p.createElement(Dn,{present:n||i.open},p.createElement(tp,{asChild:!0,container:o},a))))},Jm="DialogOverlay",lA=p.forwardRef((e,t)=>{const n=YP(Jm,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=ho(Jm,e.__scopeDialog);return i.modal?p.createElement(Dn,{present:r||i.open},p.createElement(cA,q({},o,{ref:t}))):null}),cA=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ho(Jm,n);return p.createElement(op,{as:Vo,allowPinchZoom:!0,shards:[o.contentRef]},p.createElement(Oe.div,q({"data-state":JP(o.open)},r,{ref:t,style:{pointerEvents:"auto",...r.style}})))}),Wa="DialogContent",uA=p.forwardRef((e,t)=>{const n=YP(Wa,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=ho(Wa,e.__scopeDialog);return p.createElement(Dn,{present:r||i.open},i.modal?p.createElement(dA,q({},o,{ref:t})):p.createElement(fA,q({},o,{ref:t})))}),dA=p.forwardRef((e,t)=>{const n=ho(Wa,e.__scopeDialog),r=p.useRef(null),o=Ze(t,n.contentRef,r);return p.useEffect(()=>{const i=r.current;if(i)return Yc(i)},[]),p.createElement(XP,q({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:he(e.onCloseAutoFocus,i=>{var a;i.preventDefault(),(a=n.triggerRef.current)===null||a===void 0||a.focus()}),onPointerDownOutside:he(e.onPointerDownOutside,i=>{const a=i.detail.originalEvent,c=a.button===0&&a.ctrlKey===!0;(a.button===2||c)&&i.preventDefault()}),onFocusOutside:he(e.onFocusOutside,i=>i.preventDefault())}))}),fA=p.forwardRef((e,t)=>{const n=ho(Wa,e.__scopeDialog),r=p.useRef(!1),o=p.useRef(!1);return p.createElement(XP,q({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a;if((a=e.onCloseAutoFocus)===null||a===void 0||a.call(e,i),!i.defaultPrevented){var c;r.current||(c=n.triggerRef.current)===null||c===void 0||c.focus(),i.preventDefault()}r.current=!1,o.current=!1},onInteractOutside:i=>{var a,c;(a=e.onInteractOutside)===null||a===void 0||a.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const u=i.target;((c=n.triggerRef.current)===null||c===void 0?void 0:c.contains(u))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}}))}),XP=p.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...a}=e,c=ho(Wa,n),u=p.useRef(null),f=Ze(t,u);return np(),p.createElement(p.Fragment,null,p.createElement(ep,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i},p.createElement(Zf,q({role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":JP(c.open)},a,{ref:f,onDismiss:()=>c.onOpenChange(!1)}))),!1)}),QP="DialogTitle",pA=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ho(QP,n);return p.createElement(Oe.h2,q({id:o.titleId},r,{ref:t}))}),hA="DialogDescription",gA=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ho(hA,n);return p.createElement(Oe.p,q({id:o.descriptionId},r,{ref:t}))}),mA="DialogClose",vA=p.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=ho(mA,n);return p.createElement(Oe.button,q({type:"button"},r,{ref:t,onClick:he(e.onClick,()=>o.onOpenChange(!1))}))});function JP(e){return e?"open":"closed"}const xA="DialogTitleWarning",[yA,AW]=uT(xA,{contentName:Wa,titleName:QP,docsSlug:"dialog"}),ZP=iA,eE=aA,_v=lA,Nv=uA,kv=pA,Dv=gA,jv=vA,tE=ZP,wA=eE,nE=p.forwardRef(({className:e,...t},n)=>d.jsx(_v,{ref:n,className:se("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));nE.displayName=_v.displayName;const Mv=p.forwardRef(({className:e,children:t,...n},r)=>d.jsxs(wA,{children:[d.jsx(nE,{}),d.jsxs(Nv,{ref:r,className:se("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,d.jsxs(jv,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[d.jsx(Yf,{className:"h-4 w-4"}),d.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Mv.displayName=Nv.displayName;const rE=({className:e,...t})=>d.jsx("div",{className:se("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});rE.displayName="DialogHeader";const bA=p.forwardRef(({className:e,...t},n)=>d.jsx(kv,{ref:n,className:se("text-lg font-semibold leading-none tracking-tight",e),...t}));bA.displayName=kv.displayName;const SA=p.forwardRef(({className:e,...t},n)=>d.jsx(Dv,{ref:n,className:se("text-sm text-muted-foreground",e),...t}));SA.displayName=Dv.displayName;const Tv=p.forwardRef(({className:e,...t},n)=>d.jsx(Wn,{ref:n,className:se("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));Tv.displayName=Wn.displayName;const Iv=p.forwardRef(({className:e,...t},n)=>d.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[d.jsx(OI,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),d.jsx(Wn.Input,{ref:n,className:se("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Iv.displayName=Wn.Input.displayName;const oE=p.forwardRef(({className:e,...t},n)=>d.jsx(Wn.List,{ref:n,className:se("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));oE.displayName=Wn.List.displayName;const Ov=p.forwardRef((e,t)=>d.jsx(Wn.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));Ov.displayName=Wn.Empty.displayName;const gf=p.forwardRef(({className:e,...t},n)=>d.jsx(Wn.Group,{ref:n,className:se("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));gf.displayName=Wn.Group.displayName;const iE=p.forwardRef(({className:e,...t},n)=>d.jsx(Wn.Separator,{ref:n,className:se("-mx-1 h-px bg-border",e),...t}));iE.displayName=Wn.Separator.displayName;const mf=p.forwardRef(({className:e,...t},n)=>d.jsx(Wn.Item,{ref:n,className:se("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...t}));mf.displayName=Wn.Item.displayName;const CA=["top","right","bottom","left"],Oi=Math.min,er=Math.max,vf=Math.round,md=Math.floor,Li=e=>({x:e,y:e}),$A={left:"right",right:"left",bottom:"top",top:"bottom"},PA={start:"end",end:"start"};function Zm(e,t,n){return er(e,Oi(t,n))}function Ho(e,t){return typeof e=="function"?e(t):e}function Wo(e){return e.split("-")[0]}function ol(e){return e.split("-")[1]}function Lv(e){return e==="x"?"y":"x"}function Av(e){return e==="y"?"height":"width"}function il(e){return["top","bottom"].includes(Wo(e))?"y":"x"}function Fv(e){return Lv(il(e))}function EA(e,t,n){n===void 0&&(n=!1);const r=ol(e),o=Fv(e),i=Av(o);let a=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=xf(a)),[a,xf(a)]}function RA(e){const t=xf(e);return[e0(e),t,e0(t)]}function e0(e){return e.replace(/start|end/g,t=>PA[t])}function _A(e,t,n){const r=["left","right"],o=["right","left"],i=["top","bottom"],a=["bottom","top"];switch(e){case"top":case"bottom":return n?t?o:r:t?r:o;case"left":case"right":return t?i:a;default:return[]}}function NA(e,t,n,r){const o=ol(e);let i=_A(Wo(e),n==="start",r);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(e0)))),i}function xf(e){return e.replace(/left|right|bottom|top/g,t=>$A[t])}function kA(e){return{top:0,right:0,bottom:0,left:0,...e}}function sE(e){return typeof e!="number"?kA(e):{top:e,right:e,bottom:e,left:e}}function yf(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}function ES(e,t,n){let{reference:r,floating:o}=e;const i=il(t),a=Fv(t),c=Av(a),u=Wo(t),f=i==="y",h=r.x+r.width/2-o.width/2,m=r.y+r.height/2-o.height/2,v=r[c]/2-o[c]/2;let x;switch(u){case"top":x={x:h,y:r.y-o.height};break;case"bottom":x={x:h,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:m};break;case"left":x={x:r.x-o.width,y:m};break;default:x={x:r.x,y:r.y}}switch(ol(t)){case"start":x[a]-=v*(n&&f?-1:1);break;case"end":x[a]+=v*(n&&f?-1:1);break}return x}const DA=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,c=i.filter(Boolean),u=await(a.isRTL==null?void 0:a.isRTL(t));let f=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:h,y:m}=ES(f,r,u),v=r,x={},w=0;for(let b=0;b<c.length;b++){const{name:P,fn:C}=c[b],{x:S,y:E,data:_,reset:D}=await C({x:h,y:m,initialPlacement:r,placement:v,strategy:o,middlewareData:x,rects:f,platform:a,elements:{reference:e,floating:t}});h=S??h,m=E??m,x={...x,[P]:{...x[P],..._}},D&&w<=50&&(w++,typeof D=="object"&&(D.placement&&(v=D.placement),D.rects&&(f=D.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:o}):D.rects),{x:h,y:m}=ES(f,v,u)),b=-1)}return{x:h,y:m,placement:v,strategy:o,middlewareData:x}};async function Ic(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:i,rects:a,elements:c,strategy:u}=e,{boundary:f="clippingAncestors",rootBoundary:h="viewport",elementContext:m="floating",altBoundary:v=!1,padding:x=0}=Ho(t,e),w=sE(x),P=c[v?m==="floating"?"reference":"floating":m],C=yf(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(P)))==null||n?P:P.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:f,rootBoundary:h,strategy:u})),S=m==="floating"?{...a.floating,x:r,y:o}:a.reference,E=await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),_=await(i.isElement==null?void 0:i.isElement(E))?await(i.getScale==null?void 0:i.getScale(E))||{x:1,y:1}:{x:1,y:1},D=yf(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:S,offsetParent:E,strategy:u}):S);return{top:(C.top-D.top+w.top)/_.y,bottom:(D.bottom-C.bottom+w.bottom)/_.y,left:(C.left-D.left+w.left)/_.x,right:(D.right-C.right+w.right)/_.x}}const jA=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:c,middlewareData:u}=t,{element:f,padding:h=0}=Ho(e,t)||{};if(f==null)return{};const m=sE(h),v={x:n,y:r},x=Fv(o),w=Av(x),b=await a.getDimensions(f),P=x==="y",C=P?"top":"left",S=P?"bottom":"right",E=P?"clientHeight":"clientWidth",_=i.reference[w]+i.reference[x]-v[x]-i.floating[w],D=v[x]-i.reference[x],N=await(a.getOffsetParent==null?void 0:a.getOffsetParent(f));let j=N?N[E]:0;(!j||!await(a.isElement==null?void 0:a.isElement(N)))&&(j=c.floating[E]||i.floating[w]);const O=_/2-D/2,V=j/2-b[w]/2-1,J=Oi(m[C],V),ie=Oi(m[S],V),te=J,ge=j-b[w]-ie,le=j/2-b[w]/2+O,T=Zm(te,le,ge),W=!u.arrow&&ol(o)!=null&&le!==T&&i.reference[w]/2-(le<te?J:ie)-b[w]/2<0,Y=W?le<te?le-te:le-ge:0;return{[x]:v[x]+Y,data:{[x]:T,centerOffset:le-T-Y,...W&&{alignmentOffset:Y}},reset:W}}}),MA=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:a,initialPlacement:c,platform:u,elements:f}=t,{mainAxis:h=!0,crossAxis:m=!0,fallbackPlacements:v,fallbackStrategy:x="bestFit",fallbackAxisSideDirection:w="none",flipAlignment:b=!0,...P}=Ho(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const C=Wo(o),S=Wo(c)===c,E=await(u.isRTL==null?void 0:u.isRTL(f.floating)),_=v||(S||!b?[xf(c)]:RA(c));!v&&w!=="none"&&_.push(...NA(c,b,w,E));const D=[c,..._],N=await Ic(t,P),j=[];let O=((r=i.flip)==null?void 0:r.overflows)||[];if(h&&j.push(N[C]),m){const te=EA(o,a,E);j.push(N[te[0]],N[te[1]])}if(O=[...O,{placement:o,overflows:j}],!j.every(te=>te<=0)){var V,J;const te=(((V=i.flip)==null?void 0:V.index)||0)+1,ge=D[te];if(ge)return{data:{index:te,overflows:O},reset:{placement:ge}};let le=(J=O.filter(T=>T.overflows[0]<=0).sort((T,W)=>T.overflows[1]-W.overflows[1])[0])==null?void 0:J.placement;if(!le)switch(x){case"bestFit":{var ie;const T=(ie=O.map(W=>[W.placement,W.overflows.filter(Y=>Y>0).reduce((Y,U)=>Y+U,0)]).sort((W,Y)=>W[1]-Y[1])[0])==null?void 0:ie[0];T&&(le=T);break}case"initialPlacement":le=c;break}if(o!==le)return{reset:{placement:le}}}return{}}}};function RS(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function _S(e){return CA.some(t=>e[t]>=0)}const TA=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...o}=Ho(e,t);switch(r){case"referenceHidden":{const i=await Ic(t,{...o,elementContext:"reference"}),a=RS(i,n.reference);return{data:{referenceHiddenOffsets:a,referenceHidden:_S(a)}}}case"escaped":{const i=await Ic(t,{...o,altBoundary:!0}),a=RS(i,n.floating);return{data:{escapedOffsets:a,escaped:_S(a)}}}default:return{}}}}};async function IA(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),a=Wo(n),c=ol(n),u=il(n)==="y",f=["left","top"].includes(a)?-1:1,h=i&&u?-1:1,m=Ho(t,e);let{mainAxis:v,crossAxis:x,alignmentAxis:w}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...m};return c&&typeof w=="number"&&(x=c==="end"?w*-1:w),u?{x:x*h,y:v*f}:{x:v*f,y:x*h}}const OA=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:c}=t,u=await IA(t,e);return a===((n=c.offset)==null?void 0:n.placement)&&(r=c.arrow)!=null&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:a}}}}},LA=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:c={fn:P=>{let{x:C,y:S}=P;return{x:C,y:S}}},...u}=Ho(e,t),f={x:n,y:r},h=await Ic(t,u),m=il(Wo(o)),v=Lv(m);let x=f[v],w=f[m];if(i){const P=v==="y"?"top":"left",C=v==="y"?"bottom":"right",S=x+h[P],E=x-h[C];x=Zm(S,x,E)}if(a){const P=m==="y"?"top":"left",C=m==="y"?"bottom":"right",S=w+h[P],E=w-h[C];w=Zm(S,w,E)}const b=c.fn({...t,[v]:x,[m]:w});return{...b,data:{x:b.x-n,y:b.y-r}}}}},AA=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:c=0,mainAxis:u=!0,crossAxis:f=!0}=Ho(e,t),h={x:n,y:r},m=il(o),v=Lv(m);let x=h[v],w=h[m];const b=Ho(c,t),P=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(u){const E=v==="y"?"height":"width",_=i.reference[v]-i.floating[E]+P.mainAxis,D=i.reference[v]+i.reference[E]-P.mainAxis;x<_?x=_:x>D&&(x=D)}if(f){var C,S;const E=v==="y"?"width":"height",_=["top","left"].includes(Wo(o)),D=i.reference[m]-i.floating[E]+(_&&((C=a.offset)==null?void 0:C[m])||0)+(_?0:P.crossAxis),N=i.reference[m]+i.reference[E]+(_?0:((S=a.offset)==null?void 0:S[m])||0)-(_?P.crossAxis:0);w<D?w=D:w>N&&(w=N)}return{[v]:x,[m]:w}}}},FA=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){const{placement:n,rects:r,platform:o,elements:i}=t,{apply:a=()=>{},...c}=Ho(e,t),u=await Ic(t,c),f=Wo(n),h=ol(n),m=il(n)==="y",{width:v,height:x}=r.floating;let w,b;f==="top"||f==="bottom"?(w=f,b=h===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(b=f,w=h==="end"?"top":"bottom");const P=x-u[w],C=v-u[b],S=!t.middlewareData.shift;let E=P,_=C;if(m){const N=v-u.left-u.right;_=h||S?Oi(C,N):N}else{const N=x-u.top-u.bottom;E=h||S?Oi(P,N):N}if(S&&!h){const N=er(u.left,0),j=er(u.right,0),O=er(u.top,0),V=er(u.bottom,0);m?_=v-2*(N!==0||j!==0?N+j:er(u.left,u.right)):E=x-2*(O!==0||V!==0?O+V:er(u.top,u.bottom))}await a({...t,availableWidth:_,availableHeight:E});const D=await o.getDimensions(i.floating);return v!==D.width||x!==D.height?{reset:{rects:!0}}:{}}}};function Ai(e){return aE(e)?(e.nodeName||"").toLowerCase():"#document"}function ir(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Xo(e){var t;return(t=(aE(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function aE(e){return e instanceof Node||e instanceof ir(e).Node}function Ko(e){return e instanceof Element||e instanceof ir(e).Element}function fo(e){return e instanceof HTMLElement||e instanceof ir(e).HTMLElement}function NS(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ir(e).ShadowRoot}function Jc(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=_r(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function zA(e){return["table","td","th"].includes(Ai(e))}function zv(e){const t=Uv(),n=_r(e);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function UA(e){let t=Ka(e);for(;fo(t)&&!ip(t);){if(zv(t))return t;t=Ka(t)}return null}function Uv(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function ip(e){return["html","body","#document"].includes(Ai(e))}function _r(e){return ir(e).getComputedStyle(e)}function sp(e){return Ko(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ka(e){if(Ai(e)==="html")return e;const t=e.assignedSlot||e.parentNode||NS(e)&&e.host||Xo(e);return NS(t)?t.host:t}function lE(e){const t=Ka(e);return ip(t)?e.ownerDocument?e.ownerDocument.body:e.body:fo(t)&&Jc(t)?t:lE(t)}function Oc(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=lE(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=ir(o);return i?t.concat(a,a.visualViewport||[],Jc(o)?o:[],a.frameElement&&n?Oc(a.frameElement):[]):t.concat(o,Oc(o,[],n))}function cE(e){const t=_r(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=fo(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,c=vf(n)!==i||vf(r)!==a;return c&&(n=i,r=a),{width:n,height:r,$:c}}function Bv(e){return Ko(e)?e:e.contextElement}function Ta(e){const t=Bv(e);if(!fo(t))return Li(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=cE(t);let a=(i?vf(n.width):n.width)/r,c=(i?vf(n.height):n.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!c||!Number.isFinite(c))&&(c=1),{x:a,y:c}}const BA=Li(0);function uE(e){const t=ir(e);return!Uv()||!t.visualViewport?BA:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function VA(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==ir(e)?!1:t}function _s(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=Bv(e);let a=Li(1);t&&(r?Ko(r)&&(a=Ta(r)):a=Ta(e));const c=VA(i,n,r)?uE(i):Li(0);let u=(o.left+c.x)/a.x,f=(o.top+c.y)/a.y,h=o.width/a.x,m=o.height/a.y;if(i){const v=ir(i),x=r&&Ko(r)?ir(r):r;let w=v,b=w.frameElement;for(;b&&r&&x!==w;){const P=Ta(b),C=b.getBoundingClientRect(),S=_r(b),E=C.left+(b.clientLeft+parseFloat(S.paddingLeft))*P.x,_=C.top+(b.clientTop+parseFloat(S.paddingTop))*P.y;u*=P.x,f*=P.y,h*=P.x,m*=P.y,u+=E,f+=_,w=ir(b),b=w.frameElement}}return yf({width:h,height:m,x:u,y:f})}const HA=[":popover-open",":modal"];function dE(e){return HA.some(t=>{try{return e.matches(t)}catch{return!1}})}function WA(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",a=Xo(r),c=t?dE(t.floating):!1;if(r===a||c&&i)return n;let u={scrollLeft:0,scrollTop:0},f=Li(1);const h=Li(0),m=fo(r);if((m||!m&&!i)&&((Ai(r)!=="body"||Jc(a))&&(u=sp(r)),fo(r))){const v=_s(r);f=Ta(r),h.x=v.x+r.clientLeft,h.y=v.y+r.clientTop}return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-u.scrollLeft*f.x+h.x,y:n.y*f.y-u.scrollTop*f.y+h.y}}function KA(e){return Array.from(e.getClientRects())}function fE(e){return _s(Xo(e)).left+sp(e).scrollLeft}function GA(e){const t=Xo(e),n=sp(e),r=e.ownerDocument.body,o=er(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=er(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+fE(e);const c=-n.scrollTop;return _r(r).direction==="rtl"&&(a+=er(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:c}}function qA(e,t){const n=ir(e),r=Xo(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,c=0,u=0;if(o){i=o.width,a=o.height;const f=Uv();(!f||f&&t==="fixed")&&(c=o.offsetLeft,u=o.offsetTop)}return{width:i,height:a,x:c,y:u}}function YA(e,t){const n=_s(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=fo(e)?Ta(e):Li(1),a=e.clientWidth*i.x,c=e.clientHeight*i.y,u=o*i.x,f=r*i.y;return{width:a,height:c,x:u,y:f}}function kS(e,t,n){let r;if(t==="viewport")r=qA(e,n);else if(t==="document")r=GA(Xo(e));else if(Ko(t))r=YA(t,n);else{const o=uE(e);r={...t,x:t.x-o.x,y:t.y-o.y}}return yf(r)}function pE(e,t){const n=Ka(e);return n===t||!Ko(n)||ip(n)?!1:_r(n).position==="fixed"||pE(n,t)}function XA(e,t){const n=t.get(e);if(n)return n;let r=Oc(e,[],!1).filter(c=>Ko(c)&&Ai(c)!=="body"),o=null;const i=_r(e).position==="fixed";let a=i?Ka(e):e;for(;Ko(a)&&!ip(a);){const c=_r(a),u=zv(a);!u&&c.position==="fixed"&&(o=null),(i?!u&&!o:!u&&c.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||Jc(a)&&!u&&pE(e,a))?r=r.filter(h=>h!==a):o=c,a=Ka(a)}return t.set(e,r),r}function QA(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?XA(t,this._c):[].concat(n),r],c=a[0],u=a.reduce((f,h)=>{const m=kS(t,h,o);return f.top=er(m.top,f.top),f.right=Oi(m.right,f.right),f.bottom=Oi(m.bottom,f.bottom),f.left=er(m.left,f.left),f},kS(t,c,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function JA(e){const{width:t,height:n}=cE(e);return{width:t,height:n}}function ZA(e,t,n){const r=fo(t),o=Xo(t),i=n==="fixed",a=_s(e,!0,i,t);let c={scrollLeft:0,scrollTop:0};const u=Li(0);if(r||!r&&!i)if((Ai(t)!=="body"||Jc(o))&&(c=sp(t)),r){const m=_s(t,!0,i,t);u.x=m.x+t.clientLeft,u.y=m.y+t.clientTop}else o&&(u.x=fE(o));const f=a.left+c.scrollLeft-u.x,h=a.top+c.scrollTop-u.y;return{x:f,y:h,width:a.width,height:a.height}}function DS(e,t){return!fo(e)||_r(e).position==="fixed"?null:t?t(e):e.offsetParent}function hE(e,t){const n=ir(e);if(!fo(e)||dE(e))return n;let r=DS(e,t);for(;r&&zA(r)&&_r(r).position==="static";)r=DS(r,t);return r&&(Ai(r)==="html"||Ai(r)==="body"&&_r(r).position==="static"&&!zv(r))?n:r||UA(e)||n}const eF=async function(e){const t=this.getOffsetParent||hE,n=this.getDimensions;return{reference:ZA(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,...await n(e.floating)}}};function tF(e){return _r(e).direction==="rtl"}const nF={convertOffsetParentRelativeRectToViewportRelativeRect:WA,getDocumentElement:Xo,getClippingRect:QA,getOffsetParent:hE,getElementRects:eF,getClientRects:KA,getDimensions:JA,getScale:Ta,isElement:Ko,isRTL:tF};function rF(e,t){let n=null,r;const o=Xo(e);function i(){var c;clearTimeout(r),(c=n)==null||c.disconnect(),n=null}function a(c,u){c===void 0&&(c=!1),u===void 0&&(u=1),i();const{left:f,top:h,width:m,height:v}=e.getBoundingClientRect();if(c||t(),!m||!v)return;const x=md(h),w=md(o.clientWidth-(f+m)),b=md(o.clientHeight-(h+v)),P=md(f),S={rootMargin:-x+"px "+-w+"px "+-b+"px "+-P+"px",threshold:er(0,Oi(1,u))||1};let E=!0;function _(D){const N=D[0].intersectionRatio;if(N!==u){if(!E)return a();N?a(!1,N):r=setTimeout(()=>{a(!1,1e-7)},100)}E=!1}try{n=new IntersectionObserver(_,{...S,root:o.ownerDocument})}catch{n=new IntersectionObserver(_,S)}n.observe(e)}return a(!0),i}function oF(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,f=Bv(e),h=o||i?[...f?Oc(f):[],...Oc(t)]:[];h.forEach(C=>{o&&C.addEventListener("scroll",n,{passive:!0}),i&&C.addEventListener("resize",n)});const m=f&&c?rF(f,n):null;let v=-1,x=null;a&&(x=new ResizeObserver(C=>{let[S]=C;S&&S.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var E;(E=x)==null||E.observe(t)})),n()}),f&&!u&&x.observe(f),x.observe(t));let w,b=u?_s(e):null;u&&P();function P(){const C=_s(e);b&&(C.x!==b.x||C.y!==b.y||C.width!==b.width||C.height!==b.height)&&n(),b=C,w=requestAnimationFrame(P)}return n(),()=>{var C;h.forEach(S=>{o&&S.removeEventListener("scroll",n),i&&S.removeEventListener("resize",n)}),m==null||m(),(C=x)==null||C.disconnect(),x=null,u&&cancelAnimationFrame(w)}}const iF=LA,sF=MA,aF=FA,lF=TA,jS=jA,cF=AA,uF=(e,t,n)=>{const r=new Map,o={platform:nF,...n},i={...o.platform,_c:r};return DA(e,t,{...o,platform:i})},dF=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?jS({element:r.current,padding:o}).fn(n):{}:r?jS({element:r,padding:o}).fn(n):{}}}};var Td=typeof document<"u"?p.useLayoutEffect:p.useEffect;function wf(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!wf(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!wf(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function gE(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function MS(e,t){const n=gE(e);return Math.round(t*n)/n}function TS(e){const t=p.useRef(e);return Td(()=>{t.current=e}),t}function fF(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:a}={},transform:c=!0,whileElementsMounted:u,open:f}=e,[h,m]=p.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[v,x]=p.useState(r);wf(v,r)||x(r);const[w,b]=p.useState(null),[P,C]=p.useState(null),S=p.useCallback(Y=>{Y!==N.current&&(N.current=Y,b(Y))},[]),E=p.useCallback(Y=>{Y!==j.current&&(j.current=Y,C(Y))},[]),_=i||w,D=a||P,N=p.useRef(null),j=p.useRef(null),O=p.useRef(h),V=u!=null,J=TS(u),ie=TS(o),te=p.useCallback(()=>{if(!N.current||!j.current)return;const Y={placement:t,strategy:n,middleware:v};ie.current&&(Y.platform=ie.current),uF(N.current,j.current,Y).then(U=>{const B={...U,isPositioned:!0};ge.current&&!wf(O.current,B)&&(O.current=B,po.flushSync(()=>{m(B)}))})},[v,t,n,ie]);Td(()=>{f===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,m(Y=>({...Y,isPositioned:!1})))},[f]);const ge=p.useRef(!1);Td(()=>(ge.current=!0,()=>{ge.current=!1}),[]),Td(()=>{if(_&&(N.current=_),D&&(j.current=D),_&&D){if(J.current)return J.current(_,D,te);te()}},[_,D,te,J,V]);const le=p.useMemo(()=>({reference:N,floating:j,setReference:S,setFloating:E}),[S,E]),T=p.useMemo(()=>({reference:_,floating:D}),[_,D]),W=p.useMemo(()=>{const Y={position:n,left:0,top:0};if(!T.floating)return Y;const U=MS(T.floating,h.x),B=MS(T.floating,h.y);return c?{...Y,transform:"translate("+U+"px, "+B+"px)",...gE(T.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:U,top:B}},[n,c,T.floating,h.x,h.y]);return p.useMemo(()=>({...h,update:te,refs:le,elements:T,floatingStyles:W}),[h,te,le,T,W])}const mE="Popper",[vE,sl]=ur(mE),[pF,xE]=vE(mE),hF=e=>{const{__scopePopper:t,children:n}=e,[r,o]=p.useState(null);return p.createElement(pF,{scope:t,anchor:r,onAnchorChange:o},n)},gF="PopperAnchor",mF=p.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=xE(gF,n),a=p.useRef(null),c=Ze(t,a);return p.useEffect(()=>{i.onAnchorChange((r==null?void 0:r.current)||a.current)}),r?null:p.createElement(Oe.div,q({},o,{ref:c}))}),yE="PopperContent",[vF,FW]=vE(yE),xF=p.forwardRef((e,t)=>{var n,r,o,i,a,c,u,f;const{__scopePopper:h,side:m="bottom",sideOffset:v=0,align:x="center",alignOffset:w=0,arrowPadding:b=0,avoidCollisions:P=!0,collisionBoundary:C=[],collisionPadding:S=0,sticky:E="partial",hideWhenDetached:_=!1,updatePositionStrategy:D="optimized",onPlaced:N,...j}=e,O=xE(yE,h),[V,J]=p.useState(null),ie=Ze(t,Qe=>J(Qe)),[te,ge]=p.useState(null),le=W$(te),T=(n=le==null?void 0:le.width)!==null&&n!==void 0?n:0,W=(r=le==null?void 0:le.height)!==null&&r!==void 0?r:0,Y=m+(x!=="center"?"-"+x:""),U=typeof S=="number"?S:{top:0,right:0,bottom:0,left:0,...S},B=Array.isArray(C)?C:[C],L=B.length>0,H={padding:U,boundary:B.filter(yF),altBoundary:L},{refs:oe,floatingStyles:ne,placement:fe,isPositioned:Se,middlewareData:me}=fF({strategy:"fixed",placement:Y,whileElementsMounted:(...Qe)=>oF(...Qe,{animationFrame:D==="always"}),elements:{reference:O.anchor},middleware:[OA({mainAxis:v+W,alignmentAxis:w}),P&&iF({mainAxis:!0,crossAxis:!1,limiter:E==="partial"?cF():void 0,...H}),P&&sF({...H}),aF({...H,apply:({elements:Qe,rects:tn,availableWidth:Ut,availableHeight:Jo})=>{const{width:Xr,height:Dr}=tn.reference,vt=Qe.floating.style;vt.setProperty("--radix-popper-available-width",`${Ut}px`),vt.setProperty("--radix-popper-available-height",`${Jo}px`),vt.setProperty("--radix-popper-anchor-width",`${Xr}px`),vt.setProperty("--radix-popper-anchor-height",`${Dr}px`)}}),te&&dF({element:te,padding:b}),wF({arrowWidth:T,arrowHeight:W}),_&&lF({strategy:"referenceHidden",...H})]}),[pe,Te]=wE(fe),Fe=Zt(N);_n(()=>{Se&&(Fe==null||Fe())},[Se,Fe]);const We=(o=me.arrow)===null||o===void 0?void 0:o.x,Pe=(i=me.arrow)===null||i===void 0?void 0:i.y,Me=((a=me.arrow)===null||a===void 0?void 0:a.centerOffset)!==0,[Mt,lt]=p.useState();return _n(()=>{V&&lt(window.getComputedStyle(V).zIndex)},[V]),p.createElement("div",{ref:oe.setFloating,"data-radix-popper-content-wrapper":"",style:{...ne,transform:Se?ne.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Mt,"--radix-popper-transform-origin":[(c=me.transformOrigin)===null||c===void 0?void 0:c.x,(u=me.transformOrigin)===null||u===void 0?void 0:u.y].join(" ")},dir:e.dir},p.createElement(vF,{scope:h,placedSide:pe,onArrowChange:ge,arrowX:We,arrowY:Pe,shouldHideArrow:Me},p.createElement(Oe.div,q({"data-side":pe,"data-align":Te},j,{ref:ie,style:{...j.style,animation:Se?void 0:"none",opacity:(f=me.hide)!==null&&f!==void 0&&f.referenceHidden?0:void 0}}))))});function yF(e){return e!==null}const wF=e=>({name:"transformOrigin",options:e,fn(t){var n,r,o,i,a;const{placement:c,rects:u,middlewareData:f}=t,m=((n=f.arrow)===null||n===void 0?void 0:n.centerOffset)!==0,v=m?0:e.arrowWidth,x=m?0:e.arrowHeight,[w,b]=wE(c),P={start:"0%",center:"50%",end:"100%"}[b],C=((r=(o=f.arrow)===null||o===void 0?void 0:o.x)!==null&&r!==void 0?r:0)+v/2,S=((i=(a=f.arrow)===null||a===void 0?void 0:a.y)!==null&&i!==void 0?i:0)+x/2;let E="",_="";return w==="bottom"?(E=m?P:`${C}px`,_=`${-x}px`):w==="top"?(E=m?P:`${C}px`,_=`${u.floating.height+x}px`):w==="right"?(E=`${-x}px`,_=m?P:`${S}px`):w==="left"&&(E=`${u.floating.width+x}px`,_=m?P:`${S}px`),{data:{x:E,y:_}}}});function wE(e){const[t,n="center"]=e.split("-");return[t,n]}const Vv=hF,Hv=mF,Wv=xF,bE="Popover",[SE,zW]=ur(bE,[sl]),Kv=sl(),[bF,al]=SE(bE),SF=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!1}=e,c=Kv(t),u=p.useRef(null),[f,h]=p.useState(!1),[m=!1,v]=Ii({prop:r,defaultProp:o,onChange:i});return p.createElement(Vv,c,p.createElement(bF,{scope:t,contentId:co(),triggerRef:u,open:m,onOpenChange:v,onOpenToggle:p.useCallback(()=>v(x=>!x),[v]),hasCustomAnchor:f,onCustomAnchorAdd:p.useCallback(()=>h(!0),[]),onCustomAnchorRemove:p.useCallback(()=>h(!1),[]),modal:a},n))},CF="PopoverTrigger",$F=p.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,o=al(CF,n),i=Kv(n),a=Ze(t,o.triggerRef),c=p.createElement(Oe.button,q({type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":PE(o.open)},r,{ref:a,onClick:he(e.onClick,o.onOpenToggle)}));return o.hasCustomAnchor?c:p.createElement(Hv,q({asChild:!0},i),c)}),CE="PopoverPortal",[PF,EF]=SE(CE,{forceMount:void 0}),RF=e=>{const{__scopePopover:t,forceMount:n,children:r,container:o}=e,i=al(CE,t);return p.createElement(PF,{scope:t,forceMount:n},p.createElement(Dn,{present:n||i.open},p.createElement(tp,{asChild:!0,container:o},r)))},Lc="PopoverContent",_F=p.forwardRef((e,t)=>{const n=EF(Lc,e.__scopePopover),{forceMount:r=n.forceMount,...o}=e,i=al(Lc,e.__scopePopover);return p.createElement(Dn,{present:r||i.open},i.modal?p.createElement(NF,q({},o,{ref:t})):p.createElement(kF,q({},o,{ref:t})))}),NF=p.forwardRef((e,t)=>{const n=al(Lc,e.__scopePopover),r=p.useRef(null),o=Ze(t,r),i=p.useRef(!1);return p.useEffect(()=>{const a=r.current;if(a)return Yc(a)},[]),p.createElement(op,{as:Vo,allowPinchZoom:!0},p.createElement($E,q({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:he(e.onCloseAutoFocus,a=>{var c;a.preventDefault(),i.current||(c=n.triggerRef.current)===null||c===void 0||c.focus()}),onPointerDownOutside:he(e.onPointerDownOutside,a=>{const c=a.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0,f=c.button===2||u;i.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:he(e.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})))}),kF=p.forwardRef((e,t)=>{const n=al(Lc,e.__scopePopover),r=p.useRef(!1),o=p.useRef(!1);return p.createElement($E,q({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a;if((a=e.onCloseAutoFocus)===null||a===void 0||a.call(e,i),!i.defaultPrevented){var c;r.current||(c=n.triggerRef.current)===null||c===void 0||c.focus(),i.preventDefault()}r.current=!1,o.current=!1},onInteractOutside:i=>{var a,c;(a=e.onInteractOutside)===null||a===void 0||a.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const u=i.target;((c=n.triggerRef.current)===null||c===void 0?void 0:c.contains(u))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}}))}),$E=p.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,disableOutsidePointerEvents:a,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:f,onInteractOutside:h,...m}=e,v=al(Lc,n),x=Kv(n);return np(),p.createElement(ep,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i},p.createElement(Zf,{asChild:!0,disableOutsidePointerEvents:a,onInteractOutside:h,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:f,onDismiss:()=>v.onOpenChange(!1)},p.createElement(Wv,q({"data-state":PE(v.open),role:"dialog",id:v.contentId},x,m,{ref:t,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}}))))});function PE(e){return e?"open":"closed"}const DF=SF,jF=$F,MF=RF,EE=_F,RE=DF,_E=jF,Gv=p.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},o)=>d.jsx(MF,{children:d.jsx(EE,{ref:o,align:t,sideOffset:n,className:se("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})}));Gv.displayName=EE.displayName;const TF=p.createContext(void 0);function Zc(e){const t=p.useContext(TF);return e||t||"ltr"}function t0(e,[t,n]){return Math.min(n,Math.max(t,e))}function IF(e,t){return p.useReducer((n,r)=>{const o=t[n][r];return o??n},e)}const NE="ScrollArea",[kE,UW]=ur(NE),[OF,Nr]=kE(NE),LF=p.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:o,scrollHideDelay:i=600,...a}=e,[c,u]=p.useState(null),[f,h]=p.useState(null),[m,v]=p.useState(null),[x,w]=p.useState(null),[b,P]=p.useState(null),[C,S]=p.useState(0),[E,_]=p.useState(0),[D,N]=p.useState(!1),[j,O]=p.useState(!1),V=Ze(t,ie=>u(ie)),J=Zc(o);return p.createElement(OF,{scope:n,type:r,dir:J,scrollHideDelay:i,scrollArea:c,viewport:f,onViewportChange:h,content:m,onContentChange:v,scrollbarX:x,onScrollbarXChange:w,scrollbarXEnabled:D,onScrollbarXEnabledChange:N,scrollbarY:b,onScrollbarYChange:P,scrollbarYEnabled:j,onScrollbarYEnabledChange:O,onCornerWidthChange:S,onCornerHeightChange:_},p.createElement(Oe.div,q({dir:J},a,{ref:V,style:{position:"relative","--radix-scroll-area-corner-width":C+"px","--radix-scroll-area-corner-height":E+"px",...e.style}})))}),AF="ScrollAreaViewport",FF=p.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,...o}=e,i=Nr(AF,n),a=p.useRef(null),c=Ze(t,a,i.onViewportChange);return p.createElement(p.Fragment,null,p.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"}}),p.createElement(Oe.div,q({"data-radix-scroll-area-viewport":""},o,{ref:c,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...e.style}}),p.createElement("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"}},r)))}),Qo="ScrollAreaScrollbar",DE=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=Nr(Qo,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=o,c=e.orientation==="horizontal";return p.useEffect(()=>(c?i(!0):a(!0),()=>{c?i(!1):a(!1)}),[c,i,a]),o.type==="hover"?p.createElement(zF,q({},r,{ref:t,forceMount:n})):o.type==="scroll"?p.createElement(UF,q({},r,{ref:t,forceMount:n})):o.type==="auto"?p.createElement(jE,q({},r,{ref:t,forceMount:n})):o.type==="always"?p.createElement(qv,q({},r,{ref:t})):null}),zF=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=Nr(Qo,e.__scopeScrollArea),[i,a]=p.useState(!1);return p.useEffect(()=>{const c=o.scrollArea;let u=0;if(c){const f=()=>{window.clearTimeout(u),a(!0)},h=()=>{u=window.setTimeout(()=>a(!1),o.scrollHideDelay)};return c.addEventListener("pointerenter",f),c.addEventListener("pointerleave",h),()=>{window.clearTimeout(u),c.removeEventListener("pointerenter",f),c.removeEventListener("pointerleave",h)}}},[o.scrollArea,o.scrollHideDelay]),p.createElement(Dn,{present:n||i},p.createElement(jE,q({"data-state":i?"visible":"hidden"},r,{ref:t})))}),UF=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=Nr(Qo,e.__scopeScrollArea),i=e.orientation==="horizontal",a=lp(()=>u("SCROLL_END"),100),[c,u]=IF("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return p.useEffect(()=>{if(c==="idle"){const f=window.setTimeout(()=>u("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(f)}},[c,o.scrollHideDelay,u]),p.useEffect(()=>{const f=o.viewport,h=i?"scrollLeft":"scrollTop";if(f){let m=f[h];const v=()=>{const x=f[h];m!==x&&(u("SCROLL"),a()),m=x};return f.addEventListener("scroll",v),()=>f.removeEventListener("scroll",v)}},[o.viewport,i,u,a]),p.createElement(Dn,{present:n||c!=="hidden"},p.createElement(qv,q({"data-state":c==="hidden"?"hidden":"visible"},r,{ref:t,onPointerEnter:he(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:he(e.onPointerLeave,()=>u("POINTER_LEAVE"))})))}),jE=p.forwardRef((e,t)=>{const n=Nr(Qo,e.__scopeScrollArea),{forceMount:r,...o}=e,[i,a]=p.useState(!1),c=e.orientation==="horizontal",u=lp(()=>{if(n.viewport){const f=n.viewport.offsetWidth<n.viewport.scrollWidth,h=n.viewport.offsetHeight<n.viewport.scrollHeight;a(c?f:h)}},10);return Ga(n.viewport,u),Ga(n.content,u),p.createElement(Dn,{present:r||i},p.createElement(qv,q({"data-state":i?"visible":"hidden"},o,{ref:t})))}),qv=p.forwardRef((e,t)=>{const{orientation:n="vertical",...r}=e,o=Nr(Qo,e.__scopeScrollArea),i=p.useRef(null),a=p.useRef(0),[c,u]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=OE(c.viewport,c.content),h={...r,sizes:c,onSizesChange:u,hasThumb:f>0&&f<1,onThumbChange:v=>i.current=v,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:v=>a.current=v};function m(v,x){return YF(v,a.current,c,x)}return n==="horizontal"?p.createElement(BF,q({},h,{ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const v=o.viewport.scrollLeft,x=IS(v,c,o.dir);i.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:v=>{o.viewport&&(o.viewport.scrollLeft=v)},onDragScroll:v=>{o.viewport&&(o.viewport.scrollLeft=m(v,o.dir))}})):n==="vertical"?p.createElement(VF,q({},h,{ref:t,onThumbPositionChange:()=>{if(o.viewport&&i.current){const v=o.viewport.scrollTop,x=IS(v,c);i.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:v=>{o.viewport&&(o.viewport.scrollTop=v)},onDragScroll:v=>{o.viewport&&(o.viewport.scrollTop=m(v))}})):null}),BF=p.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=Nr(Qo,e.__scopeScrollArea),[a,c]=p.useState(),u=p.useRef(null),f=Ze(t,u,i.onScrollbarXChange);return p.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),p.createElement(TE,q({"data-orientation":"horizontal"},o,{ref:f,sizes:n,style:{bottom:0,left:i.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:i.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":ap(n)+"px",...e.style},onThumbPointerDown:h=>e.onThumbPointerDown(h.x),onDragScroll:h=>e.onDragScroll(h.x),onWheelScroll:(h,m)=>{if(i.viewport){const v=i.viewport.scrollLeft+h.deltaX;e.onWheelScroll(v),AE(v,m)&&h.preventDefault()}},onResize:()=>{u.current&&i.viewport&&a&&r({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:bf(a.paddingLeft),paddingEnd:bf(a.paddingRight)}})}}))}),VF=p.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...o}=e,i=Nr(Qo,e.__scopeScrollArea),[a,c]=p.useState(),u=p.useRef(null),f=Ze(t,u,i.onScrollbarYChange);return p.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),p.createElement(TE,q({"data-orientation":"vertical"},o,{ref:f,sizes:n,style:{top:0,right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":ap(n)+"px",...e.style},onThumbPointerDown:h=>e.onThumbPointerDown(h.y),onDragScroll:h=>e.onDragScroll(h.y),onWheelScroll:(h,m)=>{if(i.viewport){const v=i.viewport.scrollTop+h.deltaY;e.onWheelScroll(v),AE(v,m)&&h.preventDefault()}},onResize:()=>{u.current&&i.viewport&&a&&r({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:bf(a.paddingTop),paddingEnd:bf(a.paddingBottom)}})}}))}),[HF,ME]=kE(Qo),TE=p.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:o,onThumbChange:i,onThumbPointerUp:a,onThumbPointerDown:c,onThumbPositionChange:u,onDragScroll:f,onWheelScroll:h,onResize:m,...v}=e,x=Nr(Qo,n),[w,b]=p.useState(null),P=Ze(t,V=>b(V)),C=p.useRef(null),S=p.useRef(""),E=x.viewport,_=r.content-r.viewport,D=Zt(h),N=Zt(u),j=lp(m,10);function O(V){if(C.current){const J=V.clientX-C.current.left,ie=V.clientY-C.current.top;f({x:J,y:ie})}}return p.useEffect(()=>{const V=J=>{const ie=J.target;(w==null?void 0:w.contains(ie))&&D(J,_)};return document.addEventListener("wheel",V,{passive:!1}),()=>document.removeEventListener("wheel",V,{passive:!1})},[E,w,_,D]),p.useEffect(N,[r,N]),Ga(w,j),Ga(x.content,j),p.createElement(HF,{scope:n,scrollbar:w,hasThumb:o,onThumbChange:Zt(i),onThumbPointerUp:Zt(a),onThumbPositionChange:N,onThumbPointerDown:Zt(c)},p.createElement(Oe.div,q({},v,{ref:P,style:{position:"absolute",...v.style},onPointerDown:he(e.onPointerDown,V=>{V.button===0&&(V.target.setPointerCapture(V.pointerId),C.current=w.getBoundingClientRect(),S.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),O(V))}),onPointerMove:he(e.onPointerMove,O),onPointerUp:he(e.onPointerUp,V=>{const J=V.target;J.hasPointerCapture(V.pointerId)&&J.releasePointerCapture(V.pointerId),document.body.style.webkitUserSelect=S.current,x.viewport&&(x.viewport.style.scrollBehavior=""),C.current=null})})))}),n0="ScrollAreaThumb",WF=p.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ME(n0,e.__scopeScrollArea);return p.createElement(Dn,{present:n||o.hasThumb},p.createElement(KF,q({ref:t},r)))}),KF=p.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...o}=e,i=Nr(n0,n),a=ME(n0,n),{onThumbPositionChange:c}=a,u=Ze(t,m=>a.onThumbChange(m)),f=p.useRef(),h=lp(()=>{f.current&&(f.current(),f.current=void 0)},100);return p.useEffect(()=>{const m=i.viewport;if(m){const v=()=>{if(h(),!f.current){const x=XF(m,c);f.current=x,c()}};return c(),m.addEventListener("scroll",v),()=>m.removeEventListener("scroll",v)}},[i.viewport,h,c]),p.createElement(Oe.div,q({"data-state":a.hasThumb?"visible":"hidden"},o,{ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:he(e.onPointerDownCapture,m=>{const x=m.target.getBoundingClientRect(),w=m.clientX-x.left,b=m.clientY-x.top;a.onThumbPointerDown({x:w,y:b})}),onPointerUp:he(e.onPointerUp,a.onThumbPointerUp)}))}),IE="ScrollAreaCorner",GF=p.forwardRef((e,t)=>{const n=Nr(IE,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?p.createElement(qF,q({},e,{ref:t})):null}),qF=p.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,o=Nr(IE,n),[i,a]=p.useState(0),[c,u]=p.useState(0),f=!!(i&&c);return Ga(o.scrollbarX,()=>{var h;const m=((h=o.scrollbarX)===null||h===void 0?void 0:h.offsetHeight)||0;o.onCornerHeightChange(m),u(m)}),Ga(o.scrollbarY,()=>{var h;const m=((h=o.scrollbarY)===null||h===void 0?void 0:h.offsetWidth)||0;o.onCornerWidthChange(m),a(m)}),f?p.createElement(Oe.div,q({},r,{ref:t,style:{width:i,height:c,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}})):null});function bf(e){return e?parseInt(e,10):0}function OE(e,t){const n=e/t;return isNaN(n)?0:n}function ap(e){const t=OE(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function YF(e,t,n,r="ltr"){const o=ap(n),i=o/2,a=t||i,c=o-a,u=n.scrollbar.paddingStart+a,f=n.scrollbar.size-n.scrollbar.paddingEnd-c,h=n.content-n.viewport,m=r==="ltr"?[0,h]:[h*-1,0];return LE([u,f],m)(e)}function IS(e,t,n="ltr"){const r=ap(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,i=t.scrollbar.size-o,a=t.content-t.viewport,c=i-r,u=n==="ltr"?[0,a]:[a*-1,0],f=t0(e,u);return LE([0,a],[0,c])(f)}function LE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function AE(e,t){return e>0&&e<t}const XF=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return function o(){const i={left:e.scrollLeft,top:e.scrollTop},a=n.left!==i.left,c=n.top!==i.top;(a||c)&&t(),n=i,r=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(r)};function lp(e,t){const n=Zt(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Ga(e,t){const n=Zt(t);_n(()=>{let r=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,n])}const FE=LF,QF=FF,JF=GF,Yv=p.forwardRef(({className:e,children:t,...n},r)=>d.jsxs(FE,{ref:r,className:se("relative overflow-hidden",e),...n,children:[d.jsx(QF,{className:"h-full w-full rounded-[inherit]",children:t}),d.jsx(zE,{}),d.jsx(JF,{})]}));Yv.displayName=FE.displayName;const zE=p.forwardRef(({className:e,orientation:t="vertical",...n},r)=>d.jsx(DE,{ref:r,orientation:t,className:se("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:d.jsx(WF,{className:"relative flex-1 rounded-full bg-border"})}));zE.displayName=DE.displayName;function Xe(e){var u;const t=e.className,n=e.options,r=e.value,o=e.onSelect,[i,a]=p.useState(!1),c=e.showFilter??!1;return d.jsxs(RE,{open:i,onOpenChange:a,children:[d.jsx(_E,{asChild:!0,children:d.jsxs(at,{variant:"outline",role:"combobox","aria-expanded":i,className:se("w-[200px] justify-between",t),children:[r?(u=n.find(f=>f.value===r))==null?void 0:u.label:"Select level...",d.jsx(qf,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),d.jsx(Gv,{className:se("w-[200px] p-0",t),children:d.jsxs(Tv,{children:[c&&d.jsx(Iv,{placeholder:"Select level..."}),d.jsx(Ov,{children:"No framework found."}),d.jsx(Yv,{className:"max-h-[300px]",children:d.jsx(gf,{children:n.map(f=>d.jsxs(mf,{role:"option",value:f.value,onSelect:()=>{o(f.value),a(!1)},children:[d.jsx(Gf,{className:se("mr-2 h-4 w-4",r===f.value?"opacity-100":"opacity-0")}),f.label]},f.value))})})]})})]})}const ZF="AlertDialog",[ez,BW]=ur(ZF,[GP]),Wi=GP(),tz=e=>{const{__scopeAlertDialog:t,...n}=e,r=Wi(t);return p.createElement(ZP,q({},r,n,{modal:!0}))},nz=e=>{const{__scopeAlertDialog:t,...n}=e,r=Wi(t);return p.createElement(eE,q({},r,n))},rz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Wi(n);return p.createElement(_v,q({},o,r,{ref:t}))}),UE="AlertDialogContent",[oz,iz]=ez(UE),sz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,i=Wi(n),a=p.useRef(null),c=Ze(t,a),u=p.useRef(null);return p.createElement(yA,{contentName:UE,titleName:az,docsSlug:"alert-dialog"},p.createElement(oz,{scope:n,cancelRef:u},p.createElement(Nv,q({role:"alertdialog"},i,o,{ref:c,onOpenAutoFocus:he(o.onOpenAutoFocus,f=>{var h;f.preventDefault(),(h=u.current)===null||h===void 0||h.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault()}),p.createElement(O$,null,r),!1)))}),az="AlertDialogTitle",lz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Wi(n);return p.createElement(kv,q({},o,r,{ref:t}))}),cz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Wi(n);return p.createElement(Dv,q({},o,r,{ref:t}))}),uz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Wi(n);return p.createElement(jv,q({},o,r,{ref:t}))}),dz="AlertDialogCancel",fz=p.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=iz(dz,n),i=Wi(n),a=Ze(t,o);return p.createElement(jv,q({},i,r,{ref:a}))}),pz=tz,hz=nz,BE=rz,VE=sz,HE=uz,WE=fz,KE=lz,GE=cz,qE=pz,gz=hz,YE=p.forwardRef(({className:e,...t},n)=>d.jsx(BE,{className:se("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));YE.displayName=BE.displayName;const Xv=p.forwardRef(({className:e,...t},n)=>d.jsxs(gz,{children:[d.jsx(YE,{}),d.jsx(VE,{ref:n,className:se("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));Xv.displayName=VE.displayName;const Qv=({className:e,...t})=>d.jsx("div",{className:se("flex flex-col space-y-2 text-center sm:text-left",e),...t});Qv.displayName="AlertDialogHeader";const Jv=({className:e,...t})=>d.jsx("div",{className:se("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Jv.displayName="AlertDialogFooter";const Zv=p.forwardRef(({className:e,...t},n)=>d.jsx(KE,{ref:n,className:se("text-lg font-semibold",e),...t}));Zv.displayName=KE.displayName;const e1=p.forwardRef(({className:e,...t},n)=>d.jsx(GE,{ref:n,className:se("text-sm text-muted-foreground",e),...t}));e1.displayName=GE.displayName;const t1=p.forwardRef(({className:e,...t},n)=>d.jsx(HE,{ref:n,className:se(Sv(),e),...t}));t1.displayName=HE.displayName;const n1=p.forwardRef(({className:e,...t},n)=>d.jsx(WE,{ref:n,className:se(Sv({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));n1.displayName=WE.displayName;function mz(){var u;const{settings:e}=df(),[t,n]=p.useState(),{publish:r}=Gc(),o=b$(({currentLocation:f,nextLocation:h})=>!Bm.isEqual(t,e)&&f.pathname!==h.pathname),i=f=>{n({...t,LogLevel:f})},a=f=>{n({...t,TestTimerInterval:Number.parseInt(f||"250")})},c=f=>{n({...t,Language:f})};return p.useEffect(()=>{n(df.getState().settings)},[e]),d.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto",children:[o&&d.jsx(qE,{open:o.state==="blocked",children:d.jsxs(Xv,{children:[d.jsxs(Qv,{children:[d.jsx(Zv,{children:"You have unsaved changes"}),d.jsx(e1,{children:"You will lose all unsaved changes if you continue."})]}),d.jsxs(Jv,{children:[d.jsx(n1,{onClick:()=>{var f;return(f=o.reset)==null?void 0:f.call(o)},children:"Cancel"}),d.jsx(t1,{onClick:()=>{var f;return(f=o.proceed)==null?void 0:f.call(o)},children:"Continue"})]})]})}),d.jsx("h2",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Global settings"}),d.jsxs("div",{className:"flex flex-row gap-4 flex-wrap overflow-y-auto pb-3",children:[d.jsxs(zt,{className:"w-[350px]",children:[d.jsx(Rn,{className:"flex flex-row gap-2 items-center",children:d.jsx("div",{className:"flex flex-col mt-0",children:d.jsx("div",{className:"text-xl font-semibold",children:"General"})})}),d.jsxs(Un,{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",children:"Number of recent files"}),d.jsxs(at,{variant:"outline",className:"flex flex-row p-3",children:[t==null?void 0:t.RecentFilesMaxCount,d.jsxs("div",{className:"flex flex-col",children:[d.jsx(lP,{role:"button",className:"ml-2 h-4 w-4 shrink-0 opacity-50 hover:stroke-primary hover:opacity-100",onClick:()=>n({...t,RecentFilesMaxCount:Math.min(10,((t==null?void 0:t.RecentFilesMaxCount)??5)+1)})}),d.jsx(qf,{role:"button",className:"ml-2 h-4 w-4 shrink-0 opacity-50 hover:stroke-primary hover:opacity-100",onClick:()=>n({...t,RecentFilesMaxCount:Math.max(1,t.RecentFilesMaxCount-1)})})]})]})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Beta updates"}),d.jsx(Wt,{checked:t==null?void 0:t.BetaUpdates,onClick:()=>n({...t,BetaUpdates:!(t!=null&&t.BetaUpdates)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Community feedback"}),d.jsx(Wt,{checked:t==null?void 0:t.CommunityFeedback,onClick:()=>n({...t,CommunityFeedback:!(t!=null&&t.CommunityFeedback)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Joystick support"}),d.jsx(Wt,{checked:t==null?void 0:t.EnableJoystickSupport,onClick:()=>n({...t,EnableJoystickSupport:!(t!=null&&t.EnableJoystickSupport)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Midi device support"}),d.jsx(Wt,{checked:t==null?void 0:t.EnableMidiSupport,onClick:()=>n({...t,EnableMidiSupport:!(t!=null&&t.EnableMidiSupport)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Test speed"}),d.jsx(Xe,{className:"w-32",options:[{value:"1000",label:"1 sec"},{value:"500",label:"500ms"},{value:"250",label:"250ms"},{value:"100",label:"100ms"},{value:"50",label:"50ms"}],value:((u=t==null?void 0:t.TestTimerInterval)==null?void 0:u.toString())??"250",onSelect:a})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"UI Language"}),d.jsx(Xe,{className:"w-48",options:[{value:"system",label:"System Default"},{value:"en-US",label:"English"},{value:"de-DE",label:"Deutsch"}],value:(t==null?void 0:t.Language)??"system",onSelect:c})]})]})]}),d.jsxs(zt,{className:"w-[350px]",children:[d.jsx(Rn,{children:d.jsx("div",{className:"flex flex-col mt-0",children:d.jsx("div",{className:"text-xl font-semibold",children:"Logging"})})}),d.jsxs(Un,{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Enabled"}),d.jsx(Wt,{checked:t==null?void 0:t.LogEnabled,onClick:()=>n({...t,LogEnabled:!(t!=null&&t.LogEnabled)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Log level"}),d.jsx(Xe,{className:"w-32",value:(t==null?void 0:t.LogLevel)??"Info",options:[{value:"Debug",label:"Debug"},{value:"Info",label:"Info"},{value:"Warn",label:"Warning"},{value:"Error",label:"Error"}],onSelect:i})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Log joystick axis"}),d.jsx(Wt,{checked:t==null?void 0:t.LogJoystickAxis,onClick:()=>n({...t,LogJoystickAxis:!(t!=null&&t.LogJoystickAxis)})})]})]})]}),d.jsxs(zt,{className:"w-[350px]",children:[d.jsx(Rn,{children:d.jsx("div",{className:"flex flex-col mt-0",children:d.jsx("div",{className:"text-xl font-semibold",children:"Run options"})})}),d.jsxs(Un,{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Auto retrigger"}),d.jsx(Wt,{checked:t==null?void 0:t.AutoRetrigger,onClick:()=>n({...t,AutoRetrigger:!(t!=null&&t.AutoRetrigger)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Auto run"}),d.jsx(Wt,{checked:t==null?void 0:t.AutoRun,onClick:()=>n({...t,AutoRun:!(t!=null&&t.AutoRun)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Auto load linked config"}),d.jsx(Wt,{checked:t==null?void 0:t.AutoLoadLinkedConfig,onClick:()=>n({...t,AutoLoadLinkedConfig:!(t!=null&&t.AutoLoadLinkedConfig)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Firmware auto update check"}),d.jsx(Wt,{checked:t==null?void 0:t.FwAutoUpdateCheck,onClick:()=>n({...t,FwAutoUpdateCheck:!(t!=null&&t.FwAutoUpdateCheck)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Hub hop auto check"}),d.jsx(Wt,{checked:t==null?void 0:t.HubHopAutoCheck,onClick:()=>n({...t,HubHopAutoCheck:!(t!=null&&t.HubHopAutoCheck)})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between",children:[d.jsx("label",{className:"w-56",htmlFor:"",children:"Minimize on auto run"}),d.jsx(Wt,{checked:t==null?void 0:t.MinimizeOnAutoRun,onClick:()=>n({...t,MinimizeOnAutoRun:!(t!=null&&t.MinimizeOnAutoRun)})})]})]})]})]}),d.jsx("div",{className:"flex flex-row gap-4",children:d.jsx(at,{variant:"default",className:"dark:text-white",disabled:Bm.isEqual(t,e),onClick:()=>{t&&r({key:"GlobalSettingsUpdate",payload:t})},children:"Save changes"})})]})}const cp=[{id:"1",filePath:"C:\\temp",name:"FBW A320",linkedAircraft:["FBW A320*"],status:{configs:{files:0,configs:0,status:"New"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"2",filePath:"C:\\temp",name:"PMDG B737",linkedAircraft:["PMDG B737-800","PMDG B737-900"],status:{configs:{files:1,configs:4,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"3",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"4",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"5",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"6",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"7",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"8",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"9",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"10",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}},{id:"11",filePath:"C:\\temp",name:"C172",status:{configs:{files:2,configs:6,status:"OK"},devices:{count:5,status:"OK"},sim:{name:"MSFS2020",status:"OK"}}}],qa=Ms(e=>({items:[],setItems:t=>e(()=>({items:t})),updateItem:t=>e(n=>({items:n.items.map(r=>r.GUID===t.GUID?t:r)}))}));function vz(){var o;const{t:e}=yv(),t=tl(),n=qa(i=>i.items),r=cp.find(i=>i.id===t.id);return d.jsxs("div",{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-row gap-4 items-center",children:[d.jsx(tr,{to:"/",className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Projects"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0 font-bold",children:r==null?void 0:r.name}),d.jsx(uP,{})]}),d.jsx(zt,{children:d.jsxs("form",{action:"",className:"p-4 flex flex-row gap-4",children:[d.jsx("div",{className:"w-auto",children:"Selected simulator"}),d.jsx("div",{className:"font-bold",children:r==null?void 0:r.status.sim.name}),d.jsx("div",{className:"w-auto",children:"Linked aircraft"}),(o=r==null?void 0:r.linkedAircraft)==null?void 0:o.map(i=>d.jsx("div",{className:"font-bold",children:i},i))]})}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsx(tr,{to:`/projects/${r==null?void 0:r.id}/configs`,children:d.jsxs(zt,{className:"w-[350px]",children:[d.jsx(Rn,{children:d.jsx(pf,{children:e("project.configs")})}),d.jsxs(Un,{children:[d.jsxs("p",{children:[e("project.status.files"),": ",n.length>0?1:0]}),d.jsxs("p",{children:[e("project.status.configs"),": ",n.length.toString()]})]})]})}),d.jsxs(zt,{className:"w-[350px]",children:[d.jsx(Rn,{children:d.jsx(pf,{children:"Devices"})}),d.jsxs(Un,{children:[d.jsxs("p",{children:["Number: ",r==null?void 0:r.status.devices.count.toString()]}),d.jsxs("p",{children:["Status: ",r==null?void 0:r.status.devices.status]})]})]})]})]})}const xz=bv("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent dark:border-primary dark:text-primary dark:bg-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Fn({className:e,variant:t,...n}){return d.jsx("div",{className:se(xz({variant:t}),e),...n})}const yz=e=>{var n,r;const t=e.project;return d.jsxs(zt,{className:"w-[350px] dark:border-gray-800 shadow-md",children:[d.jsxs(Rn,{children:[d.jsx(pf,{children:t.name}),d.jsx("div",{children:d.jsx(Fn,{className:"bg-green-700",variant:"default",children:t.status.sim.name})})]}),d.jsx(Un,{children:d.jsxs("div",{className:"grid w-full items-center gap-4",children:[d.jsxs("div",{className:"flex flex-col justify-between gap-0",children:[d.jsx("p",{className:"font-bold",children:"Aircraft"}),d.jsx("p",{children:(((n=t.linkedAircraft)==null?void 0:n.length)||0)>0?(r=t.linkedAircraft)==null?void 0:r.join(", "):"None"})]}),d.jsxs("div",{className:"flex flex-row justify-between content-baseline text-center",children:[d.jsxs("div",{children:[d.jsx("p",{children:"Devices"}),d.jsxs(Fn,{color:"",variant:"outline",children:["1 of ",t.status.devices.count.toString()]})]}),d.jsxs("div",{children:[d.jsx("p",{children:"Configs"}),d.jsx(Fn,{variant:"outline",children:t.status.configs.configs.toString()})]}),d.jsxs("div",{children:[d.jsx("p",{children:"Files"}),d.jsx(Fn,{variant:"outline",children:t.status.configs.files.toString()})]})]})]})}),d.jsxs(Lo,{className:"flex justify-between",children:[d.jsxs("div",{className:"flex gap-2 content-baseline",children:[d.jsx(Wt,{}),d.jsx("span",{children:"Auto run"})]}),d.jsx(tr,{to:`/projects/${t.id}`,children:d.jsx(at,{variant:"default",children:"Open"})})]})]})},OS=()=>{const e=cp;return d.jsxs(d.Fragment,{children:[d.jsx("h2",{className:"scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0",children:"Projects"}),d.jsx("div",{className:"flex flex-row pt-4 w-full gap-4 flex-wrap max-w-full h-full",children:e.map(t=>d.jsx(yz,{project:t},t.id))})]})};function r1(e){const t=e+"CollectionProvider",[n,r]=ur(t),[o,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=x=>{const{scope:w,children:b}=x,P=ce.useRef(null),C=ce.useRef(new Map).current;return ce.createElement(o,{scope:w,itemMap:C,collectionRef:P},b)},c=e+"CollectionSlot",u=ce.forwardRef((x,w)=>{const{scope:b,children:P}=x,C=i(c,b),S=Ze(w,C.collectionRef);return ce.createElement(Vo,{ref:S},P)}),f=e+"CollectionItemSlot",h="data-radix-collection-item",m=ce.forwardRef((x,w)=>{const{scope:b,children:P,...C}=x,S=ce.useRef(null),E=Ze(w,S),_=i(f,b);return ce.useEffect(()=>(_.itemMap.set(S,{ref:S,...C}),()=>void _.itemMap.delete(S))),ce.createElement(Vo,{[h]:"",ref:E},P)});function v(x){const w=i(e+"CollectionConsumer",x);return ce.useCallback(()=>{const P=w.collectionRef.current;if(!P)return[];const C=Array.from(P.querySelectorAll(`[${h}]`));return Array.from(w.itemMap.values()).sort((_,D)=>C.indexOf(_.ref.current)-C.indexOf(D.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:a,Slot:u,ItemSlot:m},v,r]}const Eg="rovingFocusGroup.onEntryFocus",wz={bubbles:!1,cancelable:!0},o1="RovingFocusGroup",[r0,XE,bz]=r1(o1),[Sz,up]=ur(o1,[bz]),[Cz,$z]=Sz(o1),Pz=p.forwardRef((e,t)=>p.createElement(r0.Provider,{scope:e.__scopeRovingFocusGroup},p.createElement(r0.Slot,{scope:e.__scopeRovingFocusGroup},p.createElement(Ez,q({},e,{ref:t}))))),Ez=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:u,onEntryFocus:f,...h}=e,m=p.useRef(null),v=Ze(t,m),x=Zc(i),[w=null,b]=Ii({prop:a,defaultProp:c,onChange:u}),[P,C]=p.useState(!1),S=Zt(f),E=XE(n),_=p.useRef(!1),[D,N]=p.useState(0);return p.useEffect(()=>{const j=m.current;if(j)return j.addEventListener(Eg,S),()=>j.removeEventListener(Eg,S)},[S]),p.createElement(Cz,{scope:n,orientation:r,dir:x,loop:o,currentTabStopId:w,onItemFocus:p.useCallback(j=>b(j),[b]),onItemShiftTab:p.useCallback(()=>C(!0),[]),onFocusableItemAdd:p.useCallback(()=>N(j=>j+1),[]),onFocusableItemRemove:p.useCallback(()=>N(j=>j-1),[])},p.createElement(Oe.div,q({tabIndex:P||D===0?-1:0,"data-orientation":r},h,{ref:v,style:{outline:"none",...e.style},onMouseDown:he(e.onMouseDown,()=>{_.current=!0}),onFocus:he(e.onFocus,j=>{const O=!_.current;if(j.target===j.currentTarget&&O&&!P){const V=new CustomEvent(Eg,wz);if(j.currentTarget.dispatchEvent(V),!V.defaultPrevented){const J=E().filter(T=>T.focusable),ie=J.find(T=>T.active),te=J.find(T=>T.id===w),le=[ie,te,...J].filter(Boolean).map(T=>T.ref.current);QE(le)}}_.current=!1}),onBlur:he(e.onBlur,()=>C(!1))})))}),Rz="RovingFocusGroupItem",_z=p.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:i,...a}=e,c=co(),u=i||c,f=$z(Rz,n),h=f.currentTabStopId===u,m=XE(n),{onFocusableItemAdd:v,onFocusableItemRemove:x}=f;return p.useEffect(()=>{if(r)return v(),()=>x()},[r,v,x]),p.createElement(r0.ItemSlot,{scope:n,id:u,focusable:r,active:o},p.createElement(Oe.span,q({tabIndex:h?0:-1,"data-orientation":f.orientation},a,{ref:t,onMouseDown:he(e.onMouseDown,w=>{r?f.onItemFocus(u):w.preventDefault()}),onFocus:he(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:he(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){f.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const b=Dz(w,f.orientation,f.dir);if(b!==void 0){w.preventDefault();let C=m().filter(S=>S.focusable).map(S=>S.ref.current);if(b==="last")C.reverse();else if(b==="prev"||b==="next"){b==="prev"&&C.reverse();const S=C.indexOf(w.currentTarget);C=f.loop?jz(C,S+1):C.slice(S+1)}setTimeout(()=>QE(C))}})})))}),Nz={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function kz(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Dz(e,t,n){const r=kz(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Nz[r]}function QE(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function jz(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const JE=Pz,ZE=_z,e3="Tabs",[Mz,VW]=ur(e3,[up]),t3=up(),[Tz,i1]=Mz(e3),Iz=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:o,defaultValue:i,orientation:a="horizontal",dir:c,activationMode:u="automatic",...f}=e,h=Zc(c),[m,v]=Ii({prop:r,onChange:o,defaultProp:i});return p.createElement(Tz,{scope:n,baseId:co(),value:m,onValueChange:v,orientation:a,dir:h,activationMode:u},p.createElement(Oe.div,q({dir:h,"data-orientation":a},f,{ref:t})))}),Oz="TabsList",Lz=p.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...o}=e,i=i1(Oz,n),a=t3(n);return p.createElement(JE,q({asChild:!0},a,{orientation:i.orientation,dir:i.dir,loop:r}),p.createElement(Oe.div,q({role:"tablist","aria-orientation":i.orientation},o,{ref:t})))}),Az="TabsTrigger",Fz=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:o=!1,...i}=e,a=i1(Az,n),c=t3(n),u=n3(a.baseId,r),f=r3(a.baseId,r),h=r===a.value;return p.createElement(ZE,q({asChild:!0},c,{focusable:!o,active:h}),p.createElement(Oe.button,q({type:"button",role:"tab","aria-selected":h,"aria-controls":f,"data-state":h?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:u},i,{ref:t,onMouseDown:he(e.onMouseDown,m=>{!o&&m.button===0&&m.ctrlKey===!1?a.onValueChange(r):m.preventDefault()}),onKeyDown:he(e.onKeyDown,m=>{[" ","Enter"].includes(m.key)&&a.onValueChange(r)}),onFocus:he(e.onFocus,()=>{const m=a.activationMode!=="manual";!h&&!o&&m&&a.onValueChange(r)})})))}),zz="TabsContent",Uz=p.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:o,children:i,...a}=e,c=i1(zz,n),u=n3(c.baseId,r),f=r3(c.baseId,r),h=r===c.value,m=p.useRef(h);return p.useEffect(()=>{const v=requestAnimationFrame(()=>m.current=!1);return()=>cancelAnimationFrame(v)},[]),p.createElement(Dn,{present:o||h},({present:v})=>p.createElement(Oe.div,q({"data-state":h?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!v,id:f,tabIndex:0},a,{ref:t,style:{...e.style,animationDuration:m.current?"0s":void 0}}),v&&i))});function n3(e,t){return`${e}-trigger-${t}`}function r3(e,t){return`${e}-content-${t}`}const Bz=Iz,o3=Lz,i3=Fz,s3=Uz,a3=Bz,s1=p.forwardRef(({className:e,...t},n)=>d.jsx(o3,{ref:n,className:se("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));s1.displayName=o3.displayName;const Ci=p.forwardRef(({className:e,...t},n)=>d.jsx(i3,{ref:n,className:se("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",e),...t}));Ci.displayName=i3.displayName;const Ea=p.forwardRef(({className:e,...t},n)=>d.jsx(s3,{ref:n,className:se("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Ea.displayName=s3.displayName;/** - * table-core - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function $i(e,t){return typeof e=="function"?e(t):e}function ar(e,t){return n=>{t.setState(r=>({...r,[e]:$i(n,r[e])}))}}function Sf(e){return e instanceof Function}function Vz(e){return Array.isArray(e)&&e.every(t=>typeof t=="number")}function Hz(e,t){const n=[],r=o=>{o.forEach(i=>{n.push(i);const a=t(i);a!=null&&a.length&&r(a)})};return r(e),n}function Ne(e,t,n){let r=[],o;return i=>{let a;n.key&&n.debug&&(a=Date.now());const c=e(i);if(!(c.length!==r.length||c.some((h,m)=>r[m]!==h)))return o;r=c;let f;if(n.key&&n.debug&&(f=Date.now()),o=t(...c),n==null||n.onChange==null||n.onChange(o),n.key&&n.debug&&n!=null&&n.debug()){const h=Math.round((Date.now()-a)*100)/100,m=Math.round((Date.now()-f)*100)/100,v=m/16,x=(w,b)=>{for(w=String(w);w.length<b;)w=" "+w;return w};console.info(`%c⏱ ${x(m,5)} /${x(h,5)} ms`,` - font-size: .6rem; - font-weight: bold; - color: hsl(${Math.max(0,Math.min(120-120*v,120))}deg 100% 31%);`,n==null?void 0:n.key)}return o}}function ke(e,t,n,r){return{debug:()=>{var o;return(o=e==null?void 0:e.debugAll)!=null?o:e[t]},key:!1,onChange:r}}function Wz(e,t,n,r){var o,i;const c={...e._getDefaultColumnDef(),...t},u=c.accessorKey;let f=(o=(i=c.id)!=null?i:u?u.replace(".","_"):void 0)!=null?o:typeof c.header=="string"?c.header:void 0,h;if(c.accessorFn?h=c.accessorFn:u&&(u.includes(".")?h=v=>{let x=v;for(const b of u.split(".")){var w;x=(w=x)==null?void 0:w[b]}return x}:h=v=>v[c.accessorKey]),!f)throw new Error;let m={id:`${String(f)}`,accessorFn:h,parent:r,depth:n,columnDef:c,columns:[],getFlatColumns:Ne(()=>[!0],()=>{var v;return[m,...(v=m.columns)==null?void 0:v.flatMap(x=>x.getFlatColumns())]},ke(e.options,"debugColumns")),getLeafColumns:Ne(()=>[e._getOrderColumnsFn()],v=>{var x;if((x=m.columns)!=null&&x.length){let w=m.columns.flatMap(b=>b.getLeafColumns());return v(w)}return[m]},ke(e.options,"debugColumns"))};for(const v of e._features)v.createColumn==null||v.createColumn(m,e);return m}const pn="debugHeaders";function LS(e,t,n){var r;let i={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const a=[],c=u=>{u.subHeaders&&u.subHeaders.length&&u.subHeaders.map(c),a.push(u)};return c(i),a},getContext:()=>({table:e,header:i,column:t})};return e._features.forEach(a=>{a.createHeader==null||a.createHeader(i,e)}),i}const Kz={createTable:e=>{e.getHeaderGroups=Ne(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>{var i,a;const c=(i=r==null?void 0:r.map(m=>n.find(v=>v.id===m)).filter(Boolean))!=null?i:[],u=(a=o==null?void 0:o.map(m=>n.find(v=>v.id===m)).filter(Boolean))!=null?a:[],f=n.filter(m=>!(r!=null&&r.includes(m.id))&&!(o!=null&&o.includes(m.id)));return vd(t,[...c,...f,...u],e)},ke(e.options,pn)),e.getCenterHeaderGroups=Ne(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,o)=>(n=n.filter(i=>!(r!=null&&r.includes(i.id))&&!(o!=null&&o.includes(i.id))),vd(t,n,e,"center")),ke(e.options,pn)),e.getLeftHeaderGroups=Ne(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?o:[];return vd(t,i,e,"left")},ke(e.options,pn)),e.getRightHeaderGroups=Ne(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var o;const i=(o=r==null?void 0:r.map(a=>n.find(c=>c.id===a)).filter(Boolean))!=null?o:[];return vd(t,i,e,"right")},ke(e.options,pn)),e.getFooterGroups=Ne(()=>[e.getHeaderGroups()],t=>[...t].reverse(),ke(e.options,pn)),e.getLeftFooterGroups=Ne(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),ke(e.options,pn)),e.getCenterFooterGroups=Ne(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),ke(e.options,pn)),e.getRightFooterGroups=Ne(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),ke(e.options,pn)),e.getFlatHeaders=Ne(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),ke(e.options,pn)),e.getLeftFlatHeaders=Ne(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),ke(e.options,pn)),e.getCenterFlatHeaders=Ne(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),ke(e.options,pn)),e.getRightFlatHeaders=Ne(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),ke(e.options,pn)),e.getCenterLeafHeaders=Ne(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),ke(e.options,pn)),e.getLeftLeafHeaders=Ne(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),ke(e.options,pn)),e.getRightLeafHeaders=Ne(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),ke(e.options,pn)),e.getLeafHeaders=Ne(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var o,i,a,c,u,f;return[...(o=(i=t[0])==null?void 0:i.headers)!=null?o:[],...(a=(c=n[0])==null?void 0:c.headers)!=null?a:[],...(u=(f=r[0])==null?void 0:f.headers)!=null?u:[]].map(h=>h.getLeafHeaders()).flat()},ke(e.options,pn))}};function vd(e,t,n,r){var o,i;let a=0;const c=function(v,x){x===void 0&&(x=1),a=Math.max(a,x),v.filter(w=>w.getIsVisible()).forEach(w=>{var b;(b=w.columns)!=null&&b.length&&c(w.columns,x+1)},0)};c(e);let u=[];const f=(v,x)=>{const w={depth:x,id:[r,`${x}`].filter(Boolean).join("_"),headers:[]},b=[];v.forEach(P=>{const C=[...b].reverse()[0],S=P.column.depth===w.depth;let E,_=!1;if(S&&P.column.parent?E=P.column.parent:(E=P.column,_=!0),C&&(C==null?void 0:C.column)===E)C.subHeaders.push(P);else{const D=LS(n,E,{id:[r,x,E.id,P==null?void 0:P.id].filter(Boolean).join("_"),isPlaceholder:_,placeholderId:_?`${b.filter(N=>N.column===E).length}`:void 0,depth:x,index:b.length});D.subHeaders.push(P),b.push(D)}w.headers.push(P),P.headerGroup=w}),u.push(w),x>0&&f(b,x-1)},h=t.map((v,x)=>LS(n,v,{depth:a,index:x}));f(h,a-1),u.reverse();const m=v=>v.filter(w=>w.column.getIsVisible()).map(w=>{let b=0,P=0,C=[0];w.subHeaders&&w.subHeaders.length?(C=[],m(w.subHeaders).forEach(E=>{let{colSpan:_,rowSpan:D}=E;b+=_,C.push(D)})):b=1;const S=Math.min(...C);return P=P+S,w.colSpan=b,w.rowSpan=P,{colSpan:b,rowSpan:P}});return m((o=(i=u[0])==null?void 0:i.headers)!=null?o:[]),u}const xd={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Rg=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Gz={getDefaultColumnDef:()=>xd,getInitialState:e=>({columnSizing:{},columnSizingInfo:Rg(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",columnResizeDirection:"ltr",onColumnSizingChange:ar("columnSizing",e),onColumnSizingInfoChange:ar("columnSizingInfo",e)}),createColumn:(e,t)=>{e.getSize=()=>{var n,r,o;const i=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:xd.minSize,(r=i??e.columnDef.size)!=null?r:xd.size),(o=e.columnDef.maxSize)!=null?o:xd.maxSize)},e.getStart=Ne(n=>[n,uc(t,n),t.getState().columnSizing],(n,r)=>r.slice(0,e.getIndex(n)).reduce((o,i)=>o+i.getSize(),0),ke(t.options,"debugColumns")),e.getAfter=Ne(n=>[n,uc(t,n),t.getState().columnSizing],(n,r)=>r.slice(e.getIndex(n)+1).reduce((o,i)=>o+i.getSize(),0),ke(t.options,"debugColumns")),e.resetSize=()=>{t.setColumnSizing(n=>{let{[e.id]:r,...o}=n;return o})},e.getCanResize=()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let n=0;const r=o=>{if(o.subHeaders.length)o.subHeaders.forEach(r);else{var i;n+=(i=o.column.getSize())!=null?i:0}};return r(e),n},e.getStart=()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},e.getResizeHandler=n=>{const r=t.getColumn(e.column.id),o=r==null?void 0:r.getCanResize();return i=>{if(!r||!o||(i.persist==null||i.persist(),_g(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),c=e?e.getLeafHeaders().map(C=>[C.column.id,C.column.getSize()]):[[r.id,r.getSize()]],u=_g(i)?Math.round(i.touches[0].clientX):i.clientX,f={},h=(C,S)=>{typeof S=="number"&&(t.setColumnSizingInfo(E=>{var _,D;const N=t.options.columnResizeDirection==="rtl"?-1:1,j=(S-((_=E==null?void 0:E.startOffset)!=null?_:0))*N,O=Math.max(j/((D=E==null?void 0:E.startSize)!=null?D:0),-.999999);return E.columnSizingStart.forEach(V=>{let[J,ie]=V;f[J]=Math.round(Math.max(ie+ie*O,0)*100)/100}),{...E,deltaOffset:j,deltaPercentage:O}}),(t.options.columnResizeMode==="onChange"||C==="end")&&t.setColumnSizing(E=>({...E,...f})))},m=C=>h("move",C),v=C=>{h("end",C),t.setColumnSizingInfo(S=>({...S,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},x=n||typeof document<"u"?document:null,w={moveHandler:C=>m(C.clientX),upHandler:C=>{x==null||x.removeEventListener("mousemove",w.moveHandler),x==null||x.removeEventListener("mouseup",w.upHandler),v(C.clientX)}},b={moveHandler:C=>(C.cancelable&&(C.preventDefault(),C.stopPropagation()),m(C.touches[0].clientX),!1),upHandler:C=>{var S;x==null||x.removeEventListener("touchmove",b.moveHandler),x==null||x.removeEventListener("touchend",b.upHandler),C.cancelable&&(C.preventDefault(),C.stopPropagation()),v((S=C.touches[0])==null?void 0:S.clientX)}},P=qz()?{passive:!1}:!1;_g(i)?(x==null||x.addEventListener("touchmove",b.moveHandler,P),x==null||x.addEventListener("touchend",b.upHandler,P)):(x==null||x.addEventListener("mousemove",w.moveHandler,P),x==null||x.addEventListener("mouseup",w.upHandler,P)),t.setColumnSizingInfo(C=>({...C,startOffset:u,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:c,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},e.resetHeaderSizeInfo=t=>{var n;e.setColumnSizingInfo(t?Rg():(n=e.initialState.columnSizingInfo)!=null?n:Rg())},e.getTotalSize=()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getLeftTotalSize=()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getCenterTotalSize=()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0},e.getRightTotalSize=()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,o)=>r+o.getSize(),0))!=null?t:0}}};let yd=null;function qz(){if(typeof yd=="boolean")return yd;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return yd=e,yd}function _g(e){return e.type==="touchstart"}const Yz={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:ar("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),e.toggleAllRowsExpanded=r=>{r??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=r=>{var o,i;e.setExpanded(r?{}:(o=(i=e.initialState)==null?void 0:i.expanded)!=null?o:{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(r=>r.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},e.getIsAllRowsExpanded=()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(o=>!o.getIsExpanded()))},e.getExpandedDepth=()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(i=>{const a=i.split(".");r=Math.max(r,a.length)}),r},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{var o;const i=r===!0?!0:!!(r!=null&&r[e.id]);let a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(c=>{a[c]=!0}):a=r,n=(o=n)!=null?o:!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){const{[e.id]:c,...u}=a;return u}return r})},e.getIsExpanded=()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||r!=null&&r[e.id])},e.getCanExpand=()=>{var n,r,o;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((o=e.subRows)!=null&&o.length)},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{const n=e.getCanExpand();return()=>{n&&e.toggleExpanded()}}}},l3=(e,t,n)=>{var r;const o=n.toLowerCase();return!!(!((r=e.getValue(t))==null||(r=r.toString())==null||(r=r.toLowerCase())==null)&&r.includes(o))};l3.autoRemove=e=>Kr(e);const c3=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};c3.autoRemove=e=>Kr(e);const u3=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===(n==null?void 0:n.toLowerCase())};u3.autoRemove=e=>Kr(e);const d3=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};d3.autoRemove=e=>Kr(e)||!(e!=null&&e.length);const f3=(e,t,n)=>!n.some(r=>{var o;return!((o=e.getValue(t))!=null&&o.includes(r))});f3.autoRemove=e=>Kr(e)||!(e!=null&&e.length);const p3=(e,t,n)=>n.some(r=>{var o;return(o=e.getValue(t))==null?void 0:o.includes(r)});p3.autoRemove=e=>Kr(e)||!(e!=null&&e.length);const h3=(e,t,n)=>e.getValue(t)===n;h3.autoRemove=e=>Kr(e);const g3=(e,t,n)=>e.getValue(t)==n;g3.autoRemove=e=>Kr(e);const a1=(e,t,n)=>{let[r,o]=n;const i=e.getValue(t);return i>=r&&i<=o};a1.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,o=typeof n!="number"?parseFloat(n):n,i=t===null||Number.isNaN(r)?-1/0:r,a=n===null||Number.isNaN(o)?1/0:o;if(i>a){const c=i;i=a,a=c}return[i,a]};a1.autoRemove=e=>Kr(e)||Kr(e[0])&&Kr(e[1]);const Ro={includesString:l3,includesStringSensitive:c3,equalsString:u3,arrIncludes:d3,arrIncludesAll:f3,arrIncludesSome:p3,equals:h3,weakEquals:g3,inNumberRange:a1};function Kr(e){return e==null||e===""}const Xz={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:ar("columnFilters",e),onGlobalFilterChange:ar("globalFilter",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n;const r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r=="string"||typeof r=="number"}}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?Ro.includesString:typeof r=="number"?Ro.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?Ro.equals:Array.isArray(r)?Ro.arrIncludes:Ro.weakEquals},e.getFilterFn=()=>{var n,r;return Sf(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:Ro[e.columnDef.filterFn]},e.getCanFilter=()=>{var n,r,o;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&!!e.accessorFn},e.getCanGlobalFilter=()=>{var n,r,o,i;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((o=t.options.enableFilters)!=null?o:!0)&&((i=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?i:!0)&&!!e.accessorFn},e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(r=>r.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.setFilterValue=n=>{t.setColumnFilters(r=>{const o=e.getFilterFn(),i=r==null?void 0:r.find(h=>h.id===e.id),a=$i(n,i?i.value:void 0);if(AS(o,a,e)){var c;return(c=r==null?void 0:r.filter(h=>h.id!==e.id))!=null?c:[]}const u={id:e.id,value:a};if(i){var f;return(f=r==null?void 0:r.map(h=>h.id===e.id?u:h))!=null?f:[]}return r!=null&&r.length?[...r,u]:[u]})},e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.getGlobalAutoFilterFn=()=>Ro.includesString,e.getGlobalFilterFn=()=>{var t,n;const{globalFilterFn:r}=e.options;return Sf(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:Ro[r]},e.setColumnFilters=t=>{const n=e.getAllLeafColumns(),r=o=>{var i;return(i=$i(t,o))==null?void 0:i.filter(a=>{const c=n.find(u=>u.id===a.id);if(c){const u=c.getFilterFn();if(AS(u,a.value,c))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},e.resetColumnFilters=t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}};function AS(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Qz=(e,t,n)=>n.reduce((r,o)=>{const i=o.getValue(e);return r+(typeof i=="number"?i:0)},0),Jz=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}),r},Zz=(e,t,n)=>{let r;return n.forEach(o=>{const i=o.getValue(e);i!=null&&(r<i||r===void 0&&i>=i)&&(r=i)}),r},eU=(e,t,n)=>{let r,o;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r===void 0?a>=a&&(r=o=a):(r>a&&(r=a),o<a&&(o=a)))}),[r,o]},tU=(e,t)=>{let n=0,r=0;if(t.forEach(o=>{let i=o.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},nU=(e,t)=>{if(!t.length)return;const n=t.map(i=>i.getValue(e));if(!Vz(n))return;if(n.length===1)return n[0];const r=Math.floor(n.length/2),o=n.sort((i,a)=>i-a);return n.length%2!==0?o[r]:(o[r-1]+o[r])/2},rU=(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),oU=(e,t)=>new Set(t.map(n=>n.getValue(e))).size,iU=(e,t)=>t.length,Ng={sum:Qz,min:Jz,max:Zz,extent:eU,mean:tU,median:nU,unique:rU,uniqueCount:oU,count:iU},sU={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:ar("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n??[],e.id])},e.getCanGroup=()=>{var n,r,o,i;return(n=(r=(o=(i=e.columnDef.enableGrouping)!=null?i:!0)!=null?o:t.options.enableGrouping)!=null?r:!0)!=null?n:!!e.accessorFn},e.getIsGrouped=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},e.getGroupedIndex=()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},e.getToggleGroupingHandler=()=>{const n=e.getCanGroup();return()=>{n&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Ng.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Ng.extent},e.getAggregationFn=()=>{var n,r;if(!e)throw new Error;return Sf(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Ng[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];const r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var o;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((o=n.subRows)!=null&&o.length)}}};function aU(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(i=>!t.includes(i.id));return n==="remove"?r:[...t.map(i=>e.find(a=>a.id===i)).filter(Boolean),...r]}const lU={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:ar("columnOrder",e)}),createColumn:(e,t)=>{e.getIndex=Ne(n=>[uc(t,n)],n=>n.findIndex(r=>r.id===e.id),ke(t.options,"debugColumns")),e.getIsFirstColumn=n=>{var r;return((r=uc(t,n)[0])==null?void 0:r.id)===e.id},e.getIsLastColumn=n=>{var r;const o=uc(t,n);return((r=o[o.length-1])==null?void 0:r.id)===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},e._getOrderColumnsFn=Ne(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>o=>{let i=[];if(!(t!=null&&t.length))i=o;else{const a=[...t],c=[...o];for(;c.length&&a.length;){const u=a.shift(),f=c.findIndex(h=>h.id===u);f>-1&&i.push(c.splice(f,1)[0])}i=[...i,...c]}return aU(i,n,r)},ke(e.options,"debugTable"))}},o0=0,i0=10,kg=()=>({pageIndex:o0,pageSize:i0}),cU={getInitialState:e=>({...e,pagination:{...kg(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:ar("pagination",e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{var r,o;if(!t){e._queue(()=>{t=!0});return}if((r=(o=e.options.autoResetAll)!=null?o:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=r=>{const o=i=>$i(r,i);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(o)},e.resetPagination=r=>{var o;e.setPagination(r?kg():(o=e.initialState.pagination)!=null?o:kg())},e.setPageIndex=r=>{e.setPagination(o=>{let i=$i(r,o.pageIndex);const a=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return i=Math.max(0,Math.min(i,a)),{...o,pageIndex:i}})},e.resetPageIndex=r=>{var o,i;e.setPageIndex(r?o0:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageIndex)!=null?o:o0)},e.resetPageSize=r=>{var o,i;e.setPageSize(r?i0:(o=(i=e.initialState)==null||(i=i.pagination)==null?void 0:i.pageSize)!=null?o:i0)},e.setPageSize=r=>{e.setPagination(o=>{const i=Math.max(1,$i(r,o.pageSize)),a=o.pageSize*o.pageIndex,c=Math.floor(a/i);return{...o,pageIndex:c,pageSize:i}})},e.setPageCount=r=>e.setPagination(o=>{var i;let a=$i(r,(i=e.options.pageCount)!=null?i:-1);return typeof a=="number"&&(a=Math.max(-1,a)),{...o,pageCount:a}}),e.getPageOptions=Ne(()=>[e.getPageCount()],r=>{let o=[];return r&&r>0&&(o=[...new Array(r)].fill(null).map((i,a)=>a)),o},ke(e.options,"debugTable")),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{const{pageIndex:r}=e.getState().pagination,o=e.getPageCount();return o===-1?!0:o===0?!1:r<o-1},e.previousPage=()=>e.setPageIndex(r=>r-1),e.nextPage=()=>e.setPageIndex(r=>r+1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}},Dg=()=>({left:[],right:[]}),jg=()=>({top:[],bottom:[]}),uU={getInitialState:e=>({columnPinning:Dg(),rowPinning:jg(),...e}),getDefaultOptions:e=>({onColumnPinningChange:ar("columnPinning",e),onRowPinningChange:ar("rowPinning",e)}),createColumn:(e,t)=>{e.pin=n=>{const r=e.getLeafColumns().map(o=>o.id).filter(Boolean);t.setColumnPinning(o=>{var i,a;if(n==="right"){var c,u;return{left:((c=o==null?void 0:o.left)!=null?c:[]).filter(m=>!(r!=null&&r.includes(m))),right:[...((u=o==null?void 0:o.right)!=null?u:[]).filter(m=>!(r!=null&&r.includes(m))),...r]}}if(n==="left"){var f,h;return{left:[...((f=o==null?void 0:o.left)!=null?f:[]).filter(m=>!(r!=null&&r.includes(m))),...r],right:((h=o==null?void 0:o.right)!=null?h:[]).filter(m=>!(r!=null&&r.includes(m)))}}return{left:((i=o==null?void 0:o.left)!=null?i:[]).filter(m=>!(r!=null&&r.includes(m))),right:((a=o==null?void 0:o.right)!=null?a:[]).filter(m=>!(r!=null&&r.includes(m)))}})},e.getCanPin=()=>e.getLeafColumns().some(r=>{var o,i,a;return((o=r.columnDef.enablePinning)!=null?o:!0)&&((i=(a=t.options.enableColumnPinning)!=null?a:t.options.enablePinning)!=null?i:!0)}),e.getIsPinned=()=>{const n=e.getLeafColumns().map(c=>c.id),{left:r,right:o}=t.getState().columnPinning,i=n.some(c=>r==null?void 0:r.includes(c)),a=n.some(c=>o==null?void 0:o.includes(c));return i?"left":a?"right":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(r=r[o])==null?void 0:r.indexOf(e.id))!=null?n:-1:0}},createRow:(e,t)=>{e.pin=(n,r,o)=>{const i=r?e.getLeafRows().map(u=>{let{id:f}=u;return f}):[],a=o?e.getParentRows().map(u=>{let{id:f}=u;return f}):[],c=new Set([...a,e.id,...i]);t.setRowPinning(u=>{var f,h;if(n==="bottom"){var m,v;return{top:((m=u==null?void 0:u.top)!=null?m:[]).filter(b=>!(c!=null&&c.has(b))),bottom:[...((v=u==null?void 0:u.bottom)!=null?v:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)]}}if(n==="top"){var x,w;return{top:[...((x=u==null?void 0:u.top)!=null?x:[]).filter(b=>!(c!=null&&c.has(b))),...Array.from(c)],bottom:((w=u==null?void 0:u.bottom)!=null?w:[]).filter(b=>!(c!=null&&c.has(b)))}}return{top:((f=u==null?void 0:u.top)!=null?f:[]).filter(b=>!(c!=null&&c.has(b))),bottom:((h=u==null?void 0:u.bottom)!=null?h:[]).filter(b=>!(c!=null&&c.has(b)))}})},e.getCanPin=()=>{var n;const{enableRowPinning:r,enablePinning:o}=t.options;return typeof r=="function"?r(e):(n=r??o)!=null?n:!0},e.getIsPinned=()=>{const n=[e.id],{top:r,bottom:o}=t.getState().rowPinning,i=n.some(c=>r==null?void 0:r.includes(c)),a=n.some(c=>o==null?void 0:o.includes(c));return i?"top":a?"bottom":!1},e.getPinnedIndex=()=>{var n,r;const o=e.getIsPinned();if(!o)return-1;const i=(n=t._getPinnedRows(o))==null?void 0:n.map(a=>{let{id:c}=a;return c});return(r=i==null?void 0:i.indexOf(e.id))!=null?r:-1},e.getCenterVisibleCells=Ne(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,o)=>{const i=[...r??[],...o??[]];return n.filter(a=>!i.includes(a.column.id))},ke(t.options,"debugRows")),e.getLeftVisibleCells=Ne(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"left"})),ke(t.options,"debugRows")),e.getRightVisibleCells=Ne(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r??[]).map(i=>n.find(a=>a.column.id===i)).filter(Boolean).map(i=>({...i,position:"right"})),ke(t.options,"debugRows"))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>{var n,r;return e.setColumnPinning(t?Dg():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Dg())},e.getIsSomeColumnsPinned=t=>{var n;const r=e.getState().columnPinning;if(!t){var o,i;return!!((o=r.left)!=null&&o.length||(i=r.right)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e.getLeftLeafColumns=Ne(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),ke(e.options,"debugColumns")),e.getRightLeafColumns=Ne(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n??[]).map(r=>t.find(o=>o.id===r)).filter(Boolean),ke(e.options,"debugColumns")),e.getCenterLeafColumns=Ne(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const o=[...n??[],...r??[]];return t.filter(i=>!o.includes(i.id))},ke(e.options,"debugColumns")),e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>{var n,r;return e.setRowPinning(t?jg():(n=(r=e.initialState)==null?void 0:r.rowPinning)!=null?n:jg())},e.getIsSomeRowsPinned=t=>{var n;const r=e.getState().rowPinning;if(!t){var o,i;return!!((o=r.top)!=null&&o.length||(i=r.bottom)!=null&&i.length)}return!!((n=r[t])!=null&&n.length)},e._getPinnedRows=Ne(t=>[e.getRowModel().rows,e.getState().rowPinning[t],t],(t,n,r)=>{var o;return((o=e.options.keepPinnedRows)==null||o?(n??[]).map(a=>{const c=e.getRow(a,!0);return c.getIsAllParentsExpanded()?c:null}):(n??[]).map(a=>t.find(c=>c.id===a))).filter(Boolean).map(a=>({...a,position:r}))},ke(e.options,"debugRows")),e.getTopRows=()=>e._getPinnedRows("top"),e.getBottomRows=()=>e._getPinnedRows("bottom"),e.getCenterRows=Ne(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(t,n,r)=>{const o=new Set([...n??[],...r??[]]);return t.filter(i=>!o.has(i.id))},ke(e.options,"debugRows"))}},dU={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:ar("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},o=e.getPreGroupedRowModel().flatRows;return t?o.forEach(i=>{i.getCanSelect()&&(r[i.id]=!0)}):o.forEach(i=>{delete r[i.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),o={...n};return e.getRowModel().rows.forEach(i=>{s0(o,i.id,r,!0,e)}),o}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=Ne(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Mg(e,n):{rows:[],flatRows:[],rowsById:{}},ke(e.options,"debugTable")),e.getFilteredSelectedRowModel=Ne(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Mg(e,n):{rows:[],flatRows:[],rowsById:{}},ke(e.options,"debugTable")),e.getGroupedSelectedRowModel=Ne(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Mg(e,n):{rows:[],flatRows:[],rowsById:{}},ke(e.options,"debugTable")),e.getIsAllRowsSelected=()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!(t.length&&Object.keys(n).length);return r&&t.some(o=>o.getCanSelect()&&!n[o.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows.filter(o=>o.getCanSelect()),{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(o=>!n[o.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(n=>n.getCanSelect()).some(n=>n.getIsSelected()||n.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{const o=e.getIsSelected();t.setRowSelection(i=>{var a;if(n=typeof n<"u"?n:!o,e.getCanSelect()&&o===n)return i;const c={...i};return s0(c,e.id,n,(a=r==null?void 0:r.selectChildren)!=null?a:!0,t),c})},e.getIsSelected=()=>{const{rowSelection:n}=t.getState();return l1(e,n)},e.getIsSomeSelected=()=>{const{rowSelection:n}=t.getState();return a0(e,n)==="some"},e.getIsAllSubRowsSelected=()=>{const{rowSelection:n}=t.getState();return a0(e,n)==="all"},e.getCanSelect=()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},e.getCanSelectSubRows=()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},e.getCanMultiSelect=()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},e.getToggleSelectedHandler=()=>{const n=e.getCanSelect();return r=>{var o;n&&e.toggleSelected((o=r.target)==null?void 0:o.checked)}}}},s0=(e,t,n,r,o)=>{var i;const a=o.getRow(t,!0);n?(a.getCanMultiSelect()||Object.keys(e).forEach(c=>delete e[c]),a.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(c=>s0(e,c.id,n,r,o))};function Mg(e,t){const n=e.getState().rowSelection,r=[],o={},i=function(a,c){return a.map(u=>{var f;const h=l1(u,n);if(h&&(r.push(u),o[u.id]=u),(f=u.subRows)!=null&&f.length&&(u={...u,subRows:i(u.subRows)}),h)return u}).filter(Boolean)};return{rows:i(t.rows),flatRows:r,rowsById:o}}function l1(e,t){var n;return(n=t[e.id])!=null?n:!1}function a0(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let o=!0,i=!1;return e.subRows.forEach(a=>{if(!(i&&!o)&&(a.getCanSelect()&&(l1(a,t)?i=!0:o=!1),a.subRows&&a.subRows.length)){const c=a0(a,t);c==="all"?i=!0:(c==="some"&&(i=!0),o=!1)}}),o?"all":i?"some":!1}const l0=/([0-9]+)/gm,fU=(e,t,n)=>m3(Fi(e.getValue(n)).toLowerCase(),Fi(t.getValue(n)).toLowerCase()),pU=(e,t,n)=>m3(Fi(e.getValue(n)),Fi(t.getValue(n))),hU=(e,t,n)=>c1(Fi(e.getValue(n)).toLowerCase(),Fi(t.getValue(n)).toLowerCase()),gU=(e,t,n)=>c1(Fi(e.getValue(n)),Fi(t.getValue(n))),mU=(e,t,n)=>{const r=e.getValue(n),o=t.getValue(n);return r>o?1:r<o?-1:0},vU=(e,t,n)=>c1(e.getValue(n),t.getValue(n));function c1(e,t){return e===t?0:e>t?1:-1}function Fi(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function m3(e,t){const n=e.split(l0).filter(Boolean),r=t.split(l0).filter(Boolean);for(;n.length&&r.length;){const o=n.shift(),i=r.shift(),a=parseInt(o,10),c=parseInt(i,10),u=[a,c].sort();if(isNaN(u[0])){if(o>i)return 1;if(i>o)return-1;continue}if(isNaN(u[1]))return isNaN(a)?-1:1;if(a>c)return 1;if(c>a)return-1}return n.length-r.length}const Kl={alphanumeric:fU,alphanumericCaseSensitive:pU,text:hU,textCaseSensitive:gU,datetime:mU,basic:vU},xU={getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto",sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:ar("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const o of n){const i=o==null?void 0:o.getValue(e.id);if(Object.prototype.toString.call(i)==="[object Date]")return Kl.datetime;if(typeof i=="string"&&(r=!0,i.split(l0).length>1))return Kl.alphanumeric}return r?Kl.text:Kl.basic},e.getAutoSortDir=()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},e.getSortingFn=()=>{var n,r;if(!e)throw new Error;return Sf(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:Kl[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{const o=e.getNextSortingOrder(),i=typeof n<"u"&&n!==null;t.setSorting(a=>{const c=a==null?void 0:a.find(x=>x.id===e.id),u=a==null?void 0:a.findIndex(x=>x.id===e.id);let f=[],h,m=i?n:o==="desc";if(a!=null&&a.length&&e.getCanMultiSort()&&r?c?h="toggle":h="add":a!=null&&a.length&&u!==a.length-1?h="replace":c?h="toggle":h="replace",h==="toggle"&&(i||o||(h="remove")),h==="add"){var v;f=[...a,{id:e.id,desc:m}],f.splice(0,f.length-((v=t.options.maxMultiSortColCount)!=null?v:Number.MAX_SAFE_INTEGER))}else h==="toggle"?f=a.map(x=>x.id===e.id?{...x,desc:m}:x):h==="remove"?f=a.filter(x=>x.id!==e.id):f=[{id:e.id,desc:m}];return f})},e.getFirstSortDir=()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},e.getNextSortingOrder=n=>{var r,o;const i=e.getFirstSortDir(),a=e.getIsSorted();return a?a!==i&&((r=t.options.enableSortingRemoval)==null||r)&&(!(n&&(o=t.options.enableMultiRemove)!=null)||o)?!1:a==="desc"?"asc":"desc":i},e.getCanSort=()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},e.getCanMultiSort=()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},e.getIsSorted=()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(o=>o.id===e.id);return r?r.desc?"desc":"asc":!1},e.getSortIndex=()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(o=>o.id===e.id))!=null?n:-1},e.clearSorting=()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},e.getToggleSortingHandler=()=>{const n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},yU={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:ar("columnVisibility",e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{var n,r;return(n=(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},e.getCanHide=()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},e.getToggleVisibilityHandler=()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=Ne(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),ke(t.options,"debugRows")),e.getVisibleCells=Ne(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,o)=>[...n,...r,...o],ke(t.options,"debugRows"))},createTable:e=>{const t=(n,r)=>Ne(()=>[r(),r().filter(o=>o.getIsVisible()).map(o=>o.id).join("_")],o=>o.filter(i=>i.getIsVisible==null?void 0:i.getIsVisible()),ke(e.options,"debugColumns"));e.getVisibleFlatColumns=t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),e.setColumnVisibility=n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),e.resetColumnVisibility=n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},e.toggleAllColumnsVisible=n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((o,i)=>({...o,[i.id]:n||!(i.getCanHide!=null&&i.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}};function uc(e,t){return t?t==="center"?e.getCenterVisibleLeafColumns():t==="left"?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}const FS=[Kz,yU,lU,uU,Xz,xU,sU,Yz,cU,dU,Gz];function wU(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:FS};const r=n._features.reduce((h,m)=>Object.assign(h,m.getDefaultOptions==null?void 0:m.getDefaultOptions(n)),{}),o=h=>n.options.mergeOptions?n.options.mergeOptions(r,h):{...r,...h};let a={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(h=>{var m;a=(m=h.getInitialState==null?void 0:h.getInitialState(a))!=null?m:a});const c=[];let u=!1;const f={_features:FS,options:{...r,...e},initialState:a,_queue:h=>{c.push(h),u||(u=!0,Promise.resolve().then(()=>{for(;c.length;)c.shift()();u=!1}).catch(m=>setTimeout(()=>{throw m})))},reset:()=>{n.setState(n.initialState)},setOptions:h=>{const m=$i(h,n.options);n.options=o(m)},getState:()=>n.options.state,setState:h=>{n.options.onStateChange==null||n.options.onStateChange(h)},_getRowId:(h,m,v)=>{var x;return(x=n.options.getRowId==null?void 0:n.options.getRowId(h,m,v))!=null?x:`${v?[v.id,m].join("."):m}`},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:(h,m)=>{let v=(m?n.getPrePaginationRowModel():n.getRowModel()).rowsById[h];if(!v&&(v=n.getCoreRowModel().rowsById[h],!v))throw new Error;return v},_getDefaultColumnDef:Ne(()=>[n.options.defaultColumn],h=>{var m;return h=(m=h)!=null?m:{},{header:v=>{const x=v.header.column.columnDef;return x.accessorKey?x.accessorKey:x.accessorFn?x.id:null},cell:v=>{var x,w;return(x=(w=v.renderValue())==null||w.toString==null?void 0:w.toString())!=null?x:null},...n._features.reduce((v,x)=>Object.assign(v,x.getDefaultColumnDef==null?void 0:x.getDefaultColumnDef()),{}),...h}},ke(e,"debugColumns")),_getColumnDefs:()=>n.options.columns,getAllColumns:Ne(()=>[n._getColumnDefs()],h=>{const m=function(v,x,w){return w===void 0&&(w=0),v.map(b=>{const P=Wz(n,b,w,x),C=b;return P.columns=C.columns?m(C.columns,P,w+1):[],P})};return m(h)},ke(e,"debugColumns")),getAllFlatColumns:Ne(()=>[n.getAllColumns()],h=>h.flatMap(m=>m.getFlatColumns()),ke(e,"debugColumns")),_getAllFlatColumnsById:Ne(()=>[n.getAllFlatColumns()],h=>h.reduce((m,v)=>(m[v.id]=v,m),{}),ke(e,"debugColumns")),getAllLeafColumns:Ne(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(h,m)=>{let v=h.flatMap(x=>x.getLeafColumns());return m(v)},ke(e,"debugColumns")),getColumn:h=>n._getAllFlatColumnsById()[h]};Object.assign(n,f);for(let h=0;h<n._features.length;h++){const m=n._features[h];m==null||m.createTable==null||m.createTable(n)}return n}function bU(e,t,n,r){const o=()=>{var a;return(a=i.getValue())!=null?a:e.options.renderFallbackValue},i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:o,getContext:Ne(()=>[e,n,t,i],(a,c,u,f)=>({table:a,column:c,row:u,cell:f,getValue:f.getValue,renderValue:f.renderValue}),ke(e.options,"debugCells"))};return e._features.forEach(a=>{a.createCell==null||a.createCell(i,n,t,e)},{}),i}const u1=(e,t,n,r,o,i,a)=>{let c={id:t,index:r,original:n,depth:o,parentId:a,_valuesCache:{},_uniqueValuesCache:{},getValue:u=>{if(c._valuesCache.hasOwnProperty(u))return c._valuesCache[u];const f=e.getColumn(u);if(f!=null&&f.accessorFn)return c._valuesCache[u]=f.accessorFn(c.original,r),c._valuesCache[u]},getUniqueValues:u=>{if(c._uniqueValuesCache.hasOwnProperty(u))return c._uniqueValuesCache[u];const f=e.getColumn(u);if(f!=null&&f.accessorFn)return f.columnDef.getUniqueValues?(c._uniqueValuesCache[u]=f.columnDef.getUniqueValues(c.original,r),c._uniqueValuesCache[u]):(c._uniqueValuesCache[u]=[c.getValue(u)],c._uniqueValuesCache[u])},renderValue:u=>{var f;return(f=c.getValue(u))!=null?f:e.options.renderFallbackValue},subRows:i??[],getLeafRows:()=>Hz(c.subRows,u=>u.subRows),getParentRow:()=>c.parentId?e.getRow(c.parentId,!0):void 0,getParentRows:()=>{let u=[],f=c;for(;;){const h=f.getParentRow();if(!h)break;u.push(h),f=h}return u.reverse()},getAllCells:Ne(()=>[e.getAllLeafColumns()],u=>u.map(f=>bU(e,c,f,f.id)),ke(e.options,"debugRows")),_getAllCellsByColumnId:Ne(()=>[c.getAllCells()],u=>u.reduce((f,h)=>(f[h.column.id]=h,f),{}),ke(e.options,"debugRows"))};for(let u=0;u<e._features.length;u++){const f=e._features[u];f==null||f.createRow==null||f.createRow(c,e)}return c};function d1(){return e=>Ne(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(o,i,a){i===void 0&&(i=0);const c=[];for(let f=0;f<o.length;f++){const h=u1(e,e._getRowId(o[f],f,a),o[f],f,i,void 0,a==null?void 0:a.id);if(n.flatRows.push(h),n.rowsById[h.id]=h,c.push(h),e.options.getSubRows){var u;h.originalSubRows=e.options.getSubRows(o[f],f),(u=h.originalSubRows)!=null&&u.length&&(h.subRows=r(h.originalSubRows,i+1,h))}}return c};return n.rows=r(t),n},ke(e.options,"debugTable","getRowModel",()=>e._autoResetPageIndex()))}function v3(e,t,n){return n.options.filterFromLeafRows?SU(e,t,n):CU(e,t,n)}function SU(e,t,n){var r;const o=[],i={},a=(r=n.options.maxLeafRowFilterDepth)!=null?r:100,c=function(u,f){f===void 0&&(f=0);const h=[];for(let v=0;v<u.length;v++){var m;let x=u[v];const w=u1(n,x.id,x.original,x.index,x.depth,void 0,x.parentId);if(w.columnFilters=x.columnFilters,(m=x.subRows)!=null&&m.length&&f<a){if(w.subRows=c(x.subRows,f+1),x=w,t(x)&&!w.subRows.length){h.push(x),i[x.id]=x,o.push(x);continue}if(t(x)||w.subRows.length){h.push(x),i[x.id]=x,o.push(x);continue}}else x=w,t(x)&&(h.push(x),i[x.id]=x,o.push(x))}return h};return{rows:c(e),flatRows:o,rowsById:i}}function CU(e,t,n){var r;const o=[],i={},a=(r=n.options.maxLeafRowFilterDepth)!=null?r:100,c=function(u,f){f===void 0&&(f=0);const h=[];for(let v=0;v<u.length;v++){let x=u[v];if(t(x)){var m;if((m=x.subRows)!=null&&m.length&&f<a){const b=u1(n,x.id,x.original,x.index,x.depth,void 0,x.parentId);b.subRows=c(x.subRows,f+1),x=b}h.push(x),o.push(x),i[x.id]=x}}return h};return{rows:c(e),flatRows:o,rowsById:i}}function f1(){return e=>Ne(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter],(t,n,r)=>{if(!t.rows.length||!(n!=null&&n.length)&&!r){for(let v=0;v<t.flatRows.length;v++)t.flatRows[v].columnFilters={},t.flatRows[v].columnFiltersMeta={};return t}const o=[],i=[];(n??[]).forEach(v=>{var x;const w=e.getColumn(v.id);if(!w)return;const b=w.getFilterFn();b&&o.push({id:v.id,filterFn:b,resolvedValue:(x=b.resolveFilterValue==null?void 0:b.resolveFilterValue(v.value))!=null?x:v.value})});const a=n.map(v=>v.id),c=e.getGlobalFilterFn(),u=e.getAllLeafColumns().filter(v=>v.getCanGlobalFilter());r&&c&&u.length&&(a.push("__global__"),u.forEach(v=>{var x;i.push({id:v.id,filterFn:c,resolvedValue:(x=c.resolveFilterValue==null?void 0:c.resolveFilterValue(r))!=null?x:r})}));let f,h;for(let v=0;v<t.flatRows.length;v++){const x=t.flatRows[v];if(x.columnFilters={},o.length)for(let w=0;w<o.length;w++){f=o[w];const b=f.id;x.columnFilters[b]=f.filterFn(x,b,f.resolvedValue,P=>{x.columnFiltersMeta[b]=P})}if(i.length){for(let w=0;w<i.length;w++){h=i[w];const b=h.id;if(h.filterFn(x,b,h.resolvedValue,P=>{x.columnFiltersMeta[b]=P})){x.columnFilters.__global__=!0;break}}x.columnFilters.__global__!==!0&&(x.columnFilters.__global__=!1)}}const m=v=>{for(let x=0;x<a.length;x++)if(v.columnFilters[a[x]]===!1)return!1;return!0};return v3(t.rows,m,e)},ke(e.options,"debugTable","getFilteredRowModel",()=>e._autoResetPageIndex()))}function p1(){return(e,t)=>Ne(()=>[e.getPreFilteredRowModel(),e.getState().columnFilters,e.getState().globalFilter,e.getFilteredRowModel()],(n,r,o)=>{if(!n.rows.length||!(r!=null&&r.length)&&!o)return n;const i=[...r.map(c=>c.id).filter(c=>c!==t),o?"__global__":void 0].filter(Boolean),a=c=>{for(let u=0;u<i.length;u++)if(c.columnFilters[i[u]]===!1)return!1;return!0};return v3(n.rows,a,e)},ke(e.options,"debugTable"))}function h1(){return(e,t)=>Ne(()=>{var n;return[(n=e.getColumn(t))==null?void 0:n.getFacetedRowModel()]},n=>{if(!n)return new Map;let r=new Map;for(let i=0;i<n.flatRows.length;i++){const a=n.flatRows[i].getUniqueValues(t);for(let c=0;c<a.length;c++){const u=a[c];if(r.has(u)){var o;r.set(u,((o=r.get(u))!=null?o:0)+1)}else r.set(u,1)}}return r},ke(e.options,"debugTable"))}function g1(){return e=>Ne(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,o=[],i=r.filter(u=>{var f;return(f=e.getColumn(u.id))==null?void 0:f.getCanSort()}),a={};i.forEach(u=>{const f=e.getColumn(u.id);f&&(a[u.id]={sortUndefined:f.columnDef.sortUndefined,invertSorting:f.columnDef.invertSorting,sortingFn:f.getSortingFn()})});const c=u=>{const f=u.map(h=>({...h}));return f.sort((h,m)=>{for(let x=0;x<i.length;x+=1){var v;const w=i[x],b=a[w.id],P=(v=w==null?void 0:w.desc)!=null?v:!1;let C=0;if(b.sortUndefined){const S=h.getValue(w.id),E=m.getValue(w.id),_=S===void 0,D=E===void 0;(_||D)&&(C=_&&D?0:_?b.sortUndefined:-b.sortUndefined)}if(C===0&&(C=b.sortingFn(h,m,w.id)),C!==0)return P&&(C*=-1),b.invertSorting&&(C*=-1),C}return h.index-m.index}),f.forEach(h=>{var m;o.push(h),(m=h.subRows)!=null&&m.length&&(h.subRows=c(h.subRows))}),f};return{rows:c(n.rows),flatRows:o,rowsById:n.rowsById}},ke(e.options,"debugTable","getSortedRowModel",()=>e._autoResetPageIndex()))}/** - * react-table - * - * Copyright (c) TanStack - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Ya(e,t){return e?$U(e)?p.createElement(e,t):e:null}function $U(e){return PU(e)||typeof e=="function"||EU(e)}function PU(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function EU(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function m1(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=p.useState(()=>({current:wU(t)})),[r,o]=p.useState(()=>n.current.initialState);return n.current.setOptions(i=>({...i,...e,state:{...r,...e.state},onStateChange:a=>{o(a),e.onStateChange==null||e.onStateChange(a)}})),n.current}const dp=p.forwardRef(({className:e,...t},n)=>d.jsx("table",{ref:n,className:se("w-full caption-bottom text-sm",e),...t}));dp.displayName="Table";const fp=p.forwardRef(({className:e,...t},n)=>d.jsx("thead",{ref:n,className:se("sticky top-0 bg-secondary [&_tr]:border-b",e),...t}));fp.displayName="TableHeader";const pp=p.forwardRef(({className:e,...t},n)=>d.jsx("tbody",{ref:n,className:se("[&_tr:last-child]:border-0",e),...t}));pp.displayName="TableBody";const RU=p.forwardRef(({className:e,...t},n)=>d.jsx("tfoot",{ref:n,className:se("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));RU.displayName="TableFooter";const uo=p.forwardRef(({className:e,...t},n)=>d.jsx("tr",{ref:n,className:se("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));uo.displayName="TableRow";const hp=p.forwardRef(({className:e,...t},n)=>d.jsx("th",{ref:n,className:se("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",e),...t}));hp.displayName="TableHead";const Ns=p.forwardRef(({className:e,...t},n)=>d.jsx("td",{ref:n,className:se("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));Ns.displayName="TableCell";const _U=p.forwardRef(({className:e,...t},n)=>d.jsx("caption",{ref:n,className:se("mt-4 text-sm text-muted-foreground",e),...t}));_U.displayName="TableCaption";const qt=p.forwardRef(({className:e,type:t,...n},r)=>d.jsx("input",{type:t,className:se("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-blue-500 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));qt.displayName="Input";const c0="horizontal",NU=["horizontal","vertical"],x3=p.forwardRef((e,t)=>{const{decorative:n,orientation:r=c0,...o}=e,i=y3(r)?r:c0,c=n?{role:"none"}:{"aria-orientation":i==="vertical"?i:void 0,role:"separator"};return p.createElement(Oe.div,q({"data-orientation":i},c,o,{ref:t}))});x3.propTypes={orientation(e,t,n){const r=e[t],o=String(r);return r&&!y3(r)?new Error(kU(o,n)):null}};function kU(e,t){return`Invalid prop \`orientation\` of value \`${e}\` supplied to \`${t}\`, expected one of: - - horizontal - - vertical - -Defaulting to \`${c0}\`.`}function y3(e){return NU.includes(e)}const w3=x3,b3=p.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},o)=>d.jsx(w3,{ref:o,decorative:n,orientation:t,className:se("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));b3.displayName=w3.displayName;function ms({column:e,title:t,options:n}){const r=e==null?void 0:e.getFacetedUniqueValues(),o=new Set(e==null?void 0:e.getFilterValue());return d.jsxs(RE,{children:[d.jsx(_E,{asChild:!0,children:d.jsxs(at,{variant:"outline",size:"sm",className:"h-10 border-dashed",children:[d.jsx(xI,{className:"mr-2 h-4 w-4"}),t,(o==null?void 0:o.size)>0&&d.jsxs(d.Fragment,{children:[d.jsx(b3,{orientation:"vertical",className:"mx-2 h-4"}),d.jsx(Fn,{variant:"secondary",className:"rounded-sm px-1 font-normal lg:hidden",children:o.size}),d.jsx("div",{className:"hidden space-x-1 lg:flex",children:o.size>2?d.jsxs(Fn,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:[o.size," selected"]}):n.filter(i=>o.has(i.value)).map(i=>d.jsx(Fn,{variant:"secondary",className:"rounded-sm px-1 font-normal",children:i.label},i.value))})]})]})}),d.jsx(Gv,{className:"w-[200px] p-0",align:"start",children:d.jsxs(Tv,{children:[d.jsx(Iv,{placeholder:t}),d.jsxs(oE,{children:[d.jsx(Ov,{children:"No results found."}),d.jsx(gf,{children:n.map(i=>{const a=o.has(i.value);return d.jsxs(mf,{onSelect:()=>{a?o.delete(i.value):o.add(i.value);const c=Array.from(o);e==null||e.setFilterValue(c.length?c:void 0)},children:[d.jsx("div",{className:se("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",a?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:d.jsx(Gf,{className:se("h-4 w-4")})}),i.icon&&d.jsx(i.icon,{className:"mr-2 h-4 w-4 text-muted-foreground"}),d.jsx("span",{children:i.label}),(r==null?void 0:r.get(i.value))&&d.jsx("span",{className:"ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs",children:r.get(i.value)})]},i.value)})}),o.size>0&&d.jsxs(d.Fragment,{children:[d.jsx(iE,{}),d.jsx(gf,{children:d.jsx(mf,{onSelect:()=>e==null?void 0:e.setFilterValue(void 0),className:"justify-center text-center",children:"Clear filters"})})]})]})]})})]})}function DU({table:e,items:t}){var a;const n=e.getState().columnFilters.length>0,r=[...new Set(t.map(c=>c.Device))].map(c=>({label:c.split("/")[0],value:c})),o=[...new Set(t.map(c=>c.Component))].map(c=>({label:c,value:c})),i=[...new Set(t.map(c=>c.Type))].map(c=>({label:c,value:c}));return d.jsx("div",{className:"flex items-center justify-between",children:d.jsxs("div",{className:"flex flex-1 items-center space-x-2",children:[d.jsx(qt,{placeholder:"Filter items...",value:((a=e.getColumn("Description"))==null?void 0:a.getFilterValue())??"",onChange:c=>{var u;return(u=e.getColumn("Description"))==null?void 0:u.setFilterValue(c.target.value)},className:"h-8 w-[150px] lg:w-[250px]"}),e.getColumn("Device")&&d.jsx(ms,{column:e.getColumn("Device"),title:"Devices",options:r}),e.getColumn("Component")&&d.jsx(ms,{column:e.getColumn("Component"),title:"Component",options:o}),e.getColumn("Type")&&d.jsx(ms,{column:e.getColumn("Type"),title:"Types",options:i}),n&&d.jsxs(at,{variant:"ghost",onClick:()=>e.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:["Reset",d.jsx(Yf,{className:"ml-2 h-4 w-4"})]})]})})}function jU({columns:e,data:t}){var f;const[n,r]=p.useState([]),[o,i]=p.useState([]),[a,c]=p.useState({Type:!1}),u=m1({data:t,columns:e,onSortingChange:r,onColumnFiltersChange:i,onColumnVisibilityChange:c,getCoreRowModel:d1(),getSortedRowModel:g1(),getFilteredRowModel:f1(),getFacetedRowModel:p1(),getFacetedUniqueValues:h1(),state:{sorting:n,columnFilters:o,columnVisibility:a},defaultColumn:{size:10,minSize:1,maxSize:250}});return d.jsxs("div",{className:"flex flex-col gap-4 grow overflow-y-auto",children:[d.jsx("div",{className:"px-1 py-2",children:d.jsx(DU,{table:u,items:t})}),d.jsx("div",{className:"flex flex-col grow overflow-y-auto border rounded-lg",children:d.jsxs(dp,{className:"table-fixed",children:[d.jsx(fp,{className:"group/header",children:u.getHeaderGroups().map(h=>d.jsx(uo,{className:"",children:h.headers.map(m=>{var v,x;return d.jsx(hp,{className:`z-50 sticky top-0 ${((x=(v=m.column.columnDef)==null?void 0:v.meta)==null?void 0:x.className)??""}`,children:m.isPlaceholder?null:Ya(m.column.columnDef.header,m.getContext())},m.id)})},h.id))}),d.jsx(pp,{className:"overflow-y-auto",children:(f=u.getRowModel().rows)!=null&&f.length?u.getRowModel().rows.map(h=>d.jsx(uo,{"data-state":h.getIsSelected()&&"selected",children:h.getVisibleCells().map(m=>{var v,x;return d.jsx(Ns,{className:`${(x=(v=m.column.columnDef)==null?void 0:v.meta)==null?void 0:x.className}`,children:Ya(m.column.columnDef.cell,m.getContext())},m.id)})},h.id)):d.jsx(uo,{children:d.jsx(Ns,{colSpan:e.length,className:"h-24 text-center",children:"No results."})})})]})})]})}const u0=["Enter"," "],MU=["ArrowDown","PageUp","Home"],S3=["ArrowUp","PageDown","End"],TU=[...MU,...S3],IU={ltr:[...u0,"ArrowRight"],rtl:[...u0,"ArrowLeft"]},OU={ltr:["ArrowLeft"],rtl:["ArrowRight"]},gp="Menu",[Ac,LU,AU]=r1(gp),[Is,C3]=ur(gp,[AU,sl,up]),v1=sl(),$3=up(),[FU,Os]=Is(gp),[zU,eu]=Is(gp),UU=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:i,modal:a=!0}=e,c=v1(t),[u,f]=p.useState(null),h=p.useRef(!1),m=Zt(i),v=Zc(o);return p.useEffect(()=>{const x=()=>{h.current=!0,document.addEventListener("pointerdown",w,{capture:!0,once:!0}),document.addEventListener("pointermove",w,{capture:!0,once:!0})},w=()=>h.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",w,{capture:!0}),document.removeEventListener("pointermove",w,{capture:!0})}},[]),p.createElement(Vv,c,p.createElement(FU,{scope:t,open:n,onOpenChange:m,content:u,onContentChange:f},p.createElement(zU,{scope:t,onClose:p.useCallback(()=>m(!1),[m]),isUsingKeyboardRef:h,dir:v,modal:a},r)))},P3=p.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=v1(n);return p.createElement(Hv,q({},o,r,{ref:t}))}),E3="MenuPortal",[BU,R3]=Is(E3,{forceMount:void 0}),VU=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,i=Os(E3,t);return p.createElement(BU,{scope:t,forceMount:n},p.createElement(Dn,{present:n||i.open},p.createElement(tp,{asChild:!0,container:o},r)))},Gr="MenuContent",[HU,x1]=Is(Gr),WU=p.forwardRef((e,t)=>{const n=R3(Gr,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=Os(Gr,e.__scopeMenu),a=eu(Gr,e.__scopeMenu);return p.createElement(Ac.Provider,{scope:e.__scopeMenu},p.createElement(Dn,{present:r||i.open},p.createElement(Ac.Slot,{scope:e.__scopeMenu},a.modal?p.createElement(KU,q({},o,{ref:t})):p.createElement(GU,q({},o,{ref:t})))))}),KU=p.forwardRef((e,t)=>{const n=Os(Gr,e.__scopeMenu),r=p.useRef(null),o=Ze(t,r);return p.useEffect(()=>{const i=r.current;if(i)return Yc(i)},[]),p.createElement(y1,q({},e,{ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:he(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)}))}),GU=p.forwardRef((e,t)=>{const n=Os(Gr,e.__scopeMenu);return p.createElement(y1,q({},e,{ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)}))}),y1=p.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:c,onEntryFocus:u,onEscapeKeyDown:f,onPointerDownOutside:h,onFocusOutside:m,onInteractOutside:v,onDismiss:x,disableOutsideScroll:w,...b}=e,P=Os(Gr,n),C=eu(Gr,n),S=v1(n),E=$3(n),_=LU(n),[D,N]=p.useState(null),j=p.useRef(null),O=Ze(t,j,P.onContentChange),V=p.useRef(0),J=p.useRef(""),ie=p.useRef(0),te=p.useRef(null),ge=p.useRef("right"),le=p.useRef(0),T=w?op:p.Fragment,W=w?{as:Vo,allowPinchZoom:!0}:void 0,Y=B=>{var L,H;const oe=J.current+B,ne=_().filter(Fe=>!Fe.disabled),fe=document.activeElement,Se=(L=ne.find(Fe=>Fe.ref.current===fe))===null||L===void 0?void 0:L.textValue,me=ne.map(Fe=>Fe.textValue),pe=cB(me,oe,Se),Te=(H=ne.find(Fe=>Fe.textValue===pe))===null||H===void 0?void 0:H.ref.current;(function Fe(We){J.current=We,window.clearTimeout(V.current),We!==""&&(V.current=window.setTimeout(()=>Fe(""),1e3))})(oe),Te&&setTimeout(()=>Te.focus())};p.useEffect(()=>()=>window.clearTimeout(V.current),[]),np();const U=p.useCallback(B=>{var L,H;return ge.current===((L=te.current)===null||L===void 0?void 0:L.side)&&dB(B,(H=te.current)===null||H===void 0?void 0:H.area)},[]);return p.createElement(HU,{scope:n,searchRef:J,onItemEnter:p.useCallback(B=>{U(B)&&B.preventDefault()},[U]),onItemLeave:p.useCallback(B=>{var L;U(B)||((L=j.current)===null||L===void 0||L.focus(),N(null))},[U]),onTriggerLeave:p.useCallback(B=>{U(B)&&B.preventDefault()},[U]),pointerGraceTimerRef:ie,onPointerGraceIntentChange:p.useCallback(B=>{te.current=B},[])},p.createElement(T,W,p.createElement(ep,{asChild:!0,trapped:o,onMountAutoFocus:he(i,B=>{var L;B.preventDefault(),(L=j.current)===null||L===void 0||L.focus()}),onUnmountAutoFocus:a},p.createElement(Zf,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:f,onPointerDownOutside:h,onFocusOutside:m,onInteractOutside:v,onDismiss:x},p.createElement(JE,q({asChild:!0},E,{dir:C.dir,orientation:"vertical",loop:r,currentTabStopId:D,onCurrentTabStopIdChange:N,onEntryFocus:he(u,B=>{C.isUsingKeyboardRef.current||B.preventDefault()})}),p.createElement(Wv,q({role:"menu","aria-orientation":"vertical","data-state":j3(P.open),"data-radix-menu-content":"",dir:C.dir},S,b,{ref:O,style:{outline:"none",...b.style},onKeyDown:he(b.onKeyDown,B=>{const H=B.target.closest("[data-radix-menu-content]")===B.currentTarget,oe=B.ctrlKey||B.altKey||B.metaKey,ne=B.key.length===1;H&&(B.key==="Tab"&&B.preventDefault(),!oe&&ne&&Y(B.key));const fe=j.current;if(B.target!==fe||!TU.includes(B.key))return;B.preventDefault();const me=_().filter(pe=>!pe.disabled).map(pe=>pe.ref.current);S3.includes(B.key)&&me.reverse(),aB(me)}),onBlur:he(e.onBlur,B=>{B.currentTarget.contains(B.target)||(window.clearTimeout(V.current),J.current="")}),onPointerMove:he(e.onPointerMove,Fc(B=>{const L=B.target,H=le.current!==B.clientX;if(B.currentTarget.contains(L)&&H){const oe=B.clientX>le.current?"right":"left";ge.current=oe,le.current=B.clientX}}))})))))))}),qU=p.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return p.createElement(Oe.div,q({},r,{ref:t}))}),d0="MenuItem",zS="menu.itemSelect",w1=p.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,i=p.useRef(null),a=eu(d0,e.__scopeMenu),c=x1(d0,e.__scopeMenu),u=Ze(t,i),f=p.useRef(!1),h=()=>{const m=i.current;if(!n&&m){const v=new CustomEvent(zS,{bubbles:!0,cancelable:!0});m.addEventListener(zS,x=>r==null?void 0:r(x),{once:!0}),K$(m,v),v.defaultPrevented?f.current=!1:a.onClose()}};return p.createElement(_3,q({},o,{ref:u,disabled:n,onClick:he(e.onClick,h),onPointerDown:m=>{var v;(v=e.onPointerDown)===null||v===void 0||v.call(e,m),f.current=!0},onPointerUp:he(e.onPointerUp,m=>{var v;f.current||(v=m.currentTarget)===null||v===void 0||v.click()}),onKeyDown:he(e.onKeyDown,m=>{const v=c.searchRef.current!=="";n||v&&m.key===" "||u0.includes(m.key)&&(m.currentTarget.click(),m.preventDefault())})}))}),_3=p.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...i}=e,a=x1(d0,n),c=$3(n),u=p.useRef(null),f=Ze(t,u),[h,m]=p.useState(!1),[v,x]=p.useState("");return p.useEffect(()=>{const w=u.current;if(w){var b;x(((b=w.textContent)!==null&&b!==void 0?b:"").trim())}},[i.children]),p.createElement(Ac.ItemSlot,{scope:n,disabled:r,textValue:o??v},p.createElement(ZE,q({asChild:!0},c,{focusable:!r}),p.createElement(Oe.div,q({role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0},i,{ref:f,onPointerMove:he(e.onPointerMove,Fc(w=>{r?a.onItemLeave(w):(a.onItemEnter(w),w.defaultPrevented||w.currentTarget.focus())})),onPointerLeave:he(e.onPointerLeave,Fc(w=>a.onItemLeave(w))),onFocus:he(e.onFocus,()=>m(!0)),onBlur:he(e.onBlur,()=>m(!1))}))))}),YU=p.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return p.createElement(k3,{scope:e.__scopeMenu,checked:n},p.createElement(w1,q({role:"menuitemcheckbox","aria-checked":Cf(n)?"mixed":n},o,{ref:t,"data-state":b1(n),onSelect:he(o.onSelect,()=>r==null?void 0:r(Cf(n)?!0:!n),{checkForDefaultPrevented:!1})})))}),XU="MenuRadioGroup",[HW,QU]=Is(XU,{value:void 0,onValueChange:()=>{}}),JU="MenuRadioItem",ZU=p.forwardRef((e,t)=>{const{value:n,...r}=e,o=QU(JU,e.__scopeMenu),i=n===o.value;return p.createElement(k3,{scope:e.__scopeMenu,checked:i},p.createElement(w1,q({role:"menuitemradio","aria-checked":i},r,{ref:t,"data-state":b1(i),onSelect:he(r.onSelect,()=>{var a;return(a=o.onValueChange)===null||a===void 0?void 0:a.call(o,n)},{checkForDefaultPrevented:!1})})))}),N3="MenuItemIndicator",[k3,eB]=Is(N3,{checked:!1}),tB=p.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,i=eB(N3,n);return p.createElement(Dn,{present:r||Cf(i.checked)||i.checked===!0},p.createElement(Oe.span,q({},o,{ref:t,"data-state":b1(i.checked)})))}),nB=p.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return p.createElement(Oe.div,q({role:"separator","aria-orientation":"horizontal"},r,{ref:t}))}),rB="MenuSub",[WW,D3]=Is(rB),wd="MenuSubTrigger",oB=p.forwardRef((e,t)=>{const n=Os(wd,e.__scopeMenu),r=eu(wd,e.__scopeMenu),o=D3(wd,e.__scopeMenu),i=x1(wd,e.__scopeMenu),a=p.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:u}=i,f={__scopeMenu:e.__scopeMenu},h=p.useCallback(()=>{a.current&&window.clearTimeout(a.current),a.current=null},[]);return p.useEffect(()=>h,[h]),p.useEffect(()=>{const m=c.current;return()=>{window.clearTimeout(m),u(null)}},[c,u]),p.createElement(P3,q({asChild:!0},f),p.createElement(_3,q({id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":j3(n.open)},e,{ref:Wf(t,o.onTriggerChange),onClick:m=>{var v;(v=e.onClick)===null||v===void 0||v.call(e,m),!(e.disabled||m.defaultPrevented)&&(m.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:he(e.onPointerMove,Fc(m=>{i.onItemEnter(m),!m.defaultPrevented&&!e.disabled&&!n.open&&!a.current&&(i.onPointerGraceIntentChange(null),a.current=window.setTimeout(()=>{n.onOpenChange(!0),h()},100))})),onPointerLeave:he(e.onPointerLeave,Fc(m=>{var v;h();const x=(v=n.content)===null||v===void 0?void 0:v.getBoundingClientRect();if(x){var w;const b=(w=n.content)===null||w===void 0?void 0:w.dataset.side,P=b==="right",C=P?-5:5,S=x[P?"left":"right"],E=x[P?"right":"left"];i.onPointerGraceIntentChange({area:[{x:m.clientX+C,y:m.clientY},{x:S,y:x.top},{x:E,y:x.top},{x:E,y:x.bottom},{x:S,y:x.bottom}],side:b}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(m),m.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:he(e.onKeyDown,m=>{const v=i.searchRef.current!=="";if(!(e.disabled||v&&m.key===" ")&&IU[r.dir].includes(m.key)){var x;n.onOpenChange(!0),(x=n.content)===null||x===void 0||x.focus(),m.preventDefault()}})})))}),iB="MenuSubContent",sB=p.forwardRef((e,t)=>{const n=R3(Gr,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,i=Os(Gr,e.__scopeMenu),a=eu(Gr,e.__scopeMenu),c=D3(iB,e.__scopeMenu),u=p.useRef(null),f=Ze(t,u);return p.createElement(Ac.Provider,{scope:e.__scopeMenu},p.createElement(Dn,{present:r||i.open},p.createElement(Ac.Slot,{scope:e.__scopeMenu},p.createElement(y1,q({id:c.contentId,"aria-labelledby":c.triggerId},o,{ref:f,align:"start",side:a.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:h=>{var m;a.isUsingKeyboardRef.current&&((m=u.current)===null||m===void 0||m.focus()),h.preventDefault()},onCloseAutoFocus:h=>h.preventDefault(),onFocusOutside:he(e.onFocusOutside,h=>{h.target!==c.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:he(e.onEscapeKeyDown,h=>{a.onClose(),h.preventDefault()}),onKeyDown:he(e.onKeyDown,h=>{const m=h.currentTarget.contains(h.target),v=OU[a.dir].includes(h.key);if(m&&v){var x;i.onOpenChange(!1),(x=c.trigger)===null||x===void 0||x.focus(),h.preventDefault()}})})))))});function j3(e){return e?"open":"closed"}function Cf(e){return e==="indeterminate"}function b1(e){return Cf(e)?"indeterminate":e?"checked":"unchecked"}function aB(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function lB(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function cB(e,t,n){const o=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let a=lB(e,Math.max(i,0));o.length===1&&(a=a.filter(f=>f!==n));const u=a.find(f=>f.toLowerCase().startsWith(o.toLowerCase()));return u!==n?u:void 0}function uB(e,t){const{x:n,y:r}=e;let o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){const c=t[i].x,u=t[i].y,f=t[a].x,h=t[a].y;u>r!=h>r&&n<(f-c)*(r-u)/(h-u)+c&&(o=!o)}return o}function dB(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return uB(n,t)}function Fc(e){return t=>t.pointerType==="mouse"?e(t):void 0}const fB=UU,pB=P3,hB=VU,gB=WU,mB=qU,vB=w1,xB=YU,yB=ZU,wB=tB,bB=nB,SB=oB,CB=sB,M3="DropdownMenu",[$B,KW]=ur(M3,[C3]),kr=C3(),[PB,T3]=$B(M3),EB=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:i,onOpenChange:a,modal:c=!0}=e,u=kr(t),f=p.useRef(null),[h=!1,m]=Ii({prop:o,defaultProp:i,onChange:a});return p.createElement(PB,{scope:t,triggerId:co(),triggerRef:f,contentId:co(),open:h,onOpenChange:m,onOpenToggle:p.useCallback(()=>m(v=>!v),[m]),modal:c},p.createElement(fB,q({},u,{open:h,onOpenChange:m,dir:r,modal:c}),n))},RB="DropdownMenuTrigger",I3=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,i=T3(RB,n),a=kr(n);return p.createElement(pB,q({asChild:!0},a),p.createElement(Oe.button,q({type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":r?"":void 0,disabled:r},o,{ref:Wf(t,i.triggerRef),onPointerDown:he(e.onPointerDown,c=>{!r&&c.button===0&&c.ctrlKey===!1&&(i.onOpenToggle(),i.open||c.preventDefault())}),onKeyDown:he(e.onKeyDown,c=>{r||(["Enter"," "].includes(c.key)&&i.onOpenToggle(),c.key==="ArrowDown"&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(c.key)&&c.preventDefault())})})))}),_B=e=>{const{__scopeDropdownMenu:t,...n}=e,r=kr(t);return p.createElement(hB,q({},r,n))},NB="DropdownMenuContent",kB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=T3(NB,n),i=kr(n),a=p.useRef(!1);return p.createElement(gB,q({id:o.contentId,"aria-labelledby":o.triggerId},i,r,{ref:t,onCloseAutoFocus:he(e.onCloseAutoFocus,c=>{var u;a.current||(u=o.triggerRef.current)===null||u===void 0||u.focus(),a.current=!1,c.preventDefault()}),onInteractOutside:he(e.onInteractOutside,c=>{const u=c.detail.originalEvent,f=u.button===0&&u.ctrlKey===!0,h=u.button===2||f;(!o.modal||h)&&(a.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))}),DB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(mB,q({},o,r,{ref:t}))}),jB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(vB,q({},o,r,{ref:t}))}),MB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(xB,q({},o,r,{ref:t}))}),TB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(yB,q({},o,r,{ref:t}))}),IB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(wB,q({},o,r,{ref:t}))}),OB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(bB,q({},o,r,{ref:t}))}),LB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(SB,q({},o,r,{ref:t}))}),AB=p.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=kr(n);return p.createElement(CB,q({},o,r,{ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}}))}),FB=EB,zB=I3,UB=_B,O3=kB,L3=DB,A3=jB,F3=MB,z3=TB,U3=IB,B3=OB,V3=LB,H3=AB,S1=FB,W3=zB,BB=p.forwardRef(({className:e,inset:t,children:n,...r},o)=>d.jsxs(V3,{ref:o,className:se("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",t&&"pl-8",e),...r,children:[n,d.jsx(vI,{className:"ml-auto h-4 w-4"})]}));BB.displayName=V3.displayName;const VB=p.forwardRef(({className:e,...t},n)=>d.jsx(H3,{ref:n,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));VB.displayName=H3.displayName;const mp=p.forwardRef(({className:e,sideOffset:t=4,...n},r)=>d.jsx(UB,{children:d.jsx(O3,{ref:r,sideOffset:t,className:se("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));mp.displayName=O3.displayName;const hn=p.forwardRef(({className:e,inset:t,...n},r)=>d.jsx(A3,{ref:r,className:se("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));hn.displayName=A3.displayName;const HB=p.forwardRef(({className:e,children:t,checked:n,...r},o)=>d.jsxs(F3,{ref:o,className:se("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[d.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:d.jsx(U3,{children:d.jsx(Gf,{className:"h-4 w-4"})})}),t]}));HB.displayName=F3.displayName;const WB=p.forwardRef(({className:e,children:t,...n},r)=>d.jsxs(z3,{ref:r,className:se("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[d.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:d.jsx(U3,{children:d.jsx(yI,{className:"h-2 w-2 fill-current"})})}),t]}));WB.displayName=z3.displayName;const dc=p.forwardRef(({className:e,inset:t,...n},r)=>d.jsx(L3,{ref:r,className:se("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...n}));dc.displayName=L3.displayName;const Ia=p.forwardRef(({className:e,...t},n)=>d.jsx(B3,{ref:n,className:se("-mx-1 my-1 h-px bg-muted",e),...t}));Ia.displayName=B3.displayName;const KB=e=>{const t=se("stroke-current fill-current ",e.className);return d.jsx("svg",{className:t,id:"icon_device_analog",width:"24",height:"24",version:"1.1",viewBox:"0 0 24 24",children:d.jsx("g",{transform:"translate(247 -655)",children:d.jsxs("g",{id:"icon_in_analog",transform:"translate(1.1176e-5 -24)",children:[d.jsx("path",{d:"m-235 685c-3.3019 0-6 2.6981-6 6 0 3.3018 2.6981 6 6 6 3.3018 0 6-2.6982 6-6 0-1.2863-0.41034-2.4798-1.1055-3.459-0.0806 0.0689-0.15094 0.13071-0.19726 0.17578l-3.5 3.4102c-0.39587 0.3851-1.029 0.37634-1.4141-0.0195-0.38509-0.39587-0.37633-1.029 0.0195-1.4141l3.5-3.4082c0.0419-0.0408 0.0989-0.10623 0.16016-0.17579-0.98006-0.69704-2.1746-1.1094-3.4629-1.1094z",stroke:"none",strokeLinecap:"round",strokeLinejoin:"round"}),d.jsx("path",{d:"m-241.36 697.36a9 9 0 0 1 0-12.728 9 9 0 0 1 12.728 0 9 9 0 0 1 0 12.728",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})]})})})},GB=e=>{const t=se("stroke-current fill-current ",e.className);return d.jsxs("svg",{className:t,id:"SVGRoot",width:"24",height:"24",version:"1.1",viewBox:"0 0 24 24",children:[d.jsx("path",{d:"m15.414 6.9269a1 1 0 0 0-0.70703 0.29297 1 1 0 0 0 0 1.4141l3.293 3.293-3.293 3.293a1 1 0 0 0 0 1.4141 1 1 0 0 0 0.81836 0.28516 1 1 0 0 0 0.5957-0.28516l4-4a1 1 0 0 0 0.05664-0.06055 1 1 0 0 0-0.05664-1.3535l-4-4a1 1 0 0 0-0.70703-0.29297z",stroke:"none"}),d.jsx("path",{d:"m9.4138 6.9269a1 1 0 0 0-0.70703 0.29297 1 1 0 0 0 0 1.4141l3.293 3.293-3.293 3.293a1 1 0 0 0 0 1.4141 1 1 0 0 0 1.4141 0l4-4a1 1 0 0 0 0.05664-0.06055 1 1 0 0 0-0.05664-1.3535l-4-4a1 1 0 0 0-0.70703-0.29297z",stroke:"none"}),d.jsx("path",{d:"m5.3535 2.9269a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-16a1 1 0 0 0-1-1z",stroke:"none"})]})},qB=e=>{const t=se("stroke-current fill-current ",e.className);return d.jsxs("svg",{className:t,id:"SVGRoot",width:"24",height:"24",version:"1.1",viewBox:"0 0 24 24",children:[d.jsx("path",{d:"m5.2924 7.0005a1 1 0 0 1 0.70703 0.29297l4 4a1 1 0 0 1 0.13867 1.2383 1 1 0 0 1-0.13867 0.17578l-4 4a1 1 0 0 1-1.4141 0 1 1 0 0 1 0-1.4141l3.293-3.293-3.293-3.293a1 1 0 0 1 0-1.4141 1 1 0 0 1 0.70703-0.29297z",stroke:"none"}),d.jsx("path",{d:"m11.292 7.0005a1 1 0 0 1 0.70703 0.29297l4 4a1 1 0 0 1 0 1.4141l-4 4a1 1 0 0 1-1.4141 0 1 1 0 0 1 0-1.4141l3.293-3.293-3.293-3.293a1 1 0 0 1 0-1.4141 1 1 0 0 1 0.70703-0.29297z",stroke:"none"}),d.jsx("path",{d:"m19 3.0005a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-16a1 1 0 0 0-1-1z",stroke:"none"})]})},YB=e=>{const t=se("stroke-current fill-current ",e.className);return d.jsx("svg",{className:t,id:"SVGRoot",width:"6.35mm",height:"6.35mm",version:"1.1",viewBox:"0 0 24 24",children:d.jsx("path",{d:"m18 2.0006a3 3 0 0 0-2.8242 1.998h-2.332c-1.9106 0-3.1917 0.80732-4.2207 1.9258-0.74301 0.80766-1.4651 1.7715-2.5742 2.9258a3.25 3.25 0 0 0-0.79883-0.099615 3.25 3.25 0 0 0-3.25 3.25 3.25 3.25 0 0 0 3.25 3.25 3.25 3.25 0 0 0 0.79688-0.10155c1.1143 1.1581 1.8389 2.1217 2.582 2.9297 1.0276 1.1174 2.3052 1.9219 4.2148 1.9219h2.332a3 3 0 0 0 0.24999 0.52929 3 3 0 0 0 0.02925 0.0489 3 3 0 0 0 0.34766 0.45898 3 3 0 0 0 0.02145 0.02145 3 3 0 0 0 0.43946 0.38672 3 3 0 0 0 0.0075 6e-3 3 3 0 0 0 0.4961 0.27734 3 3 0 0 0 0.0684 0.0312 3 3 0 0 0 0.52539 0.16797 3 3 0 0 0 0.07035 0.012 3 3 0 0 0 0.56836 0.0606 3 3 0 0 0 0.53126-0.05265 3 3 0 0 0 0.09375-0.01755 3 3 0 0 0 0.49218-0.1485 3 3 0 0 0 0.084-0.039 3 3 0 0 0 0.4375-0.23438 3 3 0 0 0 0.0351-0.02145 3 3 0 0 0 0.4043-0.33008 3 3 0 0 0 0.07815-0.07815 3 3 0 0 0 0.32618-0.39844 3 3 0 0 0 0.03315-0.05265 3 3 0 0 0 0.22461-0.41992 3 3 0 0 0 0.0429-0.09375 3 3 0 0 0 0.1446-0.48438 3 3 0 0 0 0.0195-0.0996 3 3 0 0 0 0.0528-0.5293 3 3 0 0 0-0.05865-0.58593 3 3 0 0 0-0.16797-0.55665 3 3 0 0 0-0.0015-6e-3 3 3 0 0 0-0.0015-6e-3 3 3 0 0 0-0.27538-0.51171 3 3 0 0 0-0.37305-0.45508 3 3 0 0 0-0.45507-0.37305 3 3 0 0 0-0.51172-0.27538 3 3 0 0 0-6e-3 -0.0015 3 3 0 0 0-6e-3 -0.0015 3 3 0 0 0-0.55665-0.16796 3 3 0 0 0-0.58593-0.05865 3 3 0 0 0-0.58398 0.0606 3 3 0 0 0-0.0429 0.0105 3 3 0 0 0-0.5371 0.16992 3 3 0 0 0-0.0684 0.0312 3 3 0 0 0-0.4961 0.2793 3 3 0 0 0-0.0015 0 3 3 0 0 0-0.0045 0.0015 3 3 0 0 0-0.45704 0.40234 3 3 0 0 0-0.35742 0.4707 3 3 0 0 0-0.0234 0.0411 3 3 0 0 0-0.25196 0.5332h-2.332c-1.4643 0-1.8704-0.32546-2.7441-1.2754-0.58306-0.63398-1.2853-1.5536-2.3359-2.6738a3.25 3.25 0 0 0 0.64844-1.3008h6.6855a3 3 0 0 0 2.9024 2.25 3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-2.9024 2.25h-6.6855a3.25 3.25 0 0 0-0.64258-1.3047c1.0456-1.1158 1.7435-2.0346 2.3262-2.668 0.87509-0.95124 1.2847-1.2773 2.748-1.2773h2.332a3 3 0 0 0 2.8241 1.9984 3 3 0 0 0 3-3 3 3 0 0 0-3-3zm0.084 2.082a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.91602 0.91666 0.91666 0 0 1-0.91797-0.91602 0.91666 0.91666 0 0 1 0.91797-0.91797zm-12.834 6.668a1.25 1.25 0 0 1 1.25 1.25 1.25 1.25 0 0 1-1.25 1.25 1.25 1.25 0 0 1-1.25-1.25 1.25 1.25 0 0 1 1.25-1.25zm12.834 0.33204a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.916 0.91666 0.91666 0 0 1-0.91797-0.916 0.91666 0.91666 0 0 1 0.91797-0.91797zm0 7a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.91602 0.91666 0.91666 0 0 1-0.91797-0.91602 0.91666 0.91666 0 0 1 0.91797-0.91797z",strokeLinecap:"round",strokeLinejoin:"round",stroke:"none"})})},vp=e=>{const{variant:t,disabled:n,className:r}=e;let o=d.jsx(MI,{className:r});return t==="Output"?o=d.jsx(mI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)}):t==="LedModule"?o=d.jsx(lI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)}):t==="LcdDisplay"?o=d.jsx(cI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)}):t==="ShiftRegister"?o=d.jsx(GB,{className:se("stroke-pink-600 fill-pink-600",n?"stroke-slate-400 fill-slate-400":"",r)}):t==="Stepper"?o=d.jsx(CI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)}):t==="Servo"?o=d.jsx(wI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)}):t==="Button"?o=d.jsx(jI,{className:se("stroke-teal-600",n?"stroke-slate-400":"",r)}):t==="Encoder"?o=d.jsx(TI,{className:se("stroke-teal-600",n?"stroke-slate-400":"",r)}):t==="AnalogInput"?o=d.jsx(KB,{className:se("stroke-teal-600 fill-teal-600 stroke-2",n?"stroke-slate-400 fill-slate-400":"",r)}):t==="InputShiftRegister"?o=d.jsx(qB,{className:se("stroke-teal-600 fill-teal-600",n?"stroke-slate-400 fill-slate-400":"",r)}):t==="InputMultiplexer"?o=d.jsx(YB,{className:se("stroke-teal-600 fill-teal-600",n?"stroke-slate-400 fill-slate-400":"",r)}):t==="CustomDevice"&&(o=d.jsx(dI,{className:se("stroke-pink-600",n?"stroke-slate-400":"",r)})),d.jsx("div",{className:"inline-block",children:o})},XB=[{accessorKey:"Active",meta:{className:"w-[80px]"},header:()=>d.jsx("div",{className:"text-center",children:"Active"}),cell:({row:e})=>d.jsx("div",{className:"text-center",children:d.jsx(Wt,{className:"dark:bg-gray-800 dark:data-[state=checked]:bg-gray-700",checked:e.getValue("Active")})})},{accessorKey:"Description",meta:{className:"hidden xl:table-cell"},cell:({row:e})=>{const t=e.getValue("Description");return d.jsx("div",{children:d.jsx("p",{className:"font-semibold",children:t})})},header:({column:e})=>d.jsxs("div",{className:"flex items-center gap-4",children:[d.jsx("span",{children:"Description"}),d.jsx(at,{className:"p-1 h-auto w-auto",variant:"ghost",onClick:()=>e.toggleSorting(e.getIsSorted()==="asc"),children:d.jsx(aP,{className:"h-4 w-4"})})]})},{meta:{className:"w-[200px]"},accessorKey:"Device",header:()=>d.jsx("div",{children:"Device"}),cell:({row:e})=>{const t=e.getValue("Device").split("/")[0],n=e.getValue("Device").split("/")[1];return d.jsxs(d.Fragment,{children:[d.jsx("p",{className:"text-md font-semibold truncate",children:t}),d.jsx("p",{className:"text-xs text-muted-foreground truncate",children:n})]})},filterFn:(e,t,n)=>n.includes(e.getValue(t))},{meta:{className:"w-[200px]"},accessorKey:"Component",header:"Component",cell:({row:e})=>{const t=e.getValue("Component"),n=e.getValue("Type"),r=d.jsx(vp,{variant:n??"default"});return d.jsxs("div",{className:"flex flex-row items-center gap-2",children:[d.jsx("div",{children:r}),d.jsxs("div",{className:"flex flex-col",children:[d.jsx("p",{className:"text-md font-semibold truncate",children:t}),d.jsx("p",{className:"text-xs text-muted-foreground truncate",children:n})]})]})},filterFn:(e,t,n)=>n.includes(e.getValue(t))},{meta:{className:"w-20"},accessorKey:"Type",header:()=>d.jsx("div",{children:"Type"}),cell:({row:e})=>{const t=e.getValue("Type");return d.jsx("p",{className:"text-md font-semibold",children:t})},filterFn:(e,t,n)=>n.includes(e.getValue(t))},{meta:{className:"hidden 2xl:table-cell w-[150px] 3xl:w-[250px]"},accessorKey:"Tags",header:()=>d.jsx("div",{children:"Tags"}),cell:({row:e})=>{const t=e.getValue("Tags");return t!=""?d.jsx("p",{className:"text-md font-semibold",children:t}):d.jsx("div",{className:"text-xs text-muted-foreground",children:d.jsx(Fn,{children:"Default"})})}},{meta:{className:"w-[120px]"},accessorKey:"Status",header:"Status",cell:({row:e})=>{const t=e.getValue("Status");return t!=""?d.jsx("p",{className:"text-md font-semibold",children:t}):d.jsx("div",{className:"text-xs text-muted-foreground",children:d.jsx(Fn,{className:"dark:border-green-600 dark:text-green-500 bg-green-600",children:"normal"})})}},{meta:{className:"w-[120px]"},accessorKey:"RawValue",header:"Raw Value",cell:({row:e})=>{const t=e.getValue("RawValue");return d.jsx("div",{className:"text-md truncate",children:t})}},{meta:{className:"w-[120px]"},accessorKey:"ModifiedValue",header:"Final Value",cell:({row:e})=>{const t=e.getValue("ModifiedValue");return d.jsx("div",{className:"text-md truncate",children:t})}},{meta:{className:"w-[80px]"},id:"actions",cell:({row:e})=>{const t=e.original,n=tl(),r=Hi();return d.jsx("div",{className:"relative",children:d.jsxs(S1,{children:[d.jsx(I3,{asChild:!0,children:d.jsxs(at,{variant:"ghost",className:"h-8 w-8 p-0",children:[d.jsx("span",{className:"sr-only",children:"Open menu"}),d.jsx(cP,{className:"h-4 w-4"})]})}),d.jsxs(mp,{align:"end",children:[d.jsx(dc,{children:"Actions"}),d.jsx(hn,{onClick:()=>{const o=`/projects/${n.id}/configs/${t.GUID}`;console.log(o),r(o)},children:"Edit"}),d.jsx(Ia,{}),d.jsx(hn,{children:"Duplicate"}),d.jsx(hn,{children:"Copy"}),d.jsx(hn,{children:"Paste"}),d.jsx(Ia,{}),d.jsx(hn,{children:"Test"})]})]})})}}],QB=()=>{const e=tl(),{items:t}=qa(),n=cp.find(r=>r.id===e.id);return d.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto",children:[d.jsxs("div",{className:"flex flex-row gap-4 items-center",children:[d.jsx(tr,{to:"/",className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Project"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:(n==null?void 0:n.name)??"Default"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0 font-bold",children:"Configs"}),d.jsx(uP,{})]}),d.jsxs(a3,{defaultValue:"config-1",className:"grow flex flex-col overflow-y-auto",children:[d.jsx("div",{children:d.jsxs(s1,{className:"mb-4 mt-0",children:[d.jsx(Ci,{value:"config-1",children:"Config one"}),d.jsx(Ci,{value:"config-2",children:"Autopilot"}),d.jsx(Ci,{value:"config-3",children:"Radio"})]})}),d.jsx(Ea,{value:"config-1",className:"mt-0 flex flex-col grow overflow-y-auto",children:d.jsx(jU,{columns:XB,data:t})})]})]})},ps=p.forwardRef((e,t)=>p.createElement(Oe.label,q({},e,{ref:t,onMouseDown:n=>{var r;(r=e.onMouseDown)===null||r===void 0||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault()}}))),K3=ps,JB="/assets/msfs2020-logo-BXS3GGap.png",C1="/assets/mobiflight-logo-border-DSJoqCyo.png",ZB="/assets/hand-flipping-switch-BavH9Bvp.png",eV=p.forwardRef((e,t)=>p.createElement(Oe.span,q({},e,{ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}))),tV=[" ","Enter","ArrowUp","ArrowDown"],nV=[" ","Enter"],xp="Select",[yp,wp,rV]=r1(xp),[ll,GW]=ur(xp,[rV,sl]),$1=sl(),[oV,Ls]=ll(xp),[iV,sV]=ll(xp),aV=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:o,onOpenChange:i,value:a,defaultValue:c,onValueChange:u,dir:f,name:h,autoComplete:m,disabled:v,required:x}=e,w=$1(t),[b,P]=p.useState(null),[C,S]=p.useState(null),[E,_]=p.useState(!1),D=Zc(f),[N=!1,j]=Ii({prop:r,defaultProp:o,onChange:i}),[O,V]=Ii({prop:a,defaultProp:c,onChange:u}),J=p.useRef(null),ie=b?!!b.closest("form"):!0,[te,ge]=p.useState(new Set),le=Array.from(te).map(T=>T.props.value).join(";");return p.createElement(Vv,w,p.createElement(oV,{required:x,scope:t,trigger:b,onTriggerChange:P,valueNode:C,onValueNodeChange:S,valueNodeHasChildren:E,onValueNodeHasChildrenChange:_,contentId:co(),value:O,onValueChange:V,open:N,onOpenChange:j,dir:D,triggerPointerDownPosRef:J,disabled:v},p.createElement(yp.Provider,{scope:t},p.createElement(iV,{scope:e.__scopeSelect,onNativeOptionAdd:p.useCallback(T=>{ge(W=>new Set(W).add(T))},[]),onNativeOptionRemove:p.useCallback(T=>{ge(W=>{const Y=new Set(W);return Y.delete(T),Y})},[])},n)),ie?p.createElement(Q3,{key:le,"aria-hidden":!0,required:x,tabIndex:-1,name:h,autoComplete:m,value:O,onChange:T=>V(T.target.value),disabled:v},O===void 0?p.createElement("option",{value:""}):null,Array.from(te)):null))},lV="SelectTrigger",cV=p.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...o}=e,i=$1(n),a=Ls(lV,n),c=a.disabled||r,u=Ze(t,a.onTriggerChange),f=wp(n),[h,m,v]=J3(w=>{const b=f().filter(S=>!S.disabled),P=b.find(S=>S.value===a.value),C=Z3(b,w,P);C!==void 0&&a.onValueChange(C.value)}),x=()=>{c||(a.onOpenChange(!0),v())};return p.createElement(Hv,q({asChild:!0},i),p.createElement(Oe.button,q({type:"button",role:"combobox","aria-controls":a.contentId,"aria-expanded":a.open,"aria-required":a.required,"aria-autocomplete":"none",dir:a.dir,"data-state":a.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":X3(a.value)?"":void 0},o,{ref:u,onClick:he(o.onClick,w=>{w.currentTarget.focus()}),onPointerDown:he(o.onPointerDown,w=>{const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&(x(),a.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)},w.preventDefault())}),onKeyDown:he(o.onKeyDown,w=>{const b=h.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&m(w.key),!(b&&w.key===" ")&&tV.includes(w.key)&&(x(),w.preventDefault())})})))}),uV="SelectValue",dV=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,children:i,placeholder:a="",...c}=e,u=Ls(uV,n),{onValueNodeHasChildrenChange:f}=u,h=i!==void 0,m=Ze(t,u.onValueNodeChange);return _n(()=>{f(h)},[f,h]),p.createElement(Oe.span,q({},c,{ref:m,style:{pointerEvents:"none"}}),X3(u.value)?p.createElement(p.Fragment,null,a):i)}),fV=p.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...o}=e;return p.createElement(Oe.span,q({"aria-hidden":!0},o,{ref:t}),r||"▼")}),pV=e=>p.createElement(tp,q({asChild:!0},e)),Xa="SelectContent",hV=p.forwardRef((e,t)=>{const n=Ls(Xa,e.__scopeSelect),[r,o]=p.useState();if(_n(()=>{o(new DocumentFragment)},[]),!n.open){const i=r;return i?po.createPortal(p.createElement(G3,{scope:e.__scopeSelect},p.createElement(yp.Slot,{scope:e.__scopeSelect},p.createElement("div",null,e.children))),i):null}return p.createElement(gV,q({},e,{ref:t}))}),ko=10,[G3,As]=ll(Xa),gV=p.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:i,onPointerDownOutside:a,side:c,sideOffset:u,align:f,alignOffset:h,arrowPadding:m,collisionBoundary:v,collisionPadding:x,sticky:w,hideWhenDetached:b,avoidCollisions:P,...C}=e,S=Ls(Xa,n),[E,_]=p.useState(null),[D,N]=p.useState(null),j=Ze(t,pe=>_(pe)),[O,V]=p.useState(null),[J,ie]=p.useState(null),te=wp(n),[ge,le]=p.useState(!1),T=p.useRef(!1);p.useEffect(()=>{if(E)return Yc(E)},[E]),np();const W=p.useCallback(pe=>{const[Te,...Fe]=te().map(Me=>Me.ref.current),[We]=Fe.slice(-1),Pe=document.activeElement;for(const Me of pe)if(Me===Pe||(Me==null||Me.scrollIntoView({block:"nearest"}),Me===Te&&D&&(D.scrollTop=0),Me===We&&D&&(D.scrollTop=D.scrollHeight),Me==null||Me.focus(),document.activeElement!==Pe))return},[te,D]),Y=p.useCallback(()=>W([O,E]),[W,O,E]);p.useEffect(()=>{ge&&Y()},[ge,Y]);const{onOpenChange:U,triggerPointerDownPosRef:B}=S;p.useEffect(()=>{if(E){let pe={x:0,y:0};const Te=We=>{var Pe,Me,Mt,lt;pe={x:Math.abs(Math.round(We.pageX)-((Pe=(Me=B.current)===null||Me===void 0?void 0:Me.x)!==null&&Pe!==void 0?Pe:0)),y:Math.abs(Math.round(We.pageY)-((Mt=(lt=B.current)===null||lt===void 0?void 0:lt.y)!==null&&Mt!==void 0?Mt:0))}},Fe=We=>{pe.x<=10&&pe.y<=10?We.preventDefault():E.contains(We.target)||U(!1),document.removeEventListener("pointermove",Te),B.current=null};return B.current!==null&&(document.addEventListener("pointermove",Te),document.addEventListener("pointerup",Fe,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Te),document.removeEventListener("pointerup",Fe,{capture:!0})}}},[E,U,B]),p.useEffect(()=>{const pe=()=>U(!1);return window.addEventListener("blur",pe),window.addEventListener("resize",pe),()=>{window.removeEventListener("blur",pe),window.removeEventListener("resize",pe)}},[U]);const[L,H]=J3(pe=>{const Te=te().filter(Pe=>!Pe.disabled),Fe=Te.find(Pe=>Pe.ref.current===document.activeElement),We=Z3(Te,pe,Fe);We&&setTimeout(()=>We.ref.current.focus())}),oe=p.useCallback((pe,Te,Fe)=>{const We=!T.current&&!Fe;(S.value!==void 0&&S.value===Te||We)&&(V(pe),We&&(T.current=!0))},[S.value]),ne=p.useCallback(()=>E==null?void 0:E.focus(),[E]),fe=p.useCallback((pe,Te,Fe)=>{const We=!T.current&&!Fe;(S.value!==void 0&&S.value===Te||We)&&ie(pe)},[S.value]),Se=r==="popper"?US:mV,me=Se===US?{side:c,sideOffset:u,align:f,alignOffset:h,arrowPadding:m,collisionBoundary:v,collisionPadding:x,sticky:w,hideWhenDetached:b,avoidCollisions:P}:{};return p.createElement(G3,{scope:n,content:E,viewport:D,onViewportChange:N,itemRefCallback:oe,selectedItem:O,onItemLeave:ne,itemTextRefCallback:fe,focusSelectedItem:Y,selectedItemText:J,position:r,isPositioned:ge,searchRef:L},p.createElement(op,{as:Vo,allowPinchZoom:!0},p.createElement(ep,{asChild:!0,trapped:S.open,onMountAutoFocus:pe=>{pe.preventDefault()},onUnmountAutoFocus:he(o,pe=>{var Te;(Te=S.trigger)===null||Te===void 0||Te.focus({preventScroll:!0}),pe.preventDefault()})},p.createElement(Zf,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:pe=>pe.preventDefault(),onDismiss:()=>S.onOpenChange(!1)},p.createElement(Se,q({role:"listbox",id:S.contentId,"data-state":S.open?"open":"closed",dir:S.dir,onContextMenu:pe=>pe.preventDefault()},C,me,{onPlaced:()=>le(!0),ref:j,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:he(C.onKeyDown,pe=>{const Te=pe.ctrlKey||pe.altKey||pe.metaKey;if(pe.key==="Tab"&&pe.preventDefault(),!Te&&pe.key.length===1&&H(pe.key),["ArrowUp","ArrowDown","Home","End"].includes(pe.key)){let We=te().filter(Pe=>!Pe.disabled).map(Pe=>Pe.ref.current);if(["ArrowUp","End"].includes(pe.key)&&(We=We.slice().reverse()),["ArrowUp","ArrowDown"].includes(pe.key)){const Pe=pe.target,Me=We.indexOf(Pe);We=We.slice(Me+1)}setTimeout(()=>W(We)),pe.preventDefault()}})}))))))}),mV=p.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...o}=e,i=Ls(Xa,n),a=As(Xa,n),[c,u]=p.useState(null),[f,h]=p.useState(null),m=Ze(t,j=>h(j)),v=wp(n),x=p.useRef(!1),w=p.useRef(!0),{viewport:b,selectedItem:P,selectedItemText:C,focusSelectedItem:S}=a,E=p.useCallback(()=>{if(i.trigger&&i.valueNode&&c&&f&&b&&P&&C){const j=i.trigger.getBoundingClientRect(),O=f.getBoundingClientRect(),V=i.valueNode.getBoundingClientRect(),J=C.getBoundingClientRect();if(i.dir!=="rtl"){const Pe=J.left-O.left,Me=V.left-Pe,Mt=j.left-Me,lt=j.width+Mt,Qe=Math.max(lt,O.width),tn=window.innerWidth-ko,Ut=t0(Me,[ko,tn-Qe]);c.style.minWidth=lt+"px",c.style.left=Ut+"px"}else{const Pe=O.right-J.right,Me=window.innerWidth-V.right-Pe,Mt=window.innerWidth-j.right-Me,lt=j.width+Mt,Qe=Math.max(lt,O.width),tn=window.innerWidth-ko,Ut=t0(Me,[ko,tn-Qe]);c.style.minWidth=lt+"px",c.style.right=Ut+"px"}const ie=v(),te=window.innerHeight-ko*2,ge=b.scrollHeight,le=window.getComputedStyle(f),T=parseInt(le.borderTopWidth,10),W=parseInt(le.paddingTop,10),Y=parseInt(le.borderBottomWidth,10),U=parseInt(le.paddingBottom,10),B=T+W+ge+U+Y,L=Math.min(P.offsetHeight*5,B),H=window.getComputedStyle(b),oe=parseInt(H.paddingTop,10),ne=parseInt(H.paddingBottom,10),fe=j.top+j.height/2-ko,Se=te-fe,me=P.offsetHeight/2,pe=P.offsetTop+me,Te=T+W+pe,Fe=B-Te;if(Te<=fe){const Pe=P===ie[ie.length-1].ref.current;c.style.bottom="0px";const Me=f.clientHeight-b.offsetTop-b.offsetHeight,Mt=Math.max(Se,me+(Pe?ne:0)+Me+Y),lt=Te+Mt;c.style.height=lt+"px"}else{const Pe=P===ie[0].ref.current;c.style.top="0px";const Mt=Math.max(fe,T+b.offsetTop+(Pe?oe:0)+me)+Fe;c.style.height=Mt+"px",b.scrollTop=Te-fe+b.offsetTop}c.style.margin=`${ko}px 0`,c.style.minHeight=L+"px",c.style.maxHeight=te+"px",r==null||r(),requestAnimationFrame(()=>x.current=!0)}},[v,i.trigger,i.valueNode,c,f,b,P,C,i.dir,r]);_n(()=>E(),[E]);const[_,D]=p.useState();_n(()=>{f&&D(window.getComputedStyle(f).zIndex)},[f]);const N=p.useCallback(j=>{j&&w.current===!0&&(E(),S==null||S(),w.current=!1)},[E,S]);return p.createElement(vV,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:x,onScrollButtonChange:N},p.createElement("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:_}},p.createElement(Oe.div,q({},o,{ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}}))))}),US=p.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:o=ko,...i}=e,a=$1(n);return p.createElement(Wv,q({},a,i,{ref:t,align:r,collisionPadding:o,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}}))}),[vV,P1]=ll(Xa,{}),BS="SelectViewport",xV=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=As(BS,n),i=P1(BS,n),a=Ze(t,o.onViewportChange),c=p.useRef(0);return p.createElement(p.Fragment,null,p.createElement("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),p.createElement(yp.Slot,{scope:n},p.createElement(Oe.div,q({"data-radix-select-viewport":"",role:"presentation"},r,{ref:a,style:{position:"relative",flex:1,overflow:"auto",...r.style},onScroll:he(r.onScroll,u=>{const f=u.currentTarget,{contentWrapper:h,shouldExpandOnScrollRef:m}=i;if(m!=null&&m.current&&h){const v=Math.abs(c.current-f.scrollTop);if(v>0){const x=window.innerHeight-ko*2,w=parseFloat(h.style.minHeight),b=parseFloat(h.style.height),P=Math.max(w,b);if(P<x){const C=P+v,S=Math.min(x,C),E=C-S;h.style.height=S+"px",h.style.bottom==="0px"&&(f.scrollTop=E>0?E:0,h.style.justifyContent="flex-end")}}}c.current=f.scrollTop})}))))}),yV="SelectGroup",[qW,wV]=ll(yV),bV="SelectLabel",SV=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=wV(bV,n);return p.createElement(Oe.div,q({id:o.id},r,{ref:t}))}),f0="SelectItem",[CV,q3]=ll(f0),$V=p.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:o=!1,textValue:i,...a}=e,c=Ls(f0,n),u=As(f0,n),f=c.value===r,[h,m]=p.useState(i??""),[v,x]=p.useState(!1),w=Ze(t,C=>{var S;return(S=u.itemRefCallback)===null||S===void 0?void 0:S.call(u,C,r,o)}),b=co(),P=()=>{o||(c.onValueChange(r),c.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return p.createElement(CV,{scope:n,value:r,disabled:o,textId:b,isSelected:f,onItemTextChange:p.useCallback(C=>{m(S=>{var E;return S||((E=C==null?void 0:C.textContent)!==null&&E!==void 0?E:"").trim()})},[])},p.createElement(yp.ItemSlot,{scope:n,value:r,disabled:o,textValue:h},p.createElement(Oe.div,q({role:"option","aria-labelledby":b,"data-highlighted":v?"":void 0,"aria-selected":f&&v,"data-state":f?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1},a,{ref:w,onFocus:he(a.onFocus,()=>x(!0)),onBlur:he(a.onBlur,()=>x(!1)),onPointerUp:he(a.onPointerUp,P),onPointerMove:he(a.onPointerMove,C=>{if(o){var S;(S=u.onItemLeave)===null||S===void 0||S.call(u)}else C.currentTarget.focus({preventScroll:!0})}),onPointerLeave:he(a.onPointerLeave,C=>{if(C.currentTarget===document.activeElement){var S;(S=u.onItemLeave)===null||S===void 0||S.call(u)}}),onKeyDown:he(a.onKeyDown,C=>{var S;((S=u.searchRef)===null||S===void 0?void 0:S.current)!==""&&C.key===" "||(nV.includes(C.key)&&P(),C.key===" "&&C.preventDefault())})}))))}),bd="SelectItemText",PV=p.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,...i}=e,a=Ls(bd,n),c=As(bd,n),u=q3(bd,n),f=sV(bd,n),[h,m]=p.useState(null),v=Ze(t,C=>m(C),u.onItemTextChange,C=>{var S;return(S=c.itemTextRefCallback)===null||S===void 0?void 0:S.call(c,C,u.value,u.disabled)}),x=h==null?void 0:h.textContent,w=p.useMemo(()=>p.createElement("option",{key:u.value,value:u.value,disabled:u.disabled},x),[u.disabled,u.value,x]),{onNativeOptionAdd:b,onNativeOptionRemove:P}=f;return _n(()=>(b(w),()=>P(w)),[b,P,w]),p.createElement(p.Fragment,null,p.createElement(Oe.span,q({id:u.textId},i,{ref:v})),u.isSelected&&a.valueNode&&!a.valueNodeHasChildren?po.createPortal(i.children,a.valueNode):null)}),EV="SelectItemIndicator",RV=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return q3(EV,n).isSelected?p.createElement(Oe.span,q({"aria-hidden":!0},r,{ref:t})):null}),VS="SelectScrollUpButton",_V=p.forwardRef((e,t)=>{const n=As(VS,e.__scopeSelect),r=P1(VS,e.__scopeSelect),[o,i]=p.useState(!1),a=Ze(t,r.onScrollButtonChange);return _n(()=>{if(n.viewport&&n.isPositioned){let f=function(){const h=u.scrollTop>0;i(h)};var c=f;const u=n.viewport;return f(),u.addEventListener("scroll",f),()=>u.removeEventListener("scroll",f)}},[n.viewport,n.isPositioned]),o?p.createElement(Y3,q({},e,{ref:a,onAutoScroll:()=>{const{viewport:c,selectedItem:u}=n;c&&u&&(c.scrollTop=c.scrollTop-u.offsetHeight)}})):null}),HS="SelectScrollDownButton",NV=p.forwardRef((e,t)=>{const n=As(HS,e.__scopeSelect),r=P1(HS,e.__scopeSelect),[o,i]=p.useState(!1),a=Ze(t,r.onScrollButtonChange);return _n(()=>{if(n.viewport&&n.isPositioned){let f=function(){const h=u.scrollHeight-u.clientHeight,m=Math.ceil(u.scrollTop)<h;i(m)};var c=f;const u=n.viewport;return f(),u.addEventListener("scroll",f),()=>u.removeEventListener("scroll",f)}},[n.viewport,n.isPositioned]),o?p.createElement(Y3,q({},e,{ref:a,onAutoScroll:()=>{const{viewport:c,selectedItem:u}=n;c&&u&&(c.scrollTop=c.scrollTop+u.offsetHeight)}})):null}),Y3=p.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...o}=e,i=As("SelectScrollButton",n),a=p.useRef(null),c=wp(n),u=p.useCallback(()=>{a.current!==null&&(window.clearInterval(a.current),a.current=null)},[]);return p.useEffect(()=>()=>u(),[u]),_n(()=>{var f;const h=c().find(m=>m.ref.current===document.activeElement);h==null||(f=h.ref.current)===null||f===void 0||f.scrollIntoView({block:"nearest"})},[c]),p.createElement(Oe.div,q({"aria-hidden":!0},o,{ref:t,style:{flexShrink:0,...o.style},onPointerDown:he(o.onPointerDown,()=>{a.current===null&&(a.current=window.setInterval(r,50))}),onPointerMove:he(o.onPointerMove,()=>{var f;(f=i.onItemLeave)===null||f===void 0||f.call(i),a.current===null&&(a.current=window.setInterval(r,50))}),onPointerLeave:he(o.onPointerLeave,()=>{u()})}))}),kV=p.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return p.createElement(Oe.div,q({"aria-hidden":!0},r,{ref:t}))});function X3(e){return e===""||e===void 0}const Q3=p.forwardRef((e,t)=>{const{value:n,...r}=e,o=p.useRef(null),i=Ze(t,o),a=H$(n);return p.useEffect(()=>{const c=o.current,u=window.HTMLSelectElement.prototype,h=Object.getOwnPropertyDescriptor(u,"value").set;if(a!==n&&h){const m=new Event("change",{bubbles:!0});h.call(c,n),c.dispatchEvent(m)}},[a,n]),p.createElement(eV,{asChild:!0},p.createElement("select",q({},r,{ref:i,defaultValue:n})))});Q3.displayName="BubbleSelect";function J3(e){const t=Zt(e),n=p.useRef(""),r=p.useRef(0),o=p.useCallback(a=>{const c=n.current+a;t(c),function u(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>u(""),1e3))}(c)},[t]),i=p.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,o,i]}function Z3(e,t,n){const o=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let a=DV(e,Math.max(i,0));o.length===1&&(a=a.filter(f=>f!==n));const u=a.find(f=>f.textValue.toLowerCase().startsWith(o.toLowerCase()));return u!==n?u:void 0}function DV(e,t){return e.map((n,r)=>e[(t+r)%e.length])}const jV=aV,eR=cV,MV=dV,TV=fV,IV=pV,tR=hV,OV=xV,nR=SV,rR=$V,LV=PV,AV=RV,oR=_V,iR=NV,sR=kV,FV=jV,zV=MV,aR=p.forwardRef(({className:e,children:t,...n},r)=>d.jsxs(eR,{ref:r,className:se("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,d.jsx(TV,{asChild:!0,children:d.jsx(qf,{className:"h-4 w-4 opacity-50"})})]}));aR.displayName=eR.displayName;const lR=p.forwardRef(({className:e,...t},n)=>d.jsx(oR,{ref:n,className:se("flex cursor-default items-center justify-center py-1",e),...t,children:d.jsx(lP,{className:"h-4 w-4"})}));lR.displayName=oR.displayName;const cR=p.forwardRef(({className:e,...t},n)=>d.jsx(iR,{ref:n,className:se("flex cursor-default items-center justify-center py-1",e),...t,children:d.jsx(qf,{className:"h-4 w-4"})}));cR.displayName=iR.displayName;const uR=p.forwardRef(({className:e,children:t,position:n="popper",...r},o)=>d.jsx(IV,{children:d.jsxs(tR,{ref:o,className:se("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[d.jsx(lR,{}),d.jsx(OV,{className:se("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),d.jsx(cR,{})]})}));uR.displayName=tR.displayName;const UV=p.forwardRef(({className:e,...t},n)=>d.jsx(nR,{ref:n,className:se("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));UV.displayName=nR.displayName;const dR=p.forwardRef(({className:e,children:t,...n},r)=>d.jsxs(rR,{ref:r,className:se("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[d.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:d.jsx(AV,{children:d.jsx(Gf,{className:"h-4 w-4"})})}),d.jsx(LV,{children:t})]}));dR.displayName=rR.displayName;const BV=p.forwardRef(({className:e,...t},n)=>d.jsx(sR,{ref:n,className:se("-mx-1 my-1 h-px bg-muted",e),...t}));BV.displayName=sR.displayName;const VV=({onUse:e})=>[{accessorKey:"label",meta:{className:"max-w-[350px]"},header:()=>d.jsx("div",{className:"w-8",children:"Preset"}),cell:({row:t})=>{const n=t.original.label,r=t.original.aircraft,o=t.original.system,i=t.original.vendor;return d.jsxs(d.Fragment,{children:[d.jsx("p",{className:"text-md truncate font-semibold",children:n}),d.jsxs("p",{className:"truncate text-xs text-muted-foreground",children:[i," > ",r," > ",o]})]})},filterFn:(t,n,r)=>t.getValue(n).toUpperCase().indexOf(r.toUpperCase())>-1},{accessorKey:"description",meta:{className:"w-[200px] max-w-[500px]"},header:()=>d.jsx("div",{className:"w-8",children:"Description"}),cell:({row:t})=>d.jsx("div",{children:d.jsx("p",{className:"text-xs truncate",children:t.original.description})}),filterFn:(t,n,r)=>r.includes(t.getValue(n))},{accessorKey:"vendor",header:()=>d.jsx("div",{className:"w-8",children:"Vendor"}),filterFn:(t,n,r)=>r.includes(t.getValue(n))},{accessorKey:"aircraft",header:()=>d.jsx("div",{className:"w-8",children:"Aircraft"}),filterFn:(t,n,r)=>r.includes(t.getValue(n))},{accessorKey:"system",header:()=>d.jsx("div",{className:"w-8",children:"System"}),filterFn:(t,n,r)=>r.includes(t.getValue(n))},{accessorKey:"actions",header:()=>d.jsx("div",{className:"w-8",children:"Actions"}),meta:{className:"w-[80px]"},cell:({row:t})=>d.jsx("div",{className:"flex flex-row gap-2",children:d.jsx(at,{size:"sm",onClick:()=>{e(t.original)},children:"Use"})})}];function HV({table:e,items:t}){var a;const n=e.getState().columnFilters.length>0,r=[...new Set(t.map(c=>c.vendor))].map(c=>({label:c,value:c})),o=[...new Set(t.map(c=>c.aircraft))].map(c=>({label:c,value:c})),i=[...new Set(t.map(c=>c.system))].map(c=>({label:c,value:c}));return d.jsxs("div",{className:"flex items-center justify-between",children:[d.jsxs("div",{className:"flex flex-1 items-center space-x-2",children:[d.jsx(qt,{placeholder:"Filter items...",value:((a=e.getColumn("label"))==null?void 0:a.getFilterValue())??"",onChange:c=>{var u;return(u=e.getColumn("label"))==null?void 0:u.setFilterValue(c.target.value)},className:"w-[150px] lg:w-[250px]"}),e.getColumn("vendor")&&d.jsx(ms,{column:e.getColumn("vendor"),title:"Vendor",options:r}),e.getColumn("aircraft")&&d.jsx(ms,{column:e.getColumn("aircraft"),title:"Aircraft",options:o}),e.getColumn("system")&&d.jsx(ms,{column:e.getColumn("system"),title:"System",options:i}),n&&d.jsxs(at,{onClick:()=>e.resetColumnFilters(),children:["Reset",d.jsx(Yf,{className:"ml-2 h-4 w-4"})]})]}),e.getFilteredRowModel().rows.length>0&&d.jsxs("div",{className:"text-sm",children:[e.getFilteredRowModel().rows.length," items"]})]})}function WV({columns:e,data:t,config:n}){var m;const[r,o]=p.useState([]),[i,a]=p.useState([]),[c,u]=p.useState({vendor:!1,aircraft:!1,system:!1}),f=m1({data:t,columns:e,onSortingChange:o,onColumnFiltersChange:a,getCoreRowModel:d1(),getSortedRowModel:g1(),getFilteredRowModel:f1(),getFacetedRowModel:p1(),getFacetedUniqueValues:h1(),onColumnVisibilityChange:u,state:{sorting:r,columnFilters:i,columnVisibility:c},defaultColumn:{size:10,minSize:1,maxSize:250}}),h=p.useRef(null);return p.useEffect(()=>{if(h.current){const v=t.findIndex(w=>w.code==n.Event.Settings.Value),x=h.current.querySelector(`[data-row-index="${v}"]`);x&&x.scrollIntoView({behavior:"smooth",block:"center"})}},[n,t]),d.jsxs("div",{className:"flex flex-col gap-4 grow overflow-y-auto",children:[d.jsx("div",{className:"",children:d.jsx(HV,{table:f,items:t})}),d.jsx("div",{className:"flex flex-col overflow-y-auto border rounded-lg",children:d.jsx(Yv,{className:"h-[300px] min-h-[200px] max-h-[400px] rounded-md border",children:d.jsxs(dp,{ref:h,className:"w-full",children:[d.jsx(fp,{className:"sticky top-0 bg-slate-700 dark:bg-slate-800 text-white group/header",children:f.getHeaderGroups().map(v=>d.jsx(uo,{className:"hover:bg-slate-800",children:v.headers.map(x=>{var w,b;return d.jsx(hp,{className:`text-white px-2 bg-slate-700 dark:bg-slate-800 ${((b=(w=x.column.columnDef)==null?void 0:w.meta)==null?void 0:b.className)??""}`,children:x.isPlaceholder?null:Ya(x.column.columnDef.header,x.getContext())},x.id)})},v.id))}),d.jsx(pp,{className:"overflow-y-auto bg-white",children:(m=f.getRowModel().rows)!=null&&m.length?f.getRowModel().rows.map(v=>d.jsx(uo,{"data-state":v.getIsSelected()&&"selected","data-row-index":v.index,className:n.Event.Settings.Value===v.original.code?"bg-blue-200 hover:bg-blue-300":"",children:v.getVisibleCells().map(x=>{var w,b;return d.jsx(Ns,{className:`p-2 ${(b=(w=x.column.columnDef)==null?void 0:w.meta)==null?void 0:b.className}`,children:Ya(x.column.columnDef.cell,x.getContext())},x.id)})},v.id)):d.jsx(uo,{children:d.jsx(Ns,{colSpan:e.length,className:"h-24 text-center",children:"No results."})})})]})})})]})}const fR=p.forwardRef(({className:e,...t},n)=>d.jsx("textarea",{className:se("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));fR.displayName="Textarea";const pR=Ms(e=>({presets:[],setPresets:t=>e(()=>({presets:t}))})),KV=Ms(e=>({presets:[],setPresets:t=>e(()=>({presets:t}))})),GV=e=>{const{config:t,onChange:n}=e,r=pR().presets.filter(c=>c.presetType==="Output"),o=p.useCallback(c=>{n({...t,Event:{...t.Event,Settings:{UUID:c.id,Value:c.code,VarType:"CODE"}}})},[t]),i=p.useCallback(c=>{const u=c.target.value;n({...t,Event:{...t.Event,Settings:{...t.Event.Settings,Value:u}}})},[t]),a=p.useMemo(()=>VV({onUse:o}),[]);return d.jsxs("div",{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex h-auto flex-row items-center gap-4 align-text-top",children:[d.jsx(ps,{className:"w-16",children:"Presets"}),d.jsx("div",{children:d.jsx(WV,{columns:a,data:r,config:t})})]}),d.jsxs("div",{className:"flex h-auto flex-row items-center gap-4",children:[d.jsx(ps,{className:"w-16",children:"Code"}),d.jsx(fR,{onChange:i,value:t.Event.Settings.Value})]})]})},qV=()=>d.jsx("div",{children:"MobiFlightVariable Yeah!"}),YV=()=>d.jsx("div",{children:"XplaneEvent"}),XV=()=>d.jsx("div",{children:"FSUIPC"}),QV=e=>{const{config:t,editMode:n,className:r,onChange:o}=e,[i,a]=p.useState(!1),[c,u]=p.useState(!1),f=Hi(),[h,m]=p.useState(t),v=p.useCallback(b=>{const P={...h,Event:{...h.Event,Type:b}};m(P),o(h)},[]),x=p.useCallback(b=>{const P={...h,Event:{...h.Event,Settings:b.Event.Settings}};m(P),o(P)},[]);p.useEffect(()=>{u(!Bm.isEqual(t,h))},[t,h]);const w={SIMCONNECT:"MSFS 2020",XPLANE:"X-Plane",VARIABLE:"MobiFlight",FSUIPC:"FSUIPC"};return d.jsxs("div",{className:se("",r),children:[d.jsxs(zt,{children:[d.jsx(Rn,{children:d.jsxs("h2",{className:"",children:["Select one type of event from the set of options: ",c?"true":"false"]})}),d.jsxs(Un,{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-row items-center gap-4",children:[d.jsx("div",{className:"w-16",children:"Type:"}),d.jsx("div",{children:d.jsxs(FV,{onValueChange:v,defaultValue:t.Event.Type,children:[d.jsx(aR,{className:"w-[180px]",children:d.jsx(zV,{placeholder:t.Event.Type})}),d.jsx(uR,{children:Object.entries(w).map(([b,P])=>d.jsx(dR,{value:b,children:P},b))})]})})]}),d.jsxs("div",{children:[h.Event.Type==="SIMCONNECT"&&d.jsx(GV,{config:h,onChange:x}),h.Event.Type==="VARIABLE"&&d.jsx(qV,{}),h.Event.Type==="XPLANE"&&d.jsx(YV,{}),h.Event.Type==="FSUIPC"&&d.jsx(XV,{})]})]}),d.jsx(Lo,{className:"flex flex-row items-center gap-4"})]}),d.jsx(tE,{open:i,onOpenChange:()=>{f("../"),a(!1)},children:d.jsx(Mv,{className:"max-w-3xl",children:d.jsxs(rE,{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"flex flex-col gap-2",children:[d.jsx("h2",{className:"text-2xl",children:"What kind of event would you like to use?"}),d.jsx("div",{className:"text-sm",children:"You can use different event sources for the value which you want to use"})]}),d.jsxs("ul",{className:"grid grid-cols-3 gap-4",children:[d.jsx("li",{children:d.jsxs(zt,{className:"flex aspect-square cursor-pointer flex-col items-center gap-4 pt-4",children:[d.jsx("img",{src:ZB,alt:"Hand flipping the switch",className:"h-32 rounded-xl"}),d.jsx("div",{className:"text-center text-xl",children:d.jsx("span",{className:"font-bold",children:"Device input"})})]})}),d.jsx("li",{children:d.jsxs(zt,{className:"flex aspect-square cursor-pointer flex-col items-center gap-4 pt-4",children:[d.jsx("img",{src:JB,alt:"MSFS2020 Logo",className:"h-32 rounded-xl"}),d.jsxs("div",{className:"text-center text-xl",children:[d.jsx("span",{className:"font-bold",children:"MSFS2020"}),d.jsx("br",{})," Simulator Value"]})]})}),d.jsx("li",{children:d.jsxs(zt,{className:"flex aspect-square cursor-pointer flex-col items-center gap-4 pt-4",onClickCapture:()=>{f("../mobiflight"),a(!1)},children:[d.jsx("img",{src:C1,alt:"MobiFlightLogo",className:"h-32 rounded-xl"}),d.jsxs("div",{className:"text-center text-xl",children:[d.jsxs("span",{className:"font-bold",children:["MobiFlight",d.jsx("br",{})]}),"Variable"]})]})})]}),d.jsxs("div",{className:"flex flex-row items-center gap-2 text-primary",children:[d.jsx(Ao,{})," What are the different options?"]})]})})})]})},JV=()=>{const{publish:e}=Gc(),{configId:t,projectId:n}=tl(),r=qa(C=>C.items),o=qa(C=>C.updateItem),i=r.find(C=>C.GUID===t),[a,c]=p.useState({...i}),[u,f]=p.useState(!1),[h,m]=p.useState("1"),[v]=p.useState("1"),[x,w]=p.useState(""),b=cp.find(C=>C.id===n);p.useEffect(()=>{const C=!tP.isEqual(i,a);f(C)},[i,a]);const P=p.useCallback(()=>{console.log("Saving changes",a),o(a),e({key:"config.update",payload:a})},[a]);return d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"flex flex-row items-center gap-4",role:"navigation",children:[d.jsx(tr,{to:"/",className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Project"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:(b==null?void 0:b.name)??"Default"}),d.jsx(tr,{to:`/project/${n}/configs`,className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Configs"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl font-bold tracking-tight first:mt-0",children:i==null?void 0:i.Description}),u&&d.jsxs("div",{children:[d.jsx(at,{variant:"default",onClick:P,children:"Save changes"}),d.jsx(at,{variant:"ghost",children:"Discard changes"})]})]}),d.jsxs("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:gap-32",children:[d.jsxs("div",{className:"flex flex-row items-center gap-2",children:[d.jsx(Wt,{checked:i==null?void 0:i.Active,children:"Active"}),d.jsx(ps,{children:"Active"})]}),d.jsxs("div",{className:"flex flex-row items-center gap-4",children:[d.jsx("p",{children:"Tags"}),d.jsxs("ul",{className:"flex flex-row items-center gap-2",children:[d.jsx("li",{className:"flex flex-row items-center gap-2",children:d.jsx(Fn,{children:"Autopilot"})}),d.jsx("li",{className:"flex flex-row items-center gap-2",children:d.jsx(Fn,{children:"Autopilot"})}),d.jsx("li",{className:"flex flex-row items-center gap-2",children:d.jsx(Fn,{children:"Autopilot"})}),d.jsx("li",{className:"flex flex-row items-center gap-2",children:d.jsx(Fn,{children:"Autopilot"})})]}),d.jsxs(at,{className:"h-6 rounded-xl text-xs",variant:"ghost",children:[d.jsx(DI,{className:"size-4"}),"Add tag"]})]})]}),d.jsx("div",{className:"just flex flex-row gap-4",children:d.jsxs(a3,{defaultValue:"tab-event",className:"w-full",children:[d.jsxs(s1,{className:"grid w-full grid-cols-4",children:[d.jsxs(Ci,{value:"tab-event",children:["Event",u&&d.jsx(Fn,{className:"ml-2",children:"!"})]}),d.jsx(Ci,{value:"tab-modifiers",children:"Modifiers"}),d.jsx(Ci,{value:"tab-action",children:"Action"}),d.jsx(Ci,{value:"tab-context",children:"Context"})]}),d.jsx(Ea,{value:"tab-event",children:d.jsx(QV,{config:i,editMode:x==="event",onCancelEditMode:()=>{},onEnterEditMode:()=>{},onSaveEditMode:()=>{},onChange:C=>{c(C)}})}),d.jsx(Ea,{value:"tab-modifiers",children:d.jsxs(zt,{children:[d.jsxs(Rn,{className:"",children:[d.jsx("h3",{className:"text-xl",children:"Modifiers"}),d.jsx("p",{className:"text-xs",children:"Modify your event value (optional)"})]}),d.jsx(Un,{className:"text-center",children:i==null?void 0:i.Modifiers.map((C,S)=>d.jsx("div",{children:C.Type},S))}),d.jsxs(Lo,{className:"flex flex-row items-center justify-between",children:[d.jsx(at,{onClick:()=>w("modify"),children:"Edit"}),d.jsx(Ao,{children:"Learn more"})]})]})}),d.jsx(Ea,{value:"tab-action",children:d.jsxs(zt,{children:[d.jsxs(Rn,{className:"",children:[d.jsx("h3",{className:"text-xl",children:"Action"}),d.jsx("p",{className:"text-xs",children:"Do something with your sim or device"})]}),d.jsx(Un,{className:"text-center",children:i==null?void 0:i.Action.Type}),d.jsxs(Lo,{className:"flex flex-row items-center justify-between",children:[d.jsx(at,{onClick:()=>w("action"),children:"Edit"}),d.jsx(Ao,{children:"Learn more"})]})]})}),d.jsx(Ea,{value:"tab-context",children:d.jsxs(zt,{className:"w-1/3 bg-background",children:[d.jsxs(Rn,{className:"",children:[d.jsx("h3",{className:"text-xl",children:"Context"}),d.jsx("p",{className:"text-xs",children:"Define when this config will be applied"})]}),d.jsx(Un,{className:"text-center align-middle",children:i==null?void 0:i.Context.Preconditions.map((C,S)=>d.jsx("div",{children:C.Type},S))}),d.jsxs(Lo,{className:"flex flex-row items-center justify-between",children:[d.jsx(at,{onClick:()=>w("context"),children:"Edit"}),d.jsx(Ao,{children:"Learn more"})]})]})})]})}),d.jsxs("div",{className:"flex flex-col gap-4",children:[d.jsxs("div",{className:"flex flex-col",children:[d.jsx("h2",{className:"text-2xl",children:"Test your settings"}),d.jsx("p",{className:"text-xs",children:"Test your current config settings interactively by defining a custom test value."})]}),d.jsx(zt,{className:"flex flex-row items-center",children:d.jsxs(Un,{className:"flex-flow flex h-auto items-center gap-4 py-3",children:[d.jsx(ps,{children:"Value type"}),d.jsx(Xe,{options:[{label:"Number",value:"Number"},{label:"String",value:"Text"}],onSelect:()=>{},value:"Number"}),d.jsx(ps,{children:"Value"}),d.jsx(qt,{value:h,className:"w-auto",onChange:C=>m(C.target.value)}),d.jsx(at,{children:"Test"}),d.jsx(at,{children:"Stop"}),d.jsx(ps,{className:"ml-12",children:"Test result"}),d.jsx("div",{className:"w-auto min-w-[200px] rounded-lg bg-background px-6 py-2",children:v})]})})]})]})},ZV=e=>{const{condition:t,wrapper:n,children:r}=e;return t?n(r):r},hR="Progress",bp=100,[eH,YW]=ur(hR),[tH,nH]=eH(hR),gR=p.forwardRef((e,t)=>{const{__scopeProgress:n,value:r,max:o,getValueLabel:i=iH,...a}=e,c=p0(o)?o:bp,u=vR(r,c)?r:null,f=$f(u)?i(u,c):void 0;return p.createElement(tH,{scope:n,value:u,max:c},p.createElement(Oe.div,q({"aria-valuemax":c,"aria-valuemin":0,"aria-valuenow":$f(u)?u:void 0,"aria-valuetext":f,role:"progressbar","data-state":mR(u,c),"data-value":u??void 0,"data-max":c},a,{ref:t})))});gR.propTypes={max(e,t,n){const r=e[t],o=String(r);return r&&!p0(r)?new Error(sH(o,n)):null},value(e,t,n){const r=e[t],o=String(r),i=p0(e.max)?e.max:bp;return r!=null&&!vR(r,i)?new Error(aH(o,n)):null}};const rH="ProgressIndicator",oH=p.forwardRef((e,t)=>{var n;const{__scopeProgress:r,...o}=e,i=nH(rH,r);return p.createElement(Oe.div,q({"data-state":mR(i.value,i.max),"data-value":(n=i.value)!==null&&n!==void 0?n:void 0,"data-max":i.max},o,{ref:t}))});function iH(e,t){return`${Math.round(e/t*100)}%`}function mR(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function $f(e){return typeof e=="number"}function p0(e){return $f(e)&&!isNaN(e)&&e>0}function vR(e,t){return $f(e)&&!isNaN(e)&&e<=t&&e>=0}function sH(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${bp}\`.`}function aH(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${bp} if no \`max\` prop is set) - - \`null\` if the progress is indeterminate. - -Defaulting to \`null\`.`}const xR=gR,lH=oH,E1=p.forwardRef(({className:e,value:t,color:n,...r},o)=>d.jsx(xR,{ref:o,className:se("relative h-4 w-full overflow-hidden rounded-full bg-secondary",e),...r,children:d.jsx(lH,{className:se("h-full w-full flex-1 transition-all",n||"bg-primary"),style:{transform:`translateX(-${100-(t||0)}%)`}})}));E1.displayName=xR.displayName;const yR=e=>{var v;const{device:t,className:n,navLink:r}=e,{publish:o}=Gc(),i=t.Pins?(v=t.Pins)==null?void 0:v.filter(x=>x.Used).length:0,a=t.Pins?Math.round(i*100/t.Pins.length):0,c=()=>{console.log("Upload config request"),o({key:"DeviceUploadMessage",payload:t})},u=()=>{o({key:"DeviceFileOpenRequest",payload:{IgnoreTypeMismatch:!1,Device:t}})},f=()=>{o({key:"DeviceFileSaveRequest",payload:{Device:t}})},h=()=>{o({key:"DeviceFirmwareUpdateRequest",payload:t})},m=()=>{o({key:"DeviceFirmwareResetRequest",payload:t})};return d.jsxs(zt,{className:n,children:[d.jsxs(ZV,{condition:r===void 0,wrapper:x=>d.jsx(Pa,{to:`/devices/${t.Type}/${t.Id}`,children:x}),children:[d.jsxs(Rn,{className:se("flex flex-row items-center gap-2"),children:[(t==null?void 0:t.MetaData)&&d.jsx("div",{children:(t==null?void 0:t.MetaData.Icon)&&d.jsx("img",{className:"h-10 w-10",src:t.MetaData.Icon})}),d.jsxs("div",{className:"mt-0 flex flex-col",children:[d.jsx("div",{className:"text-xl font-semibold",children:t.Name}),d.jsx("div",{className:"text-sm",children:t.Type})]})]}),d.jsx(Un,{className:"hidden md:block",children:(t==null?void 0:t.MetaData)&&d.jsx("div",{className:"flex h-60 items-center overflow-hidden",children:(t==null?void 0:t.MetaData.Picture)&&d.jsx("img",{className:"h-full w-full object-contain",src:t.MetaData.Picture})})})]}),d.jsxs(Lo,{className:"group flex flex-row justify-between gap-4",children:[d.jsx(Wt,{children:"Active"}),t.Pins&&d.jsx(E1,{color:se("bg-gray-200 group-hover/card:bg-green-800",a>60?"group-hover/card:bg-green-600":"",a>70?"group-hover/card:bg-blue-500":"",a>90?"group-hover/card:bg-primary":""),className:"w-1/2",value:a}),t.Type==="MobiFlight"&&d.jsxs(S1,{children:[d.jsx(W3,{children:d.jsx(cP,{className:"cursor-pointer"})}),d.jsxs(mp,{side:"top",align:"end",children:[d.jsx(hn,{onClick:c,children:"Upload config"}),d.jsx(Ia,{}),d.jsx(dc,{children:"Backup"}),d.jsx(hn,{onClick:u,children:"Open from file"}),d.jsx(hn,{onClick:f,children:"Save to file"}),d.jsx(Ia,{}),d.jsx(dc,{children:"Firmware"}),d.jsx(hn,{onClick:h,children:"Update"}),d.jsx(hn,{onClick:m,children:"Reset"}),d.jsx(Ia,{}),d.jsx(dc,{children:"Troubleshooting"}),d.jsx(hn,{children:"Regenerate serial"}),d.jsx(hn,{children:"Reload config"})]})]})]})]})},R1=Ms(e=>({devices:[],setDevices:t=>e(()=>({devices:t}))}));function cH(){const{devices:e}=R1();return d.jsxs("div",{className:"flex flex-col overflow-y-auto gap-4",children:[d.jsx("div",{className:"flex flex-row gap-4 items-center",children:d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0 font-bold",children:"Devices"})}),d.jsx("div",{className:"flex flex-row flex-wrap w-full gap-4 overflow-y-auto",children:e==null?void 0:e.map(t=>d.jsx(yR,{className:"w-96 h-[]",device:t},t.Id))})]})}const uH=e=>{const{device:t,onElementDelete:n}=e;return d.jsx("div",{className:"w-full h-full flex flex-col p-4 overflow-y-auto gap-2 overscroll-contain",children:((t==null?void 0:t.Elements)??[]).map(r=>d.jsx(Pa,{className:o=>o.isActive?"bg-slate-200 dark:bg-slate-800 border-2 rounded-md transition-all":"border-2 rounded-md transition-all dark:bg-background",to:`elements/${r.Id}`,children:d.jsxs("div",{className:"flex flex-row items-center py-2 pr-4 cursor-pointer group transition-opacity hover:dark:bg-gray-700 rounded-md ",children:[d.jsx(SI,{className:"group-hover:opacity-100 opacity-0 text-gray-400"}),d.jsxs("div",{className:"flex flex-row grow gap-4 items-center",children:[d.jsx(vp,{className:"w-8 h-8",variant:r.Type}),d.jsx("div",{className:"grow",children:r.Name}),d.jsx("div",{className:"group-hover:opacity-100 opacity-0",children:d.jsx(FI,{role:"button",className:"text-gray-400",onClick:()=>{n(r)}})})]})]})},r.Id))})},dH=({children:e})=>d.jsx("h2",{className:"pb-8 text-3xl font-semibold tracking-tight first:mt-0",children:e}),fH=({children:e})=>d.jsx("h2",{className:"pb-8 text-2xl font-semibold tracking-tight first:mt-0",children:e}),pH=["Button","Encoder","AnalogInput","InputShiftRegister","InputMultiplexer","Output","LedModule","Stepper","Servo","LcdDisplay","ShiftRegister","CustomDevice"],hH={Button:{Pins:1,PwmPins:0},Encoder:{Pins:2,PwmPins:0},AnalogInput:{Pins:1,PwmPins:0},InputShiftRegister:{Pins:4,PwmPins:0},InputMultiplexer:{Pins:4,PwmPins:0},Output:{Pins:1,PwmPins:0},LedModule:{Pins:4,PwmPins:0},Stepper:{Pins:4,PwmPins:0},Servo:{Pins:1,PwmPins:1},LcdDisplay:{Pins:0,PwmPins:0,i2c:!0},ShiftRegister:{Pins:4,PwmPins:0},CustomDevice:{Pins:1,PwmPins:0}},gH=[{label:"28BYJ - Half-step mode (recommended)",value:{id:"1",Mode:"0",Speed:1400,Acceleration:2800,Backlash:6,StepsPerRevolution:4096}},{label:"28BYJ - Full-step mode (classic)",value:{id:"0",Mode:"1",Speed:467,Acceleration:800,Backlash:3,StepsPerRevolution:2040}},{label:"x.27 - Half-step mode",value:{id:"2",Mode:"0",Speed:100,Acceleration:100,Backlash:0,StepsPerRevolution:1100}},{label:"Generic - EasyDriver",value:{id:"3",Mode:"2",Speed:400,Acceleration:800,Backlash:0,StepsPerRevolution:1e3}},{label:"Custom Stepper",value:{id:"255",Mode:"0",Speed:400,Acceleration:800,Backlash:0,StepsPerRevolution:1e3}}],mH=(e,t)=>{const n={Id:xH(e,t),Name:vH(e,t),Type:e,ConfigData:{}};switch(e){case"AnalogInput":return yH(n,t);case"Button":return wH(n,t);case"CustomDevice":return bH(n,t);case"Encoder":return SH(n,t);case"InputMultiplexer":return CH(n,t);case"ShiftRegister":return PH(n,t);case"Stepper":return NH(n,t);case"Servo":return kH(n,t);case"InputShiftRegister":return $H(n,t);case"LcdDisplay":return EH(n,t);case"LedModule":return RH(n,t);case"Output":return _H(n,t);default:throw new Error("Unknown element type")}},vH=(e,t)=>{const n=t.Elements.filter(o=>o.Type===e).length,r=n>0?" "+n.toString():"";return`${e}${r}`},xH=(e,t)=>t.Id+e+t.Elements.filter(n=>n.Type===e).length;function yH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Pin:n[0].Pin.toString()}}}function wH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Pin:n[0].Pin.toString()}}}function bH(e,t){throw e.Type,t.Elements,new Error("Function not implemented.")}function SH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Model:"0",PinLeft:n[0].Pin.toString(),PinRight:n[1].Pin.toString()}}}function CH(e,t){const n=t.Pins.filter(a=>!a.Used),r=t.Elements.find(a=>a.Type==="InputMultiplexer"),o=r?r.ConfigData:{PinS0:n[0].Pin.toString(),PinS1:n[1].Pin.toString(),PinS2:n[2].Pin.toString(),PinS3:n[3].Pin.toString()},i=r?n[0].Pin.toString():n[4].Pin.toString();return{...e,ConfigData:{...o,PinData:i}}}function $H(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{PinData:n[0].Pin.toString(),PinLatch:n[1].Pin.toString(),PinClock:n[2].Pin.toString(),NumberOfModules:"1"}}}function PH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{PinData:n[0].Pin.toString(),PinLatch:n[1].Pin.toString(),PinClock:n[2].Pin.toString(),NumberOfModules:"1"}}}function EH(e,t){const n=t.Pins.filter(r=>!r.Used&&r.isI2C);return{...e,ConfigData:{Address:"0x27",PinSLA:n[0].Pin.toString(),PinSCL:n[1].Pin.toString()}}}function RH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Model:"0",PinData:n[0].Pin.toString(),PinLatch:n[1].Pin.toString(),PinClock:n[2].Pin.toString(),NumberOfModules:"1",Brightness:15}}}function _H(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Pin:n[0].Pin.toString()}}}function NH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Pin1:n[0].Pin.toString(),Pin2:n[1].Pin.toString(),Pin3:n[2].Pin.toString(),Pin4:n[3].Pin.toString(),Profile:"0"}}}function kH(e,t){const n=t.Pins.filter(r=>!r.Used);return{...e,ConfigData:{Pin:n[0].Pin.toString()}}}const DH=e=>{const t=pH,n=e.device,{t:r}=yv(),o=a=>{const c=mH(a,n);e.onDeviceSelected({Device:n,Element:c})},i=(a,c)=>{const u=a.Pins.filter(h=>!h.Used);if(c.Type==="LcdDisplay")return u.filter(h=>h.isI2C&&!h.Used).length>=2;if(c.Type==="InputMultiplexer")return a.Elements.find(m=>m.Type==="InputMultiplexer")?u.length>=1:u.length>=5;const f=hH[c.Type];return u.length>=f.Pins};return d.jsx("div",{className:"grid grid-flow-row grid-cols-4 gap-4 items-center justify-items-center w-full",children:t.map(a=>{const c=i(n,{Type:a});return d.jsxs("div",{onClick:()=>{c&&o(a)},className:se("border dark:border-none h-32 w-32 group flex flex-col gap-1 items-center justify-center hover:bg-slate-200 dark:hover:bg-slate-800 py-2 px-4 rounded-md cursor-pointer text-center",c?"":"disabled"),children:[d.jsx(vp,{disabled:!c,className:"w-12 h-12",variant:a}),d.jsx("div",{className:"",children:r(`device.type.${a}`)})]},a)})})},jH=()=>{var E;const e=js().pathname.split("/elements")[0],t=b$(({nextLocation:_})=>h&&_.pathname.indexOf(e)!==0),{publish:n}=Gc(),r=Hi(),o=tl(),i=o.id,a=o.elementId,{devices:c}=R1(),[u,f]=p.useState(c.find(_=>_.Id===i)),[h,m]=p.useState(!1),[v,x]=p.useState(!1),w=(E=u==null?void 0:u.Elements)==null?void 0:E.find(_=>_.Id===a),b=_=>{f(_),m(!0)},P=()=>{n({key:"DeviceUpload",payload:u})},C=_=>{const D=u.Elements.filter(O=>O.Id!==_.Id),N=Object.keys(_.ConfigData).filter(O=>O.indexOf("Pin")>-1).map(O=>_.ConfigData[O]),j=u.Pins.map(O=>N.indexOf(O.Pin.toString())>-1?{...O,Used:!1}:O)??[];b({...u,Elements:D,Pins:j})},S=_=>{const D=Object.keys(_.Element.ConfigData).filter(j=>j.indexOf("Pin")>-1).map(j=>_.Element.ConfigData[j]),N=u.Pins.map(j=>D.indexOf(j.Pin.toString())>-1?{...j,Used:!0}:j);b({...u,Elements:[...u.Elements,_.Element],Pins:N}),x(!1),r(`/devices/${u==null?void 0:u.Type}/${u.Id}/elements/${_.Element.Id}`)};return p.useEffect(()=>{m(!1),f(c.find(_=>_.Id===i))},[c,i]),d.jsxs("div",{className:"flex select-none flex-col gap-4 overflow-y-auto",children:[t&&d.jsx(qE,{open:t.state==="blocked",children:d.jsxs(Xv,{children:[d.jsxs(Qv,{children:[d.jsx(Zv,{children:"You have unsaved changes"}),d.jsx(e1,{children:"You will lose all unsaved changes if you continue."})]}),d.jsxs(Jv,{children:[d.jsx(n1,{onClick:()=>{var _;return(_=t.reset)==null?void 0:_.call(t)},children:"Cancel"}),d.jsx(t1,{onClick:()=>{var _;return(_=t.proceed)==null?void 0:_.call(t)},children:"Continue"})]})]})}),d.jsxs("div",{className:"flex flex-row items-center gap-4",role:"navigation",children:[d.jsx(tr,{to:"/devices",className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:"Devices"}),d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:`scroll-m-20 text-3xl tracking-tight first:mt-0 ${w?"":"font-bold"}`,children:u==null?void 0:u.Name}),w&&d.jsxs(d.Fragment,{children:[d.jsx("p",{className:"scroll-m-20 text-3xl tracking-tight first:mt-0",children:">"}),d.jsx("p",{className:"scroll-m-20 text-3xl font-bold tracking-tight first:mt-0",children:w.Name})]})]}),h&&d.jsxs("div",{className:"flex flex-row items-center gap-4 rounded-md bg-green-200 p-4 text-green-700 dark:bg-green-950 dark:text-green-600",children:[d.jsx($I,{}),d.jsx("p",{children:"Device has been updated"}),d.jsx(at,{onClick:P,children:"Upload changes"})]}),d.jsxs("div",{className:"flex flex-col gap-4 overflow-auto pb-4 lg:flex-row",children:[!u&&d.jsx("div",{children:"Device not found"}),u&&d.jsx("div",{className:"flex w-auto flex-col lg:w-3/12",children:d.jsx(yR,{device:u})}),u&&u.Type==="MobiFlight"&&u.Elements&&d.jsxs(zt,{className:"flex w-auto select-none flex-col border-none bg-transparent shadow-lg hover:border-none hover:bg-transparent dark:bg-zinc-700/10 dark:hover:bg-zinc-700/20 lg:w-96 lg:overflow-y-auto",children:[d.jsxs(Rn,{className:"mt-0 flex flex-col",children:[d.jsx("div",{className:"text-xl font-semibold",children:"Components"}),d.jsx("div",{className:"text-sm",children:"Some cool sub title here"})]}),d.jsx(uH,{device:u,onElementDelete:C}),d.jsx(Lo,{className:"p-6 px-4",children:d.jsxs(tE,{open:v,onOpenChange:x,children:[d.jsx(at,{onClick:()=>x(!0),children:"Add device"}),d.jsxs(Mv,{className:"max-w-2xl items-center",children:[d.jsxs(fH,{children:["Select your new device (",u.Pins.filter(_=>!_.Used).length||0," pins free)"]}),d.jsx(DH,{device:u,onDeviceSelected:S})]})]})})]}),u&&u.Type=="Joystick"&&d.jsxs(zt,{className:"w-96",children:[d.jsx(Rn,{className:"flex flex-row items-center gap-2 text-2xl",children:"Settings"}),d.jsx("div",{children:"Joystick"})]}),d.jsx("div",{className:"grow",children:d.jsx(S$,{context:{device:u,element:w,updateDevice:b}})}),v&&d.jsxs("div",{className:"fixed inset-0 flex items-center justify-center bg-black bg-opacity-50",children:[d.jsx("div",{className:"bg-white p-4",children:"Add device"}),d.jsx(at,{onClick:()=>x(!1),children:"Close"})]})]})]})},MH=bv("text-md font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 mb-1 px-1"),Ce=p.forwardRef(({className:e,...t},n)=>d.jsx(K3,{ref:n,className:se(MH(),e),...t}));Ce.displayName=K3.displayName;const TH=e=>{const{element:t,setElement:n}=e,r=t.ConfigData.Address,o=t.ConfigData.Lines,i=t.ConfigData.Columns,a=[{value:"0x20",label:"0x20"},{value:"0x21",label:"0x21"},{value:"0x22",label:"0x22"},{value:"0x23",label:"0x23"},{value:"0x24",label:"0x24"},{value:"0x25",label:"0x25"},{value:"0x26",label:"0x26"},{value:"0x27",label:"0x27"},{value:"0x38",label:"0x38"},{value:"0x39",label:"0x39"},{value:"0x3A",label:"0x3A"},{value:"0x3B",label:"0x3B"},{value:"0x3C",label:"0x3C"},{value:"0x3D",label:"0x3D"},{value:"0x3E",label:"0x3E"},{value:"0x3F",label:"0x3F"}];return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:c=>n({...t,Name:c.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{className:"flex flex-col gap-2",children:[d.jsx(Ce,{children:"Address"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-24",options:a,value:r,onSelect:c=>n({...t,ConfigData:{...t.ConfigData,Address:c}})})})]}),d.jsxs("div",{className:"flex flex-col gap-2 w-16",children:[d.jsx(Ce,{children:"Rows"}),d.jsx(qt,{name:"Rows",value:o,onChange:c=>n({...t,ConfigData:{...t.ConfigData,Rows:c.target.value}})})]}),d.jsxs("div",{className:"flex flex-col gap-2 w-16",children:[d.jsx(Ce,{children:"Columns"}),d.jsx(qt,{name:"Columns",value:i,onChange:c=>n({...t,ConfigData:{...t.ConfigData,Columns:c.target.value}})})]}),d.jsx("div",{className:"mt-8 cursor-pointer stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400",children:d.jsxs("a",{onClick:()=>{},className:"flex flex-row mb-2 gap-2 items-center",children:[d.jsx(Ao,{}),d.jsx("p",{children:"Help me choose the right values"})]})})]})]})})},IH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.Pin,i=n.Pins.filter(a=>!a.Used||a.Pin===parseInt(t.ConfigData.Pin));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:a=>r({...t,Name:a.target.value})})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{showFilter:!1,className:"w-[120px]",options:i.map(a=>({value:a.Pin.toString(),label:`${a.Pin}${a.isPWM?" (PWM)":""}`})),value:o,onSelect:a=>r({...t,ConfigData:{...t.ConfigData,Pin:a}})})})]})]})})},OH=e=>{var a;const{element:t,device:n,setElement:r}=e,o=t.ConfigData.Pin,i=((a=n.Pins)==null?void 0:a.filter(c=>!c.Used||c.Pin===parseInt(t.ConfigData.Pin)))??[];return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:c=>r({...t,Name:c.target.value})})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:i.map(c=>({value:c.Pin.toString(),label:`${c.Pin}${c.isPWM?" (PWM)":""}`})),value:o,onSelect:c=>r({...t,ConfigData:{...t.ConfigData,Pin:c}})})})]})]})})},LH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.Pin,i=n.Pins.filter(a=>!a.Used||a.Pin===parseInt(t.ConfigData.Pin));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:a=>r({...t,Name:a.target.value})})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:i.map(a=>({value:a.Pin.toString(),label:`${a.Pin}${a.isPWM?" (PWM)":""}`})),value:o,onSelect:a=>r({...t,ConfigData:{...t.ConfigData,Pin:a}})})})]})]})})},AH=e=>{const t=gH,{element:n,device:r,setElement:o}=e,i=n.ConfigData.Pin1,a=n.ConfigData.Pin2,c=n.ConfigData.Pin3,u=n.ConfigData.Pin4,f=n.ConfigData.AutoHome==="True",h=n.ConfigData.PinHome,m=n.ConfigData.Mode,v=n.ConfigData.Backlash,x=n.ConfigData.Profile,w=r.Pins.filter(S=>!S.Used||S.Pin===parseInt(n.ConfigData.Pin1)||S.Pin===parseInt(n.ConfigData.Pin2)||S.Pin===parseInt(n.ConfigData.Pin3)||S.Pin===parseInt(n.ConfigData.Pin4)||S.Pin===parseInt(n.ConfigData.PinHome)),b=t.map(S=>({value:S.value.id,label:S.label})),P=[{value:"0",label:"Half-step mode"},{value:"1",label:"Full-step mode"},{value:"2",label:"Driver mode"}],C=S=>{const E=t.find(_=>_.value.id===S);o({...n,ConfigData:{...n.ConfigData,Mode:E.value.Mode,Backlash:E.value.Backlash.toString(),Profile:E.value.id.toString()}})};return p.useEffect(()=>{if(f&&h==="0"&&w.find(S=>S.Pin.toString()==h)===void 0){const S=w.filter(E=>!E.Used);o({...n,ConfigData:{...n.ConfigData,PinHome:S[0].Pin.toString()}})}},[f,h,w,n,o]),d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/2",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{className:"w-1/2",name:"Name",value:n.Name,onChange:S=>o({...n,Name:S.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-end",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Profile"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[360px]",options:b,value:x,onSelect:C})})]}),d.jsx("div",{className:"cursor-pointer stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400",children:d.jsxs("a",{onClick:()=>{},className:"flex flex-row mb-2 gap-2 items-center",children:[d.jsx(Ao,{}),d.jsx("p",{children:"Help me choose the right profile"})]})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin1"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:w.map(S=>({value:S.Pin.toString(),label:`${S.Pin}${S.isPWM?" (PWM)":""}`})),value:i,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,Pin1:S}})})})]}),d.jsx(or,{className:"stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400 mt-8 cursor-pointer",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,Pin2:i,Pin1:a}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin2"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:w.map(S=>({value:S.Pin.toString(),label:`${S.Pin}${S.isPWM?" (PWM)":""}`})),value:a,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,Pin2:S}})})})]}),m!=="2"&&d.jsxs(d.Fragment,{children:[d.jsx(or,{className:"stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400 mt-8 cursor-pointer",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,Pin3:a,Pin2:c}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin3"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:w.map(S=>({value:S.Pin.toString(),label:`${S.Pin}${S.isPWM?" (PWM)":""}`})),value:c,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,Pin3:S}})})})]})]}),m!=="2"&&d.jsxs(d.Fragment,{children:[d.jsx(or,{className:"stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400 mt-8 cursor-pointer",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,Pin3:u,Pin4:c}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin4"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:w.map(S=>({value:S.Pin.toString(),label:`${S.Pin}${S.isPWM?" (PWM)":""}`})),value:u,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,Pin4:S}})})})]})]}),d.jsx("div",{className:"cursor-pointer stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400 mt-8 ",children:d.jsxs("a",{onClick:()=>{},className:"flex flex-row mb-2 gap-2 items-center",children:[d.jsx(II,{}),d.jsx("p",{children:"Change direction"})]})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-center h-12",children:[d.jsxs("div",{className:"flex flex-row items-center gap-4",children:[d.jsx(Wt,{checked:f,onCheckedChange:()=>o({...n,ConfigData:{...n.ConfigData,AutoHome:f?"False":"True"}})}),d.jsx(Ce,{children:"Use Auto Home"})]}),f&&d.jsx("div",{className:"flex flex-col",children:d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:w.map(S=>({value:S.Pin.toString(),label:`${S.Pin}${S.isPWM?" (PWM)":""}`})),value:h,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,PinHome:S}})})})})]}),x==="255"&&d.jsxs(d.Fragment,{children:[d.jsxs("div",{className:"flex flex-row gap-4 items-end",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Mode"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[240px]",options:P,value:m,onSelect:S=>o({...n,ConfigData:{...n.ConfigData,Mode:S}})})})]}),d.jsx("div",{className:"cursor-pointer stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400",children:d.jsxs("a",{onClick:()=>{},className:"flex flex-row mb-2 gap-2 items-center",children:[d.jsx(Ao,{}),d.jsx("p",{children:"Help me choose the right mode"})]})})]}),d.jsx("div",{className:"flex flex-row gap-4 items-end",children:d.jsxs("div",{children:[d.jsx(Ce,{children:"Backlash"}),d.jsx("div",{className:"w-1/3",children:d.jsx(qt,{name:"Backlash",value:v,onChange:S=>o({...n,ConfigData:{...n.ConfigData,Backlash:S.target.value}})})})]})})]})]})})},FH=e=>{var x;const t=Hi(),{element:n,device:r,setElement:o}=e,i=n.ConfigData.PinS0,a=n.ConfigData.PinS1,c=n.ConfigData.PinS2,u=n.ConfigData.PinS3,f=n.ConfigData.PinData,h=(x=r.Elements)==null?void 0:x.find(w=>w.Type==="InputMultiplexer"),m=(h==null?void 0:h.Id)===n.Id,v=r.Pins.filter(w=>!w.Used||w.Pin===parseInt(n.ConfigData.PinS0)||w.Pin===parseInt(n.ConfigData.PinS1)||w.Pin===parseInt(n.ConfigData.PinS2)||w.Pin===parseInt(n.ConfigData.PinS3)||w.Pin===parseInt(n.ConfigData.PinData));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:n.Name,onChange:w=>o({...n,Name:w.target.value})})]}),m?d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 0"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:v.map(w=>({value:w.Pin.toString(),label:`${w.Pin}${w.isPWM?" (PWM)":""}`})),value:i,onSelect:w=>o({...n,ConfigData:{...n.ConfigData,PinS0:w}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,PinS0:a,PinS1:i}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 1"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:v.map(w=>({value:w.Pin.toString(),label:`${w.Pin}${w.isPWM?" (PWM)":""}`})),value:a,onSelect:w=>o({...n,ConfigData:{...n.ConfigData,PinS1:w}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,PinS1:c,PinS2:a}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 2"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:v.map(w=>({value:w.Pin.toString(),label:`${w.Pin}${w.isPWM?" (PWM)":""}`})),value:c,onSelect:w=>o({...n,ConfigData:{...n.ConfigData,PinS2:w}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{o({...n,ConfigData:{...n.ConfigData,PinS2:u,PinS3:c}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 3"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:v.map(w=>({value:w.Pin.toString(),label:`${w.Pin}${w.isPWM?" (PWM)":""}`})),value:u,onSelect:w=>o({...n,ConfigData:{...n.ConfigData,PinS3:w}})})})]})]}):d.jsxs("div",{className:"flex flex-row gap-4 items-end",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 0"}),d.jsx("div",{className:"p-2 bg-gray-200 dark:bg-background rounded-sm border text-center",children:i})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 1"}),d.jsx("div",{className:"p-2 bg-gray-200 dark:bg-background rounded-sm border text-center",children:a})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 2"}),d.jsx("div",{className:"p-2 bg-gray-200 dark:bg-background rounded-sm border text-center",children:c})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin 3"}),d.jsx("div",{className:"p-2 bg-gray-200 dark:bg-background rounded-sm border text-center",children:u})]}),d.jsx(at,{variant:"ghost",onClick:()=>{t(`/devices/${r.Type}/${r.Id}/elements/${h.Id}`)},children:"Edit shared settings"})]}),d.jsx("div",{className:"flex flex-row gap-4",children:d.jsxs("div",{children:[d.jsx(Ce,{children:"Data"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:v.map(w=>({value:w.Pin.toString(),label:`${w.Pin}${w.isPWM?" (PWM)":""}`})),value:f,onSelect:w=>o({...n,ConfigData:{...n.ConfigData,PinData:w}})})})]})})]})})},zH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.PinData,i=t.ConfigData.PinLatch,a=t.ConfigData.PinClock,c=t.ConfigData.NumberOfModules,u=Array.from({length:8},(h,m)=>({value:`${m+1}`,label:`${m+1}`})),f=n.Pins.filter(h=>!h.Used||h.Pin===parseInt(t.ConfigData.PinData)||h.Pin===parseInt(t.ConfigData.PinClock)||h.Pin===parseInt(t.ConfigData.PinLatch));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:h=>r({...t,Name:h.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Data"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:o,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinData:h}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinData:i,PinLatch:o}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Latch / Pin CS"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:i,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinLatch:h}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinLatch:a,PinClock:i}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Clock"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:a,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinClock:h}})})})]})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Number of modules"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:u,value:c,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,NumberOfModules:h}})})})]})]})})},UH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.PinData,i=t.ConfigData.PinLatch,a=t.ConfigData.PinClock,c=t.ConfigData.NumberOfModules,u=Array.from({length:8},(h,m)=>({value:`${m+1}`,label:`${m+1}`})),f=n.Pins.filter(h=>!h.Used||h.Pin===parseInt(t.ConfigData.PinData)||h.Pin===parseInt(t.ConfigData.PinClock)||h.Pin===parseInt(t.ConfigData.PinLatch));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:h=>r({...t,Name:h.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Data"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:o,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinData:h}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinData:i,PinLatch:o}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Latch / Pin CS"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:i,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinLatch:h}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer hover:stroke-blue-300 transition-all",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinLatch:a,PinClock:i}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Clock"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:f.map(h=>({value:h.Pin.toString(),label:`${h.Pin}${h.isPWM?" (PWM)":""}`})),value:a,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,PinClock:h}})})})]})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Number of modules"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:u,value:c,onSelect:h=>r({...t,ConfigData:{...t.ConfigData,NumberOfModules:h}})})})]})]})})},BH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.Model,i=t.ConfigData.PinData,a=t.ConfigData.PinLatch,c=t.ConfigData.PinClock,u=n.Pins.filter(m=>!m.Used||m.Pin===parseInt(t.ConfigData.PinData)||m.Pin===parseInt(t.ConfigData.PinClock)||m.Pin===parseInt(t.ConfigData.PinLatch)),f=t.ConfigData.NumberOfModules,h=Array.from({length:8},(m,v)=>({value:`${v+1}`,label:`${v+1}`}));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:m=>r({...t,Name:m.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4 items-end",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Model"}),d.jsx("div",{className:"w-1/2",children:d.jsx(Xe,{className:"w-[240px]",options:[{value:"0",label:"MAX7219"},{value:"1",label:"TM1637 - (4 digits)"},{value:"2",label:"TM1637 - (6 digits)"}],value:o,onSelect:m=>r({...t,ConfigData:{...t.ConfigData,Model:m}})})})]}),d.jsx("div",{className:"cursor-pointer stroke-primary text-primary hover:stroke-blue-400 hover:text-blue-400",children:d.jsxs("a",{onClick:()=>{},className:"flex flex-row mb-2 gap-2",children:[d.jsx(Ao,{}),d.jsx("p",{children:"Help me choose the right model"})]})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Data"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:u.map(m=>({value:m.Pin.toString(),label:`${m.Pin}${m.isPWM?" (PWM)":""}`})),value:i,onSelect:m=>r({...t,ConfigData:{...t.ConfigData,PinData:m}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinData:a,PinLatch:i}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Latch / Pin CS"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:u.map(m=>({value:m.Pin.toString(),label:`${m.Pin}${m.isPWM?" (PWM)":""}`})),value:a,onSelect:m=>r({...t,ConfigData:{...t.ConfigData,PinLatch:m}})})})]}),d.jsx(or,{className:"stroke-primary mt-8 cursor-pointer",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinLatch:c,PinClock:a}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin Clock"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:u.map(m=>({value:m.Pin.toString(),label:`${m.Pin}${m.isPWM?" (PWM)":""}`})),value:c,onSelect:m=>r({...t,ConfigData:{...t.ConfigData,PinClock:m}})})})]})]}),o==="0"&&d.jsxs("div",{children:[d.jsx(Ce,{children:"Number of modules"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:h,value:f,onSelect:m=>r({...t,ConfigData:{...t.ConfigData,NumberOfModules:m}})})})]})]})})},VH=()=>d.jsx("div",{children:"CustomDeviceForm"}),HH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.Pin,i=n.Pins.filter(a=>!a.Used||a.Pin===parseInt(t.ConfigData.Pin));return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:a=>r({...t,Name:a.target.value})})]}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:i.map(a=>({value:a.Pin.toString(),label:`${a.Pin}${a.isPWM?" (PWM)":""}`})),value:o,onSelect:a=>r({...t,ConfigData:{...t.ConfigData,Pin:a}})})})]})]})})},WH=e=>{const{element:t,device:n,setElement:r}=e,o=t.ConfigData.PinLeft,i=t.ConfigData.PinRight,a=t.ConfigData.Model,c=n.Pins.filter(f=>!f.Used||f.Pin===parseInt(t.ConfigData.PinLeft)||f.Pin===parseInt(t.ConfigData.PinRight)),u=[{value:"0",label:"1 detent per cycle (11)"},{value:"1",label:"1 detent per cycle (00)"},{value:"2",label:"2 detent per cycle (00, 11)"},{value:"3",label:"2 detent per cycle (01, 10)"},{value:"4",label:"4 detent per cycle"}];return d.jsx(d.Fragment,{children:d.jsxs("div",{className:"flex flex-col gap-8",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Name"}),d.jsx(qt,{name:"Name",value:t.Name,onChange:f=>r({...t,Name:f.target.value})})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{className:"w-1/4",children:[d.jsx(Ce,{children:"Encoder type"}),d.jsx("div",{children:d.jsx(Xe,{className:"w-full",options:u,value:a,onSelect:f=>r({...t,ConfigData:{...t.ConfigData,Model:f}})})})]}),d.jsx(Ao,{className:"w-8 h-8 stroke-primary hover:stroke-blue-300 transition-all mt-7 cursor-pointer"})]}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{children:[d.jsx(Ce,{children:"Left Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:c.map(f=>({value:f.Pin.toString(),label:`${f.Pin}${f.isPWM?" (PWM)":""}`})),value:o,onSelect:f=>r({...t,ConfigData:{...t.ConfigData,PinLeft:f}})})})]}),d.jsx(or,{className:"stroke-primary hover:stroke-blue-300 transition-all mt-8 cursor-pointer",onClick:()=>{r({...t,ConfigData:{...t.ConfigData,PinLeft:i,PinRight:o}})}}),d.jsxs("div",{children:[d.jsx(Ce,{children:"Right Pin"}),d.jsx("div",{className:"w-1/3",children:d.jsx(Xe,{className:"w-[120px]",options:c.map(f=>({value:f.Pin.toString(),label:`${f.Pin}${f.isPWM?" (PWM)":""}`})),value:i,onSelect:f=>r({...t,ConfigData:{...t.ConfigData,PinRight:f}})})})]})]})]})})},KH=()=>{const{element:e,device:t,updateDevice:n}=qT(),r=o=>{const i=t.Elements.find(u=>u.Id===o.Id),a=t.Pins;Object.keys(i.ConfigData).forEach(u=>{if(i.ConfigData[u]!==o.ConfigData[u]){const f=a.find(m=>m.Pin===parseInt(o.ConfigData[u]));f&&(f.Used=!0);const h=a.find(m=>m.Pin===parseInt(i.ConfigData[u]));h&&(h.Used=!1)}});const c={...t,Elements:t.Elements.map(u=>u.Id===o.Id?o:u),Pins:a};n(c)};return d.jsxs(zt,{className:"grow select-none bg-transparent shadow-none hover:border-none border-none hover:bg-transparent dark:bg-zinc-700/10 dark:hover:bg-zinc-700/40",children:[d.jsxs(Rn,{className:"flex flex-col mt-0",children:[d.jsxs("div",{className:"flex flex-row gap-2 mt-0 items-center",children:[d.jsx(vp,{variant:e==null?void 0:e.Type}),d.jsxs("div",{className:"text-xl font-semibold",children:["Edit ",e==null?void 0:e.Type]})]}),d.jsx("div",{className:"text-sm",children:"Some cool sub title here"})]}),d.jsxs(Un,{children:[(e==null?void 0:e.Type)=="AnalogInput"&&d.jsx(HH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="Button"&&d.jsx(OH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="CustomDevice"&&d.jsx(VH,{}),(e==null?void 0:e.Type)=="Encoder"&&d.jsx(WH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="InputMultiplexer"&&d.jsx(FH,{device:t,element:e,setElement:r,allowEditPinSx:!1}),(e==null?void 0:e.Type)=="InputShiftRegister"&&d.jsx(UH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="LcdDisplay"&&d.jsx(TH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="LedModule"&&d.jsx(BH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="Output"&&d.jsx(IH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="Servo"&&d.jsx(LH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="ShiftRegister"&&d.jsx(zH,{device:t,element:e,setElement:r}),(e==null?void 0:e.Type)=="Stepper"&&d.jsx(AH,{device:t,element:e,setElement:r})]}),d.jsx(Lo,{className:"flex justify-between"})]})},GH=e=>(e=e.toLowerCase(),e==="error"?"text-red-600":e==="warn"?"text-yellow-600":e==="info"?"text-blue-600":"text-gray-400"),qH=[{accessorKey:"Severity",size:75,header:()=>d.jsx("div",{className:"w-8",children:"Level"}),cell:({row:e})=>{const t=GH(e.getValue("Severity"));return d.jsx("div",{className:"w-8 justify-center flex flex-row",children:d.jsx(uI,{className:se(t,"dark:bg-gray-800 dark:data-[state=checked]:bg-gray-700")})})},filterFn:(e,t,n)=>n.includes(e.getValue(t))},{accessorKey:"Timestamp",size:150,cell:({row:e})=>{const t=new Date(e.getValue("Timestamp")).toLocaleTimeString(ln.language,{hour:"2-digit",minute:"2-digit",second:"2-digit"});return d.jsx("div",{className:"w-64",children:d.jsx("p",{className:"font-semibold",children:t})})},header:({column:e})=>d.jsx("div",{className:"w-64",children:d.jsxs(at,{variant:"ghost",onClick:()=>e.toggleSorting(e.getIsSorted()==="asc"),children:["Time",d.jsx(aP,{className:"opacity-0 group-hover/header:opacity-100 ml-2 h-4 w-4 animate-in animate-out duration-300 "})]})})},{size:1,accessorKey:"Message",header:()=>d.jsx("div",{className:"grow",children:"Messages"}),cell:({row:e})=>d.jsx("div",{className:"grow",children:d.jsx("p",{className:"text-md font-semibold",children:e.getValue("Message")})})}];function YH({table:e,items:t}){var o;const n=e.getState().columnFilters.length>0,r=[...new Set(t.map(i=>i.Severity))].map(i=>({label:i.split("/")[0],value:i}));return d.jsx("div",{className:"flex items-center justify-between",children:d.jsxs("div",{className:"flex flex-1 items-center space-x-2 h-auto",children:[d.jsx(qt,{placeholder:"Filter items...",value:((o=e.getColumn("Message"))==null?void 0:o.getFilterValue())??"",onChange:i=>{var a;return(a=e.getColumn("Message"))==null?void 0:a.setFilterValue(i.target.value)},className:"h-8 w-[150px] lg:w-[250px]"}),e.getColumn("Severity")&&d.jsx(ms,{column:e.getColumn("Severity"),title:"Severity",options:r}),n&&d.jsxs(at,{variant:"default",onClick:()=>e.resetColumnFilters(),className:"h-8 px-2 lg:px-3",children:["Reset",d.jsx(Yf,{className:"ml-2 h-4 w-4"})]})]})})}function XH({columns:e,data:t}){var c;const[n,r]=p.useState([]),[o,i]=p.useState([]),a=m1({data:t,columns:e,onSortingChange:r,onColumnFiltersChange:i,getCoreRowModel:d1(),getSortedRowModel:g1(),getFilteredRowModel:f1(),getFacetedRowModel:p1(),getFacetedUniqueValues:h1(),state:{sorting:n,columnFilters:o},defaultColumn:{size:10,minSize:1,maxSize:250}});return d.jsxs("div",{className:"flex flex-col gap-4 grow overflow-y-auto",children:[d.jsx("div",{className:"",children:d.jsx(YH,{table:a,items:t})}),d.jsx("div",{className:"flex flex-col overflow-y-auto border rounded-lg",children:d.jsxs(dp,{className:"w-full table-fixed",children:[d.jsx(fp,{className:"bg-slate-700 dark:bg-slate-800 text-white group/header",children:a.getHeaderGroups().map(u=>d.jsx(uo,{className:"hover:bg-slate-800",children:u.headers.map(f=>d.jsx(hp,{size:f.column.getSize(),className:"text-white px-2 sticky top-0 bg-slate-700 dark:bg-slate-800",children:f.isPlaceholder?null:Ya(f.column.columnDef.header,f.getContext())},f.id))},u.id))}),d.jsx(pp,{className:"overflow-y-auto",children:(c=a.getRowModel().rows)!=null&&c.length?a.getRowModel().rows.map(u=>d.jsx(uo,{"data-state":u.getIsSelected()&&"selected",children:u.getVisibleCells().map(f=>d.jsx(Ns,{className:"p-2",children:Ya(f.column.columnDef.cell,f.getContext())},f.id))},u.id)):d.jsx(uo,{children:d.jsx(Ns,{colSpan:e.length,className:"h-24 text-center",children:"No results."})})})]})})]})}const wR=Ms(e=>({messages:[],addMessage:t=>e(n=>({messages:[...n.messages,t]})),clearMessages:()=>e(()=>({messages:[]}))})),QH=()=>{const{messages:e}=wR();return d.jsx(XH,{columns:qH,data:e})},JH=()=>d.jsxs("div",{className:"h-full flex flex-col gap-4 overflow-y-auto",children:[d.jsx("h2",{className:"pb-4 text-3xl font-semibold tracking-tight first:mt-0",children:"Logs"}),d.jsx("div",{className:"grow flex flex-col overflow-y-auto",children:d.jsx(QH,{})})]}),ZH=()=>d.jsxs("div",{className:"flex flex-col gap-4 overflow-y-auto",children:[d.jsx(dH,{children:"Test Page"}),d.jsx("div",{className:"overflow-y-auto",children:d.jsxs("ul",{children:[d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"}),d.jsx("li",{children:"Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolor nemo labore, sapiente eveniet alias nihil! Necessitatibus, voluptate dolorem? Recusandae necessitatibus sint, consectetur tenetur molestias dolorum dignissimos debitis in id? Perferendis?"})]})})]}),eW={theme:"system",setTheme:()=>null},bR=p.createContext(eW),tW=()=>{const e=p.useContext(bR);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};function nW(e){const{setTheme:t}=tW();return d.jsxs(S1,{children:[d.jsx(W3,{asChild:!0,children:d.jsxs(at,{variant:"outline",className:se(e.className,"w-12 h-12 p-0"),children:[d.jsx(AI,{className:"h-[1.5rem] w-[1.5rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0 stroke-14"}),d.jsx(RI,{className:"absolute h-[1.5rem] w-[1.5rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),d.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}),d.jsxs(mp,{align:"end",children:[d.jsx(hn,{onClick:()=>t("light"),children:"Light"}),d.jsx(hn,{onClick:()=>t("dark"),children:"Dark"}),d.jsx(hn,{onClick:()=>t("system"),children:"System"})]})]})}const rW=e=>{const t=tl(),n="border-none hover:bg-gray-200 w-12 h-12 group/side",r="dark:bg-gray-700 border-none bg-primary stroke-white";return d.jsxs("div",{className:se("z-50 flex w-16 min-w-16 flex-col items-center justify-between bg-zinc-400 pb-8 dark:bg-slate-800",e.className),children:[d.jsxs("div",{className:"flex flex-col items-center gap-8 pt-24",children:[d.jsx(Pa,{to:"/devices",children:o=>d.jsx(at,{variant:"outline",className:o.isActive?`${r} ${n}`:n,size:"icon",children:d.jsx(bI,{className:o.isActive?"stroke-white group-hover/side:stroke-blue-900":"group-hover/side:stroke-blue-900"})})}),d.jsx(Pa,{to:`/projects/${t.id}/configs`,children:o=>d.jsx(at,{variant:"outline",className:o.isActive?`${r} ${n}`:n,size:"icon",children:d.jsx(EI,{className:o.isActive?"stroke-white group-hover/side:stroke-blue-900":"group-hover/side:stroke-blue-900"})})})]}),d.jsxs("div",{className:"flex flex-col items-center gap-8",children:[d.jsx(Pa,{to:"/log",children:o=>d.jsx(at,{variant:"outline",className:o.isActive?`${r} ${n}`:n,size:"icon",children:d.jsx(PI,{className:o.isActive?"stroke-white group-hover/side:stroke-blue-900":"group-hover/side:stroke-blue-900"})})}),d.jsx(Pa,{to:"/settings",children:o=>d.jsx(at,{variant:"outline",className:o.isActive?`${r} ${n}`:n,size:"icon",children:d.jsx(LI,{className:o.isActive?"stroke-white group-hover/side:stroke-blue-900":"group-hover/side:stroke-blue-900"})})}),d.jsx(nW,{className:"hover:border hover:border-gray-500"})]})]})},oW=e=>{const t="stroke-current fill-none "+(e.className?e.className:"");return d.jsxs("svg",{className:t,width:"37.794998",height:"37.795277",viewBox:"0 0 9.9999266 10",version:"1.1",id:"svg891",children:[d.jsx("defs",{id:"defs885"}),d.jsx("metadata",{id:"metadata888"}),d.jsx("g",{id:"layer1",children:d.jsx("path",{id:"path847",d:"M 2.8254303,0.66702107 C 2.4003304,0.66703194 2.0557278,1.0116518 2.0557405,1.4367517 c 9.9e-6,0.4250837 0.3446062,0.7696799 0.7696898,0.7696908 0.2035117,-1e-5 0.3987361,-0.080616 0.5429723,-0.2241869 0.1523521,0.1402914 0.3654164,0.4017725 0.463558,0.827052 0.048348,0.2095021 0.080997,0.3680278 0.1047221,0.4938457 C 3.3409601,3.5135709 2.8618544,3.9658632 2.6175125,4.5484918 L 2.1203312,4.3487272 2.1741629,4.0311519 1.7965761,4.1163635 C 1.7220329,3.7699236 1.4611146,3.4444173 1.0330271,3.4444291 c -0.42807203,1e-5 -0.77508476,0.3470408 -0.77507298,0.7751129 9.97e-6,0.4280567 0.34701636,0.775063 0.77507298,0.775073 0.2447371,-1.8e-6 0.4750967,-0.1155917 0.6213831,-0.3117969 l 0.2613842,0.2472043 0.053832,-0.1399107 0.5136888,0.202937 c -0.02663,0.1388929 -0.040036,0.2799964 -0.040054,0.4214191 3.6e-6,0.5182979 0.1798081,1.0205433 0.5087489,1.4210814 L 2.0449796,7.6859404 1.8404907,7.4015452 c 0,0 -0.038568,0.3138263 -0.055128,0.3877522 -0.1064733,-0.050342 -0.203945,-0.049535 -0.3217194,-0.049526 -0.4399478,10e-6 -0.796593,0.3566561 -0.79660387,0.7966039 9.97e-6,0.4399479 0.35665607,0.796594 0.79660387,0.7966039 0.4399488,-9.9e-6 0.7965948,-0.356656 0.7966048,-0.7966039 1.8e-6,-0.069902 -0.0092,-0.1394946 -0.027355,-0.206995 L 2.6074333,8.2564684 2.4701747,8.0492368 3.441597,7.2783803 c 0.3675637,0.2447008 0.7992732,0.375262 1.24084,0.3752647 0.6209452,-4.6e-6 1.2520676,-0.2806944 1.675575,-0.7348022 v 0 0 l 0.6510499,0.3016134 c -9.019e-4,0.015191 -0.00136,0.03041 -0.00136,0.045638 1.08e-5,0.422126 0.3422214,0.7643193 0.7643484,0.7643076 C 8.1941613,8.0303916 8.5363483,7.6882055 8.5363582,7.266094 8.53637,6.843967 8.1941767,6.5017565 7.7720507,6.5017456 c -0.2472243,0 -0.4791801,0.1195772 -0.6225895,0.3209552 L 6.6447385,6.5276481 C 6.7371072,6.3613436 6.921587,5.7949424 6.9215788,5.4144741 6.9215861,5.2042876 6.8920027,4.9951471 6.8336842,4.7932107 7.033883,4.7326535 7.3088071,4.6224567 7.5782683,4.4456233 7.922754,4.2195547 8.1595636,4.0150051 8.1595636,4.0150051 l 0.096889,0.1399506 c 0,0 0.183015,-0.043064 0.2583704,-0.1937777 0.035549,-0.07109 0.080462,-0.2257886 0.1182194,-0.3696413 0.1127864,0.065814 0.2410262,0.1004964 0.37161,0.1005046 C 9.4118987,3.6920295 9.7420345,3.3618941 9.7420454,2.9546468 9.7420572,2.547385 9.4119141,2.2172242 9.0046523,2.2172134 8.5973741,2.2172016 8.2672061,2.5473687 8.2672179,2.9546468 c 3.6e-6,0.078985 0.012699,0.1574615 0.037598,0.2324217 L 7.7720461,3.218403 7.6428609,3.2829938 7.7397489,3.4444354 6.5878858,4.1657212 6.5522548,4.1825895 C 5.9749985,3.5227048 5.341833,3.146309 4.6146737,3.1763393 4.5525031,2.943217 4.5546785,2.9264203 4.2329854,2.3060279 4.0795945,2.0102111 3.698295,1.7022809 3.5786987,1.5950218 3.5896391,1.5429757 3.5951592,1.4899371 3.5951682,1.4367535 3.59518,1.0116382 3.2505529,0.6670111 2.8254385,0.66702288 Z"})})]})},SR=Ms(e=>({state:"Stopped",setState:t=>e(()=>({state:t}))})),iW=()=>{const{publish:e}=Gc(),{state:t}=SR(),{settings:n,updateSetting:r}=df();return d.jsxs("div",{className:"flex gap-4 items-center",children:[d.jsx("div",{className:"bg-green-800 py-2 px-2 aria-disabled:bg-gray-600 cursor-pointer aria-disabled:cursor-not-allowed","aria-disabled":t=="Running"||t=="Testing",onClick:()=>{e({key:"ExecutionUpdate",payload:"Running"})},children:d.jsx(_I,{className:"h-8 w-8 text-white"})}),d.jsx("div",{className:"bg-blue-800 py-2 px-2 aria-disabled:bg-gray-600 cursor-pointer aria-disabled:cursor-not-allowed","aria-disabled":t=="Running"||t=="Testing",onClick:()=>{e({key:"ExecutionUpdate",payload:"Testing"})},children:d.jsx(NI,{className:"h-8 w-8 text-white"})}),d.jsx("div",{className:"bg-red-800 py-2 px-2 aria-disabled:bg-gray-600 cursor-pointer aria-disabled:cursor-not-allowed","aria-disabled":t=="Stopped",onClick:()=>{e({key:"ExecutionUpdate",payload:"Stopped"})},children:d.jsx(kI,{className:"h-8 w-8 text-white"})}),d.jsxs("div",{className:"flex items-center gap-2",children:[d.jsx(Wt,{checked:n.AutoRun,onCheckedChange:()=>r({AutoRun:!n.AutoRun})}),"AutoRun"]})]})},sW=()=>d.jsxs("div",{className:"flex flex-row h-12 justify-between items-center pr-16 gap-4 shadow-gray-300 dark:shadow-gray-800 dark:shadow-lg shadow-md",children:[d.jsx("div",{className:"pl-12",children:d.jsx(iW,{})}),d.jsxs("div",{className:"flex flex-row gap-4",children:[d.jsxs("div",{className:"lg:flex lg:flex-row gap-4 hidden lg:visible",children:[d.jsx("div",{className:"bg-purple-800 py-2 px-2",children:d.jsx(tr,{to:"https://mobiflight.com/discord",target:"_blank",children:d.jsx(fI,{className:"h-8 w-8 text-white"})})}),d.jsx("div",{className:"bg-red-700 py-2 px-2",children:d.jsx(tr,{to:"https://youtube.com/mobiflight",target:"_blank",children:d.jsx(gI,{className:"h-8 w-8 text-white"})})}),d.jsx("div",{className:"bg-black py-2 px-2",children:d.jsx(tr,{to:"https://github.com/mobiflight",target:"_blank",children:d.jsx(pI,{className:"h-8 w-8 text-white"})})}),d.jsx("div",{className:"bg-orange-400 py-2 px-2",children:d.jsx(tr,{to:"https://hubhop.mobiflight.com",target:"_blank",children:d.jsx(oW,{className:"h-8 w-8 text-white"})})}),d.jsx(tr,{to:"https://paypal.me/mobiflight",target:"_blank",children:d.jsxs("div",{className:"bg-yellow-500 py-2 px-1 flex items-center gap-1 pr-2 italic text-white font-bold",children:[d.jsx(hI,{className:"h-8 w-8 text-white"}),d.jsx("div",{children:"Donate"})]})})]}),d.jsx("div",{className:"min-w-12",children:d.jsx("img",{src:C1,className:"w-12 h-12"})})]})]}),aW=p.createContext(void 0),lW={setTheme:e=>{},themes:[]},cW=()=>{var e;return(e=p.useContext(aW))!==null&&e!==void 0?e:lW};function uW(e,{insertAt:t}={}){if(!e||typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}uW(`html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999}[data-sonner-toaster][data-x-position=right]{right:max(var(--offset),env(safe-area-inset-right))}[data-sonner-toaster][data-x-position=left]{left:max(var(--offset),env(safe-area-inset-left))}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:max(var(--offset),env(safe-area-inset-top))}[data-sonner-toaster][data-y-position=bottom]{bottom:max(var(--offset),env(safe-area-inset-bottom))}[data-sonner-toast]{--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}[data-sonner-toast] [data-description]{font-weight:400;line-height:1.4;color:inherit}[data-sonner-toast] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast] [data-icon]>*{flex-shrink:0}[data-sonner-toast] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toast][data-theme=dark] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;background:var(--gray1);color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";position:absolute;left:0;right:0;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast]:after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y: translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y: translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount, 0px));transition:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation:swipe-out .2s ease-out forwards}@keyframes swipe-out{0%{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount)));opacity:1}to{transform:translateY(calc(var(--lift) * var(--offset) + var(--swipe-amount) + var(--lift) * -100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;--mobile-offset: 16px;right:var(--mobile-offset);left:var(--mobile-offset);width:100%}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - 32px)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset)}[data-sonner-toaster][data-y-position=bottom]{bottom:20px}[data-sonner-toaster][data-y-position=top]{top:20px}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset);right:var(--mobile-offset);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-rich-colors=true] [data-sonner-toast][data-type=success],[data-rich-colors=true] [data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true] [data-sonner-toast][data-type=info],[data-rich-colors=true] [data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true] [data-sonner-toast][data-type=warning],[data-rich-colors=true] [data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true] [data-sonner-toast][data-type=error],[data-rich-colors=true] [data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} -`);var dW=e=>{switch(e){case"success":return hW;case"info":return mW;case"warning":return gW;case"error":return vW;default:return null}},fW=Array(12).fill(0),pW=({visible:e})=>ce.createElement("div",{className:"sonner-loading-wrapper","data-visible":e},ce.createElement("div",{className:"sonner-spinner"},fW.map((t,n)=>ce.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${n}`})))),hW=ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ce.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),gW=ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},ce.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),mW=ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ce.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),vW=ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},ce.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),xW=()=>{let[e,t]=ce.useState(!1);return ce.useEffect(()=>{let n=()=>{t(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},h0=1,yW=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,o=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:h0++,i=this.toasts.find(c=>c.id===o),a=e.dismissible===void 0?!0:e.dismissible;return i?this.toasts=this.toasts.map(c=>c.id===o?(this.publish({...c,...e,id:o,title:n}),{...c,...e,id:o,dismissible:a,title:n}):c):this.addToast({title:n,...r,dismissible:a,id:o}),o},this.dismiss=e=>(e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let r=e instanceof Promise?e:e(),o=n!==void 0;return r.then(i=>{if(i&&typeof i.ok=="boolean"&&!i.ok){o=!1;let a=typeof t.error=="function"?t.error(`HTTP error! status: ${i.status}`):t.error,c=typeof t.description=="function"?t.description(`HTTP error! status: ${i.status}`):t.description;this.create({id:n,type:"error",message:a,description:c})}else if(t.success!==void 0){o=!1;let a=typeof t.success=="function"?t.success(i):t.success,c=typeof t.description=="function"?t.description(i):t.description;this.create({id:n,type:"success",message:a,description:c})}}).catch(i=>{if(t.error!==void 0){o=!1;let a=typeof t.error=="function"?t.error(i):t.error,c=typeof t.description=="function"?t.description(i):t.description;this.create({id:n,type:"error",message:a,description:c})}}).finally(()=>{var i;o&&(this.dismiss(n),n=void 0),(i=t.finally)==null||i.call(t)}),n},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||h0++;return this.create({jsx:e(n),id:n,...t}),n},this.subscribers=[],this.toasts=[]}},Fr=new yW,wW=(e,t)=>{let n=(t==null?void 0:t.id)||h0++;return Fr.addToast({title:e,...t,id:n}),n},bW=wW,SW=Object.assign(bW,{success:Fr.success,info:Fr.info,warning:Fr.warning,error:Fr.error,custom:Fr.custom,message:Fr.message,promise:Fr.promise,dismiss:Fr.dismiss,loading:Fr.loading}),CW=3,$W="32px",PW=4e3,EW=356,CR=14,RW=20,_W=200;function NW(...e){return e.filter(Boolean).join(" ")}var kW=e=>{var t,n,r,o,i,a,c;let{invert:u,toast:f,unstyled:h,interacting:m,setHeights:v,visibleToasts:x,heights:w,index:b,toasts:P,expanded:C,removeToast:S,closeButton:E,style:_,cancelButtonStyle:D,actionButtonStyle:N,className:j="",descriptionClassName:O="",duration:V,position:J,gap:ie=CR,loadingIcon:te,expandByDefault:ge,classNames:le,icons:T,closeButtonAriaLabel:W="Close toast",pauseWhenPageIsHidden:Y,cn:U}=e,[B,L]=ce.useState(!1),[H,oe]=ce.useState(!1),[ne,fe]=ce.useState(!1),[Se,me]=ce.useState(!1),[pe,Te]=ce.useState(0),[Fe,We]=ce.useState(0),Pe=ce.useRef(null),Me=ce.useRef(null),Mt=b===0,lt=b+1<=x,Qe=f.type,tn=f.dismissible!==!1,Ut=f.className||"",Jo=f.descriptionClassName||"",Xr=ce.useMemo(()=>w.findIndex(De=>De.toastId===f.id)||0,[w,f.id]),Dr=ce.useMemo(()=>{var De;return(De=f.closeButton)!=null?De:E},[f.closeButton,E]),vt=ce.useMemo(()=>f.duration||V||PW,[f.duration,V]),dr=ce.useRef(0),xn=ce.useRef(0),Kn=ce.useRef(0),Yt=ce.useRef(null),[Ki,fr]=J.split("-"),jr=ce.useMemo(()=>w.reduce((De,nt,ft)=>ft>=Xr?De:De+nt.height,0),[w,Xr]),yn=xW(),Zo=f.invert||u,Qr=Qe==="loading";xn.current=ce.useMemo(()=>Xr*ie+jr,[Xr,jr]),ce.useEffect(()=>{L(!0)},[]),ce.useLayoutEffect(()=>{if(!B)return;let De=Me.current,nt=De.style.height;De.style.height="auto";let ft=De.getBoundingClientRect().height;De.style.height=nt,We(ft),v(Xt=>Xt.find(jn=>jn.toastId===f.id)?Xt.map(jn=>jn.toastId===f.id?{...jn,height:ft}:jn):[{toastId:f.id,height:ft,position:f.position},...Xt])},[B,f.title,f.description,v,f.id]);let wn=ce.useCallback(()=>{oe(!0),Te(xn.current),v(De=>De.filter(nt=>nt.toastId!==f.id)),setTimeout(()=>{S(f)},_W)},[f,S,v,xn]);ce.useEffect(()=>{if(f.promise&&Qe==="loading"||f.duration===1/0||f.type==="loading")return;let De,nt=vt;return C||m||Y&&yn?(()=>{if(Kn.current<dr.current){let ft=new Date().getTime()-dr.current;nt=nt-ft}Kn.current=new Date().getTime()})():(dr.current=new Date().getTime(),De=setTimeout(()=>{var ft;(ft=f.onAutoClose)==null||ft.call(f,f),wn()},nt)),()=>clearTimeout(De)},[C,m,ge,f,vt,wn,f.promise,Qe,Y,yn]),ce.useEffect(()=>{let De=Me.current;if(De){let nt=De.getBoundingClientRect().height;return We(nt),v(ft=>[{toastId:f.id,height:nt,position:f.position},...ft]),()=>v(ft=>ft.filter(Xt=>Xt.toastId!==f.id))}},[v,f.id]),ce.useEffect(()=>{f.delete&&wn()},[wn,f.delete]);function Gi(){return T!=null&&T.loading?ce.createElement("div",{className:"loader","data-visible":Qe==="loading"},T.loading):te?ce.createElement("div",{className:"sonner-loader","data-visible":Qe==="loading"},te):ce.createElement(pW,{visible:Qe==="loading"})}return ce.createElement("li",{"aria-live":f.important?"assertive":"polite","aria-atomic":"true",role:"status",tabIndex:0,ref:Me,className:U(j,Ut,le==null?void 0:le.toast,(t=f==null?void 0:f.classNames)==null?void 0:t.toast,le==null?void 0:le.default,le==null?void 0:le[Qe],(n=f==null?void 0:f.classNames)==null?void 0:n[Qe]),"data-sonner-toast":"","data-styled":!(f.jsx||f.unstyled||h),"data-mounted":B,"data-promise":!!f.promise,"data-removed":H,"data-visible":lt,"data-y-position":Ki,"data-x-position":fr,"data-index":b,"data-front":Mt,"data-swiping":ne,"data-dismissible":tn,"data-type":Qe,"data-invert":Zo,"data-swipe-out":Se,"data-expanded":!!(C||ge&&B),style:{"--index":b,"--toasts-before":b,"--z-index":P.length-b,"--offset":`${H?pe:xn.current}px`,"--initial-height":ge?"auto":`${Fe}px`,..._,...f.style},onPointerDown:De=>{Qr||!tn||(Pe.current=new Date,Te(xn.current),De.target.setPointerCapture(De.pointerId),De.target.tagName!=="BUTTON"&&(fe(!0),Yt.current={x:De.clientX,y:De.clientY}))},onPointerUp:()=>{var De,nt,ft,Xt;if(Se||!tn)return;Yt.current=null;let jn=Number(((De=Me.current)==null?void 0:De.style.getPropertyValue("--swipe-amount").replace("px",""))||0),go=new Date().getTime()-((nt=Pe.current)==null?void 0:nt.getTime()),cl=Math.abs(jn)/go;if(Math.abs(jn)>=RW||cl>.11){Te(xn.current),(ft=f.onDismiss)==null||ft.call(f,f),wn(),me(!0);return}(Xt=Me.current)==null||Xt.style.setProperty("--swipe-amount","0px"),fe(!1)},onPointerMove:De=>{var nt;if(!Yt.current||!tn)return;let ft=De.clientY-Yt.current.y,Xt=De.clientX-Yt.current.x,jn=(Ki==="top"?Math.min:Math.max)(0,ft),go=De.pointerType==="touch"?10:2;Math.abs(jn)>go?(nt=Me.current)==null||nt.style.setProperty("--swipe-amount",`${ft}px`):Math.abs(Xt)>go&&(Yt.current=null)}},Dr&&!f.jsx?ce.createElement("button",{"aria-label":W,"data-disabled":Qr,"data-close-button":!0,onClick:Qr||!tn?()=>{}:()=>{var De;wn(),(De=f.onDismiss)==null||De.call(f,f)},className:U(le==null?void 0:le.closeButton,(r=f==null?void 0:f.classNames)==null?void 0:r.closeButton)},ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},ce.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),ce.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))):null,f.jsx||ce.isValidElement(f.title)?f.jsx||f.title:ce.createElement(ce.Fragment,null,Qe||f.icon||f.promise?ce.createElement("div",{"data-icon":""},f.promise||f.type==="loading"&&!f.icon?f.icon||(T==null?void 0:T.loading)||Gi():null,f.type!=="loading"?f.icon||(T==null?void 0:T[Qe])||dW(Qe):null):null,ce.createElement("div",{"data-content":""},ce.createElement("div",{"data-title":"",className:U(le==null?void 0:le.title,(o=f==null?void 0:f.classNames)==null?void 0:o.title)},f.title),f.description?ce.createElement("div",{"data-description":"",className:U(O,Jo,le==null?void 0:le.description,(i=f==null?void 0:f.classNames)==null?void 0:i.description)},f.description):null),f.cancel?ce.createElement("button",{"data-button":!0,"data-cancel":!0,style:f.cancelButtonStyle||D,onClick:De=>{var nt;tn&&(wn(),(nt=f.cancel)!=null&&nt.onClick&&f.cancel.onClick(De))},className:U(le==null?void 0:le.cancelButton,(a=f==null?void 0:f.classNames)==null?void 0:a.cancelButton)},f.cancel.label):null,f.action?ce.createElement("button",{"data-button":"",style:f.actionButtonStyle||N,onClick:De=>{var nt;(nt=f.action)==null||nt.onClick(De),!De.defaultPrevented&&wn()},className:U(le==null?void 0:le.actionButton,(c=f==null?void 0:f.classNames)==null?void 0:c.actionButton)},f.action.label):null))};function WS(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}var DW=e=>{let{invert:t,position:n="bottom-right",hotkey:r=["altKey","KeyT"],expand:o,closeButton:i,className:a,offset:c,theme:u="light",richColors:f,duration:h,style:m,visibleToasts:v=CW,toastOptions:x,dir:w=WS(),gap:b,loadingIcon:P,icons:C,containerAriaLabel:S="Notifications",pauseWhenPageIsHidden:E,cn:_=NW}=e,[D,N]=ce.useState([]),j=ce.useMemo(()=>Array.from(new Set([n].concat(D.filter(H=>H.position).map(H=>H.position)))),[D,n]),[O,V]=ce.useState([]),[J,ie]=ce.useState(!1),[te,ge]=ce.useState(!1),[le,T]=ce.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=ce.useRef(null),Y=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),U=ce.useRef(null),B=ce.useRef(!1),L=ce.useCallback(H=>N(oe=>oe.filter(({id:ne})=>ne!==H.id)),[]);return ce.useEffect(()=>Fr.subscribe(H=>{if(H.dismiss){N(oe=>oe.map(ne=>ne.id===H.id?{...ne,delete:!0}:ne));return}setTimeout(()=>{Uf.flushSync(()=>{N(oe=>{let ne=oe.findIndex(fe=>fe.id===H.id);return ne!==-1?[...oe.slice(0,ne),{...oe[ne],...H},...oe.slice(ne+1)]:[H,...oe]})})})}),[]),ce.useEffect(()=>{if(u!=="system"){T(u);return}u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?T("dark"):T("light")),typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",({matches:H})=>{T(H?"dark":"light")})},[u]),ce.useEffect(()=>{D.length<=1&&ie(!1)},[D]),ce.useEffect(()=>{let H=oe=>{var ne,fe;r.every(Se=>oe[Se]||oe.code===Se)&&(ie(!0),(ne=W.current)==null||ne.focus()),oe.code==="Escape"&&(document.activeElement===W.current||(fe=W.current)!=null&&fe.contains(document.activeElement))&&ie(!1)};return document.addEventListener("keydown",H),()=>document.removeEventListener("keydown",H)},[r]),ce.useEffect(()=>{if(W.current)return()=>{U.current&&(U.current.focus({preventScroll:!0}),U.current=null,B.current=!1)}},[W.current]),D.length?ce.createElement("section",{"aria-label":`${S} ${Y}`,tabIndex:-1},j.map((H,oe)=>{var ne;let[fe,Se]=H.split("-");return ce.createElement("ol",{key:H,dir:w==="auto"?WS():w,tabIndex:-1,ref:W,className:a,"data-sonner-toaster":!0,"data-theme":le,"data-rich-colors":f,"data-y-position":fe,"data-x-position":Se,style:{"--front-toast-height":`${((ne=O[0])==null?void 0:ne.height)||0}px`,"--offset":typeof c=="number"?`${c}px`:c||$W,"--width":`${EW}px`,"--gap":`${CR}px`,...m},onBlur:me=>{B.current&&!me.currentTarget.contains(me.relatedTarget)&&(B.current=!1,U.current&&(U.current.focus({preventScroll:!0}),U.current=null))},onFocus:me=>{me.target instanceof HTMLElement&&me.target.dataset.dismissible==="false"||B.current||(B.current=!0,U.current=me.relatedTarget)},onMouseEnter:()=>ie(!0),onMouseMove:()=>ie(!0),onMouseLeave:()=>{te||ie(!1)},onPointerDown:me=>{me.target instanceof HTMLElement&&me.target.dataset.dismissible==="false"||ge(!0)},onPointerUp:()=>ge(!1)},D.filter(me=>!me.position&&oe===0||me.position===H).map((me,pe)=>{var Te,Fe;return ce.createElement(kW,{key:me.id,icons:C,index:pe,toast:me,duration:(Te=x==null?void 0:x.duration)!=null?Te:h,className:x==null?void 0:x.className,descriptionClassName:x==null?void 0:x.descriptionClassName,invert:t,visibleToasts:v,closeButton:(Fe=x==null?void 0:x.closeButton)!=null?Fe:i,interacting:te,position:H,style:x==null?void 0:x.style,unstyled:x==null?void 0:x.unstyled,classNames:x==null?void 0:x.classNames,cancelButtonStyle:x==null?void 0:x.cancelButtonStyle,actionButtonStyle:x==null?void 0:x.actionButtonStyle,removeToast:L,toasts:D.filter(We=>We.position==me.position),heights:O.filter(We=>We.position==me.position),setHeights:V,expandByDefault:o,gap:b,loadingIcon:P,expanded:J,pauseWhenPageIsHidden:E,cn:_})}))})):null};const jW=({...e})=>{const{theme:t="system"}=cW();return d.jsx(DW,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};var g0=(e=>(e[e.NONE=0]="NONE",e[e.UNKNOWN=1]="UNKNOWN",e[e.FS9=2]="FS9",e[e.FSX=3]="FSX",e[e.P3D=4]="P3D",e[e.XPLANE=5]="XPLANE",e[e.MSFS2020=6]="MSFS2020",e))(g0||{});function MW(){const e=Hi(),{setItems:t,updateItem:n}=qa(),{setSettings:r}=df(),{addMessage:o}=wR(),{setState:i}=SR(),{setDevices:a}=R1(),{prepareForToast:c}=YT(),{setPresets:u}=pR(),{setPresets:f}=KV();no("StatusBarUpdate",x=>{v(x.payload)}),no("ConfigFile",x=>{v({Value:100,Text:"Finished!"});const w=x.payload;console.log(w),t(w.ConfigItems),e("/projects/1")}),no("LogMessage",x=>{const w=x.payload;o(w)}),no("ExecutionUpdate",x=>{const w=x.payload;i(w.State)}),no("ConfigValueUpdate",x=>{const w=x.payload,b=qa.getState().items.map(P=>{const C=w.ConfigItems.find(S=>S.GUID===P.GUID);return C||P});t(b)}),no("GlobalSettings",x=>{const w=x.payload;console.log("Global Settings Loaded"),r(w)}),no("Msfs2020HubhopPresetList",x=>{const w=x.payload;w.FlightSimType===g0.MSFS2020?u(w.Items):w.FlightSimType===g0.XPLANE&&f(w.Items),console.log("HubHop Presets loaded")}),no("config.update",x=>{const w=x.payload;n(w)}),no("DeviceUpdate",x=>{const w=x.payload;a(w.Devices)}),no("Notification",x=>{const{title:w,options:b}=c(x);SW(w,b)});const[h]=EM(),[m,v]=p.useState({Value:0,Text:"Starting..."});return p.useEffect(()=>{const x=w=>{w.key=="116"&&w.preventDefault()};return window.addEventListener("keydown",x),()=>{window.removeEventListener("keydown",x)}},[]),p.useEffect(()=>{h.get("progress")=="100"&&v({Value:100,Text:"Finished!"})},[h]),d.jsx(d.Fragment,{children:m.Value<100?d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"fixed inset-0 bg-[url('/assets/background-nologo.jpg')]"}),d.jsx("div",{className:"fixed inset-0 bg-gradient-to-br from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90%"}),d.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center gap-8 p-10",children:[d.jsx("div",{className:"animate-low-bounce",children:d.jsx("img",{src:C1,className:"h-48 w-48 shadow-xl shadow-slate-800/40"})}),d.jsx(E1,{className:"h-12 max-w-xl",value:m.Value}),d.jsx("p",{className:"text-white",children:m.Text})]})]}):d.jsxs("div",{className:"flex h-svh flex-row",children:[d.jsx(rW,{}),d.jsxs("div",{className:"flex grow flex-col",children:[d.jsx(sW,{}),d.jsx("div",{className:"flex grow flex-col overflow-hidden p-12",children:d.jsx(S$,{})}),d.jsxs("div",{className:"flex flex-row justify-end gap-2 bg-white px-5 py-2 dark:bg-zinc-800",children:[d.jsx("div",{className:"text-xs text-gray-500",children:"MobiFlight 2024"}),d.jsx("div",{className:"text-xs text-gray-500",children:"Version 1.0.0"})]})]}),d.jsx(jW,{position:"bottom-right",offset:48})]})})}const TW=fM([{path:"/",element:d.jsx(MW,{}),children:[{index:!0,element:d.jsx(OS,{})},{path:"index.html",element:d.jsx(OS,{})},{path:"settings",element:d.jsx(mz,{}),errorElement:d.jsx(Kb,{})},{path:"log",element:d.jsx(JH,{})},{path:"test",element:d.jsx(ZH,{})},{path:"devices",element:d.jsx(cH,{})},{path:"devices/:type/:id",element:d.jsx(jH,{}),children:[{path:"elements/:elementId",element:d.jsx(KH,{})}]},{path:"projects/:id",element:d.jsx(vz,{})},{path:"projects/:id/configs",element:d.jsx(QB,{})},{path:"projects/:projectId/configs/:configId",element:d.jsx(JV,{})}]},{path:"*",element:d.jsx(Kb,{})}]);function IW({children:e,defaultTheme:t="system",storageKey:n="vite-ui-theme",...r}){const[o,i]=p.useState(()=>localStorage.getItem(n)||t);p.useEffect(()=>{const c=window.document.documentElement;if(c.classList.remove("light","dark"),o==="system"){const u=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";c.classList.add(u);return}c.classList.add(o)},[o]);const a={theme:o,setTheme:c=>{localStorage.setItem(n,c),i(c)}};return d.jsx(bR.Provider,{...r,value:a,children:e})}Tg.createRoot(document.getElementById("root")).render(d.jsx(ce.StrictMode,{children:d.jsx(IW,{defaultTheme:"dark",storageKey:"vite-ui-theme",children:d.jsx(ce.Suspense,{fallback:"Loading",children:d.jsx(wM,{router:TW})})})})); diff --git a/frontend/dist/assets/msfs2020-logo-BXS3GGap.png b/frontend/dist/assets/msfs2020-logo-BXS3GGap.png deleted file mode 100644 index 496219908f15e4204923aa89127ed708f02d93ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181936 zcmeFYV{>Lv*DV~Y)3I&aS8Ut1*|BXq=_FTd+fK)3$2K}PPwslpeV%{tetK%wu2nTZ z%)M*wwbq<#jIkmW<t2W?;lP1_fc%t_6jcTR0lojv0|WK#nfSXM^*w+(D@zE2)J)@@ zf`AZ#NQnxmdgxztL#OC1rBb|arW+jMsVM=1NLUQ}0zkp-`Z)Sy*A4gW!ylVAKip@| z{Jn-*ZA!d1PTeU@I)AqG6OkhI8;+?HMHnVU2uG5oLcpb}-W=Z7c3%OGv)#{Ai%=?* zPaQ9{wTr!6x4WM%oG)M8-diAvz@4#R|HpuHD0T38xpQ|G1Y44Q|JMS@4M8^PAV@*~ zuLXi71c2Uy{T5~YA0H_AiTTg}iGvmZ0iTE2N0v$aKRzr$PMiOR?32s`Au|N&2BDaP z@Be=<>I3P}0v8ASuR#)hM}=gHG>7@GM;r`lb_$0H<-bM+0*fWc7$C(a@?X#Q7-0W5 zAo0H@2rAhJ;sq*OfF1Pzd;y>?jZiTV|1~(l@2EcvQKpdo>xudP_$+oqvj3VQ$ahqI zkYvlS|9ZYhkj<+9CIpo9e^c_GWc_bS{&$xA|F>`irTPk%h~i|S^0psx?<rrfbIscW zWM5-a4SR0z9hf>|fX7Ky^3T5mE}TsLz&N=w9JBk(ejKOlkLpj?-{BL1a&3n%kfR;r z@hl&P{N0nl3Sp>>|Al?Gq(b(+@03a=SiGCjVQw(|Q0K<XQ>jxLkEL5%u)uCJ?2m<4 zUcgu!p&~2_CaUHz!$FM|i;Ep07X)lWN#(9?-yF!c;!53UksQChHZMZiSUH)5)E#DD zX`MQ(dYk9|)3lM}Z^ct#NyaYx9jk-{vy(#MenewwazJ7_Wh_q9sXt<A+yb<#dmK2F zKK4Zfo)4CTC@c{WEf3aTriYltb0%|@kBqm9pKK~kh>k}2QF<27XIOP20#iVyXBn{t z1w<$>Qv_O8-eG_z34%4j$_$boFI~x-O!6;x$L)r3=)v`Q?B*hW1LU^5E*#-z(W7Fz z@W-M#6h3BCp<eiKRc)CxvI-Q#h9OsY19E0q7OI)`Koj65u-=`#P>P1QL2LU}C$}Yf z!l6#M%hs3Wu6<UbHB~AG@ou`{`p=}3KJ{hU^LSF5flsOi+f{9FX6pccIU`pZ;OiQW z!_<N10Yd1h?BieGgJupn215|vOxeLxKX|{4p^}8cNSoZlwi}3NK;V^2yhva%h~dW* z-Yhx>wtvZR(vOyxgT7Lmw5U5jII;tA>-HU^w^<V%7Hq~U*|X<7KVG4;ol2dR*QXF+ zrX2X;jRFu*K8tDBAIX6{=hb7NoHwmLPIs16m#SXzoMwbCR|v&AUIr%}4C%P1O+7Vi zkZwVoB@da7?M_{2o+H*EzClUZ?+ZWk6nbK2fIODC9S|OW@9A5?h#PbdCKxuCZp}&q zxvK{jKD-fnPX9(Kt2U&`%EJhO)H~m<;JAYvVkwrs9caGUOU^)N)7IwGqOiCmGWyZh z`jcR!C@W6yY=o(N4sfBR?hlPx>65KAf>Gizy>zMFY8A8lkLT)j5`}_mDjZx3sbga| z4&Q-P--5wvaq;oJcI?&#uM@a%ixE@9QLpBg*XMLzuwwu4WwH1gtg!?67(BSY;i8RS zsy04Mv+M4l?)lB#-nO9%rxYK);5*iklsguy1nQW>8{p$8eawE>-uj@~j#H}$BAI6T zF)DII!Zni|g&Z8B3eOhc)}eo=rC_r0tU~?HdZMo^@8r7@kTK<)*M-vHL;m{^-1WHQ zchm0q3udM=fWvbJ$`owh2f#4hoOsvS6|T6K9aW;6Wj*Qn_qZr_Tlcx`yN>$lBKyY3 zV^IR6TmNQb1SQ3>BJlk5OUGz+NvxE6!K$|<$o;i^4gd#We+bJ%Otbj$9}(=EcJcJD zxMg`Q4Oh~_dQEO-ROUGh>}y@Z^S^A|5VD?cS|y%4U&sbchGjSGV#1{sE!1@FQ0ZN( z80DYyBsxzYuC?f0F+jP*Lk=dlgv#l&E6Wzy<oGF*Wa<8SRe(cePO#Y}FC}4J+W)}% zH$Z4r1~n^?^bB_~k#c(ZNR%qwprfTt-!90-@x!Y^+LVIKZpvwPKc_3Bv)i^?@=$cU ztq4+BU<@ul7BLO?R8<$4D`z{=_AWRqPg2y@<`Oz?vyxQ?0#*;W70*Pemxo?ClMckI z%=tB9uMUT9DW!`7e8#5ZNt1@Q+XCG9WKfA|&4gmm5?UD5@ow-JB{>o}$Gs1a>VtXw zeG|Rie<GG+iLX?Q28y)Tl#B}#GO7w*QC73-H=e=^G&W7U7AJq!eC1qyO|u`lSu7`` zIm;K6s&8@UKP>=xslWdKKeaI*E2A_nngjemcbu%X>`Pou1nZ`R6mIRvp*SzLMzNKB zJpP>wIV#)=Y{Xcz^zoU0;f)GP)^@fyoz$!~c*P`bKyhj<a-GGVPh8W5RNB2S_ssbe zQFc?mFby>Kv-E_NecF8|9dXKEHTm+q5~5ijWXpCw{#n*akx5d}B-z3JdTZ${{_xPF zlG2-JUj8DfKp6^KY-GXuptS8!;lFLF5eM$c^;|k#4Dpz!qHGqc6M#&(Xf-bfRqBE? z=)F5l$r6=uxO7A*n@s-WT;oyG_Jyx(0qpD5ig?-~#c^Tn`zkK^JEx`79!9yNJ8Z#R z+0z`MWeO(BI?_Cuj;NQhY8P8smUOz#`D&$7axVI?Y^n9E);e|HA#_RcKNr446QW=| z4*K@FYgJakY5s+B3ij_T%n>!Ex~pk3X{cJq86g$e7R3Q9q17N={G2F`xTe%!0bgm- zaI`cv8*j?y%CL!1kp2pjKRSh*A;e&(olq%2=2I~}d%U0;Sm+4_pmnPEeo^?!MZfSs zA`*i#(F)+styn802ANZe&MSb~TG+$TnyMPmn+_XLkTa$>bQ2qIBJC)+y_DoEBqr<R zk42_Pm6M(Mpv-%vmr5^p`fwh&-$v@1Ph0S*X^BbJyjY#)^FW>-%XWo;-m^OXrP$3l z4C}u<F^u(vPDhj+NsJ7A`AS<h@gL?9!a$<fb(CKvKV7BwM;36WV2Lm^L-#qQ8Xy(n zWdPH+iX=BihJ37V!YYO6c99)IKP5FQo}ff$(E3c>Xoq;r3HVqxO%XB}W*;*)p5Q~( zcp@c&>VjYKnRN%;8|i%d@NJUz?HG5yy*RgqUy=5&kBe&MCp?j#Ck06G)sQ0BAqi!p zai8WBuf9e_BO`|H+`OeE9qL+=F*dl3RaoRbV%)usg@kMM7c)g~qg%wsE)yQqE_7sE zz+d4Bx?d9{xQ`wFBtrgKpFXUvF6r6St<<F&vd6L&UHqjNnl!KU-2Lb+7{$+MCZtJP z3s~JJxbmDje)-RtrV1Vx)zm7k6|DJK7ollV>}wA6GfMzlOg3l%n}pHJoFJVu0R98_ zLVWgoxEZr%0C&c|KhA=a82bnFZ<ReH`~&+`hVhhEoWPd$cTXQv7>3;3uiUti=dasR zH0TcoM9&)D-onD*ulwCB1yXG6dJ!BFVB!OsX+VQ{3TLY^8(#g@A$1V?^&gz(W23G= z`>p8EUh>>5H&oO59WWB!Z;qBTv>YDDCl*O9uJTb}xxdL(cMT|o^}H#nz%@Yn*C?JV zEet(=&F1X$Iv?Xj0cDPXj0S9&>#cn82a25j<Pt*MQsOO<5lZo^6E8`gsPHFNjJoXA zt1=jBV7s9Dh-nH`>6E`jxO*#_QOhl{^1Ex-;JUd?Q7E?!QfAN()&QUYxe*okJcSW0 zfZmK~q=;FyW#^4f8P5|-*FrX-q%oRCONsw!CR!nnV$7Z@9{DMg^`GvQ9wU4x{cSjR z>kx%Rd$A~A)V?IwORJ3dP>nBQl%M!qzfNXDEXe*fSGUfOf~Yg*Aa3Wk-s~WLA=mtJ zm#@+X^P)Qx{&gd!`S2nz(60y<UZCaTN=}ln?94C8mL}MD1(_`(QJ*SaKQcgm><i{l z-HBTJb*T{%8tRlRRqr~UW<l^HdsqOyeh2o)9a*noDo6h7ZPr}Rt+3DaCl3rI3RO+T zkmX>S1lK>IMA~vcZU+@zt=L&X0cCIzP4-^&MwxDp>o`K=>+XNo9VpVoMOQ;8D#!In z<D8osYQ}9*$iJJ>oCQ7rAyKrBrerauWS|O6HpS<?@lXD=EI}l-n7Ibs5WU;4WLrKv z@|yKIx?ZN)k6L7Fa%#pqQVgN-Q_Jvq{<bBr5Kw1ueM_DQ){H$+!Soh|ZN;&@Yza-( z3KMb+Mm)%q<7B%sWQjM=$dm}rvPoYYdVaSe6et1969Tl|_H;G${WgeOp|d6Il27;n zJora#<<lB70hcuaHp4zHpS!II_IeS)^=Nw}M$@JBj<J+V{G1s90*QTlVQ{AW9?(|~ zelXy@+aQd>Kuxh6kkjFVqSgYh=XCujY)rjS)qUCfPOu2iXe7j+`HShBDcHP8ZnFHB zPXm~Z=(N2fKONZM6__F(&z$ai-^mc{b)!dhbXI>VK!XFkp&_1uMi?E*c%jSr)6d7h zku(-iAZosxA$TwwbWcvOVe^}cLcSE7nnGkU{GQB|rCZ2m5<S59(|=6)apEWwcQqag z-8=ZAW$Y3VF#}N<GT^Sndu~P52j~RCEraef3in?fh}M{X_)=fL)+aHWqB!akzOLmv zPTb6I7tx(;G)A#Xy8B0D_r4O7bQ-9RM>k?@*WlGjC8KH0!`iYQrHmzi!xv-8|C+jP z+i>$d0KpRi;LAh)5sIGRKK~kRcOu|vnOf-(Su)7LIq^|;O4kif0f)PC<g?035Zk*9 z_jcZ3-H4mhX)Nh(Ru_(40A=C4Rv59|4&<7+mpUA7q}=wEzlcfL9()*4sLUZ<EkAPj z_et?XIrpKc__K<{X{1u1f_@uZihcdvHoOw)4On^rquf@iQZYB2AQP=D3gaV%e*byx zIvHGBj!vqyenz2{4k3e_T;mj8_u@J4Hd#asviQPx;&sb>zwvc7df(03g7E=gEwcQA zWXqzb^VlMM)NHaphtw5ltgip=tp3M&Dwjl!9sCd<|0Hg3w~&mJ`@J22(jkd@6QL|` zB|l?NH!?b{!QA$u!F50Buq%JR{#1;@oSsTA0xU@HqlV6?ReBjaPtf!O2s@|sVbb9~ zSsiefIF7SV*Z>H2U0a$K2QFRR_fGyAkT!q)oTg5g(4|m08;9)W3=(pT5;e4Ejr&Ga z{3p|f+r|`9Mi1$O*U)e*`ZbpO7y<bAdz2du#L-pVE!DTDezO$(ttIed?)ravV$TzN zE;TL~ma1vQkoIVx0&V`e`p3-OQkddckZ#WBK-z<D@tUV&q{~J-QQTx8oamijiCmEi zh#g(KiCyG34wH8u){UPr-L-s$bsJ&&L~D?!=tgmQVh!%zc{%3_`N%)z-;h_K%^*`V z1m^R*e7MmI<NC)<jt>5TTyW%H>QE~Zj0D~aN|lgIJSk%nMy2V;H2kO?Qv8RPBa%c( z?NzjcoHwz3=%J;A4o5qY1u}y<xG@hhP|F)A(yJGI{b;cx1@GutTJ`dm7K%c}4MmiC zHGWtooFstSM(m-qc4Y1`wQr!fi^Gcdb{1XtGp8hFq8S(|p=h8UqfIvZ(aC<I=g&F& zg)ouP4e~D5$)+-9+og|~Obz4w&+)r_eVDXy-3D=Mosj>;bB=LikSH@j_Ax^r=hk5C z?vaAwd~?Ah1|`tal4$uLAmqOmDRScj9|vpY6!kVqdDsUY8qCEFZ9fyZ!58mlyJILS zWrNprxC`5-K%hWWpd48JsX~19aNc;@$%f&30C9+G$Vq1@GHXEggrqVTIJWT*<}<>i zIiedhq?j5<0gXnuc(2MtAqVBliEB{%i*jE_X*?t1PW-W<O=M3QoP8Qz(Vu1~#QsAs z)hyD>r-p^-@P2`ll*0y+q;Wc|wn81W4Z&r9EcB27Tii+t{m6U&;^t)g7iSXTMHnT1 z!*bmEgzLHrwm`bQJ>=1WU49R^-Gq|wD(2ie8{*cg%y1R9?`F(5qPpTMG#CzD-_{OF z3f;+cJNR*;<InkCE`;!NEUn+`GL&E<H!9&zMo(Dj-plvNE;OZdm+t_o+?hp1Sa(Xz zK-_<U<nQeZc|81|W4IX5N-M4+=6JHebmNa>HjUjK)?Sh2k5*F89eTG!T0i$#lWYzK z_w`jcU1sl|ZqMTz(F0Asfx{YaX7e=2#IsMNH^Oe*jBNpk7y@MsZnNbD@iAuaN|;MP zrK0nc9TxoJfPgosxOhB^pbS%bS|RFeaWnO1scAmtw*L=kKUbdlbwX(6LW=>_>{-^c z8gqMp8qIN2y>?^%MxQ!q+*!Y=>J@`lkgd4(2+Z_VBNB}OdYAFHUqL`081nNu<i%z6 z!l`88<q~K>$Zq7rfS4y{(C?FbP_MrtLN+ZvpOi??lhr3RXQHQ*o_IBh`cTt$j#PmF zX)B6y5MMQK(hm2ou>9)Y;lAO{cF}kQEm&cv<0m1L2wFDb0#xmog?lpalLZ%Jio5#z zO!cLeKMgWI(gM!7ubCLZ0WlzYV33qOu<i$@{Ojc%91ey9KlP2;xkNm-9WIp|g-C{G zLHT4{&jVc_)hydDE4dP22RLo~<PidUPS0n?`=lKuk<;?F$EF0{AJ4h!E-fS-{F6*- zMW2bO&B$5tLA|bn&W-4KF%$p3P}$jA2!@ZyAB;ouIt8cwRTtmr?WPJCt<;&jJK2=H z@|7CfQ5}15(Wk5o@lu6m@*=>WJ$1kJXglMX^ZQtyJFE_Mm^MZ*`t^K*Rby$@-snnz z06xZL{&zXg`WfcY&JWACw;eTOR>_0KEvc+PCsnm4nH~uIywnn;boZE}tO-2tI!~}Y z5iRMF;)_&;$tK2awr?WSc%3gelXmI7hw$?ECZr7+{3Qto56VrcT2e@Z%xsXfXByq7 z`?d0Y9Q$O}CFX8z--B!Qxo%<*-x;qZn&Uz|0scwa{Yi{%^b3#-k}agDNpKKm4@Wpe zYvUI)+9Ef4-&?ACQL&$Krhh25lca;p^R_VBG-a+qPbpQ50?_*89&N}A31y(~l`dlL z>;d~=<c;%1{DLpvocR+QQE-$J<C0>Va;uv6G2tHxZuZYdp|WVO<u}z4ZIyIsmgaEK zi{BWG0PfJNg^tmEPebbFpOjg)Rd{oimsc)yB{OoAV{U3-&|&;ILU~B#-dSzlh`}G? z7*J$wVnY$SX#z^M`dvj;&+PDUMQnIuaW%lP{)O*_zNo<#3@u0BIE1G<*%D3go9g0q zJoL$@b{j(nvY5<tu+0(4wEgjcY~ojv1F!)nG)FHC^Gs&K&LISz5zi}KhR4n+M^`Yn zfmz`Yj5fd<`#;z}@C1o0Z=qz6k!FdkGipcMiTaG;lMX5ilUQACf{`1a=KKl1VHQ2l zVuOab<~%W%`29>pu!=E#RptuW4s!OUxOeyydm`cVcli7~ON_YqEm#MHD{PB(vMkxN zH=6f9-y=@0>k~aZZ!zx4KGODOD}vF?BC@WG?Pmk7Bv>L|f53#Um&7yXRK+5vG2m+6 zS6f3hBuy3OyBZChpgxhzFR-7&o1^M^6TbLVD|ByZ2$oKg$4ktOPXwZC5NT`0CwWeI zAgpd));Ac%m>dR>k-EJDE6|FRAEzgDYs8@~T1#1JglwfjvaJGqWhG?EB$Kw-)&7Ph z&G@3`pCPQ{?joaOr7R>;>K^Edpv+pRtL3wB$9!ZhI|}2a9}hui(93sh6kEvLj46bY z+$Ca8jU0dT9RmE$)#7ImE`F!oL%*{9QR^;@;{YU@<Ci8DB^QxoXmXf|<FVFCR>)p0 zy&=#0Pez98!@8VJ2uG$vo)b*xGhgW5n`(U<#qc1Mruh?-M#^3&q(nBQ6ugEOSpxql z7wRN~xXifsRs~oOj_<&g?z5g}z55i7vJi@l_RFRk)$HC9-5ZN?2ul$Pg~682Psqg5 z%f@o)(tv(jnq!@rj~&-at>gF3_2`sJ81~!`6FfWJN%DY$pfv1rUGv`*+8eg6VFW!1 zQHB&5Mwei>4fo$Ys0i*d$?GM@l3Khln@Tns#moLFHnrOfd3@cDwQk7T`6op8VfFR2 zwrTnSpbKdvlhpS^(PMYh)!p#A{pYVxgjHYYHcFosUpm@?3j$>P3-~gHL)u@H-}5Y& zLxtHD(Rd{8-%mNm@V9Zrw|0kL!oV0n(u9V&77u54x%XPUN2w_U{K-t!$n5?T>Em?t zf%7Pb<`}WY&44w~A-J+P3^d!!C8on$EuHcFj$IHDZzYtpw;g&8lhDKop~Miqh@oPr zcw**I&Ff!pl?mYt&dfK#bd=I2$?Sc#`*icF&@*#069n!8N|ZDwuV$kOdKp29NCH*y zb!$+#Y>=!{oVPdHFsP_mJM9BuwS*Gix6x!*|7h1knDM9c-vg26qx_FNn}0rb1(=A- z>*@Zx>nGF|$02Q4LtoUoCCL1VL1ieQ><F+KHp07^fFTC>-fsNvtiMEEcBtN@ZM)Iy zk8qL|8r|Ojo6}ds+XD4x2k5;D-7M>_lk&oGy6XLXN!8A4t#5qbWalqzL=i1^&!ote zq>Lj5kGOnPX36&O#uV@6?a=#Oe3LWFc6u5u?7@%jXOa{HFK~+=sPzc6>}%#HKm+{Q z7Y8sp?g^RQ^-g>}8~=!Fn=HEtc@wKUZ(gDfjXh0+Uk`-4eH%ZJD>6ZI%RHAipXJj# zA@CmP#$ev9epoaw8XYWI)F0RQ2R2`|<Lv=ijr0hfu-T)TD2bypZfzk`vno>93P00& z#pBfqD%i<D6KEJ0b>}XAB5zUgy=7IPm6d$$1PcuBu*MUydXc?FWRh^HUAnQGYk=6( z8qL&JLWot??uE1|?$f1kOplf)aOEhEo^vt>Nyq1QBfk;)qkU(sVqP96%cVWpU8+<n z?S=B}18@nEiAtgKz4Rz`1{Q8!)1rCAn9->~x!bR`j|yLpdPU=FqgXrtvrn~@FzTjw zxm~zGxonLlVN;C%*4gW?VQ+O#V@Zu$RabBM1o~47x~J#8jO#G5eI>&zwf<RVA`SO3 zm95fMu?9Yzq|i@_ay-3*B>v0#r$)5?OL@krB7?#SNdd%S^PawIyAC3<<wf_7f&Sh{ zW@K!ZQYN{K%|Tv-exTPNzWeDtK+1Nptz;jEH^TyD7g;A`lA=H>O=Bo!?C>(%Gfp}} zWxPC(oAeef`h96HVG9BF>>{odLehbnTc$h0y*s=o{1bc^lk*n>gig^t9^FQj#*S$i z>)e%Oe82(APMrUzw5q-nUl{kym=`I@AAnSqa(yZWk3h$?V?xXUh}X7=fVk6FW!3Y% zH*uuxeH)+NpQE$F$3|h|oRfgbmr~vD94fR+mVQB6nOr~HdC5j)qn3IOB}F5@9K=et z(l?pJIf0{HXmM~Iunfvs2$ufL^r*5}RCOwtiOc;$C7G!*Nn_NikZ{RQsh5Qwf!HKJ zX?tOuTW5-I43+Tp;{nLs>T_eaG?}uWPN!n*jEB*b_!M_MEq>Zn37+`2W?02&m%Wb9 zI{s;$-R!{2NkbTvra{Z&**`>?JPf1Lz=>^MNfmOQjjf4&GP&mz2=4sS>!kE19^%9o z%yjkiw)0Z9mdTpVdwf4f)^>v=amBwdn>%*sa-F;bC2OAiuNFX@JRCt#;lcx(5Ah=c za6^ub+}e)b4!h67C_lhK<ZST!JpyHa1EZDOzV}k0uD2^08_Hx+O|DXUcVyNHYPirg zjZBhHfj1^6+<zdYzXMDNuI$2_2zLNWFgHZ%Ga{WW;1e0rL)=eK^TcXy|2N&x_{>IH z;o(A?i*j;2+=<H62Se6K!cyk@4&O!l-BqHWGwCwYxhXdr!}|0n(SGgzZGBIaI@CRK zt4v~N45o!z9!;4REEbIJm~Z>lXYQ{SrohSzQhIcl8nMz9Q!yTEhECWy&)k4kR|Mz5 zV=5IAR2_;j0KE)0I60;OH3QGp3!-R_H_YYSpHRpX1SSnUFxg+m;N19V!<JtIt#cX+ zkq1@i0O0ez`;pU(%KV{Arwq<!qDJoUY_PyV2$z=s<pF&zjd3dT5;cQB)i_0y@1>3I zt!Bd>SX}Nz5-)?D=}}f&RBkf-V(0J4y4IkSztZtTQot(#C(Z(eTJW$=G+2~s6)<Pd z*|pRgZ)MvO>vxL-eV!piI}qO}NPc{KiDJe@vXJM=Ro~<4mgI<W^E}f>uo{!4bC)~5 zMkl2xfuqXgv`f!5ymA{&Gb?PBOm6x~sl>>WI`O`7$3sG2MD-bh9`w!*R>$eB)Q_2V zh%!4!pJktD`p)qqj2b-xRMKT$^ezB*W}jp&h*?&z>-Imam4+}rqQx)ZUi^GVev(ks zQ^$H*zw;O-vbBDKoaH=Dmn2fb`EWOmL(ed&g8jkJgBlR2)p_clF5^FW6tm;S=6hfY zV3Co=y6$0+?v*vL(sq6z&BhV+?)qtI@~D}2k5OF%pcJ2Ue~Hw&1D!=Ey4>+KIo7SH zA5ZPpjrvR345AuWd6?Xw+hz$JX1UqfGiPgdM5=&vxw7boc`+ZpnY*`|7BegSIN3CF zO26kVCVYazYenw$&u`37)70V<lZrx|fen_WEGKvmw<r475PV9L>)Ie%3Yx@E0SFyn z<D>*T<ec=nlkVV6M8$52&8h2>%KWU@AY>#~k@v!y?J+ZyQD;w1l^GZ)_k1~5RR(53 z#F?j9DIf!_%(?tnu?}t?Q(aLs8EuUSb9pKM;QDRl<L=62Cv{}EWzPg8TkjI4z-g#h zQrAO8UKprr)R9C6t90)J<(XqzEMxDFpx65e7^oG<h<(a=nOGtK4J<uutb|~(GJi2S zj4AUHTL}@c)agHv+%3RSrPHqAx}l_jB7xFY0uJ6GZWMYvKiG^SMK#vGi(auN-W5|0 zP&7F@e#%^{7=(CFD~D*O=Qa6a=$v@DdB@2gDDofj$je3@^8dKxTStRcCRTz{5FNI7 zZHJnjxyR<sIL1taG=myRc5K7Y58HuUZb-Yb%P#E$23iB{t-Vlwv#y2-DS&W0OGl@r z!o@T-<R^Q+qrSvdP1H;e);s@GKwk4<Wb#Q!F12JO!>qoLn9eR5RR$bu5AyrslJqNQ zA$pr)^%N9r4AaHEI#@wUY1G*M654rvTq8VW3nF%a@dW$Ll9IH?i(bZiMPthF#zI1_ z#<AU&kS)7m{1RPbbHDogC6CUhHJtV3N#Lukz^9mnA#*(_GT#Qns|9LfqCd$NR}GOy zT`zR-cEW>RqiIGB-jTAwd=U@{VXmI;DEBoX@ZmkE@2}guu2wDFo{#u|HRF_}a6&-o z*l=I<O)}`T*YjF_y>tG`vqtc7o<7>ZM5n+FXOlq0Kdm;+A`OPQ^1}uqQF`G62T3z) zf#%=hAAu><U)uH#tEw3s#U^;{$J-H~q3J{mEa7@n2N=h0<v4sLDhnE2%LPTWjBkr| zo2QjM6)5EToZ_g|A*}Xjuuzp_1l~GYAQ_j4*W+us#N7{m<`IQcxge>-HQ?N-scO3K z<b(V-08ttnz@JU4d>)(W)n919n}fhSO>+Fj)!1==OJ}lIwf58V?7t|m(b#)sfs((* z+9TMef_MzQ#eouuBf-B|U|$wqp3d?x4-0)gEG7!M>OS=m=oL>=k_StoEPNU$7j~U2 z#KfpdP-dl=Z948LiZBiGGE<l)wncT`DM&S!bP=BdpRVWq-w}%-M1bSXNRHk(ES}IM zG%pDtdefB?xPtQr(Ji>Wq2QlTOHP~yUA(#Oa!+iDoIxlwA~OzsJ?vjl_gA!B!Ubdc zISYrcP_v~Iva*NHNO_%n7f=+fjH%W?U25uBH)yRJq}WHS;<*V{V>aka*XISfBe!aN zBieYW5Fn7E#Em?`N6CgidDV<zN|Ir`=rn`7SL$~`d1~k~3lG3u#yLuFb64hRFKnI1 zNq^n@r-Sel=;Tatl!`NLWS{TmULXCg-fpIsrokpl!rq(iec<sAZRKO<Vq%Jtl|t90 z?)>WVL(_7r@Zw6QZ%y)_5hbY$5=!~$x*xo3P<LJ|2A)_BmZ`#SG14{d2%;CtRMQ6e z={YgC*(8{XFMt0c3HUJ8!}c=p543qLANy(6cD}mlB6o`a8xF9J48_AMdLFr@!@%Bs zhH(#dzN1$c^hGgda`0OXOV&F*8#agAjEOTZ-|LN<VJzzeFXQe`rVr$G#L*1qNA~`& zPigar=t<3l>fktu+u>;iRn>-eNY{!?jf(-=tYwpv%}qfMq#<;4nDBy84{(^GfryT1 zL-LDlg&~D4%c16zFFy^O`b$Kv8af@J;Up;v5~Y7KDh!%x)l{F0KVcYo)AgD!ijjUQ z1NYU_I;i#+?!YabiwI662tEMI-JJuQ<ERC!_KD#|MHK{hj2#$Pgr^ezlThaYoUPMU zD`IlJ#u2c7mp;xrh-m$&h=p|cLtFpW+t?Hyv>DNIJHcn|1e?$M$DEEhnl9lW7&{>^ zJtvUQG$Ckra@$-PGE;&0lFsh@V@RbMl%`bya%f~MT`yWC1-yzLWMt@-aEz*xf}2_s zbNFKvLNs9#pa&HP%nGf5idM?;<$nTSpvsH_A)<?yPxf)F3g7M7Oc&toM8UQlYqo4~ zWQhs7Sz|j&Q4BSyak^n$R{0MGs5)wUM$V1gg~~w--s%gDdqvbgFXW6lAtL<n!<j4X zoYC$$@0y8`r=WMhT4hox)ftTx3l@wr1B7|4=u0tYL2C<ZX-0Ur7G?XQ#AE8Tkt1oR zR2XFvc3k%>f_wgPdHC$p3Vt0*u<h#V6rJsl>{GU}!(8drT&19b+DX5y6g^BtYX40= zS$%ZR(YupI(-eW`sLB;?N(|<xC1*R|d_0s{c6%=^O1ax&b}@Lzs+4AWqv!{ZRGb%4 zkvls2zrKjufuC|Vn$#+>ijuy0nHLKnCk=#MML+F3UKN-Y8x++f%i!ImL@q#_YdGfC zh$fy~mCTTGeAjP|@crW#r$>ffv$W@d!dfMz-gw{b>=QgN>}}!}6V}u#OUeTOUX(zA z(X8+>xpEEH(RBR^d8+}cd&XhM)?u7tCY+U<kz*elwLSucGfrzweKzv530J~2Iqf8~ zV<JTopc?!`gSldcn=og_2l7wxlw@mD<pD`)@qS9U=`P82f~}p118@9pDPcbdyCiar z_EJe&a`}8g+%kn<qSh0Txq5ksmV*Z;d<SWUmH3gX(SO;b8#SZX%D;vxdp=iXn%cFR z6w~Fq#tD|$F>|&j>VZ+R)tH84ZH!Wo>$?5MQS!aWP(5M;?JzDY1Z|JvBCe_R4gII} zBh9>h4L@LdJSR`c4Xi`C%fJ`I`|9Nj$@gs)HgW>U+x;yd^!1t=N#Tv9d&!qe7%wrd ztQ89J7_^w0A!Y|8hR?y8I9V?&C?Tzmom}}x=Z_EynvOVM7nS}^O*ac^lqkrQ)&#}n zVr7<3kZG4e*8I>)@xP^kS9343H9B-0UC5>_EsAODt45O!Dz;?2W%@Yl`PsV%?>_dA zq1w4yMngXN2k1e^<Va)PL(h&&&(^r|lpV3wai-$^&8bsfvn=22*aXXl69=ss<-S$H zgY0?BMX=t=!>rzhrUY0A8MN~F!f6C+^kaPrl7{mGJ<Loe$mw6L3$2C7JeS%e2$xeM z<vm#mA#$5&8=1P}*7Mo7QHA!ct-%=u)8nk1<L}Nq=Z?iwft&+kEJi%iFh!J2l}ExZ zsLMzyQ$qqA!=ex+J1#|Uh9oftt0J?CYe2_8_H*jVQQ#N;Y__3y1vDK!r>7nmpZ%NU zrB+)8M{=ab=ozh5fa{n>VB<_^ZF%r1Yjy}T#0njz#BkGra%pd3Wy@6ZUI-V#-KWOV z(aHB0hAp!;H^S>`jjNxUH#^whMacXxh?Ao*JFOP`fi|-$Qs}Oug3-~6w-l{T>ULUv z&FOC3)D(uj>w*x7s%6sDQ+}>#dMv|rzs?TyHY%3*=RJ^^LZw|MpHbCZ<#!esH(?*# z{Hxu%opvN$0a-1FjBkz=TgY1p#MLieZ|!9fT=0wMQJFT+aw>AtJ0EBQ(yeHID>{;o zvZpMl#S_K&hB8|pQ7%s&-v;4ADT9Oj`-C1#Yk%3~Ur={U3g})K0}i&}48<Ix&kj=O z26_Y>=S?L4qv*`Sd9vC2T2GiBr!8gK>ZO0BIMR6px6dX$bu}*jr1Pkm=qk=q_XNSo zrVfGN_EGaUxSDQvL@cSK8kvfUM`jou$lVzU7^(e6QGROD&`X2<F54-&c>!Pmj>#-{ z^w&amUUI{2ZalB)H6w+RT7#FaJVcUjoTaUcP-?*Aw;<0)8RSt&St#}*)18)5OUoey z$%9+aC3D@uS)v8{Ls-xRmhX6PV|`_Vi|3T+Dk?>pSRz_4yYc7JIZU%KzXg3;P8n(b zoB{mwrDnGT(hYJ$D2@>4JW6g;tr@qeTFrwLW#An?DBp*dm=V!pc_hct+pUk4w-rX_ z>p^ZJ<S<<1&O_3nFtg<fsn@aWvL?4;(Ltd|*#>*f^tz=sh-QNq-1}#n-7J8GY&iQ^ z;bqmanL9T%^8mTRKMrbQ`)yJI5tnrg(=fzqF10-!iW*79xI_8$cCh=HdHPy9B_nQt zGXh%K=m9g}abXuDr|2*X{N%!F&WUb(UFo*nfkb6}IDo-fh$3mDoN{oC;N-LioCrr1 z@??N!nNLt9&8KXxR-LX5<WpfYAV;gxNNp)zYJ(Re@9us!6CZ!5qQpApVm;UwcbWKh zqp+gMd3=~n%I0w2OAGvjurb48O~Wg9f%^H_2SrX}Bcx^zLv>Q?_a8m^;}d&}SH0HR z;+5OK1(c*(uM5zAL4nohSd)jo58rjia7o)(-c<Y6QJOVE*+z3u>9~I-peDI%cBCPv z^`-I)9Ga!y@eami59kBjIq=HW!P!YG_a=A-%sbdZp#0ef<KEPX_g%l8?%+17TA_yK zQzaf#yI`R}MnTfsJb1dO^5V2uz9R<FXXhk7lpcd>nS^+#C2!kjg-!HS(0Wc$%8jfH z5!w8pPmKb;D2_$4wS*Mdss-dXi}ED`N*`pfkChST(Fv+-B=+UL5NpjQ^~U9-?y<aj z027?0MJY<c8$DBqg${oh6S4n+&*hE3ja#I2_mP|6maX+22B%~s35?0BGHRY`x)Dff zIcv2K3TRv9098(3(;|~MjOfuNmgZ@9J{Esso#;-}yJyFy$V1G^>@iQ)Qj2^|DD2HT z_li6(mF_6~3>xQN%A9-cnRvlxRX_#)LCvsmo*t9>?v2LA{!PB8dEC6~6PA&deF4t{ z&@~Ro2IU3|67y>PCG3Gs%<5fla9f>kgv@QnW~l+g7_VsUcb2G=<%Aeo`w-Sq;;2I~ zRUKeCOBy6f+R!f3V=auSs{?VoL3re%e+w)&CXpoQRRF~HPj}K8vz!w6W!Q@l67AKt zvx$liOHJkHhsxX*?TseD%b?OEu7b2;j4XoQ%?L`2IGWHf!G!ULlRRnY0wi*zTKzis z)8PzBG&Pb#>M+WkffGwSbq_2_v0Vjmqn~c1US&VFcEKZJ5rY0E`62OS+j{)rg+8FJ z<GqIFiwF(NP#sB?4&W8_dQ%yT%t>Yy{MfG+#ke2ECCNNX&|So;BJs#HFFd;27FDnc z&fcwQ{z^Sp4FZlo%cIsSm3#SUk3?5W|GV^Y|Dv5=&pn{v6zwC+fIQ6^H0X2b?_q&h z`&M0=V4$c?Nt?R}rRk7BiH4Wi5rh2+Pawb+{8kptpQSe>Z(OixxFq--2<?oAD|Tq^ z7C5KrM)g51=eg{{!DDC~*&(0b(;cRynkNy3wPp068F%Ur*LZ)$-sx(dj*@xkAFd_j zuoo9eB4(XL=kXdr9{l8H<@Bh?%eTgK_TeQXLfJDlcR!@86|tRzjA)t`uu`WdZxaQ> zn9EHfzp57;#Ot1UrzllPE#l7}r(3f{MNG7$aDw3?kj^r-0(U=#Tb>dv>)9;vab4Uc ztdvQgB+j!n8bca^bsP+rixtHKZnt!GQRRNYmU!XESe*N^&aJeaCrBz|B@6;;OtGvK zkZGhG;a)Qo!_JDWbSt8P9*wXouuR2E5-;Ezj&V*zG+9g*tJZ8lf53cdY#j|Q(+<6` zr72pz3sij|f040L(VmoH5u#ZRJj)ytjyQtR{YSRP*AOMws!|XwA1NprEm}WLO6%l6 z1TBb-3rI%NIFLDpQ<EYDdB5mu!F{5#VoqBx#J!a-dUR9?N|T%H1dYBMYtfaC%^ABY z^9V2D2!J#e!}6vRn0y$xHIb9jP;*Qmv0W%2a@NhcVqAP_F1jS6-j)gjYBu%Tf6hX& z^W7)p{qS0C@q21VO47w`i9(G@LhMT7or>aJYQoG}LWu41qv=?odDEqo>|y!((mwKk zQQaZ0L=W06bVLCP<*i+MqqJmps_h3)u90#v6pH5>3}Jci)Q!m?$;@jNbJ+EAUb#k0 zTNfe=uHMw>*<ql3JYF$d3%^oJmDF`ZEZL%D*+N=c5JbHn_y6ECnoh`tD&@WQ{fJMv zK>WH{ku1HU`X<4*+cQ!qRT!QMyi^VRSmQVt#K#KEfJmHkF@`Szx|MvqFa}zXd%H~T zS~}X+Mo%3)b8n;g8)#x39qn-%q|g~DLe`jSxbX*{7|e=L62|Wp)<b&^K8QR8{Le>p z1R_<=U1?b;v*g%gmlA%|4WUo4DA-D*HT6+SEXE_%{-NWLwAYVsZ;K1+>1g@>Y%xuY z>$eN&h~?Xb1e{=FXws}kAt=~v5Oj1^^dcp1BDU@OZxQzddp7Ompg#lKA_^x&dBOCK z+}+a$;MDWX#{gVUVLHs`K<Dd6K@{)p^=Ll_W|SV1ka>(UGn?W4<IhX@#d;X=I6U#| zlW;0}>VeRSbYuMzOvLwGfssy!?ux3Fy-acVCwws1n?n6fG3V*wz??##pI{wpECK>w z9uoD-1EZE$487GvX+;CSbuPmnw$44Q7XCy$`t+&6ZJcHC!smdj)qdbS2~rAD7RSWh z=w1S<tZpJU11Ryti<hT-FFOBjhv$!6Nmzf`Otw)*CM0b+(Y0Ty1KsC_U>LN+z>zWa zS04z%_N`3EE49pZf9}H7DWAK0??i?n!Nso4EO;XY2HIC?dLr2CZ3f7Fy}Nrn*W~`f zHL;GS$@p=)@%x&4vhBi4m0mZn@CJ<}SVGGlQ_qRnz~N8URbfNTbWiQ5emcw4v6Zv- zNkqsuLtDVh5^xzDzWeB@h=zM4!?wIsP}l&Wu=VNB{Co@bct7hr{*L+4Jx|L;@#f31 zEYR{FIghS-gk)JFhEPWlB)f($_Qz7AV*Ptp^0_oQENuh{JDxf&X??L$dSmP5J7q}j zIER>$<4C#N)L74waSghP&hUh+XSV-6=E`|Zko#YfEv%9AfBaj@`LRhWEu(4^u#Q0b zjV$Mm7{cVNP4)@<1?fXI2#6j-kllXJ!6a%;eZnXo{*Zmghh)K26lAkpdjl<Urp54< zD3lZgHxtf7>UY0j{7N}^=Z4=S2DVR=^5p336)xzgg}QI9{y{UoZ!>6A_;E!UBe`*0 z^|PMc;}xklmQWhK=~?IZ7k;Q>yGA}AKhk$Q=8^2*FH*Ulx8xteW`*)ocW!42E(UB8 zE%gTX$+-0@pz{9Yw(Ou9g>g|6>?N3__l}5%)me&zcS$@N&+vU&w}wrTt)kB`_&P9y z+plBxW~~>63?m~{Iv#|CLImT`7C3DpAQp6Y!Big(wUBgt+P6V<rpya=y&d~LbZR;d zS)@$H!HXeRmj}(Dk3I^_>ZDjZzRw3#17q-3plNvn1bUs=G1Nh~JI-*_@kXZ@vLK}p zGrgy2(5ky2E<G!mR8<4V=UMbIGeq%jTyS8}*6E{6V0ozJ?}WLQE4J{J80qQd2bq{~ zz>JMl)t7IVp^})ZD(H4sUbnpc0$iT-OXNz9ldpa;oF-2NaHZz7#!s~H%{k%-=9Udk zFW!Y#%03FuEKZ3`nQ=B$t~Otg097?;h<~hB>IC)gz0!Cf_Qq%1*dLcrsoM$;HMFO> zM}g{D7$@T<#<0H4^aSZOFWNVnZm}?YWsK%8SfGgLUX`%JIINpe4#K*3Iye5%y*3-v z(2JGT`*F6e&5RVq95Jq5J#8x5t|enwoV%zNeO4U4y=A|B_uZ+8!JLN3fy+qHn2d~- zr_$IBL!h0GXIS>$BHol|IsBQPgLnJ45$WNIN~wPHKBiuc!!)LU^;tl2*(#UjE#`?0 zg-9U!u88@$D}!mA#uLZrw~LrzCCh=5@wHm}AHuPHnI}~p`8q)uNrrsY>&VeE{9Sgq z_jDt1u27a(HYWH#A}hDx1uj^SF+RB(D-B=Dwc4+aY$Q%^e&=iFW#;_fCr`7H2`+#) z<HFy11R)M}xSbrl5hn}h7a?3A{bI-ah@Z#3g<Zwij2A26dRLcXQaY51`pI`&G4%mr zSW&}c<6<n+`gC3`Ns0U$uaR0FC(}IjU!R1;tWIPWIiu0@E_2OX^PUVWjp<ai!I_1k z!hxPWrb|HP==P#Jn8`y0?(j9dg^q>e9BKJT1*0nw_qE7CQVA~TFkarp>^V;=`OwHN zuA>d9#BYJ56!JM+SJ|X!ac&LC7DVJ9-y(Ys-e`4stkFf7azai!7-Mkq*29<zrw{{A zus4EF?ADy3Hd1mIW(RKa7g^*y3oBzg!(`qwZV{cg2Y;hZYl~W8tNj=}z)9AZ2kSV) ziw8u}Ad<*Nf2<Ai<|jnFM$*dY+byeUKqlimI;)SE&k$91BM7N4-!*#bHN6vzt!S<D z5t)K{3Ur7Q`bkdoxX+32ixgRo7fA5>m=pS9eE~aNeQ7<r%x3#M!!%}|TUKRF8%Af? zp2yQ40<_kq`Xx+fvz;Gls{uKaYSwhO+M*`cFVTW|)8hs#!LJR*reSelZ|=Kq1}|(K zTN|-o&gTzqtqekPI2qk2d_SEPwbw^K4qsN|mna3RD7_Gp1T2hOIT~<*8Iv7PPJ3zE z3RZ-=_!CO*Q}ibcHcD!6qE^yrja$C5$Fj5g<39FufsME{?IALc1cJ6`{q3~B?)*Ot zu&S;GgJ-%y4aCT!qGj6X;s#`|J2dUpEg>A0(EIM_xNuHN$xP;@BFaoJe#me$U0>Ss zzC8KI-uGy%!X3SXD-UlJbDfts>~4;)MyUUFF39y6kqnzJR<MC4UmfH>=AJ6W8+S&l zu0I@8ha4oeWPHry;Gdk*j-Z~&MNTC_gZpl1xY--Ma%DOGT5Ui7%*%bG{v8CJz+f?E zdq@)~OCsIO5SSi8EgrVYCnX^dh~IK!-u{9G3Gq&2^N(s(#!G7G?!4^PGn-asMcXQ) z!nTV7*(8XWI%U`&W5Lz!VCS)aW$2(?N6P5NQ@1ipBfjFQHhIu0jCFMLLF#6-H4o!D z3$$PE^yd0IVP|b-;G_Za&){wQB)1+bGRgWmQ+q_M#ATSVBX>(T*wojpJzVS5Yk7M} zP-1nIg*IpZa3JW=l))bv>{vH6we=IgA5&8AKo&J$08-SszM3LI%~}otGy4F=)+Ha( z&`&~eA!0Hc+WTI3=<yNf+IGj-JKnuTU4)wb1RKNAOg&q8C*^5KPHd3tMBkniz!5%X zd)Ez&C&oP=O)LMV{2MCSn-1jl{~T;Rt<>1J*BpKwc1sPD$@r7R6th}8UKdwSB4K*E z^Hi;I=)N!e$B(bxVNWWl6>_)5a&q4ClQDV@QfK9uO6Hf3*6}@B!Y{_wQTw1deC*{i zU0;yW=nhCl=fD9Un!hlwFxgp77b1GG4q7M?rQ{c|m3w&m@q#GzGO#p|$zRA=wIHJp zF6$Fu#p<lhSvl3XyDlZLR$7$U-*%rcSD}Qwut`3q7Hbsx_5FZ4-yF$@Gn1J@o^()` zS=syj6xJCp^p>YZeP=3;)@(jU$3AHLez|9`jD%fuMG5?7*5AFpSMO9Ya_=Bo<qRo; zhu=l`Q41x76$qJ}C1(hWx^Ae#*|f-3Sv)llWwcx-1U!j`GVC7rOyW6hgdaM8`_Z`} zqKykYK{ja|BsOFHhjWm}`hB}7NZ^1lykZ$@VieQl65ryeX06jW0>jp_?o)HFv8XsM zvkUKNrKVe_$<E#Lm3S09SI=Eq28-o(F#HAv$OXb$@Hr#-Pv0(iy^BlopzM63I9LDu z3Jw<sF9QEJgC5wgs0n1gW1764X((o7fzq!9;@a|wlqxN5u5@DFLC1e-E@<nQub84` ztFd`TsoTViqEoKhgWnR|(WV)b;+P{XYNE{f9aDBwg+LINc6)dJdV<}lr@O<Mx9P7z zK`DGUf-~^5%pGTMCq63e1yt<xv|VKElAU^(HN%gOg17k&tJwR!9TE4Poitb3vjMYg z60OGlqpNRSoE_`7(r4iCq(|3HVpTD)xC#iT8V4;MqWzwMHf>!l^7SKrf2Xil&}Rf= z$T4BzxA@?sYfH~&rZCKZwE$9n#Z!k0|GB2FASfB?6b0tu|MSfL72(y|+&N2Xlisty z#5D-7Ge-hyR$p!4vZMQaInV#Ra1<VI&&#$U#_a2?yl&PR(A&u1F4lcUBR;fYHrcYI zvz3{QR7%B$ukNL9s6eJVp(-5_&D$84<#|mkok(>_<(>a_Torbl#OO3hVAt3Pr<$Yv z1cdiKg`%{XybbWu)DRD^-#`8ugf~bj6-<Rl!4=FC6fpbe(&5NF^1J?7_~INlM8PGw z@J2D5OS&VOsA8rU;f(v4yW9aFj)!fo*lVps86_O-;kEAtVZk{3sfwiT+s*e~+yi48 z(W|>^ZLdX$A;B=CY*hBPaeLoENoEA9oS0915O#}vEqniYpHy0k8E;kCwzv~0&N#OJ zI9DBRm057yXsZH$+uDfJxcVk?+8&|cRa<sfKlrYjXZB)T$3YXS0y=;|d%JQZsYB6H znZNz1ygYJ$B$!?=OrmI3E>n($49Cdp7&@3IkdfmL9xSQcdn}QPYHF7n&ifcr!A^xn z^8pz8nB!9?p5}ZOuM<ERWtQKy0qA_n*#9{C&isZq{R(uBi*hVLe3gfI_!w#yLYyut zt5PRQ;!;}HZk(g+xKUE%55`<=a;kX1?uV-7Hgqz$)rPiw!t{z7ptS!=(mvfqZXA%! zV5`(ntfj4`H)<VZGQ5B(H){Msbcs?LZ>zp+z(aLk+Uw>0l!S@S!u6Q^hNToj3^wx2 zAiQ_(6j6Uebas`ewLflDB59W-zQpWfC)OB3X-DP%h>qSUa`{%cFZ<v67PSi0q)@<~ zz<U%RdLIIo3*LYDM}0UlN?S~;^pT0ta=LflkFDNin>>37xHWu=iSr0lN-q9*yd0Um z#JALHK+9=>yND(Wn2*9suUlYo=XlOPjv5)jYb>oB7`<G+{$`dPYwgPum@PZHb<g?l zbiOdXRm83t_|lIPO#TcsSA$cXYZ`y9=p@`wRc3AMT4+ErH$3T~#XjbnJiM&j?wv=d za|Betagm8_V_r$g!}|fn#a(*H+#MNAUM`y?Ugw@}QDN+~gC}=4IqDP81s94riMyY{ zT$ZOnaWemPLFG@LF3(eExGMD3>*HcCTL7XzPn2QvL)yOOnb0jY$BGDisK>!biE)R! ze()_%)R_IHQFLcyt-=4_9Ub_Rwbjsxg`Om>W+<Aq-Q4cJt*WX6EX>Wwh%inH<foMG zRF!puJ{y}WQLkh5EE+a^GjooNCU*3IoVyDI7I-KZfAUNLUp{5$v_`zyjhua)DNeUI z!1zzScY{a4r+<FPwcB@BlSt{s?XJ|(Nqyma1uirBFS#M59RxM6>I}$9%+`=w2-gSj z9=n&t7KW{suFT+@Ip12zjHle=wNIb-ODZej9Tm<${#&U&0!Lh!(jll9MQ<6L?v8}g z_etZT^17O7Es>gZ<l@S1+-4;zQk$bEROmr}G?oWj{|^AqKrp|NN(m*Z$s@-Vt;Omk zpi_-Bk@XNk5j9Go+yt46!6j=hKleb_8REDM&Fx`@K#}n{-0n0UPMFhT+Z^^79D;Rl zFN(`bnN+8wv6VB~x$%kCgvS~G&vE5z3r8tRn#-MKD`NX}&Dz)?!Y}-m0X==>9lPDG zyM%k4%Y;I!q$I1*k=s2_2Sh33@!r`S<y(Y1Sk79BB6&rq<TNnU2W~L5;g|4*4`rG0 z=-whBF<-Yt1L`NTV@~cl2GA#0zNhu-ddDu?m1k?!!~^a5#MS6&Ia`$z5g0pTZYT2a zIa$2v3|mxOzxvQGICEE0NlHK`H!x+&PQ~Hmcvrs@b6IHvCvAmlI}q$#hykkYp5Q^C z$7Cd>UhIGVar8a(V`hjWm!zFDkOg$kcrR<^d%8LnBGS4Lqdvj@CX^y+0ZYqQx>NNK z06iiB1-V73BUsnE|70MLrD<FiD4Xn99xk~mzw`#S^tdb6$gmA~0?eEny#jgZ5pcv} z$BTPQrGr62)XY=+Qp(Kc&m?$?7Q4<EJ)M)|{<l)xj+U&&JzE}Oz_WVx@U@slO&rSO z(L4`U{R}&)QG_R)u4ej*&g@5oEcA?&p&ql`Tt(0l^x(t30S-fu!oi7b!-Md<-JHxP z4+-kd<Us~(F`tw?sJ9z-dV8eH{m3(05PSMQwuYH>DNu*n&wXP|LZJ+ekgUh^sOc?? z_2oRK4quyJmOWKC3=gumY4E*0=-YBX!kd4gS{`SU;j*-}<n7bxiA_@61UHaLINbpH zBnWl7T#{<e2~^09r@D1nes<>#&c6`pwuPK!&BPQAK$l53axBi@_0Q%1DZ`x-wa8s3 zd!WnsxlVD(EmWuI&_P}24!0WTbJ-qsnxi}d-CEQwQB_8!0h_ecbwKBuU6Gt7dD$t$ zo!pbW$x{t@Necp3ejTxng<Qw11G?lF&)0W7$4%@Ba%)-wI!=h&@Jo1Ny>?wTvA~Ji za|W-{22_9gdPF;ybEfoYpqwq}k%2xgw~~OTLJV?~cf`9DNadL``D`RJDrqBYmVk<4 z&QwD#Epkqrql2=}Wo1O3@-<c%$Z7;s`IO4XIC{V?!P5Y}`N~_^<H7BJy+x|dTHTLR z8FDk~Rgz&M%|OjSNxjplRvgG7YhkdXL_PXD<q3%E(NBI>F|P3v(8dFF`hH2U6x9PC zqW8&PBeeNmWQMx9Gan^umi)nOh<C0;ys?23A*oJY2Xt1-#sPMzWRIyi7s?JjD=AOx zeIbfnD!p?BIMbg>1gYk~`|$@6{XOL@*p(Bse(nAM*>{&La@u2Lu7&~hDcaPIaT^2Z zr+*G6<p~J9C=rVqb0lIBPGI4B(UL~ge*RB6A+EBe9iuf(V_dKkc_3+xkag2!#ZfiV zi`~Dz7tuGLM&|H#zLZiXxaFmL>Zo6JhPX^x%W%(dr@8VAuR~AsVy<0Q_17Y<O3y9Z z#4?~c%eRCTMlMR~&h_p+|7Nqb#fMeWkmOX?NnNbV{}`D$X9La6xo%&wT%E32-Ni4# zHX36qDsc2eJ3D&Q8o1M8n`@gAm-u1rZfK;m)P3>0=&?$;J+7>sX0CKc#<`qx<#7=) zZ0Rb`iQftklh>eFGy|V-yQ^zulJLiEAeW_T>ThCf`7+-r`<^Ujl5N=syX@SAZJXeA zB^0BYySN;&q>qz3Bc02TXlS>GPL{P~`;&=;^nB7<)<94xZUW48VjpGcC(?k&#}=^! za9OX<vHF3d%po8>5M#zCavt(o)CA}?qkS0OcsKeUyMx=blDl1cRYK*BJg%58z_}Wv zd~mJ12wN~IjL2)y?=SN#cupkni`sSan2_R4G`>`_7>h;WtExr($cLyaEyld&I_!CL z4f>wn$l)WMAx<WCa-5%9A&7qTWW5`vxQXnVlXtEG^vRR$>A$k9!PeSVQpR)f<u@Zl zR>159wpHT*65bf|#EYGq6`v<!dX$_qx27zc5cm4yz^LFB=N>@F60J-Dm%C&u)7ysX zneTzQpG5hkH=?J00j##!HnE0?EvpP*vH3eeN0tAG40rDP{`2o+;B}ERAeyo`0o`g@ z#_`_ns!mu<%~|phP1a7?E1Aoz<wSZ+5+0Ru*&8fbqHeAm=IboK9z_>ji%@YjD%(1l z^IKO^bVWriR!VLR4{<^oTc3$E|DP>XvaCl(;IlGls<g>WhT>VCccQN45=gz%SswSd zS~sFr+-coP`O|um1Vyg*evf1<u4>Tf8ma2pD8AvlNLRIR3E+5ut}Jxn8IT?VHRec& zL7Qk)M-FxYK0iu*UR0Ob3~CX#AHh@%{Uc${4Nwhy1bGdebD{}p`a48rYc=5k?0w)r z5!>>gV9%8+fZ*bbI7||)>p;!y`4~;45RXJ{E`7I6WWx!ZA{o(1YUA8^SP>Bl8iyFV z523sy2&=q`uS?X!bkqg?Xo&UWjSUZ?Z}a`!6^=+{BqgmPN)q`RvURPq)#~Zr_&&Z* zU;w?4=UxE1B;ueLx@+NO2wre4!bLT<)g~KC2s!9L?i5YFzsc-p+AuC?twrzdH_^5B zhs?Q6KtsnE3w;WBpL5!9@=l*t76rKmgJ)d<_j#X1sC}u5y|OD-OGwLSp-V85#3}?j z$?eZ^a$0)tOSZ_U#i!fD4N@q}oepXuLK}72)n7qRc`JO)EgWCgUHW9{>Xw{S-lSL% z2l||bTD~V|elru_pnY4>+gvthss8+Txjx%p(}Z+glkK7<T2#%#X0X$&NK#f5?|AQF zu2*MQdS4GJONyBVu+p7Ee@`#cVS9c{8=4RZ_;Fw;gs$$RKuMWxty7|z<_Xa2sK<Nl zWWt&xDBAz{qv*NsUzyK<d)rg%TMi|q*vnEu@+@uO5<qq%`)$TOX<@6df|yt7rdDxo zLC4B*@<<r7o9j?iR*LjMKes!LiAFg=zYj&_<@Ol+hd6Ve*MMm3lFtGk?_HAemI-LP ze*CwvUVE6mEX2XT;D+yD)}_~C_klx*RL?*v5=F<{*@(J4c(;2H1BsOKIM7&~ZhsXL z60%oZ^Wt|V>!~c~F&-F=p(qtYali)k-uHH*=!4zZ|M<f>WJNaZtF64r1WZNwsu5Qe z@^*SAjLiW0nJ`Ny@r-1xQ4E(rg#evO#z>Q{IsbErEWQw-`q^x?@#dhF<H%bb%R=Xu zTDnZ-Mj0Bys-|jAh$H&b$d2b!DU}3t`X0OIrpQ89b?+LWb0)641d3g3*4ePiYI2BF zl#-IiLg&p`Fr~?aIMpWh$UAn7H<e^S=d6CqZHGP5UIbQu7Oo4fN4lyWv8vi^2^C$_ zB1+sW3m3C?X)@;DMRxY;`eJ;r`9XATcmU}GZ>qX?u0MDC>`rSgKRUnt56o}wZEi!n zxXhksk*%#SDcvKXyQaxvCEoS;!4I&gtr7DYDlpX3jU#Vv!``>|Ae;cIi(IgLek?iv zVsxCf1ltev<K;vBHr4B>-C=FKSUpdRBk4{mE!3n%wxgx;DN2Z=ap|@8oZR`Dub|gk zYL^{GhV4cvg0I}^2AB8ahZ3=T24n%|mo98aV^uNsy!a9he|P{xAM8aWkw(z#f~%wg zi&uSu$N0pX`_Sd~vo)=g(>UkL`7Y(WQzCRi4SnAJ@%OkSkChdV4|A`&4K*#Dcxzu5 zytPdThiuZPi@x?}*gqJ?j-#VMP;}&rglzV@JVY||9a3^)sg&Ibao{LQy)KTEC*FAz zuRr&DzHUj056Ng6?qmoxm1QXE-iO^!K8j3uSjEtD0Ns9z`MVr9m$cF+u}_(=oLUJO zKtHweoHkb@E5_vwaQxiw@z{)EE<Y--xCOCUD>xyJx@*Y<BxgC+cmvTlC6&OGjB^{t zrc6Z9pC&)ptt@o4v5^HSz;&_(rT1%=_f*{OrA^#AHr%`b>4mFpt4><2<5=kW=FEUD zT2E3E;Qr0)xH}j6_pwDzeD&OQjN6x{kU|hvQ5lM__$tzK&#@WesDqlw{AQ7i<91gd zAy~p>-}QaJxyN>kk`iGh6y+<I$B`mZJqyG%MqC5Yne%KBi1IBb!HSH-I_uq;cYS04 zi)zal%=f+c9CmHpgxCjfbB}WB$Bys-Ts}YdIzRu0TTpl5RoJxWLyQpTh)BFsHT06- z+%Z;tEl5CbEb*f_7Dm@^*K#{r>U<_U$1#w&in*rWb;0M*Q`*dAIf`*l5Txkke!B9& ziV?Z32aYncoOkpn&hDIn^3guLv*l47*|P)jL;HDb@}M#LY8tWpmhU3oGz%{u9t8Y> zY&W-fWK8DyvAkWxOh?`FB0FEg-e3I)nfITz=ZM}Be+^t!4amf!uzUgj8EEe01~E_f z#n2Paz$&&WZIx_wo&uq8(mPG-Wq>LhipzPuk#$bQPp_<71HAn*T*)xcBma!s%z<=2 zB7~xZI7)bv{PK2!ZEjBllL$B2JK4mpZvcH_@;YPACh#Knoet<IYew;9UqZTRCOivP za{QbQ8DGn(3qD2+T>=pOlr_J^OHIjPoRPf6?o{PThqC<6Q|y+@2k7*?GK;wO>RWP| z@&pAaos%zyE^Ecvy-C*H=m@joQ4-+(Ef3nPc>V8Xl_$&1rDSvvo0(PF!~ok>*@24o zxi*z2Wf%vGbI3>710bz+=TEN}l}KZeCx+J^{S^ZpQNHSc&g^L^7Xq_aDt9#9kL%sN zr8(6M65u%#Tk}S!n6pq?F6pSY!Thm%5I?vVss4k=B#1UuH0_{uln67x{=t9$XS{r9 z2s=Y*l`O_`7p{F;FO>Ag8P<8$SWZ~so!7AY(Y3%E8@U~=<i+P2bblp+=U)T&vP+O? zo6oU(*)COvLu5a989LEhx02ObT3N%PgqclsSXv#xwlzOR&uh;yk9#I!hcWos6CqZH zi6!l<FZ~5p{g=PN{jcrAh|6cw1v|j}xXM{F17fC|Tk1pqOIx_~(CXf)lrnCrBV@`C z;4MP+f@SEq@!Qxnl0jhB0=tc>D6PwvSg1ldp$JNA>X-wb-t$%MjmUI=fE{;y-|h-X zV~7pd<D;>rW1NTK^|`qhJcsE7`yf-&3YIuo1}l@}Obz<<fCdBT(_<b^=~L+CS+Xk? zS?H=%%U=WU((~<>oq~je5}#yOukmVJ$BUs80L`qb;*8{dn;*i!6YDtJo4Cc5OOCaG zELG$w9dMqDNg3FikxRt=Y=$@@BWb<nRt8sJQwLk<lnBPIOGm7gA6v#E$*QB$B~OsE zw~3ZC^}##Xw{ab!Z#>Nwx@^iqo1$zvNf=G-YCFI7H~7F?t4M5)Wx?f>4=EZg6-7wC z{}#G8J-~g}Gohoo7P`yDrEASs-G+hA705Ksw&UmI4In@liGS?Emn0=3TUuqblcGkM z)R7U)ZD~fua1VC<`WHy<dI^JXzsA5uc>?75Q3+FmO84&`z8C-S+XLt+skT8|#QiC2 zUApsS7P}r+kV+zV?i=i9i+SYLXSF<m5NA@;JxO7)s#*~^_ZnDBE<mcW6$#M-R8?Kb z>~AfrJqOS&H-j;igAsQ*xuBWdaMz1Gk1{Oe5etbM!K6~S=*xeJtN->N@ZTSN6)}pV z>zU+Qm_%24<vCo}E=t`hJ$_cqcK>!Qmma!@_p2!<RyGRV(81voZ!u=Bybz()*MKtL zt@;*Dj#Hrw2hFSQ)zKN|XpNKN?c4Pt_O1H~B5!R~`~~vn^uE%Vovl*s?rL_!8JnCo z%WGl4e6n}56TiLz^b?oW8Fi)(XiVlJthS~rZbFy0R@Gj!MM#N3l-2C0Yduy{kKBx< zLO@M4+<Ug+!>t>*ew8+T26U0(&e}imxla-2v&?Ac`dNzIr&4wnxVIR=`KuM#3Ne{6 zk&B2$s*PB4TPm>8YJX)jkN!7bz}}6IAhY`!yKN{B)FwWW%~Hq>j(HcM=9=3uT-wY4 zd#tSJ@#IeNP}w-+&=U{a7FIIq=!QiAP=WSqzlOf{6-YL8+MyNcS&;qC1)!@%ExT<I zI3&`xaubcQMdy3(P3-vfJs5oDDP)EZ<N!H+pEiF6_O=!Hw~Y_spMLW;j+D<(L@as? zovdeKx^r6Sx{L|%i3yMLF+TkD&k%j@b=z_jfX+^g8E3)ssV^bZxfrObW<Xc<^n&G% z!x}oHod7;cEMz*@!ylruvJ&Sumg436?yy4`TJoI)a~<r?x%x{u|9k(AA8gsK8n)2i zb!AwOrOWT;<U~Ycs_D#I_uY=cXC8qo+^sBhoy3I{QVN~bQtrj#3oukW2brqs9NFfp z!f=w<@UqM#v8cL|+x!yo6EO^u0;(Sp(D|JaadP#}%BmRw=+fQpByc*THp&8fSOe$< zHlb<*v6HJg!(6qQTzWBFtFGXLIIDf0auu@cS9Isfn~Wv0TX|E+ldMHR)0he&yyHdm zJ^h%XKjqF*LbI369HtV`r7R?)6<g}mdF+xuLbPo$d~?pu<`D=0*O!A#M5E7`DpY_2 zfq$tB+*MAo;vIOCU9()H>nc$S4a>}5gpx~c9h18tWjW@aS~8seH`xh`GQS7c|AK*z zGQT-q&+gJRdqk+CTkUm!jL{iOI029PWpiSbzlh!4%y=df@HEARfgzf-UFE4Hv*0bR zE#bQ4;g>eEMMth!BC+9yGg<=}-u$cQ;QF7g$M1H$&-K&NLg!}_E_XF%M-re~ThSQj zW60bDl_wyQ4W)%nA%*fUd>exS+vA}tqmrjx$&SY8=<&|;84Gg>p!e|m%$*Q<{x`^s z98victdwbdx}==WJogV!@#X)9*SbUS&77miXvW({RBnpkj_31|aV)ATK`=6?dX9q< zDG{-~N#y<(^UCj#w}QJPCKi4Y{^m}Ef~88flEPNq-<en`TgZy=2_+ip`4>{@<i`>( zr;{pLU7G=2YseyVV(5e^^u877mVHWwWdQw@h;jN|go$Nbwu?*xS@44EVJ$otk;d7u z8rvAq2_$sVk1?6m`Qn^9;E05{^2h)}FKxont-ogaQ*z1jORj14Q)!{g%~-|&$xFdy zHzl<;u}+{CzGa`xZj9tk7ffL}N{d$dBg?)hQH)Bs2y}Y4{u&={UdMgkz1|EG(Ga|W zVs6ADNjV76TfY8}=t`H`?P`OiW5OH9lRJTc<TjTZvYq*DcXFfTJ9~_AxZ74DaOGFH zqno$3*|uJV>szi=26c_KP4c*ta>p6b;V?6`1qXW2wSEnQ9rq%4TXxbN-0=8)NGGDK zNRXVZ#wA$v)&GipzG}p0%vJpD63~@`C7y)=U(%#%`52NoXUF|NLxj8#B9uXjDJw0m zVz`!Eik9oXiUY-U@Kx4jl`XCA-DxRH1&x)9(NR>Ema)R3dZ54k3Nj-$cLHZ_3!svq zPL^}k(o0Zs?YD3sP-~YvYP|Tmf~I@0*m{>rvtUW2F(%)64g2o-fn5<I;@2c!s*0fa zwQ_rxGyzw96V}4z%r7t9?J7LvV5=Kbwnl5a=Lp*CtL#>^5Bvhrr`B+|Cfjm1x6gS# z+GI6<(#z%`Zkm3(;K%QY44@b2oI7L41Y|XT@HO;T&qC#_c^If@%;CLO7Tb6US>t^k zi{`dW-LlT^uqH~=I0;R}-KJ8D&sAtr+#j3)y}AQ+pZf-SMIM24l}bjfoaI1c7DtYS zo{Vs|FlAvM*>Ja=5O?%ImQS5JQ)w=DV&_vG!352$N`7PEc*akJlh2SyvzwOgNkk-> z*ES&D|6#W8x+`si9V`TwTn6{$w<1*D0Do<Lj-^cQX2nS^7}S_(g%O1k-E3wwk_Xk; z554g`hM#@}1J6FfjC4e0EBWHdS|>m!E0P-CP-|Ew>#3W|9w2Tts>OF@ojrdh?vwBJ zqfT-Jc6%SY7txnD0<pfFE^7?vpZ*Gp&%F}y>Lyl@l=nol#AOe5z1CjcFBwOjJHyOq zR02rNUu+)!s0s^7q8>@*OL-AR%PvFd<u{|JalY!kt~>&|*FpO~gF7io6xI?1FT}+k zd2K7Y?!TSyE4c%BIZ&QQn!G*2?Oi>G33Nz7qnr=QN07;QYCK|{sIhA6hVL61!lJrL zZbkdrn%ix;iaZy(h7663QM!dyE=x~IadW!h`I)Dn6tzIN>Qg!_1L&tzoYUuGP79p? zz2mEY!&YL+qGinM%{8>dlBJaw9T!}5@S)+xqMRkn^r!3YPziCe3`}l{WC@Ik$xX7j z{9d2UZ=TMuTbi4tw4IIW%f6Vy;jX%G2@Y}RCdt23T)D`W8O0(y%S+)q+=V@N|0^<Y zzsRv=MXyWnqixE>&PNoi-DNFysDtD#K~w_iaX?)X$_&5#I`%(yA2Qq4Glx5G#*{=Q zO4rDWtho3~@U6bWCa|fg&o*KaKq?!J<N%$fyhyMmU?rxugOC0K$+w?ntC0?}9O)nh zNpc*(RfNhFmm;zJGNf9UC?XqH667J>!SXZBJ*+PUB3v1H^=XW3eHh^v9#vzLvHGO9 z9QC(;kLM5zm)ePDa_+SINkHdoJ3<WfQC%j6xkYa5dHfMob}0KEs3td}2RL8DSBAi< zE8tmuB|@zWIFuoK%5&1+IES8iO1TWBB~_U3jiY<hTI_%LPOgsNWq>q$)o8uSI&XSs zn5Os(-$swGifM|O(U5B3MKYrdqp0yZ<t)a(sLY4dyKkWDclX)(7m48<SNYg(eOYB( zZ(GY@9m_7U(-Y;UQemIut>cWnyaDtxcIuA(;1bX!*$8D>w_pEtPKc8Xal8pSH(Y0I z^LW1l%(-3HyB}}-@&{_8$i~{dD)A;qyZ;Ds*EgOqF?rzzr2CUqPJqrbpp6ni6fM0N z>BW~IPIRxW^K7@UmP3#O<`QJdnxsQ;ddrrnWJSJx*FVFiB@HP?Jl;RuUe!0cV%4=s zTzC^gC3SY(mB3t&>FU6iC$>y;M1W2Sanv}Y_pv*fiI1!}0y%O#$fg+-Z*9K(W(=Hl z1;@|hmDw(G$};v!cXHOvD%Syng0Lo+1d?1<wQtS8DYv%{=!&CW#C>I>6qSf4*B8l8 z-cy2WzHth-dqpw?y!o`9kFoRdoFqKi1AXy#{t-K(KD!6H2$k5VC=`g}DGx#sW!m1y zeu?NSze94UTPZD^$4!=SCZ#GD$h%W>*-ePdSb$K=T*$VjtN@KSKACVD9<_55Vqw%* zRbozJNM*Q7Wsn|UmWZjJZXbLLFSZ#5i|XNPpOsUdm$P2AT!ozXTI7JpPKcaP`TCQJ z_=%@PaI-7jOHc{he@o=_K`<8jN7%e3`Kt!dCt1L!>+-g%TX1@NE8w293jRyJh-hU! z0~s9*=oHg)ZbourJQmQ14VhejZQcZed$;4AJO2*WkzE`|c4i1W`zP!5tBUZ2w0<4D z=%WAtAOJ~3K~%A^IO|*Wa~M=4KfD9cm5X20ffML(9Nq0h%2mYK-v_GZz~8<=Wt)!& zbU6u40@Rt;JTijS?F~5i%<pWMY1cMID@)I&JQ0*MMECssH#p-wRMTc#%=r|lV=a_q zTqWTVE8U@uYY~0>S-vMLDj6?ZvCIZoJ&Qpn)VY$&xm3Jf<APW7J&uJ;k3u}-I_O}y zi=WUbcUAB2tw6_3-$i%pa=veIaS7K-v*mg$D_wLvqifT-l!#{y^~3%87CY<w@D3ZN zWinPt6Rgr2j@9q*R53#w6UxZM&3x9set)S@B;%aHpW6NccCGs<!rPzW<}cC<L0%7V z|L;*AGg<7e#zkCucqm;2PfG`P%ah&8^y$m-d_+Swsf%#6$HSvc)RXEvf_<AFLS*yZ zuwp%SzKccHxl3{Jb10*v3I3&*DuzL-Sdd{Nbx(SSMN+Giagfi^@-N6Mz&RiLUuEl@ z-cwezX{`!+<f%$rJzaZaA>Y>kdLhoP#^KIdzc;{H)<Z34!P`7bWd-M0G)_54>r`%l zdJJ8DCM+t_{0V5tl5-NB=$CbZ`iY8OHXf1Z>kU_OHd5gRw8!OBF>TKBC$KANV1~G( zjf**3Sk`Cr`A#cK8>0jyjz7l}sPkE9E%B>9-RVQyb1WF{Y9|OeQtna)y8U$v;A?8n zmXPTWehgsMH{_hm??c;})0_?tDY!kHOqHsdX}5)~nZ=Z^oDio~DX;=Zo4<2D_3<X- z9Iq!vF$$wlSrwJ!Nl?`{e5GjB%;DUGP(>5BGUZNQPB2#!C~^jb+*wH?1v5O#$%e!@ z$hiqbP&9Ictz@N~x=J`9uI}Q`atMPv<p~R&6FgJIb57tSybn%=RReTNOp_r6N=%c? zXru%(xl1OQ6Uwk=o{QQWzr~sL{<=CF&?OO2zWEfM6?!HPbC8mmNpVTuk)3bggY~~c z`i+gu#V-{zx{M?wV((H(3u><Va*l$g!V3bd)p*BwN9i<DlvLgO=C!KUUU!{ObtTG) zzW?UD6PJJi^b?oW8FeOexf3}BY5lGu8&ry#keR(Cn-whklIs?FJ^&vtzMJ^}*?SZ4 zx~eNnc)xkj(>z#%ZArG|c^<LB#$e{rP$7^aRhdX7sd@goySl5py1M>!|EWsSsU#Hw zNl1WTMl%_(8EhPI00(SrV;c+}!3N2)H9hIgufMg=+2@^i^(0FM8w0xE2a@&fyTiHX zp0$Uy*UlK`^*i_cyIFu`L6T+;&RW-z45aZMbZxgGD51d%Uu&+6M#^m%<j8B3#cURK z)g?EwLfimwwE^8p*wP*z6XUv$)5ONH%o*76(A^Z<{0L=_y~W<LY&imvm!Qtq{N=x+ z_bE)lxy$K9e}8^NM2rdXu<XIHh)oa#33eT$_a68U>U?1>_s&)o1R3_O0O)wmWi7L) z>guo3K2HVtn_3m9Vk?j%&-3Q&5V$5fmbV`;txJ(_wM&+G=&fi9y4P`|6y2)zL~oSk zN%Kf?HlWKjNjEnDde`wB6Z?+uQU9j<*=v^ezmhgVXdj|E{o|*StD;h!19Q{{Z`(+c zzgy3kQy7&+bl|y1DZb%8>fG}R6VuR3hXGv^8$ps|58V}@;CY|t{CT=!Y_1l(kl|pR zn~jWkOoiuTaR&Cq4Hfj}b8D%6-D)oJlqN>f{?-6`mdIZ@mKwhNkNi9%jT3T4gf)Hx z3^WJN1v&isAaTXQ(I@U?0}aZ1(qu(F7T+kbZ6piRS-S5ipr54==EGhVnmkBzkhHgq zX5aFkX-BGvd@~nQBH+vSVEBD@=e*RDv97J$GMK`R{xork5$bq*j~V$$1te%v0wNip zIh_MwY3MMVpTiKP5kR#&y8-0D%4Rv#REmO=&gCBH;=Q_j{v6}m3FuBQk3A<3#iLQ0 zIkAb*RAc{|pRrn-w23VQ=pf;tWooY{O#W#L^8sBO4!r0)NmaJD6-zPk5G1^#58cX) zb0IX@)eH!|mrYs3fPOeKo?K(<@&Ub23Z+1Z8rK6AJm`$?f9Pi#bm9&GumGLhR5|w& z)hHz!B45i4_O=<&Z4Xw)*pB{)0g0cz-87@Viu|1)(AJ-Pn=;#<;nF|R5@!~FpqiTg z@NcOtR88qg^YZ7iu=H^(F^~#?IifLA>%M!<uPC-<9jA)Wo>h!b8_?O1@Dx+z+CL>~ zp21SHGIuy?BasOE{`6#U0(xHQ;S1|2v;WmxSYL<vh2f5C@Q$BJlWzG3IuP?vdcyQv zx@I`<sJ;dOI#~4}#O-->HD$Ix$CU$ih#jGKLv}ku;!huTjT`;`z!4Y)^iSce5Kk2g z0)P~fuf{W-G*gu^fe2P;6JQ_axF9rZJh@jlur4$fMbkT3JZUQrI?^0nzUM719JS-A zJ!3hh$?0lRk1c&$w&+S`VcX?D@ah<-B~**U3JK001Bqhv$GNK<LZ<EO?q(98v@dl6 zI>x_z;bjy!Plt!cP2^mv+3c|f06BA^vZF3pgA(77C+=oK6T-tv{Z8eznZ)G|FzK)4 z{8iN1FhdE-px)d%j>(@Fx<|dAi00T`<e)1c(SQNsB4D_$xIr=N!(&vhce`9o#?&U` z707GbhQxti{VUh@Lm^H&tZ}5JvXyFX{Bvp#)lj5$nhNdX*~$3Hy^29*N1^1N(-~tR zu~DXFd!@~=%w4uMvM>n!lnGT);}`yt4wW?JpH~b$T!U<Ow8bg~#K#DIw@?rFJUG62 z9e0s~;myX1qudc;e{=;bUU7X+KnL?jQYQAe4)#3J=RK1cAcABw+|7D1(id}>YsBbo zXKn;W0sYL4wK>y}EbWirdU6bRH+#jN=@(IE>N27^%gA3hUde#kp~6ColI^jJ=i&G% zVN1xLiYF(`YY3b;iETN7jvOf40v1kk9EM_m=dDX-WS9!&bNMru3PX$VN;>PO`jww! z`Ap8ej+>}d(<Hy?1U`FlwnDl7c#<Ynl~UWL#}x~E*CrO{5PpC}2&730G}Y6S=F<oD z(^PmEtuTY$!bXElY_jJ;EJaP81ods*WE9&#f|E_eR?x(weB}+SNN2oPd!ZLV9prhk zA(Kk7;EE`Up^F@N5nP6-qbW|K35`;4UjLls)LB18dCj&F;RIU^NJbJCV-g55*x|e& zZXJ63E|y{C20ti{(rS3w=JP0g$&JP+!)XklYw+}E(mBsv0Nn=q{y5ES97o>$+c~As zzx_8XvVu^zlsTdt%S4p?W#kH#(Zp~5589UwbCn31-B3Ri7JUPa2`8XyZyN6l+QQaG z+d0zG`N}$S_rp_GqCk*m#wKDfD9>Y6!|BU%DI%vq=rq>sXRF`qY%;+lPE&7xWbc5I zH4)M|)8bDb!E!fx2x|mJ0sRb52OFSF>%r5|PZ;3Itu(WKw(>ob=27pA^NC7TUu@p& zkgs?c&V0J;Cjg($7(l|p32=iz2A9HY-$a3IpJ~`(cWRO*DL9-VwT)oxIY*rJD@jb< zc*B%x6)d??2N$xDtGJdbFTO#wOl_P_@sfzzA(kTY=rS$~@Zhz}X1w=ghS}zonHcr{ z=27a{_%OFGWib*hgDJJ>_-?wSk%H&nK%Ob{DLSS}0XiZhJ~x-4nd95xcAK=O7w6)1 zhQ|Ae+Ma)enctq{@8osD5<quFs;KeCKV~m7J7vbe(Jho#Z~{V4ALp?_h?CBF?&uND zEhBB=tTpDUf|3Rv+v80O*?VQOn3j=c<3;k@j8;nLo}&@iWXxkJCdAndOB5k4rms*L z33V6WOr2BDr~aB|7R>=zCBP83o}B@7o@|cNy#6@(-ELE*fO(tT`7DRqMFme8f>~C= zL;fC>3ZAJ;sru5Js4Y-M*$FM?{lU37{H_UagOc)a9lhPOXi77e9=1LBW3KJbq>^lO z8sQ`Tez3%?r;H|i<G-uk3(b?2fDQnCFvG0S`vhaKBErve|N4i_oE4o2^A+J^jE37s zuqvH>yN&|-$Mj5`(uziE(s@0nsFBP$F@*5EL4xFKyk#L1;tZhM#4iau!%HpXy~)BW z-kt_`<O3m{`Pu__Q2&MpI7Au<d5N?a0WUqb<-9g5oLDgJpV-g&H~F_51CpcI1kf2Y z)2TcaF=q*m0J^(&5>>8P#Y%aQUu7>6ge-V-HXz`j`tMk%?M)c&)jn5_h24FK&#%I? zil8SUaHKklF1?webyF!@H;yP2$RA&ci~!JWAjd&qXaEfR<Log@n6_ix-Q<rQQ^YOp zxf(#XTC`GQYcA|P7?2lw*6EBYt2+D^9ewg1<wf>=pvaXX-eQ$E0nlx+9{;47xiCNO zArMsZ!UA~qz1k!;4Lo%{?X>&8pU{aH*XAk2NlKyWx^Gcz!hDL>wNRj_C?C+XUOpFt zyhI7C2n9Es>FuRrzmHp&9@_Xgbv?g^Vtco+;egUc%sGwLM#lj8b7-j}^3h*0mR#eT zcx(}^Nn~9V@M{4U+qfts?$Xmo%O{QFaz`|sNxt(kgLxi_QVd>~pF7HN%U#_}DX-kI zP*uht@2;f9c0YCx#kM@HlpJk73vPH6&_5<5_-Id?59qcwZ=v(p;Bp$g%0X{!u<MfR z8RS|9fTn!{=XXBp`?33f4_EWpB8Yt$1tvSM3h&8yiBPu!NNCXFpArs*=WTncHhA0n zTX|nB6k|IM(C+7-<a{8!RfH|2r6vO|WzB-c<zrc&3T;A4+=Ye^!}}@6%<rC-tBW?E zuLVJn^A&YC<d(}O&!fNvpQm<r3HfI(%*mn3ecIt}8|d|cInNIEcV($5=R%uU)DTOZ zGViLvPNYzo`5mZIjB^R=YoIe;s&nFFjQish2m~qK(?v~nHMw&>eK&_orFAI-9b`8> z5pp-rr<!ZOL?2X7BG;HP3ecUoRXcBA;CDnI8p|R%Lfl)gSR4VL0Rr=Gxr2s?cf?mo z{Y?|O5evk3unov>Tj6&p<$~HEwwdGW$-nz0dTsUXlzC$#-)ElsUZ9++Q5rX4A@w&j zvy>_{0gOSW?={aumk5kJ-*}A64##Hu^7`0|5RtlORST}FBfQ+uXZ9ccciQVI<30%7 zp)cO2xEG0J;S`F4i-LXq*|aevI@aG~^b4eU5R4`@htm9>xF;;8;FVuC+7W~DFJ%4{ zc%BkPV?x}6cks9x316!jiyT7g(LY+489myW8i5?37XnSEcj#m!pXRH~1LTt#8+tJv z)+H5SRtw?B`F&G+%QA<<X#aUK<3s0#2NO_{Jmmn7eT1I6jGeoF7JG^5hH1PA8aDf| z25R6=hCrr0xxj&)^xAFTq0FJzDc~ncN4xk-c0c7jiAb%!HPX|=o5zM)YY5li{t%`V zpl8K2R)tgHbATL6zh;Tcxyt9RU=JNRQ1&9lQ<Mv_L&50``CVBB6nYbeyRfi#Lly70 zkFaNFNNJQda|E6%NO+Z(eu4J6i<Jg<B01o=1;@bw=rhLFlJEU}wCB$64^W6RUb8z) z!E>+YvMMOGK_PBX;^Sb0pUzOR&us`)qBCwc@DR_=yqlf~6Y-#L9xth(Sa~gR+tR*X z_FNh80zq{~M?PE98ZeaXF!=tpzcwBF@HJ_D3#GQm)nDU?2Q%qK7|C%zChB56TT@A( z0ll*OC>`DKh%Vtek`v5v7cmjf5ad8CEvjJIWRxB<H=(G6sJBPmpG39fTxcV!rE$$= zX=AzBM^v7U(wombM$rxTnQ}*&KOk_j!HQ@|*3U%4_>AS0u4+`;5q-TmqkEVy5XNFo zZ8>)ZlyQ}&K@wH6RpLegeV7A#mhR?4s+A2jClHMgKu+iV74)=E2Jk~%|BytilO0#z zs15E;6*I}FV%I`q9QIh*1UdWfdC%k&o`ncTlubR40_Uxw&T(^cWlZph#2dE>OX8*5 z-n#R5A#|mZ-0a~T*KvB~@ds%86Aw_fx03?i1SMQbD1_X|c_;FJp6WzF_&b?U$0MR3 znxlBLbnN~1d_fScAeSfo8W~4r3of9*oMlXi3)GDr2<SE|x&WY)20M7K@OIu@{bS0! zu|dm%;stVeukMIpexnDvue^-nDIMNF*%)X*2gqUL1sQ$UfBj?1?0eZ55z1(S%2%2w zP{rPBNBxY#1`8vjj=~J_Qve<H+3jn7O8KHWNG>R&g`*Ofq@D<cF8Bg@=B>>2UQegU zue*@3QDhrSP7fX2jZ~7u;Alt7%=)$W@qNNe=JuhwVu72#NZFwc==L0y`-B*cPH~t> z06vRFsX64MVCNA|DM$$*qB(|Xo=sR<>RwJMaQC`!6>|i7Fs~u$D&#whJ<p}01pple zBKRgS%sBM@@>=ffW_NOvk~!wSxWiO+&DWXpk*#Z0B1kr%7kWnvJXbtV%-ObQA0k8r z(g(MZ-|JE-8y;At5XUJx{qFFjJB2mpWYc=|^V2^9IY2LPt|3F#r~lei0{{-mD&;N7 zHSs%({>xh2BJWZhp>rp5y3n!Ycq6Uau-U#0-nxWnu%QtxbEiRp{q1|Rzt1n(2w$$8 zk)XUplufl2*HRWLaoBW-(}22t!od~_06D^!vQWlS?9E*|Wh}Wm+UT{HH`9BEj#5cQ zF-5bQWEQEQ3`j*pRN__7tG8cBP9vK@ss1E+Lq2l#_t1nQKQ&FBLS0*)rRN`kA)#vD zu^`GA<2f6zy?i1CmtITp`qo?zbYTm_qk^|C1`gEkuuy05F!g;f5X7jwyqp?B9%i^R z*d5)e^5@LF7mh$qZWr7I03B56lEE<bAe0Z!U+3@52oxx};`-)jlxm6sR8v~a3v&D8 zcjT2h89>h_$yHphn(z3kDT_{L@QUFP4+h?Ha>w%qfeIbn-dXcY7R~W=>@}Ck;b#r# z@<(XL*Zlt9(XrxjiksjM@%+MlV#@<`{6TXC*khK6Mb>57(H>lXziGiMgg6m)krF_p zFv=!PCy3V!S}`D=ayp|tX$fb?qMSB?RB`*dd#HW$S~ds)=J1XY;Q`=D4*;wQ)yr<A z{+Z`9pfkh0H>z~m3wg{qFE$(0Q%R0Mz%c9C{hDfy!X=(6T_b5ET!UJRyxiuu>AF9n z_Sz{qAsZpC4rXxkm#x%UI%CH5)w^#a+PconS$-6n_aSTSD4>sQO*$L*J}D{gOoMv9 zx2yEX?bdxFt0_O7gX%0}`X~lnjww=`;x)*>aSqi&G6&2<X_w124d$Jj#Zn?CBLsAO zpU2TxM)fOJF)J8hyF^vZz!IC`43IF}0q7udVS&`16-A@u>OPM6H<g!HQD1+8vVK3s zeLkX8ngWAdyDOpg8_CarF4dY?7N*DtZ`13mZ>7#RUo*lr0_gU0z+&mIYNX=Jzs5b# zA*{o!WL&?~vvZDxd=9|Xp<2_OYt3!kVNJSFF#%E6YV%<t^%T6|W{Nk?<nDH;mlj60 zNm~>edwos`@q=+*MJd|<&~152eB2lXo}BJY4gwxJx-kp8d5R*UA>3^nCD!>08ZA2N z0zw>Gm&Ug~lh-p_NO)5JF89f;VMUovgAR^w03E*+sJS-`@kElD*rxaTmUUbzmj~#9 zYEv557N{ow*rq{4?s>zC@q}>$BQ_A^nrsl_&~%11@%L^q+UbmkSs$S-EHvGP^MTUC z)U4&)?X0|U0t329Ct!T_z44d=lpSCWgHb$mi1na*UH^`aCeornTp2(D@R{<7s%5H< z3UGACd2IVeZNrTZ<mUN}ajgK+@Zr03Px}LT>#42ZFdA+j&SH3W?^6)aou23Ex&;PA zSkBp8M=SuNOls6-at>7I-U`(zpUSlrGE#;DS9{WP69t{u6F|px3Zol&U6l6>E8l)9 z7eCDJ@cl&Uspzt=Ql@^Q%KgFXl$YHpAmj8Bhj|{}&FfbHVvB2x<ohSv7hVs-r#dPy zr^ro**WX8nH?8FmVy^ePzC9f}6vlg~ritoq`WxlFPM)K7a@Hpox&|zg*tEBc9Owk< zp<VagN=G(6Y)D(&)lGLiGlpiR(l$qnPd=wDU^B@58bHA3+M|?`qn)>Xn?-CuXyT94 zs_Bej)X%w+g3GUE7PhIew*kEXNej8_Jn)Id6bt+1jY_~~`zE}6Mw%4o72bl0gfuN= z<u=0;5Si0xe?I8xd18+{?l<7|P){OB6C3Ktzi&GoSo1UXUOmYU6>f*DEn443#t~ie zHF7mh=9=tyaarLAgmY{y(kDQ;lu|Ui+)rEA+)c+GyWP}*v(`Uq&s`ptfHew(o-$5l zaEG<J79ym6B>LevS6=R3#v5}tSj6u~i!V*>zg^Ff7Nj!Nnxj%RD)u2Ic1dzizl5@v z-9qFKD!zc`rVI$@%QaXL3G<F?K!+ev$BR#?p7!Y;9#>wckiwEpv)u8|kwz*{_WF)~ ze&$Btq#pX|x)gw6E<cv93(c~nx{L`7WlHys{4(s&`$x!Nm)x{4sEbO=sK4hp3qxc) zKFTCxN+cqgFrp}Vq?0pP=NTF^fxK6IgQAf-4u`U5I)vADQjc}yPvN8ahJ-Og0UA?W zN)4Uwvd58qZ7ubGurIeJIZ_^?_+^(>p?@~Zkvh{3&d|FvkM8wTQ<0Y{5AUKke*Ht@ zW*)8tFZ^sD*d=7TGgmc2rqvU;yB#x>#Xzt}MLcMHmQ8bLR>*kp((57t4i6uA_~#6; zu4I(U{RGf?0d@tc{PM4<vZ{tD+|i9ib4KE!>-$Am*yOSIzsl09Vytq?+^Ww<csexy za-wsu;|LH-&0<`&@nyVNTx5Yrf$`$AE-saW_qy+~dsy-na>1yTR_g?c|C{qX)*g}Y z2XN}h(SUPUnh7%YV7Md7vg_er5J~`1k|&0PRF+7NnNu32O-#hgRyT6XRDd)10fsPX zli=j}7PwcGc$W5`p!c7=SLy$Eysh~)`G5|C0{6{f{w3FOhrU2rnTqZ>(?Iq-(%0c6 z1VWnGw4#0M6$W&Pu;c-^ol74@^p9rU`WTM#u>iW{H*vp}2%RO8)YEl>QvE$@2y{ac zZp@H$@xlpqGej8dpV$?j`+N!|<#+pU&M|c!51%`aIh^N!YY9b4slT_2BM6bQY6I-7 zHl@8)JKAxk(-&pamQ&ezSFz9tgeeLF`VfoIaK_<G?IYeRdvZq)(4Jp@pR&6*aThS* z7zl>};3^&udtB3&Q+VM@>TQ}wRNt8M>};SZ0O<C;0i4jx1LQQ8B|WsmDs58p578S@ z{0g=%<Ypx&%9?TvWk%n0E@$ry`RiOOgGDOIWox3T&V;!AukyPfQlTnL>tnC7`HTOF zJ}7Tw(Huy=4hjJJoF*C|`~fT9iaa(H;;3W4)(TLne`182`^@;cHLSFw%~n+AqBN4b zhEXvHpaWzPipIR;`+RL9?R)SS<~~{F&+Xy-cBXD7Re$9ls6Fmd#554mB-|~4E)UE$ zlH}ZYzNs{e=AhR7wYz^rv6mh-C3!hvAQgdQ#<|Bw#goo4<&MG;FwrP&gb4?uU>XAk zhZgHGq3;(Sw7S<72K0uj|AfQ*ti0#;<nuZPBLR9*5~{o0Y2xdGQk7m{q9NvwmJH@) z)|O4S09~RlXX@P^J<mrs0%so3A<5}>G2qoVPol4W<BzGdq?o$8d#LS$_bFUlLMPhW zD3MH3ad9!lW2Z)<8f=JgT))r9$Csbj*ZzI5@5(-jM1t^NBod*q;~VM0d+w(FdtN7R zporY*Bzx*oTBQ~T_2!((7X>7(in%MvyW}eB!9qV?5#k1TZ8o46@*qFVT+?|xv!E9` z*U9$Li!(2lv3^1c7g**@EZVXzPr}kBB^oVxUlElryN>$D&mq_3`HC$pgg7U;XfQy~ zya9B{f_&zI`)_4gQmEF!a1c@xe_fXxL7k5lT$aaBHrxX_Pk|i1$*)_??}MA4p<@sJ z2OAMmUoRcx7|;Xd`3+0p$%*0M1k(b~fQfp@V~?reeCxrdA7JlQn$8HQ${gnR#p|a; zxLzsK1!|f2X8_$Yjts~Z0CoN>kz}$VTBd&R^nFIjOc?H>FbIbG*c<<p_N7AHbu16i zA;Bu7w?bg9fj5v$QfosE&!7GG|Ah0{Qg1GVIFzd)BEbC!Tmh<_vx3SmzR8q3@;fB_ z3o+32b2qPw(?jp-q^9xpJhr>;zn#0tQKD1vT(rWVZGfVoQT2^~&0&5tg5lh`oWs69 z``wZ86+<c>GnE67(mnXl?MlKon+vn&Rp985yQyCIFz@~7cR#ifIP-wcN?*#8@fDR) zO<g@rpFM|G-Ebq#nc7MvC8ZSYQ}UsyREm<P2r}X!4|inKDXY1{Nxl?MBq*6o(a~e= z)Y{lcr6m#i*YAFx?z`hQN@Fo_B~|}zUAJyC>(2<N!`k+hFpwoDFC=f{RO*jZs4$^3 z*EZY%I@SG#0&GTzd{(ZIdGdZ@KX|NqL2iHLIqG`mJ`Q^WRP8E&yz(2UZ535e<K@54 zUS#>yIdnW+mJ7Gr_ryK7bGhrh+s&qpy4Zoo?^2)xKu`A?FNYQBu+Y1MME(+Ly5<k5 zt!}!KnMJ<W4)GTX6FY&{<7Syz5V+tmL-I9ybax&}R6vMR3RixK8<ud5y`0OIlyxlr z4B|GYqNj%@wlq`fogMW4V|P;Q#fMDp+y-<R7wH6sPI7GtFZr9NsAe$Ykvqq>z_su- zWHQV;2iR@B_ZO5!Con_?kjK_QhI6@RUq;nee1T8`m?<vKzjiSo3d~V9qM}jqYc)5d z6i|}avG$j2AW4nA6VN&I?F~}(;!DZ1=u)l{@l`jdcgTKLL!8@OPBOt=<czorQVKF} zEg<Dgy30eM>UtV;?Ke#$7&cypnxD3@BvBr1pdlKu?cuwqZ^J&R@ZSIcAOJ~3K~%j& z$vz{U3{fYfQfvShgZPZBQK!0|jDBy(5%^dDoqKg_p%BSIj-N7%uDRhxYN#DU7p_=N z&CN~J(Q#tH#RtM+iuYL^t48>M3obarI7Uk6alM+siiP5X_I7&Xt-VxHT1JZ(Euec> z-%J1X@BfAp(WoM7SvBp#hCU-N3l@oz@vN`i5gAW`S&Nx<&iPp^l2({C&yyR*ID9O- z=*6ri;HB}A00C4_Y<^OCtY{iyZQ}I^!3i4f;zbJEe83zKZ+5UnGnwG>v5DC}+WqLS zR6p__g!)B|&LSDPgM@R=`h&lq9l?fNsv{azgerUSEdb(daKQsEDy6bilq!=^I`H`2 zsx@u*AyWfx11rk8Qqz`Dv~i{quo1G`V8*Z`?9ag3(?c_-O`)!Bn^hONmsB~IYyz(M zw}_u)o0d@c`fpL6H%z{UM&8xrdF^xC<7>}7kDEiuQlGu;jvr8V-!_&ewX0jC>sV~b z?@{@<ChCQ7jqSC{b1Ptw*?<lL-rTX(wEO<sIi&!PRRCQ|967?0N{}yDL`f=QW_@7F zeCn#6M6uGcd>({@|6rm7j+bOWZT|=RICa8g-@H(_0(5DCYebNwqQu!^*E)}h{ve`> zc^2<ug+X*e-2dpEETs#L2$R;-l{o_F5`G``&_9+H?jt+t#{%el^*Zz}F99@^{Y6D| z$yL|V>^XC3{``4#{&`ENw?9tZon6eBh38&TRYk{-9U}o&=ST?f;_ukU{`YW34Uqx7 z+_rq_VBZS_!xWG8(Y{0P(R&}X(~2bvsjIu2zH!Sfv}fBZ{532LAj-jG=Y|WK0ndvz z*wMPYM~HO8xkj_dx^(jqD__qne3Z#lj#XB^yDV3Gjk;OcWHB0!hcS|i`Y84-6iQ4b zSrDYko1z^L-K~g4b_h|I$K`qGz7leepG`%}u3%D=d*TdcR1dcB8ZRhVq&#X(Qo}6) zbWqN<|Ec>`$TZoV)0Ed$8Vq)>Aos8yf9;p)K+!l89u~dtJZAY|Wpg^;i$)$jul^=4 zy&#4m&c$`Zz7j4?L>D>M8mO#e=DHzA4V6}q@N7>PRe0UhGPagpe|!xkwrwESjwe*7 zI-SGDJ7J6nG$hGnsQ8LMW+Gm!e2ns59mb-G0*Kg(1LRrSHX5Zx<7-&Sj2rx*HLOK8 z^c0n{P*K&@x3FlA$)Dq5WS$6_P$CZ29F!;kjM*}XtoYNkYwZIRed_0&$9A&I<-LUb zE40+BF1d+1O2+a#G#~<j^AGj@XoDq^iqri1QhMv@N9f?aKUT(|HbeoW^3Gxnloq(P z=Uz$&%A1veW{3FgaDE|!O^<~u9;cbLWfa}Fi$##qZ*L<{s#B9Gy@ptc`;}^toXl=^ zl<EFatYaU;F+M&(x2;Q`U*(;XP-}|Q<k@p+`2`o!;`5f%^2G}XUO7M=;0&MzkebCs z7|<HP3;n&&xDE%f2YVh!1t^2TOI_W)R8djRK>o@rTWJ2gc{FZp1O2am`TuD3?LX$Q zmcIxg*FK^^IFI<pn$77ngMKOwuYTk+zz|zRnie@Zm!Cm}!?5m>9K*d(DAx8$ZBJ+9 zmomI>*tt%-c2*YW!9w&7j{{9Zm=GtMqt5_)=;#lA&XwezeZFb8X~<&s)jIDR;H4K! zCT+#zG`q1@iGpahxdC(ra|qBRRVh%$PwrV4aS0iKPCRCS7oS^diJbt<Kr_FKv3>tK zy?}E9=-zv3HTCa)i3wc!;!0l5pI2S=C2m-ft{6+PqM}?Wn$t_hJ!=nH>f9+9Wbg;* zl=$6r?3HIJ`kN;x`_5+7dKV>QI;Si{#sJ_7Qq$-Dl#VqmplE3=cRn+rerx>rJ5CQ; zd+heu9$5E)YLxQ!R%W=1=j_5e6R4)@>%LCM>Srng2}YS17}opG=W=+lhH0NoD}}gt zFL4iaOQ}uD#klvmX7QsQ9e~cIhk+_3nxj)z9O)9{VTkB}jF-)<Klb=9$rV45S86Fd z0apCe624^%S1_THD+e^7=cP%UbJl*ZQc0@FBxyo*nIgn#&W9`0YswtClUyvS6yhA3 z?x(U24e#Y2-RpFZz*zz4lDlCqAP}Z_e~L;gN@)J#CA93qi|PEOi)qg6861M|?(X6| zyM#^Ug%z;JF^2NYZ4Z1no;bi8z@0M`)W7BL0`7reh(UeNJNu|VmZU%Y{3?3>h2PTO z{P~~J!MApjH&o1rkdPPG*lRXCYmQsY_>n$zr{E1z8Ym}nFS?8}730V|u9>*Z2OfGj zlJhFWvyt$nEQmItN)}{$q5LqPJHI>Jn~nF;g1QPiv1coFZFtBid`Za>U%F`RBaG?t z6UaqiVI!B_KYl6&ic1+(vE?nuS_?s>RvC14?J)KiZ^y8O_q}Yw?Gkyx^W!K>#!uy! zeTllp&8F<QNkn66xU4GATeX^S<fT81agxi~8vzsmohISsfYr<8Tqvtbm();b!gM<B zMt^SYq1zs-4FDDx%00t-4RyUw$6k4!qU-M>v`oduoDf}?od@WF8mhVJFQ~6(BDaS1 z2SbI&bqGL*lrK^lNTWbFM;iRNve2SXMl-_g-f>fjbM=zPb_%RuUi$;;^7Pn>XKoBB zi%=;|N?;(VO;rlOYZe0;1lMfsG-|r>PjdSIFeGdPSUhwYm_b6~(~I0x-rGj6uD+Ft zoG3jM<H44;<)QKwQRuR-bIV;e&=BTV4<i3fv7!Su(DQnDyn|{gO1V65_Y<q>*xFxl zRKV8c=T@<)L>{1<6yYfdSq=9!9^LQsj=)&~==>h)W*gjnD;VZHH0nW%YZ~avYp$iG zD^}2)sgtR-wT1TYKft3R;4MRBgSvCr1jx;zq%HfQKz%4M$8kW|3kCetA5Tyso?uTM z=YiM0_uxSqUsp#JWhHda18eB^AAFBX+^}(PX<etTtn&gw55s)!c3nKcg$ZKrAcZge zI>j1ilCPmfS@~Fu0A@i*g6gnyHqAscR&_g*+Yq_Hf|sEU4<R&lzwkIE-gu735fKnk zxU!=a2GGCukJJ{brv8>WibDX9!#E(%=<ss#03Dzh2vef#I90eaG`%uHd!AWi$Z1NI zP6cdzfe<T;VJ@MEHGr<Sw4RNKJOheXY+bfCl!q0IG0>qS*rDgw(y{fcDSP5bK|lu~ z&VTJ6Q!L}5viaxIiH`Q%IW2%2;3eAw9q*&&(umSG-|z^Xc=~ScYmbdPkGT~oOXN}W zyw{Sk%o8vMk{lOf?9DZ|8Ekq<_qrW-{YZJuech%xiWo@l`BzbR#VU>j_{+-k^7I1S zdB@iV8p_l_hJ%5Id5(w&DhAruttQ&DkpWG_UHH*JLRZU8Q?Q1Djgt+tK2O|5#&xh~ zD1X=IN4mzf;|1Ee`ZkVy2;q;F=+bF*PFGMd&;wNzy6&$i-aMTGB^84Mx^-?lV!)EL zM-Nf+m?}<B?Y;jtLRUZt_2fy*I`5b7NlP7%0{WR;4L{Ozoi%`N?h3hekC$u15r)Qw zkoDX}OX#9YE~RsqE}_K>=NWI^26o$9FEmPaXD)m`lCZneBWGaNo_Z{iq@W*>fqc(> z?}5V<?eC+@FTRN0*!c$i)t~<vz4`hp9GaEzyW1BuIrdZ0Y!`#T7O#PKQFi^`49xwV ziIDnmrsqfjJ(=LrriuQvVSM}A_n7A=Ekw;?tQRH_1DOz4(!}g<33;;-<HrJ;U)g}a zX9JpWg=>T&SZ_Bq7YDgZR!%<iJyq7E%MmeOh1{90Y|SaeHMXkIu!z*ykr0%^;W}`w z06qaBjGwNT4jp-$bM^o_>TTzd70*?|-l3T*sN|}zP<vLFbM^MJw`}s+Vno=_#Sxx` zeD93rvCI)Tu=<D8_u6{)<|J<}?L^s|1n>|saSKg<poGVHZOu&>GAwLgLn6-CSzlgE zxKBvUqAr|LF@lE<&`Xo@`a@TKi{dkuk-w^z;-PS^QbWS+iFnRKx6ff!u1F*RJ<z2| ziP8So_muNsvn-n&UU(^$oO7un#8o2FqShnc?B`|wO~xCaClhQ?7_pxFZ{<n_>8b_; zT$zL_g@OA<yW^sp|6ZktN~+X6b#hAVc`HVXU9r&DOVcYN<nL~yT@T(tu~(iN1@z&p zOP_*$&OSirmqoQIW#B`2G?ir%N9&9^boKS0qbbv8(BiqXslKj;f&KXL4noMg2n_fH z%H6b>g$8Y#&@&j&i>E#ukG)X1Js#^f9=nv=!Fzx2XdAux<{nyp-cl-xl+X|U{om=Q z-}~PtA^}g`88RRCys~Qg<vR%9CxTVn*x_Kfp0&$S>uVU+cE~W9V6F8t?x7ELgU*E# z|L%)Y)7UZGGz7KEknHp(yVxsc{Ifc&+4(;R>!cT7Nzuw?@=aU7_2*LiJOD&Bkecxj z(CdrRjK(?!yWNkhCffEC%Y`bXHbpLip1Lf|p2me#dC3>3y{bj^K(~1d!}MAy5m)v0 z09Z(&>M$)XQB=$r1OPg-mUHV;=#2ZTYPeP(#$rKW1;B~dY=!-$91u!v5Y5TH`#O8C zm`m8WgcM469xu1`#8$uZbBc%;s8V@tF(k4sBNoF^p+SsDc$G+Hltx12dUFf4J@=?l zh+{zaxQIz&fpU&`9II;ONC2+~5^|RkO#HM#U4yCIs}SN4@j&a+z84?OZ&Cssei-Q4 zIR9kN*;7nSt8Sr#;YL*@g3?1LpbL0A&y9Q5#zb*AXnLS?bDa;~usmg}!IV458uH%K zF;sHPx2fG%oFf_z#Yxcp5*YaP_27P6!yf86ypIk){%gu?dx{m}#6#yE0N{P-6oYwZ zMm_XlFTH2$j%O#JTPjBIHlfOfMH2*_^4jsVWZ80BdHGeeVAeF6Hf53lb;)%LC<}QG zOmu8cU>}Z$Zin3qdFk?Cac+d(W%GI51kb&)qLMm}cQ9eDZtOU^;^GVFXTSIr{nLN> zPt@Dlp3nBzY-zk;49u3^xKln>LWNxZr^BJL=(@(vR-h87;`(6r0wvTw(wXSYor~8q zjBx5mPc`WNsWf}&wa4C3Eb|v0p+H*YKVj_In-T_58sL*J{vy5Cat`&Cjb%M-$e|iy zTA`C^uaN;mJfCPEEt=TC3UQ)u4n1`Mx|DB$4bDO<sVsN5i=U$iafbPgbBUo+$g`7c z5n#}O4&^k|yr0<elnHxF-vF+A_f>LPRdV_=&bM-Xb|#}z3u43#7L~EW(nu+Q;SOS2 z+dcnk<WPlx2LQkvGrbkiU;g5o`Mk;E8kN$q%kt!YhKLABdZQuWq4pQoG7%3-X55Qh zz}y`mS9v`(-~1P>!*4?S!kTvy;+)S^=5D-?4J7U<|I`{)0@!uH<d3COp54AQ6RJ|( z>oUdMT!)*ZFd45v8bO|$7!okN5b94PIduYN{r>e2aq7f<;vEC5oT5pkxcY_L;QETl zGiecpuJ~&1dBQ*g??uYdhIpQmeh@<3;a6Xv&c}aY8qgF9xyz89X%)+lY;71lP~Hff zwSaD4rA#(xyo=20gvnEB*##HUlBG-8`^AR(bdcr%yztnC90%YQ!5Zv093aPjC(EG^ zHJ1S9vPHrn2Kxht-=m}N9;Q{-T+KD?|MQ>!g`QsXYa^@4`@1}x8<ui5{7Hy2{IMn1 zC<~EzZR}Z4h{AI(q|D5fl&EW_@-elBD3w=YGo0|d(=*UzI0k<TlnD*%{Tj}>^Cp0Y zTea4__lD|JwfiOZ(3t@pM-Cl5x;;kQfa`nRK_iDM;L43a`p}R>FUkc%wI+`q>!*PB zSQgbp=-n+FRClhoUgVs4GTyHjVr9e$!@c2(FHzUjWfYCnP#_Y?ML(QGIQ#yD%b;_Y zI4??$ASjdG{u?^J^;uJ9B;bm9k}0ZJ?C;`nM%cxW{!RkuMw1|wW{v>Ls?e~c^Pztm z5cz;-&Sj;#k9NAGkz5yik*H-Bl~h+#7sPr-xFIS4@4VXQQc;)nt65M6pehD=%2&!| zhv7?ZR7P1tV@@1Nj3oSYR%$p?Iud1p!r;R{r{vCOnc*$(le0r3jHT?D=``+}|BDXC zh~J^8&dzW&%YK%;Q0T}9-WRQGDY<(v>&v2TxgO}cR1RO0+IQv(pmHWq#Rgi}gvFF? znnYAuLe$l*QYeEF91HLTg3%}~99uzeZhDHkANe8oI}q7kc}$~B_7P6lPsr|{2tYSu zsq^ay7a=T%#weFwvx?3+=Nv8<Ynjx_pe{;tHsjp}_mi>PonAT4Ux?XW=oy132k%^d zVjoevixd^n@#80G>#jFxe0?oVozzM%ZrMWr^S}N#dT;Lz?x_tA6E8Tg6T044%1ZJU zAWloD{p@BEU|Ay^+TF5<^KfWs%FO3N3*gBnshw-ZzIGjZI!hGNVZM_c$NBjPRQdS+ z{65aLdS2f|``7-O(z`daCnuYL0CK%dECMhFYnWW*s;TAfTwVU+f<(ByOS2f#2nWL} zt0{}*v#^iuG=MH)cIiNd@+y>&^)*aWn(8nzg>ZNhK<AxdU=Xn&NOhvycy+3kC=f*% ziEfWyaZDl&%6rWetFkIA`ba~7@ok6K<tClc0sS1n5vWZ^X)9z&H{3(sOjL!Pwb~)h zm)G5`veh(7!Ppw!!ARyoBF?q%D6Nv#un?4yXUSa_vwkXHa1kZvU&3>lBOcCjF=qtH zj)dTPG#h+DWf7fteX}Y7+_5pQ4%}`VDv>YOoGU4O@lBNRgJs`LiKr$C76NqpzU`cL zypI+&)pK-*o6hXsY-+*fD@JHa3la(EBU?AVFrXJA;@N*o#F^j-LLArIZ@7=B<1N#* zZlnsDBYC8w`+oc*@QDI+yll=8JizbVORuK+ixzWk{o)IjQzR6iBS+h)v#XN;qP(!e z<I<%yr{bXx6>gWuXoETa24KgAzsrjR@*HyMFK>OFj(>2})UE%)AAX6pY<kwD7KHhp zSI*|>8s`iZ!ed1(zckD!X>KJ?ut)(q7H?518;OT(ft;vwi5F{{z1YGY!zoL1*6t2< zJ*hMy4>`4}ghRsIdh-3ZR0vvk<P+AgT~F+;pG8HN-prlm%3G$;apVkf|B}bnfS1Se zcZN(mPf%0y_*_3}^y%(+n{&yzFuMx3V@|<yja>gNb53}51^EdAwl>Ji-x6^KbP&bb zUV55Pw@is{?wu_JNB}IhY|RvEy5Sot91V^DT5KZpt>?U1UJ8Iad*}$~y1h!46rwqI ze%JKr&NVB+I4eU_B1K-bOhq|YpPR$cOo$ul24hKwqqqP3ySh<IbO4}ZE+4C!K+!R+ ziX$L8^@ABH_I2p-MRaGppSX1?2yvn?Xtzvu_62Xa>RWVT!UFCh7pSRWjsPMj1D>Zn zw)S(yJd4L@QR{ft65ysYhhA6hZ*_`{6GOVnCF_omD^f+xU;aB5B;sfUQa^S$pC7u; z&pSi^a&93w9($j5ul^|!q;$Iv@OehTe58}~lehmT3eaVE?G}yzbS$Qjj$M52c{F{_ zJi7eCoOCP*bJ%P!KbeP){ha_V9{Ny^*a_%(f$VF=zo8j#m$$w8+H2G_VIoV%{`(Jq zOuxAGKj_$d`%MW6!n?xucZLQ{uV}3{$JZ9Ar^-ujrsGwutX*zEWjKKD3?=eFq|wHX z$m8PBpSwqO#LN2q6z}aNDhe|woVG2QWG~tDuwMHsmIg(hRl4NaElgQZCYvM>;!-Pa zqCQVVfeu3L&QdjJq(DBGTzXHBVSn3fa~1$W)J8XEQF-kw*=<^x`E7^yWq@SiEd=V= z2Y?>-Qs2ApP~xShSh5pBBmh)wrgV%#T%XP2LDHhN>o`#+rJjd<uZ6sIeJ+3$8kQhm zf8gF9G1$R)z}x~cRYXtJ<pa1?)1UIIzC!!@bmubxbmzSd^=~4s9zZzy_1pfpj=J=6 z`U(6Ij<)zqsQL4M%w6QNb*&VOl&H%X4Ah*HP#b7C4+Le}Hatij8@0lqB^hj*q)54z zzl@r1`b#F22AZZRZh|&`2ISDiBbPA{pw+1iDR(@+@nK3G-p!?l$eFVNNJwKS?gd1U z%=0WAZvfp?LfFRmAkUNcO{JOh@%|gz=<u4KQ|670+z4iL`)rKBClb(YU`N>(01sXZ z>eo@;wrs@(wCvn->Aa<jSUMI`v3AMYNIi5Bj~Q%A6!Of4Bxi%V{C@m6A_rme2mBmC zcy-4v_STVGhXL~SuYZHKzr2a0FFXi=97cBbb=NswQ~E+~a@WnE@VVDerhX!Mr!8d9 zB2RQf3#%wZau9q9<pwQ+4;bKeAvYC)V25&|fS)@0azwz>^~!`jM78N2dUefRTvJQ& zW4VSbR&xusKQv<*`sRW2uAw$pB)?AD84a*WewLTaV`h=lj=b=s>h6YTk?CWCreO_h z?n344^T>C>=b8C!JS-d&AS+>T7?-Fl5JoYcfn$LNsmXU}Cv`vnF!k+xiCpnE<H<?o zN8A-A_w*GMUUCUV$IqewT9*o=9$sA_oXaiShKqeZ&5%ZYwjKQdpfhf2PzQ(u%-PHH z6m!#`z?@|{p%<rzF6VGg2<z`iqo6+97!m+G-Rwq;2v^-yszUy}W@3KVu|kG|oXb8p zKu}jmK+}BpWA~_9_b3dXTn~T&yp)m#qyNvT4Dpn44j4;A-Je8xGAXJlE@J)vt!p2k z`0v)44t+{}PZ2lqyWOErR1G6_<8ze*x^h9;R0%bou!)$CJl{-;qX<%O-}cBanP`Y{ z9o;?~Bk+j^ba@d`rw%4Oh)VF#L^^ibocVOovZY+!cIfbX9CioLo{EP))O0B1nZpwY zU`sw-z7GK!bZ6`B>u2x1r>B?dYRAz2gNJC_j$Jf=_Dq^Oxs|^2Z{MX~{Kvl=@{TIy z0|2Y=ru3)A@8Y#FS!c=$%C;<G!V-Il0_XzP0_cu~oe%2t0`x^=@kLI#z9dZ3#??^l z@H=#1@0&z{5cy?MIgRg2*yp9>;k~r?r47`#eG`}97{+xP-2MzpS_&zUJYMdS<z9Y0 z*Jo#|>lMpi`d2gZTP0i;kTU@Z3#bNk)bqCgZX<O)b1%!12HXinSaf-Ewde5F-2tjz zdZp>il^ru)5u^$LC{7<|0U#@~p^Ynq!t32h@*LP{!n9nXr*qoy?y#XWF?8PVv3L-4 z#wCx<p>*VXi;Gpgb|Em=#vD94Y|F=$(zdk^uxJj_83O3}psvJE(7g^3pjb^aCF`b8 zqO3f34kyqRnqxR<CdJVn777Bh{-K|+a1NwNWy879Q{K1qDvH)k%`X8Q!ax}?4dXGI zKBkO<Z3k%AqjxH!jBDLv{0<4>Huuv<FeIw4`y=Y{7EyZAyd0np2Il%crK20qA0or7 zM=f~#^-YxRJ*K%INdxA1ccF%dO;inyWN>FE`HR8>%TC2el<N^qgKUO*35W`S5ZC_P zBb0%vp`(EjuNfksa~j{<(L<m45%@#{x(pYGwZZz;<wL0Lj+9l?)LFA>#YLB}w+@hm zCOlZ?HmDm$t(JJTb=ptnndAIUFfa57ow+Nc7p<GB;5+ym_JedRw#9SjFv$O(Z-1L! z-tZ(ZKHLGyVpnrh2RPas@=fr9TYc`e6l<ABo+*nc<}1np$H}~=LW{2mp5P?C-E`&L zNwjavX4>=UY6>D3_#rlyRMiHA{k!v!_$(L<lGh)g6NmSa>-}9k28dWVQ!fmZXsS_M z%bn(q*Ucnf%~+y}N(F+fmX{nz=5u=HdclN;73l4v{@<-vYHi(Z%&x}<GeR1rASwW$ zE4u8fMAh}&uC}YFG8Y=wASM9L9=ZU!jJwY7gD)_r$jz#B=m_TSM0r)N>VX;2`W}Tq z#pPTgT2m+->r5@+oQXJlb6}dIJ{x_yV_Tl)bVi<HnvMzye+5Lm#_MmPgNYE=XB$G? zV1|SJK&?3_`Ew|lb#7W?yk=ozV=kL0i!_~a-p4TJAI2IL1BYH*Pf!>{%Uz!@tHhkF zrbZ^6<<7lBFeI{d<8o&i;{42NkM`vNI3A+~<7@JyilI?2TnHQ#=VvW-0J<-1(hJ;j z7vwvsF&FV6o_IRqgWts<)Z>bK#q&f|;H5Qp5p92-g>1O<<LLI87=cd(pv#jo<!!pb z0<7PfrdC?A?0j0b@)BCMa1OU+g><as$Zc=EP~M#1A>E8+uo-bOP?u2q$w(<!%n*VH zkiWfmuVL>0^ryGecmCVoGiZYp=!U3?C0)zc2rYODQTd7+xCeTA{4CX|Llyx>ejVPG z-|e!k!4@kGG_nAr)0qh$;yBq9Yo?F*XQ9EAW7)@*{d{57&pDgoe)IN*@TGLD0yEk@ zW&%}T^<`>zM>q${`F^XFEq`~YdSZMYjj|p#+Lv<f_38WB!vX``7P8@XlkOs}mj=*D zcRNF#vW*430OtXE-i@S;hqdFLA90&jVSaPXyEfhc=<eD{>K?0Fa^ZbBmJ?j@oSi%e z9kxXTBGYk13D~^4K{XEHGC&pez`dH^-9<dMAmY7GVb$whSp0SvT&`m<58cY2i;@}6 zYr^`FF!q&jXg@w<IrUdI5>-^GaPtT^yAE7h?gl&=eqVAr>gu2j>YfO3>EXEPIcB}q zB{1`*fbk-L&XphiG3K10_W-o`k8XU74GC45p;H&QM?R^NYR2<KdI17Ds2mVL&%0f_ z+!7yH5d)r6sWeTmE@p)|PA^yn+6aejboWo_2z;sl9nZjcZRl&P!?8uB)wJlm<+Sv? zWpv?+^G%}{<g1h9qmVai!tgBiphIT7fND8c=ks-zr%7pAp?P2fxp?C8)81b~@WsUu z{_}5t`x5zzO6ba!=hN;t_tJm;FaMc#ys|0Rz0Il{J<Ik003ZNKL_t)k$8{&d^%Poq zHN{#MQlMdi0`x))Ee`I;>lR$B@JB};5({wR?QM!_u7OpRH+f7wxUF-JzuW&t&QK&T z#mfadUG@=4)x7<X7l+Y+=j%dQTE1kf06LGezl?&-GimIquQ3ao8SbeJYM|JA;&L>n zcD<eF#!2w+c#N8>%5vpgFFe9vXG^{U=y*+bN0`u*$NUyToOoGQh&?ZdZcl(@lA4Nr zG|`u&&A<4*0oa_}tCvd@QJUzPx|Bl8R}}^w8&L6kAwb99`+8~7lnKnjKJoNw>e#lC z%i{p(Ci>t6^yc{#yz<LL#Z?rl9+Rt}7{LOF`)?@^Q|7(5Y5)B{F}eacGvgGP-;r?? zJpTsMq=boSr@*EMpu;FT`ox{o`SR0Tr68OW0r9->vnIr~*G^&497J~{gkCUzt_@xh zl3_!!yNfC!VWa=ggt$XHtmY_L6LM#x!X3$#=Y^{V2Xq-@$)Q_D8qcXjLb2*0f`nGI zFRf+1$4DimNAM^|cRkBS;8O?aJieMJg@pm6IfzJrIXijYIdsm_rPSKmN|#@D8I_ck za$DADZ?_4Zi`tyXw=$;LJ%|fDzz^%8Bj4`vf~~K9ieXY#T1Go|?V)!M9iW!hR+=$& z3jO2%_$PYkm$xa>la@Zk{t%`RLR??#BBgt61DEzH444#H6wIw@at$9Bo^2+@+R!Es z$(~%B*<Hv}QtBihaQ8E`b1kq5U>Euf3$D>g*9L$X2H0N~e!HJM{*E@EkO~b=o=2q@ zeV*D9UR9qB11*hy^lEGeguD66Dz6LBki`+XS9HmG@#jBaSyFiC(mR?Dl+BpN8lGv( zsrh;s5iUi-6IQg4;DkY4$WxZTC6nx7VVt+#`2$M7^$Pc07dAcaj{)5k&huXVm6a;w zZh4M*MuYvVwIRp3_Kpr(G`)omJohNYH{3^^yEd^Ff_UiWxuRi`4h^GG3eCHaf>m{t zt{Z<!AS=prFeKi6_-D*b@K8T{%mU~TcHy$aO7sNRweBMXbc{ifhiFXC5!%0TEfeD0 zeIGFAMCOo$+NF)CtF(z~Zv1oV36(Rmeo#X~stF2B;J#j}sjg&&xSjX@jQUaTc>GX7 zK<9=^?l5adq+1tIyD;2EmCpIz>bYu8Yt5%%JVvux$Mf?<dLg#`S$>wIfPR*t?rFT7 zPbZ)|y0=N+aaiJ&_023DJA2Mty6&1Qsk*j~K^+?;THz&wy)D~^4YxA@>0DhQuiSpN z;-TYjF0YTWsU*Q$2P+<W@YVHW>B8mb(!HzirSE;`|IpC`Z}Hbb3Pf90U&~S|z34_> z6qpDmrAy9*UcAM@79|Y;!DNbJXix%z4{DY7Zlm^f_i*b{<RPJ@E}`I&%uy_2(q~)B zvE=&zEmiZJ`zcK{5CY~13UbKVm<b6BYna<$0?^O9ma^k!kh@`m0v#*j!nMS>e~Wd_ z=N8Zd0K*_mBxnY5ps#OM<TRTt?9|Xl$aKLfs#$gkb%&~R=X8eH8Lb>8e)<^ze6S(k zi!kk>NABP<Cjgz4W{OH&COn3TX%Mgh=;Wmow8uCopyMQ74>yL9^Zjnkz2w>QD5Vc> z;j%QgRgiae5;5Ho3SaV-To=D0t%Nti+%~QaM7-CZUTf;Y?NT`*#Fd_Z9XEf0fy9v& zZCvsg%G@35XFAIzkHzoqqJ2-TVNG*%k&}`!=bQz&qsHEQ!51kJDOa+|`dt|iRk7b4 z(KnEvI=X}IbyDsKX1(3~MGO~SA3Vj>aOusIo;066C~e9q3|i5(g3r^MPhz~(m4xZw zrnS_+;Q>k=e03DeN3t+|3ikcf0y=}DOQ~w9Hk(=U2K-EhL2vTrmPxdD$x>Q%{q@v3 zaUy%`P?>`yD>ec3!31TTN^nj#yFE8fmOF=ME?ZGJNYTC+GvvXD#|Ez*^07PK+D9G7 zPtfAIGdXJT<NvsoR^NFCC8DS^^|6k4`8gM}Fa?u&ELlh#M?ixYDcPJ%YpqrWFvk}2 zDFA|pj)kIc%d=cFjL<hoh^HbUITD7gR5A#d<6591hI3<+GA?c)g3!Fbgqr^FZ<(~^ zpE#Xd8g$qrMGd{aADf`Yb0v{5_X<FVX9s=r{g2%_fc-7PE^-Yl3bOR`<eIZWr8-~) zSwtlq-;DVnxokubDgquO!743N0qF23MJANJ*hoE9|K6W)i&peNXRQGTM_@<*02rmS zrs2)5JAX*o?az^?W3OomE76s_$_jUcn!fgrbSO~E_sNEYCT|V878WoX;h|3sW@+#9 zYgwyanDt!7g$6JgH&xDALFE_U#J$Kl;sNHqGgV@PxqzE>J_+r|_WX|at$&z2yPr1v z6R0oR!ZON;A*!5rnJPU@c$I!ZS5GdoV~??2?{DSyIrOge3%cLjP9Hq;0E^~`A;I$( zhN&)l<VZoJp30VAXEgZ>aX#$l2~S+!OJg7+T{CtJg-)~)I?6#I4ur~6eMdh9*!G#c zg-<o0%M%q~M^4?8{iG69QdLijm#v_SFIq`6=gj3sF9Pazm|gmw<9H}HgW4N%@03<j zown4g<kCk9@V57k;{((I<oG*k=|g@mpZ9oYH@&(45H*acrq&5f^zzni^bddiSJZLj zT`Ifqi%f_^IT7dnh6+(SJsW%aTiz-qQ%nv6bM~#LAE4u#RXr^?(Ljq!i>ZIQ-XLdb z5d*Lbtwdc6K)DWNUT#0hYFlw1mvafw326vqr2$^D7S3U#2Oc~`K{U9&cJJ-1*2ZKp z>6fkRhozPn1g@%UzRs+A(+tN3GVA!xbDQh(`B*t^a@a##?)aW*nQ9^!T*ZMLbCS@} zEp)->OgNei27rxth{+^_kOBEZ>6N}-n$gn43USi9)G+uN?6jw@3342Mx7yL7BoZJy zfNW^bokD^`nkP`6=;qd*@vYD3W-uz9z~oL(F$K@LhRPPMpbtvMDTO!ydZA}$-<#Yw z3}l~=4OnNy17(LW{=`6%>KLxE&-$qRf-jK&oXe;^o}W4y(nHr1-)6dxiT6-^&nwjZ z@_IvvQ%z?Qro@s<*0Nc$RShwJ_<7o7Lw)=K=`!0WPbR6kqL|W0_EGoC>$q|NT>(b{ z{dBELXXkN06M!xNAQGMOC^%2+E1`wwETFmb7tjSOFQ#*sF6NIRMq}5l%kTKCKjmT~ z9seFroHWOd{Z5u=cTNu{P)dHCjfr%I8@-^{I?CIyK>fqN{41^B+eP6OtC-A_2!sZD zG;)%`z+9Iz0mRvp#e%HEhYkI0wDYM4nR%V<KEy|2FD}2?+3B0*mUkqqYn2C8IbY5* zdwi5BYcl=F*|QU)#s=6z_pgCL03D%P7%_YA`YyG<_(-nRq{RtP<SH*wq?$cuFqE@R zQ}VbCJRkyWHrR>rU<u6B1iUmU-cGNszE!tO?Nnkensg`zRA}~P6kl>ZQAMrdN@xJ% zbJ@m&^Jz$^nurjAnK-75;JtE3x8Es_05<8*&Cghi%&?xjbn%lO=pg>t8_o?NvhLF~ z7LiuHi3FE(MfdGuLR{vZmnad98YMi5K%fM$uXYk;$F-_bu#*6~JU2FE^mrf=fST;x zPpqb6Yk$R63LuH$xtYc&p<;?hyHyG(Jcd2xc*_FrmX|HA7+erY?%Nt~zSo`}DlRXh zvS=rlJ7R2IZF^X=fXmaeDJ%4j=vR^gla`VDvafQPX<jr!ssv<Q?f2IncRjzF&^rCV zPU_nHB&WrMRe#3b(bM<#j~;oLBk-94bOCiNkO;ZQ`(hLb2YE5UOVvDOHcQ8@xcFiQ zN%U4{U<VUEoypUL$KN3(%VFM=l(Y@=IhfrF0l&0j1*jt=FU<V5W5;Rd&YiSq(L$oC zCi=76AEll9k5c)f^K<Ou!E%gFaJMhi2A*`5E&qxRCCt&k{Wp~DIiecLpclB+;&r6= zI->n8Ko<tKO;BSZohv}z@iSHHSe<)iKpzaiZJ^c0O8{ZyY=#?L1mAy~_TBk!+<ub9 zIUGg>t{?eclpHaEOX`+&+QQtQMS5c|Q@}itAU>Z?xp3cg-4U#B>vKkEMUm4yDk74} zQuTQ^Q2&zas4rZi8kX4M=t6+*%sK1x&#Lg#!OhPZ0TRjaax)+_3jyQZib|9(x`zA< zE@F-b_dvG+y#Sb-`?N#VeZ91xxjwH^iZJVq)NFW+X<eF~Fij2PU?fh*T(tom5s#Vf z-kic9${sbK^RsiinV-O&&S1P$wovs|U!r5dYVtL-P(rT(%(v)|<wrfNYZ7CE4G#_I ztrVq$Pd}i_9lH*2q)n+>B2|<$(Iun-y_1(I5~nB(I@1d>e>LyHX*7w!D1dH=h94p= zHllZPbmy~X1U^%MuHIV3y0%+F;@<%0qN+L*f}b&C22GzaJ+ILV^6GY3n=s;s^E8Lk z+~s7)k(R6;zcMz;A|YyPYom_NF4__G(XH!V<{s##8Hv3J7Wy3rvAj0pNkT#t9=c|R zqr?cF9CxbP{Sq^;Wem?aplfEijFpJ%aQNF-#{Hyy3$NtXvFyDHm<Z4n05^LK;JG4) z34L?dju&XxUH{iK^Wf=YwXfxCa0e+ga|L<My@pH3vXynFYZ`x!Fu9%k)%j}%9szV* zqt(cR$C>Mvd(Fb1g)$v_k_Y@$z5E7BFT9-E!eg`oUhW)r2;cUU^N3^?3mbj9C68?Y zolDhJ8KPlGyMxql<=0ewcG+0fmKP0gunCwuK^>7EO{x?kUN+iGi<@hWl3Dhh&8Gi3 z*JykEgkIz`|Kk6ron0AKrBHzTVBQr+WW|1mV2C2J^y)9aPs%`w=hfJ=m(F~QtZGj? zb~cT__RE~EfqsF>Q`>+p(GX|;KA9pvO6xjL7=}AUb51;cH@`11R-hq~Oh6bW##J|5 z3m+asp;^m_7F@=SU=q-)cg|IN9y!meKZ7yR8un1%w&&@<{kL*j4Cw_HoH|ocw397h zqo1Gl5%}x@x*k$ntqmnBc)2qkA9pL8GIJUe=B~PS71dN#Q1gTd%!H4}a_VSyi&YV) zasE8jr{@HJn}8?BgqNO9^s(hXzOj*R-|#wp=YdTWZ<t8gnsF-MC<_682e1t1r}k7C z(32?+A5ICR*puT<Rl32%*#PJwe+x!DHZa`F&%Kg5$IT;G(?s%@R4G6g&jvdITxG$u z$3%Yy!Vxww+zs3O&<+!Fx1TAO<mr+lw5v5zsJ4eLfG*b{&j8nfa{=&lnV|GQm%3%6 zDrWNMXueaeq*o`*r*y?w1v<|A;D@81zdZ-!;$tyts)$gXJ59SE{gtZE*3zpiCZj!c z0FN<X0yRd-48X%=LjgB?e4Xc&G1tHkZo<S;KN*3dqdSRQ{#@HzEwVD<5B@qwi0eF| z3>T+?B+pS&MDjTz5MGaJI`hWMwC~qHrtCY<^Vf4?IUY8S;4yQgDeI^3+zY9G<@Kyz zU>NTB65a{hJGP@B&i5)7qvkPH+;nEoeYdJwaM7rTu_8POj58DlwW^_1EHI(c26TI_ z%JZ|wSl=^JL@1MMf9_#Au;!<f?dxXZ>KQY*Pj#^y{oY490-sqxmr-O(SzEB^-h~ai z@c4bsq9yeCo4&v`;OC#Wgvn|9_w8fGc_0|h1Nh;9xord#dWz1^<=>L0w<7|!(jApn z(m(xTEj|3|UJ6Z~Lz#*(YO!^`_(M${UT8Gn3D9Uyj&sSvNd91-sTn?_mcJ!IDz{;@ zxOGTczz&_}*u&CbX@I~sXq;nV)v1Hw4$whA>An{qrOeTthA)uE&}SlA2{o;{g^o2X zPyh=tAFUL|Kr3TfC|v3|XHziC=Y$d;Bs)b_jH?xNt5|e&t5~s$junqnpd-&&&gHyE zC*a^fu^3ISuVP`Bed`}$Vj2KIa_9q;@EpV~Fx<l-KOK+j>I|pxsK-`9(Z-01_0#lm zHF-*A?%u;WjsSo)<IanCa7qClx&WORWQ@+*XwiUf&IgV_Ce20}BwyR^{Q>s`x4~Q@ z9(L0i5b@k|FQ8aarHbxY)gbn<m1STVOfr`+)|s@De3f#?eJ`^Bld7>->x&UuatA0> zRYPO0{U%oq7((Sx27^3L`<%%*M+NYn!azd<BOgVLMDj<97^4R}t4H8759qu=qv=Ez z@}a8dvk|08q^YW|j=u7ZZ&AzSNt|0BKdym$twW4PG~wAu*38-Ac5)kPRyg(Koj@*3 zdee@zxy1l_>4Ni=hI=A`n!S-vKAY5}y^Y#*RC#hB#PuFCYHeqN;cjlg>NIDAs%d@c z4zv6!a-b;ZVp&pIkZrKzhc$Q%5}qBJ(3Gd6^x9pwazAO107Vtf9#A$YitDN73xCTw zdn4H?`PM<@bQN(7Ab|}fb9Gf9QVo>sR35VCD`fptHhCUZTzn%P$Q0+P;1zt(Hqgor z_**hX3u_~EeD}6o8YLB@oFuAf0HhTNX0sHWyo|gnzd(Ij$xIG6z@U&1GHDfp?&-<# z1p0evL2Dxu;$TR`UU`Z<sZJB}h7pYj8RUx*WeHB1t4iat8B={=?o$jGX&o%(i0LeY zdBByVSq)>9CjOe+$kTmLrOS{nM?`=Lf4ILC=h6}Sb}hVyf-@I$=-ch{=R)q1I<O-V z_JCW41>y)2-QmzT6cy3>Hk(!zA<!^DX&$=v1**tf+o%)<yAl+cyOhi1PP#db8Xa*N zo9Z@%N}oH)(T7oCnUjv@r)r1KJfN#L+s(N`gx-0*hrXFrzwR$8qU&$EndZ%#$NK7X zX3wCGjuRB^>oYR3!|As^l!rc4Qy7HTQ7DHk?{{<$3zkrOis)}{f0XujWq1+fpz*1I zITlBJPxPoWY3@`7PYw-PvTwe`+Tyqh)yMe^=I6BfpS*px!WY=>2$@0-)j#tBPCGET zj!^J~J;|PKnlX6-mvgbc`IdF$N-DOwv`aM&ebAt#alR@cLq{;l*%u1&I|0B}uIuSC zKzH=9JLtsLjpRy3c`+6N9(+CPE28qbE4VFew6u<Ti^|ne2QyIcJjJt>XY2D3*xzHk z8R~m|6TQ3sekEX|C3RW!#{+Htw7Fk+>>%Q~XDwqw9PZNqIt)kWeA8fS6Vx!SLBF47 z)<)>q))(o-OHb2@El=ec5%8MH8{}T(?U5QvwJcDEsRh<~X(IqF<|_akz~A3Tfl!zY zq}tLTg)%AHzwSYbZGMD3bhY`2&x5eMC&Pv~ce3*oQ_b)Hogu^_rGSl%!b0O~M?xgz zpUzTgHpYg8Fzcn+jTtZ#Y4Y*&giLYSRbSyYzj<?33>Dm;GgT&lo{XFOm5K!xK|1t0 z=j|0w=nTH2pDJklWZujupgW$M<krD{^%a#;GTOyfJzkF18FOgmWmnL=g^OtZ%xP3n zRb|TCaG1eJa&}I9Fm3ok(<e{7MuWQTo#Q*DB_*`2!$p7g)72D>)N$C3MN(`)mjwY| z80>fX3@tyyYB57Tx!O<UJ@~q6F!APVT#qd+Tp47}6ye6|d(I(Y?R~=tleVeIfo5i| z%n{;-ic;9)AcL>HR~Rv|{cq5bC+^l{D%I8#-m2LZ+WDz0h2~#Qu?1J<myn%oEwImx zg*)C)%O*C^yIVHoHS%CU=S5i!GB^U^3vMKuG><%$wfTTv2mtKoZGk&Lr{0sKwwIn( zx&rTOu*)WNBqAsO%IAgF_+?+Bz?Au17fvPRJU6iM|25x&!L`8r5&~eUD@l{al+%HY zYpMIUPf`4>mrS`DYQV7}rz~CM7~td?7MiyOymOr2-`7X2V{5qS3~KB-rO<Ok8Sa*M zj)<JJ9)^d`rH94ilsJ&jn~MsFF;wWe;xoB_BB}`aSu{sN-xNQVlL(e~MXtje<ev7y z<=5uI{9=UK_hv_!Y@(qy91)QaLrJ0nLcGJ;bw<lePd4{QKR>M_Fbe37;bjpTt1T%$ z23bzRSEW_8G=K3Dy8MbO*jpbrwt<h(-Q8tGXGQ|r`0mLXyExme+RAeN(kfcN>k$3( z>gUMSI$L>(g%-i#P9vu$m+Yjzx3<xt=hm|PDLgsU)H=1WhkN)Bv!5Yo>00nyJ-X^g zE}iC>ZH^k^p@@La3(;T>PY<kqu!WC2wVF%Tq!zmnphL_D9l=nyY)Z)NW80x&F|vdZ zhkwWVsWjj+ULAJ?JG?vBnadEVh(&XtGmb8D*>RI{L@}O3DMGk+fFXy^G$7c(+Cou! zXVa5;x&m_9QX(h9Ij%@;p42RJ6EvV3Ftb73F}8f({yrw+Rk+j46Hs3BehzsvkO#ud z0Ozv9E5BqS0X&znX;0ilp7is=J#$#zBIvpLPSAp;dg^`m0PT734$AD_OcZNVI`!H+ zM;ILQSfq=g9nanC0##i5ZlVjk0O-h7p*bUSOe-s*p%0gM-v3iJ2BkSlUUh_))P;xc zzVHu-T2(V8qYwusJC292yf0wRD$kF{!1B^dz1h5|fTV~JW#rJltql2LUck}sp7kRz z3g`tMk$^h9bd;7zGY7mNoaalVX~N{mv~0x%G-KvW1MH|-hr%1ziX$98#CEd$vkltP zxFw-mF8bXrQ}W~w7t?p1-%F2f`W^XaovRe$Kq7K3fWw)J;%#VFuP~CCIs3$~nF%dY zq>K}~JJxCU(g&nOl%xwbX<U-_RZ`VeUt)c8Zns$!9x_*6a5$221|6uF9e#Nu_do~e zNJN4)3?THP`4VW70);p*&LQSwnBRpwM;jDmF~-lnUK$tj(xeg(*GmiITpGb}8J7lR zSKU-@T{@twst};t`Ev<Lb62@EHI)Vl`Bt#7+h1Nsl;||MT`u85&X=3rq)nZD<%(6* zQQ49sZUNB6BiH92kmm8Ya$at%pPH&m7|{1=;+7}bq2DbpGtTi|h38#DbnbQP8J3q* zFdEH80i2#HqDcBda-;x+#AuWvi5{9ep^+mV2cLa}o7{NPJ*))BTQ*_3$#HZi>!V=n z!aR<Eq-)^)I^=T(8W@&wf&6)V*DLha{kJOpf-JfNswO_Bf<OR0P)?Dn|A+;2Ok~YU zk@%AdRSR#2{4Il<OBDP2xU(Awl^9o6h_f2da3#hlpbuyD`&8`n*#>l}Q66N%J9WfW z4`sKp@=Gf#*jq<i)^W{Ev|#3RX20*-e}EzY6vrmOJkpsXK+bEC?t`98ruZD4nE?IU zBhS-s-|eOB%q1$9cq)WA4MO~VT^B9kLrA`|Kt|8|M&(KX{j`I*HCPC*i#i;SMK;O2 z2mV_n`bpo!pp$KwVCv`<GFcwhP~p>9KQ-6aFgb1i`UiP&%=W%-+HFeDbphC5%{VH) z{A;-|t$5(cc)s^6fQO&9m!3>AfeZOw7!lmV`sKAGjXc<Uv`W^3vsNkr5?6$>b>s7< z5jWD2<2y_991~82g5LP`4^6#08%Kd6?sZ^m$EPX8M7+RxtJr(ZW7gZp)gCJUNsLJW zC;bdyNMzcNP}`=*sDIP_46?#Y5EZrhi*BOMspnIFT`TARS+`t!stm4TMCkM7dFc8) zn7079L(i`zL_E?5x0$xHs705kfSSW9x>LRMO6s3^eojjOl?r;U<bk@B3EK0>itgA_ zvpBC2=FuJNjJhENd#WZ;;Oal2L}eY7k84s@17e89V&u<cl;Wdoc3Q>q&|!pzI^JcT zOJ@6X<c+uI2!NwtKGNm(6TSau8_-!OMCA(yvtk9*MK+chu^QCDk_BO|VO%4t%z-oq z)i&g{4;_Awe45N7AZz~|Y}OdD5glrju4{}5;`C#ILrHQ`n2z`M(?37_GHvhm5>1&q zkOXBf26kTE32fRsXJF9#iTvrdUwxMq;;6UXEQZ{F{Y;VK29&JjbjDdBE}NyYY0JsK z=u!q(giM*(2NgiM=b=DdKI`wL>Er9Ted#;vAEXl-?>EX~0<O~N2g8aIvay%kK!@CA zR6cbM9q;N@owEA-286@0KZnEx5Omlbe*?oka$p<1wP`&!^6+H(a^YYXq+b;qzI@?j zl$?JFMaQ&KFc8YGK_4vSuE}@oamM-ytyUpG0->M-_x^~%PIAcrH}TF9i2z3cU{^W& zJkuzJfv4XhstF-X2x`uWt;ZJ8o}zSuj=#N~`hL5fGH-zRr^tq^)|OGs^QPbXCLODq zK+%cwxc=J!I_l7EPu22@*|@U|S@e_-MUT^gXCI^f&5yBCo3wwm0bR}EEOQeYF1~?| zHZA7RH@8fMT3aTaOJj(UCWediUD8Ge+TZs6_6bEc)ZNZ($G|p7F@N&X3z9#_y$PV( z9y+c8ghe~#j`F<bv0QJz|Dm68G{R`|3+H1L)IZT6J(7$6%mcbD=XtWwl*zAKUK6*O zB%-Q@W|}p39?f60n5ImhL6ci2QBP+F!IPFvymo-L05v`b@B{3znVg~HDe`gfGP7He zqI4!rp`r-w>G9IHAACmTRVU0;pW9_E!<`Mbhprcv1!F7e#Gb8Yp+IOBb^GcPR32Sq zNedZ8g_^1i_i~2ZPs+V0V`_^l=UzhIC09|qyF{srVL`Ty8S8)ytnzQSN99Yi8KZBG z{5g{VwOSkZT?e5FN^N=}2LP2XxQH3&@R%9sx_X((jm>z=4$_oO9E0bVNhWCaxC&-| z=gz6TNR!e)*i_fMAM%YMYDFZdBv)3Y>!10=_F}K^5$6%W!#rD56H(<{kN=WW3IgIt z19`lDHYN;{KTu8OD{o+Zb1JS<8V9z)BDr1xngU}kbGtU(MSX9)LQdfvHjv!`E;~e& zC0gCAJapR|w}@xvKJklyE`CQup!)<hH`EbYmmYoc9_oJnZq6f%tgJ)?u)6@d;U?G- z2<HSGEV3idHx}d2H>w8?JbpI-ou{J!03ZNKL_t*dK)2I1qM3lhqD+=tUXBX%v@GQ| zzu8E+dY-m{1S7#Yt~yNvHb0Csn-B-i2Z)B!tjLt<jRN{dvg~{k4l)YpcuG>^Y}Gm! zdU#Uv4CXOBHDQp#%Rs&nA<KzVrqlFUvuW<4b7;Z5xrBW8k+yaN*j|sDJYdlKybS7+ z4?o#t84S=L-E*9N^6XZkx<(3A)#sC<PIge|=h_3{NJ4KfEod3b0vXVTP9J>Dgku3T z401XJ!Hbm6X^T;0x2F6k!tyq$NXiT0nTzKYJokF?&Nzqbq`AQb)Wtw3k}##RLU@5J z2<V9f{~c^$u&|H4u$~}GYJ^9!J{Aa(a5VDgq2)J_Yx+`VC<jU^I5Zsecold8^qh;a zjJM@oqF#DhS(uKz`n)M2gR+>U5_s&8bB)we;}`yt+rmaBv`{iq$wwPt06IeY*vEvb zbuJx%{?5HWq9dDBqa7x}LDU7~<MQXHRU&m%b@eUOQ8JdY^(`g>!GI#E9Xk{(_n3_H zSg>*9_V6`KEBA329F0<_`+(^>CV(DnnM>RQJy4~X=3<-(0Z&5tVz}sWWMW<{#wA?w zo-U5Eph}@*-92>T<%je7y4&T4#`dV2N#RxBG&S}kPFdkPdVAQA03mMY+WQo<K6;!9 zmG=A>T>(}#TzLZ}8>f@2wwZeU#rbI>M+Cws$Z0^w*xKWI{KY5f;4=?V_ULvlxrOnG zbj>I!ZlsIgCwu=<Kp)}r6E9tLz{;?P$~J*+o`K&(#T7Jl)@*8-G?|;djIXPs&hB37 zj`mPVQ85*Tg6v@f*s%fJ#Zw=EvD$;j=Lr`KfGni}ya3UnD!OyicB2rNXXTIZzIb;X z%9n)^rBsJDJx&Mj{W0gyjT9;FSNG^f$kGYu1N6?tXp(C>MUP=%=u#cfUsOh(Wq&~Z zV<zQ#pxZnG0UYso<T~uIX)?|p78K(4J$^Trb3v_*BQUzm2zAS9n39x^)Dd?Cs~k^M zJ66fe_BuTDLg&HXbVwC|FZo_><gxJ)${s(Y8o@X=<XaoBzlGXD)m*R4;z63^W_BG! zd%z#>r-Y8IfQ4;jNnhQd+QRA<sZyhD*Jo$SC-Qk=NYJzeDw-k2ij1ezlhosF^4q<= zR8bn?v4y_55Vv?N(`l9V@)c3_;!DXrb#YFl$F4!=os|+BZ;ofj#*;RvL?N#Gg~zFX z`+D<!N>da*lqPh7sOF!4HN}>Ejy?RmQaRfg9O8Y#ea2(mG_7&GDtCPLA?nj(i*p)9 zLz72W9r_^Q3lb-vGwV}a0Xwx&=w78lLcgzhgt!;hvZ16L3@wK|L^|<QmWa{soZTaE z_5k`xyyLTJ7zNb1pRvwUK>&o`F%9(aU>jPdQq#m1Ce1asPU6pddZQEy`X~?xk=N~F zP!9%tdEhShDj;vd_E4Bg#wnG~5IlVV`u}}qD{b1bj~VW)ZiR);&b8rSgXNE%e@DOg zP?!?k$7pOx2{qMJ(2je4#8Q%!fHt&BFJKWC{rh-Qmlf%Yw!wUWOsd@2hXC}Pe!E)O z@$b->2^3lRMe1-Bt4?#s@fO+!19Xf-yq}tC%30rh>;1P=Y|GO|M2FAmRTU2Ibdus} zH+NX$GADP0J9F{aYe30^V`sI29fD7%RG2o|N&BC=-}FGYiBz}^W=QKE=;@Lg3Qd?! zef?T%zzI5qKwaiTI%OnZ-(3A;&bLx3#!PGuNu$gO0zIw-N1#xynXR2>8kV5HJT?Y& zdy`a<6J!wuhu5r2)@&s+oL3}K@vg)@WmLcX3QD&w$d#-)L;LnQZEl2&d%T}2%1XIq z>T8eunqphlsXVsKO;QFKKwQez@V+)&^({IvVL`4I+$olGviAp-FtKi0ICBOaSoZ*> z&^C4FONv>K$`n1{4bvUXZz@|Ta`o3JTiwW#!5r1;=^_d#4G1w@Of;!b&OV(0dq9N0 zF(gh@EP&^N9_Z@D&;(wc5-j{ejQ;i0HUei4pnn2KR=|sURzud2ySOQ@8!s{lTj=1{ zIH84FCr_psbLLZ3O^w+Xz+M!}vEdQwmXN$UnDRQrgIC8*Q!JijBcRh)M&Em8JMDP) zL{1^@LyV)80ExE&g}9@?eVS^LJ#=96qm+nh5>p7Ip-$ZiENeoFwg-*N;3gktHB~J@ zKME;I6OPsz?xJtrP9;<^cd-I=so`~c=QgO@A>4F|rj`YXPP}hqN#VUB9|`iGC<h|V zfKaAy;^MsUFm97QEd9(3-@yq&QbGpMNF>;EE$`S*`yRW8iDKX><QYQx`<@w>s4jAq zb%hnhoX_0>c=#Bs=~)w18U=*7)S(?LOA0kH>ANn%D?Y!6k{KU`XDz3a^H=37ndu0T zJx2%Jua5SJ#|g5S`<-pHbM<YMd3QG(h|=ASbJ@Wv3SMwC#p_#htxIDu4%?gB`a;GF z{wCwDjWU$R?SA+!&SP`L1EpgeMN^y$#ycjrst$du#a}f+HP_LRj1j#?+MrlCwjyUp z9Nx{^`1}r7q|U*lbcM7?;9xkPouqEWu#kIBB~5xk<_`#!(mif8+&-eG_^H_Wv;lgd zMQPY0_6hRV4PHUKi~&Z4;o-5fjHcVgL@IdemDSZWcm4uuZEejPijvAo@_PLg@Ojx& z_j)}F*tMucB9$h;7p&tnWm5^xU6vFT(Y{nMegDCym}Sk)NZcOc@G8ok#A_P%plcR( zyq{dzBnxvu>$~H3&(o^&7g6TuoAjHF8)*NY*ZGJdzN12>`6_A>&g6yDQpftRfNqoQ z_}EByxcuaqwwx*#oS$Dl2GFr{=!Lv<EQ|nFkDEQo34sj7-g-4p6;FDQ+j6KVv2xG4 zh^m)fMD3xPT$uJ`fG*EMz|I#SFtYpK-cIf7R#SS{CQfTe6A^_x%Bu{Ydn3hWuB2d9 zog$_cN+}cqbq&4%MiB7Ox)f;?W?>)NVMKF`Q7Z4AJIFGu<;$+4{_%5|xMj{O*KY&O z5c5p92_XJSYftQMH-mx4DrJY9Ki43MYv%bZ0xLGCI}9>PXSmiK40kBRK`Y))DaiXN z9y&Knk#fh9vFaUi&XZxjKax5TLqbGzggEM~MK52xiYpdOD_R(#_WkJdaxJ<T84`Vy z&oUV%R36;&0(CueFU8*8syeKtQ(7_@{p^Q%1EafrDn{V60lICKVx;gAoiQPjkNMF! zL(SqDz+11Zs;23)=g`DSlPMAoQ)x*tU#+jGghTNF_L8D7xx5e*NmDSOSknyZt}I3S zW9+4ul$6r%I#Q}-YE^?#w?e<^4-4piw})ob6j9f{-E`!IC#jBNv~tl@nl@)XJ@LpI zdVc*A6z_)uRf_Yywg$dDYy3Pd9=hf2FrfQND7^4e@=TgX>4s^FEsT>p7iJrT*dkFH z;0)+~KS7qXJ`$q#7oVVxSDt58Jd`*I0~}ttDCEJb6QDDF*OAY*Lfb<cRJfK@k^;r0 ztV-AZyN%Sb_Lm$UMpTE#&XSo07?fZ6C(Ja5A|2=J2jd9v15lA2JFm<Dn&_dKV=CzA zi%-(wO>4Pi4QzUxOKHZd#zee<P~{F&`NcO=S6LJJrp#BuInMmKlYK5@&yza9V}i&4 zfTwNqdOG;f?JQ8_^JO`G0X_oGADnb9m0ols8%Wv4|Hs~Y$4gdSSHi1ud^vS~opYuW z9cYpO5kwF|S!l-o*_NCwry1KbV|(mxY|mI(^2pK%2_%q^$cT*SCN<DNCpytNhnG|3 zs_(b<J^R+F+x5C%BiRDn=Z~&_b#L8p&b?=!z4zK{O#`|*0D?wYi_I>H#+>o;j-!?X zX0r(UAe66+1nl|w!@|SQ(7rPLsX>?F=Y4Wa$1OnU;#-iZYjO;_c^=Md3dv^O(D(MA z-XRN#NTJ8MH_Jm80H^tT%m+Rr_4cl^+kh!~92k)2(QU&lo@nS}VV_XxQqx`-1}XDv zq7gELbS^F!^z$0Z_xjHNb_U(*8F`Sa)kJzcaaTEuUWvW!z2dQZ1w;%>lkLGW)YmX- z0>+FRFJbt}Q>O_6J`j!~84ZEnI>Yev)M>c=!7#$%uz2XqpVOdoTSH?5e)7s5eCMTI zz}yvL9EQzpp3hTS$b(dpQ|jZ`_4LE2OLt>@w1i;a5yTToTzliq$PM=4JKy@h*tzLd zIkJ|rF&wRBUHrZxzpm_9?+~QpJ{vr+=HM0m{lQOw<y?swa|Qifwe+u=LFchj15(pX zV>hiXg6`MXSFqx#aicMJ4Q-?u3vT;$Y%Mg1p%V|Pig#7D+cn=yRDC!MhG`E!`C}Y- z@D3OG%@8#EQiW1zSX*xWJ#>zl>r^t>3ljSz_9Di<Uvo|+u%Xe(Y+f%2cNhC%A}!2k zvkBdCs1EHP`~*%U#v?j&K6>*E#hB7bJ+Jq^?Q5WMOvF)_PYII$;3MD1(WmYOa!w9D z;&(#f#3Ya*u4egFl0PpswYt=&733<zfz)`;LeT}@F%od-!8?#YaS-HESEW3gHI1n; z0>_$H-{OeQ_-h@~99^(f8$9h(@3ulwWMNs`FMzl$>)l##S>M3vGg%yRp%kpIWHsbs zMLOL8{=8$#zpaW10u!?xCopmHWKjj&PRz%qbqEd|MJ_!kcn^m!;es&B`AmK9hkgHD z47xKZI;cy#F$BxzmONG2e#SOyGIxG_c8b-1_d&AQ=PF9K3>scl-2#a^G_|y1^7NUQ zJ$tr<;Rn(=G3wFU2Gk@I0-B@1V@N{q0g-#8v7$jwCtL8)hV6K8>tU3pFLVq#SN8$G z<JHi}3^xH)>lB@+O<tD*6K_8H6HM|Apf>D7ds7U({R8Ok9mM5pFUGt%bMVB&58!+M z@)h@JTFxhVW&@t99B}gtyu&dg8d`?j0Da`|rb!a2?FhG&5$^V+Z1;g}j4ThGo*liN z$z&IM{xM<26O}9@jzVG=&G%B-t(X`i0wP3yho{Ubvw3+Z<l*|C*I@u$wvdM}bIJv5 zxyHPZhkx{3B(DA>2Ad|K)I6p#$0{9dxDG6yg7TmQohU@9Ao*5N&NKYx3`g4@x>hcT z0vYeKexk_H4z*4ZYTJruYPgh+=UNzUr@&8ZuE*gw-?qUB{5ZPcY+N`{i(JYM>&H0; zogzWn?9hI-@ig~GK%6qfDQ&MJ__h2`rXm6WxnK^|NTek^^P+O<#0&VdA7D@9!;XNk zB(Hn>MjUwb$0+W5#eH7r$V7rcmoAu9A*Aq?@l1|(SPe~7M9K@j5rQhu5Ys1_zAiE7 zc9|TBpR~+UBT5xfvVZr<@WKiIy?fx_*PyHCUF9w%zp98#mpH_LsC0kBiEQU(-9x=Y zBk^z2;oiD->u<@eTi#H#z8TYJ&Bla@lQ3)coQe>9eO;{>bv7+=qt{N4ejwV2Z$I`T zUOJgC8#1C~*_1BQo6|kl-~4Shi}A@Yngdy(BAt{7qNdP~(Jl38ZfZnFXBUp2?!mm7 zlkwpXU5Cz|Ui`u5eiNO?j>xI$h4@2JsaZc4U;Rk?ULzdp>DUIHfH;vajWkq%sVa;? zH6y@DG@TMJnIJ%-`rAWUyms#$P7U$E30HYc`d^KYFCqx{3D<uLha#h#dTH;Cc)Vjb z1a9reMc0_-S~T^Ya17lWPgdr$izS32F%bo7TyzC8D?TK3(qho<b}nPieNBj8>$Am+ zeEC7Qu3j19Y<XBj;>b^2hT^O>@U_oCsiwhsuBwE*-OCwf+v0{0a);k`_|5lk6=_cz zRVC~x#+s#stE+h$N~0$^Nbh07>lKSsHLxbM&&X1}KaW$-K7`Z@KQ(pW%p>On=OJZz zCPE|;pGYfWSKTf^JT#7Sxdgl^i(&sZH_l20F3jFu_b57_dqBz^^?6}LPWk^ufF|b? z=DooDHG=t&sDMG$bMYgX0UMa-HR#lcV8kw$mGpvF6;SaPnnK|vUI@F7bf$Ul@AvO# z(7k<C#bXz5+w;8(q%yy^Yrm`Qe^!tE7YyCIx$%(@(3~ZAWqa;?0i$)z7&mbeCQP1+ zWy_YKdGuH@hS6vgjkPsGV55ee-4Kl@v8A_!yVh?i3w6*yr3NIV=jPzf$3qvZ<>X$K z8+zZ9_hE8F0uz!&M8hGZvpLjEn1wO10uJuqkD=Z!+;GdSST=ta{_21HEuOsZhk!qd zNStb1LlSbYT9f_`-WvzmuHjy%wwKR}f8mFK*{dpvb!-&2o{JM<zyb>zfDsLAu8_ve zmPW(}I`HP5Uy*Vy(vr#o#fYQm1kG#kO<9S=nrp>lc0=I98TDcAmFLxb@AkXCEctVJ zwtZ2F#Lx&abjmWaF<0D*zNyO`@3pqkIid;KyP&aZ=P7X940By3RYpYr@EhVqItX{? zK~?%!F#yz;Xa0Q6&FC4w7`};9P>MG=7y(%zc=}Qo4fZwgSu&pU()Jdl_iTgQ=drg1 z$uF|Efsm8}=96P362K}2H{wx+5J>M^#?flZn@|@GqAt@fT=C?@$G|Z$;^kWKvMj8m zvYV$P`hou>`E!B|Q!xk6GHlZYg!Qf{5RWB!+aCX^sMj&NBax31wdKo#K4Q>WIk5C< z)XZ64=Ei4ajqi0hjC3X?*a4dr(!CyYem*;lD2;1v5mi76&=lYLx!k9NRdU3OoPWzz zDDU94yYQ3uSP%U24SE&UwX;%ydUEA1ki$BTg37qs)!J|2@Mb-ylDk-o0UHcb?cAD= z)dyb3>|Dx3=VP48LL$!5y=+l76(qMO>RQk`dJM))XvdP}D==%$Y-j$;6%h{kE6Uqw z(6=7x!8f0K)8Q^3RVma_%_AJ?bIEYtl(u@De)&mc_in}XSPl(!3Hf<lO%ez?`My!D z4ajCPII?#aX3bxSYc9VO&px*f|MJx@8*kkhT~kMGpZ}eB47NeHBRSDEpF(ExQpCnh zECb?nQnXGgX$TwrZ=x0Sbi$<!W=$9^sD3Hu68X}B3WAObgTC-OBo<zb!O^qIa<%pi zj$k3BC1jniJca!~_%i(6d*ukOA{fbK_zpyxT}CmHg$<c9$3js+VDgOczSPLbK}-nV z0PmQJ@udead)j0)44lG?U;b+p4{dh2)R{{rQ=H0)Qjo=$Y({kLN06Dm6s3k%hwy~7 zq^2ssy<M|t5OlcRj6vr$Ueua!nea+SHcOeDf@J9>2S>HLweGc(ra2@lUIe?|pUIcI zM%`LCkVn8pxW9OxjG=ht9uHmThv3Ae4wrf%>_m68A4mGKNMAe1dPZ8v|KGFm=Pn78 zy!WQ!MdmGE1PIrPrhReLR0Lbvqy}9gJZ6D*R)cQNrzs-hT(&>=EOIa3=K>tLi{h1B z?7#(J-1&^?dwSnrzCj<RJ8a~)uFeVEQ1H)iy=XJAaUZ@IT0^S8vC*s5j^i3?8zIdV z`dP}Y&Niwp^OHxK(DuCb_geQ#pc9({#Rw$R`esgWYz#q$5_On7V-{AdTq&sX$>YZ0 zbWg8a-|q7VQLJsjYx_>&Umki6m^vS!x@KhQ(df!vi7{jn^p`y<^{j^bq|pwR1UXC1 z>e}8TXe;%hr6!7ao#Pos67^`TizAmwBT-w2cr1#22ahA_&*1}CUV*0iI(+~8-^bnG z{(40hR#2Ia@RjjCGvad)nOt&$+#J`2Yd?pcmYHJE-LfjLL02hT?F)jC(kTZyof<&W zmlwHBo8R0GnbKP|IdpnE^w=ZIZ-#$?qs%25=#;Cqn{9M#8C^ri$uaTehNLu5q-h_# zLj**`BlpKeoP{}WNzK$vMB=JX0WD)3iqL=oQ02)*5OYGb)eMm}#xwvVz9I1MV;{T( zuYUFKu=xjH5rZeZ;(V`4M7S3nhOyeQn1ACZFgS4m_T^(`keV122Y_})Q?Hq7fP4;( zp(nL14G*O~d*6H>#pBxqh^OIwGVb}?=c0M-htMBPpfq}#b5EK!($KpJHCLQp&uPxZ zg(ySN`xt@P`@DFlV%$naL#691;nfKsvVPo6zlME7e$<W|k6y~F>cYhPjtuwA7K&(( z6_7fx3;nM=DHwr3zQ?WY*Evgg)r(=_tB<a{5$VPWLgAYy<tsT13`+m3V=4Xb^nG2# zC;j^7Lq9?3l}c@Sc~347%8YQ9d4KKpZ)?zv0d)|i4p2%_wAzg}GMX%+8Ul1CY`%N} zSFThi9_P0?x9(ewrh4qvhG;miP`!0s&7N&|?b5sRc?@`NMS{~{=LVfzH}9SKW;T}a zINa#0IS*sfoP}6^@k-2Jx&pJOPC`19L08`Zf}w~Q^!uNF1&{3S0orFcxjz~)&2j3a zsuRFSjJmlYYIBcEgoG_^f<J?JX#j1lEl3AyP#;K(L1$ABJsgQ3WNL&DAKZ_b)2HFu zE7#)HEj#d+fA~A-J$($3WW5m4kfOC<?p+o*k+^*CG?U-7I@Trvk>`Qh)rN_Wy!kmK z1TD<mt9V$vf5ZAFsRwJqxBoApO-|gQ2z*1`sEx&Ba^xZ=z3yIDolCmU$ZN8`m*HWC zOsRn``QGu<-O{Y{ii#LSHUV6MP!?9Y15RDN-|@g5?-GbiU*i(kFcKp~D`vq)Lp`il zsh)EtC5E3Z({T)|7tX~EbDOaJq5E*h|M>^;CiT5ifs{*r@4usY;xs(5Z6Ah$aVHAl zrJ1!2pO#sfT)n%nG+}<K*KL33PN73(IhTSarGG<Bh^@X6rSWsY5<um|my$Owx^xV^ zfIl_3JV+oYIc3(^_ilIsTkrd>aGLA;s`G;ep`FLAR;Xr0GBw`pq)yHjS+NZ~7lMZ8 zfV>Z*qlF658M!21&MgCU`Tvz+@aEqrM+N9T>-(wCz9*&NrZ~*Ka?!zsck|#W9C_|h zx8B~4B6-;c&u6~6u<v`f2mWmhy6G43Jj}~N#3vikp0+Nrmg=}_R(VGuN%^InStsb! zKI?J)Me&}P3$#D!ZHNI7Z_fF@h)-Di+Cx@t|6k^iDq7lB>r%rmh++#k<KA1M4wI%% z7oit2%&lFyT(r+m9^Q*+Te|~@+t*R1e6_q%dVeJngLo%~bKO*-D1bPE!?rzeCt3pq z*Pt_pE(RtN5d?mSyw{Nkijf-lGyUSJhr$tb9zTMCp%gB={BlffABR8x^Z$ZZ);%LS z@m$F0eY*=eg0E8j4v>x<>3KujYOoYqmo4LI*uCVLFzQ_Nb_i+`r8&*JW>R1+z0@z; z2Em@NtqGbTQ|ghEK9jY}DnBU(hXy^Aka}jxIVZ-T`MS@Pb=PGlPq=xwe%5p5b3!w# z;bDUCnD2EBdMPg`X`Z`o*2RcicAJz{RTy-|19(H=*109kU?Mkyj869<+I<o;C%5C{ zYv*9s&)4COFaMMLqL|H~Y050z^t*qCLR|}<-Ley%sl0fQx`3!!A8i>KIS?0<TujM; zImmjc3xE8_QqC1A4M}858y9AE*MA<J$qB%;c~0(__hjnMg;>Q)lvKz&l^j;8fy?4m z%>nFr@~1fX*bhzqT=_4YImcxw<hv2B70J}j=IO|`PeUnM>s*qRit#R%+?sf60Yk$| z{(_Fzo)PuBQs*A9+JkeAk_5TWkuQMgw51qx&Bt({SmPkv?TClH@E-0NG7B3L*)$y6 z?v%;B`K)jzX!~WbF`jFxxUl`**#rOf2Avags1~t?Mx@h4lrm)=XkRFZ67zCJ^Md=s zaKCeA8NhFmEYPMKjdA|2Vqeq0_IK5`|Eh+;zHYe&Lw%{Ccp7$RZVZW3r{psOAvCm& z#mu?$aPg|uShQprCQO=ww@-HC&+d3wKtz}{)6vGZCU!CCR<3n8Pqo6}n^4}YrZ|Gf z_u%l$&r}$6*F(1qI<HradZd^|JRXJL??)z`!tSk`uwumu3B&*3o*&~Y|M>Tgmu~8u z<z|hCuHOyE3ord*__sBJ!P;d`j=mWy#GsRB+@;Utbq(je@;){6ZT2HL%`NBJ^0auz zJfEwV?T<*!v@Al~7ouV12gRTZ!u>1;)qU2yA^%drk@!5}l#m5>Jmo6cv4l(c)#<HM zqE#5h48mOuoaRK&VE|mUGflxnW1@OSPdz@=fqW{5%s?NK$uJf!UW(CU$DymM6I=Hm z!eFk1U{f1X*^(>@+-Gb!(i1g?R>+-SX?^zoM}LUIj+dk#H4-J<@xgjby6y8g7$4(| zp_YwVIruX$0(w6jM-$#Bg|3tU{`g<e{rvqdlHM`omF1FB?pQlkN)HbW`h>qg)XwC+ zG;<N}v&z`I5fX0Cq(C4ZYwU?|?|Asz2n-x|O8yFz7Iwn>`s@;$5SzOiwW}SOUoq%< zjuE88Tu<GqdsoZ{n5HozQROO-3kdgL)qMY}I`1!J(9a5Xv+k&U;ab$sUnSr4rn49* z`Y<$@7EW@6Lx_Z<@a57-n~5sQv{$aO7$_5rB0?bvPs<b?aT9rQb7|;)zEIRX2LI1< zMf_EW8;0q59`}6qKc4~grTQ?jxe<d0x8umx7b?hDcpT>1#EAK_t~T|I#VfFA`Ng>U znhzoqZ!8=1$#WdzWqYHxmt=?YhWo#{cpgWnBwu<KfdgAmAB#!J8bNWkhfZJ|^XP2B z+GZsEIpmD$S~3|&G!#N89KzuP`w$8SarvcdrM&H5zWz15@Wew1MH9$p1_da{bc|Bu zicK(__}*trIr1646tr-*AY>%|N%Ju@YI<32lVMtGqIbu|zW0(bP{xzj@*mB;x|6V( zn0X9xx^rCOi!MiC-YP-3i%OQM{U3Jx?TK1<DiyGJRIM=a?fdC>;XClMT(bhF7zvQR zFi7*v+)IQ}tdyuN=dbPPi+90b-K(S*Oo<+k$-gNC5*p~l;OWzd)-@nqETOip28B!- zgMIyoMq>!qBn6ztXZl^3001BWNkl<Ze74=(#RLtSdYAft?r1%G%=4=EDjMjAS<aPm zIMkVjVk#z3?-*8pec7OEzTBYX-Smli?|OgMICJ5^(EeLL{F><4)4){#Y%S(A8g$lz zPyEPl;y}lckOQ%~3kU5_`@YP*$->5@w|sqF7}wk=DXL8m+=ZcM?v&_`R0)`<jXp~n z>8Yr<x5raEdARhLH3)o9$;q#PN}I3VnF!xy+#KgKIbPWJ7wUmu*r3bvb2b#E&yQH^ zM8wBVN2GZaTBa|+#2GU&7^_Ej!H->g_oEn2$OOU(rI5|b|7Ai`9prP|Vj$w=p+~y^ z`ScjCClC(Gb@5ZqlO17*l}6e8)}I}e`)mo9aCp})ES^6Lpa1YmZ2sYQ@r}R#ZxXqn zM@Ubdq%)ZzM+Hlnym($R%w2KAEhsjO$76dsFw|}UadsZA%4AoOqpN1r`CUFIVQLz5 z1;mXHJNHS0KAeZHeVItsg2uc^gImZW7I%>Gsi8r1oH`){I*Vq{z`B=S!T<T2zrsMz zX~7lH>t#AbnXT-x@m2<?mbKRNHeC7<q+6%MH)XCM+}YgluzetVk~9WKON0oB8y^p# zbN4o!e)d5W_pEcoQHV|^|9PRD8lv~iQm)*LrBXuXViz=DZ|8O8L8&samI~t4F=tP0 zaG~t9C|?!$C*l2AvoN)t8a+oSUnS~tHb9zv&-Ow>1wWYg&FA3Dq~zM;u`s&3I}nN1 zI!4MD5WRD<kd>lF^~*#tSP3vt3OeERYN;HJd|1~&qL+3IV8=6$A^nmg4Xc1gnK%4N z1jo-p<E1y1dH8LQ)i!e4pXxdDZwrXGWLmq3&TxUml023ARe4qi@TaM`sPO+2i02~Q z`3`v(g0`1#B4}=;LU0b{a>qCB`L>AbsKT0-+cIS&%5J`ZjHlMyv+mtppm~kBecxVC zCC9_Or=)ykRDgssc7476{GC*joX^~NVc&OO5Bx#~{cN{mBa}t&Sn8u|5tzCV;mHdy zXVqFPy8JR6?;6Alo8A&{pti9NJvnC*^m$Z|GMsG4ltvFuj87HjxlmZPM~vc`_y6bB z{pLj?e|om$6CQQ<vpD<;nAepp7UlY~*&M>*kbFi|LNS|_i8QloBPKW2;txK1EquG* z!aw}iFJRB+*W8f12rLAGV(7Fn%&fV;zUB$yCAtWA0-x;3P{Ybrc=@dNZww8?hx9h; z3;m!$_r+>aA1+jQ=$b?4@e~vn3i@0xouT(okdc=V0%p?f=<GzGki)X2ONG+*3%~cf z*tf$GdLhO_Jye;u4WGGANLoF>(7f<t`y%kwj6(hD>yT@o<DkD0sf<+EQ3`j4b0&11 zlv&C}4@*dNo_P$JjZeUL@-5lN0pA5&oQKr&Mp|9U&O&p$?B{x{-v0LXyS06MP0R%z zX12fL0=UG;S>7EN!izuqCwMa*1<%KG(TKQ)eYkU)@9D|0#$JxADVRVIT>kn7x?Rs) z!|F5?A_Gf<Pv$`a;TZAI6oz6HG)HbfP-ao+yu1M^lWQM8Mz9IWZ_YFmx&I~FLJHKP zL;1>x2YL9V4t%(Av(ITSTFtqZOrIcJ@f4jQN4+qnF{E$aBdsKnzVJm6zxYNJr>}HN z#~6uVUsYW+dCn)dSWF`nh{^(3L}$nlcWAR?&<ll%XPOIjq0&u`#l&krA?XDHalV6c zGM<+tNQ?@+@q@1m36e6z$-TLn>lf<J&uhMapX~gL8T7LdtawX~oQXSxj4uvfZ7Y0} z7h}T0#aMRDO{g0`7B6qxkGBq=5<cd^SPe2+C#S3}98V%UGypIJ7&M?8GkKgb79%xc z=Nd!<sB=L+8h+$rgWEXajkNJM{CzP`D+pibaRDg#kL|_({Po)~p(cob{L3$3!?TZx zhv?>&^Ldv#QtMb7uJ{O2t<wb+9Ev5&C2Jb0q_?GgV^8|_wQ_>g`(qw5p92j|a;O6b zUVKIjI!o4waA$Kv?umNTMEwGabH^qUk^d4H7mp{A%jYDQ9%t>cX^BJ}J$-{Xa`+$? z&Yz9tix%RGU;Gm8x$_R>(~jgLL6S6_ym#fH)(Q#r&gB_0XyM3`t0jNV+U4F%$u;P1 z3St<eD%+`Hok_U{UHQ%Z1BV@N$`Gz7K?g}fNJOHFV4>D=VgNX)3-C<))BaQ=XZ1DD zNkc~>60*|ycD;b~sl#&bZfRql!Z$^Xoi-24e(f*tR2Se&)>Q!1#IO_GrLD>WPWJJI z9DtxP##GYdcg#H#YoU$zks~n?TR4bPO(QVil;eqUR~AA$8eu<A`Yc)B&1$X@vL4ra z6=_dLs+Ax}Rt%`fO=!||S(Kgae%x*L;z3I8a#%FFNg^J~)TTgG&1KuAa#YJ}xaM}Z z+_4aGqDdT2J6cikYJ2B`Qo${Eq<Y<<NA5!L<UU93ET5IM64OEiH_}7r{T3Rhpym3{ zqCeK)F3?;&N43S7{SKRp;l0wJlS)@ekoIh<;H&3uD$!bT{TKfD577g^m_fI?XgIml zGi$va)UYpB4_`|=M$ejyC0AXK))kjv%b`weeRDHX$p(aLYQ!UUn=z*JczqcM(V5X) zk>3)G$mM{LlT-htwUHc?`wZ9Y>tPzfpmZ6=EDiLcu=90%^0KA4?#hetz`uSCKm69$ zB*&~qT@m3@*2ggH$NvBw!KBndv&jVQ^_r?ouoahQ86GuoH0YVVo6xswvy`mWhl?($ z3`6d1aW4Oz5-8iK(@T#8{V4iEpr=l>J3Vy2LF7im0rAQru_XMZ40gP=U5@ebTW`kO z2M*&;fB$!IZ2xY@tI<|+gkGFdM#l(f?J^fO^)r_tyzFWT)uO3c3@e)&u8RJs(ib#x zG+>L`+k}?%__~L2`jsbKhB${|jLjj);d5-4key-BtBk#CNUgr6=c?!Ic=c%<d*&ws z6jM;7jHmI^>u0UT@BQunhkt%%vxNA$cvBBr3^ToM6AB*jvu>_Mu8l-ZxgqJhTyKZu z&Y2=&9z9W8BSJUXzK-&c7%qJq#m<e4c#vD1*QaBkihbla7oilx5a%*M`oi!f8c~1A z&7vX~Xd30z*jEYNpYhy=!(jfJX#w?E8D-i3(4FYn{GuSuUH%GtF;y(OWr&kL`Nud| zNVxfPzKetDoD&8=OLRvUZoFqkIaW?=#^z@qL&u}vml8m!xXEYTXW3Qg^EqMu_|hxN z41>Dx9`WEgix=`2xKV-quLFgF3Pwg-)$Kw){X9DNeX#30Hs}??BPMj@HR>+2nn9VW z7>i?s0;0F<Z=QhYn2DIS;xb%x!>xF0poHTG58?1YS*Kb;f7&ccNKWBr!sJFcD#}D< zf100C&B&Ff<oQ%mlG}$<d^+1{`Fk358vS(237h&tl1mLl6G#-YII{k6Ts&he{`gbZ zW7mt%;Vb{}w>W-aw=46=!!vwHG7R71Ymts5g(g$Ngy(C}z1}&!oWVX!Xo#V6`x^)z z+9?Qk8uYqw5&l?>c<3xyqd_N$j2La>rPH9Zu^ycUosFKl*Pzp=({oS6W7xlMKYDw* zFmJ&^DR29`zyDu&>i!>!@uYVnT}@!5c*_nj%jFyJCj>1VTzr{Kjz}gQZ<W9@^+2uC zso{o(-ZG6Vjn47s9!6@%20=$xPzr0R#1|4y_3Q%YoTb`k8As<?KKlYv4Lh%mjou{B zdF=6f91UymnQ+oLwwFG3>Ky#t_aDKZ|Ku5*@+E~&o!4v|&JjNCXD;}nF{!~9V}9xg zX3m_BRm<j~wv@rvgQxNI`d7e3iyP**qXBwS)8B5C!sK`POtQA0=^IM59(?*f6gv(H z<!hPuAt1s!LcQ8NRu*M$#KB&G+0QD^YcE`ReiLP($GYv&A4>?@KXlT0en^tz@>w`& zbD<Be9V?}WD(J)OP56BnES6-EBvm5bcgo|Ta}mr%02TVUkm!E#Q4yVy@>pZgN!v@! zci~Scg%DkRo3I-C#<Z6sYa<>&XGdZ_rnfbs^YwKS6;R%I6=6{a$`xh#1?jHO^YSk2 z{wwZ*cWlsk-8Q|c7l2`-l-1kumT~Zf)7(1gAIB|Qiv?@0K-2WO*mk@VI}RNe02%>L z!XBleO&gSBlc?~bysPVK<RT;K^lH4#`a4@`N(E22t(pjk{>H9vEjeXX;%ym*C~`CR zZP|#ro&)&sm20tT#%SF6jW1!{;|~j=32U?&KBQ3@T<}2&w-cG%mvX}E6_cTN614Bv z-sTH9VQLe8o;kKv^uY5c4~s!>PdcDD8gw?Lex-NLHk?7Hv8UmtpbU+ADBzP^x+2w? zW2Ep*|G*$Rjvp04nz?i5V%xTDBFp;r*4Jg?mixAhx@*uQEr?%qnP{M^adp!NdauJ7 zbnBkA<j6HTC-*t*X~rX$ewF`+B&tLr6925_=x?2dR46K;Y<EFb<(aaLukL39;usz- zp4eR>$|6w-Bb_>C;#A!I^NslDhhN0QyH7hv{!GeQw3r2qlx>~GOV>q2wMC!g*i!=- z9|f*hz6e`3ZAPT)FlJnSJsw^E68e2{xld`PJj}gKW8m~!^jHMj(Oc)UIWJzqj&+Zr z^ErpfjOA3el(K)y8pN;qsFdW%qD+mbStxj)Ydc*a*Fk_^e>WCQYnLd?+YjG`)UG!W z%$&AJh#b);Ti}PKhXTZlwn#2p4Y~{Z^DZdlLdt0sjqdP$u~Q1N7&K^l<<B6&j6Ta+ zZ!g^VI({RWi{zjVE`j~(mdQPNkMyhZ##g-N9x<Acp60@S@9iFV#|FLpf;jHE7m>{G zG?!yf<oq4Orz-EK2vDwONsAbpI1`Jm_#nnEzrwAFJ)PllI4Y}JPCzAwyQ)ze5`9i2 zx_<H^?EjB&tT?f_lZVOCoz)A|NmY$VwbB!_&~W*;&EiBSLiG0_>MtPBcM5}Vy@^W~ z&%p0|=A(G|=|}L*fBq*7_MR4|wfORz1=*dMu|OsT*Gtq1Vg#P4%n!zsRqrvDOJm{q zR;j1O;awOP%?ahJ8uRn<(8H8^CDo{}1Ya<U0E$w^rq2OA^iU`y2ECy+iMRLc6D0iN zrOU8z)--(Ot6#@G-~NV#+qEhGH~%JGXmt5?NROK@l&>zB>RiU$+OB{&A<?0z#w$+= z3Y(P$-Y})qEhk$fJWT8YNo?r3D(GyuXM+Y^(Bf+RGAT5)jgorl-B0~QWLkx(&3O7+ z!sluXB*)+z-}w#(rZ2{ye(A>&kzvz!z|M_Vd$hgph#E{m_-C_-We36Pi`%YPg<a1+ zf|q}K59-<{WA06##+y5K3fM5~i#UsxVV*DhIpTGRK~MLIhdvd9uGdWUI`*qd;PQH7 z7kv;|b+eS@$-8Zx$6bh6kr%y3xfW9gu2B~8Sf72gLb}u|QX-P6rH~86qkO5RPTa*q zHDj&@-QW&ne(3MUlDX3{aO41X-SZ6;-g>&MyRM5sUqEu`D#}7l`@xn;NHsZt$}<+B z=a`?^C+t_s{O%`j{0on|tcEs_wCqfk)#XMw^<CKQJ>CQF*q~S3w<oNlp1VzzTK>Ni zo|MoO5vWEUR4GvNkro6RTEttw==$3bNY>+(Z98$e&k1ib&&Rr1WKFO=94-I9+F+b( zJAY&EqyM)*&u5UW1%*!ZI_Yupsc3o+{BocNq>&6EjaVs<j?J%OR7*Yn^b3E4x<W6$ z_}71dEw8M{*c*Nu-IJG8OoCM>qY+%QZ4l@=a-!J%!m|i<9Tia)hTDl$&jq4R$lcJs zdh_Qzl^t%UhaL|2Q1S&4_2p3t#as_vj8?(nDUTEAl}!nlE}ze0&#v7f4SU12S7ZGP zFX6BM>z~U)hHPSrDWLKk(cg(R9~O2oQRiaC1HCnSk)n$M+mp1zsHK8{0PRq1X|T&M z3p%0kvZwCot~XtJBL-^5IR>2|N3D|{VPDhW5fG<B9t_ix_nRSFtpte#iZ1aAOXn{A z^dI4`|K`8p_IqE!p_AQCRf8$9I%kByEPCAqsuebu#Yk@lKKp@-rDX55hkt}qyWhg{ zkN#(zL=1aR_LuvXuZXhF@m{M$fOsu|%pg)>BjgkDp}FfI_C5K4lyfoM&L$o@MM_u> zdD+JyHTDf{PUv6LM`pq4KGz0SE`J+99~tGCM^}$^%hL~I=*5R5;^Au7dn#c>_{J9$ z^}4RHiv;0Lu%U$7t>{4I+*W42v+tYlGLiMnWlQR0*YggiLZMLRjrRqF0+!#!+9o4; z#ixXjNK+Z_#Gp4cG@~uogMAO(C6up>Mz9HJljW8+a$XigXD(1j@VH*s<vrR1znDSy zN}#&=#&U0XRmG%~L}(G27bhCJ%=7MUOEkh)(=1e!tFOBmq3MgU@9o{#e(W^T#Q<O- ztSkDRfHQ8hKe>bM@BMxxgQmyR<LEI)^4oJQCU`7{l>2)T4u_G=W>GRmzB!ab=bqj0 z4Rzs`8?MF2Z@3EI|JQF|-Ki3KCoe~-Wt^KcK3{|G^{N>05GvBnBiR4kqiFEwq-0I= z=RCd|^mFCUY0TMZ&}9M-hT#tcq<qgY{ANKHboMLeGqRl%Z8%WEp@WCSTfg+uOA!f$ z@Q?ra4|ws(ha4gjQ@0*%9WRrk=0KUcpjRmUU<1X@5v_1h{g2%(JmbuPI!$FL$@aw> z;;?9-w_kaSlpJByID~7P1u%BD$c>vjH+gRwtoF861P*M&u@@c_npq052<R_h0D&G4 zkyNvv`{K8en|Cq3bN@4PbsE-oD;&=DEZQM?(;tjZa6x?K@&%|#_2StdeGjGmThV*! z1ln);bs>2XIniVTeCfW5yfW{J%>^HtbL;o&rBjq8viD7Ny!5y*#3^t~?^8%~KJZBa z#L=J=UCuGo{$#``9Sl@pBV>Hlpcje~f>vUe4L|xWu=Axe4LZGKAG2W&^CHhX@upwL ziNtvL$4(Z`3#P3qN&&S$tEH~Ycg$taYik4-66x2T01j?+j?etLDVya2f{P0p+vton z2+m(C+!3N_e;$iLdw5yf-`0N&J0H3S#Vyae23<XL=_4a8>`G5xAetG;Z2i92=NB{R z?t|~I%1%@b`7WM_Djr$6N<Eb7Pm`-V*4&Cn(>Sy*S&e1a--@nu9xra*hEs!iAnAyN zi1D_YGR!ge$Ny^%u-gB<`@Yj5^`7fo$1&$Er5&_BS@PsXG{)Sgy3_n*9r2zmm^o)Q zF1_)?czp9N?C&iiI&+ajqGFe3RYSIWKt%44S$SA`8_Wli@^$z6C(#~-<j<>x+s~Ch zXSlt@yt%1E=lQf2ofDk`<48agq;dBJ#i(nGMpy@(#hY)ufu&0qW68WZxbvQS@$IjC z5d*!QB3?p3T+O02Wik@YD|^9d!`wSPEry%tP8~0`%O_uXRseCfag}l>&H4Hh2+UfE z(9-MRudQ`G%8GI|8A!{UGXODJ9++D2XujZ{ll9WdoJK&Lmg})zIhP)k#f#+95fk#2 z8~^6(=#SN5^QKK;3W}gSX*Nd00tG4xUU~f)W@m0Y>i40!u>mV4w&M8FBa&`F$5Hg` z+yq~u7R^_ERC3FSG2>m3m>vCa2g+mYcs>Qk(HOID4?OoMI-dNI7+G)R!PhiZN&p#x zc1d$AEWjDyMpFy#hUMjjDMwjYEpTl8&k)FU3V{rxI>enQzkx&Jn+2MtBXQYn!Y)XK zwQT=@vv44n`v_3yis&bRbbK^`jSt?9^rm${=Wf?KcIQ1GaU?zg=QXds1?j1aMRHfl z0?#*xZaSU|Z$^0D_}70z=)`6qGbD=@HRzJgw3;$6o@+|Fu>Jkf1HT-D{!8c!Z|$`+ zSNV`^Y{Ot;ENa@uV$BDxL)-j|@Z#=6*tz3vltNL&>XPEMGyk0G9Y7);Kruvm#<P@> zRk>aoS6?&&`_nak=KFKqruX;!Tjm|>*!D5JhTJjk#<=Mxz2jmU>CV$Awa-B`7!*{n z8@96#crJr(CP6n;YjW^3G|Zo$*uD`bHm=9`MC43^o~U=x?L3T%v&jFA+M1TE5fCRK zc;lrjAWl6OZf6tE+-k8%7@b|+Xlis=-?nexE~Rj*mduyG|NCG5CAMsQL+Dp)*WM(^ zZ-$_U1*V;4F+)@{JuCv^4zGU{`9oXF3R!LxDed4uLUr&hzXiTIE5vi90g$d74q0#d z*-f>W&^OPyd`vy|u7AQoej5;;rlZsdDH#flk;<8lUVbSq{?zAD*ESj(_8i55<BV33 z?8eBcntOFYj-?zpuDn*QF;7H8A`{zE96-l`xAE4NP3YS6DkA-dk?J@Ff7@h)ul_Y; z$-39%EEvuxjq{dAntPRJ*W9NrT!hKYlygZvwovJ2CF&7uzsLoqaq-~Rpc`q~ipYm& z95wR6&nb;@WDo6>`t$DB9<MTng$i<@K>JbzFZ&d-O`}oU(jo?3fPd^q74;del7-h{ zO6Ir#M)wJve&TL)Y<eEV2&gQpJ8z)qklU2P7<=vQ=p8=?#m4c@`OXGh9d4rW1w=OW zmW5NX;TwOC?GJuaDnbYx<syd0oS;fBT(sm>`5ewQcU{>2{^)^sjX{_0G%H$_$aE3L zkp}pZ_3+h?#=MoQ#9QCrm%-LIU&mm{F%Cn;axJ>ofDUJ<hkb8yWQ;14cDRN&<Z#Y& zoA<kS@;InRUSY`jhh@y=xT${Ot1s1$k#e;}Ym3NQ3iYV1eSR*3?m;GtF85#`IMLI% z5fEo1+^eD6s}ag*{#?WD^v**8ziY5H-0n5#+GlFm^SK;qYwOV6-6fuUQ)45JpE!Yi zyLV#rxbe93lC}83kA94MHoT3V#>t4ySm@+z?Q%8mKvW64E4WDMS391($E76|18#D> zlK&)LBUFpzjlYAzM4N!{q*j~8)GUZx<1>umQDa9ylOn&nUV1`GxqP`n*WgIV)=Edw z@JZN|ybZOj7`=EUrmg+}rq7&(gT4fg96X2te;nNd{c=450JWO(vo|7#wh0q3u{JJV zIe7*S?bw3;z1vXeJPKk57%6F5u-YxlV;#DiTec5s)zsTLVB14iBtJFKd)D7COlCx4 zt6CoKD>nZs)GogYr~OHX7$}{0ko3k&w?V0Aa4c}DNDl~*Zf<KrO1RvJhtG*x*(Ga^ zm+X|jHZHmbnH3+xP$21g=v58+FgO7z<1<_W<l>iw#O9YIT_d6>9+g04HH@zP2r}*S z+)9OW0UE2#ClVd#IEGtSF2u@28uxtrU$Eifp8!e_WCU7xzizdJ(MEVD^V5ajy!U$G z-DS{C|0xn)L^}dOM~6D+gD+l-K+{;XPM?G2mtTYC$<y)7i!Y17f*Rm+dBtZl;v*S8 z8ev~J>W0Th@|)q$Sq?SJK3+p^Lbb@|T!UVU#wGXXuJY}JpN~N|xn`~7CEEM-pWQDE zaTDs|LifscHZUB?WY}y%87)_{4f=2%y0>2#Zf7XISj;05i6NKEN%&on@Z5jm;+6Q) zPoBY+lLI0hs{pYPje}*}6%e;~{bPa__75Ht@6oMQX8u1CMn02umAMXPV@OV(T1I}G znq{85THUfuEW>I98g$jL&TL+f(m;pEUOEhUL09hAD=REwJ)t=KjiZ2ggCNo8ue}nX zF_V!=r7#puAeAp+Xs91WlCxNi6rpSbhu=ousblEfy94Qt<47OfhtfcgsQyXw1<|td zI`mInDbE)dEiB`zC>8Taqq?WD$y-V}!3i)dtQzRZbnx!Vl)j;QP^6@8-ZD`gYnVC{ z-6v0=RNHv=+_EV-lvgF?lyK>yOiKU>0<&e8N%W#R0bEG5to{i6^Vi^XtW}~rE|AYl z?^@+uQehSwSug1tiosCUnE*7?RQ8wS$}+jo#kWXgjirZf3GRp<+VW0XE{CoYxb><_ zan1Z@eEDzwH{M$R6bb{qm@sZMIuC5eKwrO<Lb57`A$hNg;d!3+!tU>(9(dOnbT?;c zR+Kj7r)Z={;>e`(qL)lEnn=qSOkc2Ay!G8XcVPY2eTXD$k!9$NN^440Im}?FhkdTG zvc2eY?Q3sm=)4q)ltbue`?1%Mb6*;BvY(NTG8{!Fn?|Xo6-d;Jm&n?D71VGKeZB_W z0E;wyxbMmPFu5Ut+OW?x=yvV7H_WaiGMYCh5KcjGcHOz{ncJ+rc9;15L1c4zVfC#| z)S#=cUkrM4Lmg6?Eb42LIMvmIpKW|w$cHF<NtG-`xQ}RTEDxHx@8O=Kj-K@EKNqyQ zGSXEnB(ntp#I@Y~8zSVv@UXX(>kMzw;!;-?JVrtY;35;>>6e~%kl$1fGy*)z$)E^r zy&soohDM#p?pQq{qsGG*O`ufQiezgWeBl`U$$Hc@G&;sRUqmTABvixkbRYVM1~G8z zBz(Q6kU4z}#jX=#$Z71zWF}%jsl02@NyDn%c}30pFy46u`n#0F?Dh#r?|%!TUbp{s zS7FTsz$V8aam|0mP}2m#!bF<KoDpfN=u_<s<q$BO_FBSq=y|8sUCRz>(6vNOl<UM} zFQ62v7a*R{CO3_)H0XK`4^^^vZ0%ZbmLB$Od`_?swn0~8&O_$mL(`(G5W4I(oXQ48 z)Be2K{ba%A)S<KNG281X<+X<M80<QYd}jw1&zg)`qnhxuulyyBAJ{KdMAAx5MahNs zAEO7}H3nS;8{C)AlwYvSg-s_m)+S5Mda@aHV<#X!ZZdBA*r#xGFoz9Wcc3>H5VSaI z>Lhnvt$B_4FXDBdm*Linp#f*!xtbwYV{TtKdF^90XqnhvVN_gDmU(f{xYueqWKIm0 zz=tYENgi_JIxHC5glM6^f*DTB)KrLt=Sf6@0)C@M&U$kia;-J5X27{!#?g~E=XXI< zTyV)Q001BWNkl<Zy2$?zriMV{o{Tx3Cd<?~A+fBjW&CtJz4I8p|JZXVj+uhe=xNTP z<}7Wv&@BymX6LJp!rGzDLit+OTz4W5Dw#?^T=U9na5~cL(#(2mrmKeC^|}oAIJwO` zw{Jx6(?3FH_XZanD#&jWCRXlvRo>HQU+I4ZG*=7({;<?HBNRp;S%+XGibNuTqDd8H z3PqH1S(MU)$oBW5G}wnysz*ZnJVzvGlmm^rU)C3QmB3s;oK<`7a>rNE29QXEDW$W^ zxena>e+3YyrCYj4kG4)m%?E$YC3cbD+A3<p(H2|Jvr@iNd*JxbA4JcqPdKRqOQDd9 zBpNm@TA0oVH;r@49T{nHBM@E|ytADD4E_Svf)8|*4Z1;;>%2vSK4s+%@Lll<>>Ki- z)X-X40;tc(NOJ0|gCFb@P@OQ_ojxrUJS~wDR*b5}#wQ=avFGlWeu%`Q$fq2km<#Pc zP7l0m47xk_8GUSrgu)@G@lI}><n7#|f7C==chg4@n!W&U@7|5wM?0MoFe?x4zBeA7 zb=#P0D19U$bv5KX?ud>0a0c9d-Yn1D{+ix7uPfTz?C@Sw$YMC*m9sp*HXx3_x2Ytv z2exDSsAja)Mun@rKV1~vb2a2tQDcioA{Br(^~PC}rXIK&aPA)omGKQ^k2_mS#G<0c zmN#m5`FsIEL&Y0!9)~;EZ^45bwjtU+#Syr$g;CD+-fG#Fk-hAA?HLD!ZGqD`@zVhC z2@5goZv;g06K1;Vc07$;wl$nL>0S<jRO!Al2R9Afu`O=hFgfg*JC|0<N_g5f<YJiU zO&5!<&<BM-qy-tpVYoLhrJ%yR=(Ds9%teGkCBru8q!o05Eb4XsgaG0qYd<bw;Y3SI z1;V{Tct&r^GJ38-H<*kS?QMd`AU1(aX0kBK8Gdu(9mX$4({;DY;xsaGws_|%XL~NN zm_EM*`Y9l8|D!(?krGB(?7Y4jbb<^ymVx%g7`65WFm*Cg+GKC7KgW7zOQSHv?S1m6 zLix%ZHd7}ocXa15IF1OPqZPOQ7Lr$g8qaRriqiP$V$jdVFgWaEY(+?vX_EW41yX1( zW<;!|czCy)K5{CCvS*jKKG!>QVf%Zk2i|oC-P?O!aTjiPS&@8EXF~IbCBHcD%Ih(C z_Iwl*b=a_TFHW86mN0xU7Q*1^P9$2IFgR2|#OLs4)96R2enw7sE)q;`d?W^)zZtP1 z=g#Vt>kXcdai;^*Iu4nVU&8HFhjMerBU#y3dnC>8l>U_A!@;+=Vp?<v%hp_qv17)d zXJF7JjA^KEaHU{tYHP%+)|zs$D}J9)y~_WC0R&AsRW$=1vJCu4-xd<i^d_3|zwdek zFYW6PK%Df$a0cC`wXMSMe(|VU*XS@*D-@lsY^uZiO+&}r^`zTAFG3#CNi)x6r8^sw zpg~2m=9p!2OJ+{Nj-TD*AisML2!P6~Z=g9}dgN|1W2L|@*QT;Yo*tngb}I9vJ0WLz zMh!>2$iJF0QKit;g);AxQHbJ_8yvu8yw)i}Q;l$|FTJIC_BATM`ND<>s3b?60Q!!K zK_}W;5#Ov*s1ZP1ElOi2JBK(IxYL}-7J|8`HGyLah&ypmRL9g25dHwW`Qxacu^5dX z_$Uq(Yg~r7;Q)>LQyc83-!amX-u*hdH#~*zjZd4!RJwvP*rh2hmGIHu`U1xN=fA)| zf8z(hq?r}!cO!lNxu1>hSLs#uIe~!$=!q8mksa`5PL<UfRUz_xPIO`4_iPWm>kYay zE0ycqRq#c<jBK80<A_YW3_&(dnTeSnxDm52T8>w?Y{#~3I}wQ`P&cLxJzf2hV;2;> z$5TJo2%amKeqP4C+R1E#?=|+J2uk&BQdXyBQ)ftLdXHJ9PPl>%%WQ9tL+WXTbNi`# z5smt>V9pH8UAz=ir%nTnH*?wQeKQ;$rniHF7;qYIZ8YL)z`aJ>7o?1*<F#ao$ga|K zd$nzijSbkJ3E&UEdN&SsXONt?L~_}-9(lFe<ue3ZjP5(p=KG%fDUPjwRE&;#z#`sZ zJgt&HDRjiFmnMk~Cu1V9&&8VNJhP?%pFm*0UkpVlBOx?&+a7R)JQOHK56*2ST&s8z zEk)vX+nBp-U<OewIb-9Eao_U0;dtZP#Hhnx5pEY`eJL!Zfc|CIh^m{E!YOyVm*=2L z)c}vLfH9R!RX`lk-{PU?^8#=cLYXx;qi6hL_?p|wBr6(nuOiIir72e9HmWp$p`9BA zY0fAMi1Id(J;|XHRBN8OLZ}JRW!Io?=0ZuGNZF@X_EtN}BhP9-j~vHY6Gl5V_Afjs z7y$~fu-S_yn^5axzxLbsz@Psue&?$X3d5t+p`Sz0r`kJE_4x*{bb_VHZe5RkP3M~5 zE^L2)^uW8{pc^lSc|YaY_J-m`%?JkF8wesgX&z=QUxQVbUM{)y&0DwP(5XJe$Bc1n z)V+1*9L}@l-0e~|9r|+_d70Ne#+g7lyV=`^1JTKE67^!x6_h1lFcX%pppdjD+-lyt zC9<J;NYbAY?cM#%y#kg>*4AM1j9FN;{9-J+XbHxR9V?fdOQ*zuN1~LubO4GW;|S4U zYg5A<u#A1R+`0D^A~L>OOJ{SatF6VRP9Hw^l^;s!Ufry@qJeHVmnUDpHppdFx6^%H zg!_Hpc1w;FY3}UfFvYRtC^%srVwc^D!AOG$c~tbfSWky`R+<eOvo6f;=k51?3qxDh zJF0F*$ip_ee3t1|+i519nB^HYUbX`;^Sk+Q=GK)+#i>Q6@pj%B&F8AYVThlVBc;rc z!!w@q2_0(BthHir#GrfX&0URoyTdKxtDZCIP}6(1;porqLg%&(ZdsnZqk$TUrcM0N zXK*my4vLhB{<!hZwT9m9OS$24q(T9D>`&&9S&rBD$`ewhz(tvgu<&Opx9gSyCK?gF z?2|}0PLL=>uBNqY(DgjLXB+KqdBu9$jA+dt+lK8AeAflyDUi|TQ<t$dRIE3A>~{R^ zm%oNvzy32EE5;?VR6&qa^{GGe%ZlfiV`PY>7LTeGE%@%29z)^aCRsqK9IuY~2v2cg zxA%Atyk`u$PPFQs=p?26&k0ZfbIe8hf|3)QxpWm)UV0gPW2fTH{m1b7j{Ra3g+0!u zgFV+E4&%)aw*Zir`8*>4)h@x!@3ZdRkkp7#p~2FL$1~}<M#c89ykaaC&pAD+?8$?I z_D*eiUTTKfShCeRelnJ>UW@Cly#~`KO%Om^Hj@=;SsL(UEK&iwv5mHEoP)t2^7%aY zDK^kD{^#m?-QL*TjQd{Ohd=t}kAd;ioqAq7Olz3LT(65BpIE|t1<yN;0_97o&b95H ze-#gl`A>T2TD$BTbOyxdTv@4MZH{N>jVl&b_9DvsU(cC5xd+dG|66iSr9!ozXBs`% z7&GcbRlj`NrAf9ub30V;7_g#vq=GFW@R9j+9;1|(bb_+cDV43Fzxlirg7s*={&ozF zo$au;Rg+4!2g<vMG1~|jyL@sB_PqK$`Zqp{&do0%;LAFoG-J?NPfvPT&11Wq_}=le zpKn7p!_x>wY+sjD3?z#~IR4n(4j^vegj*WNe&Vypd*-5y_g`$7f|l!V$7$5MrHAsY zREtD-jJn=B$8lV3EvDB7@cR9CxeEzCFFdECVd0b?+8pX*r_IBU9{L%+xAio>^ZYhP zDwbuVs{LN&nQ<32mTapHX4QqHYB214{C=cfdqT9}33wDj8R0P~UdW-3bdq@=?Dw89 z=oS5J@e<qYa=Ic_!(NOv1Cb;YFh_>D-e3}sZQF~%zW%a$8$oDZb++LK))rH#wvU&F zw%R^QL3<8^UlBp5sdH&;B~)mOPMAr-u6cIpKzV*IQHM@oCKRm5>yC8~p|JZ^L`p*v z9+gE20%#gD4i~Sv1lN4%W~^GW5Q%tPwq>$8<nuWM&tjY@?85!{`HQrOIp_a+U<1DS z*vs&>&nTBVso^#<wC*HLW5_&mI#t1W&+AY<az$Ya-?kx>p&`^da8Azk%dSJutSiK; zD>RNnng+d4bYy3BVI>O(&v#bzgvf6K#mK}b=hX19EXEx0r;^A}tDE9P#cW1u&b9gT zL(X@@G%vWbVbmCOpExGuHNjl3`zsB*I|~9Qvf!f5YsNdFXd`w*V{b=2&bVidOc)h1 z=G~dsCLUv8>ju$!=YoR$%lDG?^!`Z~A+hFKiFlAuCY3E!h|Rd;r&nzEBe4*MKf$Fy zz31Cf0%+eOxzo#0iJ&0eORY1}a{Xt8$cBqzHt~|ZhSj3db??_AWYQXY)n4a9LWyf! zQX*fl0whOc|GWS2Erc(-6?Z-O6i$a~$_#v-NXW1QY)7xmJFfseGS(e<>~42KuFtPT zCj>C*V1_QV_kRz(`whBS7EdVF%9APR$9?}%5<rMs-e$;X>X%%KwIBKjCeECS^?N$7 zbI)Gn!!?M<!Wg8~aW)GwsuRbppFAc>AiRx}j-p>lbE%Cqn-zZ-OTwL<PNy7|xO56} ze-T4PzkJH^Gb#8ZF$|@$LSM_KRJQj2g~~P*bv#pBcil216%(%N#G6my^!722ZAy%y zF;RD0FuqapfnCo%Aoa8ne^v~-RuRxcWC_gt#Y?bk<!VfuH3t_jnu|oT7M)$4?!8xp z)B_Qq;4wad2tpPLI9DhNo18PTmjCbVYi=VYY|0nKpWWdA;(T*1Do=<?eQJB_Jg#ci zYhM{PHl=(enCjq<z9I6ZWm-~$E*GK~{y&8J%RhzGgoQ%3BDMd<LuZIt2tssmrG|$$ zVCS7J<Tq(%4?K8>ODH3|YAT7TrQ|5gzxlJMpE?I`>_39RtltG~2BUuD<moIoD)ZSb z9tvTwy9<eiMtpe1d_3`;uVU|O>ne;L_vh%kwc6CCpM41;t8c>T+HuZ8$=suc-7CWF zUTI+7t6_MfksX)stCXXqR~>Mk^^7kL|C~z^UU->Hy~?zS@XV+CTrPMyp54qdtmtqq z9Oh3Mhwhzky0z}iW6NTm{P#xjO#0VE27+UzImmi{t-M375KJ`>-TM&gJr;_X)fAV~ zL*WwGL54U7fF?Zg2)U(>QkPy#I|^)^2d1yWZ{PVKUVig!Y&dwbj8m}B#b?NlOmLh1 zH&b0)pqhw<QtWo^*yQjjY*{Z0aymC|#PWhcKV$xWKY#JwH0biCR<1e~EGO@PmW&v$ zi%58q(L^WB!n8#zaOG!imodHfh3!I{8Ln#*gUSgyrY?yY^+G0%f<>uG{b(9wwrI`) z!+4u0!sXIpFo{f8R6X~T8hK7~23;=`o!<#X+u|&CKAk06>5dMdeTL9oN|@4P)X%sG zV=M*0WqXo&vd+aMY^h9J2dT|%h&ed<x+O+ja1@N*Jqk$HHDTfMi?LwQVl2F931-ch ziM<C7B1;bJNDQH10IAdvf}se)ey4`qXYP%EXU&lD|Jqohra(IWzgm-0wm=krd*6$~ z5Es4ZvNIMn;AF?&+x=o{{kfP?H7}Bp%&w1PhoL3)51n*rGKGA^gel3Z&XTpUSASAC zxCh&&IfjePW=xZTvqHD}x86uFgvMkX6Qd=(^@FdA<fTw`76!mvHp_|}gHVER^ejxc z{!=K8n~B~?4f=Zfg_c*I8(#$BQspAa{*FX2T&(a}T{*E?!rol4pzi=mzNjlHDpaJU zf*2lo_KIONEV&Yq)gLMopV*6&Y6GGnce^e;?MTBmWcx&`yZiC)384&)8O!kWyiFhe z0}1V;rrBXTv_x#=J{4KdKRf_DKDTnseO*{Rdn$T2Jb^9ud{au}9Kol6yFgN$jTrP$ z6B<@shu%@MrBcBqWzzBF;?H10<a)SJ3x(xVuE~ms)dfqa-}@R)ta}*gw_kI)<GG*C zJF3IZIf@277^@NDo=ZOW-?8*FzlNW#dmV?mQ)Om6`EjMwBJVBFs|!;`n^FUy+M2NH zC2FN6T_s$PKliW*4Dmj=xM6>X!T}NbxzPUO^uT-1pj%}+_AuE7U0*JFnH5nTsuh;4 z=){>w*4AO=ZJ$MC>=dkj@dcdh9CUNkG9OziXew)JpKDkSc6+ChlE;t@&TdNgDl>^g zC=+j=B;|H2S)-(7MN`kz8<I0SdBIG~!_mW`<mjlnXn6uQfH+mf5_Ue*#Oq-{`oiL^ zj~(BRrE9Om{Dq4#Z{}2Fi$0w0=tL$pfSP1N=v(up0AiNqrq{&p*;Jgx`<m%?`+L&B zMq@ST$%pZ!2cE$Je-j!PEk{?%L{7AZSq>biH0oaRo_tPZV(CS``2W5lp;~%0_I)Y` zwm%d_p>YbDF1-nzwd16ISSDAqVBmzyKGX<K#pGMayGVG3+r1j-1Rj!_lgM;oYGXLM z;74@YQq*1fQJ0ofZYdOYumVgim~g*b?=S#D8XPWI820XX<a^>l(sOhgbJ<BTw7gHL zK@Zg-cF9NJo3j$>P{Pq$_vnbb9b|iuRYJf7XQfUbm+<e<hDYHm4#)zD=yo>ZTbghA zU386}S6y7F%00P;jR&wibtzeU=3X3p;wKIu&KPugf1OOWoKwQi1|!fFX+>hjT;!5X z$P5g4AHV8<dlc+ggHHZ}(~o=)rH<WVuw@}=l?2-0IL=F49Ofe}a{QbA%l|_26*u7C zXJ3^Cn*b0aF|aH%lNtgSpK{%*&+fS@sn;*$5e)<p%=U{0gUwjS2%F~5rK&(82N&9Z zlpc6*8uTioqli+kVV6l!5y1otB^n);twb&6-SVHXYVkb0_{LUj-G9tsZ%fpPr_5S( zX+5W$@3rMJhy;KPok<U3-I+5D3!MG`;iz5pm}=CGF)s}c!k0+62AwtNLTNi{oD*uc z42uA3tUR(D(mUDe-^M%VE;K}Ki7>K9cO$d&b<BvDu;aN0(A#lBNH~asCJ!_zclqho z5gX9qm<eMrbIv@>Sa1;*&Yz8@rdAPE85~MEUP(BHps#?uSx~VKfz{pmDc4XaxCAx) zp4kfm<LyuG7q4%^{*)izxcdQgHBWQU=8RIXo_%o0$!GI#Z8U%ycGui`C=6d;7iLeJ zEVQJlH`k--)K=`+{5tZPK}T*gmlkhI7`93w)X!Xo(85d6*)-KLKqfLmBjcV*JxV)F ztZ5MIoc_I=aD3gvIQ<e0okK#RRH#y7g_x9%X?-@&rwa!0TCH%aGsb3dp+=V9nFR}Z z)P?lq`TK<dj~+S~5DJK^zzHNr3k@rUXULw$G*m@OXM{5$`-JJ6jyGS#!Dk*64Riq; z27HbdLneh->qNBO_*(*q6Zu~~wjEVD+xbl7ps_BA8PO8nFcA+GMxivb`%0O#iQIeR z1kC@~=df$gk8Jxi=N&Rl$C8VfGrVFeU8CiS%O{O;5bjUii$LE&If`37pg=s6(ok?7 z7f+0Yklm6F#Z|xl`)Haz7q1@c#lgdeF_?C+4D`C~1&m&sJ_r0{s(?`@E(TN!e$xYY zIe@sXLvAF-zOE4t;f3Aa2R-oKFzDy#=(8DfrSlX6VnV8jG&{7J0A^kKK|#WIW{TK+ zyb}iw9<Ml?x0Ea*ld;oWqi!2)+rzexWO&(ypIzQIEB~q6_&vRHtCgC@Iwfm0b!D%H zlRM98PwMKyRh+ZzQR>%R*{fH%aQ0Ljc=jRmZ+affri{nb);Jz}@O~WKw_m&~kz<V2 zI06rnS1*d-LuSZ9UPoKUqkVKUrp=s%RhM3gsZ*zjL8oD7v-9dg5o?@&3wChE$a)Pr z|4xUR@Z9dB!VnjqK38&}nj+ByaI#}#uQF6Bo~`s}RwO40zG7qU_3-O2z`u1pR$a6Z z@ty;C>hYi9*r8)m$1Ln{WMT6KF=fRSD9l-fR7*ShYMjzNHtj#1Xc-EpA*|LSzMPaf z9eM5NIPu~WlIK+2b@5(JopdqYhWce!OMNz3%oP1C9+@8aT!t^7!<-4D9Uk?E??!RU z(*{i+azfDt=;(N}PVKsa#ZF~IQVN(Uh2D`tXJlY{TLUPW%JM1IdgsDOnCr+xABjup zSYYNwGKPv>soHVFe969_Hm()XQwJa=fZH|*L!5Y`TH-1w|FkU9a!80$<HTz}f#ZP& zL}$)NUn*6B<hQeI6?DoLx}KNQ(9n!2bz!`H@4pJdJ(xKyrGLsLz>t5r+CZaG4%(iL zUb-(7gs*KH)_mqS&^C7|dI}}<45lzJn8vYz)EU?2b_3HS{(z)iL`xtw0M%gF@x(*G zmS+W<p*8WYvYn}DvFAvQCY<f_e8%L$zVDtMcwZQFnW$8Yz?7`Wcg3Qto-68n10l!z z6dx%epJbW4<jSkiFnbC19XXEOhmMJ{j>jVyIuBWOHTGJvmbS~Js~K{A4rs)Q1kdJ# zf7@qyn~}D5sk<f#2lbn!_F4_P{@x1!v%NO&vqnJ{qx{7Q_~2_VfCzU|MoyU2j^FsL z-@uklZ{UHuzJu&wkE^lFu)CB2l}eKPRj&*FIOwfUo<0*xmao9P1q)G=tU>=kzbK`N z0W1~~4w1gp;eIDCyEgU4Wx^{s`+8e3-hyrU1b+Vd7UU9*C?y-wm&>8v@1XI$3S;_v zf8k7?_c67#*z)wls7rTae6)o5<7zQ&+B9s~umO+UcQ3MogHE|uAczGY`#dHtU4u>C zIXS0&+_<kK(xvkJ6jH-p1GiJjZs*I-l?hNxDVZ)X85%9tPjm@vm{Q<^MSxq;+A~uL zJg9ffxsWLqg$`9fTTk4J;=We|nB@{PS)2}1&g4%bI&~51*4`{+E4Aasqc=~!Wh<ww zx#hDhCh|GS?auZOQ~=`K>H&lLp1kr}%)jB|*gE7xw!XYT8tHVHj08ndt}z@y&%PZv z_V_)L$Ci7P7v9Lt`U2vqO65W@iW!%F2%}bCjidP>>c&n)cOZdiX84eM%HTeD$e4w7 zi3NS=J$k?u^ikPTmgW&_qNR^SnJe&+#~?<6=?zH)gc1@V4326?+q`9HZl8+!)>ib_ zjYc|`2V%9b&u?D??>!zbFC3feYH@7qtD?bRQ_yn3#)YCSL#=b9Tl#3#$!q_s(I4q} zT-fj3*8}efgYI2jp0gW?if6tzP!!awjf8hru6`uy>M_voO!$;#E#>lPS$Y{RUV9}1 z$r?Pr@pW`{^-B(0nhCEDOAIp-FI^_$DjvFZLlSPc40^bImTb+Ao+L_3UA+Tm8gzSt z=l?B$kNns(Dbq`D2?LxU4?Xt?h7Rrlx{iaTQOS4=w}0$L)YaADv7g?9jnA(W0F_da zDtnpcnh9JYu&cIt45rVTjR_McVbQV`m_BVf@`VBh2M0t&O(r%&`O3WbaN+f8W9tt_ z@Z`Q;ys%|EI){pmirtWr{j8Su(1TQA++$=TT1;a_dm~yffJ`QXx|#&0&X|p;FOPrt zyZ?!fqx%tSn~aNZ{xmXmqp<t%aik;8;xC$UKt=<lvP@~xmvaBEi4@VF@x%Tc8cd<t zmzI1ly*d)Wu$;)1`80axlRo+TIFJcB`r!0zb?of4iW=4`i#U4olY&F&*!G%KEs$hH zG`igx+ZenO^Y&q3ZHq6x8tI8k5Fb0fT$ZQLll|PB#mF=7tL0n__4jQ2xl8#<!W%Zq z&|Y@khfufrBQlPuoU?E%1QW3PPcOAvpK@C!HHhZ=7~(_S=-Kuv2KT)#;rue`RH%Ye zfCls<U-%!$*NwtU`<PY>V`yj)@pwYi==isMdRvw66R`*edV5gV^1Rg86Uk2C8ShPV z_^uSLsa}xulff$xD?#uhIUdxRh_=r_P3sth>zk3SX_DtmuFZXhJ=dn!6$+y?*o#s& zgRU(bgv(wz<!xQ|3ngpSW|a5uckh0K?sLMD3OwOZR9#8R>b&UI^9s3x5ULQcVohrP zr~td7u{e_TO`xWCAyV&-aJ01@^DkPAOdx^RH*Z2H7Q;Z%hoQkVq;!mpMqUj`70T99 zyw+ietCl-Yu?F5u)*4<n-nn||VmKlp(8G_;Sd3KffaEt_FpoFnt`o4{g>BHQP09eq z$Aa(;bm8zzPr-L&mwW%=fFHTuPAplv6o34=&*I?+ev0pX?aOWnj<-xu$WUT6C=B+B zS2A<K5=@vp6|?8g#jH8AF}iIuy88yu*Vl_+$V~3J9OAJkvL^P<Tsm8|{5ikt?Hj_n z9Y>KG8bId|S>qZI%sc-dNz3(iBUI;r347C7#503vtxJdq&4kukoa*Sr$<7|EzIYi% zj~<O5{opP<b^i~gK093q3ZB9ru4MQd$$51j){l=)lq8iwK$;jbr6nb?i$4zkgaw#* z-EBA!YH@*STzF~SyNlxYp4jr78TOtWErD{PgU|mI=~IWx&%Ty^n(7cS=)rnnZ95cd z6R?<@Ki9>=NN&=UxG~gEoWP#Pe~i?wjnL`=#a_^Z<sy10KHBX|_RBlz*J3a(i_cK1 z6RA@N%C-C!Fs&R0FJjEpc{rJiiXt6lXETG&7=%qZ-AHaz_lX94$aEf&z7-sVC4ger zzKfS$D!GwEjS`+g9>fEawmMnws^;;lY{4(rr=PBU4>=1-zNfs8hT0g0j_yXP<CII{ zBhQxs1y;K^<@qO2RU?}=p2MDN&!=xL?E9<lfp@(@x64l)7A>P5<nv3uQ@tH_rLt#< zF%L%3+|qzC<Hlp!j2W0bbsAcmo8XToK;$|@z^VwwFfVhzv1ka#j-Eg&okH8F(KvA0 z@d5`j1)S<}LUjFE8klbEK6V-z64WH?%Lba>Hw}Hd*YU&+%9<d$bay9W$pq45;qoHc z)u6MS&0jz|QxGqmMjg`^%R+*xRBUM?xoH@O1}a0N!#zu0Z`~h2v{(>?d%H*V!T<mu z07*naRBF!_oO<(B_)hJUUzg&I4uK8B$lXU#*Vu&LzWr8FSNqnN|2OvU+$`IwDd4$C z_)-zc`WDQZzW}orUW6sfmZN>#STX7YED;PjVfW6i9wZWRB$GAh=s1mNG%DNFo9B5r zF5H)&Ecfdl9KyhWg96T(#ZphlDWoYUnoj}2nDfa6Q8<XSmK*YW0H^Z-v;<9QTs|fH zG}PB28IKG5-H}5FF>XRT)~s5E=U;pg-~GSe6mMOOpQZ_HDq^3Lx96f!n@v$%!JnW6 zGEBpmMXHk$3ZfKgKy3Am2uxpuV&ixe8`~TdwgUS&hJ2Q^EYE9jjZtTL9Km95-urE& zUwKqm|CA0@Laml20{l_<YDS^`qo1#2Z9CsN$sn%hjY<k2?$CpGz;|N101TbZaUwV_ zFqI)^TOH0Uw(XQz)l1;DGsQtbTQTcu$vf|TIZdOCZMHFW$A)4~rs<futa{4sCNF{! zys`h!u_hLP_2s2(#W`g+)4!a9G~_PjdX`al_tR@I)UXxz>k;g!c&>cmG6SF-%!zz4 zO2AycyRW=6BuFB2U3J|AHR`Gnpnvli7YzFOz69@{{onNlT|-vvGPfMV?*q$<h)$Ll z$sZN|@!Ez4L0*6G+G{a&+BB(erbtL*eXY=rN_mj*k(cEqQ_LAkVNVX^3}-9k3+V0d z7YWb4!6C^7r_*UMD4j#jOT?yze*fNm*m=AgC4zn$nq*ssta4U(Jzi6X;y|zC<<rCW zg6GV+Y0xvpfaKDn<EFvaI!cIUgiywo9<@Pn=klo3sO#@@8O*AWf*R<1Us?~}@x4;E zCkCA@mquM<19}fShW;bhtid(cUX8~edH|2!^L-5V_DC2$THlOxPlwAJ%@QHjWOL<D zBiKG|7UnEiC<=JXms}*_{G+G3q`WN>btYGO=g~-5`k02BUc7qj&g9}4bqd6!Q)xH< zo*w8IBb>|Uk;{?{r#z`M>SF&r-0K!H^uJ6!#OfLm3WjiS|6ceDS*%=p89KYVanBv! z#>VHLcCiFDBcY5lS@kSV1TQ7=aQxovAD0p})Fjlair^POpEt^)2Hkl;oyDA%>6z~) zHYTMc@AdC}smvE|xZIT?&Sj=!ZTf_HXu9g-l0TQ{>z&L?g*+G;An@<d`bTi&$$ODM z__`ZaQ>}MC6QO8Ac;l67S1~SnS{v(9?Na3Z)&BPRo%(i<!E}w9@zyJk<3xy*Nv+yB zYy;@M9#P*DnOd{xmFgL1F{im{bwC&)kn6L>cWkG_jv87QQcYb_hS!4yl5-j+I4)@H zMK<>paxHUhk{+|_`@O1tJQnxY<~mL9<axO8n_p=Uyk`u$s5KE0%n+r?KN7_{W#$}Q zam}?@y?PC%Po5w~ySJ}Tj55VR6lu)~#hLfY-;=4#Htysbr|<~rOnZ8JgrRI;h@PA? z5eyEc(b?0B6CGVR-PwgmB!*<`1dJcmgx;P`eCeLYu<ebF2#;!qFBC;7mqsR1@07VI zZLE!G=Rt=7#L=KfrY;ca*P(c`!{B8bbR}W2Cw|?|ZT4iZkC@p`!W-3+-uL7KKz}z- zW7W5l@WW8lHbqM4>h4BOF^xa@z2C%`2@~+ezy1p;_wrLW++Y;S6Jf|LRbp<jwz)-e z>-5%V&7LbrczWBXPM;Q|p3gC#TtFfolM*-En5#kOry6zcn-kjEENImGvjzC_8K>ev z0BTtj16B!JmDekmNh48PSFt4&ihz3W9Me$1hy4c*2*!Zk`m^iS;k)1b8u~hpxf7qV zaq%Ep0pJ)5OFhkVZku*h1vEG*7ZYPJ>9c<#`E$_+=Q!zt%^tgA!DTXZ53S>z&0@~@ zRuqr!!OlCrh|=DdOkUSW!J6w*BgjRtf59~_Yn%IgReN@-JxkWTHO9gc8DKqh*Go^J zbbO0bdz~3{7eXW}lBj?&hBm^w+6-8&{8Xq_jRCh6<?P=N@1Z;IuwA3Bzf)XInetZ| z11rZ;>4AkC-X%e@YWyu{Sm}KA97=jqA(v~h1nNS|`wV#(7`BdmAW<hJmQ|JbJe_K% zDa)87(<h}IoRU8$g`kV_U#VrfaPoK51Mhl+uE<r^vnnq!L%LK0`_Rp|-~(4)j;6*Y zoH}(%JT`44YM?<^W2^!p-0r0v<##mhH0Jc+)l=v9^eWj>nXK$X%2T$%fj;azbPRhB z91z2D(M5|fY5pQS|I}0X+V>y8+o$^wX=0g5)b+~U`gQfrEo1H-JsR}Hyd@Ya27$&= zC^fYLhP6%h9d2?r+s<at8FHW95W<nyU&QIx)>jzxa7`_;{e2G2Y;BEzZv2MEHGT2~ zE?K!0H{Wz4-gxd2eDCXDmr^e+fimP{F7Ss)c$T;^{V{n;yLjtUrq962RcquHPM$t3 z#=W*CDaM?}T|?~pY4=M<K8o66pBVI^Oa|TQBK(<t*(IA9p66V~+~V0+&z#?fBN5Sj zmuDd8LowMV_=@IW8oQ5n;MD$Ixa5*GlHb4c|NTF__~c`<FP}%=FF{UhUNt~B#7%5~ zF(Y~}4D)K3lm^{5ZULG<{5hQRB@rGo(Rq#uAT(e?b3*6mHk+O&Vl!t<GtxUZV&9$r zjN-8^E@iTFeuv7|m4@|25xe};$V^=-&sVs46f#;*s775c*!#CVD8&NC6JS{!!v4qa zMf$a;gq=?5m$jng)=zyFCr_Nf&=8pfLqeirE6Qa|MTGY~u>a0x(pa=)DfaB%g)J|y zmrX*BW7U1z3jwLSmsCf{5lnH@BR2M;l4iDyP<Qrs@izu&>wM{i+~xR80~o$~E;i&G zR>h6;g~I~pGTB+4x_y6ITIlTqEr+8sqwg5^;iDIf#<6tOCGzg{7%Jwli9AIjoC8DB z-`uWE|JFsRMxAEQnTvtJK|FHz_k=C-LVNG^z<b7^b0XrZf7XJF@afxc#|N*uMnpe$ z?0Ord46UoFk%=%KkBJecx2=r^Ts?H}5YdCDp{Dn(9=&?*^v;EgnPK5@NW6J|$HsHW z%MuL9V&bKZZ%9u51DC8oplKBT?n~dn{dfNWHFK6BQ}heK4N;1$WXj?8DhAyxTMLH} zpFB$px)7;QphU}Q_;T7Fx(Q!9Gh9h><gPbw_7jeJ<7u@v)?r*}2-_e139|b(3o~A{ z-tky7=`=!(qug%F2IG>;FAh2aAK7CEF{!N{zxRbdMmRr!zxu<^qx0B)@x+{bDZ_m} zF?32VN~AMuyX%@7F>Bre%$PeL%T`>Bw$@fL=tqtoLm=QsJdvm{>fW*9IApUqp_<JW zO2}n1$mL7O_`|MY*WdIZj#@Z*Mg2dGJ{MJTpT?u7K`%yX(3WsEMEpRyL_v=r8XFtY z)zu|seC-p)VbYYT*zn>Dc;N0kg@A_<BPr!G28F*b>tLVh5xQY-Ul>$7W5}JqZCZ2{ zLYLi!Q`G4m+m38cH=tw6MO?u06mxmUOSg?VAFW~mQ`+irYTbjvVusG$RoKfy5^h%G zKJn9kA<TQMdq-mvvg8T37mXvB&v;%|Ok_Hb;`Gn%c7;+T^1x>ykw8;RD}MIGli1fW zgiP0Q^bPjQyTWt|Q!S}fS|T%yx|EowuF`UOXR$YD+GO1KlY8-#yY8sK&!~r6&KsA* z>(2O88fe$(3e~T(&GyhG8o;QA2m7G;dIgbbsM;w@a}2s})90bGY|v3ZV`@f^Z(|$I z^z6;Tp;VNV1u;Wz*=@EUsm8zl=dU7}h~o5VM_Zwxu}RWc5mQyd)T7cWbK$IWA-898 zd3PKZ&7Y6Ee|Q(Z^`(EhKp8uNXaC)}%e%&)pMhNW2(pkz{1gA_|0nM~;N!Z=wDD(D zW=7Jecgd10%e{9y!EqADAwWn-2ql4q0Aa}n*pQ{~!hXO~K0bEYT{?jfQb>qNFLs>7 zHFn$+_qaFNmaX2UnNgYV|Gf9US7)wfBssAI`~S}Gr{5jjdhWUBywBU;J8;LRZ%0l} zt^j#`ODif%i{bTorL1R8PBuFF64BS$9F^20*1($pub|HJOzB*~+*I4g`kj?&dCBj6 z^B~StpG1DiDBO765-fXu6~6q#pCOW2fRyxfw08GJ+s|D|WC)zy9d_7SMxNAfC!mWO zmWz{su3&CEw}~}Rr8#ch1X(3{1%O~TDoYAb)Ypm4f4Ub5&1bAsx9QpN+3~zI69_T# zr8*&W>a3ULji9aetXy-;hi}IFFPnzn|LSMhyn3ZWz$L?+-AL%1n$%2=k(P!DQ>J6m zta$>GbLY&JGaFl494R7}bguU!1JEDrL`RVKwTQn0`)~^^!M0mQSg0i_8U03Pu{2*2 zlD)|S=#k_U0hm4{i2A*!FM>0tPob;572_vQM{83Z9{J<_s6Dzb>XDAUoRXW-Gz}?t zSt{cJu%T02@wFev`7xIxQZg3a+}vnDcLvhd=PDy-npf<iLIm`aD;`7V+P@&N@rcc6 zSWa4+%}j0lv<Fvy{Hr*XT4GfnBcOK<d^e~2WG03Hd1WLT_H9G!s=uIn?>Y$=rG%%F z@sjslj~hRHD>CzoP@I(pjz6Q;80F9tWWM)42Uz%AhBY#00k;-FCP}S;{v<E9y|w|* zKKcO8ojf7oUj#TZ4(j|D3()mlObL2`@v<u2nGAt*zQL%O-_rza({??aJzs&``J|ej z*5$Vr&ksYHW*H;Cb8;F=E6Q-sKiz{+KQOwyOj5}9_V$7G59mL{|HJ(ec<ls66k6E2 z!@WrH+U1PBRz8Jwudc`azxp|jAKZKCDzur7nSAKQ{(m?k;5z>Qx7ho49?<RZG64)D zi;-q@Q->;N(xMO3=P$z7zx8b_m_1W~{9Hpl%8QGUo*uZs&lmf2d1j(D(e<|*@Xd4d zJXPmY1HeXLr|o^mo;Q(|nIWM5$dk|GYv2Dbq>LJikT)<8`sPiB-$Q9|AUm8Rou{OO zp>HWAqr@RDQaZ*0ZI#wyNNvt>_baM&$7^iwc&cV;Ydx`UIYK87J9+FSC8k|4L%xrl zP0zd~z3;_wj~@O_=P+@~WZZfC$8hw>0X*~{-$iSEjX1<n`qV}nrH+{r`I3rqOr13s zqbtfW@A5?`%*n>th9<|R9#y@~E^1?bqpt1{dPCg~sC#Tr@38GFk!**V5$yS!TeEo+ z6P;@<&`3a%CnAz#0`qgL&xHZ%&CSiIKX)2sCB?`tD8jmzU&Pv#E6~|mZ&ci}Bs6J; zic}@IC;*@Yn4E#pH+>d$#Z#mfIg7}M^zD+$<@;(gRq-;gy;1<CFsUDPYoC;~qzRoh zk~`gsleS{#HNgqNJgICF`e$AT|I`KOPDzI^#V(7hYIpPb@{9<4Nr?kyt%OARpH&Ly zjmnV(CnuNvN*v;pfe{JR<HhH`bPtNlMq|$GS;#3Y0fKG9fU^;7sCD5xgnD}5qdMN+ zs#NLs`Gf(WG{1cL3t08y3e+4u=nThz*1_6knmbgYHWRAoh4F~_NQrzb^}c*|L!lDu zx$Y%8(*Jp1W@@C}Tz!dd`NSP48(oRfRpT&y!dP?!!|-}pRnddAR6lw&kH1mZz^r=6 zXVcW!)YOdE-+05x!(h!{i_wYt9cy2_bKNhd*SfcQy?i`7!oXd#!wkE0GXWzRKv%!b zI`J2r=VT<$`zxLER{?Zu)!B8R4R2IVR%R!Yl#QWoWabs&(|3Ilw|(elQFkA&J}V2p zysT7g-3p}f#?Az1Q`&a#7kXuY`f&Ht<4Tm2>rM2ginl!bb*{Ev`nu@y`FQxnE%@g5 zekhW<C#%p>_evdhJBPC?JDl9VxC;KfJSmtFDJ~!Ak_qN2Ihj(F{*EVE_4i>)VU}fU zUAt01Sv=e|zqJkMvA}%L`V4i!)72ynb02!&RVbah5O1tphUfpXOsY`HI<+&uNgXpo zEl-JxD#WtNu~_h~MW`A(4&x?IlZtJPO;+ky$C1$n*I3_$_Vi)rfnCwftmdZP^IGYR z_ok`E1atTE_#843EghZcY->enNeKe}WW2ay1vac&DRY*glynBvWIURPN5_K9jgtyA zAx)AR<=yaEbmmtM0J?%VH8Mt~GO?+fS{O>}l)^j-$PA>Qw7VV$p8qqtH$DqrUyF2~ zrVnN?W0QhAzEr9Fl{;e*k}i8c>NCqN`#Fo;n5uje&<zP)K)t(57y#PbGb2IFA5(%i zmfa^6`x07CI?SBrDEQL9d<QB16kK`v0(eu?(HCZkPs`>(K&Qmc*3;7~QYE+YJ?!7y z(v)`e)EPYg!V0W?;VHB=)Qer5^Gq`s4hh5th&cA|Sl|&4bmD=~h1^3XL2Qs5vQPFz zq~xxC2U@-EOaJ;k3A>y;eI`l^a?sk*jey_lm>*U9sD4B4wZb))nUNum#E(4kC?5R% zZ-oYn*5V>Glc5?e{j3a+9m?lU=WPmqrgp{M#S7`T8Sbd}xtI*tMHs#dzQtb!&`s`0 zKO%`e7p8=!^n_7TIUe8n@lWvHYnNjGzWtJtwQ6)ZMimu`6ihIssy$wdWiwY$zu-|C z<^sL1s<G6D-_+73A#>x#jm6i0`!xRehx^0>K9pp~!@5-N&ZM$E+!Hb~q|BtmC6jO{ zfp-)7Sp754F(msOUm}V#QgQ0l<>=hC*>Z?uQ!n>nBy{(qsDejFGums<N-~-|KYbex z@85%8|Kx{4bm{v*$uK!B6W#4iR;g0knMZTNGvUbmMT;?M>NKghKBl4^O)V{`vu%Ru z8R?EXUdzw2ALjS$8>ZwZ)#j=`H{T%<j0H~sw`}nMo%=hwx+JvC6X`{LQwtaa&u=|_ z)=acDHsTMzyB7y{?+~d}`j^n}qy&|DZltw!%n&){lJb>+-d{1r`p(i3Ln1dpJ=V7l z2EmZE{FEf@`~Ck$_nr;#1{>r|h9GGOlf)M%XIWJT=Ut1$+1H?pSrT)LfzD1*&$5Yg z9JM*_=l1j>Jv$5S4Gk8c)3d%X3)vlYPN-aRLXQ&@P0-0JF2>it`$Kqoy0LiC<x!!b zWP}yi^|e$z%zHci35QW!REQ1R-oW!uJ%P0=o)w=AjxRm3hl-na+oUh{+JC3+r=e+l zo_gieeD#B${8Y?O*DhTujFQqI9aqxGc!CXSD8B&#oz8Io>tFvD*1z~nl-K;*eZMHv zhAWhCNMJV3jdfnUJoIm+ziOuWpAP0iW5hxCooqIT8mpj+4rpF!CBE^kZ{wyLZ@`+@ zHX$t~6;mgU7mwDuh9+6)nHd4`Jdfw>W)gfikPjuT>-|P@4pr`IbEkA3?rIl_gSIKX zzO}U-GiS{}b!{^~_st*SVD&j5+jcs0WsEap&>6DE3Tw2V_ot^@4ogbtNoY-iAM5+^ z98*QlbNc&GnU{ssM2M}m`@lA_g*y`Z2*BKLdzCR(-rL)Sa4-yiZoW9p(P1vb8^O)D z-iF0<r{doK_z||OTPtc`hPb5{l%l=vtn^kK<!p(THJdeZp`x-9bKZ3&##fCIX`{WB z{tyY03`m<g$64Qaup~in=l<b9-W)bPUn{`5!{_u|I&M)dpB6|HhrZhL=Wwd}jFgSN z?6QTZK2?o}fBzetJ$(wHj+Q8i%rqmgXbF>>Xbtp+ta2n&O+`DS0^)s7sz+_rV@Oqy zOa<E2=}5|lAOAg0KKWa)jHcNbUZ{1s6DsE*f5`_>pE1e`hgAOz_j7GPcb>`0b)1W2 zL_<N5=&zYI9tYQ~!0{*li2mx`@bq+w&0b^1nK|(9@BXr^hb!jIL~9%Cz}x06JA^dW z>uPu@kMVawK>=P`w*im;=|OB+`;wDXil!ZRxl(t&@^_NFU8-kk<u*s?>Fq`7*eUqt zcfN;UTQja*dX1>f+0>^<oqUHfBl3Jk37tN324A@IbCNtN7FY^c7>RIVsi|XWNKB9a zc*os9I$V;Wc=x=}{^@<p1Uyb(-iliPQhodjxbI&D&{aZ@^<gseOYrUQeP6)*)vY^F zlAnu$yc{6}Y+@Jc>lX=K3Bv`v??pe=;e_p?393%ikU0W=Vp=xJ3$yW+f4>h;J--6| z*`q9HGtCoksNc1NsS~H8D=}at{IJ7N26cWUz;0gD(}OAb>FDq3kR0v=bZu^xJNKJv zcMl!im=%xv?T{ADW*2O%hu80g$Lm9=v0k#wQCh$4w%f3G(<^xV!TX#TZk5zEc9zm3 zYk^DiB%yRnB_>Q5FJ)O5%$tKiMz+*i@9Jn3P#Ba~z&4e*8N0Uv>N*y&z+6?8RLc|8 z>19u8JvGHAeL8Wf8ix)YM&;-VjIA1j^Jl6>nrx`AM|162C*;zqpPgWZQS}E=G4o1{ z{@~~EdPgEUi^mS+7FX$588_C2@97;p7m^a;rH?{WBW_$g8(Fo-@zjt1MRJWRs7q)U z3zc}1kWe^A$_BR-RG|sU2<Mhq08NmkpMmi_jt9Y9v<CF2=;{>7oi<u};#U^tVQgly zsM{HT-d}rM!Wd~oS54aux89Bgixx{t-I<fdMFF~dK1XR>diw;J6pT3TD^{(?vWM=+ z!Cl+LPh+I<(nG1@M`A~JpEI0|{p}u)MWlF7&9=voNoL=>`ubZWiB?8#E~ZSMBhJ7k zBgFf-eNpt@=6WHZ@7S{sU;6t`%R0RzlB#L47>){?nfhX#8!MBa5T?O}orZgq9*^sk z{Wk77(q~`H^WITF=b&jgh{nb`HV->x=sn;37C!XBo3QWTVPvGGiM^cm9X6_y=<H!~ zpciv6F7#ds=5EHqTtv!vOq((ZPp^0d|9bCVaK0tzfTNSwo%6BNa$fRe<RZ1AQWDBY zT(ZmK|3dpIggMeLgn4vo68h_FP`6_PLT_$^FD(TjrlZw1gbkelE{=PlE-NdZFVRU; zYXZH`(~F*_^T_fh;EQ+PjkKN?{OP{mV$Y5@oLb<f8dx30sEXH|-<mp>$!H48N5d2D zlJvaH7{?aN=fNaWCZLZ*S~n&0SZa5Az-vOA-UwsRBjR~YRX)?urZRP{HyMWxAHlhr z8Y%cf=eg50=WzP?Q33Xby7OpjZnla7^>+yYn!aE$s&4)~Hnn?DmsxJ9y4e)KO?!H* z51;HsdU66nb#+MbdT__pGcY9w_}xE$8(W@#LJD?Bx>P`l4_*F|PocYL3^pG)4sT{I znpoeS%%!HUHLK>hnF?DQAbo6W#`Ozl;Q01UIJfp$v}}6`k*+q$CoVvX6e-<$*SCIz ztgKATpE(WXrNyFE8;Tj{+HoJJCXD8*msYLDbB`|*FKi7plX9h|kA)jJ{-+V-Sm|IL z)UncCOEH*855Dlt?}}$Tvts7c*^nldE-NpC(n$V}CHN@ttM=oW6)W-mf4b|^$Da=; z`MPQjL{0fv$A-J#g%V56HxLPfRS<_W>0IdTFZKC<6+qXQ(pXg{RA5-zU0?nhZvD{B z*md9taxwzQ$<A^(PEI`K*v;R=4UlQ0i#M_L9;PbLy>GbZ@OWc53Ax^0Q2ma+5Zc>2 z#D-p5-z1C)W7hBf$?vdb$4+#o<iV3>S5-3O(K}k;tD0e@d`-)>;*x25z0e}!+F_|l z+6%8g1qto#606J*Bj#{N^?{fUaRSaUJlx%5-~hZ0^gOQn2=?@#XAzA>i?76$OO~MX z+;RN$M?XTOy#~HyEh%YPd^8aWbEb<Ye1cEPveFa2YSL7ZdMnDyQQy=mvEgYcww;;) zz!b3I9tk^RPI!WTEQvkVH&khSIA=K8%?aRwwKjmL)Xtdo{=Qy`UH5wv5e)aCuI{`f zyJ12bde}3sJS)3(wKk!vvjc4{EjWJY0CGo9#y|a^U*LCp&*OMP77$2BsHMg7a;I|` zwKK7b#IqyDoJddg3#ccCI`Q7|g*bBfFpj>yRr*_y?nA}YS*TjD7#*G6cyZq`bR?!& zc5o6f^ZwKvXi^aa(7l;C2(x|wkA;F_J0D$AfUOVy(y4!Lr9~acYfl^Rm%sBvi88oq z!JMe|tM+sEnsiH;{GZ{dM~<Jw3(r1-<<C8f#+oxxiDIIXzl<Qg>PXh|-|RVw0f#C6 z>i2$v)If&iY-sxvnU1<{vqdcWrk?POKi{@#<0XA<b?A$=y%Z1D1UhD79dn=1o#bRE z*%AMz!)H-RDLOkkux7<_#}9_SK$k>wagksA9S3wx#2~3$g%DZ<{ez$Q6z;zJA91?o zyh!GS`8jCr=oWjldy(_}Sd-P{I(3{l(W$PZ>f7yr!*fj4_)y?)-rFQbvHB+WwIvPZ zl(}#iKmYKP&*3*uyn@D#5Kvg=c)DAtmJBr2BW=nobOwqMDJq9IE87C}ku<ZoxC_v! zI%V#ZDY*e0+Pnt!+c&-~5BFHzQ7~6vr%!-C(knUPSrzK$PkaVbb3FLTcfW<2lSkzi zoCC~$WoE6S(+{hWQG%rjree%kiCdpEWlEH7UBT6#;<v`z26loorDcM;O6q2RP20NL zW<C_K^B$(RFhSm(2!)_d2Rq)!IzNJr_7-$?2XVg6c0lay7I5$DW<L5J{Ny+H;`7hE ziOmh&P8C0ITB?MFwX;ZzS?NuRh-iVC0q`U!Q}s@!E!0pWpi5>TEh8Oy`T0om`_b0i zf-`MxRz!oD`qq@n&9b4?I`sD;Oz(JlqIU<8o|%q>mU>*fa29s1ct&b*N6sBXT2Hf7 zE|h8P^P#=7TTCa{y#IqT9*Y*tjw_kF*Oq(j(0<Mw56hl>8rwInmuIA>4V15CW;D%; z7WJKN@A;7|o&QPaFsmN3=6&>&pAjbZiiPtA(Mb20Mvse?{+b$3IvJliUyCQ6dIp+7 z(VadyUOHuSKYweBmwH(<WomM#k&byJ$tUTZlarDVM)De^0{{RZ07*naR3g0SbGGI^ zm|Mc#sL?g!@Oiv1F&T;Uy|7FB>NT0^88~|Mh@_9c`kHI8apML&_}gDeSgPh8_*)0{ zzbc?peME<-(s9%9-@o{Uc+Jw`ZA^Ko6!9p`$#62bxxv`<kc|hhs-oB9yuZe-D<><U zGK7<ksaB5#>N*+R{gH{|lB&x_mEyqB6ZqzTJ%EGz--NfM0-;EfC8^s|I@Ruy@>TP< zGu5mi^^9~83_33yLP2^OCZs0fz>3GvcwmosxW{sc<FzA^(Bpx+TyKZsaZ6A5)~05$ ztzY-SkKjW~7vj(N{RZn_ULlTS8n-Tas#P-(>T)XUQDQF{I}y|7UykWhCZepo0(n`P zXlQ9gXGf=iXDsKqcw^;umK)9y&b*Ha=xR@AG8#4}_b>sTVRD*QHtf%aH`t7}hz}{f zZBjL^yR`ugE$z7OtKY)@Cg8tTY(b#79POM7ZLRR-GsLma0#g&n`7j%VeLX!0Q3cN9 zwu2x+Ser6g;#5hAKP^pw-?5t;_fm=9mzE}shSTi%mz|!0mXn8Y%hi{o`N#ph_SpSk z9`{j^R%Cknk(!x<ltha`@9y(p=Iq&4fuzI)EV}$MQ3tD|mbw0P4Z0a}1)Zw$QF!^) zO?ZC!i>R%uM`1y}lhT={4b3@Vru22vEW0Lw8-x^m{wM5LAY?J3WUm*cMTJs5a>1-= z7V~P*8#hgKuLTp(X+Ph({dMFQ6vRxu94j5OdmsNdn;8yjhKst-(PQTMJco?2LtE_# z6n8Yrpm#DHWZg-@WRBTPws{?e0BZHLFcgoSKYJFfElrp^cP<*5Tk+ff`gif$pjJ_; zN)8c5`<ChRMY`}E1#}LmmOy2!xu!Av^j-gmYp;6`TG~4>d&&gyWM|x|8G;dOf(`}h zN+e828|D0+iQ)>IG1Y&%I5eHC8`y`sM=ZibZ}%~kqa{u3y?=TVyAD_5bW;n038~1; z&qYgHx8*3ODPProt~S*R{otxPRr_dXr>IGN;m)X(uNUIsKGH6@C3UGB=S!5l_Td9t zP*GYUsbf3ps`2Ze{upPE?w3$6O^3?oXx(UrFiQE-h!=tM6wF+3875DjjLhsDOqo6d zzN92HwY8(OvrAOr3ho4LmC|`X{%@++^<CT!a3ht_HBBkON*nh{-#tl^{fuBvRXl%d z+&lLX)H6IGM0$guJ-#lj9AlPVjr*V9j$=(-@DvscLnNT9DPUFFv~!Z1Or8LABt}sf zs_QAKQ%!D5@Q(S$W?~0@)80M^pp$3?nTJ0SKHjIJ9g)rs%qYvj)Z$z`{qrBAJU0_5 z-7U!SGWBvm%F!~6kCpBSt`o+O6Q6>a(<fu*qzR73ZK!okjaEl@$kEKPf0WQ^<K4J< z8(PANsK`x`r~)=VNAvMB1#q@MK|sm*zD5b&SRiDU=>1zi&UexTN!eN1XltxPS><RM zTc)m#MU&zIJNI{Wb)#(5D2X1ZK64g%xp^a9;v+s!%~4zfZqU}7=s8?V1Z|<+E)Z9Z zmj%pL1dGYU$BJZf#v=xh^BBK(LXuA$Zq-!BgkWB;566!mLu*qbN-HW+TA1&o8<q;6 zc4om555hZm;$I2SBU0Rg#a8BBu>}9{B`d6D?3gNabhJ4s2|3{?QM<YMk&cfkne!S- z|Ehvl`zP;Bl?<DvM;z(>M{=HqvGHB#txqZR-UlDW8@t~`+NdfVJbp@?<WwT|<d(o+ zQ6&jwk}D^ST;1;O45eLyfNsMfOdVB(z9YMEaLr1wpR-+T30=Dp57gy&{b@vkow(-u z8}aT%3-Rdv_hRevM;-M$PhtEt)m&r%9Z>I2fG^dL^vrBbpEX;YfhJ6wDS51!9+b7z z)qbu3p4cBoA9KAMQaq0_E?QH(j^sP)Iqn1<s&+Tk?<#c=Ea(YuN*ke2w<8646Fu-G z`LXL%J;EguP_S?@9((asv2UkWO+-73<b;A!vmj&?ml@Pw1$pxT84Ut5GyCy+G6$5j zJ&EvoB16wB^>$BBg|FY^fH^Dly=(q7Jo8`w2fekYF{3mW{=Rkra{_F8upc>@sp2<~ zm0KY5z2@{uELn1mBs*aivz*L;0Cv2!W-{qqJAo9RNcc}Y^E{56s20;%W_CW({d5qs zoH;cgKfzoHHMctc7xI1oR?k%ikq($-_VNk}aJu>wrca%Maihzk0DUCyplWC`OMiL( zMRauq!Su&Wr_8L2Z*|K|jjAy*`!SRR&+~=@eD^zPP6=)RtUy!0V>P$NE|$cu*O751 zP3i9qNttYh$TAmxTYHB@s}$trqIgu9FeKmm_CH&>CTwTR;UXGF@+~grIqxW-v*ViW zh&J@Rk_vqK&bu&U=1i0n<O|qxu?GSfXsWM8X>oxgt;e!|#~TQhv{mKKm~|~XXqHyx z_4J@+>O<Oa)dN>2dn_lC3mJTqI9Y_p3d33R>Lxt!(4Wy7j$roUtI?Yjz_vYmE%keD z2~x*TwFpzyR7vt7(w9w)FKC;T3}0fRfB~hrnMK(+wP_V<w{3K4pz}E+N%=a`_cnoC zz2JGRniXhQmvN8uqW#!DOdD5*8$bS8ps5<a|HXfbZJkoL<?%j{6eS_qkA9YPwZV&3 zrnm?%yJ9hNva?Z8T!Nxe<wy-!MP_=#-C|RZ)l8MU0z0<~{PAMY^<D&Z0yyK*hssiC z0=r4jD5cY`&h)bxSy^aH$iRau)?n<rZ$b9BNqA+;PPBUbKz6PL=;5FhI;OUCL;Wt& zIejb?)D5+}qi)x*v{=B;m*O?H1|Z#=Y}xJEQUgF&hlI;bA6Jek0T0%#cn;_G@4|wT zOa$pb6i9$CElU8FfZm^;hs>TPq~wo6ZfcT%&yvNLi!{jet;}dA1U!b5r%H{~&ha?4 zV`K`bv3u-^r%>ByWxq24U8QqY%43TKCT|Cz-YT$NitEhu#d*28XlQK2;stZxlF%c} zQg*%+i+W_)UnCOY?KaNmSWRm#xIsPExmrjjo-}Vt@$T#0;69ugPC=eUp}On{BZ4_; zG#S)zpGQERLc);)`z0IS!kJU>-GBQ5UVh<O%UsCfUADi^+a14)as4|E=wgSkQ`uZ| z<A?CR58N!Zu&c^S#lEHsnTwi4Ko|E=FY8vlEAgN-5TN=n*e#__SvaMYIml`6w23{r zFWR9dkF6B-Q*UpNBxum%nyu<W2is%{$XHO)&~Tg$TejmjKl^W-J#`vcW2a-{l&L6~ zFbk_*--Ae22@=aH(Up{nK*bo#p88gs+ErUyBq0a^efJAbBXo4P1L(2h&-u8wYD0H- zHI}4KaHp?8N+1osrqk$dX~YMvy%O(v-*tHEq5H7%nI|mpwi}aaI4XGCnUaU-P{{%v z1!ZHz0V_Kv2Z5{{j2>Ny?A%<W_y?S1!ae;0@GR^?$=tf$a4L&2#%^g`ZRTnxC#X|p zu4-Go1&NU!V|bgpF@~MeIX&~)f+=}8UVR2@kDSGge}6aX;KM81_F0LAva+1Gf5$n} z1<WFGlj&3SKeOhM0o45Urc)g?Hkwt>0CKaB64y>GNw6C^NeQ@Y;%F2ggctt&5PIrs zP@L3{g3L6L&a+dJkd~DzV9r)lkS*T*3J@gn1axi6WXGG*riqIZ{h0DmIB@s~9$EH; zL<rDMpO>2>mz(N#0=fz21aZyl|5lgJ-`aKN`%x>x`J>K;7ur{jGqdki*VN+4r=G&N z@#8P(7H(gWSOCoR!ZoChqNX}se={n?RG*u_<7M`YCvC@zx#x?S%ml4X{Z#7r^}%b@ zNYHb*o>P2YOTg>tmGINHwpQ#vbObqRe#w#Y%yZ8VWQMfk;@ufgFK9q7(#h{Epi5yE zi;F8BU5T4N`Y|WfCpq`w7JICB=A!4d$_NmEJ370NlV6DPQAJq(%328zI)3zs5cK-G zI+4b;{xZ3<)YMb~gM|wh;-j~I6xF9rp{c0_fix?AH&#=?c6(5o=bFcqP;t_&eCZWD z_w-ZPvwa)j&44G6g-P$a24knq#+yCKI9A(^oLLJH$;?G(zXv|X5*sZ^Vo|#hrusC} zCtJ2uuNPe`A!~1WjOTh<8<AaB4u5L{j=s7Y;r*M%!=33~Jw08Bq*?^>Vu3jC6${99 zzxgg&=!H4qM`xypZN2&I5&ZJU-$%pQ6XJ-%rYd+QWnt{GDY4UZLmNEPj8;}vAv>=C zxjES=EGZSwScdkbq^5!1@X5(kfm@523)d~hyNQLFWosyp`B-u6rrpncXL`QNc=raK z>TXOcyYawj96H;8>%RC+oN4RAhGX>z+LinSgcB1ijSIiGt%~P;M4cWZV;-*=1opf@ zO)<#{fT+I{<a>qMTP2YUJ?z_?TQEA)kGYe_qW{!kyuNWAdd{6fnLi@+;tNwFVl($K z$w{JDY`a-`1<q?`W@gI1lHy`apEy<|8HRD1)xU;XJG>FsG5t=~ZrX~~tJgT{cB=KY zk#SJTkdh!7rMKJ2q$xm|s$l&cYoE+*JL<tSzr^~@eQ%}FJfn@$C?(JZbLWbgGM))T zbLG<m+&o7m^rMH~6o<I9Kn7TikQE4Z%V(Lt-%6j&Yshr5+%cQ^JJx+w;}Ywb7FJTt z%SigAU>!>XV4B4AUK)m)m63*)woXYKO`n|Fx;lwi`QZDm70uCae)$W$wr;i5N04Uc zml#Q(F2y;2H9&vYyWfkeu3mzQs<D_fwo+8>+BosdT+V9ab`OA_$H__wm;{4rJ#zJI zD^{<^{=K^;vB$yvdvWgMVcBoy24+$dHh*Rwn9StMU;k&!ojDCP=g-T2G8t^T7~Fj^ z_q!LBNwCb6u&=D$fECX?f$baC012sdvzPqZSrcbs@!#EvBcVier{y4!lZVds4oTJ8 zNqZ<W<(ak5hnW#weUNKCsR85!Qc!<jHx90S1*kb99`3Ax9%Pm_Bju}%&j@1BM>-i} zO6WF7%eecJr2-vQvn=K6>1f6$KJyvOpEw%#|MI8UzHy_KIyNa8y+I~pv2u57MKb~} z?O0OK$IkB^$j(C`D_1~0F(VHZqe>*vOKQ5MR#Y{u5*FFUsK{o%BMFfb8Tapzj)k5_ z=dD0Oj}SK!%tU)U&UYu^<?Z_r@}=VDZ+sW$nmVz3=V8k;JuMSqGA?RMCx9n;;fwTH z4s@ndoD1BA2{5%0%(BMT(dO9L<-6PQ=Yif3#*QjNd0qzgZ&-&D+g?LXqzjn|{mAfo z#0gGJRX(5d>I8QkM{e^A3+4T)s;V$;TzQlqjH&&K#Te__m)Pn=A6{9t3I`7#!O1hV z$j(d?mAf{AJHMwknlrRaF87%waxe5d{Vkp^NsLnbpvs+0(%ktAB}1H>PMP%6{T@2z z-poAg-uXISd1X~p+2~90-ddTG_og3&`TtPQ;~Zm%XRM~j%<bFidr}I}+YK07H6`)B z{H-}95_*FeRbGMIf?~Y3ZWUf#{R&!}+Q_9#E(Rwz!rSW5g<t$v0rcFGQMmrb4`AxF zX_zo!qDa%^GKJXMb$jDYLeqiGBnFIEr>dP203AJEczF$W@7RLVr%z++`qe`0tx}S7 zw(1wV2ek!O8bxxAJ(9)lGxvN0-~QKc<IRIM`1kh2lq%d{?FM$Y^kJ$J*KgWt0s5<} zoSM;0%ULmP4z9oZU$Ohp5xh~|f+T+eA}Q(U?Y302nW>5Bj3l71xmAv(rlz5b={TkL zek7$N%ek4!eQ0YBAtNVUj<t66AsIpBCVSA)RF9@zR?1fg(1jBFFBy>Y_Co?Y!J#)O zjwnfO4QM`n+(|}rcHb7<_sicR8J+0q@i>{t2<lFTIq@Q=`rJ~nOIlS=lEo<bQjweC zgD*AU0DOMB9|<YxgFuPb#v>jVzO;tFLhAs?x9}#TrO%SUn&CxFZxU{}{qK>OlY=eC z>v804og{&w2fAut#8J-hN_T*plDA9>JAZ)!xT{NE4GrpU7ms=-r>V#aU}8}gTI*_Y ze8*<A9NQ0Hs0)EmJ9;}?<qjF-67A;or6L^a0>`v9oFL(A_3c4id-WAkVQuEL$&w(7 zdHGe7rq{+|+BI&N71(G$r`q$8C!WQLlc#WC|3T#B=Yr4FMu7i+sWrEDV)l&5l4yy} zpcAXcM1lEGS`Uslg&&Tsgzx$@uyylm`2ElS6X(vJkzpK;vAx)1-DhWhbl*48i0<Jz z`oEsf|6~2Wkp7wX(Cc(xtYbXK>_;frh0NRnWMpKZ?pzImtqoFFAZBj(3+dR~IQJa~ zbb1HQTf7wSx@rj~O__`-lcoxobCPLd08>KONf_%Ld5wm*@fxb%%S#F+tJEtmt;EjP zcSK8g-R+V`oA75fs$VS$ojx^G>%QyVH{#JhKZ>o}c1Q@0yH7(UFEIP)PH3PWyR@Sd z(4SuRDE4l9RWhWpNj`IL29k;@<bQ8oF?@w(5*l>4re1QS%l`BX%XzNDDlzJou49gq zFICdDf_7<2<5aiP>tEBpj-V*ZTb*OWN$5@ucw0hb+SruzbhMp1f{e6O+;Z#3kP>de z##Jk^Ys(fyI-A7Pozl8lbDjNT=0QsG1b%YLh=e7txMn1j?`%})^Z8Q;5sJ6^p0Td$ z>Fp6OcW%wbeM%fil=M6j3ni$XX{9I_KLwSu79eHZOmUX0?&?GR*>h-Wtd}SVd1s$* zu*bSaHVpAHj9+J>p`?@)jLywOe!!2m`UZG|t*GC%1&8+Rl=Qt3{<Sy28?nqj`ab#& z+}G!`7{|m=yZrX{2l3Ir`y|GV8;3cJMNdj}0A0;$Dy7F;PvQ}ulPk1=Nl*Cwj~(0( zezX5qn}W$rw|zp2RaI1tM@d1BXg`M1V(NHB0eV)h?0)Wr=ke>G{0N<`Esk&_<#tU! z4I>W*1))S+=u%CYRJ&uv!UT^9N_yP<J=8ao3XCis!~{mP2-&~Y*NU`x&~KU(wQ{3z zJl=COftk{K=RBq<Hu@ZOy(dv{fl)S^OJ8HqC7UJs#M@o7UTSG%1$9{)q(ARq`LlN( z&;i`?i90Z9@)YrICjc`~vwLBipdN3snt-kh0W%+MetjqY@S9&bmA*Kzbh4t|m2reZ z2<`HGG7)V_g<jPYX3WQ?&97m_D{GOPmFX}Ha*e@s=!bXrGuHn+*R-Ki<*r30)a&0_ zbp2E_S}J(IKLI6Ury;+j6xFR=IDh;E(A5m2W?SKA!Pu&(;RqhD)pjvG+|B34v!U}G ziMKaYyyiY%ARWQxMu}UGghNunZQPg&OrJ9wjm^zCwE8KW<v1`STR&sZnLBF0Zpvr| ztpRS9D;2=8fs{TJ@fy#O@~$?KaEQspNbX}l)LkQ93)Set_XV;L_E^A`Gj2N4$4*7Y z_?bv98;9JSEO=S4rXz^1-hMI3v`|GzLTLL{M1{E7kq-2yU`z2tke1*<ZmJilnVE<* zH=?(*9WC|eaQfIGq@O*2P{VmNpRW-hXMT1Td2x?fuPh+TCq^_PMhj%5gEblQic2wT z$^<#0+Ot^YQDd!dY7FSqdakx!QocU<=SR@d+UVrhj+flSU8(Cr%cq)!qvDn5bnhQ- zy~R6zA+@_@jc}}!)9{5a-y>mEbEZ#qByP2l$1`E@dTK8f)FqOrsZku_9=rcuXenc} zuLLahd2;V}zmxQh0QYvAt1ydsU;Q1cPwvNRU(9RtePV56y-%!r>U^iRmw8m!7;ys% zOj3H7g2V_jd%oSVigEor3+P}?l6>59+s9E>F&ft{UE-*Vq9%;3=2n%Q$yut(NErZv zEH#UCSfJXSs>_ESU4~^3KZu5!Q&P-;+33hcQ35xc+F_N$<YF!!Js#^fY{a_F+fbOF zKgi*3ID7t3PCuHRY30h5c>K?Q#`)uK3YSS@shnK0-%7aCXUANJ6SGiWS%KnlQ>5#= z4<ARUvs<KVabyYxCG1R`+mabK9CV7U=ss@Q%;S1Y4%q5;ExK|s=UF^pmt61tt}qv- zzO_BSX<OG8Jbzk#PAo4*a%MJaP8>tW;qB;ds1r$?328KatX^XQd)P_>A(2`1Mz;u# zR;@A#7NrtPdvocVN(pr4(*h6#C?^wDgqh!x;9;%ut~PiAdGL&x34c);(#tB5UQ{Z{ zFIa{*EjtInL@&B+ElWpFA5!{45)$c6@yl<srG>gAxlng|E5h|PXsbPoj@t8J#XNt1 z7rIX#M1*Bu`>nOY`sOTsJ18|T`)IdB&p_^c0w~weKYi^RNKVVZ-072@=njIq>6{f$ z`$jNl+&aTeH*DX94Xa<qGmkzfYeMXk9!3#FgNOMoO=3RO*EH`l)IEm+f{_A-8<>Wh zWwH9keq`nqNi|9~mh08X8MUFi?@Riq%@mpl=;vzA;IT&^!3$44j&P?H66mBjwbzYv z?Fa!o)_4r}u5agf)Eaior^DaTT<@_M7e`B>;lg%Qjhbj3=EVkYGijO%7+Tg>d-G06 z>X!u2<8sN7eoUM>AB(SEg2^-I2=^XqBASzsgJFWWO37|%Io#ciNfX9l=l(<Z?Jxct z8&<6psoaba)P9+tJF5OIfRfQ;@%-}TLP*9`lnbDf5V@Q7Dc;mkZdkWHJ-tqT`aeIm z3{O6EKWKwtA595OB?{BN&q5_Bc?Fn0?{cK%6yfx-BREmpB3|nL#C`#FUuHH!t<6?U z`4BA%$c17Lc+OsGXE?K41bVIiKB&7aE8E>}rH{?Xg}*;2j&o=}Fa0gb@}sA_8@()g za&iy4TUj)O4s(`63hQx8K6pBUc`Q|+lq|I+2!g11#*5TranmGZGFOb^9{e3eSncbF zBI0t5E!mh7OVl;CM5~~r4m1PvGkHMjr7r-Rt+h$a&PODWjpUpn1PTg~5XgcjEfXGF z6&>+gs(8OI1;Nn3y!9|#FW7~Yo-Qdo(NT8}o|anlw>Kl)-fBtXot7C#L6eLU$BAZ( zs5O(2Fi--PRjCp@(9lB8<!SR5;|pK@vRuL}X0bGI@qmWca4lzMri;mI&AM0d?6c2W zelYg?us^-<L`jcIXa{X=Mos-@qUM51gYK<sLPklSajsEyvw5z$&-B|FsU$1f0vlLW zGAyYm$9I1G6P!MA5;wf>IvLxjb!FSgP4L#SR%S{=*4Ay_jwc>{7~9vZbc7wZ{ntsH zBH9?MKl)z!T(_#-y`Dv2;uO+*7~0Wzq{?}Bm3ED)YEj8tT>G{E!)>GH^9WVq`dq67 z@_=KmTNCJhC(<ICFeu6QcDG;Bxb;g0==|{dQIu%%qtbqU)zWu6$z<FTuL;;fT#N}C z56pR9M^_LtCXU6*bsO=}?|zLP8&)A9(JLxhw^zGzPEj0_J=rK-{N<^qv32KOOqn=d zob)vGBi_O>7mWTk)mx%P=;@V2Im}Ui|AP<XnTH;59K3j6Q-w(TOcXE>0FwOT;8k8V z4wcjA$?*+u?148i0sg#V$(0^uPdDPY<1HH5e~AEHzFmweZ00^aCvN`?iCxRgGJah( z2`SwTfG-7+j#l)vHlnY&9+B=AW-W2RUB^+L<&rYowmvRQx6R93#Bqs_9Vb8NxSaq- zL+za79x@LkjJ9gdC2cCP=!+!FIXpKh5`w6?*;ww@4tMl;{bGWVmYyx&Gc!E}AixK^ z(B0FAgual)>;*$o{jNV8LZq`z#>&$}6V!kdM?y#fq)vxw4-}$A^`dR>)OX>SsVRf| zs1>>P=8xf)kA4IhY3Y)8pQ>GI(9|5|9;aB~L*E!`+n!(X5}tVMQ5@W}2h;?Z#Ip}9 zgwreEES6-cbSKt#)Ay8lVShi9DT#HBYV_R49KhnehAMyRI&KO+Zec?|wHrj{Ua=IP z{lXW~#-uWfE_awEH*Fjw@PvEh8^|~6?w0D0udG^)haY?p2X?<MrbzeuscqS`mFv5k zG<7J+Q{PL!PpmDUqfDArR$ITTwI%a5z{K@CHfbH3SX*~LO*4snbK6Q6&+KubG3Dm> z8#EqdIvC9)#HiQu0TO>Mo6(6&05AN&B>{A2v3qRE#}1hxP+fcThp~9cHJCnWqQrT} zQoD^5)aAn@C8N8u1DWaR@TR6?<%$=q81JpGI*Uu|uxq~t0lHmhmmjfm;tc%p;fJwp z+jh*KKhM!1#M2r$?`kt1`oG4*o9~#Pl`f@WANk`Sq%@yMLST+#ropwONs-JA^{+~M zk}5aimD<)76DPr6P=Vs20@Ss3;_&Vr=+7>-z*!yNv?K9=-4&`PbL|p`tC`bN?dT(& zvXs`Dh=wg_<C;@H-gfvC?SlbY$!*ngK1~>ma&W>)V$_#6C3Pk8rpoN1s>_Ug3>sbG zfOQN|h&6vL0%c3`D#bfgjB)t`lD#lE#xb3D@}8^=$3!@GMZdW3?5vSQ3CU3cW=eFt zADQSo{_)Ggcutux4*7Yx5>9HG$fD+fOQPgD<J!@zaWAZRQ5;BXs%zls?{NGj-2IFq zsE$+{-<BEgd#dx3%o{uBf&Lavidlc#U3-0`liAP=xq&g37SRN!+wZzZqJwBdA6-@& z727`&Q0H9mrlbgSwPxLVJo?}tas1FB5g6!`!bS!%RukruG>8tT#+*w|jyO?7TxUF% z=&?*T=Dn0T)qCsxc&<3J+L1_l4}A`g%X2Az@L4^cL0f9DXdde6A6#(_33iyK2pP;? z*elyXjpxzSWSnn3)N9p4Fv4xgNJqj!2tz%BmS87$qSmS9&>PZ!F|E4Hz$3WTkf&Ty zK-aW*N-Wbd^YO7y-yz<wQ>RXK!odb;jpga?26Q1jLrCi6I2roJbg|F9_!8DEe-_6N z?2dYII-kh|v(<-g>0F5$)rH^t!4Gig*eS#!qig^GAOJ~3K~%}YL}C=H4cAXzL#dpL zM~M_|f~#NKjz8V^TkPGoS#E0qw#9XlKoiUdBn3-NtoC1twWbF*$0NH0<)ey4T2Dw# z!@5=LED22}plgzuAnyiz<K-?UpzCdilF}~()Ty2ihAg|O7P0Yp{RoAFj@_N0PcQj! zdz<(YXhNP~Uj)5&{I*D^yvE&}8sLVXg}JbGp}V){eawZg_lvjulsG7%7;4LV*fwps zU95gx2qiGzVW{i$Iqvt0^*`?u>Of}MSbXIRcZh=?>vYR*J6uZUyX{ySYpY$MbWYk) zQ`dwipMC~Uu6z}Jjc23Z+aRt^{dT><NWO!4eXKEX5%3WYulu^8{vT?N#CQif$^P4S zzJ<DmMqIJ@N-+o0WEo3C=&V13Zjw&2u{3pUQybQ-S&gTkdkNLYj=+<i=K$1&0M&@c zCC-T>c^1Kt>sGgVEAxK^O!G1QNtRUXP3%XHogLCV?)Eu~>Y`0Uy?%=s@EF+^S!7Cu z3MBfWRq#RyKBT(%iB9;C2Fs77^L!0%xbiZjw4B0ok3Wj;`Wm1=IILFZLdN)#0J`H@ z8tETUZA5^Q%JKNjou5Z$M!EpHa_utFnB~c9fw|dY0jJwBj!rc6mf!W}A-wd$b6D~0 z(`e;j*=;!6xoO|L`uZF3(NBCruADM{TwFlEkU{3TrV8<ofA|Axjvll^<`_0%Cr2Tu z4=^5<@=2MY0ZAxXLa&4qP4FUX%tXwbJ0EFzh1j`oKU$iaVkV1;*I$D8rFMps1u=yB z-Sm2o2lAQ&evl)btk`65VTrAs(!1?gr-@P|WY1{2NU4er+6<B&_9sVVAGiI91JM9_ zu6dm2>AiS;I2exlf2cXa&_gmG+?tL1;x)ZLx6+TU;iDV|`ApEhp4cx{{zRK&H-D=2 zu5!;9+8e&7*=IU6%K4!_Cn6!Cs|C|5N8$Dl-++etIxJo=%ke)^6Vyo7jTBKzO~>AY zN3iUL)!4OT8`=~6PDVp>%t>fTVBbokUxxT`B>5!|f^Os8Py9I43>3$K^R4t_B-eCz zbYek~AD_7S-8gmf1eRQNrE?kSpQavg-;1=8$4%PGl&`xF9>a>4*J9PC9cXUrMs9Ht z8bcoVGSXu^t8(7F#Uy+V_}Ta1|K`0SJ;4k5hLL1HJUw&<9{BF=|Kp8mqR)rEPzdI> zs|SOCnAi6u4bE{8N+3>IAkVxXY+e0Hk|0Z4kj}n#r9(djk^V%arg+g?UyJlmBW}9s zCX{rY$BO&^Q*x284QHwu$sCdUh>&=Zn>r1s6s-SKoqg9o-YvP)>HVtQCB4)+Ax*WM zPDFOioQ!UO*W4KdbUJyge(?pou<X$x)q<uYoQ6QCBz)7yKO-q%snRMdDT?BN-|8?? zQm5*jYQ(=h@f05X?XRLjaAfk>W(fs!*~b`0BuKFm3B^kEIN?-OWifQ32WetkA2W4^ z6nZ&)whnvuzBy!k`lXP>V~vf1c&shYSHP8t80s3N@{a}XTsU0Fp^kQoxUwmj)3z)F z7nFT$QFXEVf<j1yFdJ<UvtZip?eiE;7q8ihgXm}JvlD#q^@l+2-Q4nC+!w2n%O}y% zCg=5ptoL%au$5)+LbM&cg=XlBx}A=vzO$_Xp(aH8s}cw$4}a1CGZOH0qobo6*G?ag zNu}9R9(K{(X@dY=BU1FaZU&zFxn6Qg%JKZVtysTi4fdQkgZ|Vkgi|w}?}}t=?0hL{ zNbK!|_9xieEB)e@>QG<*$kVLyn&F!H&hB$b?9J!J``^8PxM#|{bhY9Av&Lh=C`;<( z*fxffkQBCRQ^XR6WPI#Y*vYnvS$%odZFwEfuiJs$hmN8(;)g#sA3?64WS@+wj^l8B zGmnqtef6ApW3As#=BWK0-DA#s$h+C!R_{5~mLRNYp7nREZ77lepQj(Xm3eRPV{HYe z#bP4u>VGlEjBBX91*v@<=sI-*AGl%;uADU)D<Aq5UV8L?2e00)Y44H%`haKgK$sA{ z{HDxVh)>*pJ2G-}Mfz=`cd~@WSYWQ4rh>GY@QS|``1QCB949lwFxI`g9&1*vz?v7H zbiA8+j(U;vca(EPlr7WpX#U)n?m<Ce5$4R9jg+*2Ji<+Mv>zj#>|8|j+9d<?=Z7D{ zqksIpc<gG(lDm)Uu;b(rx3k(wU(n|Oyps`)VQaor_=?J~aKQpm!S6g$jn?+=Xi3hM z4bB8nQ;IbKU(a!G*%vnmJF(*|`^gC(7$_`a0*>ZyHzmZ(oNURdAFnlahpo7D-kakP z$Pt^m1J0)8#1m{lkGh|F&NC@bvLD5Txkyg27HOufT5E$HBOmNQN52Ps-CYRLL%t`7 zP+PkYK9vlH0%UUi($8ccJOtyOP?T!U{hrQw)aE1udcAp`?570XZ8I}`M-pH%3>w81 z2lT<n0TM~oV(5(xm7x$XNw_z_XefY_!O-_rf=|FCQB;DL)KQOHFQ1NFe*#A5rb)_I z)<jS+;r$iRrPjN>_T6I<426(iSb}9QuEFX}J8|$_v&<!Vhh(3Osl1E9P>`6XdHW?} zBKs3hVk5C8VHZ^|zl(Ir`Zj?;3Ia(9h`5s1c!FKBkK4`!+hJ7;-_Rj9k`e`gJeSg2 zCvz_wjn9tP*k^6*JHg8AN4U8j@1I(MN^cuxO`j^Irq4Gt!JA;`Mjt`MCFu~qMS51Q zGqxuinh;6J5DD4QZe`>NsPp+URyKH<{Wn3*8|t>k+|G@m=W)DbPIX(kKRB0Ck`qLI zooX|Wncify+H=7i=Z@ZivFbJmzDmt1DeJf?2=h56Ae+E!j=eeF+|My*Q|a3c?B@HK zc|5F19797C2i(&#($UERVMq61bVV`VGh+f0>yKl_bIT>qMyT-&`a7Et?quC{D{;+* zw2K4i>SScph;=9XV6u*zK6X2*CQinz>C;h|mm}Wes&02@t5g8jMQ?(*sb1oKCZJ$E z=9AAnix;1L8pjXrz2JdBq6OaH{^1YA=6B7~r4Eq083?m)I@s?1nqh72-C<Of72&|q z6L{!>2e5X<vlbn(<Kvkb$(^4(G0AH=l=RzDnc>LgXcdg`Cx*6(6NxtiRdX&w#k84H z=%e|Z6~mpClY=I^B39V8Es11jOU6|7s#=*UO##kWPIfV7mz+;EaDSJm`*Q<6c(d}* z*xD{?T8TN=!V*pOqUtTm&q8@-D$2%=m)!dV0BMn4DP`E+*(Fu-SO}pFsgmozE7XHj zUoz^?p24e|w!>dogh+0=Wk*l+BhuCge|D}cPL(!9vLygAwi>|ViK9?Cwh9IL`52w! zgEuJ=y}e;(P?cK9t?eCXw#TU>)F;p7Ld(t0mgjHU{iZNVWS)?ggHRip0|QiTuu)JJ zpzdlzaYC1jM?zYr5Khq)=$4X^tvxW+iArSnE^4QXwA7+_^cb{vb)qwDNcnCF-qcV~ zn_+82w2ZAqz3jMubIa?<6!<fvm=GrW$t}#4XUcmgBt<y|iL}(&guCCn0Fma?m^XWt zq;6%(S7&Y8fYRCPi3vo?C{wCzZEwfR>o#J|_JcUm5(aYeqong#psrG-^vx!+3hWBx zVEWpg5OPw0^wcy=&Pzi<RzT(hi_R3KT3H5rdwK-Sg5f^2MSMu<Z9`+1CBf^w;C$%r z>X7oseQ5!lZEi>H`FdfBd>J_ch$e9OLmiT`xi{D^41h0?AxwfBI0K$8_}UwUnG7bT zI`iz7>7}Slk4O#ljEqc))z^%BZW`s#O?%9B*$TbP$rW?P<7>8H{l?A6C@hu345J;L zmxJW8@i=?F1|8|6EU7j<Q=Cm>F&g@QI?gg@?G(W|Ng)~IvWzqord#zkbe!{&EV{<~ zv*-~E7O@}-vnHDBudc-s`gELI+nPb9`&64<W5dqtAFot0=cOsp>u*zC&+n4%>qmQ2 zi>TtsOpjDcq4!fpfPGEK$PhKVGzE70@EE_#L+3GTOgYA9Cds_Z$*>siNc(vy08?|i zT56CSI&>Iyr;l49n<D`Cw+!fJd}0)hk1)x{fU!kFN)o*igLl`Lzb@6UF28J{NWaRZ zo7cM~@wnjGW2?s!lVpN2NdnWoF8k9%Xltms;B<R*NMi-KkAM2J$jr&b<#T6CDp_Y? z*k%D!d*Id>n0@DU<cKZrO9)rIb;k}o{-+1A{ngcu?Of9a@_ddJQ^EEpCQC`sd;aMj zaez5feJW~*y~)W4_w<0<U?dSN6yRm;>Yk9bKQ(}0e=<f-nTeD8cj59S*P*Gc9pC@i z@1k<HJF(!6^_VtoGCuHu>(P94KaSV73UFRX<6`ZqJB!qUQe1iM`>_6%6?pLJmqd~l z>D&fXg8tQuufQE2x*p8wpV)2X2XCsa5dcrJ3yV<l)_UTho?e`<Z^oI^r!fCrSKyk3 zv+%2BEAhJr{)BE{20U4X7Kl?=v4Ne>q*|G_M=~w%T{H(Dy74-UE3_R4gKfeD5;!`$ zgHl~f?O>D$`g_BYN4&1F70u1f2n14b^$j0F{qckN{sYg5StE7qR8jS+q^Bx%mG~Tq zwm*cAUp)_{*#Yc4de&O!eU{WR(nj!LD=w?RqJ<0a-T(RpYJ;9=wY^H5_Dy}E7R;MC z9=W5+aQw|Z$VOPSH^Vgol-ZJcJ5W(lgc%Fog~!*thRyqq3t+J+K_d~b$VkE`m&}*i z_H$-T6Nk`_V6T9;n+bQ;mAyvH=am-ZVDI7McyZMRtl5184KyodSgA@)?EyiZQo7Rz zTMes#&N)G;od6nYu0cgXE;10tyje443^O9uHz){LTA8|zFp|2P2MrJBVV@^SD)jaC z^`WP?Ps(Ywb#zNzdluD6OwX0?%XYT815d76kJi2fc#FphXeq(xZ}zD(oM15>oh@P- zZ~&&W1vkwZC+gVUTVE4~l51<`)Tx*=X|xnmVY%s?tSnKpn_A6ST1?qzoBSw1ov*7G z={`_ch~vjj<Im5(Ece%T!_q6U>s&Mb<G#m)DfSkOiegIGU!-M;6l{WMep({xt51OD znWC&TOe-(Nk}DP<(+6aFli*2DM}8!PzHpZ?c^zHd2*jW<9BZz>a5yCEuf44utVDRa z)tdig2-w<vS$OS@z1aKaA*AN!AvG-pZJq!^tO=5qCFd~Df;T(g>Ay0_Jf>sM`BRvl zi1#g=jc{ud&YeDm#MG>}ygn<Y&cfc#1iW_G%8hS=IPK_FUFYzbC38_eZnPZcn8>^f zw-2I!U7--#J38^^uGg_=_img%eFhEZPD>J?xKSDx#fI*Z&=sT@pK4`6OF~*^7QXYN zALH!#T3omE8cW6A-7PAhSlne?qGN~P$aS_CIVa@)!$+|0l~?e@pB@m&_pP*rOWuox zi>^S`_=%V@wo-_FqM?4g;Cr&KiAlmqvvQP^@^$wP>sFC|@#fW7UP|gR5&Qd5K5;tk z`{M&rLXv<JuO*3u$$Z3pVlU%Z5{#H$B^=`TCL`ia#flBD<H^UL26BqU@r8{lWO0IN ztjARgX5jN5xgI@T?chZ6**3Rc#)!r#n8Rmi>$SmzMNdxFwd3)ppU1)KbD%1n5-sz` z&!05~x7~IdZoX<3s%x9U(v6(3d0Cmr&dC;yh^hr;E!fT{{7wIZ<8`grzk4@k&zOq$ zT>UOQ{Nfh;^N;@Ba`4K@mm2Go(Ag+avU=Nusw&)h`^PYI_6%gEcyM^vE;P3^N{n<` zia)AEE~OoPzCN4#I>UW9aOemc8XNG%&wK)%$tn2Q=e{ng;M9t-gVo~(uu`)2_jTd! z4_}XKXOGA0N6#TEiRo(l<Qql$d*Pu(X>WDEyt91{e|J#>5(psO@57$Gd+>|rUPDXR z1OKRTj!IL%g#cZs4W7no{QY(FF?;4r)YjI@VG_rH%e28VoMvfQf{$dbO9`N>qgB8t zFlsDLo;-t}KfWBT-F-kt9@4VY(a{mMLU&r~aM{!`SURaf0G&0^Nw~xP9;78P)M$VK zcP34rr2<yQm;3vALKs(7g_qWCz=jPQ@$%kkbf@GE06I^y*Q97ajIbdRX;a-x+j@UT zD+<zmxO!@pFeI}kj20#`+}a>(D`Xc3@%b&&ivpl&CXh90rw#6cAE^j}+x}n&+9gaf zjOx>8&{%sGDe0NG{<`bXmr;P9{QO?5-mw?q^g`s1u8<;0s=|(vXl;O@q)08t`=^xR zqt{-J{0u)%oH-}!k0EOH4UMR&Z^G2^W5hRsrU{uRL(r&TD2$ABi-~J%??hf^K-SWR zE!%~zjGr=H=2T}#J2Fy|QP<RjWovh0-5ZBwZhHdh4)bC5S-sN<<ekk;=xeUUWn)V) zZ^kq%T(kiBNkDxskkVd{_O>>mQKVJA<YdR6C|1HQbF67bWh3CVwlqp%shV@=(9xfa z@uhi~zGx|qpFD~0{rVwPpFAV|?G5BRW9*n$VmQz7UBrf7cLvjPlSP=BS)7g9GpCT` zVbYl4Z5U>$Wh>KT5_*zS@Wb`TaJ-daZni4k=ZC+i6Q7z<hR<EU07;!~IDO^}8e3ZB ze2#y>pEM{>gNASNIp>=@v2XuA?A^W@)hAEjjn~#j<u1`R^_C@c8F)>i-~x0vNHLz1 z((mWL@(lz#+OcTyVtKx*+vB2DtOF(ypw=)YMeOIBH?GHvD^_65@~53JunW2`fE#YT z9aZBeVCL*OC@(6I1%JT|hy73zCcn?;*bKRQ<EyVq+~<jdyB!XT+6;H{4klWdcf}HX z<ks87-=H`z-;q{j0oz3kOkzaomQ4v0|K}naQ(l5+URr~lyY`^EBLU~mp9AL_(}vQP zO}jL`lkfQO`{C;kW6rcm$jS%^2Tf_Ymvy-5(HX1WHuHz~^*hJ(eOJG_5s$vI4UHWk z0rXI7BW_qY9iRW|*HMxb#LKU4l3L`W3iG5Aml7wwm+8D?em^oS)avkCZ`!&Iqsz;% zbn!xb=jVUKuOEH_UKX`U&9ZF3R2kQv#^PyX@q@4agGeI;^5Z8?N-0&oADe=VY68sX zyXOw8Q=LA09!F1|!R@!*g4KJD;|pK?wgoo1C4;A$4eB%lyl>tl%&Evme|Lw>eM(iP zHew|6lzn4jB4$o|a_#Fl)YOgEWLC_wO2TSWRW!8*6C;iI$kKT-*0Uy$cNjx5GNxV9 z`o2~=Reonai*t)Hvzp=Xje{peMN2bIPi_g?LkX7J-S#*}V>RACce*&l<waU0Evfp* z@ct%HMltX<)2sdGx}p7?B~#b$I*M&?9v%R6mu+9PBery__FG3PZ)||SvjI!z&%kXr zyc=Vx%FufHgv>P(Qnrk=w5a(O_9P4Qp>so-4U-0#8beLg!j#i}y?vtoK6IiQM-J@A z%sF#0Z}F8_|Jp8m|Iz2r)fq%2tHiO3M*({{=&0X|l0*2&WmDnrZotC1vm6GKedc%L z8e=1vb3Kp==I?l*&i;}irD@4&HVx%<T)+IzY&lsOk~aJGV|Ccmk%&NH5gJ;$9ecX^ zCh*+U%rtb>)F9GWgXxt;xM|5EEV*itFiUmK?ILkDwX_H`!kQRn({<;jt%EcS_T1op zjeH1qwd2UCQ<5o<jp@TP%PR5br(VL(pL_`+Ulvj;D$&(CAk?|dFDj{1Q<79yjVor& z#LRpTN{jMPkdq_xUulASZ7S{Maq~R>rsMOb9dF<lds<N!PKL)W*GxyaUwmW{W=*O@ z^}angex?R_*_kpfrt^1Hz6hpCPfHaH>IhkDkztBVOm^ttL2Ov_3f3-va*(9{wg5fq zWzB>OQoYPlyKAwG1y?V{(sy5n?1Cc6z@|Ca<t4O?<47o*ktBl?f&;<@^~$O>l2Pi= z?wwY7RI~o`2<}Uj`zQb53n(nBz-9C1SSA5GoNfe{4?4vGbX(oU1-WkBIxENg*%NZU zJDiT{b|&{{+&R7N$BZ3^`Sa(?hv$clY8*3r?D(PC%$QV_FsT`M;E`qGTQF+E43tls zi|xnGp!&#BOC28Sl2odH|FMstyXFwyv*aqPI#z4DV=fr#{rQ~Qh9)64V=71E^?e5= z9ENqh+d8d8FSmd4R{Zp9pT*YgZ{W@U&yQeCS&74x=)zFqY5uRzRq2QlMnba1&7M7X z9&@Hm7M1QDU;Q^6sc(a?Y#c&%-uGLsS%`1la|h7ch!<X7Eet?Ofu*i9C2=9%>UUx$ zU@>0WB<$j_HL4OvPMpNQ-}@+zH+PBzCe3!(GM(V4DPZjB6(tG6oUz<xQ*(<$m}8Bt zsin~4Eo~i`G`>nIk8L{Hj4gW)TK)rur@Vr>%&o3AymvwYE+1b462WViE=4<~9Gg*# z2>>>smoc$zuN-?8JbL!!by&UYFg72pvBH{)s|LWF7qryjGfU@5WxT1Q3ox#t!ZBIN z(AcV9n<zN1?cT3MolN1@y~nWaXpJzR>eLrYI#;HG5*How81H+<j7j+PhprPM+EH7J z-TU@QdEQi?&td4a6MR>hcgemed%yeJILxLwUvwQx(vu_!PbJf^WyelL5|i+WTW&;c zdkBB`ou8q)p#yp4WoYQ}#tgYi>#RjpVJ_Y?r3?kWUQ8ZaDL_Wrp^`1NhHPrGqy(Ox zVrk~$HJ-zFSF?wxyKNAc>+E??0C{ZLGAuvZj&q%TqROTdn&~~xF{a(0z9X6F!Yxa$ z#HZeK83H+3czxpr>+>dB%malYU2kUJhSbO!ARcv%X=2R`AUQDsyAB+}(L;wZamrNO z{Jv}P-z&D^CqKIvNrmN(q|SRdOs9QA{h#)APfHCx_U<b%Dyc&<jY_HC*7hhz&f(I0 z^R{G$SPuDt6|Z5%nQqi~_Q`WAGZXOB&)z5+i~W0EmmY9!2o17pkeE)_CbPrul%A0x z_*UN*6w?*8y_^FyN&fHee@_yqneCzgx)XP<ceYE)F%6`Zel>zy@Aw?b#*D>;2@_C~ zpX+$6D|hKEYy+sGz+QphO?2(}brwAN%fk<#=EPx{P!|g5EQ)f^zkEmR=d5DnO!Qd& zG5a!1e^uf*dGa`xJ^BdNu3Ul6)_Nx=vRN>M!$;}dmzLr98!+B9$~@t+Ir9Fr?|D5D zgd?o&&bVN&EK<!<_t+Cp;h{f1EQLO*7GC3ow^cW`qV>=|QH5W3{rlk!He=evv7#nb z?^*U~$p38+;N%-qUW!d`?8TEWZ^GVv`y{^gYhU?C-1foiaA5m3oT)yE(X`*$lAjQI zBb+8`W+o=dbJ^Gzz9$K;?xQ3{V#j1X_dW7B9(dtZcmkPHUi0!9lkxSt??hMi0qoni zFY1}fFgVY$nMvnak)EhNnVh<E<OKBd=g#5Re_4)$$4}vWuRqEI+wq>J#-yVbw=SNI z@_+~B73HWbEgsCA#izvsz-NyW6BDi2vL6SULZTTkz2nuUtYJ>KFBpTe%w*)}=AdF! zsRODCUgr4fgTnL<WJ^dwA|3U7KF2G1@BYJBf1(L#MJ1N+fU3JYTalZZfDbQSjLgPE zm_Kux!>~Eby18ym2Hv%<84W@;^VaRJTMlvcZ9rjJOouo}Iycm(bawm5`>w-Bm&_Mw z@$|97sBLUQX<@z)M^ljCdP!t)pJbn7kCu66Yrx!Ucg}GFYt+2$x6A}wgK6GGkny4h zh#H+k$4{Z=e7$INni?8#`wxDHy=R(`KXyD?dlCn$-&<<Mlbu=)I*C?}Dim#wu0I84 zp%dEAcw=cW8vNe;jtb<C`NP(5N@csk5}Z78KvM0#e547%v^;UfQ|CR}rUL;lA|34# zQaP`@03W>JI$Slg66cQ{!NDWP#I~Q8l_6O>30OkgZLJ%h8SL#x0>PfK+zAmlbB+D* zL@dG1Mc*Bhj6FeBs^|ObbM_uOhU}~iTzAb?xNq%leE+}yAahjJ@4VD>jx!lR#)W@i z-c(ek^kBmHap)J#szpCzwRn;{`$D1X-sPL{W<#eq?M)k%i|^j~A!K$oVCS2M#1WjK z&|-?>I<v>YWNO{Q12rg|bJRprz@(Xk^NS1w8JfHA_*9fl{cQpIpd|SQplkIRI(X5h z{p}zBx7hC%%wHfcCiZDA95*2H9_|lo|38QrlQYUM#GxaHv329C;t<!`aNg=g9FIWL z?!nVEpKj^6X}IZ@TQFw)M9i8zK_(=<)BQ;aar+Ym3NaWB9_J#gD9*#i9lIrk<>u8Z zt->I#q&vzKF_bMOkcpq(`+HF<5zy5+FCK%VPCK$FjFyv=CC)`Jt$Yb<Uw8_wP4rw( zm7440XUs)WaRJVstCQ{3)5ahxGhKWKOj83VTa-#K)_dASx!0SHP3zZS;~Q^c>&q+f zsjqwkU%K<}uzLA&WTXdBRaP1eX7RqO0p|KT1eZP|6fF|AG!`?bPR7$OuEHN4Ux}kN z=W)gC>G;7ve+ktmj-k5xG-ga5FT|DhM==SQw%op6P|d1MiHxJ3wBOZK$;-KP#AI02 zb1&k_)thj>B`99+ZfTiPGHvKz|KQaK*PoD7sPs;bl1gJx4U>rRHwiKGES#=u#_~<O z@zTbv788*{qMPY>70a|&N3rfseC@iKNa(1Q=jP?*4fw3+80cCvBxrLy(BF$ds$Xn- z&%V3{D>v>&b-xdRf?_mw^;^$oGaTaho>#u>GDo{b!X@MB26R(1XaA-dqPS!fj+{A% zl`CEnhd3rXF+<k$9o6xPPFfPa*4czYe+2j3@kxAe-WaUixK$k2vNHmrJyL>85GNs( zX2&tR`!}4rb<ig>>6JZqsYPOIZfZtbXFEQ8<MnuMR}Jp^*B=1+V=NLyFL>LDi}qem z;~8<DWZ2)N;`BjgKhtziSG52DAOJ~3K~#*V3~tQ16ayIDedfGkv;oI}@1Hq(5;m@U zUbHZq-aKJxow5p?NCu7h_P3o874^UU<E?1zj$r5dmyng2fi%C*(j*4M1I&gozf9Vt zj3f_xBRwLB$Zt<%5Q87J_6)kf@il$0&eqmpa#aPUO__vG{qO-izkV|UV<$)$quT@C zbU>`g_K8DWX}A`1rcZMGcw#KexVzX#O7?FaKZ_T(?2|~C^3q~_=O6w~Ob_R3&mku> z%MoORu^|)5ki%Gv1B*x50!$R+W}mC(u(DC3@DF$0g^e#g=k)Du0XpvzFUh^+h^BWt zpWsWy*S`H-2~!)S&h8sfcR3$jU(z)(`Qc5_l9<Z$fK*sp_wtKU1~5c#YM1&y>Py%~ zSfsj^p_bR8F{Krim_A{w08bPHF&yI&>$phVeU43V#WPP}`-U}9%!XN@LHeDLijwjY zeEqvW6z+WPv`H4A$Ke?HZsxeiZ`)o*(AlwVi)7AQ|MCj-2D_Y`$Sld3Q#BFes>X<P z-g)jg#*G<;in4Nx7~73wteked8BOkyRiDZ$tFUU-EBNCd9>k<66Y=eDd<{Ex?u5_p zM`c;5llD_RpPl=;G#&~9Q4*wmj_y-HC-=JO^7&Y^c_;q;KYxyI{L8<f{`6rfUNK?v zRFS->s_*Lw3t^8-jP377KqHZHOP1zbFu&>J>vxNDoRgS?4^Y*6R~ssF)5P;T(prPL zGp1P@1`<(IB8kDkav=*nO!kSry|^$R$4;NegDYMg&<YUHT}{>QdC5Ka%oWqo*K!^U zW=$38lr;}j`i%E2ReI-fm4e88FMnwjR_v*k&_}8?8QNoN2PlnDRm||Ng>z;On5$xG zv-IIAT^fXnjLX53HS(TRTZ@kZqa;$&2NL&WS*lzC0XpoppMfvbg|C15R$Mc44AySi zDpJ;{!u$aS&U|5)RO|k>GVX>QReeK-T7%B*4UG@y5!X-kxpSB@X{tEN-Tl9QjKeKG zR(O;*(@H~}mIXS*rS&x7j%yak7*3ru5jlaBk!f>=qfJAglQM7#{s7i)*a&K2ww$aR z0Ce?{=xl{Q)Qan8R^f|xeg@q&N3nO;PRaObO8jnNY!D#Z8X(dr3Okh8`CCmbriMhj zZQeuHC#8E^i>O;(M`?D!{JHqUbFbp(4?m99^io9Z2pDq+9GiMeEiRi-ibbRIk((42 zT1!FB)Wk#$T^vS9=s{jC_8zI0%!cRA*WriX{33Evlkxf+Z(vmU=qTFb%(o%#$NA^b zbvMJ<+b7x}X8il*@9xKaKmCD&DHjFMwKSfyPT2uE*wDGAw-*y<%*Bl#xeY1)6kN7& zz7?)!FZ5U+&^;*}kW%osRbuKvzGLqJJpS<g*s)=Kbg`2d6WNi3?Sd!@sH_lm?b2)D z&&bBOF{8yZQyt6(Eo9dK$6Dy*qQt?-R_D<qu=2TQaB$bQLA@HN7L+U*gO<Gi7F@C9 zT2axK78eak9NkQg-kcM^C@%*aH*J<gHng>vehs0%1S!Z+T2Y42f90F#ZmE|Fcmznd zCM1?-L<oLA!+0#G8ru0-{b|>p{di;Ve%y535*#>u3=J)<BK6bGo}8NQNCbnJw;10l zmSn7eNL8smn|8~UYd2utyRH@wWUBvInpd6eOvgPX)<e*^n1|eBz<k&%R;|a%H5;+L zu6H0#+VnW?31LxX0WO<TDK=61j<B&Zp!6fsE2>(vDKkc<Mvv2sQka`5jO#P2w_@9| z(+K*q2kgqcfst^9nt}4teB6HdRPl?Tmd6D1C<19S$)=N!3HnrlA3jly<ttX=wWIZD zOwL9mw^Ty)90xo*i&;f_1XV@Zm{3_hV6rm6TZnJO3P)7!oGHO8qeLd~u@}~2+o>i? zI%k}`KXV}Aj%o(zoE2_GX0RDQ_{yD_RgxhU#F*ug(&8ZJJJ*-h`KykAq$egL#WJ&O zX@S7Nex*I}CXm4_C~f0&s4AVh;4=L3(HHUP%Nwk0hv@}T;cBB(`otm57jD5-3+BYs zW)0G4#sY;ANa(tLRcl3hv0>u|yz=@{iB2&?G8vOi4aoScWPJB)cZuivjyHBnXs_D$ z-KueOcw((%bNxqs2d*DOcv0=6u9sL0sm`ai&Q6RQU4|Yc;|u?BKlawOBa&V)C=!DA z634ifI?29A6Ndu2`YM@>L#$7&OobjJLo|0{IUfGYvlvxUBzZ?RZ{C6l6DAI#r$f>n z)j}8<4wd;=H9fEA^BJ!F_%qMqm;d(9164&YM%Y@Ely2M4nMg(|=mb0Q?hk$plc!Ea zN!e(T7U~+BEL)VlfJ_@OJFg$e1S|cpV)HT<6{W+?Tee}@L-&hA9Gg@o8={Jh7LCy= zXYBv2cYFckCr?93X^}{&LI9I}j`~RZ;@-OZs&=`aevhc@X~(97^UU+hvHZ!uI1X|8 zQBB7<E%*BQ0HQ!$zi)gO*;!ebJbk9)ykZh~wU@icN&!Iaf^?Q6&^`3K-{S0%y-|QJ zA#$EX1hVsR=RbYTVYc|*YPT^LVk|YJdPD2GPzv0>b1!_}WRw)<;oO<im@|8}qr#^N zgCR7g1|Z(#HlOES#O`Bco;GfK9i_#^NJ;SvBf~~QP3IByY9C6|Fx>N$DbT(spue<v z5BAhFBA8wvc3w#}tEpPM+wuO(=U`S&9}0?!P&K+dTBR3{7~6y5fQxO1e0A#%tlhR> zQlXlXD^HK4S|L6XmtA`bm(80YA!Jm6zvt>J#FncXig*l~5_$cuT%$DG?AY^vc{}d_ zt;#F^pXtL4FvGx5hF%7SDjlSlphk@`wiq>u#MoPkF^RfKOxZQrl#OwdwJVA!z4tow zj)H&+qF@80x1mh`?dRNk?mX}1zVD2y`Q3k}yydy~DW`tV_q?NqgnDkNS*p;3{R_*Q zUuU0t?x6JU-Z?;z+kCrWZc-<~dLq31ki02B##_2(lZ;!q&SQv!P)4P>$BIXoAFmct z765Q*XO3w};02xAX=ElfHC=HE1|D<MG_EmWN`$ZGIV}WD4wXGhuATh~@*jiMO2iTg zV|SmT5bRm`ZWLdSqRz7U{ZAB3`C(bAqTWk$8hfNIzPHGlrJg<{BZl;s{Ra*OIeRx^ z6qY&h{*F?rI+afJ!L96|^)zV}m&gac0rpeRR(bN%`|gpflOM}RAH1jM8Y7*v6@UsI zxg1vF@%~oXZwP$fVY7R*P`o{d$$oeLx_W`LZs6R%y*5*(uiq{wBui5Vssw#jLsRG( zrw(e0BfsL1v}@B++O%j99nndsfxQ<oeBb%tBiZx8`!aCgAbDf+X6e^&fR-K}^2u@Z zxkCEO{c6)4VSVW898bY{P5^Rl;nHRDho9ZAY1*@=j(#~@?s$ImtPLg}MP12%yjF{} z{L9K~D!qF3lrC*sc~+fY_Zj7(hrLewJIc}{q-ub;{U3Vh@!BZ!+y?dJ(CGqq>%9*s z^(bCyVBLo!0&x~Le7~-@LkSK!e!|{Ur_GV-lFuST?jmWDo|+`3{~H?q>(ejEiIb<K z_rM|EM)UzBt|E6A*;V9ri-yu)uxODY>yPaFG-&n$njU@tT6Pxo9w@imd5=^lrOJRl zJ=Kt5Lzz*a0@nxJS-Qi0UW-I99%1)Wr;f|na~=tVr7rBA@KPXeF@aKB_?OSc69jhX z5p;y^@L*MG)vvE1Y6~&*KD-bs(Mh!LY`m!Z3L-AP(Bc3WuUO-G=zB|Ik=XtNL$eBk zwt4A3=~UEJnm5g_lQE+ockl(amh+02%jWk!^^o5_wXUJRQRwD1C!IPNl#sQ^s@8Qd zPb$$fy4#!QRfV44OcpO+A@f&kszIEGLj5p;T|0DupwNf*?-h98?%B4`Zdjok(2F(W z+>w@>uz0<P6F7eEJcVu;0Ts%}_sOOGddUy294dQuY?b=inOa2vN?GqevtA9bk~E65 zpMw44KQw#Va;=o`rTLVq7D))_s@*g0&Rdl6Y5&9d0I~e^D-&hmyL*F>u=gw;AdV<U zyZnYSs87#8p}Pi=<(%ErV?23jk<IfWBhC%;9EvYES0?ioEs@D9-U^6(Fi!DgspG$C z#9$dvSRkM7-K!B8F3yxin8NrSo9n<3_MIc6YF0U5(X2Yi*?2P69>q1t+qZ2aYqz{B z&(2<{AViHQh1#5g34o^ns$w%lt-LNKg%C&PhyTs^M^Bb0v*o#y$E0WPK3ahTPeD#@ zW2rjhF;#L!VKx%U!YGB#K0pSo+O$my+O(0s|Nd8A%kVGDLyu|{uL?amLmv3W&m}dh zfeh;3Pp#c>!rv^D^CrnxEWx5Vf170q0{rDyUza)KUzO7*j>mK`i&~4Iag5*e1O?im z>jm<y?|e_+PI%IYF5LT!`mR9n`4+GJt-```p9QUyA&xF^3#U&NsV=L@cUT?2|K*g< zrDtc$AOG>JoIHM9(-Ulp0KDTX*02J1$F=(`XqGQqcYYxAXU&kg3zo>)!v|GKB$Xdm zHaae<5c&_lRIVW%l9jC?VZy<N*0oTho6iYHD3lHC%()siEZ=%GlssWeta#ABfFV&V zR?{9cUlF0qsHi}U@bppdjD<pgYLt>NH?m^iLBxa$Fp6FVi1H&s;XP&tOcjy;UP9lL z2w4sA^3`jlc==jSp&Jt0Xj1`frj}|>H0{Kv(!EDdod;@ySw9tc&VDwl9Ka09#GZlo z0l1-TWzy7{vgN&xy%N2~`Cj>0h~FHgZVHwXvi@B=Dlm*NrXgfqZ!^4i%sXd|5cDY6 z8FS{#^6j5!C^mRb=F#Us&rTOr=mp6qrGJmE-c&jUi9M?!=k;YD5NpV5_DMnWd|kis zQ)bAlZJ&Cb@bX(LuK=M_uAt${>7$CY{?^5Vl`gYGs{-}1*<WUmtFZv6)xT^n#2Bnq zNs4S%j79zWS{7uO6$B<}8}_bih(^gNZ*zH-0f`LOHmzIAYg1;+*rl7~SZ2P4-ML5| zpj`6K?$t^lq6|C>@{&19^3Sa89e4lOcwu=I%yY<)A!=cOEK}&896Ty7Po5`l?LDG| zMWDn%vqMhwjf*anD~I=!6Nf(2YJs3i#W$uk5AFbRqs}eokA01CZDpu{EtUS;Pr(MB zcSPhW@YazpC}ZE#bwl#p1BM(p4BEp!IexD8v^bvEA(o8~BfqpHV2H~)utP2xIv|ky z77Y!rbE3c9NT6G4Xpt4m@mm_!ut16SOFXB|WE0V>2@6+CWqt>(>UjE3zyIP2JqFZe zPn?u2X&LpT0+ymC`EvJ<9@Iq~He`r~*laNnUL3gE1b39eGC_v`c;=aBW#R0(l2m@W z&I(=6Uvi3~-06XS-A&)syVo55*|R}@7%SgAjVQw-9KLcrN;Vft22XCm>>09d=>l(t z9E7|62{_$v6w|(_n|7ottrGd_(82QAkrR;$AkpT+DyD>t5~ukyrpW4LOQiJ7Iql9? z1#_Q9PpY(Z?wdD_ltIHTlEzI7q+Rp8U{j+YEuS85ES?>Oe)#ZV$;_&+mM0q(1gaS# z{Lkj^(D4(JpPLg&l9MRP5pR6;4txW`Kyr}jz&eMK5tQ($@#2+<AiTA7CeCF7GbViM zqi{`Vo3XND?M7L-dYx?h?4(G3Tg`{U3a5g!UY4}XN|P%t?5iXp{rdLN{~HiU-{T9V zMEeRsNc4fuS`)^O^^o5srK-?rsKJ=p3NkfY=y+CLb~YII+@X(T_>c>OXp60>MH^hD z;7*67Tu^AR^MN=wLn5<z>tM{xY7e-_b6(WFoixi%@k%}&6ulb`PNdKc_(!SNm>I>| z1q@o>dJQ~Q!_=I{N`?c)CuB(Jr;f-iSB{WY4U#1_y`Hpe?4=w`z_a#h7=;W)^LES5 zoeAhzOG-{DqC7h*Q}eG!4;=`MAI>i+LIX-g$trgr8sIT3jJXd8LV6Vy%H%l<G~%)I zOp-nqh6MRsykORBaNpi){9$-mxfy5CUANDpY<RD(sUH<}%ina~+jf*St5(V@vsWtd zlr(9n4T&<!N))XPX-xBa7_%A5<zNh&oORBVJI~=X9nmGCekV?!Rm$0Vsntr30`i+k z9tipR^&2Pvke0cJ4(wA;7dhdsr$q_vxh>sjd)N#L<_LohE)60ft3Em=Co&u9`Doa{ zGv?2fmrG{pY3Z8RKt}ZMu7KbxM+^;~%RQq}^Xy_@ROb00HH!l3e)aKF-a~l6Z#Qjc z(GyFnsXPen)u<?t8Qd6E0K#9IwL->k+AW2>E|6gzntySHZVw#p=Sp37Md@i(mY}Fp z>t$;>3yb@CFSG6f%Qp?G!V+oSrmdo=Uw`R2*|c(TP}@yzIGjU|?1?VPniil3`jBD6 zmGlNO2f#F+m&wb0Ci4bC+FD8gK-|u^Ht0Q~Os#p1wn(j}TEGLuee3&oX#<;P&0DC) z3^*?yOPg&1+bnkIQEJT1oCOPH<>CdhYT@h{BZ9FtMUtE)x88lHv@0x<qRxeye{wfo zZR=z#a+YHZ!f&Z5a^y^zWI+0xlHz&AzEy3TI-HZX5N{&mF2;CDBaH5G?Q=2L{B3M! z#)Jm%HubUR&Xh!=++9$b>-|I?WPjh`Ngg<ILYA&rDGQgampuoLOJ;74WH@Yk$>ryy zXOAB8wIO|^wDhbD89;A<iol?VH<s(&F(<4g<9)dAka|$`1}~+%9?0*EdO^?jdTA+A zFQr<}o;WTonzxYeeSMe`%D}1a&aEkkczepmXMGTi)X#2sbG!D<K3-NOd5s#$sU%M@ zYA^D$CuLyA)^cIb_R=V~krWkni~*1(^45q#peT*!ym`~6$^uxtY`HAk^p0d_XUo~- zbjhw)PsijLRalmtk?!qV%U3SGShCBHE1?krJ*ac$O};1R;!Io*-SV~;L9)8u4?fr< zr%s=hGp9~ST6%^u-hFMvMe@cQZ^j5@V`*d_!;uzuZ4FC<r)Dw>lAAHp7Rp=i?Uu~U zOi4}8ki2>s^8M>C*S-M*`(B{?nX)?*@@~KF+RkP8b(AXQb6l2^viBhCs7{$aeTFP4 zE|zV(K9L5^TIxMjojxHKUw(yL)ZGiQ8(28JcPzT3x~r;EaVv_~@I83=@4K{XDZ4-3 zE8E}MA^Sh^Sl&u2t96dK^70y~!$+g0cXsX8bBsJg@l{upX(vn!@p$KkdA8TtSKx=n zPn#|4Hf)l&4p&J|K@ILh$3A{oMhxmN1KKy1w6qMluy?nZh)5!tYsQi32-jFbLA$*n z_#KbkWHV#)yE?NO>A_j4%bFSp*rJ_8H(nk)Rc5Z-B&Da%N^-@SFR0KR%GdMCuaeR= zynOLDu9JQP2T6X5RxyXYE)QVu(OioIm|*ePByC#c*YKl*9uJkI)u6{~+NN4-Qob8X z+SH76x#5-{NUJt&rBj#A(xO?5U@YC34#G83$Vbow2KU#hm0J6=XU~$U6DI_DZ1d2$ z7wdU$-~GTNzfnM3lNK#CS5;Rqj#=-vxu^+WzIdK2oioGBt@scJ#)Q3(R6|aFf!ucA z4<$Fhx%BPUMQ@?DXi0buT&t2z%DSM$3tF@Y-da*}QfrynfEXxtxrZhU#EY71-h+a( z{2P`ro)`zY{M=bxD-0;cf+0^*GK8_YTvCScoVvmw-o7-!jF(085WI{9^XJKo#cSpG z?j4c@8ru&EYbjEBnOuI=<uY{05Xq{S5u`J?&$<d{GkOTQZ+~yMj2k^lR<GOY-C|n$ zd3iw{x3okC4Y)wQ@vWOBsk%ZvW|zhnFRd=dDtn(4$=03k%lw6lWx;}_`b<gLo+r$e zoSq?-B`2hJpB{4c*DsS+ty@X6{QSVss!Q~Z@6q{B%TNH(lGPhz*6g{mW!*YSYT%XS zF^+pxm6gi3ufJNlcIhC4F6bVBvV!mOBQUNP7hYG!B+QN{O!*J!`0d-a$>ulTloO>% zQgQmIex!BlR`RolAJK>x3d#1Y8MB1KqcAL{<XvY3;f|rbdFxi0GjD+`Uj3%dAM@IK zU|+fWuDhi4Y>D*m(?^XlA_iQ$Ki*g8JrnQT@PA_+Gn!heLsHVS^o-0~yi}%7ohcvh z`AGK`SDRKX<j%Wp*ZteJO&d+c*<OlwPHYWyizZhGo;gifCQhCzZ*6{4(}^V~Pe^G+ zl~h-hN>XZuq-N(y|6ZNtr$2v0q_R|LmR$$K=DD_Ut-c%i_vVU)GH%vV*}eTON%6a~ z+2<>d9g-VI-Xa~^wvbjWTPk4Hjm#!e=&U2gE^@>aHt#nl0{K8{m*!6v^<h1Y;VnfQ zM}0nJ?moBaC1l-`Pdz8|$G`5SxRTSq1cmMpxP*yj@P1*4YgW)w`O)bRWL}hegT@&i z^^^CR1!&5KiPQSitW23TbEXga+M^+KnAY%sxxyW3xIa^9ybcl{ls8JPysS)y4I8eT z$N)81)ckFEO*@?SGtuVa9^15PCGYOsA;k;k$+%Zvmz1hALAcwLx!$MvdA{T<ZQsgO z)UBJ2?Rrd6<Antb?;%V`&UM!GDY9tRG-c0oBNR$8TV5uR>D+nW1Co}WCjI;N(ddcG z-EO}p8rQm_ai1tE8fzRmdPF(TX}n?`^_u24mS%amDm?dm^l=Q5K0Ic;eGsG2eZKKC zWtEaeO=jDUQhEBA=3oi$?b*FYvKus1v^}IMaKIDJv&)oacum74ZuWkApRMb*ci&aQ zp2gE9ND2Lo3IB)cn=iZOYPsm*OQc1M7Lwn%v0CHI7fmX{0)y|j=z@C>7_;Pcm#<l` zl^i>^`U>63-TZufMpmY#Q)sh@5&iWmuaxA>Y>ha%p+MJD2(PPqPZsK5zj?csgl=5D z?tF@7B}l4}%dWj%hK#sWI(O{gRb^CG1WixE-)Vy0))FI(b4HqkYsuopGHdE&?>VjI zE-xf|N=B;6q;0ng<fa?1)hL!m)O_kzcfVRGTG&9f=$WC{A?KJrcfM@iuue8_+#q{D z`A9VIQ*ka>(+3`UP#*l@{jzDxHr?alaa<2QN;cU4SbJ0GJmaDzYoxmLj3kvFQ#pC- z?RUuAJKmG3bEh@smXR!qCg*bV>51e{Sgvv|)sSe}Tn*f}-`y@Hr_U*X5Uz%-+{RK~ zUM?SguuJ~?@BgFsV{<*|(#zzQo3EGjv}AR3SSK?^!;v=kxveuD&7la<H*MNfo_YQS zd3XCZ+41%^+4u22uhlc_%RF<XW=e;SZRJ;w|EGrAxo1=8wq^!Yj5?!sek`qkvRkw9 zO_})e^IH8>o#uBLWX}@eDm^AYdF=O+o>?zwM{E1m?O|c_Y5xlx3a8(JDR!PUJ*SBr z`gD&rxgn)+?8p(VoPr}BT+^|Vvr1c?las54pgWH`4Nm`zcsi2*D{E#&r9A!Q-(>ZI zSwhv4r~A++|JTbQaB)3!4IfLT=Fz`<+g;Kqzo`tn=&PDzb#n&pu<jy-e<$3+0p!9` z!z-g}5Sx7J<Vit?HSHl@QC8D5#vj1-)J>t=1QfLEB)8vlzY+=zA3C%qcb=A}o67a3 z+)W!#soT8+JRz4%z2=JIC9-hFOm7qW{msp|2t4%aDrwTPz1()seHx;ni3h0hdT!sz z&^m<`p>;HZZ3|>Qp3b~UuSx0YlYx=LR~To!HGrv1PFF@X*K>`h*uraOHRv#)_3qVO zCQY9$yWiWPmOTA@&zw1<i24Q%bEH#Yp<H*}b^3h9|8Aj6+syIy1pg1h^nSP<fq}pp zI%JT{TeMi-efu3bcIcpduzR<*mSybJv^43~t(%UEG4aN>ccfu<R*XWmwT!n1ZEV|z z7))z7y(J50PnY6(3q-2UDE~gG9%zoac<(oFyh-{Fyf7x6;XYrKfoOt>&l`w{&&-}X zFQ!@{BQ;eIF`fCe?QV9il%4h(Qd~ds2hwNYV9C#KtR<N7q9RepK1e|%rz$Z9hQyc` zo{>E}-qB|w>Xxdf+kZ|;mOFp;Yw6sjNLsZlP(zz@j_{9XxbR%IcM-t6*8r2WK%PB) zs_gsleStO6olm>p@7#WebnH~9Ktp$ou%fm1hmAM>k73rWQ#)A(4r0kdS+{nb?0bKQ zS0R&>u6Ps5ZfRBdo4-9PKe_J?nKW~bHcGN+m^v1jSwS8-yq@mgj7da*W=XI{&Y3z% zRxX~eI3tmA>2kq9DQMMN4j(!s85!w%UQm8Nd+gt3Q2+kw)zi%A^Ipg>GiYZ_pDN21 zFVqMf6+JNuBR!)=Mp1^<I8Pm&*6lh3Mj-}C*r170Iv9<NTb-PuP7P_%&Ffan_%W~O z+c7-3%F8Nsp7r<Avy#)Kxs0DOO=(ScefUX`BC`k@q4%&M99D?v2TP~C@#bdTyC3h^ zs?ThdJ&c!8KUW_8_diKx**WRmA8r({#jQsA949Wkhxi+1N;*W}=NssxBR<}DKsKyf zD+dpJCj0mAm(TWjt&%x^-FsaiH{5u$^z2ro#85m-U1VN(y=^XVW@&}{)DwS|t!r!e z+`lx1&cLQPjb4?I?zK1ED6QMJ3resIy!3fCrfapZSqOU)Zl`7HgfU~Z!<tUC3IK1S zYJg@{F`l}St5hcg#;cZI1Bc1g*Ih3u>6zNy$ZAhbpeFKCZ9&3{mCsVk3Pah}&2Pxe zX;WqE#tkYAEqY+jACU4?R|#x&Bd+*{)`Wj$$RPRb=m}NmCgh{$%r$m+-EyudoZ^M^ z6j_fkM1DTDTrXL^cHOttgKU)7SXvjfh>4zrzc=342q_LZOi9aDuamd8yeS7h`%JcO zep6En-ddC^MgV~1ga7s$`S!Knlx^?qP+=UN!zcma{?GDHj7#XMTVV%TymE~SjQs}= z%J$8h<k0>Kett3l03ZNKL_t)&Dl||A2<ZAbjkPTCzPs;|ci-C;x%I-9aXc%XwZNEM zv~rCso;6K2u2>w@_Xmexl9Z4C=8->;9zA<X+m4+zEnq+`T_?YboqIFkIp-e8f3lCJ zO&Tv#$G@)NM%I%OM=pev&auCr8F%EpKbDpS1%V+!gvkuzMCZ=(lm;fm%b7Z9qEafK zJWT(A%Jc9a7!nA^hPk=Yx@Aj``O8NeC)%$jm@Pep5dY|tk7ePUIkI5pbnSPbXWCB@ zl~sT>DVKuwo#n=nKhPGi0|yN7=D=?|%$%yx;a{%d5H-()P3J9KByVh3FU#l8QU%Vw z;V1YXN=bR<@7!^p{P{0`R-+Mxj<QOlB+gd?mg8j%#x#%8{oC%vK(eq#(gIWWKdfNB zfQO61K&z=4*)nm~Jo)s%;lN9_u8N7)(OzRNl$V^=sV7fpT0yxm_I*?n#q=>fjAdtr z_xB(E747zzmfcXx9<8oFkvwEP&LwlhoLEDd`Nhj*=EQOG>4$ry^xPSpUvn}{{^9&_ z{qc!^C>aYRF~*zV8r<>r6#r+BBmWd+C?dthOJvfxakB6IZ2@M<(v4I$jlAnVjZXIJ z;iaXJwU+;P9SuESzEc_2MV3Y(Z82{A1a)F|?tD-Cmcz_xS88UKTz1tp^2j3(YZpQ@ z2x`+W;pesSVUAq0=`9)c)RVGn+Z&obhJWQtQ|RaMx>r}};k)YE>!nS{LY*|i?Y7}< zgL8w46c!I;c|YC!Dal@5rfn-FyqG+8jDo%h?`xMeKja=}uQP6UyH9$yBP0OC_3GO% zutZVl+?(Yo@E%Yc;lmmB>cW;Ho-5&%ceZZPmZ`gU?vxbm0(U--yXF3`y6INA=%R}> z+{S#lAzFKO6I!mYvM><u(G6D6TnS|i5Qm{d<iZrX*1TtD%k?*ZPsw!JcW5tp4eAG; zN4#)acx=|f#v?EH)YDJPuAMt&=i6J=vtb-C3RvHGJ*m~Da?Qv)<?m1aT~@DIAM8~O z0<(1OIm01n{%;WoqA7Uhgc0FrpFVY}?A*Ciw!gVa6#>Et&xf%U)n8GjTnPX1hsULO z#cIL3jS3yQa~vE*Cj@5UYSwna;w7?rS@C%az0&tzF(U5#@lT~)$3iJ+-dq(O3IKe8 zUG7<MBR+P>5h9ey0fKpX)JvWRg_27uQ%Yr1=KN11JxQ6;q(uw4_eVdG)a-^zA8MX} z3z&2bsd)2jgdw9xzv59U`-TK#DPMx$6|jC@Gx_!J|3irKbn4ti!H+zrw!CzZ*{+vt zsRaOf2alIXy^M4<fC)F_xmpO(8W$OF0?#<~va98*BQBN}ZQ2D!s2NMT|0_kZ{V9%8 z=%#cCeed7*sYdvgFIl7!0h9{+#kZ9-0>VAOBKgw?f1-_kpgLteP&POg+Ecr%OqGG1 z4|_g0+5(;c!-|Rp>kPT)?JYWn?mGwJOe(OlDp|ePr^if?EpKd+Z(e=18g}9DHu-7K z>N+Bp*CnS*!<#AN$I6N&i_|zn_<PZha*fz&BQ5ShqcD|n<8Aj!-@bhV+ER;Fx+#mW zvSDnZW>mc3>5@hv<u)4*j)@cG@c#YY{!Om(jHmK*fiYvHwD<kn@AS+xYn-QN)WY}f z`EhkeSnkr{QQ0;9ap%mQBYWR}TO(*hv%Kz~Win{Q*X8o7uF-Pc&b|6+oj4(IHwqCi z6>LTWN}0%HUQT@(H(`?Odhb1XbNyQ1U`kQ>!{r%DWeN~~b<C@B^yo3!vv<En3KLzf zZgkg~wdmTZy-b@qC+IM0+$&$ILRU-13E)Foa>LEvm4=O*DiRgT-}Mw+kHo!s`+s<I z+Txu&3t*>_hO?=&Mxmp$*oby1PrHHk^v1lry0!N66n~0*|3?og(y~wAz6y*mG^mC0 zTqWinP<J81f&+!aLgV3(<A3d?=Yys(%5m>9DlsQM!u>mUJ|KMt4V9FXWCfwH!Q3(3 z9IHN(lZsGbcCJ**ZvdY$?vnX)efB)hiwnjDF`AmD>5zgBh0?Qocd4J@mBrL{nNl?m zivtHbnSS&W$B&b(Z*Ed$ZY6=9u<$%(o_)kOz9p}`I$CDTT^KaZa1|KiYed2Kv~0h) z$~>KtNI;RTT4~?x?OWcEnG?rq2v0vt*wnv_+z7V9@vo28uxZ2W1~H+-Fb*M+ki^3R zAMobJ4KjVo6lLIZBOh8}QJpSLniGxqwKA8fqGP?v&IF)7*NY48)qie#ev|;jF7O!8 z*k}FnC7yAF0+8w;jL6?+NOUObDYrlHV<|5ym)<?Q1@ll>PXN?2Mh6O(a>P;3KNsV@ zq69Do@vyj{b^gJ<KT=PJstn`J4;yLjzOr*|-jD$eDevSt-+k*1^^m>l4{zUcUb$|) z_s3e50WES)BQFH)mLei!Y!BI(76Rs;n0LI$&K=rlZ+X1dg;U3hB!gF}Qe}?7H}EWS z<eN8phBlal!nUnr6uBYvZCo?b+<j}~nzy`i#d4W4?sW|XTa^p4N|`Htxx^lB*{QqS zcE=t181Q3|rgB5x@$#+iTpNm=o(}5#ELs@Mk45b)LSU6QDcLzeING8hc+8x;@D-MQ zW-u8*^^?8(R7NkJH%Dcloktuh-M1Cx0Z6xgu1D}it7Ez{S~QOL8Q9hx-_D6SV9brB z7|2sYy*mEIXQbrRSxtAU{LDz#y#+HUX`8kkJ4vI)9v6V|5x8^g%2?aC-u+Z*nzmi* zmO9S5b?ap9%H?wK!(CcIgmDN<DrsQvIm^_+oi%5Uytn&fjVfUjx<+7>-qW-0I~C?Y zu@0P1^xxBe`?Ku-@V%gV>PuDVfim|u=Y^MkBgUFGRB{;n<9g`vtRh=T9{Ox)nY3=2 zr^NRt5jfoO8Z0aqv`>vt=rQ21>|D9?hY#vkUpQolDq%ueraasUb~lgfZSdJhg`S<Q zAfj=vz3PQZeF2D4GmDtdGH2Xxa$2U`cHfVrMeBB+u<}6@?%agKKH&q+eUppackqxb zTd_)}j~nA5>ow$UGnl5zvVOw`>Oo>`_3GX&0BD?dV&nY7?uF<H-WV-f0pJ~=B*izZ z5Kagw?P%wR_E6|gJn=VKvTB{QDQK>nm0Y9?6>ycg{my~rJ+?NC3s{VhDZ<gs@oGfE zskLX$vB;l&_8D2Ye2uhkT@V94ap%!~k4iakfC0W>U9VWaT;~@dWfa18cu{&i2VN*Q zj=WVpfWi&{)4Y;8cOToHa)0Wc@C`Ncf%&=hmB#=@_x7gMI+tcF*-!lpz{=_>B}szE z0FSv#$F@3LZ4ofLCsXElL*(f2m`6YNv{p&zvsHV*8#lE@RH@H}!=+h%6E%qIqR?$T zi!5OjGM)kAc5UAha8om`n>w*Q+rF@iG|2SIAy1W6N&`O^YfeMFHMJBG(E-Zi7R;IL z^_2Eyg?Vy1r=&3|E47q#@ZiDP=b>$jX6Gq%OQpEc4%d_AUNBzpSTT}<(D&Xwu}+6g zOj5ceRi6vI$oiRS$~=a%5q31fdnbHcSyMc8_7GuyWTjGLJCQ>65#Fm^P1_a9{Xcs| zjY9YnklPkrG7bkbU`+m*p+vadDo!XJBZ_LqC{Z&nGT@~}!~3{#L3@oZQ9f+x8yh!D zq4OQ?^P9rsj8dJke&sS5_wr~DyX3#uJ1doP_k#~h<AT;w)TKzW>w7&W+`VH;JFJiF zd<Ln;W(DfZOqo1cHm+FW?OUla&J^pSP1VW-gJtIYg|h3Tk0PClaI_&Ti(HvY<aqst z_43+FFUXO7d%k>yt`p`kp8+~>L%Psj0`fvAM+wWY^0bLVS(?DN2PCZ0rLeOCMPB&l zlQjYdYbHq)!5w(#c;=z*Yo_o)d4G50NWmVz<f363;$~7!Y1F3N+<cu0YYtEn)>r-d znkT`-DV{q=H=d>hDl1hu>caaT2tTpjzIWT5I^^(+z7mxFm?8^Xif-tQ&BZ}yY;utZ z;;kFkDF~(F>?!?DQ>wa7k|K=@TFDO|eM~X|jTHfiqwS&hJ+6QcWAf}im?JI>2sY@L zQKLK$(yY>IFI?$*>Z}VmfyaLPd)c{jhqUk9H3(N)F4f&1?w+s%%}?f++H9y^XHK6g z<3_zy1Fm8Gl$0QZNoW{_4kO+#AN!5Gy>pjz>C{odl@=O~x6baI^SoHq<Xr({PMbVQ zro1*LNTVnyPAAvnKtKuf=-p3^GehmVa~m}#<GF?l!VyIWweieJ6J*bhw*t@6=C($` zdQlKCA&?}2tR>%T`Ez>~_DDROWuVa0G87O;?sL>r|4@MudB4>nzxemRD9Ev}TTiX` zuWe3kd{gF}H{&swH+QZFh}-jCje_-oaTui-D;9l#0BZm7(?NLM6TqI)7rxx{OcV=Q zM81B_vSl)T@<b^)b~rFrFp6TD7?peJn!@fqrB$m|Qoms%ft1Egoy3be+I?6k8gK5c zcX!GBnbTzc^vN1+;VhbxvETJ?pOd0%x9-xqeLF>&<7~u}lkqST)-!{AvbTrc@yNH3 z2@c-Ko*B~{qkGU-E|w;Z8>=x&e%UVfxzC&D%1TW^7^c8YFMu@Haebqf{p*$xvyX}P z-1Xy!^lQxs#(5(p!`j+qo!R2)62mDhSuod&NK~DxiOg132Iaarxp~sAsJj}27=@&2 zOwJ@)Q<Ht9r65eRN~^<r_Xv>(OVy~e22k5?HiOsx?CX={=z;wT5DrJpq8v!O5BD{^ z^F5y)kj1m7YUJbO;eCNY|1a^-QS9)e-}lfjB&&WyDeTliy<awl>t)&Db`QBJCU?<n z0`0Z4XU}L3ozUlh|K(4zb;GLQU>F~IOt?KbSye#@j}3*8ANtjcrCx&^CB1Rcz}BhB z1Vs2=P58Nj#O{-vJHV;8-`}GK$F>b?^$r4s4nWG!o!PB{a=qj3d*tBZBXY^5m&$>| z$0XesPOc&_;biyYDp(W_h*lIjRI`hwO$xwMgb~$p#CxqumZDz0l*8RTNEd8lMv2Wg z3KYbudw_yGcAK`cY{hbU?ZxN3@(?E)Py=Wx3!)M{=L0`~RL-6~Cq*6F1^^?30MBOQ z*gfz!Lc~4LRTX8@u3d*9%&%Scl2RlksazGgh4I{jg(30%yYH9NC8woRr;cikhYzo< zsg33CRre5odf<?Ze)0L3RF8EQ1S`OOJoMZDl%`D@Yv|B$A6V<msXb>{Ao83B_9GX` znZd}k#y%)k3?v&%!<W7{uf}Cks!%F-;joLON4KIFG7H9X&l&S->&j1C>rzQk&zA}f z1l8zgpVFoe7@`P$yjJ)6^<STov**rgLkg5R-^Knn<Iwi2`!i4u{#;<3?f77~%$_z) zmd>9mCC3lND0K5CS;KFA_f|PmTB<}noDqb*+EG3r%I4S3j4M0%ozEgW=v=pC-fWpY zVQi$L(R1yC8-M)pFIA3p@7`Up5T}u2T6*YJ-?;lWd_MJid}Gk|EQZU{IWzq<R7y;W z$mRwE@!nrNrkoUp=C|*PdPZA6-ea<pwIC{hT%&qG^VkZA^Na|SN35&mmQg}?|MXGy zUOTjFtGog@CKzqu^J&W6HMZS7jN)Mr&6_bzcE9_UKsKfZzc2qxp|hXyVlTYp3c2Q* zYZQprrm(x5JAP2_)5c*>v2UX;JFA4tp)4kHM`@tfu&X>sHzIf27hNFVz4bQ9tlvO7 z7j_QhfcqRakMZO!@()={#O2jjUWt*lCU@La5#I-{=C^<Rla!n*SHdUK1GZ1YIxsx0 ztA8?co63>B@KU_&v4EBw4<fK%szT?cE$mKsft%-|ouTDD!xI&C;NxvrdoNZtHSJt4 zJo~iFojgvhAP#}$gS-%L&EgwqAjqLtR%)Blu0486>vkR0OZ7+-Vh^b)6W73SC)YNd zd5-#gne~ED>5I=irJxKII?%29UO9ggde`!~%1Rk_`PFj6cSma7B4MsWM~+BFTB?G- zYBO?Np<xPr{3|aidmgCSq{?y?#2_I}0bF&{cQsT>DHk=;2A*=gnM9EaUPEwmXbD}u z{_-fV>?fqqbx)uKe9yJlpo=sV4YIx<KQAWS?ke%{eA^*5B}5nzaM7sep4PfnfMV<c zl%@+7qX7*UYklz*SE>Qiwp|C!mjR$MHak}^+nR=z5{j8nE#Rn^p7#tGMV409<N+~e z8#XCWG(VwI5W8R#%m8A}!UE6@Cz?mX*a%}vQxHrbzfpATUki_tH@Ay*r563xyY7|d z?K){1Md#i(l)^$Vo{^}`dVUCU)|82w&L}^9BFHP-dLkHGwCk)TpHztS?A=#A*YNqa zaibKvy@o>HuwkR1=qTkv=$prA>t}07eLd*}&a0Ki+5R^pMc2<a7VM{uh0#k$mUJEC z70;gHc~L%Sl)3fJ3Y8(ETn*&0-Dh-VLezP2g|m&zeGuKzF#p`y3Z^{oa)`R95c<*2 z9@cR&Brx!jQ_}-w9d?X37g3iPOH>aixG_lmc_3no^r(^OM>Ze+!{4MTDNXub&?6}2 za-YLhHc?|*gc2uV_KfK=XXXs;GHH=X`%Fv;adn#9de6Oz>A{d7uWkFu49<9lu+0T) z+b}y@IsK<i^MH8A4(!$Q$>p7was{U$gQ)X2L_KoWbsoaTe0U%6eatO};rP*`WZkl* zK}yZ=LRKDZxB(Yg58)Hw%J5!|r`T=IiB4mX($e^)XP(k9zwKT0$d{(jxiPoi8xQ?& z&%L1J1t@ejqt*FE?z~$5$%G;lu@re|1kVLU9p#nR#>z8K{KYSW@R9C5AWkPz!C1Z( z>~pAF7?}KDvsP`T-@pqcKQBk=K@IqUK;<%TBc5ewx9uJ%3zb^Q&xs>PgZf=7n=r7C z9jGh6eT&vCQ~m=W&b$D3GuJk678#&+*bE7)8IIXpNh$K+uYV(ioO<@^r8zHmV?~V< z7M3UwLl-Yxv`FSo886oD&IE;0%vO_g^$n|}6#2>(-&C4iLbT>xp~TGNF~i99Al>`H zI|oGzYZZrf?8`67*^(2QXC*pg-Z?+5l#BJJHk%N5^Oh|oKfjrFLE=K8>)!PRVtAe1 zbp^zNus|rk{M<8sSzdWi5~Fmwejb~W7>I44LbZ@3-mhIYZg{TQ*USrZ(ykys$U&}J zTr5&q60jla-t;>h8p0igP6=6cN~$V!i$a)is%`)9I?wNxkf8*;iiKEEB|-!viM0fW zVb5vvg>W^mE<COY&NFAvNOgLaw8-@UKC`DzmUYGRRE`8JiUzVxN)7;Vw4%ibb&cq# z^J!;?y~<eG<lOO;vg*mYO`A2hOZ3b_!9g0sPmA%4L<MMGR8gHIJ-YXh(<P_W;3+?I zDli)AGOw0fUa@w)ES)o5c5K-YL-yq2k8BT_7g^M;XN+=7G@h$?!o~|x0bOHXCfYf* zwI%G07y0Ppf0E;;&dT5cePay5uu`)*XJ50Qk?+W@>Z%H9->QX1U8YQ!C~JxrNy&*L z-g$HQ6TJQA8T){AfBDD1$%*4fW#Hf;K~#?F0b^r}r_fnv<2~n$@_tfrbhtcmXrCv4 za44!6D^&&z9jt4bliNr-wP~p-G-JFpJ(H;Wnaw{{Hggs)lL@1q*D5A$yyd4fYxa~y zw8}M=G5q4Msi9A`ggb6s_7L}G3LR{M;adXW=$E3<byaEr75YHFm-6D6vGU>W4<x^! zl`f<yM-v=jW#w)dSAp<;Uc)oDL&@*GyLFNEo43gCAAMMnepbV2Af;fEoE*9V(C`At zbGB~RUN?{lbvIOJ;on47csM*=R#vJdU|d%6;}L#%<sn>Fb86r?jGyn`c86p&XeeE~ zcT-j&Ks4@rxpU)&ZEZ7Ga2V@12-x!!S$}9>AT$i&URj-{oBFqZ{jZ<~^VrFfAiVFc zjm=+p9xRNB2ML;#gQFhgi6dV5paXny6+vpf2I@gJZPr}L955t!M!XMwpFcltD44NP zawvQ*ey4kw*456Ns~)6v*|SnEBau+!siHz_!T~=vY1&*%^ehir+aWULWb;ip4-b9( zxN(Y4uv%J+v{)3v6dm-vbO8g!&1DKbo-%juhv!70Lxnnh?5lp-rltzP6rP4HQ_|F+ zDd<!r_x<ESHA*3Qu{|BNrtbgTv&MRm`!wPlJZ8#^ELZQXQ<{3wRAsd5(oJc8TQqMT z7!dKiMRz~hT4KC_{s#H&0@SSEfuX>O_yLHc{@jc~H-ZvY=*)Fyl^3Fo^5Bf9=h$Z- zd!<@VPT4}iD0s@`uK4CPLA8P^^ehkfWmnYM3_mMI1W~sYix+wxt5XXeyw`8igghl; zM|mCqF*lDLJ{ztf>dw2}6AEs_#*IN#z(~J1rx?H%A+!`FdF-3Mf4drmbk4JW0`bm@ z&AXjZesXne*H%+vGiJ<?)eGkZEv?PCH{;3Xo_^lHf8w9=*{2`NpdrI_e)(>z4G-%E z+uOExQRv7IGe$8amM@$eV2E6WKJ3zq<<hIJ)$(5OEg<;0EE<aA$ajVHlRc}Yl`N&8 zvetLnY+enZt@G`t#b5)ZOt?wYrqZ@m%YdstUNp)6Z^p6d8gNTE6<QAc?pra2;TQMN zgWXu8)J>to`a^g!uUQMJS1(J2F?r#zvJU?p-aNdHXT~Jkckmv7XVd`x{qIl8^s%FZ z9_*G!4>yeQw1!un0_E$q-x;ZS&ORs?|K4~@(8kaC-Tj|?e@1G75JfSeSfM!Gcj$<` z{_;y2LPQ`M2*en+tmYFh0ERe9oDLs6AcF=D($W;`8|>bXyP-@V+r7|-9N-Ly)G6a% zmx-^u5HzSEd})ky28c5>DbWDBO{LRlBTm@PHWWrwR=q5J&eHOVAQ!3SFpG;Nsj5`N zcvj0A99rhFI!!~uzxeg<G>k|NiGzd}XW{60Lc<QL2@MYIj$I#U4s_w{8Ja_KFI{&@ z4j9cW1WvAZfZz4ZjFPBGfIAPaz%oHT_O(}oG!GFF6)qWBLD?LokP!6%W-{Z<))6R> z87EQWpoo$yJRp!MI;BGOJvtXiX*q2wBtQ^D6x6%_0O{DVeayJ=<~96(TW2`G*RI<T zP|aqfR0TjEjAnh7%8CFf+^Iu*$;!wGJXSj^Q68PEkjkn=jWYn5Q>IOqC9|fgqSN{G z8yMMnA-sRrj~>!|eed3V)XPReQVl|6&Go3<H8r_GnEX`9DJjT@>a;?}jT@_HM3MV= z<lq;os&&uk^XbntAvM*b-#}^8rj14g3@6~?OA^g5&&b7d9zA|sYr!=|=o87D*R9g; zx`^<ntcpF9my=uT8F8^E_RNNPf!s<{Qy;z`bXnw{aI(0(oNuzG%P7(7+N-zH>LMFl z!zG>!<U4py_O(TrP<E?Utnf&+sFLvW=5ESS#j$q0OqMPe^ifQYA?q!j62?Hd=g}}m zX7pF3rc2wr`Z3i{$RpAyM9&mIl$<5ke(x5!pl1&yUb0d*?#1?yyMLn2C>SpG0{6Id z$s!s3!n4ZK7?jKU4sJ|kQCha#dhb0_(7KIu?^1YP^vczNuD)X}(J3aMl{BZaLi>Yw zgikee*50}Kzf!;Y8_#_RSAmiP8Z&;9>_6-=J~hg1tYJi3geYO+cA9cq$Hkjyyf3_T z=o=sZ<->}`RWIG4e+?fPuM1q6(5Cd#E55E}V&wlQTL=q=+5}-(Z~?f%aG^fh>awj& z#K<ai^ZO(YR&xsC{E=V%S^;s;&k{09q}-Sf_W*H_hzx+<CFlC;i_dHAuq!lz4r{*k zkJnMZK|^U<&`gPXQhk(mqBY?85Zw0Mc<A&5SH`rJ#pji8AuJW};`0nsR||K%=9atl zPzx0!jZIryh>Nwxn6OYZ9^{m<qqPhNK@_Xey)c(z7LqcR#uD-qz$nya$1|2(W#fLI z36Vzi>&g2c@0C}de>!0KGH{~_COD%XeDq-jT5@pB(2Mtc?mjnVk5GhXfwf$^U|x`e zM1fma-wjJEqghgl-1l$4k*1CFv`I>n+=emF8QxD}Bih}|Q~)el>alx)i{SFgLOoz5 zMqzeNuGS1^L;2g=YYodfx`Hv$`C)tnBP1Xo&H=<>oFN$1D74B9A9Dhb$=V77WHRHK zh@BaPW?Z{_IIL`#R|7IFnK2>e7LAn3q8}DH%gt}5&uF>xL=gygJ^6Chln^wSA6kY| z4YGFe95o_zk2;k>R*gf2(9O5sBh8vOSDx|O&PJ32!g;aY8H?x7@c?m7nOsde(kr7i zPyK;Mf2Tk^Ge(g`c1CS&!?M{7Zk=md+osbQFIh1Pi|5aa@giNG5;MGsNC3nmLRrwd zopk8fNmCk8SCsQ-3Z3_}z8Dgd$B*^8TUJx~<eeK(=2;DL<d!?`)@U8TQO*sK9($(R zoJ-^`>q(UF$f148Y^WR<ew0z~In*AT^9f5P<2G*5N;<c1Q|p@Av%3x>X``I%dU~!W zPaLn92-0D0MCt#o&~-C<)QI*Fb`wlsc9RzJ)Jw0ZC35t{aaHKtkXeP{#fsV_;e%<1 z(~JTX3<81fTCkKcvBnG*%Pn66)-wPMxv@U|`pbYJ!=xGgv*F|op{WxIBt48iI@rpM z*vy2zsT~HerQnxUs{*iuE2!L@wuMTuPASJhkSn+g#BiJ*xoj-v!To7D*BAcrgzR{0 zQ;-S?gofXZ?)&#XsC2xrZK>B$dR7Gw-xqHkcwXikpdJ>ZffDIB=Au}MMp#Y^0tagZ z!{-NI{B^nN`Ww`cpu-UcR9zH0hm5&Jp&vO>B0US+oY!S9W)C|216bwFTDQ}>T9m6H z>s8qL^J{Y$j)2(u+y9&A<*4-!AddNEjm$X1%i!YR0%qbOtpF&^6pmTm@#dQ2EB@F3 z03ZNKL_t*hz%$opEGkqEY<R|1V4U;9f^G?B5P3<;)HKTD|NY-;3`ThXiT1Jy4c-HA z3$V`g*>h$7lyMqLG^*Jeg<hrH<B&#Grld)~K7G`aLy2G*#<aPOKqZ?3Fi&Ue_U%Ex z1B>z)NXtr04NPfO8F;&PM&c<N{%@(eq~uifAg!!3sIPaJ`&@+%_QSdn(!gWj;Gvqw z#@I@6h>H>#z~-Hsq6zBywJN8ElG;`3{7yagEqC0djYInP>#yh2KwDA9gexal1B@JG zE<FAvXU@sES6}u3aV5tC<)&N7A-Uq&QFssj^0!)w)u&f4jij2lZ$@`K`Cw<nWFS#L zDs3!}eO@HO-;hSC_1C9glAXIhl0kz8N~1=3fpZm>f#%3WdCq(#>kD?t`T<y^M-Abm zbY)T`8p?%XXkb|Pe8iIjrhoWJ#O0kG?`b~=oG0T-FgfJ%ouJTLv}>=F#Z8(vlMWp^ z#*K!$GRHNL*~iCEm1xxgk*SxTe^%BmnXgWpTXOh?6nadpcSvGjWj_9wzsbOX0~8!V z*oe+pU&KRa2-ku#LDZwDvywIZ`45i=R%jSe9tNFY5%wEAShDNY(C^uyF=g#8Y}D^e zxLeNQPQiwCYl6B@mjckD2gabrXCNV=XMFQkZIo>bg>IgQ2`l%zd2Uk*ri^$U)MbGD zrk2;aT%loBI4nu^>&3D^C9=NlP$M*m20(N%f6gpfym*N+rdbUp!+HwND;F`=J~*+- zAyJ#1*RX!jH`s17UP#X@a0}^in5?dr98#EP!1kq8IlxN|M?Q3)<gN&n+2sldTjQvR z0k0t}u>N0u>80R#-DnGzIqZm6-SmA)OHGms2lUq{M0gEt%&?Hu_oev?y|9gP<F8+} zLQAU*Ico$m=AkPJJSkZlTm1Alk87>+z}`I*dgtN!b`?5#MG&+zr%cikGVlppW{jHB zBe#6X<yR^Wqo}B>8ZM+{Ori6cc<brzS)O;}`nB@bmMvQPqvdyg&x4>u&*v|={K~7m znrxp>-Nj$n9EbO>MFLXOG6ITO){qdiF>D!!fU?o~-WAho3cYzjYi0W*f9@)CeMU*q z|5?s8%0svG35`2+@Ay?O?pW?wHHJ+^*7xeA$}LI`M4cOqZYV_&{;gXU1knhk4X&!; z7LSn)zHtEx`|5AsBx$Ls8Yv_tW)4Lnhs*BG3~!4@)I?okQ(`K|eIg_jI+&Z^KlzO8 z|MV02%7{x8>}bj?q*fw5TRXQj%E9O&<+yyw;sB@M${=Gl%&eEGPKBFNu(9HK>24%~ zln>2cl<?_|b>}H`)geB(lQYVie)IYpw2e4ScvgZ}TeL^do}bS*xl6in)YJdea&6;H zu+-GQM4_9-aQlOg$o==-t0D2G`T06ut`Kt<tG2L``(9TdFv$=$(0lgpPd=%H4TRL) z@+mj(i15R*|M6pwYyN!KF0WZfT87tq_={X=>FH__XQaZzoUV-llt(xvHE8_cvLq=` zqq0JqKjb!RDgFEQRz+vL=6H5?xfZ&sglsOD2TIl^Po1s|W*T1euW<DN`~X<tSpT-M zY72XZy#OQUm^O2steP`5D5>%Uc@6)s8dj1VSpOJ67xeC}#4eWNu!9os9?Vm)$N(U| z`7@^~C{A;(ju6&I_R~S0;P6<X2<OqlmylIBr4crc+&Q)M211!$%S#u|)k6&Vi3{-2 zuy=L2Kru@mJ1?(^*1NlD99JN?m<?Bu7^sNQA;1?vRO^;5@ZRE(B)J{{`x_7T8#mmf zZ^Mu<4>r+$b``n34~0%TWA?O3ii-$3$@y<Eg-(SCRT+&MH&(8C7jbUS>7tLrV;P7O zB>wWHOJwEJ;()IKLr?`-O1e+QTCG(I9Xb_C-@g5V@*)eB^4=)<;YMJriUM2$Q6&S7 zTJD^=bqSyNy|71b6~Z05bd|=rx#y(}-Svzom<=aTR+S_RXHBhXbmOOqqC8ha)<YW% zWwt4}L^4vrpMF%&qFzK>-g$qIqM;Sd@8pwp&V0ITTT@Wj{RR$_)Oy)+(V+fv;HVb` zalbp!Jy<vz*?`gkTVr0N9?O8O(xLP9t3tl@o$u+m{rU}1r5rCJ;L3jY-0(X}cK1gg zYgAzA+!-1MH>OI?Czmy(qNQ<z`VBPtVNO}Ru)Ax_AS=Mq(9sR2V&a%r6q^upg+SuS zqroFCml0pTDgcm%<wE$Jh9f_`PK1%(4y)I!^#E}@w&};*?uTDop-1#XHvq)-Bkz*m z|L%9%4GXe;vwXsqyDI?V0TS$i!yy+w3qY%1&u+4E!<+J-k3Cv5!RO^Ne5%#dbPdBo z;9p)=s^B{7+nq=NM!g1KyM5Mv=O@>ZLkG2~1x*%=o7y`_KCweurfxdwKFjc|1`pAV z%m(9f6}ln7?H&*y7Sgj&IW?G5CQk}-u2J`k6;3$}*TBISYDtwF+6m9U{cVSu&snNt z>)ShI{){Qggy(uy0V3J}N2%!oij{JhlP6Cq2?;#)DAuU7O8CBQf1EyDB3-)_$y?jE z%Z$mf<uHkq`k$X4E&D$CP=*X09w?r0xZM>FVPV2N8w=X3sgpcIg1TBKTx$sTTYvnB z0^(Y>@2E-uAeI?vuE0<M7Xd<KZb^dx(m*Z0aG`kM;|CCD0x{A<7txB1jz!%hGrNKG z2XJ_@rW7Y?AA~(gdk;oo0A||srlh5L#+jy4{KyMlG%ZYtwveyK*kK*5D#Lxws3?S; zS$)pR3Yj@?flM0xqSG|QYZPLHBcSRD1#>P)W1Ki~T)j|Ac))aUMeSR6Y|alUHTdxX z6ai$SO2Ms&G3s6wl9^fZmCLSFk{-ZQW>kh1nt6v&>*?YIV9CUDBz>X|hm)#wQ(}g2 z2jfCnRpY!o%|{<SSrR;JqV?o8=9kh=l#Uw}Fj`v!h=J>Y(8bs_*+aD5<)S$hMj??x z=9&3+(ckgr8(B;mblaBAO3SVF_I{O-DfFP?#*c_#1Q&Mhtb8D5z{EQr@w{iwC`K?~ zP8i}0S#ObAuv1+0ub>wIWM^jhBvR<%bAlmC>JP(^rZWK3s3wZ)8xpK*a;COY9yIJC zY1XWnrWDx2q%XPLJrxyUVjnZF06I^XRm#%E3q7ZT7Q;TZw&6a$xI)*{<T0>WSldDk zeTH8m3l_|iX>%7zRaKQ_XV;G#N{QN}@&1RE#8pvVs#ey4Lx;4U5R#NX|K+dB-%Bpe zJv1&Gl6`Mb>*|MpBH85<-Iy6OE@yn88EPnJ-MOiu2J}c?tag}>5niK?lMtR8>T++v zLVV#oETs(Z?*1rHbQUVLu(yG?u)_Nf8RmJAei#vf?0P%#9+`Wx934n#xVP!Atbn+b z)Sv^Hv5A4cHcSI$IQ<6=)|zF?VZbbqZ!<7nUDlt&1gXNR^>3;N$)VNlhj5JW(zz!L z2?&m?gB?Q39n<Dh1)&dMveyk=%6(E-YrNDOSFg}~q>J1|8K49xk4w#JAbom4%8_wi zM9TKA9%LsMYtPS^csP^;5^h(4ariUu<p>&M``mAzcvklA+b6?@4b>=w3v>+6t*xVZ zbd1R}s}e}6mMJr4%I5WJW!r`oK`AI+fC2KT%AiVuCP0A25_#fL>uTc@nk7Xre(dWq zW&9*bAtdZm2J<;X)KifHQI9r&=~5Uxo1GEM-G|5GxlADeRwX2BKqe#Vanm(cuS`A^ zEW}N>d_Mrqn%5W}!`3ruEqO137{dhv>wlj7yAqIK;2Z6$HAvC@=hweqa`g=w<>}U~ zn__Y-<X+nuF=b;pcR;J;li_O6(oP?27_b^Tb>W=Vt8e_Say4M2<uuF*%1K>JM7(=o zY%WuFlp&5CGv++9Dc!~nw*U&)Fg@DDt79iAIe9FhT(GhDF7~ZCJ4ClOZ(1+&XHHj) zi*?|%Y8#%BT6ZqUdg6ulZB3&vMHmiEbL-2_Js&H+#cTC@JcjSYZIR8hTFE8jx+T(4 z5i)mvnRmm0@PE#WwZWb8>L@8Wc}h9|zcf%>yv0Rn!8&B!W%lkrsQDNZ9JOuCM6bI7 z5wsy-7k;v^<kDTlyY({;grWb%=asWXDdf7`WR!pneOI{uxslo!S{SswOG5~X+g0dn zAp6^XHznk5Y!r^MZ51zEB1z?58HE8~EDZk5n?}k7z556?(&Uh=WUVgB)dVp@hEOSl zGOHHP*TaMIgpo<xu=qfz0O9U8xWI#Kkdr4}yA;NNs8qRWN3CeKD|acNLtV9Ijm)1h zEeO#f6a#>m)9sJ^9OW>8x2)lVRa)3s;T)*VF=H~n3Vide|8;L{kvWsb%Er~}l;kBG z_D0bGX0lpo!o1;JplgtYm4K`02pt+AF7W6=`_1+-#>7Lvd0cxE^zGeSrz@U<vAK4` zsA0uJowT+T-SeITU#%^%og-sUL!n#RrY>veuA?bB06vs=66LY>!ZoF1o(E%VSU<P1 zbSvy2M^BZ+fJWmfbQ{mA2MiGBcCHJ;&eokVIZM+F<XSJe;!5e=ufO6<q9PiuEMhEE z0Pb^IZ8XuW*Is;9wr<>@)WAVnDu(PTSv%R?Jn{$9taaNMWPM%Er|nnnmGCUYPecW* zIg|m!tm%xUADKT0W#GbS*tC`O=vo+w;YqZ{QL=$fXEn;MN)?aG{Kx)9R^0L9Unn<4 zvsP^s^u-yC+QY8#9Tv~VL|R;2tRP*(Db$4AJ+L8$s9_VxpS$Os@2t&0<8>kdTeiNf zPK9+qbUFF?9+UehbmYPVKYK(f%g#x!KK;~?sLOg<nicRU-aN98N{N8=@60*nsdp=0 zzL1B0o?`T8+2|=D_IP^ybm>vpUbgRoxW0y}vM&0vE{Yv%6l)T}(4%t)&7=J8-yfG* z<41eK$nX1W%8l=IbL#P);fvm%ectc{-e&Q%jdfVFUdveHP4b&5Si%&#D|j(hqBgS` zNC?OFEn8^Lb@9RlvVN&YD;f4&-G(_Zronk^sNLF(E%$Xc7M?C8RW!HI{>pxS&YshF z;|=|3-Hn<xZK^p}A_BDu;;2IlDivO8`W#zHm8;NgeyztmZ4#Rmw3Nc4ZjzPTSQ)L% zqYNKl<2f(`%I?pE^1Q`MW$Bz5DwMU$lTUMNpc?}-CD*GjJ&L+S3Z~iwhFRqhGAT8w z-`L02G7JDTRP;?FZ<U6P^QCk5UQ%`TR1hMqZ6DjZo<4g<3fs2T{sWYcfkpB9IAfrB zWn=~#BgcE`H?PzGfpD*@2kG96;URYI_Hw)m@bUA3y7yDlG#t$M)PiG#QkB8}aj_S? zH__g;D2tWI!AM8n0rTLDT&1QXpvRB@ty@N_w@Tig2o@DO;b>A=p@)qq8=L9~8r?vT zy!V4$nx67H)>Q{2Ol~<K7#H%%AkB?M5e49)`onW+uOSPNv!qTa2ZUf{;q190<tKyM z{y?eH71QrbSkSJM+;Z1_`nBDA^olf263w$IbT~N3y~CX_<@Ir1q|`qrQ3@T72+Fy# zva*y9#K@Q6VsPg(d~RF^fM<q}K$26nly%nRi9VRqBlEJ7JoYWXN;uqM-y;%$Ll`xV z&2QA2(xMtR&IzxM^7>aGovn$G??l<>k@ciG?|tYIjd*~pXHAJN*Hs_#e596$xCCj= zg-dizEi(D#gxn*fg$uyq<zM~hlXCancgnm)ivvWtZH(|w_i#qN<_>2IjCZc(OvjJw z!87)_hktm#<~FP$fQ7o1@74ilgozGn6M*hQh2QIbuT8M~e%GT?0a;O|^_N(u2rKG8 zQLq+qu=%h}=RPyS#kI%*z(9q%Zq1sQW;J|=HDSO~y#B_Ubi7VQU3D{aS>*v1c+}ds zp;_jS5aK8M_RFf`MKbQy*F`GMY3N4<G0bIt+ezy*WK3<;EE7hwP_&I@hqJbQVZy@7 zVK5|2(S<#9D|ezB7y!Wb9XkcUChtCLp4AjP{|g&Vfw1`BvOBt-70;O=yWjgjQsivV zV8`;>#_okD*``hFm=Y&@wx~696@@8uP~Vh2QfJQ<rO<6ZnV`aBro8IJvBQC|h?-MX zoc{hXRQk!&r&OVD*s@(qaf;_m^ULx)g>K{=eD<>IZkB!*4wak+4YfrpScrIQ7jJy_ z6xfw8^4s#f^yH>fAk`9g{OsSPd6PWdvu^cAIP@A%ez4CGpzK?sJCnz};@3u-!S8iG zG-Js+A2w{<OrZC){c6h6&UBPQca@&~4tM;N=`%F%2|co_0H}aTt}G9D)SDEvRd3F! z2gtROE<mB197uFdP!>cK5dIi1GbWDHh*DBjNeoqRKy2l=Q6=gEM?_g=rS$CHU5(zb z!JTMan|lMq&73q|isvoxT9;Ox3nFN`mz^k@p}!3uLCO(=7!<mlQ}=vE$&Av{vr4K3 zLD7rPJtK<f*Z$|{ViY<U0Sq*d=H%*`TdE)8DRh&=;pa9^epo7@e6>!RO3q_c(&8Dx zJS*q(#+$#RO=kdyvzA=plvlj7g3JZOK$_EP?00P4>Nyq4P+voa^rd;|QF&s7z}Ij3 zzKnkPMOnUTtsFdhG^R|<Rfx5Dh*8Si{U4Kms^qkmB{j=yD1Z5{CzL%-H-q1_!|lEm zHaw!dcK1Eu*TWk#xR-GFK8$!|A!*Rzdmlgl{U6jC?^4()P_R6UD|F*2bUQ>)%^H6( zp;F^iH)U>sEiA<wM*cwS_B;0K7jtOp67oi%p(qKt?|JWCEfriieX959{-L$}x!Wcd zmM>~Bt5Y*%=%9gWp}IzkJ%>GW)V?sV&92=ass}l1>Wm<*5H8&?fq^mi$nXB3AvQ|o zz*_)P^V+L=Q4bRuhGy4w^;0;({O0CrL}L1kS+Z*3967vyzvpFHuXn$v{k7k_U4dx@ zEnDfqHN?6J4EDGgQQ>iHELC*%GG*oJ)j^+kZ?E~}IS!4n8IT~(0o<?$Knde{M9rnm zYdoV31&hL4I)9FWnam)wN(H0!z3~TkN$U=sq;0$Q0gr*ZX0`opo@@P#w1Dx-`pR45 z8JD)#x}9|?D$*22B1a%<Z1x*bJbo50UMP!ZO^a#K8c<jJ)e#`->3@E%I#ts{M~)nf zlv{Q6&;hks$2{wHW?bLK@@El5>ic0#gR6l^7W>r{dLq1uonP0Rv;OkhL@2o`=tOAz z=_VU_eySvByGxxv%Fc*;Tsf3zPq~qSfMsyoJKl2m>8UV3Kl_*RM<{MB430v#%Qdjw zvl`YF1{j0%>Ge@BC{BU&4R{RplcfO(?dLSglg?ecDW1#1-tK;~^Jy|Tyq^ryfb7$K z^wGyb3Z<qQSS-;MQNmVj+G@1~QBl`8i+5JICuAsIysc?kR)d-<n~y$@QRrVz*_u;| z5C+7l5K2y#dJXclse99=O=ant^;(ecTGsYJ<}rjH(DfwT&$)sT>l;gpMc~l(?Ale{ z-~EC7>35HL2;t<+0EO+|rza>Q*qUmSNS-v-cf}x7ePVunIf8IUb4E~Sg8r_m7Oe5x z?(xE0@E2QSgQ(#RE8xC{@Hfwjp5#{dS$eiYLtR`54nwgTIR}ED(k9XrHgAa@*}OOd z#6ibMFM9IWgr61U<8;XKxW$cCtV#xr__|zr+2snN!h=NN7~Q7(-BI^oLX357)hu6| zYOE|?<RR;IqRY->X0kQLfT0|Qi*O!cSDx2fKF?_4azSwX&Al0V+7SJe;i%WKc%>wj z9t%2E*;vNzMJZ%a_Z|V&aab^f*U{bgt|jg^_JMkpxsL~mqhB{fLF6DoMVki@Z%rA~ zj5GF7$=S1-yQJd5a*(7m2uE{)hw+SuG%v^NvzQT@HJm`ynGTO{&&qS6q__<EU0znH zg0ZHPT(zD}yyb7-c8}!b<Y*e>#K{wqmgZHFM6F$TOrG!P$y1t++q&a@H3r@K`k2Uv zh;%6GDR=+m=TcEoCX_b0=fmA6_AFro%^jcj;LV|EY+SeB0nI`zpKc*rj0t+6!x531 zof8<{>?1of@y>~@fki*4l9)baidQ<DoD|G0pErZa7~_Urc9kkt_7J@Mq&4cYrgks3 zcQZ2UDK9_Giw++;78w?HJ#?sMDSxDq5eRVCJ9j<g@VPOjJquft1|-@8L!5c90lQ(f z2<H>pX^{E@2M$!ugec`5C1>6FCIW#|K}uo$%4M2vB+3$i93wn*0IT~y`A|k&@-?lN zFohn^XmID$h`g-zGCc?=ONQ{tj27N+pyw~_p{sCoT7tR{Z_P*Udhk*C(;xps<}O+) z<mwt`H}C{hg3A?jVSyX9xSF?5PF2eiYaH;*U!VMkjDGexNlPx*e4r^dH#BbdueaiO zKM8NnUW|BuP*)0aUcWrHaSh(N5%*iDwB*bg8TQpn1J5dI>?qHU1BVgNv0WQ26R|$a z_Ib+>S_1_74MPTk6;6$`84%^=<w57Oc;1iAIpIgjf2bXvFlMyYfomSlX+NotP1xNp zOR+<1UBCe1g$17pk0=Aq6&CXrEs;$tixpY#S;Vp3&Rj5xwa10#5qjT4hmS~BrdJZ^ z0xG?w_rR5A6`MDWu}B#X;mi56{6-V>UQezHD2Dkwxxl-B^q_t>xmTm(wdZsdK=>fr z{zl1C;#N^v<srXcAE#|$^}tr5;L3H6x}{biXaO_fc`&Xk1naVg85?5>w!}{k9MUuj zIY>I#8FjBU6Vkfy%q+R@p@${4UPBq!_W}j@xM`w9p?7y~q0T(;**=*vc8vCPHp*A) zc|gdWva$igFP5QSy;ySdn@f+bMdvA+uxxOj*%Tma>jIfpEnVTKi7M6L)qd+l&axXS zAgvFqaAoB&h->pe-RE=nO?aL8oAJT6tl9LYc9MHz%?d49<1(P3bsw{e5WtOG7@)4; zcMafp(M&VaNI{bGUs_x&bEZtx5=$32<&E!gsPp`k1>SJW57dh^W3)D-Fub?8KO$i4 zht(^Vd3FAN!;<r<P)%oeT=|BNpcKpuZoc2rVs3<z|M8sqI{f>-7mMK(G~79`*SkI6 zaY80ot6%<YrH^4_E$lFc<pH7nqK+M8<+_b33joBio~F?4TpG85TV(^^$)#6(BPKc- zPv)7yt$Wg8<|NHIf95nbNHGiz(5dplZ}<C!6uNF`KOY_TbX~#*a<_Bl&6U*DR9U%k zi!^DJ6Ig#Nh&!=ndAS=Vrry_i!QN{NYwtr*UC^V4l$4y52k*Z(=v!@#7;JL`4*6Gu z;=&u>ofi}xo0$vrqlJURpNX;>EicG>$qizidVn}O8^O2jb2R&*eLSn{Z~mSh+D=_M zYY34r9Udqph2RguIZ1cJSxFZP9pE7~n3TiNqdT~KYFTURsY<;%O#w!od-j$lkdQRZ z*D>8SbJsCS30aN|a*p|PX9p-&%N^<2^~WNwgpy}J(haO>n-0>VX;U>|$eG34OE#_v zCg@j9`O_|Q{i<bNiJo6q8-SWn>{ZnQsOYD^ctj2zKdGQ1y{80TRrr}r;gde0|G|VY zV`TZf=`~)NPeQ~q2fgj9%N1}#8s*gKvod_>kQnr=h3&#~?WP<sSXh6I;7|7Ml{L$j z1crq5kyhozxIQob{SW`jQ#w9qE0L$+Dsk2^vt9%JEDCnx=4~=(%6Lc7)qt41Q1oem z%c6bP3sh#fq2REBi`qAwku&E!1)ATavFvzfn@k)tS}`VCW|^6#d3yFJ`v%gHo4$98 z96EGF^79*Olm-+uPJ$a12#;lJX>!c&jh`5UfK{z3!#Z!-9>sIi9_66x|M#9Af8uX) zuH;l84=m(r3d|ilDq>(57pf%O=0zr_U0|AvaUrcyUQr=^`VWfPyEb0b9tuYc2uB|~ zc2qX5SrsE2qSBkHtm@~=*S~#>bS~_uob@JekTLNLim)ui86kX*Od9vvt1|huR}_<A z{Ua;_0kO+PmtH3MxecXl$IfwOt?qTdS&zwBH~QPYbxX}-yR_cg3=G<1jm!E~K7PB_ zqF%k^y6@epAm9rJ^iw_oThm0c$lXKS6Xm*QNNg;guTe91P5xybx+!);{^F6+n;O=* zUqAM1S-)YEe0KP#hTc&U92QCrT;Ugfm_!QQ9?IQ#cpO-%BZdu<=bwL3{`&auq~hEe z&k_%X%Kv{WbRADTbSb$=6fBgl)RDUiHGEj&g@V}p)Yrm7wPI<prWgXoE5^}0Z?e|a zng<C}n<;2FbQLeeW*gfCKf(_WGKyo|6&!@#sRO_H&ik~jD@<+SwKYMND4fWlB_zD} zz(HBIa=lC(JxZkHkfcaWl*cp9{N4io8bk8Zu3h^eFNl(^m!7QNIEpMRr0k$^fO);F zGD-6Da&&9WnljO&xPAZa04&D%ipH+0l)|3<wCyBUyQ1!rRK|YuyLkCO<E52c<xWVC zXv>(<qqQtg0aWDs{W@Q_qzjLoGzw%HAARzPjJRlcko$D!Gi>;}XT<~<DB(}{?p2m8 zrC{~Zx-rICRkidQI83g%<~ps)$Zy$N5%uxTr#sI!j;(jYrmf|zbt@DoM%u>G3P!_f z{Q#(qZq=zsin??Tsxn+z;YO~)ik9&0xf0JXL*5Vy#wdGp%?eEkS)Dt-7j)_=kN)=e zlAe|<W#v^`BE%k0#pCBOqm*h`0hn=Pj*3fDyl2NdK`TvD=pL7W2d1KV(QS9!q4{L$ zq|LyOGI+z0EE^Bc9Hm296^L&&Kpn>`25C-&(cw48kf1d!SJe4%=Qk{OIWs(Kj3I%c z;*fiVojx2rI$i>J?AEKdM*eta^Gc(PH2&vCwD>!xQ4<A%PI&z_Su%67me1<Cpkn>j zr9=YgA_u;uWwU$@xyQT03f<mEng~3^;w8l%;gb(cBg$bVyN0UA{aG0t001BWNkl<Z zASDfn)7G(b7s<)Z(`GP`^zeLIKI`kfME7B@VHko<(DSl>h5p<6lDK>r{}K;9e890D z2zk6TdW^Jg)k;=x+$hP(sfxx-<gG<{>rtC3%G;xjD4uJlHU;wVqra4eQ^y7q5JtJj zUD<!d3x1g1LZwDY8ZR;trReN`XUnS8^MLds%wXn{DUjbGUr$ql6GxB8fI$~(NUpXq z!%D#v99H<a(Ju!cWDJg=y2@(+;VW30643VY@WIby=tW=EJhlnODCHhC<rosV4eHB| z4?dE2Hg8a5y^)Yu&eb^0_4CzLO6EW}uzER7q;2bhKtPA1IX0eolB9%)URXMVeS2*G zhpOln&zloePT)NTT;mlL8XBe~hI)5$kWtSWem0wbp0A=hMHNr$rg<`N;Uanc<rf3S z!+_MqDeJ;m!a%+F8`sIjS6t}<;`;Pa4~b|C0wX!uOZ&LOH~c%Vo58g6o$YE!ATThF z%wP)2EhSmtF(~TRJ)lE1BPr2d;`z+OWi0LsA-rVCVp%YCf+B?>Si)O|yFfCs)N6&G z{<iymsGaM;d~gw^p)+D#F1Qk)>uugBTR!|`uQDiVeLW0Y(4P9K3_8cri@Sbyrkp%- zMDhz-snQ^{%e`~IVFeZ*-(;T6181diPJK17U>0QTBl|wpj~O7&DhFtag77Cr1odj; zrY)pxs{+L~FmK_xjWVE^R}=)qBZVE>X&1z4uaDM_V|pY)X;DM<<H5p(K_@%95du8K zI}RIx@gi#WJ`{R`CN1QhH`jW|dcP@^fjQksZlI(Jd&>82yIt80=|Dz#C~T1Nq9KgM zykeBQI1mU|FeJv09;GzNHB_h`)}lH&L+<?PLuznXbTS;ak6KSNNEtIVsZts>ZmNa@ za)32;*As<~46<q}Q|R=~D6OcHuHCvxn}X)5(3wl3Rmd5;kEro^Ua%az51{Pwm8-Nr zi1k3X##ip%{6Y#nUMNLx&d>E(C;-dwnvr+PpZ@p<+5YYh*>~uu(rLN^wJwLWF7M$1 zLA-N~7&1uSeQ%fCcgJlt?E^z}wYK5w^4(wfJ-$K*>~qz%*Go!PLk*Rh0*Ly4HdK0w zQ|sZs31Pz~BNs_-#d?F=;c=T=;K^Nm-SzrO%ORPdW#gFOiuZi>Iz|$L-#U)PU<CY- zJKtfR0OQ_r=e<h3O0Rc9Q?(gt;d@|gjK8h#?vOXuu2!CAU9-}fW)sR{=3k^6Knuge zT~b;R%r8O*0jomQS9b1LW;vS>W!_sh%@b;+mo1#9wb?cN&|dzL3;cj_xKkbnk~L~Q z<Ap8x4xSN#3=7rxapM%>e)<Guc|I1yzfl7>;eC+1!-H+zuDx{ZT%?A?frAGnuVDjK z2JxOVyw=<oLJ@@fYcD(#V@T-p5pL%`lG5dYhac6Jsg_nSFE-Ksv1c>Tsv&*n&0nZJ z&=HJ=_b@Ud<OZyUzx~~BHPndrNd55Vx#(U<t6naY)rY%w$oMg@c!op02HJWO?89&V z{DgGt)Lyo4->%Bs&O@*dDk{}Tinnj=`D`wjPYf!~%Kpzj({mZLhGox?7D`G9fTM;% z0o>TMMS-+z+g|BG*{k7w8a2<ZF`+V{QJ&I+hG~Os?p$R~WB{XZ$gttc;@GNXK|)y+ zZ~nOlqDvs_jUmpHtK~sjGaL;yWIcemrumJ7d1tQUDLR!ce(v1n9Yr16D1{n!ztu1v ze3Rxe(Mcn&sqK7Ns2yVo1HWanrhzQ5^&|q2TJ3rJoRgsLy*f>CHV^;j-{sJO1JZB6 z0LjhH3LIDzdPYXQ;F+W35#NbIr?D9k1-F&50<4vct2(xGp8~S~k5@Q<?k%AAWp3v! zPheH*;rYw|JT1Muc9AXb?i892usBRuyvem&WAW@g?(gw#{mj{Ol2tEL>-T#1=q8W< z;g2%<*?%OY&-_15!{_^$uh6N#go(<8V_gJecpy_aY-UA%Q}<a}5>S!`J-Veb@T{o8 zY~7-nZmg)eP4qA(_zlHM|M_s^8~wb`XomGa;u}}X@Qc4DNoncQzHQqej2ShK39Im0 zBUnkHY<gpp_UN`yR}3IdZ^Y}>jS!(#>*ZHnBgacl%kUu=Dx#n7h!T<}B-n@M9aspH z{P`PiY?PIY7s#rGvjaLwyemTrBam;o>wZO=TYbN+=jYiRg!HKYt?6~_^#*rIPf&cM zurOd?_aX{`2LR<O>6cTdjt7>1U5zvZ7sfSd1r#0tHSer>_2;J00ge6Sm%o*Inf26@ zJ5h30qYCccb<d~?DKi|I->Rw#tr@l^8f%Idd9<WHIL&Ps0$bZfBQBOBM~=v`qenl_ zRO)+E(=()^tW?gNIitiSl;tg)GEPfIF~SJ>{`!x9kxPdUkypo0l#U(SD`1zifgnXb zd9urkFt~<q)E;%^7!ksDEt<+3TemBKibgk7o?wJwh<Z2(KzSGn%C0W=Kk_TRPrOL5 z2Inw5QqzO+ExHjk5oSbK|A1Mu=XxcUev_tf39h%mUiHrdk3g%NE?v8KlLifPKes|R z#fl=HGiSC3#M}3gcNTqG=I}ie0RpoCp8;e+^!hL(G%6|){ybx{mzXE^?y42bg6@_s z-8Evtt#v1~&l$0`we@AMy7DI+-J-_5AU{vu-nmPP=g*a;b7p!|=!Dx<jyOCV#%F+e z0Tnct8<h*6mGJoH$v4JnJ9x0Be}#iv3P*<iB_2APCp|ki2%%{oWk2Kt$OSKb)0S;o za>c~5`3a%80>HIc?C?Zw<fw(<``BC@02ZQ8_b#&kz#)0?M?ccGmzHaFTdcaJ6rWpi ze4Y>Zb?S!Rr9Up^F}AT1J!AMaHa=D{3})+>Emnp&4v-;djkB5Oq|$(na!^^?fiYu> zgFy-;(ZxI?`0*eiurZGDps%wjQ->)jH6vTDxb_BV)2_V~_2{KxZ&#s)H*malW-X2K z^`HO!PpLR@Kmk)mF&iiy>cLaNY?KKkFEqHQs7{j39XrU0Q>PMoSv)&J9IKg&y+hd$ z%yP8CEnYC+>sVzTmge$2ZhI6Rpd!dI$U&+nT2>VqRk1mCm8~603=Yb&CXE{_%NNcK za34zF>kEEcTf;@baenZ~Q5iI#2A^P63l?^d5>)oQoIeZ+@|R;?eo<ykniA7t%{3;h z*E>vjMTMQ@*zx1aNnlZr^M$UruiSIZduZ!v)R{p?w;%*w)0m|yB~4Mpgv85Xt*eNw z@BKW-4xkjFd<DT(R;n`p=W{Pg&u&Gk%*m}%_YFZ6O-<bSaU(nN#^g-73LUva^@#zf zAPC}Y5?<$-0$%lc4K%%Adx-Dv-s=J#1~1O$&vksF6anK~#S0~tq=+z<477TlLibtX zh!*_mpU=yOAAcePhYZ(o?Tkj9&nS7z`#7Uqq!z4sQ9v6Et#0^A&Xik!_!DW?ym>J9 z#!q4M=su_YZfk+e;=%x7??OXuT_#okq^1X@o>UXjJ{d!_ch7Ee`1r{f1MR$9^P_iW z$niRJ+cYm%w!gDOo4>4DFjMu28E9(s`Z^BXN3RDW5JNA$LUMC+q^L`g$^~;8G=1Rf zz1sE^_#vW%lU^IG08-L3Trp+P{v3ZHg>GNU&oJO2oHMZvMUUa9UV24&*O#nXC%HKd z18cah0=~9`Y-Js6at;MnH;hl?CQOp2{_-dNxYqFLjn{0p&l?J^?LH!3Px4xcqUccM zU3&JG#(9kbVGy;6^^iG6iU~+U#Dr-nAp<ON;FAxv1O;WM-$Tv2PptFcV~<ODS(ywN zd||?nci8i=1I+h;CQVOIm(edi=Y{uu&`aPMhidPw_LFjpVZ(>(z2bGmGag*4*t|Iy zpb-{?gac%~HYKR6VKDP^SDpemEf^98rfT1|jgq{ee6Zx>r59W;48>lRl%aq)LZ;i^ z*dVi~Pu2OwoAMCuKD(HRz_Rt-ks~E1ud#IK&`~{CQY2vy+1=kf6Zv{GXvz0>?a)?B zoQ&N|TbKGRF17Tq8pAh5L3pOnfAQP@2yhX`mKgQ|qV}OHm_c(NKYd0iSRv(zSKCk2 zWB6A`1U;QGKI(F@?kEX_FzZR^a_z=VGH3Dx5BNuuBEQz&H4y9a-PZP$_ZrQxea^}n zt$nX`Jj7%B`#=6EO`GJ&w3%}h_fXiOy+#e(P`A5&iJS^k=3%7{(9lBPkh`e3@eOXf zM~fD4Pgh)ht)!!LdiT*hww-|}qsU!9z6(W1{v2X0QesLQJZG9O<Dxk;NTJkk*g$^v zoBxm#$BzaG_pn0Ox%IIG_Pebm#t+6zhgL1LVF@i$x2#_q8+A$cQ&T=)zEv1J_NTwe z-u(xpZ|`0)!0339I+G8KM~NHf6z`Sj+loc=1IkxLohx^O2a<)^aPU_ymh_Y)rPnr` zjGezIy<=g2%VDEaFu1pFenUn*_jC+-mw{t7a^}k-#y4iVtojX=q0UlH=4_g*kD6cG zOBT_xDyDVCUPG#Q*B4Ugi9+tdp>n#gS)Dh?zbF3dud-$PJBoO3P(NEYZ+Mf27q(6Z z+{usfc^0Cgyj;3>YA-3NDf07&9+E8^)(S)xR^nvfg1UbH7kVH4*!_A}r~pBn8=}?~ z8n$^Ye{OTZ2J<#Ts#=-M+p6NlY8f9pu-ES&ZSV0Av{;c3Jp3ya7ErIchD%-MSPySf zhO}(lP(Ip!KqicNMYQ9XDRi|KYsfyVgH-*zX4)kS50YN*2pw$(QwyiR?E{M(kUxiz zAs`_sJ?n+O{T#L;mi>k>c$C>W`Euuvf2#A;rF%~gBvy;Z90=G7zAIJA$}5zLm+;)O zMT^wqfkc9Ep7ASKREKE5g+qsFwE}r;6gpQF?!i6077?&}1IcQwOHp*D0JK!i2f-N% zoaby`<h8=BOi9xcGS|CIq=4*MnP&_|6ztaR+vSB9UzLyES{Y56R9zJaD4x@dP}ks# zIv1=VQ4ft4pv*GrsbItirHO_I@bM^EtsXoe(DA=8ap+dmfa5ZJ1HT&wg0)0tkC5`a z_J$kf{`>BcV<l&m%D3kQy_E+Xgg?sMINRfSqVdkYI}hv~^5-Z<^H{+NV7M5=ptczH zD^NHu0OH7FvzF$~u`iOVOCzHkrVLcZRi`Lui;HL2uwlK&_P4UwyWO}XSXI(<;6-xz zH?GpR!DHZJOrjz?QTxjB%j}_Wy}g0rH1DnXUM~!9AYH(muJ;;_=D71};6$7>lYw}z z+jhJ!OJ+}1J_Bos>jDlj?jh^JaHE<itjOIn={hvF*8C3{l$nvHh7!?9rJeQ-Q53oE zIR|UPI^TNlkG07Toh@4w6liKHk+BkQzL8(cR;-c@E0=ja4<gt{?OwmILU+-VwS}!M zv<Q0~EiJ!x=_Rs$^A^1q%N4~tFrWATuD5sO=rI*QL;LrUIZKwy<G*}Zb3BGF4d)>~ z?^vJr{X{81@0Of7r@2qJEX)<Q?)QcjI<J9#Jbdhg)|(ppm5WR^Koy6FE?|^SU@2N{ zt_gv7A$OZY6i-E^Xb6$giMi7!dmYDoo@TvIKjg0R!w14p3IsniU52b2CXqsqcOM8T za!BJwkCL^E=LF?oN{r#Qge><A8FE+Dgzw&aKts`5B0}f0knjtyn?-a`=y(B5a&t7V zH*?CQxS?nc7xnH?p?2xgMez#=VlMO2-EmC#GPjne<-Ul1Sm+SGcuJg<u;Scl9~0q$ z@Ice5a`%CF^pU2n7BCZr1Z!&H$V8D48yl=iucA&eb?zd0{ki`+FX!s6t>t*3u+%f_ zr^(_O53VpakB%HK>oI@k)R@q0%^Z0g0=lLA5>Ndjfe>?1-$t-u_svhv`G_m8k)J;J z6Y12Uy~=>Y`}a!w!p=Ik$4{J8MQ9$B?UlNoYn~1HWd<7Z29TXG#3`7vJV{A{Fk0Mt zWh+_x*2p_l>Cgwj75;U(2lf<a5km<=qh*WEZ(bDhJw{JmT_phV8s#^wkqr?|Xkz71 zY#PP(QGRZY(iOv?X3+>;Ha~~1YotIxZ*lt%|4Ps(g{T%F(x}uc?+q(;_8aFDj1-2G zMSHexdQ))<$Uws=So0Ud2p}_0oh?=4GEth*&JYGD`-4(97&6Dc_G&;ot!Lc9w3xB2 z6*Kj7gI3B#Mcq^u7((Abc6Hfj7AXJ|v0>Rl53u^LQs{Q*JRu&UP<3cgE!@tcDkD<) zIqBYisJ!sPb8@b%T-I;iE;$W7Do8?dOtyQ~mfsC;dab8UqCa<~da(%DQzwpTxCI8e zKm75JGH%pMG1Pf{$N!IzJ9B|&1tlp6?7@Quou^=<6hQb;@i*v4A{=<kuwT(K)fBqh zrjQ)cS1-LxJxB~2MR_KrdJ5TT)M0bxDpva)ucLKA3nj3bIc;jt0LIwMYIuxm6uMde z*^QbgAkK0~@r0B+7GAswN)9d7|EQ<_5tM8g;Lkho9#6G(RU&+O$KCfR$qV623%B#! ziIk8jSq?E?fX%P*Lt}MoLxl>jO{}-)(-h2P;6{w4C`BH%emeKmO2gFFyg-f}Ij8`t z<x3U^1}A4FxcsoY?Nu84a9uE9u;#KEn?283(K<7p&~hUnW~hxDKOtZhvvX}|XaooX z3Y>red@R442!CPo$@%4dj0FISGzNlSbG$y|Rp6bgFsVAPfl|CZWA|!piM{>cF^C~= z;0O4{W51KHjkrj*Y<^4Lcx#)|j21L&qJrJf>likKab2S>(U{@&v}a^Jsj%tNzKsIn zRunJMx_*o^FaV~|Ei?;jB(K5LhEYhBgyrz9T&lMFFon)Jp=_~u!90y9!PI750c-Y9 zEQ2M@ivSH4cI_Ud8{&<JTy^&p>&xEFsh_3z5t!OmE}E~#s4k<Ar(qviq(o(WWwk(Y z+q|Hq6tpXp_H9}!+n_~9%;=5!$>%9sBd3jwfDmcJn{UauQO^b47cGirExd2P=YBa= zR;j==oF~$L=$S;^_+f?KwxF5zB7yJ;@Uc;Ab3bN4*t}VpHvKC|bAnA!C#t%lPL73r z59gS?JqY(H<HySEIg6BkBOcID&%zf)xqluHT|@3#cHprzAt3I){RgsQ{U)&kWdg$T z;B^6P#od68<%(yBW!I<Q0QuyD_vBZ<cu4l_cuT`|piW%{Sla>mqOX&S{D0KF2e@8k zmG-|*OYgn+282N9AfO;Bh*AVa5JUwO#e&1A^C{zupU!+U<LEf!e~Ja^5D0|y-g^T= zLSi65NJ0WhNblvG^Pk_^`+m;z?(FwHC&=f=?Cavn;k@tJ&)!d2^<MY7;NnX{-|Vc% ztouvw>cDcC<O%Q{(82&<)Mr@=htC8=<Y(n_K+k&4wmQjaA^f>FVLff|V)M?k0G@)@ zF_goAlC3#h;GOFrBa}tGDq&HdvMZ&~XU?2qk3I0aKw}9$K-RwUl0tvOOMTIYFSBMX zTe~5Fpg>6C0r-2<X)Fy>hJR~n{r55=*eitds31_AL>*rK)qYX5g<5Gshk8c|V+jTq zWN9-PjpNT!No&r-p8Ev&LMORt(`Ng@jZ+Hns3)y})AT}Fh4(;57@u|Sc_A_&g$}N( zK0{b2VV(n^qobm?Y$zlHp<J!D#&H6lz4>O}vmp6ZBg@~G8YkXQOg}~;#u<joq8XEY z4HM37O5>_S2~JE<6wh~{XO3x?Q(THGOn{A5jcoWOAGI59ywR?^=F_(6t<8>2pp0$c zfPNlw)qa;!LOBRnCSx*t&WpWg?4j#BL|k56zSQQ;o|S-AQ-TvkS^S)&X%xz;Zo2i0 z1}6nfZITB%qow4V&M?XXh5p9+H*MaGDegrY=y~tykVZWs&zyT=q(S2=Yz@Cttv50u z?~>ud{3(A9`Wv7bYf6oFlA5Zcw-wGo?PB@t?!Ww@_YN3#=5Tj11QL^@5m@kY&Z&E? zX&pC4`jRC}ZQ`>dLS9=rZ4^38iZ^}btNuKv4Ib#_aE_5l6?z_-R_svfeY<w(=w-9c zG`K9O?Z;S>0~H$HKsQ@m?SMGSgm>&am^f|lZ<JLgo_Y#~lUxt-K6PY;neb*~-8%c+ z!uv6E>Wrizl^QkWEYP2<(0yY@qy=%<J+D+E&S_CA{7=957wg`&lPzDh+8<9sFMifM zODfNc3=>mc9t?y;7*zN~Vod^!I%n8W`~5=?+rR(Q-#LgXMno1nJnzfz)7tz`e)d)e z#Pu6|nupi4*m(z7c}_ndX%12~jL?J<=7NNT4r{TnNXS4EPzb%q)n%x_NJy2s-c1`! z^BvDImM|<%SpM=LLvAx_N|Wpdc=OBb3wM9V8aHWT!!P`>mp5Tl;RVGZ+N{AQp^8F6 z0U%satj~@bWzRnH2RpPcDPO`PcO{VKB|{jqqLG)7flnBE`su#j@f_-1vrJq3KNfL3 zE@<p=W5+sYy+|Ywj)|}$grDTGiMA*T!8?{$Hg;<~p2v7^#|oXpi?`9Qcdwx69QmC_ zPaG^pDj`x}D6FdHt?jRV_7C>%wymxNygODZ{CE%H6iS^FzDF7b#QDsrlL9Kb0MMF_ z3r+wd38XNc>-=1$c#dQ~5-(f|Eo&IE1~OdYj&4La;+_L2<gi9%bi}I-oCaC&rS_jn z6?txI*RT2P=k1bn&-6&tqD71CNR4^-GWLSNO+jf!QK~qyQOdy0&Z*LcGTw;nY}>ip z)~sCN#;^CxP8GU)>O@^qDqoZx5v3bHe~UK`A&(t<s*(vBGta?c-H#tV<XD__YgXCP zrAwn0qDhO*xTBmaqm<tqE(~M?-0?)Rw0E;nQmqNmD{paHQ{!h@dsoINz1N-e$pt~8 z+=Rw<&|+DIH*@;o-~YnNriKnbyC7QVhIdNj5@Q2m86{%_herJ7(`U`I!`n6mW<^!L za6X|%RvsJg9JwMnq^LuDKI13^^G%qZxuslJHTH_Q@J<C$(UgmWeR$O;Kj~3Ia7)Zn z7&FyJD0YpNb!0g&g!=pS>}GFl+F~Of`n{9&BuX-h+GP~epQO;=i;^P@mIz}GZk2uU z?t2`hvT@5+Tfb?GwQbYN1uFt6o@|Y!kbE4P&-<B0BkY)M^1{Rp8Q9;NHmbC5-SbUn z#iGq-C?!EbM4K`99WzZ?@(h<C6jNdlg`{CEy61a;>DK8v=bi6>K%R+b)x{zQfl^yx zHOG(me8ls@dv$2j%G)xc=v2#FKznG_UaJg149{xFsi)eW{RhL`X5TH3nv`dO3KI`f zwZoKD9XUu3^g3Z7(2MR#-Vz{QRb{0&e88A;!5_V6c6^ZD2wiP{{zg6G$38Q{ri>jO z6uKJD`2Mc0>)DOhgXg+y?|vJ8)>(dtxVTqZjZ~1<iT4xZGtYbX?RT$%Fg8Funw9KN zk@Z=H&cTJ<OTDv|KlgXdcsVjw5n3oWtv%l*<i2$Ag24H$xe-sa!q6&TqedIz91yg4 zohUDP8+wm8Iv{}+?=2~Ga1m3+kFmvb=6RoY7x-!Yxr{=P!e^dyu66Fx)mpV|;YLzC zrzfms>H%rb@-OpAj+ZWANoe*ZcLqdNtWbH(<QU&qhBteQ3lN;r0U!U=wf3p&uQxoY z&K=v?%j?$L`gN~b>sBqTO~=jwK<Y{xgDWy-g_@3y$-Hx)CwqLI(~?ikH&r!scmu?g z5CrWmXvRXRW1#b`tqGh7+>5m&6`)JTUr~=TN}WO2vtq@Ip$lRRz&oM5wDy>ncAhc( zEI(uPk^oex{gEs8(qC%-vIjUX7{2TwFXx&%KCtk`aug$!i+88*K^z8G_?)%jyao?8 zjhbZ@JKy8N7**3GQjRp?k{lORvN+t?w*qp;ay0KfV<n3oK_<0s-qZnc>R+Lfyc2t% zS2;7?4PUs~F%gYhwzY0uI)-<O4Kg_p*)(%-YRf9U(q;+V_>Vqno8MS(RaLd2Y%TBE z|Evm~gQ~)NF(m<7_{l&2t6eyJXds*6fMpe2sSTDVOtdlMfAzgXhmYCSAN{aRo;~00 z|L!-Fu0Uxio0la~W|1;E#rF<5#e!efm4xWmF-wuq*ea<hYthBN{k{9_z}`J}{`u$m zpU5*Prch;3#`8khiF__3B;r(84R%bhq86f*RQ2!E#|4cP8)L^25n1I0QIfJsJGg(3 zTZ$r8pd2P90FknZS<L|A-E`aS)~bC+@Aa;nYrKhLp@lM%BGSR;eF@QG{ZAM*GIZsV zM<>**6G>2~T~qGXKRwV1b)7lvRJX1Pu`-A8d*|&Z%`>4cO5LELq$V7%gHTs;CE-i4 zRjC0?_pS(xHc99^MRdm@_BgaBfmqq7sT*r3x<=(@lc!E~Mfb+qRX$R@cY-0|sfMH8 zv;>B@F5P-sk8YiPOy#L#LpJMa`7@yexN46(!ku&mb@q;+jp=36hBsE(#IF0ot=7A5 zUpsYh|A4xVJ#@`yymu7!kdf58Pe0qfeXC8GJjG^>A7%S@ZcWHl(ww*IhlNq#9ErR~ z^AWctR=VR8SA5iSxOlj0URxiQ7AjYzsAS;#`<0iuF@i#p*Tmc*7g#^|+)w6`LYJZu zQy(Gd(N8?=o~jr#g}d<S_Y^~g6Rcn?!H*APno!(2pIXCg^dq~c0H)2HGsm8O^dSdN z)%CHj>-d;7Zc50PNX5}KsZm9R_3hX9gmE=jag!#2(IktILl7E~ikmlUraMSP=RyOa zG>k0l38^X!iPO)yz?!#cWv8EZN=S*xu!>V-JVWSk7e%0m5a47G?U_4$syC$~eVS!* zyzZ9UU9ooW+dt&5-4Kmh@D^KZDRz-fkq#R*;&HDrFSycFhWH{#C({V4bGPo!;0Sn+ zv!W<gslBE1LuD2QKeA!m*f9yd<?Xjam&aoFVY-=J001BWNkl<Z__Hc>9)bgd_0NK< zqteH&zs3H~&wgT?x9xP{O>KIdQ_ot)4f+50g|j&kEJB!x2KDP@-~0Yw)#WDAu$aoO zxW@@VIpv}JL>4M@4lA2ElrN+Y5xn!-V~)W7*r%_zHXS<IS!bRZnrXz(n^o+x(%BF? zT;$7k?AT_H{^1X4E;4C0kp&l#ucsF|B^y|%yn9xmXN{h`v<KF|2v*dsN<GijHZTx6 z96M?N@rIv$j&<$X$A%0V7}&QYq_V=|g!fM)6Uw<#o9*NrX{iX|b}2atDelp}TMzrn zJ>T}*(ZPwF83F=hf%h)9cU*9!A%28A^{wP19iNb*XQfQ^zC?Ctj6!Kj?>>Elci|l3 zB_a_D#iIZaOkV1?XLnsXWApliASY!I^K+9nqJi?2OF+EX^N>Q<dumSO{U1kuNJD{( zz+;{^?m2t=%~#!6VGsNEPFvt&oPG97cUj{K^D?hIMINtTcK=|&$Vl3@eY?$@F}1F- zPec(NH-ZUgFRh+P@B>Mnov72NZ~UCyb?2SdnuZ`7H`^<(z3w^k4xKu=0F7&v<2~ok znF3}7+6(g(dD;z?G1-U*>)E4ohXA0OGkKgFV7g@VDqY|utY7(>wQbYddiLoT%BqS9 z?7Xw7$d(KLXP@?{Kujo8c(1g9QCXvcE{IK<G%0H6>+gj_i48TSQs&QJVDqMo^VFZB zN=|8;@-|@9cqv(JtpVnQ^14&|wCX0sxUgo5MAjF{Bgz6-KIM-A)1$~~x@Y2YU8ssx zVH2mMg0Z0HM^WlcsTBH1Y~H#(>0bBjlLh!B-%eh#dn`2FYSFfXV<LD*^5^1UD7L2A z-?PT7sUliL3CE8b=?spg0CD~-e+nqBp%19<iGNmyRrz$tP=5ZKhwPl;!)@V`r5<+Y z%I384yzY}ZczO;($S7*YTQq-;{pYX$&Ap<6P@a42)W#-2sw@w2oYTy5+A9j7a7<iB z3s~Zm;pe)NbNbAEG^8ji=(HBktAKDaa5N`$R3hB;*zbR1YhPOKe-g?j(#?s*_^F$2 z4_$_^__D&dJ`WvBv3<LCR&)HQcXNYag+nXlCaW|CYh^viE?qi#y?lM4u2@jSh6^F5 zDHFz@kRFkDmv}!(9sKF%U1*no;z}>WVScG2XT9;dR9`Lxc(D+wz+1~-T4j&@*RQ>K zh|&vj9eDe0eLV^R!hPVtfxd<uM6PV;kl$&Yg@wSYK63c5_2}N+>!1-BfiFH4hRNn@ zWM#F7>-ee5o7ufT`k|*Y2Ay)Me?{Tm*b~)0k}>1oOM!W;E7%0#BGh<BC17rJr{!@1 z79HBR$IdzD9FKVT`=ki{ViBKM5wL&BL$2Sj!RAhxkdU6#)`U)N%C(9MTP%FxOddYq zXYl;XuCn{S{{uT^&_M6e@Y0GE&hbvWQ$pRaPsZ!5xha^JvPzGPs1%g763wQ**AQ8w z`IILo0}X{v-V>r8H-5{@f-<X90Q_{!YvbvHNX5(0(@yp9Zk~r8hupJaaVhlXO&Z%H z4?SoTpLx>3fw5c?PlM|7iEdDn->e;u#jpSd<*Bluu{^wq&ZiS39Xw?7XHIkP)zbb7 zq*P;C+c?ks^&kDcZ;ifv`dH`Aodbr5HOW)t*|e$BH&o52AAnQbrpBS`mzrAVaR1hQ z-w!+uTi$sm;3xv<E|rzB%vGdN?<k%IYV4QIol!8i$@xsd-l@KTh49N?`?|NIJ@0~x zTn6P`*-(3YK3#^iY~$SwAN=iq1?u1rltPd5=OX72O&(#GfBlzV*!JD~Z1vh#z4H+- zjKFK!q^fA%v)IAQD#iH!<%#v^+|jyr>1;p!+27f-k3E`@KBN?s9Eg(j>6tuwa!~64 zf+Eh>xC(QD{O;JJkDYz?*>#&adbsT7WmAO^t-?fQmEJUjP^pL4*1wvNbEGxd3Pod~ z;z3epO6W)V<UHgxk04Jj1%s!GqQ<&*>)|C;l*5ouKD2*NXho|v1-M0?j2sz)8Y{e0 z=PuTvYj+36Nzn;G91E!UopqS7)=>al3ua9#Xbl@jAp$u^3XUV!+pFII8!%v?cdR1C z;L0b3D8wk;?B0<<A+H%j0&hoUINT>j(265krCf2-2X#ElJ;-UUp3its45l~Uc->2! zram{q|0Fifly4<$$vms=q*~I(3Lq;KazpOqGBG52_O`b+Z7ArQtq2<Tk%taV@fDxG z-k(e96W=c>0Z%c79wHTKo|ii57gnsWSrf*D@V?(PigbnM7B#iOz$P!+ZNLz3EqeVm zSKFSw`@P3Fikwo^3U5+T9SjYHrh}Ir8CtQz;9RLSDh3DMri?w!V_x(syKmxD5r0qg zY{l}WDWg~t^$1r8&n5&b<df+}NY8;`r=8+PhR$a;eIW%CpHs$Te32j#u@jxHQem3Y zxJDl%4Y1hGoxALkOF!(SCs~|Ht`_pz>!e}?qfm6tq!*rj{K*6iT6-kv3m!35y5V15 z;Z1RFyZhTtLp^L*Li&`&5EUEO&vEMfz-O>^`*vrngoA_fM?W``-_^$roC#n<_6fD_ zJ9h3&4DARs8mANDpSc&$MYx?PA))<e9(^d_J_;PXh(;H~RC5b})OkM+9Xz2FyHpBL zX)*HWAxgMxX%cRaT7c)x)1TEtmx5$tk?#QQi5JV&sCjey-u-`TH-6?idw$g#NBA{s z-n>Df(%90;{wzhMFb2X$ge<#u?6B)Ub*26B)z|GO_y4azh!C?@sT0x(lb0z0;qyW; zPa4`vbD=_GLm<(%Q&&e|qv({+b1K6eYcUqc!OJMC^l%f65D1l`&=sPUg5!DM-oEvY zuX^K!fsh-dwcYW%<ay{C2SFj_wqfH&?>Gk6Hv}0T{-glSKr+94BDIQD_siO1q}_hk z-LBAk_aEQ~$oa+7&R2P1L(PN2rF<W5ZD<{5PM+Y%`Z}a}S`w4i8au&E8j`*1-ut}# zr%(TZZjC2lykw8XA@yQ=M&F_ANTFyabBL6z@D+HAq%)4z)Oz<Zs5i;Y6|??h51o81 z5fcO>!imr!IY?2V;*r;NQ%Z84ZZM_kjPowKxUTj+M_}ZwYf$!Om3HLNevb^STDdX- zGfkTsSj+@kRjofc-eKon<N&iSo!SS56VGYh-i`Me?+yhl##uJXQ{btmXCOAL#VY_2 z6?D<>ytUCe6=+8Z4+DEotclF2qFLFpplm9H|7V{m3J0w*>(>w^o`=m527`uB)22)g z04m9bI>MZ^t*2F6zaghP+n@GOEc~+y9YwEw8=q0mHN-fqB_)<LFRCb`5l#{<3f_52 zy~^+CYyY|1ZZD{kh|g&;V?u^`Y)Ftsf%26-L?kOILp+*<pi?$HrN^jjqA68nvzA^L zuE-s7rXhK4_7RGfy}NepAH7k^%!v~U82IEo!AMH0U%J<k#*Gc``iur)D%ej@BhQ*K z%_fYW;JrYy>nRUi<$32``cXUoBUf0bPF<{fmkuYSIi<`s$Hj0iw8maCf3|Zr_?mvu z6nbJoC9aY>4JCk)MBtMD{M|zjTer>~ZO)Pxt!dLHAs?o^pu&gsg~qgC*@Gv6t+D`~ zhi*$Fo*rqx{>48f0J*Zt!0P1p$z$fp@z4vEdZ9wcTjqj5qEoMaHfTV9SC%L+@{1~| z;XBz7yxy5mBAZ@~5CCa-f9F)8Yc7)xUFGi8z%gD{SrtOU*?elevH47!jj_ZOhsUvc z_3EUf+l1#%XfVM&l8|Zg&IqY1uDr_8#guG-{3e_x{^g)pqQRxmh5Y8A%Y&p;Zt9q^ zNhw!K?jjCs0RU0xq;Bs0;opS!RR|P?E`u(P5M(_qJPzI&P!o{`$Q<U*m}Yz4eWy;L zr&SObH0mVBhgjlL=>C3b9z8Fef`=o6m9<pvbK2yIq5Lq85XpcLcuc$kl}(#_?K`<a zF1=ffwQzx+0+S>_6p3J6Wk{$8dfePcl>|55`7P_(sl6LX7@>JaW;P5Q?<?klwMQ_H z9zW40jCjPW22eUurUDr{8anNVj$npS><f2%&HDA|W=oeX^A?`~$G8yei7ZLZQJjNi zJOQ_~u09v3N9*UT!aPjhmWqb99qpaB-?q26yj7soHGg^OnOM0h_Y27i5d(G16M!oA z=tPsuT%%Y?5w+>q#hVCu=~zk%l&4hVGs?5YrJdqxC{|(_K&xeq?1GP6W|v*{sQ`#W z1_`{CcRnSTr1a&CP|o_|%9Y-GU0o0ZXf-k*6fFQR1ptr^fnbO*U|1h6MG%#`Dwanl zx&&yIvcTz6r+5!^_6joA`TA4t1bUH^4uh;GHnMd#V*@W685L-f$OmgeN<p$#ay~ZD zl!62kLB$0PsRI8-nxe`^R$?6$pBL9{m5mLBK6TtEHzc;awl+~kMY`AN@BgeGdOQ)? zoV3cG@L>P?{vX-8H{Nt00vm?~m**3ZkZI{cJQ1aS)<G5mSf1Pd1BbmaLyIPj>}Nmw zS<-^E_PC>^A*!e>OGsLD)kklu_lnCjWHCA*?#fR(h)T7I@urP8S}c6xk~P(Ru37u4 z*A7!cCa^>uIIYS(I`tbqT3zjeAB7{qmp4}kI2jEb8oVA14HORT2`7&o?NJQXU=|t> zX)DO%N4*S(CLV;M6-E@gUBV)JsN#|_%A$BrJoI2ljDI#548D(CMMnU{l>FrCPhD-j z`VaJUhET_`5Rdmk*4yB|7!uTk1J0!3&5}7YlJcn3Ls$Jf(GPNvaXKR|8;jR3Z%o$I zJ2<6i`uX$b*~9<!8?$431F=ikYl?!T-s{bGeBD{aTDETI9<$z4N=hjc?X6e|$gpYF zroDHP8#iiXfuQ0X3Y)<FplPPw{mnNwco|@v<JDft?j_BueviV%P$S1X;)%!Y*%2d? z_Y8+BMPWw(I1Cy*^ZWnz&m6(N?1dLyFz1bxEBMPQy*3-UAyA%V$<d=n9emcUQ%Bpf zZM!XBzT7bvr=NM2qww|o%CYPI+4qXqn6pFFh4mz73ZvM(>5~gOW5s>Q6;UGk(f^d8 zo<HZD$v6wbJ~cq%XAoC{&MQVJ#u*Vim9UC_+4n>m4OQ(sxC9)Fb{#r8Z7|gt3Zcu0 zFSdVWcxzr;wrJ@_;bRZ{*7oe&>z(=v9H1y1&AtNDGxY4Fx~EsKgwLSZnr7!)=ZHOs zLHy?H>k3+?*72bvrDNa!=}+zG;X@AO%$Ci@_s*VA8OAEtl`Qc76)D0!&p?yYhEoA1 zV%QnOU6*9{Qz<>=@-aOxR1ZuUH`+!&^R$!oknR&hWwCqw*%i7!NRD@_lB*VNIy%og z3{NA*ObRu8QZTAdmzPoB<YYhB!Qg%h&+(m0&O6Jd&RJ-G{oQZakweGbL+476#x)J1 zwvES9!->FVR(s3^6yc_(tvlE$gZhO{79XCx_mQw5WR1|kb6vS=rOli;Hc-BX{CVmr zb00iNYNR1O>C>}&2sz~mCO`NonTs|R|B@pUKXeF{dNn{25{?Nn6cYaUXKwMPGwL$r zWGfXFZkXXM$2t1=eX&YoU<{$?S##&v@_93D+1%+7Bi%7q=DI+BW4TguiXp+cke}!f zpUfUPeE6_YUbSk)3(i@uwwIv}+zDmMJ(>hRer;uA8v+Agn%m1W5>60UH3>+MwImey z)?07clKFEBI@slL8*pwwctd0(Lqd7qQp!dipQ0}qv5u_Yx6iv&IZY^0h$s@3q>rjR zZS#%q|HyXl-s1uaW-=MWaTF(SjwL7&P;Fba@ErGpzxhpFN4NBk;u>jBan+Pt>-O#J z{-6BRy7uU4D_>siEjCfe#jd<?dJxo=jh!y^op-iblcr6ami5@N<4yzn=DM}EX7$Uq zZSOJr%fI}N?cIOKx^!$CDkJiYv102f1ppHsjAEWXNm;$991y!;Xhu_0ZeRV*y`CZh z<3bsupS|PxENwcY{2QMk6de1HMlfJpsC$<uS0{&(5IC2(Dd;7^In}rrKrV~Y_Myer zR30_*6Qwg|?6?qhK`uzKihN1k?r35AncMHOHl4dWAg*QWwt+y&-#d+J6_ZbT9+euZ zDOJ*YJu1zsP5L=}_RC-MKOwa5Wu2MolVaoOyzJR~&^b$BiwtS0n!}!24bBAkh{$N6 zAr<?UcC;`!LXyM0#&aq|F`nP-?-XGo-3b2%7y)n6MCD0dJKAuT@Z$fRSES72oU`gP z$u$o<_dNTjfBBW|KYZNYc>T2k3o?Y#N^H7PucKTIn^Jk}cmJCY{glB2t#7xE_MPwE z=eeN9&6*_rs8h5k_snC#%N;ACxOKLq+A3Fo<XllWO<T9Kp53|x6n`8N%)6fyy6PdZ z#+N_8JRy)+I=`;-SYT#K`t$;bYtg!m^`jQDMFKF(ZmxJdftwIaVu6weIeo^g<k0Rr z6w(ny1Oj7Q?J+0lA*%7YFWu!en3Ul#E@Ps=bl=#c%)YNYR}`Iu#rzplliXEQGRWrU zqE6Wv<D$CS=1rS86Q6)i4c*=xWDGs%7N^gcnbg&$C}m*;1UMv}LE{;~Ov(i+Os73o zN-)WILKv@Ev&I(AnN<L0;+YE=+tQZ+aC6nQ*L%nkFjLl}tM6TT$9;SES-<`R?6p^4 zu?4fI+qkEn@`#j(S`_|fz6lA_jjOh*nVojV8FqNz?gF5yN6*rF`s~>9AX$6Z(<m*Y zD#Mx6GW{Cjzr}-O?|$mq>zwrrkYlkiO1-Ze@2RK0d(S=_(7T7XQC|J(I(vTcVtaGL zM%(ztYqtKiSMA&nU1~So_9c7mjr9fPr1dEmS45G4h613A+t`s$dEWs!FQJ?@<^SjJ zzzvBXAEPikm$8tK4PyRQl{y$X7``C5JvB9Px|JQ-6=-yYG><#GfpDh_;^r+|?7|B# z2&szT#nz+Hg*{M1n<pN5*i&NA%*K%cRr`2nxr$0_+qt_}g+Qux!Nni(rHhT1IFeS( znBaUO8vux^Q3}x>DRiZ!09l`N{sjglGYxrEx>_pQl9h#u-jd2#FuTsF!0^qkrwl0Z zejwukT#L%KA^S+<^Nb+tUs$!;CX9T-R=%*@qp%-L4?O~t#R3cOE~zaBU7N6}-TTdN z*x0EvJ@3vUlIM}7lV|1BC(QVqkSan{`Bm=cz>K5E?4ondu;nY)*!|!6h8;Pal;)tI z3hGER=1;CC<<dAMa6oXCHS*l=r*FE=K^pBlb+z{G+ZKdM>wBNL#D+Gc&=As<i*ma< z0urSL63>cq7#P#eKKI<Pv0~#PJEjymo}(DsIJED+yFCHKjh<u`$DxNz`i?7vC=@n= zxN(zacEcCHVlA3AwNr<k>A4^o5dy{)^U(PmqXjP+50VZ{BS(#~<+G<I9OG%IJ*hiS zLhdo~h(giOJW?vB9BV`N1>aFRhE|DVM~|{43+DU$DwPqc9%`%H=)CgU>#d@ykt4rV zf+nM@m~fKt*E6B$D7|`S#1o!_jC+yC4Ue?X#1Rb`422GbX(^8`es`_6(h78`dVbLY zn>y-=z}6NMkKo-A<r#L?+19>uck9)&ho^0Pu2P{N!qRDUB_2-(5|Jes++vzyH^$Q1 zdSYO@*h8Iq_OtKZ|6|*{VZDRjI&|n53>S@;_iuKcWt3u!oj?3^+qrYMKf~HJt8M$X zZT8wLYwg{4w!0#tSxBdzecf|Z2>N7%FlWaVK<}P5W!f|w{p_>0`L%@3S_%LUU6Bv9 z5T(2cjEm}|i|th@bb<Dy(0y(@cXcmPY=5p;Q(k-l;)I7FV%W7$UuSCDfAFBw20Qkn zQByysZfKN<qUrhALm2xs+6lCzwKO0}JY}VBK-hDMR~-Q0d)d1hSF(YA@sIrew?>`6 zoUUL%R98D`4(mxYvt7G(1)=Zyl)BC+bKIpvJ8wF(WbUj`9vmxlU*43ghcwECAHCAk zsi&TKwvWB<@DVGIQnuOkt*LBO@OcGY;3^wgyEd(yea}ITYhJa+wK$gv)}U11kw1UP zJriyhi3Nh$yJgiT2+;2TjZ*&kzy8{K_2^;q7cR2qEt-2i3=2&FGAXB6F=drh_A_s7 zmxk`R7njPa@D2y{?PdS`&%dzoPd$-r?zBB#!i|1%UV5N+Ov7A|VUV{PGIW@~OPpKL zLW^rXZW*Wp#vww%dY|Qqlbvl#jSyrZDzt~C$l-x8jTWNfUzRXtUg9zNSss<<i05Oj zUs?B>&6+gc7SCT~cKmQaTZ)Ma>pMv;9J8){2HEvD-Qu?%de-?#9y1jdyi=U_%L--Q zPu?NI;;qeFY&v8P<0pE~H4dvO<n9Xn*irMk+M924f({Q~R#myjlbz2}|F8MQ>zzFI zxd4b$9Wn3ZIjr&)_VH`4@!V&(ZrwePP5zwyq&#iBe%Ub<t>9k>Y``aseDX;LzT`D1 zsms0A*oQuTjeX>@%k6M&rS<RM-{-lMLeEotC^}I5^A;?$1=ACTxVV}lrt!r{B1C%X zDM?5;j<&>ee1f1#_ZNGK&@9OB@nh=pfxIVCmROl{57zh_KlocO!vX-;ym>SCfa5)+ zv9yQt&J4dJ5`keipkIF*JARyP-L%0rZQ5jOSFf@i+qWe((*W=e9k<)>xyPINP?Md- zLgc+$)}WCRpf-Q%v>8saqUwkOk1kL_*LcK^CQZC&|Gs_QIHURiqcHD$>WqrfPG^~j z-NFU)9OJTf)f!h`0vslawLIa=uT5x@2cI$AuDs?t#|@C0io?Ri<}|yX8Jjg)wR*KZ z^@ra&S3_)!@_9@Yq=qHP2BKQD6pgt6N*QYL`l|Yca;|5ecsNOkrM)9Uez~GWSkJ+O z5+JA21bOS0CleT_L)+G#CYm~7f-Rair;dN4h=-1x_{ASaxXfI)Zk_e))!PmoI&8<P zYpu$waO%2<!s5=w@A<qUN*TBzeDs*@*t$93mQ>}Uj*{6ussI0fqtIP5CM^<`i_qd9 zFKZmADdEHY$>091EnoSvy}4<#cg~_cpcHU1MP6)k=%rb#>>~3wzUc-Ju-7+jw!iuQ zUlerj$tv_hP(-1k_syJIrmC5y-jqfNN2+V>(hq;Q0EANCA<~8e%!9YW94NeINB4#n ziE4ttn5w~~Z6Ih;l$1PRR{}K&iank~c^Pm3$V=zDFRWN;Q${^yZ@j+2DNy4sU@A@V zTzU#*y6KBwv28ncdd`)$wE)z3X1odIUF$o*2r1ekzOZ0c)UGgLW0H5S^<-^S4pURn z$j&+IOpoTsTdr@P=spJy9Q3~8o8Nrhd7It(uRb1Hruw$6sPYKKEnoenRW)ktIY`YT z`zIUy$(v`^;n;z_UIjojVDf}<f%CgA_jzJVV!C4qK?|6P9AupL%rj=Q1{}|bQOJ7G zxJ2w;1?-4{n5e>gEs(asIFkTIxuSTy9daf-o88Nd4-k{@QZ?W;!@IYK^htqIPaBnh zGoik`UFRfil4pb#6KMLq&PxA*gY20nAGMV)Ja6xA-)?Wb@<%&%V2?Ww)I^h3gR1k+ zZ{8cq02PJMy@XRJ72RS@N!4uFvenNftzkWvo#xOB(u*kyTfN9JKz)qL#s%}5w{NrQ zH+jl4XU?=qW1h3kudnmRro>5PPpTpk5Ra(KDML@Uo_+dT>vkRd`_Mb9OgK+I=vnZP z`5rlY5bj`H#ys(mZP~EV6}sxplY6Ay4I3xDGKA@gt26481M%l>&{S20GEYT8VzMWU zUvOBreEAM*+P0$`4j4GBoziCU-pNzue2y#_(yzCzePcs#D!kKKiZVZ8JyX!^|N6UM z*rp9{+Rk0OTq&0~Z5f8Esy=MTDw>%7jh`d_Ouwg$a`B?Y9_cy3sVI^t|C1DY95T<c zrDel~E(}uu0YAq;v%v4}n;@wvuC8rl-FkJi?|$zGcHzYzb_TgdjjF71(-ywz`Bws_ zzQf(n&k+KI_J<DaYya_|zp*DC{GA;;N~fa2P*S{E^HA?GBOdg&<R($D2r4e`FhuAi z^&sV$7JE)M9S4a8hJ@tR*WXCkwkA#p3})F7Gz2TB4jmdorG(A-``FUXj;Hj4evd+= z3<rj|QBOY=!rtVsJUdcb?KyO=Bh}^pEazW#h1X_RS5#TQKD`4uL-t^n64GA#*|eDp zi&+y!C!y#RjB?@}C5V2I^_1bjW_IRTXFCd3A@YW<Ki`8r4SWLp(3HbSSn!z(gvv$+ zwWHD*@bSmsyHfKTKZiV5em8pLQ_c{F(93O&NK~t=kpsoP{Pl0z+uL^7rI%jfDFUJb z@q6ZtAODVV+2hR5l6kWeZt4RGvOX>;WnY7d`0Bmia~^}iLx-PWJd|2Py(?#mdT}aN zMm+onXWDXHNlmTGfP`SGt_zpY*F>@6`*R=YN%NGPl#GD0O6{EX-{|pYo_X4p`Ifgf z*()zCO~_3`b0|ir@(?t=tMQb(cI_VCGf(j6?Ij{DF@VZL-}4u_@k?5P5NSNOl7%8) z>e{PMxNYp2XUAggFp3H7Yc2q-(m@O_Qd|w-kW{l=*O!9GQqlzwARdOVj8Vps42mO% z8b3DDm}}kz*#Ihk=Jcrv&-mu`1;kqVTV#7#<7WQ9S6+9cmvhkroiMnJ(L6bnCognn zF!rB)>dAoqPWB0<x`_cnhqY@ydy^fhHaG5N6rPM6z_ae#vzxuVX00s(u=?DHB#IS* zr2T%G6ms*{9i4a!8Bv{<<DJa7@pmh#s_fvtJ%OKI)VZbZ_a`az_{Jwtqh{z*3v$hA zxWWIPoJ%?>&V+TGAY4ME!N&RURoB`7`TL*Q)}4Fpl{GIL<u;`@{d=7}{T-WT_-TVZ zm;Q^N{y2E)$>(Y7OmU{?)ThhHiRrm2RR91W07*naR71iDEEL_)v(ELL42=Q^zvw+g zj8W>n5NMQhLCyi&*23wNl6HEju_2I#cceOY)NcRw4?K_UfVk$(3&PK(=19f^bC2+# zPFEhJJgZpA1%+PI$U6aXXnXV@Y~8zd4y9vx;lsQG%X8__f)jv*Bp4DAo0vDhNi8YW z^kV&=bJ4{ir;UeR?8*y=E6o7i;_|r(KeQBp=N}`!1QfuncYWPUVop1K*h!=5H9o=^ zZ}6!{9}2`S*^(cZ8Jvf*3hU6dtKD<o5A4l1*V}m)To@_`8nWkOV@-GzShgmPe9Zq` z-U~v5i}{6-4kSOF`uYwWbkc%Rd#QJ?UQPm%Aiw8^*0YS`EM{pan0ckoLARd0taGPM zfh>ma#bM|;Y#P72(7&EDKj$2$bzZ!9vAwu#X^J&T3<x!U(chka-lY!w6Ik_Rt0OeG zke$q1xF})5TmFKVaH*|tc8w7HpTG0#)`oC<zupD%puY2|NSngXn>KF_&5JP3Lhp!_ zJyCMiu{@Pc>^t}WwH-gW&xQ>@)6w#ZPHLX{H!so>KbOj1L1BwFSf8ID>&qHB=u#kE z>a!KCYseYZcO(PhR`>G9r^gr(N-=y2>vYZ~SJ+3c__$*e`VJUU)NrV8o=GXtzXCwq z@_Exk6CwY*oSq*3>y$0DA!jo8J4N_S8hXF?MWKh6NFS!YaCEVUQ~orjTqVpX2Dt^x zSGcE&bt;dwp)XqB_axA<^2wcmLjSja`?XWTV(scuzviqr6K`gIjuD<#-pq5ZpmqE7 z>FtURp^+B?%6m=;Dng}DG|rtfCvB#YaH_{O+5A0qr|LLH4v9-ChGJvp{XPzrI>&g* zrwwv8ZdpnmyCw}qgWBEp?hZTc^fRn=t7aZzKbb3D2Rz7WlO`sSfiy*vZGhv-uBy4+ z@cGYL7f06jx3+CthR#`eV@m+XA!9;pEnBtp$iU1=;|!7)C+ty^6;cW*0aCxggWUr_ z(ZPfVJ|W(-4T%i!o+yCzul~^<_-%^(PMP;k>|LEG^xnhHw_CpOIajP8ca_6#=={d} zh=>h!_6w$tE%<YRsPJ|Wj34^Q<xYCSdB8|&=(}ldnODN+%a$w(eEe~(dtJvoc-pUU zhOO4ETU+Oj9Rj-`>7P;xfD`~BV<J#^R*Y9wUTc4N-~rpPetl4`C^k4H;@qxkqx%mU zY#qDxwl=MrzbA)*J%s`Qm*DBCv}2wWdR>il5~-ww^|Gt4vzE=9+Tg*1gRxYfOo%_{ zXK^)9V!3SI%&?XM%3_En3c5TPg&1k-1CW(N^^LD|3xKb+YgQSQug=ww%7$!Y)=}rR zRbDkjT7$@da0<$6H)Q{6@2b?;jo?{x9n(W(FtB^p))@5Kl<NXMZr!#`$e%Z49KNG; z4YHPUQp$C=ZhXD4Tr8u||71np(1)w%dw-fjk6)^x50t5OjW>Y6I4Xydw@!)BKmOtu zE>!TG>kA!gQ@+=KSx`{1jP*}{`=dIpbW#B+m#)I<+Gs@;I$d+xboAQcs^+cilv7W2 zPg@9Vc^-_(du5-Q`|>;fQ@6Bf)27>)XGWRr-|oW-E$rVlP^^R8gM_D<vJ|nB9XxO# zgzB;fH#;r@3dXdpJ9gUR5B$b+*)idWk43*?t4)yRHI1xwyH@tSzxk=Hd-YZC^&aPz z{W*(tAk)}Vv=|?IcI~#Q<44=l`EwJV=8Qs*k)Gl<FRwmoXPkRMfk4jN1ELA#nUrS- zKt+QO<$9eVZu^$R;!bm(&V*N1Vdq|au|d5`jWotttk8qum(tP}+k<=$j{Nzvr`ux> z{LX1@Phf$HdB4jl?D9`uZKt1ik>{i#<six<!!~c<#LuF4=KV<9ys~y}f}mZoG`wS+ z|Kxrkg=x{+t!E!Mb`;((CG>S3;<Y9cfsr(C_AKYZR(*0zZA%H4T289m5hV?tgK##i zk@bzsn4F{Grw+D<pBQ1A-gwRT54mhE&2NE`R(;&Qdhhq0TO7|ZYnat1Lv%h-G+Y4U zW{evZ(o=P%ok<0X%BoO0R1Y+2k|^{zqLk;@=()0Tg0)l^M4}(+8Ly~LmO>cjy>l+P z+&i81=-DI4q4@s%9IszI2c$Z|#ZdORbnyZ&on8I>;sTEGSh+dBNKLs%mq7H3Y)WD9 ztbvj@|JujeyYxLE+T&4>+T#UjN1T~!K6i`nTj;LibY?@>lJ9|4dV9+jdujRNq<_V} zq{VjN!;d<<<uZvjR3E<2-+O-*dK5m-ea;+Z9)Hh)WNGhUfuG265q^i4_iulEzb#+2 z+IH>Q=K>~1Me7hqam0cp`*YrRB@9ri2lgLu;oi4<SNoS={mScf6TnAB(i-sC(NKrz zf+DAsEk3-E8~}*JI`tB=v^hrh(8SN4eMSy43Vqx59X4;ql!S!j;NiewtnOHZod_Xb za@pn1mkb~dZ%kvwf<0@DWCaQ70dh!>{_a0RO|68!x;DkVk3rAU3;|?4R=BMHf;Enm zdfxabbx_zFH*9obmt~8WdoEJ-t@6-=LN6<Ks#y#sO7zHSOTotX&(3FdfAU>{#m0^t zkuV0<91O_%m^Sm{*L}tY4jSa?3;_tU_lxH;79?6@d30iea?0TdtKs*H4d$v=cGFkx zuqKTv?UYl8df6lM%U-1dq}YDvHc|r0LyPj&*}YPurB1mfBubpcTkraYb?Vy9BTG_T z**zK?4S8o?6)6*+d&U;cn`=9^tPlO<L%Qbpac@!*sw0M<?Vzi@`}PN~8~jXmf5zi6 zpS$-SaPDkM2p7+u;Y2HLD5Y(Y9n6`^7rieeD*&ia=wMp}o+>3rvY$x-Y~8xm0aRjd z6xmbEjn8*cc<N_Q^rL&1PT^fk$*owiv6gT=K$tUY$|N_IsCx(Z0A@#FchZD$qo^xy zxyy$1?`>VW_4GZISK65;m*TP6bG>@?^d9IZv@VSnMaD4CqArM)O<OssmJFC;ay##Q z5}EDRv7Iei_I%nXWli{+uqRZzsCB8pvGKE)QtI(u#_4)%(_8k!(nX1^-M`y=DL6-c zgaz|snj+NeV-bCyb$9OV{xpUDK0cwsaJppy?PW!!HEq$_e)7v-+i61v*~-;xt)e1r z>XPHtmQvu^#mx#RLUwoqhxhKX^UgchmM&dpKl$NbIrp^ZYSI>Y^3dZBM)7pieO_*T zhnyNf8YsHhJC8lAVoE{Jh&4``h?kJfnHS1al=l>i5KL_f??bQ>AD&`@Ijj5xW?Hat zp?i=C=p`|(bk$WUB!NZh>^t}9Z5=yz_K<Mwb?6{v6<t<H3HYaS7&@KBo~y=;6*}Z6 zD1$w_ciQ07P7firJVl!IAo+j(181OaU`u9C4{T=PunPB4)yi)E;uoAaC-wmH1VyR! z#M7Z4`BRTS=HN8S4~z0Nqu8rjdG7O_En9qF3XzOaTTJ;#Ftevgf8gm-21aOD>|S^t zA@Wj2=dQ$)q^&1{kp?^6`wb2u?NUZyb`LQwRRfeCP9F2DEtoyS1!H`6M0_Fw8$38j zRup~USroY{C74m@g!lXP?c-&Do8DaS=`zBxTqtvBoI$tynN6!Dx(ztpuDjs|Yu2op z8-_yfpNvDmS%Ei!sE0F(&6;Z!H3tKLDnul}-VpLnjU}oF1pdp;Yu=j5AVX$USJ!xS zsG!7h$Ihf&EhTbMG%@D*xZ}S6<*a?w_cO1tJkXf>T`^@V9(S19l$wfVLP2^Vt<k2= zpQcp3`}X%T&)AS?h*D>Mc-{_eTHE~j^O8FM4A~T(a`%C!d;f}q2M;<^Tb|*Nr?z6b zByjZh?K^Dr(@z8-Cx2Jqp$BD^RBZjvQs^n4w2*}F_ru2uU1S8ZhGcbKe)aYC%U}M& zR;+o&=`!24O8|299fo3pAU-tQ0}GJQE0!zP_OMfi*pdIPjsEH1{J1Wxlv-pQQlSpB ziz#57@<))6$YX}ve8<k+ZZyOIv{KK=XB;9ttC&;W(X3^OKv%OH1jfyG-V^HGiz%A; z5XBo@2Zw*D1;>M=g(!fy6aGg1hsiIeq02poj@hs?&$3SKTNfpEDW=pR_rVh*FG$Yy z@dtljSIf&orV*Z)MiVa<%2$x})MoeX-6QOYQi6idqy!ifPm&8xbx0&&Gn0qKI#V_6 z%B6X8&jo_~1`sE~l%1Pm9=d)XM+2T;vZz3z7nH=v8>nh!KmPeY+lJTIc{+pjiGgAb z_0R>ZeCCNq-1DFo+k021=x-DrSMNbX-3Wzg3*wv|J9p)#gi7r%6gmnPKpeT&xTBj7 z;s!)*pzWn58v>g)ty_jOt#irOWxT|Sho2RJU_BLmaDo5E`ZUUtMAoFty{%`;s(9|D z2~L3bB#j|%idZ(}os~E=%)Z5Nd2#ttn>~H1gH@BVv4oq!4T`iH#J&0MeeE-!yU8k= zwel9Cq{13vv@oAUCi(v1qt({8S9d3Np-I!!(WC0RaiwiUHNG$}ut(nW{U149ao^qv zkGkGX>!>}IHHIZ4cvmnAFw@POF*VSV`sYzvtWLovydvND!H=BXkd!0FsOGt$%A9*3 zpWzA#l&_oDN7V!6zK<{ruets+M!7B}YeLeOa`N)lSA<%>`?p`ZEKnW4FjRrQ+zG^z zsMZJJs@Fr8qSb*<^4iG@2wAOKa#^Bz|Bv^G(kb?tHV~6Sh)Rb~Wi9Ha_4mL0H@o!W zi)`-vg`SgE2s!@y_cF2Z-z)r%6@1b8=h-6<{@#B3ufGc53zchS(Xz_5hJ%v!bO!m| zu5DWzFm$-JYuma&Fg4^^B|OMQE?qd!!Ay`=5Xw@2?&Mh#PZ=^0d5~E1%Gv9^;*eUN zGWRt|ySl-~B+sgVgFoHKLe*P&6TAQK|G{f8hhOj^H$Y<H*pT<s8px2KDFGbgo(~jN zXk1y4daiiPjheOaP_$Ap^^K=Pd^i=7O5ZGBFt;vLYt^CtQwkkC2Ob^ijG?CtF3Cn$ z%4q7@y}LJ_p~Pv)tm%n7OaYD_@=lwiNKgoIjxeTEpCUViKjA0OyYki>V`<&`jW+s; z2R)r(M-z|Pl}=Q>fug(Y%B#I<0PtR{OzWH5_;Uo~>X%pAtjQAs35cRBiA*SWnqtb; zTDELy{RW@rwb2M-3E}$Awmv714PIpBiWhD4laH2+dMMhYTz2;^on4+3TQlA%YrKd} zk-x!nq{Zgqg$t8j?`4hB=s=>-h2|Gm10}3<0_)tRYXJEQ>|5-7X3r{l-Zx%bmvliK z|Llp&lID5+ooZ@50&)4(*Cy$O(~|u1$zGh70R#F6BMm^Dms>_%zzRXpNu!ke|L$kb zOh@@6QIJw=%Ja&2i4{NcPaGUCELr4H!w?2fBLS*)r(&UF`*tOH&$Xt^yV~e7Hvb8m zKy-4~*3BVR<L5LJa(6C;4~Rx@kV0444vU~JVp6y#yCLd&<W>i8OiWIquvo0vecTpp z?C62rj=cTHfBLyMmRPZBjdknZ#SzU?qA_UXWS%YFVDZ6)%5mi%*V=#n>#v-&L4*x4 zAx>Z@%9I=sT5}STFW+TW)!32WggoENLE@P(FqX`l<@KhbLKR`ZLO}xH(b27UpT0rx z$9dHH1O{V~ug5DJ`PjpS%``HlddicLi~Raue9!aP^m>nhXD71`2uVCGLeU`?8G#YG zS6o#=yFwxBhn+dx^NKrn?sT+rv3ZW85b?UB5XOz4Xw#p2%7J(>nS(Q$)z*Yga;@97 z_Xv^da*MrVRzYYyO2<~b@O)r`N(2Sn{gMuHx|IKf$Kd=+FY}Tv(iwn?@*-35bHoZ= zLK2U8@v;|e<WnPU!%Or09c4f}E+V~%h5_0l$BSSrwP*9ZEIc{(I_o)U@>Fv^eh4xu zDy^&<;}iaUtcWJo;=jR{+B<^=4+-pW@%z=M0NCH)8Nk;pTR7Loj~bbDA&gQ);pI|n z0yMJ%PyzfSY9=9{x1L!UAyhr>T*=$h=tj*^d_7YW8^eW5(M>VL5fzZJl=YNLof$=! znA>HG7ZuNAXOP(No1ZcKEH_3;YrGeOo980EK<m=6&y5Nd1pd5HX=$wAzz~rVqbU{a zhJfk>a?E?rJVR8GfmheP8j$tSPuG<pR(iF|?RR|14YL6Q20Fr>h$|7eVpl8+wDwB- zO_@B&yVpq;6hx<^`tz9A{bXd_|Bdg~tI!z~CGM1SHMP!~g_j-#fqUvFJ{q;9`n|I< zr6DK%KKn1V+8*Le!*DTGVcba!CHWUW{+WIL#_MhIiq)Ps(?R4=OR=BqWW@`s&@aCu zJk-5IJNy6s{olO-L4_R(#1vBM8Y}kD`5mbO6gnYV!c7o4loA;AZMy9{cG~=DlOp79 zUDq*Dpi&NV@fBBE_io*+OZV;`o=e88@r_+fFlLnlhn76{^l{IHPG|9<jYCcxWF1<( z4k!;B;$7t_B*u;Tp~-=gT5!NvBsBczvT|$Pp^GEyY454dQG0g2>z;ZsWy`o&<?J2i zg!Sh8^d=`FAwXP0X`6(j1p)+|dCIUez5Cb6T=BaSG2se1$PF6<+n<ar2@gd;z(tUQ z9D4e&&@xqfKW`pmqm;2wc6)d1u)c#%@#Z1UDz<Kw=X2E}Sirw*drcH`eTIvkL3vp) zC@{T2D>`x1h&meGic0r(k~9W{GEG8#J<US0XGHhS8V&K>V>~h!DAw&;-m)=c#(1Nf zY_pIUm&4z)cW%Aot9~mX-0L%vvgcR1Y!K1j=w{@z-n>Yu1ec#_xf}prE?TBS`qZIQ zXKUZFlb=!TN3cP82Djvs40E-UjysO!a~M!InqXf@#Wio!-ep6lE?t6=R?1k)?jzP0 z!xuw>Jrpo5>Di3Q#v~&keWHx4Rr`+Ct9L)gW0Z;#N`}W{GtU^KOP4N5no=#9>-P|T zhzOdR-B32GDw~tpw~U7@K%elAYC2N@j`ij`Y2{103I9iV=s}rBWjH?Jlp|2WB_SJG zECs?oBlYUgmxUiVXr)QB(A!(zlQQSqUQ1bf%-|{i)&KV&*1B~|n>lx(b?DT|Z>I2L zRtQKKG~{3ILs*G0CX34fgQQ~2=u!5czx=r!*t6XQyfzZw_i#&G#*oel<8|)U-&v?= zRe1J!7Z!w@;tgBhv#E>%kcI=|QUrFEFPXzL{K89|W1R5505m+3EY(uuO7Rn#g{jTC zzL(4`U_{C)GB!BKdirH|>o?H7j`$#D1x7I;tz4u^s>ogWRK}gTqC6erLiq|WHKAxc zSMD802lC!ED=-)rWk9(05C8FNZ+oeIhhp_`Y1(Jt_OIRTtxE-nlYp;p{pvih8qc@x z+P&LE$^jsb@#1-s!t?j9H75#!YL*-%LKVTzTFKMNzNgkGo@;(b2z=tiiFF=xd18$R z3`X^FS9G7f{Z9YA6fEPFitJ?9m@`DB2%x0AE?{wE9YVo3-u5LoddYhdlGVKGJ@V!^ z{!GkXbaeBQre#Y56=_UF6f=9p04fxEL)J3>j^qQ;mRDYR#a1j|mKgnItWDzda47<U zvx0$7Q~={l`DEqLd575O&RbK)<dTs!Z{GY6QA!R=#QTt@#XOZ#Q*JkZ<qlWqM9}iC zYy=`Z=ll)t3T{cp=-Y25To~bs^XTdLLi7u#0N@b=Ou*)NoV@wfc_kGG#qIp*lfB#$ z-4q&@lr{ER_q)IU*LL*C5l<<^fa5$lpmW6ig<)WRY0g6g?2+I8M<DOY(#vK$KmLyi zxyOfwjY-K?!F4jV=sC=4K@pZWae7bnmSqFNE<}C?Z=DP94t0ifK)dxD-?eYt`6XNQ z;>$r0#-4R7d`fwxd7CMIKZGVN5#QLbF%|Z63wm+$-E4!2_)wu>hn;ao;1w=qofbP} z{GOaE;U=}8!~i06>6<-mP(of1>mMQ9v1<<(_7ePAWu6^Ng8x|RtrE_o9A^6T8KG&& z2?8Suf8#+?mrXgBypDM96wYaNL9R0PzB+ekXNwjtEbLY#wzMcur~7H#K7IPS*Wm;) zt=oE7FB@vhdK>Y$3L`%FzyslZ3qtO-wcY>*<Tw4RQRoe|{^NINeku7WXgqT~DL+&b z4}D)%3ka?|@B5*LO1%|is?1AybK3uUXSn0>m@!(W&6wpK>?r9HXp1pj@E<?w2D7L$ z;p30<*?P8y7!Vi_<amYr78iDwrkL=4zagic5LJrzPu6qJ8W)^>s5)u4`oyD;hBZ{1 zU3EHBXDsebDHRNHT-|&3J>mG}$qmUEmq)2LM~djh7hbTJmM*kq3l_UVkLhh?yby(? z3nF_+)T>fpj3r~bm>ft#(TS6RN55<54x2l3hRvEdrhqp1M53>x`{H#se$K<uI2N%S z$}_n03@D5=n%%I6W=tCIy!_Poiz7bETd!O*b^e?gA`-3JwDs4+c**YH?4HuQGB0i0 zwDP7oQzlQbrL(6xH%P3|@z9%e>S<rP^G<8tqE!g(mkPIQ?p=n0Gf11KsA9p(b<?IZ zbu`6w`cDz9m^>(N?f#s<t2gBCFPethQK;>^^|cExxzu(+K7S}_G5UU8M~)oz1NQvV zB{plqSO?4097~!r#8xihEK0%f(ygM>DPhZ-G!J1bDYBD!uGoXhhNb~{wQSnho_gZ( zlye)7<|Nk{huyQKc7$s`f5$!6sH)03_8MS42cKa_c5Dik>B&4Fn+yU8m5>q6uccd5 z=m~z*YOC5fV_N?qr#jdsFHBh~q{#O<v})}-Zo(v+GkuyJ-nJ>9^d!oeeev#ly@>}+ zL+~E*Eb#i?m+?^olgEw<3~>d3xS;7$y5QOxqrnB&DQBGRU@8Pva!}zWPjZ)emkbv@ zC-kIKCyWhLvkJGz>no0E$Uyq`9}v<R^}Sd8IpZP})xl1HxVT0-%Vfrx0~Jj(7t$G0 z=-GMBdk!hS{rmRXkRhkos+B8k^33_RWcpO6&7?{~WowFn(V~@exc|s;Z?J<xS30ZM zyUN4CaHy?n>Sb~*TPDnDM0q^wK^-{Jfa-*;jYc;Z5OA8)v`C;v45jySb?em8X^H_; zdep-^TqR?LoIN*Ax$!Ul*vGwRHjICrdnBlDu2SzBD_zc#5Zf=WTIE1I3`y_embMJl zJq6xk58d>YuiEb2d%T04ymHQ6Ra9$V?EMv$fj|Dujhk)BoSEL!A=~Lp$~5VNUTrGR zQ|hn2^(=N~h`LavLm8q{Q%OnzOhn>f#Gp8^PjSjoVeQz#$c~kD#$qFQ>@y>5#gavy z*Osy7=iMq@Cw$^FH(AF{2`4|YfWKv4i(RqdB7kh?F5PU#jOjM=q2JlNZ@*oT4vQma z+_QkW@&kZ$4+_12e>ZwC)r``aNT9S&eDYJ)x>ZZ3_<S!H9J{q?Z&!ZyLv;9%fi&HJ z_?Q!lz@3W)6zA+!KdLdY{J!|b+ib~;tNd5WL&XZcp`p<DJz_<u-y`s6O`mEH|JT2J z*j;t3G1FbRM=CJHUmOGCB&@Q^wp5yc5HhT7qsLFQ$<IFN$nV&DtZ3fast@e3Hr@Kz zM?d`;>)E@nb?w|Cm-R}|m={j-gHc`MA*Y>N-?q7P=i0<)o-AO2Dp>CbTm<k>p=jl% zll#?$<BAy=u^~}YbKIVN>S+VTiU)~Nmk?#7r6Gz4l{fRW!#zLvv4?5}rc!VFyl`ID zLsyw1=@r6x<3^2iP*V(ub1xaNSOkcpTNG&p<*;MyMlo+k-Uf;fv@ZSZm(H8*imnbX zQfK|EVuU#aL`4p=L#Hm*wtd287l*(bl0xA-L_b!)vM#|z%$u2#kEBr^`0)Y$l{d4C zuejX7Q|-I<a0*tHh89a-NXbbMqof3gTR3M{VkEu&wr?Fkr3I0t<HzmZzXkz)*dt4c zry7ND(+!tBliA1`UnB2Hcz^8EPq@eG<Js|Gc*p$zAg^!#>YW7uDuuqY>zOCx<SnC^ z2txz>8~xY=PWIHeq9*01uVaTx$Yp8`rnbN{o*IRD@+R+m#!(lHm(?$?vL_yXu&#Bf zYnVc+Wk>T{wViv(<%Zk_X-;=H?Vn=jGd76h=L0OedgV*DXu*72G-I+yBK(}EXT+Z| z<ugDw679L_+Uxy0bnGLYqLgMSnHTRhDRda(#*cc&Q;uad`wJqa>|GjC!M}klAWA1r zf%sjs^D1Ct?8&p9vu4f=^x9f~rN#9BF<#&USBD;>YvpN5nezhT0{-;pZt{*fgjbt3 zOXv<y_KHJCVrB!Bgy5Jxby6Vv_wiLqqd_9C5Nr4M4?bk;H^1%7VwH`XTFVyA3d&1P z=GpQNR-99&=kU{yK9rV>)g7D|(djkPbQrP<Yu~MhD_GdQhM#>-vhj;3I2S%q*e8w{ z5N?v91Np7)SStTf$X%gQJV-!WSq0XRx!`@tC$Cwv#+EOf@8vMXHmih%TEn((+s^t7 z7!<%}*#jGopM6(_^I*cm`WNME=+j+R9xQU+*FA!&=62_|zio{x%N^9DOUkpp_tif1 zy;ogr&pz>JQlfWYZ!nmo&{<D`ndr)eqEpDdSkxmH9(pD`x<-{1p=UNZ$N>6;5G2ZJ z%V_-A^|yr1dF=0aALZ>?y>~o5KSLS&!m_0WsOY%Iyc^KXTiI2gz12FjZ|6wi7+jba z_Rj8S#umu1+^W3`*p#uO1CN1(y}af|%@Yrfi)JBItdxo(7288<IP=UCk9xg(LMU_0 zJ*WaQq7>^wHOQUc{;nGm<dm78xCF4&In^_8Rxn)XI)>*cLqeUu3J7Itl5T|TA<|L~ z5bM>eK~bK(eS|`XVCAVt9}X2SCs2@j4m;_F_@R$qWfy(;GOH=8vfe$r)f;iii*T`b ziB!^kar)#*fj5)5B>(^*07*naRIffX*or##shge<{d7K~<{o6d&O))ht8*Er43SAx zg(Qtqk{;+;axbEFq!hBakB00gJqt!Y7x<QmQ)VR5$+UZ&106F_h!2V)4@QP#j?yqm z(3$BW;QwPvNZ6x3dF}NMtbp+c0*I5n;>i_>!QTCcY+&DB_U6V-HtNYo?Zu^wJQ^V0 z<6@m{2xI-@?;rOb=Fh+If>oC{3U$a0wf>4({;`7PJF2H0`}C86|2m#8&7lKu@N~?) z?(>q5UFl#ZC`otirln^R1}^5IXNB>hg9n_*;jJxO?b#<D4x|-?Dhr}2R_>$<S6+L) zAKD(>Iu{83>^c?m(D@z!JUX3ma1&r!A{Yy<R9LXV6{2knlT+93sh3rUs?WYt_Wk*P zp@rA2S!L6wPD!osBcV3i|0bPRA`&o;fvl%HSDOx<LT))Wgp{Kz=2<EnM>^y6^&4#D zBM$^HRout}&yLU`T;uHhz5@nZs}@ZQyvgi*#_KDiaNque*0XyT&q2<fJ;x@Ee9S?h zc#&S(1e%{KB|S;@RF!@Hj;~tJegmvsyAGk|yuSS%&pBc67VSGZo$7>%lWp1jIbK3m zCj=7X6opRt;cfSP*Wks+NaBoAUD3X6o1g?rof+PhONev&%FmlV*_(H0-8C-nAd(e& zS5wyy-D|PE8vj0??*oU9I>`!PO3!<)T@^SQR05a<#$kkh;mdbAqu8m#&UD0g)(|YF zaHQ;H`~v)YZp7osdmcIDk10dR31w2^C2G@e|K@l6^8tfT4WQNdy>#zlUOVsFq)~-O zTWDM~;?alP09A*|?A)<`ROjEWLr0JD03yzM=%oxpolo)kLnuS(?5=k<dMXrLRRI}N zS`#kHZmL4KvehqHxsW|GD0D@8oKR-oJexOda$-oN;5)4=Anm*V@`p*Q-_sJZ9zAz4 zIl$*Q5>O{IAIO8Q-MTr4`}pTZhR}W;r$AC#nw-lI1~c3V>n(*|>>=fG@;Qg#WAyZ{ zYV2hJd7;Kq;Xh4qa<G%~48Fhbz(E__x3{f*b)ARXS1er=dceBiD$=TsXS?dAFWN8v z`R6ua#vDJ8y7viE;ZOJl&xr@H{*CnszxceFg`QL<MWOOF6x}Jq&$V{#+k0PLs00b` zma-UipoPFhp${I=KX9s3CK7iR@(@=VL7`g}Y+HDc)DCC!WcB5h<#9j_`s|3ulS8|8 zv*$T;uhiQCn0DTI=UGLgCLR(_!ltEj*xCy!8{^;3?c2H6F>lsP4@CzIMH<3Wb%7K* z<R_<|dA8SP_vzK$%d)W0>$AwEV3oHN2!>`Qv`nSUC+@GzvtrCr;zW2qMhO>-2E^}= zpkUp}WB2UU$2M+y%a+cY8A_aD?gc4zRgmB@fBv>FIj1^6M;U}CGrx@6qes$+W6U#8 zJJl>{n^^JiGyAqfx88Qwy?<%jw{8ud&Ys=79L!WK@2WkRtZB0LM3vU9Tjzu_ex6f> zE;%Fb)vF`Uzt8|R(kvuTq1ShGIV0c$U{NH3=24Fv?gD?u^sI6=FaN}qero`ZN)wgZ zJF&5-XQE<(P_V$NA_vmvyk~h;6PIV=Y9Ljajo8(vP<1~T;ySc#Zsp~bHuA|Q998e- zdBupAqVl}`2M;+;K?<zcyk^%^XO(CKKs-8-(Y$E?u6GOQbORfn_qwm}HTc|@?sC@3 zj@^5?OgdS71ZM|K&+*y{n>%&9r&N@3RB5Nq=U2aVZ_+ZgL@FbGXWlbb=m!rSvB3lS z*~%B6w<#0H`@U7`rta@@oSXVK=%4ZP6LRR;vAt}q)?BEo#<@kaCLs^=UY<1;MzZKd zoj7jPGwu~Cq#{A%<K&>^d8UPn7TDv@j`NTi0EmVNyOVuxSLo|rwb`>~+We{G-2x90 zgy?3WMlsE~_8xSq_3Piy`t|Ako`e<e!rTCelduxyYslB8<uEYP!KF?PDGLmYy^3OB zF}_3Y36Am6BcF0=(E7+ZIJodM)7^-M4-EnK#KNh0(?*8Z(XMSP_aH-U_M5L6_0R%E z3b++>A&5Jkmb54w0gUiSODT3KbRm|>y)J)Yh0U5U+M_RAfnGK>T4LlkV5VZZ-gsYS z=Uh>URjdDK^QTR4!X8ogiqu6QK*x?8JL*vg8v8&K%D5+Eq-p%v^PqzrX$4<bG1G~s z-pnAd0a(NpBkBbd%{w<z0Cftl+6jJMeqo7+_t(9=q9E!ZrH*pN80^!#m-QZex<@@u z=Kb_6IwQ~&!!7QmRNj!~a0t1_%AB8Jhyz(qKXO9QL<!l8^%;ZlnEV`{O|ds-mAbeD zSWCJf9@x9bqXKbBX(<3_c25!gc;}sMA!6rT4LKDc{&!{N?udQmYu~U<Tiy<aL_^b3 z@%v(=VHBcNLDqXTA_}vUmW??>h`wBX!{_`KkUj~s(oh+}x{?Y5i04tQsgpvZ6!uz> z3DwmhO4zJLE3bA@$y$BjKN;JsyK?n3ox!Q_(nqE+onP<ckzxft@E&>rAwaZ)MC^~X zb=F0fdfQ0IL&(v}BR(1B$O4r+y<WL1-ec9Z&gw;nt+~^uhOR;Jp)a5ujRr&LHt*2Y zo*Os8jvPH|OI})SZCWKf(0RgCW0v}t+vh32SfMYNI_ZQ1lm!(M>Vk$4p@D+U3dCa1 zr~DD~#KzC^7pu*tn#3?S7#Gc3Cpp1gyY~dHZwaS(EZ(ow`}3Y}zx{S7htZ)ew#Jll zsT>B+wUl=*<4tpcw}B8P6y2>$N3U6?97cu&V~T@22$t0PM_^M|3&kxgU$Lhj^9U4s zU#&A?L@vr<JQTfdRS2g^QSnal=;#)O0^oPCP%O5d2njqQj7`R(9B}^p1vYcSm;h!9 zDB;x0Vm&F(#H$t8xbqmCd#;BPHIEJ1&q^x*W&#(%8N-lJj#=}n5*z`GL_Px3mN*$o z?Vb2D*23v~Cr`2o&pz!rUZJh|UYuLTgKN{dyA9~yufPy5_Kq4SRy52j#^BgzM;g5N zlr(Yv;#5&w%EkOrl|iHtkCpessLU$#`i$V%kO=(_DjNkdqHH4%QeyOUfH94p16huU ztT9n+PsM;ZB6e=9<ay|6%7!k8pZ?5^x#@-a<YY46NhB3QB+`Z>0R2D$zaRZWNd1XC z46-qo**H3B`6JF291$_#QBko{<7Q<gx%-V9H`=`EQw-Ugjh<l`#;txO3$oFyy!DjP zAo^rg+030YH);M-(IP}Z;yqlDg3K_4o{T<xzrUO7p=YfR@)LAByXf+dIT()cm_n<6 z$^+@p(lrQ<UWB>#p{8pPtZ{0kD(>72wIId@Ud;Xf@GHCh)?4i1$DXhjZQ6%2h59yY zvCp$go&U!w2Hi=U!ew)&`fG=DKu%j&KsT3N`AO^1f3OW6G_b((&l@)@s1U?lv307s zp<Z7WYI2zCtZ-VFs^LStHk#{roIFKO{``d%D~yg~%jV8V-jfbdA+%pz$7Nhw6Hu&# z^GL&R$x|++@c14I9j|Qno_(HMrr{3ZJlM9>=h)lTM$Ci`hO=rXKe_Ja+dO|xqX`)j z9Of)BP<Fm!qlugu?PY0j;i2fXooMJekdksx;xy#+GXu*O!kFhLpPAh+vA3mY0M7&! zC4jiObLM!7lUk;t(A5-0pfUBezWC#xaxfEBAgX=OQ+9dJ5Qh{2#4+xROBQ)LBkM&v zn^;*z$noM)39uTIEEU_k7@+<PR_<%sxnoCrZsdrhY9MXwqY$ZZIZ7wA>DtrRFjlIi z_G|pEiaxN0^f*}i@+vnV;&MkZc_mIug8HUHMz!FvaaPJ$;;-W}C}C^V=*DqBY2z2Z z8+Wne3_-nm>Zzw%w|;{>{7jf%S9Z_jDI+;UL<R679T2Cos?<X-klksjlIBHJN#KYn z99?P;Nk(X`^^6$%YgfM<>ikKGm8V=7enwLkK*tOmKk7y>jZ%cHM=r$o&W;n0r=Qt_ z)cL=>dQC!dwUov;5gAg-;&}Vr-}bUuS{mzoH^ku8n&M;<fuJQZ4u#9wci#z7!q_u+ znHyt@K8OlE>jlRfLkj)VH-65WV8BV<kj01(o_?0~<P%w4YgH9xUM59;c_ty14AWB9 zYR#4kaG$&G{VV&2zyGQI>wi9At=hE76|nDBx$EyxbT2MnVl$`IZK_fV9Tuu9uK1{z za`o)f&o`N@(>&oD3x4I<$?4#^QbIOu`V5;oexmmV=PI;PtDGc59o=BtQayIw8Wh{; zd>48}s6p`{H>~?(GMA}BS6}DkfG2d499npqq3sk}Sfmj_TBSe4LL^o;d>^Ck<rU96 z2Z4i&j#h_IR{_8%HKdgOY1gi8h!!F6ig}aSd0_lqJ9gOMAw!(vcIKQ#wq)WnPHrUh ztgml*6DK&LERQfgfH)#b^xj69OTZV~Us8$+Gx8jZ7A>|3BOXaeIWSx^!e4U^*MQO} zJ$m;k0H(!rTg>xdoyjl5IZp%(o_Z(c*s!snOP`cnu^g|$l6eMNc3#25bnevAK)6$W z=v5i}cNg?Bm*+|v<BBV<vR0jXc+?|iN-OqG^4|10XQY4M-p(!VV9MFElBr3FdXQZL z8R}<BaBsisZYMkG(|@3UUFnxn9wcKEO={M(aR5;5-Mhyb#RBdpRch=VB8Y$;8IL)@ zi)_)RUC3j{=On8<i@iV3+O2a3mj})>zVDEGkjYht>X*Xdor!|Lg)!)ibKTg|xW)FY zqDuN6hAS7q<>`|r*i(-^5*pvgYmKo2Le>+Zq#poLEkL?T5yk{yc}hH1$ovcs$n(pV zxe@Hqo{GwlyXT(jU(u{xCy(^RfXNtFm1o$?_-9?&M{C!;=JeXgAa6PY2rgCF#iH27 zBFI_!_viTkI%1iKx;1O%sRRph3od|2@`z6MA*D>D*iq_ivP~N|IDm%MgK^Fx?l&HX zwKXmqmwebmk34Kojd;pQE#B{oXC)Lv?J%^1-dYpT4Pdcou|pT0+M0kjz$zve$>ETN zUF`YfT?z-l_fT|eUs;><K%c+J6*?Y<P}mBU#=Xe9b?xfooy?^WKZeW9N#p8rkr~Th zB|uIJQhnT8mtK0s$3r;`;~qJB%o;mMMuO;%y)8YH_JPJFj5uR<-TWpwP#XBugr*ir zs5YVhRVbPgJxFw1oTcEihNOZRUpccCD_-<aG$b$FThWiC<f+OzqQCwZ-w!2D@%{B4 zrPeeq)4_;XG=FZQ=+g2y{x<gJbT6V}w|w~yCtU#*t&+^xFe)~`x(DYAd;;Y{V)x26 zn~=v0Anw*X?lMY@6jjn#u_2!KuCb!c=6F%AF)zN(w9*)WI3ahb@6uk$dY34;msYH> zDHFzf-ZS(-hfX&w1&rGZ%a8zBpT!B3+B>W@1_bMXA|Sd06CRO)m})lc@s!X;9PU&r zh<f$C$WO*6>@6=6rndci_XT;$xH5jF&@l?Xdhhp4fH=vP?0UxgI5v#=9+4AdG+2|- zW5zkvEXF8uNZxW%rj~R?<lnf1Ue}&|0<ylo{Tj;$8Ott{rcbq}pBib0w!Y!#)6w;W z`J*Ty5f|Z1Vh0KDJMWSVU``|pFz#K}Vi>|)nx-6L03N^lpW&egEm_yF-8tJ+I!LT( zTJH@RIxOT6>pO&bpX*>MWJ#VF3mX8<+LbFqeowi!n7k#gm>;mob2MaF{*o^YSF98p z`iyzPS<mWaBGYFCvVj7H?kikK=pcoooGYLkJi0vPmfgf`KpiT=T%n^<IyaO#`N1IA zPKeLU?)cVU6bSx?D7EaoaCj+Gnl^2^%^E+-t?=YZ=2WamcpcsgzP!18{Mu_g4byiZ zo@<hij)hgRIprN0Z};AP{&!C1FlCand=ZMqD<*#*442xZ*$uS6>_?0^!ibQ(bZ}&S zGXJHFi1>ZAuH=@<X-}Iz$2PvSFtno;#W4yUK7p^?^KIL?bC=U*(#?&0YwXPx+hcJw zgk0eI*I!Ev*9D8ss`sBz?&AW|o6%HT+b+HA?r(j^*1h$v4I6rjkC|Q9`V0y_2cWiN z+m-@cL;!ULg;#FmT50PkirLr*Ev3-Qjveyog`SO&FoN-s-~Lz9VJ!`jvM)mPqo&qK zC!GDE4_n)|ZLO-RalPk*aWL3p#SZeClBOj~mL?5nUSC(I&|#*d9zC5;)(F9T+0{4L zfPn+8eYc)Y5Ja?vNTCeshAIFQI#IjHV@KQCmzIZ8s&JmuGE2%>iGJMh#jk`COXLA# zHuRD)(W_^VP*$~U!CVJ7`q@kYjyk7uemFDt{_t;{1Po+-oSG`Om*V-={t{8k*pVY_ z=F}O%u@J$P$}W>eKeg7pbsO)Xw{go>JNxXj1BQrms`N~;dDi%`LVxbL=WNU~qpWuS zJ1!IAZl84E1lz^FrM0k984X=eVY)CJ7B5*+*S{hyPm4*OP9PF1Qi0Xbb$!3TccO=$ zRZi&x!!*Q(AWS8up;F4Jlz?NQq_hAG!JLH!Hht1W+x*6Q&!1w|#~is*<ar&=u>PN$ zGRxk0Ym0$!rXIc6W;xjjlvhn!VCu9P9x9cG6Std;6}mXpo!7i;56_pydF8xkkRpob z2CxtBF?-f*n=x*bGpDH~qwb-Q9v&osIC7tfQY|zv8uH$Z_wKtpZQhJ2p>-*LhnE~T zqX``2DXrtXyZ70!GtY8?9GCVKQ#LU$QXygLfT_*))}?#*B?|rUfzVD=q$iHfE~_vR z95KJGTedjied~*c@VUs0Q0SUpjF(_Yrs!|LOdq-;DRF`dHCE^i*=KqdJl7XjzHC!Q zJ(W~)L_#<b$|*+yXxi#($0yu!`<D$|1fj(DvaVD+kUyt+h$3L}JVYiX4;=*?;{*W2 z=_+L)O8~Q$jT$!%$ZydUdw+(Mg0xQIRN1F)y2bhr8f+cA_4Z-%43?}BCb=Q6ijpRf z*VIOf2!y{8n6kRI%9-2n=8{nGF{fizDHZkgQmzd#j^r@#97N9)wNrIOT#qf@1b7Ts zOR5Lp83z!jlubj=DbKcd_ij%SQE%_%vx}D}iZ$&<D31KVTVHD)js`4y?C4P&I{a*J zCtBZ?r_g!V^&2+WsK*}imZ>V0t83q!^tI<ARE-ggF}i8Pn|98JE)7*7IB^&<^_@@d z!*|dR<j|jd_zyOJ)?BNoIan8NPZ8%B_k+(k+uF2gZQ1CgjKE^=EaQT4=wP>a!F+ex z5@2QBU&U*g7s1YL(_7y}|6lk#0>vd@5x+7Wb11AwfVOMf*7^(_5}IJV*XPlOA$--L zLpy8Mw3%UnxiH^HDa3IvIXQuYIV~rO`$daQ>*-0eZS&Uco);yLF2(p>pHUl%gNxwj zAWWY$K7>l0ic|y&nXt5SI--1y5!m&4&f4fwIDoGx*9eUe%4<B_M3*7WgLs-1ayr>? zyXFWheEn-{llFu!u5@7`>Q(V3OPQk#pqiy-`Hc;4+lA+z;h{MWtFRH-x!2+0_pyQi zjPll|w`|_bX$e!?!8Bcv8g=R?ErJdJaWuFf6rII$Xv|{IpwEvUIphKv)b7mLb8O1k zaaMa^r|&xf(wwEP`nV~b5tlegC~?11N<DsOnzGO>D&zuFB^RuIgPS4g7miRyP@OXL zbVo&t-7EHR>KmKS<)J^nbdlpCyxnEWvZY?qV#CvW!Vm`*fe3^YXnlqYf)hiUzaum| zebR)aW;g{IYTk9Gsmi$F<}aA?o_ot%S*x18!7z)@0b|F4nV;$1fcyYVxoPt|Hfz#Y z_Z*EbXKDM=g!Z*E5oxJx!@K+Zo!@Y53)K-);_Mf$Qc*O0my{BuS|}Q#S@Wk(uy;4F z58GX7Dg8ogiPE79qC)od&1v@hFfQ*)#4fL_Do>$<H97y%%dB&kF4ntG-w=%`bv|Mb znP=p?5ce!u{=7Z&=tCX_;UcvmYF%WZgW^)Ie!3untfwCUozK)WK~dRK@;MHL6S;#0 z^r1(dv<<7C_x9Dgh_+A-Lif5ZRJ-&USYQ-tpVVhGN!H?2OrAR3=1&-PLJxE)^n#uM zJ_!jMU(vF`KScq(hri9uq1Wxq#ABcy7*NpBW5?`_b1rZNr!dvYju{_(<z}#qo_p#^ z2gC{8Ebk=_cf>-$4{5}+{p9!=_U`UIo{MMWqJU5Kz~sFPn+qQI#mio>siU8E>l6<0 z6Rs%aPW|PVzxH(xH(h$^B|cZWN`={C&y@`?L&Cv=DIm_<%$6ayk}x>JLIf)yz5&E} zgNT#7l%FGX=_OUKZ?LNJW8Ur&^e$JtsZj>q2b|(<FZUfd6g*eoFKPHPHeO-@?SeBU zS^=;{$n@1eu1RvBFRnB@2BTi3k4*y_-jUP~)QcDxJ^K!DWw7n-Eq2}|9|<A0IJ_-S zpxBxM-s;({ODNG}e(m_-U`Q&2$e4HCd!HksX?IBkf_+<4eLR4pN`(#?U!N0-etP6H zq1~lW!7=(fu*I3#t#^IHAHVmIp&`l>8wm9&TPZ1W=tOzOKKGm*+V*D1v$BRXT#|== z^BrHemMvS_fK!LLqEpB-_DV}_E2V6paE3W8)VoJCoi6Zes;z6EK@O&jiF#xZ78@gu zVqp-nhJAW=cfu#{=r(PtSy^S$?F?C4jnP|~w5CnHxwvB<kw$svnk%JJ^42s~ba9gs zH$o%epVA6MwPXOR7da)Y^+f{m-e2A-;6~W~RxY0B#u?|q!CPsxr+^X9k~)7<V!ith zw03P;JE#wQOMM2f)}LoNR$b$OF_87(1?uYj>o6`Tbo7LPWJ2`QPzYrG&Ru(hu^(54 zWZzZq2|FQ?&Gzluxe=^%iolM(zGZ0_xtniuHcmjfV$x&J9zTB6>B$?a&@no^>CDs_ zArip(h-F_K{YW-h+5jrAljupx;P>O}Cv;oO3n!@MpFE;CHxcJUVquf_a5^N~Ojw*< zI<>bQJ9ZV2B!~oG?eXM^W;xT{S|UtYTVua@YP4<H{EmBmTEwgpkpRp-n|@EpjV$!| zy`Wy5GiyfD(lgD`39Kd32*(=KB#YavcQ2=v+_iUqPy(=Z5su`b)EqwG-b{Q+K(%b% z%mo#pKvEH_UtSs5wm2-xpTlSFJ-Vx_la6Cmjh!(~A*Z~xsHmYMTU`!P&%yg2Jbc)N zBjIN}NEqV$N}Dg_DV+;HdZmYG0shI5U`;^*$A>8EZ6!jY){Y%JV$GT~acbMC)27+P zXGa7Cb{&|hJn7N}9V$YZu=jZvdpXQI@9y+NjNy=7>r#h9(E&Vka-i@-1IDCOlI~pI z|2!>A0ho6C-S@cSL80RnA`tQL*=O-uGQaV<%Dch9A=itdgE+|z*ED|~_f6nuFAt>b zr?!#Z|93yLb#HD8>5N#hX6H2T{e@G&(_S!px<`2^Axnf|VxR$T#AqSsdG+VNXk9zC zcjUK#d~phhzssJXI0VkV?c2MzGvQ4c`>f5MKGTigINUCU10e3QtFQIm)ua=$23Ve4 ziRFjRsY<xO-@Lwdb!fLt9#>&^HAYcY2Gt<Vnl<y5sj<-+E4jS$Bl)mr-+t@gx357{ zETXC8tR&c@?4>S<kT1!IP=!RXeHt4SJPS&-L&r|uaD>PQC6-`Zq|oEEm^YzG6^+XC zpz3Dd>g>s}D7BBYwiw^=C(N8O$>z+M=Hcj=*oAuvbchjt>{yvye$^+eXV0D<(WS&W zFESa=vCdAszxbK;g)qqL{P*k##;AaXbXcR+FSYLC`;a`y+pk%fD+GU!Ze3i~(oBeb zOY;|9xed795AFMZ;T{Eb=-j`c9cUU-X3{Rd`dSCX_3hIq5eR9BE%p)`niq)`Cwax! z*8b6+8SzBOD~3{tiiD)W&q{_~Rh;Pxcl`X{e`niw?{&WGyl2W&D!vg@qMO(|Mj3Iq zE1V>u!prKY;U%|%b(+jm0!+gK4~#{%$$=Sm?s*~Ss@$g(ffTwFtJaipgbqi!3MjT@ z+4Bj5Sq2c7G$_F`FAp`f9NJi!>cGT`T;WSXmQqIg+~0Hh)C8EeeM^!LPnD=ZRLSD= z`*OSeYj@k>+6o&oXka+BdWXFE*6-vEDLhXZ7@fx^j2+`RfzZ_`YA%rg^OE_c(FBHs zO4d+V@m0)l(|6c^jIA7~M<mv+3W`Sx9Yxo*Pha;W@z7aI){!|@zF6l#!XpN5F^;Zw z?b_L%o$tEgs^$_tl@TX&0DP7;v9jjv?AzbF&vw7NtpFF%5CI%3K8-7eI6O&>n>;h@ zXveMlfYa=Xt3GL+I<$91C%|7E8ZEY_dUw_y&=yr0-qCIT{7?p{d5}WC;PR_%_=T5v zPMMM>JS&~IcrCLsMM{@{@umf)gduM0rZ<xkOG?%Ja8^6^BRQi<bp)OxEmKt;!C8;j zOnWCjGkQNg7v~ehB^ZPAW)^UZ2L~iwf2s$rzUEqs>+S1Ps9D*BLZ^gPtxFaC2;kf_ z9a$%n%8ib4cYgOT3gkAQ$A(L>pJhZ~1c<}E&XCv=^n{{20zSHIC~syre=+HMP)sI; z{SY}Bn&((PAd_INbYnDC=%ScqO#yO3UPEODx(R19#!<z4HY*3&ujLh$zK^J4TDowa z1G9y1$zvuh5Huga|2aXS^Nb;ElL}M>X!pJYt#_{;ULqt<Ay!89dFNSy8y`q{g<_QA zyI!-HvM%XwV{aya6v$vyRN8(2`yZWrL-eCrFStG-pFOlv=&A`Pk1etRj0iQ<2<1kO zI&bPJgBxzW%_>`Uwtl_4Is!WzvShAeZ!Y$7P#A174m>&S*)ylxyeZ?n!<$010;pk$ zD}<<!aO~;C<1n7TW2DG^t!s|jk(#7D?&z`O&h_oIj)xBfg|5aABJy$Tzr2}!?{9t_ zP^@Zc$F~3gAOJ~3K~!-WniOU%jN_kmU{w=)VBcP^K_~BuAyIIpo`%rhcmU+gDx0;k zp{EZEVeeQ#WTPM1bI0>>h^cQC;E=r+(^!fegLK9j=UrrNTea}kj4-~jUU=x0c=E@O z`oEgXcx)+jA`wJCFkBye;DLmJDsvSyw<v33Lxv5ri?6uSg)t>$CmV%O)CI+}?X5TM z=@CyRhD20q<VpiYm$ujBJz<E$qmob*_)O=c)H&z7DA-jmt#IVGD4h9Q)nw~jf9$3& zTj%y|LOGt^PjeOnr(&UuVj~Al=(t_m)}ce=_)#N6lM+9hX<20e)|Mq*w7>#E_SCX@ zQtlW>sj~YuUej!J5l4g;o8Bzsk1zSX74-;t)^zVer+eAe*IDBV^Sr&!drHKUbw08( zHI`e1`N=1Tei!iLr(?+AMmCf+Zsw5+jM2DxQH-pQl_q0Kv1jKRS=6OtTTe}mdHP9P z`NDEfFGv<-DOkM&W8=1V@AvO@ubHS8@=x+E8^w~6%^JpH5Cuat;-TLs<9ZXCgmT;W zZFyt6;KP@=Vc5Q9($k*vse8urto<90qrJqQq|$2s%xT{6#=*yF6P6PW>IeK6MLqPm zrkXrVv)1iw*qLW~z39m(@9g{QV8{y<fM(Q)$3q?}5i|hw5}=-#o^&rA9PesYTjNTN z#u;3_`wuEOFefwrafp-+MV=I)vF)9AY|8jCX&1P(YgAM^mgFL99c>Ca`=0Or$ll(z zBPbks=kf&NO{M2k)Pk@jVQ4H(4hx2ax1ZdzBLJrKH$u<SZy1FR_$0<Q<gJrDbX5ZI z9dB+iXrOI)YfDIdBm^tT{09c8sQoK*{-tl-XYXv;Vi#ZhA<sq1!-~Bqe#g7T|8kHN zNl?RwnUg0bfVk9y4C@vNEFs-N^fSNbop-K>_Ok|3sWq3vz;gv_0HQzUtPhPTQno9A zX_PooON*k5fns^%!~!e!&<W|`0X+7=Z=Hdvpuc;>fS3rLM)uKbZuH!znDDYuh=%Oz z!^e(!?)25wD?<sHj20Q92u3d2diFnMsP*pIGvFIAR2pIkCkmm)&kEniNWutJG)uMp zI@bW=K7Z%e?by*H0o17Xks;0h$NNUn9E>BPSCl(;?%dV3ZhhMp&YJE<D7^n7KVlAv z?s-}v_0ZuHxbD_Fyqz&@m(5$YDv)LIyJi)S6arqI-gDw}&$y9K=sWJhrFW47LNwx% zk6dOvP1jDHJS~V!s7iSn@?>P5!pFd0`O=FXu?xmhZ1ARXQ`iVvmkvGaT<h4mb3u7t zHbTbunqSVT|38e2N2{&&ctZO0#+w^#!ZT0Vs-<&1TAEOT7dCD3^k*3z7rWYLzjT-1 zhq`c-ELS|I>=(U%u~b#}E*+dblEycrQz&B%k;1YHt8CKDF1z+7>)*4hpB4H!9NxPt zR5>w++C$m#wZGI$g7+pZ71pyDH-1A7-v7hz6y(r@q71HZg5aaPq*<E|uAm6P#8%wN zJbRoMl0xV21KI!K0|hxKg>%9fS&G#(e@;mVDFH5Ws_#Yk#a^X00h^8-e*kQyq!om@ z62MK82av_c&)^N{`U4;ig~NrCCO3{ZkPWr#-QqE^iaWJ$ZQFM2u^Hn>g&y6C3?!Q| z8JikRJS)P_v?qi{RUUpZg^p0tVPZ|3nz3(R&mlej;2#2?Irq;Z`Q;Ii#|DtbMgL(A zt>!Qm%Gv$FcQBOLN6OpNXyS<nf9JH0c|D!uI%WWe)P!$+=N%74XQM?8*^fK}3Vq{- zH=G}O$($Jh%%f5+G2wms^S67$8<5|zw_4vg@mvsz0L(-VQdFq^_Yq}e)<cJ<zNSfA z8$7U&gPGpTo@W0N0;jZU<io!YhJ>$cM5jz^SbCsSSFMy<9CB^Qc|UmMh;{AS{e&DZ zd29jieBY)mQ@`-FZ+epw@}60MRxyV`dk14s2=_q8oYE90b<jyFN~mvn>x8}`$J%q~ zm<>NOY3W%^aThx~>{$#6(kG-bLQQt+(P{sL6k%Dp!H<uzL|IkaHf?>}hB!q;f56=k z4QkP{m2*VQojcD<EIp#c^LwR4(iBBF7gcH8aN8Z$sb^p7*r}86ApyqZU=%aFHLlhj zqdV|~q|J*ke4UG;wzjVKL5d?H<%nz$sa95@$4XY`D9;d9UfWw%uUwfSdMS5V3;i>I zI006{Dk)+ngIY#P_RMlVM1X~3fN?)=)EEcl{!a|IyGV)qp=SX)J^_u|*rz{pZRp}9 zf`ek#WqpE9mKlnK+{~U`yS?`;LN#u&Sil{gD(+%TafC(Bx#aTD!<lg0$v$6J8S(#k z1Im?!5Mo(HRM)ETk5jz3@dMrfk6GwlLWu&3DeoE|=Gcov(GgDExqFWd892aTF!K_! z6j?78s2Itb^&mO4;gF=(cCj^)rwquacaLuN!m_0aKlJAHp6&=tcxk1BcRou!R}@{l zPF<{H*Phn3a|id7^_~Kn$SZfj6M5?VKVx%&p5;B=kf29*1S|^qxs*;bn=>P)T}+|p z9p-FKTi(vvRci{sTdD^qt?=p3-eA4@^mUGC#?o`ku#M+dX$^(l8SluELj{U%;mm0P zm=-H_DRkwu@4WAR{}`%S094FrF~O8)G$~qwS2un9D39_S+P}xWR)Oyvcvw+sZ98}O z9It4KRazv$ALAnO#^U+dLnw3<-RP&EuqDf0vf6!HLfWh@?^$hqhn(R+Ci0$IL!}5H zn918W@gCAMAn-9(;zl=tDb32AfCPdd-^<m<y^|dIR`?puyWm1^1uEgMd*&&d_%qHZ z;53XuXB3+=FR95+k^K6uWGN-ApSb3_K=~@~Ja7MG=T_+)_8et$7(=1o#k=o>$e947 zZYb2Gy%x%wc=I9}-=NU{|MuPk%&zh}7hW@?sp`EKB-DlIC1Ai5+ceu4T!}HZ<907D zu^roqlN;aMB))(A$4+u@V&~qt0fx{`6B3|?5Rwp*5FiN&^<GEPjAo?i^Z)PK`~7B} zJ^P%Q0iR=G)_xv6nmM!2{`P+N_kF9s3!YU7aJ(xT7+j|rbJ*+|zykR#csKAytXaJ# zgo~KTpXBGq`b9=RD8flLm8Oh#g){C6Mos8}{>G~r{Uo4pBc$-L&wW`=9XqV-r5uNz z77A=@U?jZ+Fn&-4LOFy=31uq%LvgtSNZS?^7SWa0T&tQMw0A4e?WSor%UlZ**QfAA z9BR|%E$Yf4bs{%(%MzC?4X}b83kQiV%(h082MBb$sP1kIJP(uI#;_rHM~oPznU8ax zn$wZt9$V;2>QY=1vld0MNRV?(nmS#o`u5k@Cj~4wW4iUzgd9G@g2(1K<&1H%c*)X? zat&K&$}VeQy+TJfX0g(phK(mpsj;puTh;;P3LVG51%Qn|G{%V&dz76iPE5q+c*obi zqna@?>q*;bH~yqRO>?_bpoc~iaV@W96H}bn^g%?fy#8hxJMqlmie@sE-IVNHOe!}_ zKE$T{%JS#+y&l-UNjLls2CC>?!lJ|6M|Lv!_^qOn+<Yyr{2M-NZfTZ@<HxG&5Mc%7 zsb_ES1k04pYX~CrK>z%ggXIB5!s3@E+>)UUDu*~1>|Pj`t!Ojuy{JUSPoAzGE?88f zM~(~|Ki$G<%C5Z!3JK&1u%jCq`#^aJoz;pX`b{Wh7hiR4#PSz2dofG|>lXr@*XCYf zpUtixO{QG2JnHC%xf6FDw2gIe52#f}Od0(Sm|2gtX%+u$^ELTiaUNX3YuBuf`Z~m3 zJJum5<LKBwVMQXmK+-1&)QZw5!87f!VM&DFV4)8lI!sHytjCUdC78SHKhA0pa5dcU z;g5vGH0+1Ezmyb(<Xi3)X<;#(i;xYx5$Fqn=0#Q+?Ih6S<VxHJ$~@8TmkGg1r8~J7 zB-bwHF6;ak&YL64UwB?K>$R14T-k$nO$Ciq#dx0;MJ>S#ig(B7PAbE8PUC%I-lE1{ zc^YD(o_C^^-l+~9@oHpHlP4F%1ZQ7zxt6mqp~JdtlR~{KA&Low3EE!NOWlEpE273w zfiwgyc*(&nXy3T8;8^>3`L);SCXcunNM)?%+135n$qZo%E1Ft6%Qfab`FIq^HjNN$ zQe23kORJ#k4>G^Ujz1%0?_z@HQZTrIQL}`gMLcNL%9lcBy^TZaMi(ay-tf^+X_601 ze+U%?Iya<T|AX8IT;C7hcaO3$q5iz3v0gW0j)et8iwAU)w|(iWDsbS6rYjT*1Q!au z5Xr^M->E%=R0ciJ*?tn^Wt2|FT*|zUFMadR)n$6ttQqQtw8|TwJt_RGfWXhp7)IrS z6$Y%XU@0U*IhVihI?enZI&w^K4JYHg95=aXV4T*rR`v2AoDulq8J{C5MQjc5xj|)o z<u&h<VdEysxG|%9G@rR?Ba8yC%kF&#WX?nPg&qmEUo~C+<Wz6(RW8GZjmRo!>~kj9 zz0Ek^uzsB;;6+Eom!Na02$aU{@|myPsZ_Cu?V`-G`q**J8_5<wPYN9SK3`t8MAv40 z4QYxy-#+P)FTCO!jVXg5Xvo0+oleZ92y))QgQl7F3l~PrmRr_m5Q_v)3&@{ZTLn#; zZoB<<rCy~#?~b>H9t+??LKz61B-@`Rr^PIIc(>#@N7Vv6g*Xt_p!=LcoEWC<-}Kyp znQqM3F&aN#z5GRa_OVAp(;G{{t=EcMtimIK^2ZUQM(NzO6+=nE&AE#I?S28T7UnK8 z`a$NUibPFy2jN-lv1Lzt7!_cPw2DL8yR`F$!XEo1yo8INn<tMx_&`UezIVEXZs{3= z%dx#pt>3fHJx|%H;98{xYXxPOJ3xE_g$!dfunI$#ae`^76Zt&{A&Xt?;zk_h+Usvr zmlhI$U@fv7p}Y5GH!2D~jR}qzo+0Q+vxs`-v=}<FF7N!#pJ^imG}C}v4fmoOTEb(H zc5hU6@HZ$G*sMb4cWixNW8|WR1^K?~ZwURQZK93UPVHEDZ`N%Ls|W-u`wkqA*tVXY zljy`1du(F&EUW?YQbV9)v*3c{b*U96pOItJb3ocoDiVxcWo#D4iiPF+g|8xe_LL@5 zCA|^3p4kd{Sd`#5rz_evE1?nzZ^&5}T_IP0;5xC*Lnw6Y^{BAn|Kx#Z#dEG*y{e-m zhMPr#Ws1*@anHT@k2IVyY{;PSoIRP(xECnQP$Xb^pe&Cb2y&`3iHWUYA?T9hb!VL; zGzH!S5JW9`ZeGX~W?YvZKXrW<SIM2<ir(Rr8MD;|%z4YTm)wk#bCwk{cn(;O?C6%P z0k>;~ty)2jHS2;)JB^!d&hnk&J;GwebK+RAU|~kTgCr3a_b(_*?1E^OGy6=qHrGz_ zXL`|~M4(GwVEbdW0zzQ%yrUNlp)!Oa-+S%*l?wxTMO1v5{FZGlS<fEs3Cwh$D@HqI zZCDa_u}do5>_3li3VMFPLbo1DYha{dO=Xy2DtNWvy$y|0+M7ZRx`w6VvRUwNz_m|> zkmF<%==MH<0rqHkiZPEue#>dp4z(w19_MCQ=p@=_(+|>KB8E70^f*oIvI!N@Mjlz8 zx&G%Q<wi~mw5h2n(3(;M;{zlKZo-2hG0trAqb8gw@4M~>C02nDMZyd;;O^X)y>Cn? z+!s6txX+pswK8?`nd&Ni@SeLmb#cl_2#MX&aC3d`zkD@tszW=4z$_^)3G7U1FUVT( zSVXV_P&PF8={WPdzBXj~tE&qWI&PQ)EgY^=l;AK!p4zU}LirA?l7XLL$zk!>MO#wT ztO+k6>Cd>+;3<FwiE<c(6%dADHfd6z+4s(S;lhQ&ghagEyLM<6E9>kTi_B2yU;*?h z(^xOMfguKpz5?8&I1f2qw#}K?!&M8KM{P7Q_Zf|Wl9)qDIf^SZj)rp0Kf3Ha(jRPg z<&~WTE8kn1!o+*QyF@aREs4STp)I3PRQV&>y|_`~b5>oXtu+c=yIJAgvd-SNog}Y= z-b3u(zvYvEEN#6iWctjR85?7AEQ_ywb_#T?=Vgl*$RqbZ6eSkvAZ?+<37dXs+Ht5h z&;=(qd#m`_Im`_hN;14kV1s<<o?k}w?q<Uekj6wkh%sYre)*f<kvBJQl?yNaqmb3z zT>*gDYePHYt^IXeus5nA0h(eRyQG5vDK1H4PX{u!!HT3oloXscJZASH?R7ACuoAm~ zAx_)h?${EnRc5pY>eZNliH&c71;dc|nO-!zKic=o^+}_P92{Dnw`o%l=qfx6hXTDl zGyqX`lMFd#Q`m4VJBJyj0tbioK!16q<}ER+9w8Kv*Zk>Uem_*Z*l<`j#h&{Faj*)S z5<Y<~(#+eQ3e(f!{7iw)UcNDz2rMxsbWocnaA})acOHm~6(k8LlX~X4#j<wsQyJw- zNq3GF;2DA){kvngD6B=BK-8UkNuGm^39&6q=BCzmb^E-w{tbEZKkwGbY}+#G<Y)u+ zVN??d*CP0f(X9#zamf5eDHnwtH%ELgP2li6#DIp58q=XjAR(@`E|iI+S&)@|qwHBK z58NEGX{mTl#wsx`-UYOOwuZ&Cu+E<psI&rTxx#`(NfoRPy1Hm(SX{Y**hO2`)*wgg z8?<#LnuZ{Y6=gUSbe-OREYN43e~Daj>7~ly4)>*<i*}rBN)tba)d9Lt&{)2{a(PC> z8!EG?cSkRBG!GdtbVLwzyoP<R$<Me!!rcz~$|N6u;C)Wxfi5Zz-0_&t(dHBJ<9Bs% zO|rBLb@tX`wvA_)#m|z@BXup>(e14q7#9Nez}~&GX6163_t?W)V#ItHW?kdj6Q`XO zDpIgUYK|Y1qFzyrI7+1Ob5h81&nRkdQO^}NVtAEMlYP&B{49j)*l)o0dZ4?#&%hyC z+6vDA=Z+mG+kTc@zo>eF3mTT=>Sar!?thG7$Gz?0IZ%&hNw0{$x3oNXl&r;{D-6bG zh2o10bsT6w^ZbJOv0Jz;BsT`S;PzJClTa3T>DBL3-UPU#N%@NTNEd##^+HTIF1s&2 z^Yqhl3LFu!g`O(VQRn}O+ck+4`4P;=pdhshVy-oc`^5W2NbIF0i)8b<wR*ZH>Bf|= zY-x=0RhG?ioLq{%RUSFc;ltG(giofQ$y-?qzwhs;Kvzwxs6wePqhzRvRY@(e*!r~= zQQBsf?Lq89A(+rQ$BiGS!gA4^#{+*ilMs^boD2edJ5byU7d4(>Vd4bpuCigZ)M(=@ zR$-0<7MaF(Uw9$vzO!>z5a_Ip4=i!9#jKXq@L_r{5Oh`>rw~uxo4p4tVjN?}j8PJj z`|kRcZdN#KSqd}iVL{sVleiYI0Z&7=gNvEetH^|YX6_tqGLh`)#>ObNv)t7;enb=T z5CiSgH*!H*>)cuaY4<>!k?6Df<(H!@<&81fN_$&JhqZ(ZV`lxp0sS+Q)RN<8Q<$)T zaZH&sQC@g)nJN<dwrorl=nw!mfAr(hr~d#MJ7JRM2JlFFBJ};lUMl;%ur!7b9ikQ; zncB2lTo#u*zRRp=CZXD}f_*MKZ#XtLY<OLeagI8B#2`r%igB4(M4kt9#X{c!xMo>G zW}hM3d`)6b*X*+SbEDR<Z6`z7Sn&A8ZEun9f@UG`Dp_}XSDPW`Hs&=gI3%WNN4I@D zGsePoShmJW2`Ca5U-ll&OMoKD^3Gg)nSIY38v;G_J9u+z@b2iISyZCE09Zv(*>{lA z2B(FH@XnyX;CXm${!f8Kp^oQ)@JCq{<H@$ad?e-Ke3zCcK_cFbw|-n2np%`LINIBy zWVoc)CENOhK!-94qh!V6XXU9m&uR0bY%X^lqoTKb^wXc!L_8=G<>i&BYbLo??C*HD zP(YxJKK{g0vTE_Oa%BI0#gzx%Ej+U~-F!=M?ZaEgBb(xoT(?*+OytzkIJCemD$7t> zx|)-x+uwsgrzXq(!EnvN;zXw&xK?M+K1+7(+NB$K(!$H-a_7S5IhdsNry6A9gz*|z zd}`hz*|TnW6bCW{8_5`YT1OkWVJFWzNAD362v#a%)^?Na>i&3-b|E1t4c(NUoHJLu z@6^{ESC<-+dPuj((z@c(3QZ#W%vb(2P@$Gp^$iU?;0o6XUs@hQ0ZCjqF;1SW3)qB4 z2ywj3dIX@MzW=5VYeF14IPrOrP*U0}%AieqZVGYW#KnW>0J#ckFwvfn8Sa+Wkpv`A zW}t;*T$ICL(b|Q=Tmf!E(Pq*SBjoQ$KtzA=`E#C-70Xvd<uGxcK$7N{T*|-~){f1U zNPA9xMof8sR-ivKZ*GR7h9pN#293*{hL4>fAHV&x+IA8pYt|c(T*Ovcvwy?8MA8@P za5HL_6G?IS4y|^0oX)-QBAGO8MhK&D-Xxzjc^`Q9$RVLXKXUkx%z5N~S+R6^)bPgi zCFce_Z0tn&<IjCw8|;wUHf@}wVxD|vCb**C0hA;rXyIDOOxC=Q<|eu0>)+Gc#yhMk zFIPc@YtcJqtyVjCcn<jRaUfiSmdgkyL_|GNYt-byJb|lkxKW0VnIKcAPY-!EJh!Wm zp;ee5<WLI^;+(_#_iFZha$g{}*f$Y^BhR>{c7`V~88=Uc#V}tH=7a$RFBlroXnAkr zDb0tV3tHXnaXmWf{`(FaEq8wVd$RG(%_`7=Eqg>D{71zvTNnp>G(410Mh_l7A}gL> zD9=5&SfuW7M&h!qwFmylXF_H@O4i`fO`9{>JeK?%dlLB!5E5Itbct5oAZN)M7szl& zvNi~@KoDe=6}$eEim%;wv0e~v1XHQ@kpM@1%ubpN`E{CDr|Ab7b?BDE8rmk3WhPCW zD8t8&mmx!kD`-p(!Nhp02jYr|2|e-1L$dzWwX%KVtD(tC#x(;=SY~@VTJX>ak>L() zAFT-)<4?1ey1LgiEs;q#n%x<<3k)r0V^W9c4{`SH*S@8h-zXtV+w_wjf#f-~=<qpW zu3*oDMTd<_-wjGO5DqCSlm3GTsS6RYsxf272eKAa5VW)xY1}^B!EQ_VJ8PVue|Aok z#o88W!gPDH1Sl%~sh7c{qB6#T!$yW=o35};drmA`TMh$-DYeQ$ZziIe1ur$qf3R6t z#UyQf3IH2gz<J2A=+nDG9(mxwkW6J23Ct;MnAk8r^zlz=_yp`;Y2k!i&y7tHoA8if z!}K&ZWhpIfkKD8^O^Pu~s_^XSR(1ZRS17AkW&c4zS;7Wvg?ifD!e<odSf>c1fP!_^ zODnVs8NF{>9T7KxfpU7)jUUSJwgA^`b0^!nQois017*dcXOxdWvY1O$sOttA*G7ZD z=8i9ZMdvKT2}xxz&HI6C00RhfC@h%cQzlQ5RjXIYPk;17t?MVNAwoh}D~d-;<ncnr z_szH7Dy3y*A$(#Le~V|Xa2W1k<gh`q?8W7(NPr<upV1_yv4tp-wm`7L&=jf%U?npw z*3}->(s)V*)v@EpR4MFLRw?)X;%Bn-*{2j+G-Y8KVxXUn?*nu9PrmeJS+!w%)-Xyo zoPh=J4W*qMH*Qcb>Km`FR+zN<r36-N<jGazrX9bx$i%5rwdecsgL~zIOE1^+;epAv zKJht?L);JM(V-(pW%`tf8j3@?@XIeQ(LFH3L)qTZMUHt>xyH#h$FLWW@)b>I_V0L8 z*-1k$iJoq3r@{Fd0-dELYAu)cllR|rgKpdtCru32uXRi3a_eS$HVQ4Ys)IXl%}dME zO9f104%?@_gUL&ztoH!9>6VXahC4QS-8@W^UQh8&YT_WCK<)6NIZp%*Z0mXsEKO)> zT2UoPE`qy>Wg-v)bfb0WUWg51u5%uJC}f<IyrCn0UZSK5AHMCgdRZi<ky{+DVY>3N zjcKhb#6Gug-J%3GpmoGy35M`HgnGmeT`%apjzm0ij9XV%cb-ufajb=dwsXldbD}=h zO&v``I(0WHDwfJ&6XXLo+#o{+4^l+})St9AvI(H1AY@GY<nd~G{PD*FnGyM@nOKC) z_>%Wtr5w>^<>ea6$tD2o2FT~<JIAJsGRm3LrpSN%`_H0eG4KPFwug;TyHhEpWr;SL z`1BXPEJqF<l%b=>M?xv~xO61|urA>yEdxhFuL`Y|MrjpdkjPIUyCJR_x)c_bX@ebl zJ(Av*<onF#t|i-6=y!lvtEtN1{M8=lpZR>Ja>wq@8)Dsb@`Q%$`t`1oAN}y}<mDyv zbv!6Uqz7deL?{v8`}=>?vZgItw<#4V-0iuJWO&TRy-~`FST?!igV&?2JtW3KQNjU+ zO_DFMdcX>>w0pqZVNL-B9_IHI7oRInJv~qU*N=Xv`9=uMz;eaD({k!Wq%_50Atc0I zdgWE>b-~_{Ywo7q1J)-z5ml8HA&w2|Rm)?5eGqtK{%T@iQ7@T&!Fi!66^sl#tL`6N z7=PCLf^pGh5`;m>=^^DS6Smn(8RfcQaD-yWa00N)X3QiNe5@;sb?Q_@kVDn`wyUy2 z@}-{4%hToDPE2vIP~b*FHYyV0&;$c+DlYc7BhUdV7UPI9<K@7fo$|uM=OUqne#OS+ zuHe{&A)*z>S2Yt^q*G%OxVF2RJlTM^2_v{qG$eq9qpda3O-V}vB8wxG_33Ak_W&`v z*_T|d0*7rjajtbY=h~Dx;V{XdNN8sLO0@JW(t6fFw$fgzv3!tZTz2hsdOvWL(yeb@ zdD%8(ELglxOlmOF1^08DJsSj5++s5b01>rZp@rk<O3<ZY4V>|gkS)A($97dDp#6hv z#U{fg^C-ZFFzwunl%A9|_qnV|3RSw<Vd2)DIIi(iBvT=rv3~W6U@23XRiP0#fPpfL zJOPGsdZL`sZP|9JPG-(JOD2vRC3oNVfO5Gj_cuB6)%q-!_uqVreC7;Mw8Q`aAOJ~3 zK~%G!mHm5mYuCX3gNAi-S>~F%ocD0^qahH>@}7QXfhIGd#{d*E+f5M)F?sRfn&rmW zlg){4VUQs$eQs_CAAel>LuCoqgm(wAUAUsL;p50<DJJg&V_|-yM*GO&gYuq>FOuOy z2gy%=_J5Q*82c71R}%N2WbDpweM<%o7_9AiCrlWx!V>eKs;W=7ACq%v_^_c;SA9qx zdH7*Xh|_V%rEU_6bx$ZlPlrF(_&KT-;5`IJ2#4j`2e>|{pg|EiQe7?M#!r+#I%m3U z-nK*j<)40{mb%7!jYo~SHK_AP?gvVZp-7~~&U4)Z_XjYwy}WFx)@R#x%9cz^_rv0H zk<uzT_wx71lu2g<H#of!+4doP&gaGbP{?AxL*54{!MRqH0|OqH_BK^!KKRj(Yd!>d z6LReZx~Ai>4)y`eb9e%#o;g7d9z595bf&&m6B+-Y1UfWYXj~xJzvhFtNJUYrOgZ~P zEi0hgu_qf_@?~PfnKpHrwjO*9Y)el)qGduhdy)b@<GZXshsQbYIXrU0l+fA|B@&=a zg`n!{<)*D<Ok&0#@jq%4=gxapUVeVQCTs;^&P1&^ixu3_hz(-%pnHvij>=EclaXyP zVRDZiF-$gZ-W*tqqWE0IxE0|NwJt?W5Q%B19Y*^}Sgbg(;gRSi?K!z{u(9BoA<!Ru z=wVHW1KXArq}J^YE-GwP7hHa&Tzc*Gs=X(37P`Ab!lJ9JtdLjNuI-@h)MhY|cOWgx zon6oHy#4$24P5XTGnW#_%^2s{WGb+HQJ{y8QE(-S2zsESdB}-|Hsw<9uH|Z<ALI5a zYS*mny5rSy#^fpTksID8|MIh6$Upzj{}E0dIeLs*<?p@h64|tEr_%2t2@jdvIGB~3 z3tK!F^ClR#XGth>BU&1w91c5=;4Vc%9LoT0=6ANS?7ZbhjC0eJvmod+wj0rrLMcPO z3#ub*7{gvG*Vx#DP)-VAjOQ#XDUqqurpfGSljWa(`hV07j$_)av*f*3T`eEH;RAB4 z?vy<I=wsSN4&jd@hYm@v^2#7cI9_s1@}4+<a2}E=H*MS~58VCB%odyRUSM0d!gBul zcfYTMGUQC4w<VcVl6+=6CKLe>yfn48>T{ntevEoz?)}v-<jCQ}a_)KO$qS1YMeToM zHn?y7_1|fdBY6dSYN6wPaE}8A_LbEuRv5yS4ytQ-K-x+o?-CBw`J*2I3>t(SF(;9O zlxuC;y@<UX@Vv(k9gvkPSIV=GKcTMtj%4j<9<j0sp;jusTyNRD#z}#WPzK79S?!`s zrBIGi@_4$tubmF(Wm@P+u22o7UEP0Jd?dbSZ8vZFtqOH!79u|K%IZ~tQ7VHw*HU6~ zK+6yp3sr3LGiJ^TF@7Wib+!5C0-X~KS}_u~kY&02*(XCcrDWYDDM_JGl71Ez9Tr}i z(C*4@ihIk*qD}VbMwT`NdV86C>T`E!?QpInpKJo%CZ?cq2sVAThGnTyDzQ&-mAwDM z9}49#Zv|_-e{{>j0WBQu3XdE(tl7d$YD#mtUwq?ja^BfU6dR$j)UL*+>ypYH-S6OS zUh(2mZF@;}LV7{i|D83<2Y2sOWi}FqQ3XLy!c43<!1rs8R?DIN`!stOtbAZf8!=>% z3i_b~`pbsR+vJT6>tynjDXIiu(`MZ=Ev8)YWm|5EWTriP_iE#rrO&UBl9uBd^Ta&W zHl}fFQ8d_r5=xrlo`z2-^bl(WFTSlB2uZB5XAAEXUB{-*nym?O$@kYCq0UXey}3zi zvyW9*%iewar2crdu7&=Ur7~dXaG5=8ru6IGTUNjNy6o7oU8c{NrA=5+D%o8n)ZULx zrd+vVnLK#UueFmLb3P)4Fsck<egZfXzVfwi$N|KJXUx!~N}I5nZ6D%TP~>pXy2f{r zKXUlsLD{qap!6<jlj$>N%Gfg|$j|@nU*(k-7HHBK5_Es~lm8`k4b5`0u2vZidn(Xz z4<}F5$hos;ORruf^0R;a-|Bg3sy`msJ2NcV;tILrtKZPX<ddfwWXRwlq24{$GjmPq zb0X2Nyi!9&NK%8lo!k^OYLa9<LxznICLebt(9`h7Uc3JF*E(ALN^57s?R1dRJ-CM; z&_loC*rf|g421V65t=Y5;yvc^Rukjso&)O<+$qY@yJJh_w$4ViXWM7S)*CncTW<fN zl$Dh!^Ai(JaF1`r?M`6}&42i?VY>MtCJ14NKD?a-9hDAb=9lzQL5Ge?5I7v47CLKd zyK-~EGk{V#Bnz&7X?c`&shdTsCi;-#5#f;A@BF45t*(~y&p$uZC<6m1HC<`OzzFv; zWMFUExA%aCKG?dnGXqrg)=}2jr(fU5a;>Wm<uE;Qnc_MSP7qY=ZnS9L(^6M^A}$Hc z%u?n8Mi}UtTR$ylOc)<rwb%fdC7o@)bDqM@hVvolSQBpXMLdx0Op#m#%avKe=$Mx+ z;l_@e?cL%YkfjXk5H;5j>{WgGDQ7<fH~!zfW1E0>6$BudcL<-rx<@>)yYrdjAZ8C` z^tIPsS5giQXEdJD&<$IQ^1g5SL}r5>hHbi9Kh}E1x$Nks1U9jkC-kf~o8<dGa+@lH zh<noGXFVvnggQ5Dl#^nP<K63git|(sA3d&u1m1$f)ko#nv13x+t5`b_qRN2p0P*v# zlm{EGAr|-!T<$9tFObI`eo&QsT}N@3GbQOkzXMI)Yt;%NB&KcKdoUx8O-nIXXpHNV z%4m`d3fASA(WAp$e)55PLInf9`_ua#(R+Ji{RXA$ra-sPol7}o*(vxU1`Qu6vnHP* z>o#wfzyGVhP(BV=%rN>8-k5&&`RXNwr{twot1~=zX>!8mVNi%;-$Dpw^5n_V*4Cm4 zt1Pu7#`vH0{m2ox;NnXHgCm~Lmi|TiRc6^P!!?*MtnMM<(~{?xM3ot)i{?8%%bl8~ z0@q%q0&4J}fiim1^bAgNPKusdD_ppsPQ;>G`NG0TSjJ3Cxk}c!0nzP^Ohink+dlV2 zEfYg4M7o)in@x9r=j6j!h-0H%W8u?JgfbD^1uSsP$E<ZA;6Y3W<r>Jk?2aXFl_T6c z$w2TqlpRcHl;e<JJZz9fB{F)_WX;+|d=C5oXi&mrz_f5f@?CLqBObkO?P_^u&QqbI zTe2Ym8-_sXf}lg|(w)2Zs3MWvC@j_xqV`_w-(aD`y3!nqXBP-4b+MRWMUtV;E-2L1 zBK*_0Pj7YSAv+arNVraUB;PYWXOax#=ZHhHHd|S~Vnr?VK#!Y;z&rKPPu`~1706F8 zUukXkM9A`<Ft^|;?vECjWl>2XlmtA-!2|oXf~2ghR6|Bk#$bWs*^pF6!Eb4GbJf9P zto{QBs24){6L#&BqP996lZj&bOHr{l*uepd8A?{J92CrHCR--oGxF_yRa9Kv(k<?q z;7)LNcL?qf+}%C66D+v91`qBo!QI^*f;HAO&h7J`^PQ(V?ily|@5k!iz4oqMt7@%U zHESy7`JLI6h*$G<v7lv=X~w+9(_SH#Tu6}iDkj_O037p+1jKPxCFcGFH_#hP{y|{$ z{@AQD3El1HTFgy|683M_#{mT0|3Xm@mBso<IQ|r&G9+M1hn=FrO5Z?)eol#T+SE!1 zJZtTF!M&XyPY+Q!>X}UyGfy7Wo>1J2&<ln5I%<2KO=vOD;oh+OGXgkG5t7aQG}rqk zJ}m+e^ggT~;qrraLeEQ$f@C_-Cn3d-no^u!Uo2Qn#f=V!0%M%2%utCqWwLP;^Z6u7 z6|-n(ri^HpXq3Xk8AoyJ6tf=#{zh2=5kUx(z`Gd%tvhd=NnhPD^8!xm8pH{vgRg=Z z!sO&=zQKydlf!@h_~8&hpva4f?HX2MBj1o<@h?-+3=8anlyt7DFH6)6H45=J%5<X- zbMB^*kBl|5ul_dfbvmbpa2f-qF9}2>W4`L4XO%MAWMT5?+dnun{P_hH&!;OaUa%3G z$GIZEZkhkRVlBod<u&O3I8&N5vVrm7O1pyS;L<_v@cQQlVD?j46F8}zo$8J%u@>we z+@XA{zES+8Wx4D6wsOf=yp+4`uE8ROI*e}sDP!}L5*~z;b&z08rBNT%jY<3Qv|1*d zs;ZTp1FsoLj;4Sd;b^u=qg{~TJnE>?2KRJx!;wT%WE*aH)-Lt~nU<B-GXy?#T>QSf zyk=Qf?KN{|8uioTmvAIWs8r-R%v6{LD;}IX3&2N$TF)|9i@CXE*;G+p6?7#QYw1ie z%{fwwTU#ZUG`R^AhIU1HY944bP;RT9g8U{PG+rv@=?B~>L`fiC=umHv3Wgy60gT~$ z-gp6^<{q{guDL;o!y&qyN}|O%rRhAt2rP-2?o(lN4?{KLFuIwjn8hCQP$KjbhC<8g zqO7c{#Q0k#wI>)y4YKT(h)Ol7P1R_Z$dy}cQ)HqXqklqY@&1560(`s!I5~(Nojj5b zz&yv1&L7;zD6nvO#ER<%9h~<@5XY^XH<C{ifIy>w_w!Ek!Seb)t9t~+G%VTT13>YB zdx;3N(Hn{g&R2fxS<#BB@)Tk0616#&e)E?&VqMgbE`%XIO|py4Z<3T(#Ur3;wdU>@ z&;*xOmo&G7cG>rp>pU?w%G|148e{IRt7YX1*ZA%<IazMxTsJr*vIoHnS(R_$v3P}J zBl0-RqX`m)V(Ke{F+#aLuzVsvw56K=whiMm>e%!rWm|g!raNl2rG30UNE8oM8UhV+ zi3eYvD_yG3#p9Zd+8TdlIW>uQiBnH!RLkPcK04%#rm-A;+8paOsTvMf&teo4YxO)o zRw53+CmADJ-p1jl7lWXj_}XFS?fgT0LezST{?v3_%d*w3x+3jcQ(4-8u_?_+L-M9$ zP?bwqTJPBq)$L|i85cF4N&er5(y+MRdM-vRM9cJbmqtXv?4~fcS$~vbvh`})^W)uq z=yqf@CdHq2C5hId=Je*vW)gV3&c;%V?AZ<B=XH`)WAc4_J&td1IzVyhBPc99yFv-O z-h<xP3KT*<xhS91@Z#)Z)~mDbV_nidQk=HtL8UzVSu1&6#dbLtUN|P<;j|l+87A%G zP?;8KafHetgFeTuzfu}WZ2_)y=wt3NQ<#SEUP2Fm9ftTVPfzP$qQtyG7=`*J8C~;x zV$sPShSmV)*ZI&wR4}=@*Vo^_f8lZNPj@pgq<n_hM$=nPc|fbc6DwGtfSB0Uls;XD zfmF{S?Hdp7!=79Jjq_X^;Gez;%=S%Hhv-jUvGg`kzGY)1VSM=-%WG4?^kV}y-H2gE zkV7lrrn0l7^dYpPbgz`9w*1@XjX!oB8>9wz6`KgtC2N4Dg5JhbP*7{=q<;o_xv=OH zW1VCC=lcs@9H%apgcLCyUe5<cR4u`q)uM)@Da8hlquV&7kPQ165W>Seq2pU|+EjyD zh|4o4a_%@A4F3*fP1yC=_NCrYW?6nz25KQ=3lD7kslfUX35=ycQsDYgj15Q1Ce%*> zS&(*%WYEtf#q&ccNV2`@?JgGyDHap!j<Jhl^A;`y-X^q9vL<X{=Dmd!7O(hL)=w!% zY-JX!pG~I6WJ_C~ka5OBXh@d`ymhOqf&t|V;V(@(snO`0Udf!YvcuiQOjze}CoqFh z5I<omEXhxe**2Dwu}&`}(R8Ktlp^crv9SE|{CKM39qr1~!B})_aU!!2dxHK9*J2e( zN7Iyn0zK@0Rt#a@d6<rFTp!ERD{x6O9*-uXjCPv1R(jmhGWGfv-!=v->6%D3@kdps z5M5|waPzcmoA_<=(;cq$hP>k_g4OH`bk4`~$VUyLB*v-#3;MWM>{_TH`&E|wuHHmR z%~i2N7N_jGE&*2}YIaR*?Yu$8reAUtN&xuS2u`X=0d?<JsOQgE|0E6kNO`w`Mnm*C ziINz==NjX|ikU1vgXJm%Ld3L;o^&dyv`jRps|JuEQ#bt!>=2cMKlO>ydbe|OsdJ0h zeqLz~pKN$M9@PSM%(D3axXtP!W&QZ?ZTjzzRbyNOJN3B6ia4ohf7k!yK?I}K&Uev} zAiKYzU<R8c*n3rzp(c48sT<W>R!`>gC_fPK)qI<!75PB}Cms(Kp3HFRPu;EbU=Xx- zafCe~fnV&7J3!d*T9R(Q6AbP8;gpX=g6X5V+b()a-mbjvOGZI@g<gnyMUnII+Ub6z zu3A@!F-^!F(f~y=K8$}bGP<ftaa1u9Sb6ojVyN>O*fQfP+8#L5yka9kuh#%)K}t?e zl0&#G4lfPO<o;b01*^x!FbMT&k00>0kfeR{paFT9k-7a0+7%9OUn+K5=C_RLCULM$ z7$5iVLJ4>~8#Eh5irp*$wqzaA>Qtlz%y<c+lH!KiN#T<mr4n1&Xx1q(!{yrC7ThfY z;mGnyoZapX#rZDy@R#(tocg6W^{4s9s*ShHohZ9{Z;!wE9*0}eq!aC@dRUC18H#;` zl!zb)WK=nf+8GZF&tW1UrYR2<41ZD++SM9WG%nL3$!W+i-X$Kzz5sgt{p!~Aa*1?2 zk)~!(aagK@L<1B=Kj|{%wE-)rB5u-WphG%%S~H;v5uOwZA#PV((l74l=c;xUSwl7_ zTX?~M6jD4)N3hVtp+29xwY1D|lOX~v`$xcsSr(&L`LlI_#FRxLO_;Z9atk0*lb}j3 z#lXOSsN{D1S&`l0mXgn>OViM(SD161TtL5t@2h<#%+DRnY0<XRdg=TGgIeZ=W(#ap zi*I&L%Q1I1>XxIcH&*3AiW8o7+PYUz0wis9vbl&X=$*@So{*bqH?NQe*IX+*lpCH` z<GU=Ua^+=+kM`mTn$Lqb2j+j0N?eV1grBY>glU(g<HxTI1T^>t+*H~pEpwa|*>@nt zA=<z!Fh=Dl4PcIHjdXbz7Zs#TzsLJKma$bfv%{SL7p(%TWiDd%O3UolwY;?}yV2QU z!<%cT0Ahl@pfb`D^IbwwsQvi&eA4ks!q)L&MZzTlICum`t59$4&-pFr)J$H4W#H6u zaKp)7rgbKV2__Qsa+wCgs2U;_;mAd!<wOYVoyE+uV#8|~)x3&P*<_$#QmW+jCnbS% zq6#8@DXDuvbs1YAZMx_Q@R}KO1F+R8x5itK%Sp7Jiz#x_4$u!K;VHNJ5v(WT-)R}I zoWW1w+*;N?T2-fngk!t>nsepRbnv6j@4nS7<sx4^6wxW|F(fFQ-(*l;PmjwI^;y;a zR$*EWiPhHH<}-IT>xk!W6r|PLD@`CnZM9BG(~s{GdTIOygO^{*H$DzedKndIz)1z2 z6AvAwp`oY`I(s(ePeVyHYR0Bvd;zU*;d`#*nmDFBzCF-B<g~Ltd`Y=7o<&v7vQAH| zi%f}-YnaU&8{*wP8Sk1NxeW|dC}qw^2XQ<38n#I?f!5A0hmVL3fXpe|F`&{7Ub&NG z4J3ggD}J&Yx<Ln75HINc?+W_Zqw2uX+K@cQ<J4uR{IEeLqx56aorsOiGO56qbR(A% z`^_$mgN7d?N=eH8`v<m{{kL@hE=8S&^H>tR>7pZ+UV8a_Z~dnmHY;y!$@@3br{cP5 zn(9D$(XnRx{GTF?x{xn}Iqfr{x6_=#X!36hM$cJ(H}Xa)5qUW@*b*c1`7J&`THt+M z+xipAIice%$k3(a6_Ed~(Bj~wvFxx;z4Ny1$+f+)N^M&>ASb0$0pz6waZ^+5Z<7_P zd>Q$T>(jXUk>fV(<4rp&@<ih~F7kRxdN@aOG7hE|UZj_55yB2T1cNq_L%&@cm_Jj9 z0rp<55|5CN!van_j0W|QP6a-4d!Kv!9*^}7*CeC4?jbBPW}Hr3UG;BiSSfOHuzAt@ z*V1C=5&Cy9<O&+3O`JZ@$s9uuA&VHfKUuf}pwY)4hy{+OxENBPa+(?_7v`&J<E$E= z<n@O7`p{K33~SuRKIKulG)tk@z`r^dti^62+ozA!X?FO~m96bas1eEhO{FZUR_M70 z){Yk*xVyf?;#yLguKKn{&oQ%i?ycXkAr|0=2!Ik_uI7Xn=~>nZU{PUr8^%xB9Fsn+ zk|S}Y$*7n?Bb!hD8eY(~_w%lk^4%ZqZ?8L?&f-&7v3uU2$xF<wt&K~1*l%l~65gYf zNE%-0c{9*ywUO^*$aGF_5|51T*1F!{xYLs#?bF4w^3*-kTE1nE%UzD4awsy#$EuE3 zEs`F!tF2lJ<@NZE>>#90O(!e13Qf$1++M|C2n8UH&Wa|!aZ5lVR~D83os}@VTsnp8 zRiMPb?i`i6ivaA(_Po$MinZ`=nrvq)@ixJ$q)wdb`4D-MvTMX;N}S)fJo<LhrZ710 zA@VrZJ2B$;UXYYZmdwq!a+$%cI^jrZV;8a`5zC@I{Xojch`#9-&*&4-?sx3gYDWyH z_{=5uk~M6Z_F!1e+E0zty8nBr_N#wmYcKv%?#Qy)YO&n&D7=V=UBUFBU$Z$G5yKPF zBm{hmvESFFzOE6{pQpZh1e|;muF;L}Z|X*E>hB|gAHlDORw7z<OErqSNs5pSf%5c{ zuY^~yBdO_zRhe5(RlWwFD@*g;Tl{XOYw7&yx^%cb$@Q+_yCShVXc-m-gIx}ak5_MI z+0aw@RN&Tv;2b?nQ9uH5X%CSu*ZG0owfe5p3f`vMP!&%0s%pi>`{vl}HNliu-)3(D zUhXexrhv_^GX|L1#aBga5kezF9pYS*xV`U+?T4>!=0H0q>#nTsxu=>&6J^Msufdd+ zB&p<r@b75KpHrx+ZoV8Uq@;z(#hUkjag`j7C#EW*QA);+&QDxfc1j^WH=1LGBT%wA z`e|{*=?a13@_Tcod9><p@(=s|Cl$&I5_owcZ4*T`%!XGqmBrZwL*D{I0A-4=Vpp8+ zdcNgt$Hc~8j8hqLalZaY7rB{8=#;RrFw5H2<lZ^)h>g2+&o?PUoyV#aEO+hD3wOdA zr?Z(gd&r;M1^8Xp4f5vq#Ww8z!}qLf^Njb*`P(^t^VA66Q<Q?d%r^*YEjj&94@2l` z5>yXHY_w|3M(k2Be^)niIorCat-b78J(B8j=$l}SUv$S!KF8KN%@z~3<$4Fjq9MWB zMX1`ECkrOc*d7GE5{8j+b0d9MN&HfTCHJ|LXYQ<S#`oN+ht`-h+vg#ygU&_5m@zg> z05_c&SraxNw_YYxe>PSAGuj_^jd>gbo3D9UY9-Ty!Em_gM(*zAWDuG$VRNYwcc<%( z%);4of_{%OR3bW@Cu~$zGV+5kaH~1BZ8tdHkA*L(OPAjUDp0uTO>LS3sP%80yfjI; zA5gWZV1Sbq$?gVkXX(9Qrqhw8im~`Wm;5UIrv@MLwz2&W&Q_l+$)Bj$G2bah6cfVk zjz?eH-HIPZg{O8$I8<kiN#+K^aH_fMBTY~`+1S}oW<sa380}O7$WLdX4JObF3w}g& z5$7N#hA6$mOfpPvbOr$3o&rCBA7^*us;Dc&0{!lLNG$*kzWn5Hs9tzDF73SCiF_WX zyfhaudbFFqVze8AR3vVWB7)(PVXMJUI;WLrBMl{_>1)Mr>G)+BdQ@d0kiDR%+@zaS zF*^#2v7kqw1p99O2dFpIg(7?mOe=~M<D@O(<yeK9O_V+%-|r<1p1Y1dJ3=69W(1B# z_idTP<AQ`$_(QRs_X*O`V#I@^_NP0I3eiZ|I}Dxkocu9wsn<qt)r*&1{(<#k(UF~} z7>w%-7L3==rBf-cHmO51Q^{}OeR0;3UB7Tp`;Q;7Q3cK%C^0i)kD*uYn|3;Uq97p< zY$yC${!<O6uoxnVP1zb7Iy-_d#PX;B@O1D9?HsgzUbBM7q_^un!nK^5I-MQ|TOxSG zQoDG|>oHH>9?>)Vbqpd5b(78F$H*ucI&J%kE^8uNXt}kziPxw@C_53|Tm|l9pYC2; zH9zUpfnl>{PJNzAk9{_XZ#5CATEux1R*m*ob3jO&JWh7x2O&W~#O?il|A{yvev<w! z+aJrSj6p_~Q=S+fP$9+0_~@PlR758>Yl|Vzl<ikOBrFDu6T!PdGlIr1U^Fb|wxnvk z-`+-G2@=BaQFu@rCyvItSTGtn+$YSzg}U;>%UVOAt26-k>l5~=?w`KmwqKE)Fz~$7 zdj#RqP-F4jg=4PptG;z+X7y&|155GS=hn%1+C2(s4es@S&Ks_uPJl@ukypLHJYHUB z9J=R%8*qJx^ax1yrRn;9iJXhX>F`&bT4)y=48ER#q~{L)r&VGj1S)gc^ZLpuSiAUk z#5%?%aQ{%`CT!*nrT&+aOA|faCP3d2pi@b<h*~kTRH!ylVYy6MLlc%HjbVp8RmE#l zMY`Agy%8UqA(F*RKa?%w2~}b*-Sb0gIF^_Rv<*I*_<d0gMTPHl1UG4=<U_`Y%kO<o zH`&_LF5Agt>uRW)$-SECz8y9`67M@K7>Yecp%`3;L_Z=0O);69%EFkoqQ%T(aQMr- zUd74D@SE{C1N}lxs%O9@A-nUes7{CZPtGO~k~gvqAnkxUIYy@?Jd~H!LHIfwyvKgF zra{Mr>8PP<O1b3t#@usl|8z*4pYCR*l#06XF#f<qSW?`?7)lb!H*9efHnek<{}50e zF-<+Fy4K%*s4lt+<^82@G#$)XLSq*<4(`sDP9eZ8Iqs*bqre;nNT~qD!0TxiX*{@- zcIXi3Nn)$gQptR2mh)@r9v!|>U4A;7U@(90YHzrlsusgsVjoOunD&?K&<!e^+YuOF z-hbq5P-W@37qZ2i%gt4En+9(Uc(h-qhh9egJz>YStnYX;h{pj`@+(c%7V4E9#w=cd z7mLZ!y|Z6U1f@!319eNEbLtBfv$-WaE;p&8kA+L7a0}Y^-kqH)*itic4vc{=e4v~) za;ah29ByGoOzV2yYYu%C+WO$-$jRpt<UG{3Vt3VHS)Nl5I8RXX$_{N^Rq=OKfq!ZN zW}|cJnRIy{0tH%_$b(fZLsp?duet}Tr^_i5LogRkFY{U@h1K7N<46ioNjt`)mOTlO zZ4g|mO^9cW_`qGXAN?#X{U;?b&e9oPq(UXWtnZqhU%f@Kz#`@|X=!pZ#bsp?XuxE^ zn0-deJVp3Z1c2tltWS;O-`^1V@WvPM$eGOTm3amMcE&=Q<gl1lSp&_YlQpqf^LhU& zc>7-x=rp>5DbXLpFLpYmtF5(NMmLB4d}4P@*tD-MkgZ{wE*rB_N&%y+ZTjitDt93z zG+^*2ALHtWS=wH0|8A8T(E>u;l`5GwI>@)Z@>gY4SI~tKOaA(~Yt$jF;me;ug!%v= z<p`r}6M7$=L=yHS;Knws^3{h0iRv0$`fNuasbo$9==y_hI@#P$M&pLFg0(6e8su=8 z^=UV_Yto7JT2J9(9X*^qi$0s#$+lBZ@Ath)Aol4`Qct#*UVDBc>m!7PgfNM_Rbtf> zHxc8Nabt~A*)mI#MfF-2$Dw5Pf1W7O>Qxqgor|9UJ6H3UtL}!6J~55m`=0SHuxTK3 zj>*f;zNbFoZE7#~K5h70I(Z)prti56CEX>iyJVSyCNcVN!RLn|$jk}14eV>a*LA}{ z6E3sBUEy)>k?z55+-+DP!luE@kv?E4fXSm%0uhE(@OU{GI>LOT6qq&E<22)VR46@w zn<iJOMyjQwS^#b4H9xzA3a@KX)bMwbZbAI%HxOmrx25goF8uj(N5q$W%cTZf7$)^6 zVV9l<{zr+=r&>GTD<_4~>&L@Ug11v~QXD?36qvRWG&Sx0fFJvK-RPau%vA^y{e;M* zilC(ZCnJNmDHO5(u#FC}+0i^@;Fk=^7WV1b#RSEY^kJ9VbRzKFFj?~M*gAsif!I=h zIL@^hjiui+@KJd@2QEs562WDm*tvmOC}u2R@wHdWrXmGMpLkX@awJ0Pr`=L*fC<!5 z;<O;oJ;Vkd^n>{Vf8Wl{W9j7E5Q@6$?}p}$$CjNHcQwQ>5($0z02#fjdN>A1@X&0q z2w<EREDKXl2Y-S+TUxWquXIsg{1p-tT1<>jsJ!nK*-DYd?f2-s*6Wln2;7Je7boh8 zcy{w5TOF#<vM^ejEmV110lbxvHNNjp>{LnwVWX$vjK|B#VVp-LgFbzR1g&&7C=e)d zSzEwfOLlJeVU%?mjClU_HtB(T7rYCZ_yz&IT98ib?V>k3XwJ^YMr*3ENBLwDt||dP zp{_i$^vKN3afrVAM25laH{-iF0qrRuh{!ZG#jl*?M&}TFLqz$in8~V}tt)t&50VlD zN>Z&`#4e)|gp)}jntnm}-t=iGhu7!6JZM4WUT&r#;|5e(Y6-kTA?5#erYA|#{c@6( zJ4tfdVjA|-^v~9gZq>|ls*|65sZ!n-`E;iABI$UU-hf17t5c|YB}#KKnZ8D`U}Za$ zyx>F%DeDLRE`^aelGNC9BP~rq?z<q2xBiu0x+z6))??Wo6_-2^ez8}(jJJWV-Z(=7 z$NOzeo!xntjL-Y5cryPk)Ti;x?iY72zkkXyHxg=znpQ-e$xn~k9N`yxrY-1BT}cZg z8ym-z(&aBqI`(J)L4RQe;p)qE*xTzp+t?3RW{KTqp1f~IbRD((&PLAyUB(*N>^>J> znXG>m+V6$Z8K6zg)RTz>T{$@e|FrkvWo$riOZ5=a>y7npX#4C0_?JLwdgx^niTJ53 zcfWUBh<M4w5%W<x_0)^m#!0!{#$YH4WM0XIXkkgA95bhIm|q1RGXxUIRTLJu?HqJY zl_Kl`%E@f4?dM<kJ-ReOAr{E_>Htc55h$ZB)0KxfMjhy4d}dF-Anld4lbp(?^g0~- zPii%IT4_RL603dUy{9=kt{>3o;2OcZc<5@<Y89kAb4C774+Uev6&EcVPAf{{#cvc6 z1j8f9iqW;}z7r4g^|I#9lYmWZs-D3RF2xKARg{~0R6_1h^4;-}<>*yA9hXGTW{Y9; zEbzu*ZSZHQ=26!06K?_vY<i)k!7}lRmp(fknoc8W#}iJqQ*)L45S`$oLq_rCRLDm% zd{wqOm-N7}6HmFdTGLRrIA^_Blj|P~t<i8EZd>us@);csr+5^_z^GWroDCMHJQjw$ zKyt^?PYyAD%cnw8R6ZDjtFM@Dq-+l{7|D$!5&F7(HDPRGdOvHlCXDpy<xf}^Utu25 zWjs92jgJ|Y6!FrQP)Xk-3$T#xu0|6FOrVQPq>mCv80hOFyU|V!s02V43#e@+6{^)T zw5rY&`_E(nPk-VAe_Mohwm7I(ra~$3+@yI_(Ap+0^Qy8s<eKy({&Ks^b{fx-CP|@q z0i9DT4I$)Fw{c@eyk-Z!;%a<<AmuOK+#o7z(n^er7?>u0kLhjY=J}f=`8n=+o!|(V z@Ak3vOcZmZhCkv?Hd(Y86Ip{lGNff#^wz<``vGNR<B;mG(PFu1p{K>1kBdZ3Z(c_S zqQ_)n_)6rx5_j3)f3E3oNXxRGFQBR0b7QrWdNh$XHamB~xoL(jNRvn7ozld8zD_h- z)>>mC$dKoK`8(ZWZXv!heOB{Fd2`Lo%9Bb!{5Evc2Jr(6!nW*!rR`6K0hvwcYqSA= z&SJ(_6knD+$R{ZHhl`{o1|y_5+@vR#n8Jh3CXcc1?Z9hRd@jo>aGya9>O4LjsTh2k zqHxsI2U9$3X^C2|Y_6I+iia#`#kI1b=kQjTI}$kza8U5?v;f6j{<hC8ub%T9#HmtY zWMiR_pwo=pcU`ka!;ZMsImXmL!TSQ*{74Aze@4eEwu1q{z7XzEY}1|mej^1%b!Whv z6Y%@9KjDEOib94DNKt?c+)k7t2ClM;<B80k2D@zSqOR-I$q7k6<?y4+!A%5#H3>S6 zmSY|6=Z8)`A17)?Ke7hOxw$v~gyZjG!e8ztO2C`H7SrM1Y%~?q>a$EWCSaX8TLcq3 zg0`V=2cbbQ#|4YRm&eqpIR{;L-(J4Den#^m7-tahMZ0KBO--X0Lw+AIA9>Q~emUhb zG;9#%p)$XdXiH!q*s=0#M?GJWmG>5*a}uJeyY6&bYy~E553zmLb8Gyjp;6%+OjTBl zb>@1utJIPS%=p|m&1aOxVlbau=n4jzd7nI7f@6oOj!fi2oR!0+u2nn+L>xnHug-Mu zsp(o9`Ilg^s&=i5yr#8A8|YiWL*QVQRyW4buuHK9ODK0UZ(;e@S+4UK+2q5EXl9M| z3Du&J@_qR8D=)=r*9MMgl4a&9rb!lUSZnBZ_X$gj-u}X6S)eMmU=$cG8>C*SOgdPE ze%jS%a)KbzIJ2g|t}K^r7xrQHo>Nu30I1gQ_<E-F6$-`CbCM>3-GmvHghR{`Jl7Rv z`h96xSd#YxD2h+b-CK`8)x`g}!+FBGBk|?^;vbdDhIF5B6RX)UM0KV%1gS8S!>=e6 zlTQh*WuJ$me|rX|udfpf#o};Im#jeK7ajgS`qpi~(V+8iwMH=#uQ~C+<YY?{hpqoe z;;M(iAG$jb><%>}?YV+{GvfJ^sb4)YBvfrV(s}H`NZC$kGSpC5AXG=vA{B*%{Tm!Q zF~M?xD_Yr<Q69A4?1=BvE8n^SDyRscE1Dj|MWmN`^I`8E<vGX&mqayr9&BwP;FqD> zGs-2pfa}#;m5yM@O8K(y=4Dkka$w~L7Y`pQlroT(OtYA+>3^R=wAv}1ML;O7jkv8n zE#Xg^>d%ED@gVPK>4vF&Qk%E7jDyd$r;yvqn&<4q&$DknbJeBS<NLbf)F%qW>1y$l zl^ND}U0rx5&f2TdOY<?0`GwRvJbA~g=0SxtRjhJR@v?<9+oJByZhmOpe)MBy;@SQD z$am){uIphwDF#JVN#9zD)}rmAdu5cyvDY9f+SjJDlYAf?e*BMpecd6L2Z!3y1!XwK zawexxr-AlB{J}lTo#cvP82Q3|YD!Yg5Z|JR0&Qv4S&hcgGk#c|>DfO3H$?vqmf%d{ zG`NOSzp=Y5-mpV?N3L0$4(n9&@@myXumyDqIh(uL1p2R#C=WSF^{zFb^h@F(q^1K| zd?aG5%6jNPn!ubF{pFU(iFW%HY~X?FT&FUpqoVsT)0!{{1=#miO9+SK;j(B^^D&Fb z?s0)PWe{{NX}VuW{)4L>d6_=0bXdwk08t4FflND|#@4Q+<=E?#zC2qqN71e#hAsV~ zvvKXl=38!>d8o);U|ZN<G)q@1cF$_62=75}c~Sdrm-Sc0cjDgs-<5N#MUIg!88JJs zao<oR%<$R@55PTD%M_B{&8WxvZolC3TZVi~0V0{8>O)6y<6*jRa&yaF?!6HN!cI3g zH@jHzbjS+`n*2FX|Mu&~u9MoKs;x2~NV0#(=)<2tNvIF>O8dorS>ynky?%933b$0m z#jXsiF~K?b9U-n_sJe6s9DIuVFhTiC657zs>xY#Rg=aO93u&<wj$e>)PssiaOi))9 z+ZK*OOwdeorBMj@rL0kM|NE@ckjM+e7@OwAXX>YqjkRss*_K{OeZB0Nt=;_=8RN(& z&K4SKv5d=S_#=wzvJoVN>jhs2J7vx?Ta9>lkl<Cj2dP4K>n33^#|pyn*QOCE`~0-% zk6anrfs?C4*9g(xr!>73%D}}zy4>qA%bWGkIQwNmQx2K$HWjt0TLPY=RgKeXH70{^ zDz@{p&i^_^uVf(5Uq8)7(G^YEzpwe7!bG?;`vS@1^7eDR4>!l*qNd7iLOOQU)i@%W zLz>Q7#?{!U$)Hat3&N&*+f3{?Ixfps!+hOV>Q0#6KuYI(8E4`RyHGd#%9SSk{6|JU zkN7;65nyta^4N>AY1a3M2-)ai`z`Cdga>~Mx#%rl$`n<+gLg<xS~k6mgMMF#3F=qF zCF$pftJ6m~u^;C14{5Y(70=g&Xr{lky-lPUJO7^B0roTb-?n<xk;XVLKHrTAS6)gd z+$`y@Oxy-ANlVz4guWT7O2^<rq5hOpK!G+vdVnyEtR;7hhlc7YJua5vuuB!#T>PF{ zS`*!REvOyw9iGARCMOsQ@7DMG{8uEo+b3^Q{IRCvtXw>NRN=K{vG1gbKw{#0D~^#n zi$jW`C)s=EuX}^MSBCmEQczg#UD3C{g*(uT{>tfiW2NmuPP}}5qq7mzp#d^UhHzIl zqkg%hvE%R(5Xa9~<#vumdHr-pw~;l&e#tL99Ui>pl+4FbN-90yIiLGhGU59yl#`$u zf#&f1o6spW|MhU>_IziP=0}7y3`UG1C}oZIZ(J*tr40Rgy;<2O$`q|{*2xG8WUukE zp?Ek+r^Z6RBs8aPiqzIxdoBBQ=Yu%4e3|2+8sidQ|6JH<pC}98v~@L^Cw71#Pl}$M zw`ygJR36QcR{rTXze>|ca6Dea;(9hSwGg0$EJ7@|F5KZq^UTd~m0iW%=3tSO^(PP# z9fbl-8xKC0Fy$QrJM@h`Aj_C611vviNN(Ij3*ZZhoyIi_7W{wKie)5osiZ<Jj?wrq zbBskm1wlb-66;5(VA#}`?q^%f7dyJj4zX_dE<Y`khq8X98Dh2Bx-l5J3<kD5x{X^A zLs9z#nTN^U)?W+OF)rzH6>=YrtMq+u#-$$k>N8PaFu@<No+Bfy_1cMj+=V-VhU?7f z#xix3=fYwlG$>~g6015g#$DTp54CqZzrqL0zv2?HKlcZSv21ZcckrqKfCf=5M~=K= zRN=3<9VmP_Gw`n*bcKYnqMzV}2|8T5k(6BGLlzyrC`{{dXi4A~=4$`+^({kkd6B`l zuv@hkWqKaWDLX10$wT1^Wh6C0-#;{+z?N3dn@GZCXHRTM)Jd|Bgph=~k|)|VmP!g| z{>2L!*7Zl$G_r;ps^eo#A1Vf1Hl$^@e2|r%X4k^3Z}#1+LV!Q6;=6pLyE}BwcYd?_ zIlb6UGma)gGa7z<3fe~9Yd)CvZE<_dQoVZOo3@y+)YUHbF1Ri4t3f^+uk{z7PGrVP zvKW^cj8i{SHtsGBVKXW1FWaZuEh!EXl%zsy^UflZug9M3SfyBg7yhfa9rn(iKF6Ww zTpI!h!ylToEY*5Ez}yo1t}bQy%&0?cLc@8jFGJS9DyzTSsOnN>Z~?drAD9$|u2WH7 zlW>~<o)~kCS9fm2DOL>#0%|^`9YCt>)Mj>$)l#o`y9!kn$Rn927lhyKJx{Bg_J_uQ z_B11R8d-MbBtb+E?~b@axNE%==IF^Dikh)peVra=+6`kjJ=NBi(e$#J()Bhu%8IG7 zoIiC3Z8so#n_K<3fWG2zCQSa6((Req?AX{Q))f4#N-~K+1+Al2Zbg{gPgL_jF=E>^ zp`js}Dfo83aC;VoyT~ssMW4)5RVnl|&w(T5DfY*k?#jurw8Lw4v7a%^*n3tIi^cdw z$geot1^3EbSi0;*S^GVATK-jN%x>nK3f5ICO5)acuRa!;-$5P8H_WCvTacxi1tNbU zP4dj{&v0q|)HD^tAbv`dT>K`%5*a*Xvcjo?Bhj&E+R$3D#00qHEmcj)YRA1btmX!8 zZ8MUy&<@sT9WK4p`lj()aNg9fnEY6xyTjR)kvKZrfle+|<!k)L_-c%TU#V-vtR3PF zy2Al1ikXYv80nM8NKRB?J=pqVPuXlr%pfPhc(<+AqoWxW+D~q!dK-y|kS^~<pP;4; z#4{bkeMQuybacm`>{bei(-FHzKaXjWWSkSPzR|609tg;5lDmTp4t)EXH|&1v?Y_S& zAu)SyR9M|i)K*l!?Cl8Gbj@G*XHOk%Z&C8)NiWka-%`uRSJ~x>XE;3fDM<N9c{~Pd z%usA}Q_4q+61dEHTTMi>RHsm}bkTP5bo~O?CQO+nFN^CwbR5Ef%Q<~-(LSd+t~WQ> z0ROm~>kn>X39MfHD(=#E>4@1-jK<YP78z0-TYc<sg<t=p7Ml9bH({CHHFMR!Nw;j% z^$ANfu`m9j7bQKXo|e~8YUX>|7o1esE7zQebGE{`oddYY9gcC6{S(CwkH+rC$vB(D zBZ5%rs?hJ6rKYX)oB6WwisCoE0sxLR%?tp$P7;>lcwDInWBj*^sAx{J?C<&b>eL>4 z`-*FmPsKs4Gx=ghn?Ih$ypx$2O#t#EjdCsCJ>Mi-;6ZaXc~;1XbM6jZ9?MfZe@S8q z2}me!15c|*^f8KqlqT>^u_LihTi8RXMopB(f0^sHQNuDIo#go1DYM0N)7#|LHF>5e zj-6ih+`S01XrD4VkY$d5dS0w<?|iRt>(2X*a*Jh~58q`?vL;}am5k~t)&h3ZCNjly za($Cx%rLI(M<Ez;v3{?$b-M(nK_Y=5gw0a|`j+CJjjqdz25Fq(TU*1bcAGNvv*0om z87??w)%G3nbpwZMOg`;4APg%Jlr~RZP-k&(sKLlfC8ssPreJw3myF+3^~prL4}p?? zw^8bUH!&OYm`Y)*mfYYAz(dWW!;%*#+~J%KMyX_VG!NZ|y3omoV-h%W`61W1%r6L? z32f_Vr|N>$VUj@0`_hygB^QB%F;i)O;}&g`#_N_vBUYPlw-7rb(It3682&<XWi(|Z z%UUma!d;mfNg>;jTtz(nyP)_87L4w8cq`faO2rnTGJ~Ns=02a>Y<eu1Kjs0aU_dxF zmci|~Pedyp#h@vfW0H4|0vE!<`X{q}%-iNpoV|s9L5c@@oe_rF#@A$6IFTZsLU&b_ zHu;W2OD59HqN}WF=oRgWks^G0kocPU<G4_|xVuE>n91;WQ@U*BQ+2}RJxp@3S|7ke zl4#&=6c64mZ!vtA4sPgtk%LCY#-?J^6J($pKe~RX-+V394%%62@5Oaslh66<2~;Rs za1UU4wA`@2gH%A1q$eFHF>DmL8_P@XvbytC#_Ljw_RNM)xC83<MxVbk*CfJ^Zfm4Z z((0L2(>8cHwZApq?!2F|aHaLQfqG_57{>D7H0Q>#Pn0UjXO?7XywNW>;aDKhQig-6 zaU36HKaWi8LP8$~`vR8v_nH~f;cX}FW0akM_;0>(K@__PyijqXg&3oeg^dT;n>wew zK-|C=bl2&N%!Z32uJx~>n}21D1w39eZr}G$9Z|Yz&{G+uCmwv)xpV+=A9GNcIR~8& z7aH$(a|3W=EPxJaS$acXi`Z`f3F&499z*4;g&B7kB1q{zOlKG+co?wPmI+tc!{HIn z<o0cO1)>KQgW8Xm+zXFL84VCX_TMWFgtW8V-#uzmJrrq4BI1ZNYK#UaeL;U2l!YH6 z?YHj3?S0*fE;imvQ$Y9_s<Hc-jn3?zK*4v<{}}>2(k>`g6yuazLhBqYdOXDqygCwQ zG<vQzN<9u&U&s0vIwja1jwip;{NhqjU%4uv62(|yF{6kR%@EdEu}DHyUB0qPyGyk1 zhoS#t-Nkkf)wSM%0GLwNaqDiw+wi02-#QDTxc0ypb#90MgVVZWw$ZI8{50Y^a`N#N zjflVM@DaQF#a4?W+rW`yq0?7l%f$QqOjp)K2^PBF@9>(O-EAF9=Vjf;+vUd3L8{(i zfl$?|Jjqa39Yu`9tF)6~^5g1X@8w^wC#Mv_T>G^A=Bt6J^hn;POKO;!BfHvO)vL!> z+$R4$hT85@zg~>IDyos0a+X>?Nct7I`fAFX3;R&xi5*62L6Ik+yn(NL7}EvJ!g@G@ z2zJg+1#Xf&1$=IKN&f<D(r`3gn4c?f>pV&@=<zC^WbUN>$0+hJ5paCy@3ibIiVoKB zt(4}3dq}&Eir9VEGyhe0=33RE8@IB=0N_VAPivG&?Do{1ZqK8s#zKQ4IkId4@YMzv zw>}T!#GWJ<`7e$pvU|;vUDkJff0DEL&G(Bqi@R2j!P=m_`{#jnJMx|240CVSe+K@8 zfdEBJQHsd>Ni-<i^FEW~sOxSfSysJt+<nD>rW16Pe0F9wzqwwzSXE%&T;(9-kJNDq zG&E&4UQAf%FEc*z=7k4i3Beh4dVC?jaw2{oeeSLn&24Q^2huH=ze;8*5xQ`O+xus7 zm99{?mdFm+H2=p!d2=yFF;2VKCKi9>&xMlQSYE&OzX`kE<MDw)ke5)=4e$LU&=@or z$G2?bNdfnM_H7{|#X5k;P2H2a7GUElyE2jwf_IFbzS@^=UoBZl?@S`0HY1OV_3Dt< zuMV*nTix<#fSt+}$Xv>+{H}idDESc5x9>iD0WANWiJq9Ji|9gxV?yoQVw>@rN!Y0x z>=w@`_(C>W3U~r?r87C?ic=2s`Wx%IhpY9U*TJMkb6L82OFlGadb&hgNDjKEy!mV{ zgS(aV6D7Yro&IX*7n|kSTBm7gcF{`56DJRsT9!D6Np7!iGP*a@aLVU*UHDA3L`rx3 zK;qmNJaOq@8*&FxJ$wK6j>1Kilb)eTQW`bxNxuNOA}Hj$f62Xs$=4z!?z2~1>_}59 z<55sZ#V7vx0XLrEa$qr-;i9Iw{AUT}ytBPsCo3zf<mzw?#V)6|Pxpu{<PYekd*ASA ze*U{$b>M3ypDN9Z2S9Bvwg{Yt<#zB<kGt5ZPHTJ6j>~o^AOzRxWA8Ift*??(zS(#d zwf#hV0eQ^1E|x|AGYOqLzRc2v=T!|^c1mlvVnnJ+M3q+v#ozu$vJqVRvM`-R?*9T@ zxC=)kq^6LLO94YxWW9AVQ&Kb#2r5#BzE{bLW*xwx$^=N<r5vYu&^bD#4X1He)K(`7 zy`bBM=&8Fka^~^Vfin<G1kyA2<y)jlCtv=?!ZG;7yXeVNzV7Aix?0T~$$0;*o8=%# z%BgXh08IR2PNN~BG{{2UhGo+{Kc$db^iq&!f0??E{j2liGmw<b;s{&K(2)8lRReQD zUpDMpN~)Z<w>RGJ`g*q4&Dll95!<tpiksql+p5&zVQL#&`vh=Oq@ubyHS0`bep6-V z$z`5EaL|e>`K{|`P%Zqw-CwW>CyZM1e#c9K*s9gN<yGD05A2;v@n=x&{Ijz!7$*0d zkOV$pICzKf?3~lPrXEok2uEk@6v=cIr{L#sv$DRvr3bwGkH01g7O{p2pn=Lo2z#HG z1lM)FSC<o4SXUQHJ4nqOHm$mE!fX3p55xPAG$tYmy9U3*3-P?|{pVtzpgzF20yBLi z_qKhPAR9Dkx6h$`3XYifTrF}C0j(hfAsZy%cAlO+K$0#4k)?ktZP(yOpB~Psb1MaO z9{hz92}YlT!_YGW$Mg-ysisCjYqPAci_4=3ssoa{M_}@UW<9v9-!*V$QZ-QJKhN(- zcAW;xUlV(A!x>x?(q-_a0sp(BdZpmBxRVpM?s{5vH3PEH06z=8Cc{oO(6P%zWayuv zgZnl<fs;%E=00%7^!5(Nd>;fO!^x*`kW+xclfNh9bO5MV12&2`a^io7v+Yk%PVxmO zpN`k$2Gm4a#fcDI$98t+i=NW|t3OZlfBnQ0R=ojIu4TvOuU;wti;mX8<IaEnf+*Ni z0LmNt6i1(7(if>?WZX9@BOmZ@-+%2Wv3rSlZ!RbZkK5rsLm`l-bF=ld2K(IUp!<Bs z|L^c{j}_d?G^^uOQ_Lpl%Ec#3*^Ov+{OGtov&~vk23VZ&{I_TG!u@jn0K*Sal&bV6 zJ8dlwhFiYWw``%9l2h9o%tjh${!j2M*g)v=58l2keEs^5s1I`#7m9iIF09IE<sZ|g zB?C*45n9lX{)tnE$dI_FPvXn9=Lo!5vw~R=5U{4QU&X%t`!=yKz~92cY(%*Jvlh4w z3qrp4BR^mH@9F?45-foVxs>4h_cgpwPvU*BK0OJ*^Zz_7FBI%oumtkYL*ail>_@%} zC1f=E?EYVkLVekV>JBn~QTeY6>%nji&SNou>-et(64N=@P_)jU_Me9&GeT$+oxyDg zF!)DO5CoR6kgW=*{Nrm9SYY%EPLOqa|GNZG5d}+dG3-gl|542Uud4o6J^xQj`d{_@ luX_G>a)I5}|JC=ri!A)Se-Vt&Ie-9vWF?ip)`%O2{2#Km2xb5P diff --git a/frontend/dist/locales/de/translation.json b/frontend/dist/locales/de/translation.json deleted file mode 100644 index fbeb19dd6..000000000 --- a/frontend/dist/locales/de/translation.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "app": { - "greeting":"hello Amelie" - }, - "project": { - "configs" : "Configs", - "status" : "Status", - "status.files" : "Files", - "status.configs" : "Configs", - "status.devices" : "Devices" - - } -} \ No newline at end of file diff --git a/frontend/dist/locales/en/translation.json b/frontend/dist/locales/en/translation.json deleted file mode 100644 index 11031112f..000000000 --- a/frontend/dist/locales/en/translation.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "interpolation": "Hello {{name}}!", - "app": { - "greeting": "hello Amelie" - }, - "project": { - "configs": "Configs", - "status": "Status", - "status.files": "Files", - "status.configs": "Configs", - "status.devices": "Devices" - }, - "device": { - "type": { - "Button": "Button", - "Encoder": "Encoder", - "AnalogInput": "Analog Input", - "InputShiftRegister": "Input Shift Register", - "InputMultiplexer": "Input Multiplexer", - "Output": "Output", - "LedModule": "7-Segment Display", - "Stepper": "Stepper Motor", - "Servo": "Servo Motor", - "LcdDisplay": "LCD Display", - "ShiftRegister": "Output Shift Register", - "CustomDevice": "Custom Device" - } - }, - "notification": { - "firmware": { - "install.possible": { - "title": "Compatible device!", - "description": "A device was detected which is supported by MobiFlight.", - "action.label": "Install firmware" - } - }, - "hubhop": { - "update": { - "title": "Perform HubHop update", - "description": "Your HubHop presets are older than 7 days.", - "action.label": "Update now", - "action.navigate": "/settings" - } - }, - "device": { - "connected" : { - "title": "Device connected", - "description": "A new device ({{Name}}) was detected.", - "action.label": "View device", - "action.navigate": "/devices/{{Type}}/{{Id}}" - }, - "removed": { - "title": "Device removed", - "description": "{{Name}} was removed." - }, - "missing": { - "title": "Device(s) missing", - "description": "At least one device is missing which is referenced in the current project.", - "action.label": "Manage missing devices", - "action.navigate": "/devices" - } - }, - "joystick": { - "missing": { - "title": "Joystick missing", - "description": "{{Data}} is missing which is referenced in the current project.", - "action.label": "Manage missing devices", - "action.navigate": "/joysticks" - } - }, - "sim" : { - "connection" : { - "established.title" : "Simulator connection established", - "established.description" : "MobiFlight is now connected to {{Value}}.", - "closed.title" : "Simulator connection closed", - "closed.description" : "The connection to the simulator ({{Value}}) was closed." - }, - "config.autoloaded" : { - "title" : "MobiFlight configuration loaded", - "description" : "The configuration for {{Value}} was loaded automatically.", - "action.label" : "Manage configuration", - "action.navigate" : "/" - }, - "aircraft.changed": { - "title" : "Aircraft changed", - "description" : "The aircraft was changed to {{Value}}." - } - } - } -} diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js new file mode 100644 index 000000000..092408a9f --- /dev/null +++ b/frontend/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/frontend/dist/index.html b/frontend/index.html similarity index 52% rename from frontend/dist/index.html rename to frontend/index.html index 62616ab05..ac427a26b 100644 --- a/frontend/dist/index.html +++ b/frontend/index.html @@ -1,14 +1,13 @@ -<!doctype html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <link rel="icon" type="image/svg+xml" href="/vite.svg" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>MobiFlight</title> - <script type="module" crossorigin src="/assets/index-IouAf6f-.js"></script> - <link rel="stylesheet" crossorigin href="/assets/index-D17jxULl.css"> - </head> - <body> - <div id="root" ></div> - </body> -</html> +<!doctype html> +<html lang="en"> + <head> + <meta charset="UTF-8" /> + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>MobiFlight 2025</title> + </head> + <body> + <div id="root" ></div> + <script type="module" src="/src/main.tsx"></script> + </body> +</html> diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 000000000..395663df7 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,5731 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-popover": "^1.1.5", + "@radix-ui/react-progress": "^1.1.1", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-table": "^8.20.6", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "i18next-browser-languagedetector": "^8.0.2", + "i18next-http-backend": "^3.0.1", + "lodash-es": "^4.17.21", + "lucide-react": "^0.471.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^15.4.0", + "react-router": "^7.1.1", + "react-router-dom": "^7.1.3", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "zustand": "^5.0.3" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@playwright/test": "^1.49.1", + "@types/lodash-es": "^4.17.12", + "@types/node": "^22.10.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "postcss": "^8.4.49", + "prettier": "3.4.2", + "prettier-plugin-tailwindcss": "^0.6.11", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", + "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", + "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", + "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", + "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.19.0.tgz", + "integrity": "sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.10.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.0.tgz", + "integrity": "sha512-ZGNXbt+d65EGjBORQHuYKj+XhCewlwpnSd/EDuLPZGSiEWmgOJB5RmMCCYGy5aMfTs9wx61RivfDKi8H/hcMvw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.50.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.5.tgz", + "integrity": "sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.4.tgz", + "integrity": "sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.5.tgz", + "integrity": "sha512-50ZmEFL1kOuLalPKHrLWvPFMons2fGx9TqQCWlPwDVpbAnaUJ1g4XNcKqFNMQymYU0kKWR4MDDi+9vUQBGFgcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-menu": "2.1.5", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.5.tgz", + "integrity": "sha512-uH+3w5heoMJtqVCgYOtYVMECk1TOrkUn0OG0p5MqXC0W2ppcuVeESbou8PTHoqAjbdTEK19AGXBWcEtR5WpEQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.5.tgz", + "integrity": "sha512-YXkTAftOIW2Bt3qKH8vYr6n9gCkVrvyvfiTObVjoHVTHnNj26rmvO87IKa3VgtgCjb8FAQ6qOjNViwl+9iIzlg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.4", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.1.tgz", + "integrity": "sha512-6diOawA84f/eMxFHcWut0aE1C2kyE9dOyCTQOMRR2C/qPiXz/X0SaiA/RLbapQaXUCmy0/hLMf9meSccD1N0pA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.1.tgz", + "integrity": "sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz", + "integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.32.0.tgz", + "integrity": "sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.32.0.tgz", + "integrity": "sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.32.0.tgz", + "integrity": "sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.32.0.tgz", + "integrity": "sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.32.0.tgz", + "integrity": "sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.32.0.tgz", + "integrity": "sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.32.0.tgz", + "integrity": "sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.32.0.tgz", + "integrity": "sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.32.0.tgz", + "integrity": "sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.32.0.tgz", + "integrity": "sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.32.0.tgz", + "integrity": "sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.32.0.tgz", + "integrity": "sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.32.0.tgz", + "integrity": "sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.32.0.tgz", + "integrity": "sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.32.0.tgz", + "integrity": "sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.32.0.tgz", + "integrity": "sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.32.0.tgz", + "integrity": "sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.32.0.tgz", + "integrity": "sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.0.tgz", + "integrity": "sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tabler/icons": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.17.0.tgz", + "integrity": "sha512-sCSfAQ0w93KSnSL7tS08n73CdIKpuHP8foeLMWgDKiZaCs8ZE//N3ytazCk651ZtruTtByI3b+ZDj7nRf+hHvA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + } + }, + "node_modules/@tabler/icons-react": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.17.0.tgz", + "integrity": "sha512-Ndm9Htv7KpIU1PYYrzs5EMhyA3aZGcgaxUp9Q1XOxcRZ+I0X+Ub2WS5f4bkRyDdL1s0++k2T9XRgmg2pG113sw==", + "license": "MIT", + "dependencies": { + "@tabler/icons": "3.17.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/codecalm" + }, + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@tanstack/react-table": { + "version": "8.20.6", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.6.tgz", + "integrity": "sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==", + "license": "MIT", + "dependencies": { + "@tanstack/table-core": "8.20.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/@tanstack/table-core": { + "version": "8.20.5", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz", + "integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.21.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001695", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", + "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.4.tgz", + "integrity": "sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.0", + "use-sync-external-store": "^1.2.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.88", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.88.tgz", + "integrity": "sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.19.0.tgz", + "integrity": "sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.10.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.19.0", + "@eslint/plugin-kit": "^0.2.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz", + "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.18.tgz", + "integrity": "sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/i18next": { + "version": "24.2.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.2.tgz", + "integrity": "sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.23.2" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/i18next-browser-languagedetector": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.2.tgz", + "integrity": "sha512-shBvPmnIyZeD2VU5jVGIOWP7u9qNG3Lj7mpaiPFpbJ3LVfHZJvVzKR4v1Cb91wAOFpNw442N+LGPzHOHsten2g==", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/i18next-http-backend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-3.0.2.tgz", + "integrity": "sha512-PdlvPnvIp4E1sYi46Ik4tBYh/v/NbYfFFgTjkwFl0is8A18s7/bx9aXqsrOax9WUbeNS6mD2oix7Z0yGGf6m5g==", + "license": "MIT", + "dependencies": { + "cross-fetch": "4.0.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.471.2", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.471.2.tgz", + "integrity": "sha512-A8fDycQxGeaSOTaI7Bm4fg8LBXO7Qr9ORAX47bDRvugCsjLIliugQO0PkKFoeAD57LIQwlWKd3NIQ3J7hYp84g==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/playwright": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.0.tgz", + "integrity": "sha512-+GinGfGTrd2IfX1TA4N2gNmeIksSb+IAe589ZH+FlmpV3MYTx6+buChGIuDLQwrGNCw2lWibqV50fU510N7S+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.50.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.0.tgz", + "integrity": "sha512-CXkSSlr4JaZs2tZHI40DsZUN/NIwgaUPsyLuOAaIZp2CyF2sN5MM5NJsyB188lFSSozFxQ5fPT4qM+f0tH/6wQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/postcss": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", + "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz", + "integrity": "sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-import-sort": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-style-order": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-import-sort": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-style-order": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-i18next": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", + "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.2.3", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz", + "integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz", + "integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==", + "license": "MIT", + "dependencies": { + "react-router": "7.1.3" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.32.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.0.tgz", + "integrity": "sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.32.0", + "@rollup/rollup-android-arm64": "4.32.0", + "@rollup/rollup-darwin-arm64": "4.32.0", + "@rollup/rollup-darwin-x64": "4.32.0", + "@rollup/rollup-freebsd-arm64": "4.32.0", + "@rollup/rollup-freebsd-x64": "4.32.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.32.0", + "@rollup/rollup-linux-arm-musleabihf": "4.32.0", + "@rollup/rollup-linux-arm64-gnu": "4.32.0", + "@rollup/rollup-linux-arm64-musl": "4.32.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.32.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.32.0", + "@rollup/rollup-linux-riscv64-gnu": "4.32.0", + "@rollup/rollup-linux-s390x-gnu": "4.32.0", + "@rollup/rollup-linux-x64-gnu": "4.32.0", + "@rollup/rollup-linux-x64-musl": "4.32.0", + "@rollup/rollup-win32-arm64-msvc": "4.32.0", + "@rollup/rollup-win32-ia32-msvc": "4.32.0", + "@rollup/rollup-win32-x64-msvc": "4.32.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.21.0.tgz", + "integrity": "sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.21.0", + "@typescript-eslint/parser": "8.21.0", + "@typescript-eslint/utils": "8.21.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 000000000..4a2c3274b --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,64 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite --host", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-dropdown-menu": "^2.1.5", + "@radix-ui/react-popover": "^1.1.5", + "@radix-ui/react-progress": "^1.1.1", + "@radix-ui/react-separator": "^1.1.1", + "@radix-ui/react-slot": "^1.1.1", + "@radix-ui/react-switch": "^1.1.2", + "@radix-ui/react-tabs": "^1.1.2", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-table": "^8.20.6", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.0.0", + "i18next-browser-languagedetector": "^8.0.2", + "i18next-http-backend": "^3.0.1", + "lodash-es": "^4.17.21", + "lucide-react": "^0.471.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-i18next": "^15.4.0", + "react-router": "^7.1.1", + "react-router-dom": "^7.1.3", + "tailwind-merge": "^2.6.0", + "tailwindcss-animate": "^1.0.7", + "zustand": "^5.0.3" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@playwright/test": "^1.49.1", + "@types/lodash-es": "^4.17.12", + "@types/node": "^22.10.5", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "postcss": "^8.4.49", + "prettier": "3.4.2", + "prettier-plugin-tailwindcss": "^0.6.11", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } +} diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts new file mode 100644 index 000000000..c72fd43ed --- /dev/null +++ b/frontend/playwright.config.ts @@ -0,0 +1,53 @@ +import { defineConfig, devices } from "@playwright/test" + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// import dotenv from 'dotenv'; +// import path from 'path'; +// dotenv.config({ path: path.resolve(__dirname, '.env') }); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./tests", + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: "http://localhost:5173", + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + + // Emulates `'prefers-colors-scheme'` media feature. + colorScheme: "light", + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: "chromium", + use: { ...devices["Desktop Chrome"] }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: "npm run dev", + url: "http://localhost:5173/", + reuseExistingServer: !process.env.CI, + timeout: 10 * 1000, + }, +}) diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 000000000..2e7af2b7f --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/frontend/public/locales/de/translation.json b/frontend/public/locales/de/translation.json new file mode 100644 index 000000000..b46c9a73d --- /dev/null +++ b/frontend/public/locales/de/translation.json @@ -0,0 +1,58 @@ +{ + "Types": { + "Output": "Ausgang", + "LedModule": "7-Segment Anzeige", + "Stepper": "Schrittmotor", + "Servo": "Servo", + "LcdDisplay": "LCD Display", + "ShiftRegister": "Ouptut Shift Register", + "InputShiftRegister": "Input Shift Register", + "Button": "Schalter", + "Encoder": "Enkoder", + "AnalogInput": "Analoger Eingang", + "-": "nicht verwendet" + }, + "ConfigList": { + "Toolbar": { + "Search": { + "Placeholder": "Einträge filtern..." + }, + "Filter": { + "Device": "Geräte", + "Type": "Typen", + "Name": "Namen", + "Selected": "{{items}} ausgewählt", + "Clear": "Filter zurücksetzen", + "NoResultsFound": "Keine Ergebnisse gefunden." + }, + "NotSet": "Nicht verwendet", + "Reset": "Filter zurücksetzen" + }, + "Header": { + "Active": "Aktiv", + "Name": "Name / Beschreibung", + "Device": "Gerät", + "Component": "Komponente", + "Status": "Status", + "RawValue": "Rohwert", + "FinalValue": "Endwert", + "Actions": "Aktionen" + }, + "Cell": { + "Waiting": "Warten" + }, + "Table": { + "NoResultsFound": "Neue Konfiguration. Erstelle neue Einträge." + }, + "Actions": { + "OutputConfigItem": { + "Add": "Neue Ausgabe-Konfiguration", + "DefaultName": "Neue Ausgabe-Konfiguration" + }, + "InputConfigItem": { + "Add": "Neue Eingabe-konfiguration", + "DefaultName": "Neue Eingabe-Konfiguration" + } + } + } +} diff --git a/frontend/public/locales/en/translation.json b/frontend/public/locales/en/translation.json new file mode 100644 index 000000000..58feb7dac --- /dev/null +++ b/frontend/public/locales/en/translation.json @@ -0,0 +1,59 @@ +{ + "Types": { + "Output": "Output", + "LedModule": "7-Segment Display", + "Stepper": "Stepper", + "Servo": "Servo", + "LcdDisplay": "LCD Display", + "ShiftRegister": "Output Shift Register", + "CustomDevice": "Custom Device", + "InputShiftRegister": "Input Shift Register", + "Button": "Button", + "Encoder": "Encoder", + "AnalogInput": "Analog Input", + "-": "not set" + }, + "ConfigList": { + "Toolbar": { + "Search": { + "Placeholder": "Filter items..." + }, + "Filter": { + "Device": "Devices", + "Type": "Types", + "Name": "Names", + "Selected": "{{items}} selected", + "Clear": "Clear filters", + "NoResultsFound": "No results found." + }, + "NotSet": "not set", + "Reset": "Reset filters" + }, + "Header": { + "Active": "Active", + "Name": "Name / Description", + "Device": "Device", + "Component": "Component", + "Status": "Status", + "RawValue": "Raw Value", + "FinalValue": "Final Value", + "Actions": "Actions" + }, + "Cell": { + "Waiting": "Waiting" + }, + "Table": { + "NoResultsFound": "This is a new configuration. Please add some items." + }, + "Actions": { + "OutputConfigItem": { + "Add": "Add Output Config", + "DefaultName": "New Output Config" + }, + "InputConfigItem": { + "Add": "Add Input Config", + "DefaultName": "New Input Config" + } + } + } +} diff --git a/frontend/public/locales/es/translation.json b/frontend/public/locales/es/translation.json new file mode 100644 index 000000000..1e4e70bff --- /dev/null +++ b/frontend/public/locales/es/translation.json @@ -0,0 +1,57 @@ +{ + "Types": { + "Output": "Output", + "LedModule": "7-Segment Display", + "Stepper": "Stepper", + "Servo": "Servo", + "LcdDisplay": "LCD Display", + "ShiftRegister": "Ouptut Shift Register", + "InputShiftRegister": "Input Shift Register", + "Button": "Button", + "Encoder": "Encoder", + "AnalogInput": "Analog Input", + "-": "no usado" + }, + "ConfigList": { + "Toolbar": { + "Search": { + "Placeholder": "Filtrar elementos..." + }, + "Filter": { + "Device": "Dispositivos", + "Type": "Tipos", + "Name": "Nombres", + "Selected": "{{items}} seleccionados", + "Clear": "Borrar filtros", + "NoResultsFound": "No se encontraron resultados." + }, + "Reset": "Restablecer filtros" + }, + "Header": { + "Active": "Activo", + "Name": "Nombre / Descripción", + "Device": "Dispositivo", + "Component": "Componente", + "Status": "Estado", + "RawValue": "Valor Original", + "FinalValue": "Valor Final", + "Actions": "Acciones" + }, + "Cell": { + "Waiting": "Esperando" + }, + "Table": { + "NoResultsFound": "Nueva configuratión. Por favor, añade algunos elementos." + }, + "Actions": { + "OutputConfigItem": { + "Add": "Nueva configuración Output", + "DefaultName": "Nueva Configuración Output" + }, + "InputConfigItem": { + "Add": "Nueva configuración Input", + "DefaultName": "Nueva Configuración Input" + } + } + } +} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/frontend/public/vite.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg> \ No newline at end of file diff --git a/frontend/src/App.css b/frontend/src/App.css new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 000000000..0e6d9f1fc --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,93 @@ +import { Outlet, useNavigate, useOutlet, useSearchParams } from "react-router" +import StartupProgress from "./components/StartupProgress" +import { useEffect, useState } from "react" +import { useAppMessage } from "./lib/hooks/appMessage" +import { ConfigLoadedEvent, StatusBarUpdate } from "./types" +import { useConfigStore } from "./stores/configFileStore" +import i18next from "i18next" +import Settings from "./types/settings" +import _ from "lodash" + +function App() { + const [queryParameters] = useSearchParams() + const navigate = useNavigate() + const { setItems } = useConfigStore() + + const [startupProgress, setStartupProgress] = useState<StatusBarUpdate>({ + Value: 0, + Text: "Starting...", + }) + + useAppMessage("StatusBarUpdate", (message) => { + setStartupProgress(message.payload as StatusBarUpdate) + }) + + useAppMessage("ConfigFile", (message) => { + console.log("ConfigFile message received", message.payload) + setItems((message.payload as ConfigLoadedEvent).ConfigItems) + }) + + useAppMessage("Settings", (message) => { + const settings = message.payload as Settings + console.log("Settings message received", settings) + + const language = settings.Language.split("-")[0] + if (!_.isEmpty(language)) + i18next.changeLanguage(settings.Language) + else + i18next.changeLanguage() + }) + + // this allows to get beyond the startup screen + // by setting the progress to 100 via url parameter + useEffect(() => { + // convert string to number + const value = Number.parseInt( + queryParameters.get("progress")?.toString() ?? "0", + ) + if (value == 100) { + console.log("Finished loading, navigating to config page") + navigate("/config") + } else setStartupProgress({ Value: value, Text: "Loading..." }) + }, [navigate, queryParameters]) + + useEffect(() => { + if (startupProgress.Value == 100) { + console.log("Finished loading, navigating to config page") + navigate("/config") + } + }, [startupProgress.Value, navigate]) + + const outlet = useOutlet() + + return ( + <> + {outlet ? ( + <div className="flex h-svh flex-row p-2 select-none"> + {/* <Sidebar /> */} + <div className="flex grow flex-col"> + {/* <Navbar /> */} + <div className="flex grow flex-col overflow-hidden"> + <Outlet /> + </div> + <div className="flex flex-row justify-end gap-2 px-5"> + <div className="text-xs text-muted-foreground">MobiFlight 2025</div> + <div className="text-xs text-muted-foreground">Version 1.0.0</div> + </div> + </div> + {/* <Toaster + position="bottom-right" + offset={48} + /> */} + </div> + ) : ( + <StartupProgress + value={startupProgress.Value} + text={startupProgress.Text} + /> + )} + </> + ) +} + +export default App diff --git a/frontend/dist/assets/mobiflight-logo-border-DSJoqCyo.png b/frontend/src/assets/mobiflight-logo-border.png similarity index 100% rename from frontend/dist/assets/mobiflight-logo-border-DSJoqCyo.png rename to frontend/src/assets/mobiflight-logo-border.png diff --git a/frontend/src/components/DarkModeToggle.tsx b/frontend/src/components/DarkModeToggle.tsx new file mode 100644 index 000000000..27381a929 --- /dev/null +++ b/frontend/src/components/DarkModeToggle.tsx @@ -0,0 +1,25 @@ +import { IconMoon, IconSun } from "@tabler/icons-react" +import { useTheme } from "./theme-provider" + +const DarkModeToggle = () => { + const { setTheme } = useTheme() + + return ( + <div className="flex items-center relative"> + <IconMoon + role="button" + aria-label="Toggle light mode" + className="cursor-pointer rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" + onClick={() => setTheme("light")} + /> + <IconSun + role="button" + aria-label="Toggle dark mode" + className="cursor-pointer absolute rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" + onClick={() => setTheme("dark")} + /> + </div> + ) +} + +export default DarkModeToggle diff --git a/frontend/src/components/StartupProgress.tsx b/frontend/src/components/StartupProgress.tsx new file mode 100644 index 000000000..bc64cc994 --- /dev/null +++ b/frontend/src/components/StartupProgress.tsx @@ -0,0 +1,28 @@ +import { Progress } from "./ui/progress" +import logo from "../assets/mobiflight-logo-border.png" + +interface StartupProgressProps { + value: number + text: string +} + +const StartupProgress = (props: StartupProgressProps) => { + const { value, text } = props + return ( + <> + <div className="fixed inset-0 bg-gradient-to-br from-indigo-500 from-10% via-sky-500 via-30% to-emerald-500 to-90%"></div> + <div className="relative flex min-h-screen flex-col items-center justify-center gap-8 p-10"> + <div className="animate-low-bounce"> + <img + src={logo} + className="pointer-events-none h-36 w-36 shadow-xl shadow-slate-800/40" + /> + </div> + <Progress className="h-10 max-w-xl" value={value}></Progress> + <p className="text-white">{text}</p> + </div> + </> + ) +} + +export default StartupProgress diff --git a/frontend/src/components/icons/DeviceIcon.tsx b/frontend/src/components/icons/DeviceIcon.tsx new file mode 100644 index 000000000..e08cce870 --- /dev/null +++ b/frontend/src/components/icons/DeviceIcon.tsx @@ -0,0 +1,60 @@ +import { cn } from "@/lib/utils"; +import { DeviceElementType } from "@/types/deviceElements.d"; +import { + Icon123, + IconAbc, + IconBox, + IconBulb, + IconDashboard, + IconGauge, + IconPower, + IconQuestionMark, + IconRefreshDot, +} from "@tabler/icons-react"; +import IconDeviceAnalog from "./IconDeviceAnalog"; +import IconDeviceOutputShifter from "./IconDeviceOutputShifter"; +import IconDeviceInputShifter from "./IconDeviceInputShifter"; +import IconDeviceInputMultiplexer from "./IconDeviceInputMultiplexer"; + +export type DeviceIconProps = { + variant?: DeviceElementType + disabled?: boolean + className?: string +}; + +const DeviceIcon = (props: DeviceIconProps) => { + const { variant, disabled, className } = props; + + const shortType = variant?.replace("MobiFlight.", "").replace("OutputConfig.", "").replace("InputConfig.", "") as DeviceElementType + + let icon = <IconQuestionMark className={className}/> + if (shortType === "Output") { + icon = <IconBulb className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + } else if (shortType === "LedModule") { + icon = <Icon123 className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + } else if (shortType === "LcdDisplay") { + icon = <IconAbc className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + } else if (shortType === "ShiftRegister") { + icon = <IconDeviceOutputShifter className={cn("stroke-pink-600 fill-pink-600", disabled?"stroke-slate-400 fill-slate-400":"", className) } />; + } else if (shortType === "Stepper") { + icon = <IconGauge className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + } else if (shortType === "Servo") { + icon = <IconDashboard className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + }else if (shortType === "Button") { + icon = <IconPower className={cn("stroke-teal-600", disabled?"stroke-slate-400":"", className) }/>; + } else if (shortType === "Encoder") { + icon = <IconRefreshDot className={cn("stroke-teal-600", disabled?"stroke-slate-400":"", className) }/>; + } else if (shortType === "AnalogInput") { + icon = <IconDeviceAnalog className={cn("stroke-teal-600 fill-teal-600 stroke-2", disabled?"stroke-slate-400 fill-slate-400":"", className) }/>; + } else if (shortType === "InputShiftRegister") { + icon = <IconDeviceInputShifter className={cn("stroke-teal-600 fill-teal-600", disabled?"stroke-slate-400 fill-slate-400":"", className) } />; + } else if (shortType === "InputMultiplexer") { + icon = <IconDeviceInputMultiplexer className={cn("stroke-teal-600 fill-teal-600", disabled?"stroke-slate-400 fill-slate-400":"", className) } />; + } else if (shortType === "CustomDevice") { + icon = <IconBox className={cn("stroke-pink-600", disabled?"stroke-slate-400":"", className) } />; + } + + return <div className="inline-block">{icon}</div>; +}; + +export default DeviceIcon; diff --git a/frontend/src/components/icons/IconDeviceAnalog.tsx b/frontend/src/components/icons/IconDeviceAnalog.tsx new file mode 100644 index 000000000..65a14405e --- /dev/null +++ b/frontend/src/components/icons/IconDeviceAnalog.tsx @@ -0,0 +1,42 @@ +import { cn } from "@/lib/utils" + +type IconDeviceAnalogProps = { + className?: string +} + +const IconDeviceAnalog = (props: IconDeviceAnalogProps) => { + const className = cn( + "stroke-current fill-current ", + props.className + ) + + return ( + <svg + className={className} + id="icon_device_analog" + width="24" + height="24" + version="1.1" + viewBox="0 0 24 24" + > + <g transform="translate(247 -655)"> + <g id="icon_in_analog" transform="translate(1.1176e-5 -24)"> + <path + d="m-235 685c-3.3019 0-6 2.6981-6 6 0 3.3018 2.6981 6 6 6 3.3018 0 6-2.6982 6-6 0-1.2863-0.41034-2.4798-1.1055-3.459-0.0806 0.0689-0.15094 0.13071-0.19726 0.17578l-3.5 3.4102c-0.39587 0.3851-1.029 0.37634-1.4141-0.0195-0.38509-0.39587-0.37633-1.029 0.0195-1.4141l3.5-3.4082c0.0419-0.0408 0.0989-0.10623 0.16016-0.17579-0.98006-0.69704-2.1746-1.1094-3.4629-1.1094z" + stroke="none" + strokeLinecap="round" + strokeLinejoin="round" + /> + <path + d="m-241.36 697.36a9 9 0 0 1 0-12.728 9 9 0 0 1 12.728 0 9 9 0 0 1 0 12.728" + fill="none" + strokeLinecap="round" + strokeLinejoin="round" + /> + </g> + </g> + </svg> + ) +} + +export default IconDeviceAnalog diff --git a/frontend/src/components/icons/IconDeviceInputMultiplexer.tsx b/frontend/src/components/icons/IconDeviceInputMultiplexer.tsx new file mode 100644 index 000000000..30edd5ddd --- /dev/null +++ b/frontend/src/components/icons/IconDeviceInputMultiplexer.tsx @@ -0,0 +1,31 @@ +import { cn } from "@/lib/utils" + +type IconDeviceInputMultiplexerProps = { + className?: string +} + +const IconDeviceInputMultiplexer = (props: IconDeviceInputMultiplexerProps) => { + const className = cn( + "stroke-current fill-current ", + props.className + ) + return ( + <svg + className={className} + id="SVGRoot" + width="6.35mm" + height="6.35mm" + version="1.1" + viewBox="0 0 24 24" + > + <path + d="m18 2.0006a3 3 0 0 0-2.8242 1.998h-2.332c-1.9106 0-3.1917 0.80732-4.2207 1.9258-0.74301 0.80766-1.4651 1.7715-2.5742 2.9258a3.25 3.25 0 0 0-0.79883-0.099615 3.25 3.25 0 0 0-3.25 3.25 3.25 3.25 0 0 0 3.25 3.25 3.25 3.25 0 0 0 0.79688-0.10155c1.1143 1.1581 1.8389 2.1217 2.582 2.9297 1.0276 1.1174 2.3052 1.9219 4.2148 1.9219h2.332a3 3 0 0 0 0.24999 0.52929 3 3 0 0 0 0.02925 0.0489 3 3 0 0 0 0.34766 0.45898 3 3 0 0 0 0.02145 0.02145 3 3 0 0 0 0.43946 0.38672 3 3 0 0 0 0.0075 6e-3 3 3 0 0 0 0.4961 0.27734 3 3 0 0 0 0.0684 0.0312 3 3 0 0 0 0.52539 0.16797 3 3 0 0 0 0.07035 0.012 3 3 0 0 0 0.56836 0.0606 3 3 0 0 0 0.53126-0.05265 3 3 0 0 0 0.09375-0.01755 3 3 0 0 0 0.49218-0.1485 3 3 0 0 0 0.084-0.039 3 3 0 0 0 0.4375-0.23438 3 3 0 0 0 0.0351-0.02145 3 3 0 0 0 0.4043-0.33008 3 3 0 0 0 0.07815-0.07815 3 3 0 0 0 0.32618-0.39844 3 3 0 0 0 0.03315-0.05265 3 3 0 0 0 0.22461-0.41992 3 3 0 0 0 0.0429-0.09375 3 3 0 0 0 0.1446-0.48438 3 3 0 0 0 0.0195-0.0996 3 3 0 0 0 0.0528-0.5293 3 3 0 0 0-0.05865-0.58593 3 3 0 0 0-0.16797-0.55665 3 3 0 0 0-0.0015-6e-3 3 3 0 0 0-0.0015-6e-3 3 3 0 0 0-0.27538-0.51171 3 3 0 0 0-0.37305-0.45508 3 3 0 0 0-0.45507-0.37305 3 3 0 0 0-0.51172-0.27538 3 3 0 0 0-6e-3 -0.0015 3 3 0 0 0-6e-3 -0.0015 3 3 0 0 0-0.55665-0.16796 3 3 0 0 0-0.58593-0.05865 3 3 0 0 0-0.58398 0.0606 3 3 0 0 0-0.0429 0.0105 3 3 0 0 0-0.5371 0.16992 3 3 0 0 0-0.0684 0.0312 3 3 0 0 0-0.4961 0.2793 3 3 0 0 0-0.0015 0 3 3 0 0 0-0.0045 0.0015 3 3 0 0 0-0.45704 0.40234 3 3 0 0 0-0.35742 0.4707 3 3 0 0 0-0.0234 0.0411 3 3 0 0 0-0.25196 0.5332h-2.332c-1.4643 0-1.8704-0.32546-2.7441-1.2754-0.58306-0.63398-1.2853-1.5536-2.3359-2.6738a3.25 3.25 0 0 0 0.64844-1.3008h6.6855a3 3 0 0 0 2.9024 2.25 3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-2.9024 2.25h-6.6855a3.25 3.25 0 0 0-0.64258-1.3047c1.0456-1.1158 1.7435-2.0346 2.3262-2.668 0.87509-0.95124 1.2847-1.2773 2.748-1.2773h2.332a3 3 0 0 0 2.8241 1.9984 3 3 0 0 0 3-3 3 3 0 0 0-3-3zm0.084 2.082a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.91602 0.91666 0.91666 0 0 1-0.91797-0.91602 0.91666 0.91666 0 0 1 0.91797-0.91797zm-12.834 6.668a1.25 1.25 0 0 1 1.25 1.25 1.25 1.25 0 0 1-1.25 1.25 1.25 1.25 0 0 1-1.25-1.25 1.25 1.25 0 0 1 1.25-1.25zm12.834 0.33204a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.916 0.91666 0.91666 0 0 1-0.91797-0.916 0.91666 0.91666 0 0 1 0.91797-0.91797zm0 7a0.91666 0.91666 0 0 1 0.91602 0.91797 0.91666 0.91666 0 0 1-0.91602 0.91602 0.91666 0.91666 0 0 1-0.91797-0.91602 0.91666 0.91666 0 0 1 0.91797-0.91797z" + strokeLinecap="round" + strokeLinejoin="round" + stroke="none" + /> + </svg> + ) +} + +export default IconDeviceInputMultiplexer diff --git a/frontend/src/components/icons/IconDeviceInputShifter.tsx b/frontend/src/components/icons/IconDeviceInputShifter.tsx new file mode 100644 index 000000000..3737bdc17 --- /dev/null +++ b/frontend/src/components/icons/IconDeviceInputShifter.tsx @@ -0,0 +1,38 @@ +import { cn } from "@/lib/utils" + +type IconDeviceInputShifterProps = { + className?: string +} + +const IconDeviceInputShifter = (props: IconDeviceInputShifterProps) => { + const className = cn( + "stroke-current fill-current ", + props.className + ) + + return ( + <svg + className={className} + id="SVGRoot" + width="24" + height="24" + version="1.1" + viewBox="0 0 24 24" + > + <path + d="m5.2924 7.0005a1 1 0 0 1 0.70703 0.29297l4 4a1 1 0 0 1 0.13867 1.2383 1 1 0 0 1-0.13867 0.17578l-4 4a1 1 0 0 1-1.4141 0 1 1 0 0 1 0-1.4141l3.293-3.293-3.293-3.293a1 1 0 0 1 0-1.4141 1 1 0 0 1 0.70703-0.29297z" + stroke="none" + /> + <path + d="m11.292 7.0005a1 1 0 0 1 0.70703 0.29297l4 4a1 1 0 0 1 0 1.4141l-4 4a1 1 0 0 1-1.4141 0 1 1 0 0 1 0-1.4141l3.293-3.293-3.293-3.293a1 1 0 0 1 0-1.4141 1 1 0 0 1 0.70703-0.29297z" + stroke="none" + /> + <path + d="m19 3.0005a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-16a1 1 0 0 0-1-1z" + stroke="none" + /> + </svg> + ) +} + +export default IconDeviceInputShifter diff --git a/frontend/src/components/icons/IconDeviceOutputShifter.tsx b/frontend/src/components/icons/IconDeviceOutputShifter.tsx new file mode 100644 index 000000000..10c2dc71a --- /dev/null +++ b/frontend/src/components/icons/IconDeviceOutputShifter.tsx @@ -0,0 +1,38 @@ +import { cn } from "@/lib/utils" + +type IconDeviceOutputShifterProps = { + className?: string +} + +const IconDeviceOutputShifter = (props: IconDeviceOutputShifterProps) => { + const className = cn( + "stroke-current fill-current ", + props.className + ) + + return ( + <svg + className={className} + id="SVGRoot" + width="24" + height="24" + version="1.1" + viewBox="0 0 24 24" + > + <path + d="m15.414 6.9269a1 1 0 0 0-0.70703 0.29297 1 1 0 0 0 0 1.4141l3.293 3.293-3.293 3.293a1 1 0 0 0 0 1.4141 1 1 0 0 0 0.81836 0.28516 1 1 0 0 0 0.5957-0.28516l4-4a1 1 0 0 0 0.05664-0.06055 1 1 0 0 0-0.05664-1.3535l-4-4a1 1 0 0 0-0.70703-0.29297z" + stroke="none" + /> + <path + d="m9.4138 6.9269a1 1 0 0 0-0.70703 0.29297 1 1 0 0 0 0 1.4141l3.293 3.293-3.293 3.293a1 1 0 0 0 0 1.4141 1 1 0 0 0 1.4141 0l4-4a1 1 0 0 0 0.05664-0.06055 1 1 0 0 0-0.05664-1.3535l-4-4a1 1 0 0 0-0.70703-0.29297z" + stroke="none" + /> + <path + d="m5.3535 2.9269a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1 1 1 0 0 0 1-1v-16a1 1 0 0 0-1-1z" + stroke="none" + /> + </svg> + ) +} + +export default IconDeviceOutputShifter diff --git a/frontend/src/components/tables/config-item-table/DndTableRow.tsx b/frontend/src/components/tables/config-item-table/DndTableRow.tsx new file mode 100644 index 000000000..6df5d1cb7 --- /dev/null +++ b/frontend/src/components/tables/config-item-table/DndTableRow.tsx @@ -0,0 +1,36 @@ +import { cn } from "@/lib/utils" +import { useSortable } from "@dnd-kit/sortable" +import React, { CSSProperties } from "react" +import { CSS } from "@dnd-kit/utilities" + +interface DndTableRowProps extends React.HTMLAttributes<HTMLTableRowElement> { + "dnd-itemid": string +} + +export const DndTableRow : React.FC<DndTableRowProps> = (({ className, ...props }) => { + const { + setNodeRef, + transform, + transition, + } = useSortable({ id: props["dnd-itemid"] }) + + const dndStyle: CSSProperties = { + transform: CSS.Transform.toString(transform), + transition, + zIndex: 1000, + } + + return ( + <tr + style={dndStyle} + ref={setNodeRef} + className={cn( + "group/row border-b transition-colors hover:bg-muted/80 data-[state=selected]:bg-muted", + className, + )} + {...props} + /> + ) +}) + +DndTableRow.displayName = "DndTableRow" \ No newline at end of file diff --git a/frontend/src/components/tables/config-item-table/config-item-table-columns.tsx b/frontend/src/components/tables/config-item-table/config-item-table-columns.tsx new file mode 100644 index 000000000..59cb437ac --- /dev/null +++ b/frontend/src/components/tables/config-item-table/config-item-table-columns.tsx @@ -0,0 +1,217 @@ +import { Button } from "@/components/ui/button" +import { IConfigItem } from "@/types" +import { ColumnDef } from "@tanstack/react-table" +import { + IconArrowsSort, + IconBan, + IconBuildingBroadcastTower, + IconMathSymbols, +} from "@tabler/icons-react" +import { IDeviceConfig } from "@/types/config" +import { isEmpty } from "lodash" +import { useTranslation } from "react-i18next" +import { + ConfigItemTableActionsCell, + ConfigItemTableActiveCell, + ConfigItemTableActiveHeader, + ConfigItemTableNameCell, + ConfigItemTableStatusCell, +} from "./items" +import ConfigItemTableDeviceCell from "./items/ConfigItemTableDeviceCell" + +export const columns: ColumnDef<IConfigItem>[] = [ + { + accessorKey: "Active", + header: ConfigItemTableActiveHeader, + cell: ConfigItemTableActiveCell, + }, + { + accessorKey: "Name", + size: 1, + header: ({ column }) => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="flex w-auto grow items-center gap-4"> + <span>{t("ConfigList.Header.Name")}</span> + <Button + className="h-auto w-auto p-1" + variant="ghost" + onClick={() => column.toggleSorting(column.getIsSorted() === "asc")} + > + <IconArrowsSort className="h-4 w-4" /> + </Button> + </div> + ) + }, + cell: ConfigItemTableNameCell, + }, + { + accessorKey: "ModuleSerial", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="hidden w-32 xl:block"> + {t("ConfigList.Header.Device")} + </div> + ) + }, + cell: ({ row }) => { + const label = (row.getValue("ModuleSerial") as string).split("/")[0] + const serial = (row.getValue("ModuleSerial") as string).split("/")[1] + return !isEmpty(label) ? ( + <div className="hidden w-48 flex-col xl:flex 2xl:w-64"> + <p className="text-md truncate font-semibold">{label}</p> + <p className="truncate text-xs text-muted-foreground">{serial}</p> + </div> + ) : ( + <span className="item-center hidden flex-row gap-2 text-slate-400 xl:flex"> + <IconBan /> + <span>not set</span> + </span> + ) + }, + filterFn: (row, id, value) => { + return value.includes(row.getValue(id)) + }, + }, + { + accessorKey: "Device", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="w-8 truncate lg:w-36"> + {t("ConfigList.Header.Component")} + </div> + ) + }, + cell: ConfigItemTableDeviceCell, + filterFn: (row, id, value) => { + return value.includes((row.getValue(id) as IDeviceConfig)?.Name ?? "-") + }, + }, + { + size: 80, + accessorKey: "Type", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="w-20"> + Component Type{t("ConfigList.Header.Component")} + </div> + ) + }, + cell: ({ row }) => { + const label = (row.getValue("Device") as IDeviceConfig)?.Type ?? "-" + return <p className="text-md font-semibold">{label}</p> + }, + filterFn: (row, _, value) => { + return value.includes( + (row.getValue("Device") as IDeviceConfig)?.Type ?? "-", + ) + }, + }, + // { + // size: 300, + // accessorKey: "Tags", + // header: "Tags", + // cell: ({ row }) => { + // const label = row.getValue("Tags") as string; + // return label != "" ? ( + // <p className="text-md font-semibold">{label}</p> + // ) : ( + // <div className="text-xs text-muted-foreground"> + // <Badge>Default</Badge> + // </div> + // ); + // }, + // }, + { + size: 100, + accessorKey: "Status", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="w-26">{t("ConfigList.Header.Status")}</div> + ) + }, + cell: ConfigItemTableStatusCell, + }, + { + size: 100, + accessorKey: "RawValue", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="hidden w-16 lg:visible lg:block lg:w-24"> + {t("ConfigList.Header.RawValue")} + </div> + ) + }, + cell: ({ row }) => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + const label = row.getValue("RawValue") as string + return ( + <div className="text-md hidden w-16 truncate lg:visible lg:block lg:w-24 xl:w-32"> + {!isEmpty(label) ? ( + label + ) : ( + <div className="item-center flex flex-row gap-2 text-slate-300"> + <IconBuildingBroadcastTower className="animate-pulse" /> + <span className="truncate">{t("ConfigList.Cell.Waiting")}</span> + </div> + )} + </div> + ) + }, + }, + { + size: 100, + accessorKey: "Value", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="hidden w-16 lg:block lg:w-24"> + {t("ConfigList.Header.FinalValue")} + </div> + ) + }, + cell: ({ row }) => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + const label = row.getValue("Value") as string + return ( + <div className="text-md hidden w-16 truncate lg:block lg:w-24 xl:w-32"> + {!isEmpty(label) ? ( + label + ) : ( + <div className="item-center flex flex-row gap-2 text-slate-300"> + <IconMathSymbols className="animate-pulse" /> + <span className="truncate">{t("ConfigList.Cell.Waiting")}</span> + </div> + )} + </div> + ) + }, + }, + { + id: "actions", + header: () => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { t } = useTranslation() + return ( + <div className="w-10 truncate sm:w-12"> + {t("ConfigList.Header.Actions")} + </div> + ) + }, + cell: ConfigItemTableActionsCell, + }, +] diff --git a/frontend/src/components/tables/config-item-table/config-item-table.tsx b/frontend/src/components/tables/config-item-table/config-item-table.tsx new file mode 100644 index 000000000..25712da7b --- /dev/null +++ b/frontend/src/components/tables/config-item-table/config-item-table.tsx @@ -0,0 +1,257 @@ +import { + ColumnDef, + ColumnFiltersState, + SortingState, + VisibilityState, + flexRender, + getCoreRowModel, + getFacetedRowModel, + getFacetedUniqueValues, + getFilteredRowModel, + getSortedRowModel, + useReactTable, +} from "@tanstack/react-table" + +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" + +import { + DndContext, + closestCenter, + KeyboardSensor, + useSensor, + useSensors, + DragEndEvent, + MouseSensor, + TouchSensor, +} from "@dnd-kit/core" + +import { + arrayMove, + SortableContext, + verticalListSortingStrategy, +} from "@dnd-kit/sortable" + +import { restrictToVerticalAxis } from "@dnd-kit/modifiers" + +import { useCallback, useEffect, useRef, useState } from "react" +import { DataTableToolbar } from "./data-table-toolbar" +import { IConfigItem } from "@/types" +import { Button } from "@/components/ui/button" +import { publishOnMessageExchange } from "@/lib/hooks/appMessage" +import { CommandAddConfigItem, CommandResortConfigItem } from "@/types/commands" +import { useTranslation } from "react-i18next" +import { DndTableRow } from "@/components/tables/config-item-table/DndTableRow" + +interface DataTableProps<TData, TValue> { + columns: ColumnDef<TData, TValue>[] + data: TData[], + setItems: (items: IConfigItem[]) => void +} + +export function ConfigItemTable<TData, TValue>({ + columns, + data, + setItems +}: DataTableProps<TData, TValue>) { + const [sorting, setSorting] = useState<SortingState>([]) + const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]) + const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({ + Type: false, + }) + + const table = useReactTable({ + data, + columns, + onSortingChange: setSorting, + onColumnFiltersChange: setColumnFilters, + onColumnVisibilityChange: setColumnVisibility, + getCoreRowModel: getCoreRowModel(), + getSortedRowModel: getSortedRowModel(), + getFilteredRowModel: getFilteredRowModel(), + getFacetedRowModel: getFacetedRowModel(), + getFacetedUniqueValues: getFacetedUniqueValues(), + getRowId: (row) => (row as IConfigItem).GUID, //required because row indexes will change + state: { + sorting, + columnFilters, + columnVisibility, + }, + defaultColumn: { + size: 10, //starting column size + minSize: 1, //enforced during column resizing + maxSize: 250, //enforced during column resizing + }, + }) + + const { publish } = publishOnMessageExchange() + const tableRef = useRef<HTMLTableElement>(null) + const prevDataLength = useRef(data.length) + + useEffect(() => { + if (data.length > prevDataLength.current) { + const lastItem = data[data.length - 1] as IConfigItem + const rowElement = tableRef.current?.querySelector( + `[dnd-itemid="${lastItem.GUID}"]`, + ) + if (rowElement) { + rowElement.scrollIntoView({ behavior: "smooth", block: "center" }) + } + } + prevDataLength.current = data.length + }, [data]) + + const { t } = useTranslation() + + const sensors = useSensors( + useSensor(MouseSensor, {}), + useSensor(TouchSensor, {}), + useSensor(KeyboardSensor, {}) + ) + + + const handleDragEnd = useCallback((event: DragEndEvent) => { + const { active, over } = event + + if (active.id !== over?.id) { + // sort the data items first + const oldIndex = data.findIndex((item) => (item as IConfigItem).GUID === active?.id); + const newIndex = data.findIndex((item) => (item as IConfigItem).GUID === over?.id); + const arrayWithNewOrder = arrayMove(data, oldIndex, newIndex); + // store them in a local array + // then set the items + + setItems(arrayWithNewOrder as IConfigItem[]); + + publishOnMessageExchange().publish({ + key: "CommandResortConfigItem", + payload: { + items: [ data.find((item) => (item as IConfigItem).GUID === active.id) as IConfigItem ], + newIndex: newIndex, + } + } as CommandResortConfigItem); + } + }, [data, setItems]) + + return ( + <div className="flex grow flex-col gap-2 overflow-y-auto"> + <div className="p-1"> + <DataTableToolbar table={table} items={data as IConfigItem[]} /> + </div> + <DndContext + sensors={sensors} + collisionDetection={closestCenter} + modifiers={[restrictToVerticalAxis]} + onDragEnd={handleDragEnd} + > + <div className="flex flex-col overflow-y-auto rounded-lg border border-primary"> + <Table ref={tableRef} className="table-auto"> + <TableHeader className="group/header bg-slate-500 text-white dark:bg-zinc-800"> + {table.getHeaderGroups().map((headerGroup) => ( + <TableRow key={headerGroup.id} className="hover:bg-zinc-800"> + {headerGroup.headers.map((header) => { + return ( + <TableHead + key={header.id} + className="sticky top-0 z-50 bg-primary px-2 text-white dark:bg-zinc-800" + > + {header.isPlaceholder + ? null + : flexRender( + header.column.columnDef.header, + header.getContext(), + )} + </TableHead> + ) + })} + </TableRow> + ))} + </TableHeader> + <TableBody className="dark:bg-zinc-900"> + {table.getRowModel().rows?.length ? ( + <SortableContext + items={table.getRowModel().rows.map((row) => row.id)} + strategy={verticalListSortingStrategy} + > + {table.getRowModel().rows.map((row) => { + + + return ( + <DndTableRow + key={row.id} + data-state={row.getIsSelected() && "selected"} + dnd-itemid={row.id} + onDoubleClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "edit", item: row.original }, + }) + }} + > + {row.getVisibleCells().map((cell) => ( + <TableCell key={cell.id} className="p-1"> + {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + </TableCell> + ))} + </DndTableRow> + ) + })} + </SortableContext> + ) : ( + <TableRow> + <TableCell + colSpan={columns.length} + className="h-24 text-center" + > + {t("ConfigList.Table.NoResultsFound")} + </TableCell> + </TableRow> + )} + </TableBody> + </Table> + </div> + </DndContext> + <div className="flex justify-start gap-2"> + <Button + variant={"outline"} + className="border-pink-600 text-pink-600 hover:bg-pink-600 hover:text-white" + onClick={() => + publish({ + key: "CommandAddConfigItem", + payload: { + name: t("ConfigList.Actions.OutputConfigItem.DefaultName"), + type: "OutputConfig", + }, + } as CommandAddConfigItem) + } + > + {t("ConfigList.Actions.OutputConfigItem.Add")} + </Button> + <Button + variant={"outline"} + className="border-teal-600 text-teal-600 hover:bg-teal-600 hover:text-white" + onClick={() => + publish({ + key: "CommandAddConfigItem", + payload: { + name: t("ConfigList.Actions.InputConfigItem.DefaultName"), + type: "InputConfig", + }, + } as CommandAddConfigItem) + } + > + {t("ConfigList.Actions.InputConfigItem.Add")} + </Button> + </div> + </div> + ) +} diff --git a/frontend/src/components/tables/config-item-table/data-table-faceted-filter.tsx b/frontend/src/components/tables/config-item-table/data-table-faceted-filter.tsx new file mode 100644 index 000000000..3e32b9c8d --- /dev/null +++ b/frontend/src/components/tables/config-item-table/data-table-faceted-filter.tsx @@ -0,0 +1,157 @@ +import * as React from "react" +import { IconCheck, IconCirclePlus } from "@tabler/icons-react" +import { Column } from "@tanstack/react-table" + +import { cn } from "@/lib/utils" +import { Badge } from "@/components/ui/badge" +import { Button } from "@/components/ui/button" +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, +} from "@/components/ui/command" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" +import { Separator } from "@/components/ui/separator" +import { useTranslation } from "react-i18next" + +interface DataTableFacetedFilterProps<TData, TValue> { + column?: Column<TData, TValue> + title?: string + options: { + label: string + value: string + icon?: React.ComponentType<{ className?: string }> + }[] +} + +export function DataTableFacetedFilter<TData, TValue>({ + column, + title, + options, +}: DataTableFacetedFilterProps<TData, TValue>) { + const facets = column?.getFacetedUniqueValues() + const selectedValues = new Set(column?.getFilterValue() as string[]) + + const { t } = useTranslation() + + return ( + <Popover> + <PopoverTrigger asChild> + <Button variant="outline" size="sm" className="h-8 border-dashed"> + <IconCirclePlus className="mr-2 h-4 w-4" /> + {title} + {selectedValues?.size > 0 && ( + <> + <Separator orientation="vertical" className="mx-2 h-4" /> + <Badge + variant="secondary" + className="rounded-sm px-1 font-normal lg:hidden" + > + {selectedValues.size} + </Badge> + <div className="hidden space-x-1 lg:flex"> + {selectedValues.size > 2 ? ( + <Badge + variant="secondary" + className="rounded-sm px-1 font-normal" + > + {t("ConfigList.Toolbar.Filter.Selected", { + items: selectedValues.size, + })} + </Badge> + ) : ( + options + .filter((option) => selectedValues.has(option.value)) + .map((option) => ( + <Badge + variant="secondary" + key={option.value} + className="rounded-sm px-1 font-normal" + > + {option.label} + </Badge> + )) + )} + </div> + </> + )} + </Button> + </PopoverTrigger> + <PopoverContent className="w-[240px] p-0" align="start"> + <Command> + <CommandInput placeholder={title} /> + <CommandList> + <CommandEmpty> + {t("ConfigList.Toolbar.Filter.NoResultsFound")} + </CommandEmpty> + <CommandGroup> + {options.map((option) => { + const isSelected = selectedValues.has(option.value) + return ( + <CommandItem + className="gap-1 px-2" + key={option.value} + onSelect={() => { + if (isSelected) { + selectedValues.delete(option.value) + } else { + selectedValues.add(option.value) + } + const filterValues = Array.from(selectedValues) + column?.setFilterValue( + filterValues.length ? filterValues : undefined, + ) + }} + > + <div + className={cn( + "mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary", + isSelected + ? "bg-primary text-primary-foreground" + : "opacity-50 [&_svg]:invisible", + )} + > + <IconCheck className={cn("h-4 w-4")} /> + </div> + {option.icon && ( + <div> + <option.icon className="mr-0 h-4 w-4 text-muted-foreground" /> + </div> + )} + <span className="truncate">{option.label}</span> + {facets?.get(option.value) && ( + <span className="ml-auto flex h-4 w-4 items-center justify-center font-mono text-xs"> + {facets.get(option.value)} + </span> + )} + </CommandItem> + ) + })} + </CommandGroup> + {selectedValues.size > 0 && ( + <> + <CommandSeparator /> + <CommandGroup> + <CommandItem + onSelect={() => column?.setFilterValue(undefined)} + className="justify-center text-center" + > + {t("ConfigList.Toolbar.Filter.Clear")} + </CommandItem> + </CommandGroup> + </> + )} + </CommandList> + </Command> + </PopoverContent> + </Popover> + ) +} diff --git a/frontend/src/components/tables/config-item-table/data-table-toolbar.tsx b/frontend/src/components/tables/config-item-table/data-table-toolbar.tsx new file mode 100644 index 000000000..9b0b3cbd6 --- /dev/null +++ b/frontend/src/components/tables/config-item-table/data-table-toolbar.tsx @@ -0,0 +1,107 @@ +import { IconBan, IconFilter, IconX } from "@tabler/icons-react" +import { Table } from "@tanstack/react-table" + +import { Button } from "@/components/ui/button" +import { Input } from "@/components/ui/input" +// import { DataTableViewOptions } from "@/app/examples/tasks/components/data-table-view-options" + +import { DataTableFacetedFilter } from "./data-table-faceted-filter" +import { IConfigItem } from "@/types" +import { isEmpty } from "lodash-es" +import { useTranslation } from "react-i18next" +import DarkModeToggle from "@/components/DarkModeToggle" + +interface DataTableToolbarProps<TData> { + table: Table<TData> + items: IConfigItem[] +} + +export function DataTableToolbar<TData>({ + table, + items, +}: DataTableToolbarProps<TData>) { + const { t } = useTranslation() + + const isFiltered = table.getState().columnFilters.length > 0 + + const devices = [...new Set(items.map((item) => item.ModuleSerial))].map( + (serial) => { + const label = serial?.split("/")[0] + return { + label: !isEmpty(label) ? ( + label + ) : ( + t(`ConfigList.Toolbar.NotSet`) + ), + value: serial, + icon: isEmpty(label) ? IconBan : undefined, + } + }, + ) + + const components = [ + ...new Set(items.map((item) => item.Device?.Name ?? "-")), + ].map((component) => ({ + label: component, + value: component, + })) + + const types = [...new Set(items.map((item) => item.Device?.Type ?? "-"))].map( + (type) => { + const labelRaw = type + const label = t(`Types.${labelRaw}`) + return { + label: label, + value: type, + } + }, + ) + + return ( + <div className="flex items-center justify-between"> + <div className="flex flex-1 items-center space-x-2"> + <IconFilter className="stroke-primary" /> + <Input + placeholder={t("ConfigList.Toolbar.Search.Placeholder")} + value={(table.getColumn("Name")?.getFilterValue() as string) ?? ""} + onChange={(event) => + table.getColumn("Name")?.setFilterValue(event.target.value) + } + className="h-8 w-[150px] lg:w-[250px]" + /> + {table.getColumn("ModuleSerial") && ( + <DataTableFacetedFilter + column={table.getColumn("ModuleSerial")} + title={t("ConfigList.Toolbar.Filter.Device")} + options={devices} + /> + )} + {table.getColumn("Type") && ( + <DataTableFacetedFilter + column={table.getColumn("Type")} + title={t("ConfigList.Toolbar.Filter.Type")} + options={types} + /> + )} + {table.getColumn("Device") && ( + <DataTableFacetedFilter + column={table.getColumn("Device")} + title={t("ConfigList.Toolbar.Filter.Name")} + options={components} + /> + )} + {isFiltered && ( + <Button + variant="ghost" + onClick={() => table.resetColumnFilters()} + className="h-8 px-2 lg:px-3" + > + {t("ConfigList.Toolbar.Reset")} + <IconX className="ml-2 h-4 w-4" /> + </Button> + )} + </div> + <DarkModeToggle /> + </div> + ) +} diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableActionsCell.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActionsCell.tsx new file mode 100644 index 000000000..ba8432ed4 --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActionsCell.tsx @@ -0,0 +1,115 @@ +import { Button } from "@/components/ui/button" +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu" +import { publishOnMessageExchange } from "@/lib/hooks/appMessage" +import { CommandConfigContextMenu } from "@/types/commands" +import { IConfigItem } from "@/types/config" +import { IconCopy, IconDots, IconEdit, IconFlask, IconTrash } from "@tabler/icons-react" + +import { Row } from "@tanstack/react-table" + +interface ConfigItemTableActionsCellProps { + row: Row<IConfigItem> +} + +const ConfigItemTableActionsCell = ({ + row, +}: ConfigItemTableActionsCellProps) => { + const item = row.original + const { publish } = publishOnMessageExchange() + + return ( + <div className="flex items-center"> + <Button + variant="outline" + className="h-8 w-8 rounded-r-none border-r-0 p-0" + onClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "edit", item: item }, + } as CommandConfigContextMenu) + }} + > + <IconEdit + /> + </Button> + <div className="relative"> + <DropdownMenu> + <DropdownMenuTrigger asChild> + <Button variant="outline" className="h-8 w-8 rounded-l-none p-0"> + <span className="sr-only">Open menu</span> + <IconDots className="h-4 w-4" /> + </Button> + </DropdownMenuTrigger> + <DropdownMenuContent align="end"> + <DropdownMenuLabel>Actions</DropdownMenuLabel> + <DropdownMenuItem + onClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "edit", item: item }, + } as CommandConfigContextMenu) + }} + > + <div className="flex items-center gap-2"> + <IconEdit></IconEdit> + <span>Edit</span> + </div> + </DropdownMenuItem> + <DropdownMenuSeparator /> + <DropdownMenuItem + onClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "delete", item: item }, + } as CommandConfigContextMenu) + }} + ><div className="flex items-center gap-2"> + <IconTrash></IconTrash> + <span>Delete</span> + </div> + + </DropdownMenuItem> + <DropdownMenuItem + onClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "duplicate", item: item }, + } as CommandConfigContextMenu) + }} + > + <div className="flex items-center gap-2"> + <IconCopy></IconCopy> + <span>Duplicate</span> + </div> + </DropdownMenuItem> + {/* <DropdownMenuItem>Copy</DropdownMenuItem> + <DropdownMenuItem>Paste</DropdownMenuItem> */} + <DropdownMenuSeparator /> + <DropdownMenuItem + onClick={() => { + publish({ + key: "CommandConfigContextMenu", + payload: { action: "test", item: item }, + } as CommandConfigContextMenu) + }} + > + <div className="flex items-center gap-2"> + <IconFlask></IconFlask> + <span>Test</span> + </div> + </DropdownMenuItem> + </DropdownMenuContent> + </DropdownMenu> + </div> + </div> + ) +} + +export default ConfigItemTableActionsCell diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveCell.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveCell.tsx new file mode 100644 index 000000000..9e1a77555 --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveCell.tsx @@ -0,0 +1,44 @@ +import { Switch } from '@/components/ui/switch' +import { publishOnMessageExchange } from '@/lib/hooks/appMessage' +import { CommandUpdateConfigItem } from '@/types/commands' +import { IConfigItem } from '@/types/config' +import { useSortable } from '@dnd-kit/sortable' +import { IconGripVertical } from '@tabler/icons-react' + +import { Row } from "@tanstack/react-table" + +interface ConfigItemTableActiveCellProps { + row: Row<IConfigItem> +} + +const ConfigItemTableActiveCell = ({ row } : ConfigItemTableActiveCellProps) => { + const { publish } = publishOnMessageExchange() + const item = row.original as IConfigItem + + const { + attributes, + listeners, + } = useSortable({ id: item.GUID }) + + return ( + <div className='flex items-start'> + <div {...attributes} {...listeners} className='px-1 text-gray-500 dark:text-gray-300 cursor-move opacity-10 transition-opacity delay-100 ease-in group-hover/row:opacity-100 group-hover/row:delay-100 group-hover/row:ease-out'> + <IconGripVertical className='stroke-2' /> + </div> + <div className="w-12 text-center"> + <Switch + checked={row.getValue("Active") as boolean} + onClick={() => { + item.Active = !item.Active + publish({ + key: "CommandUpdateConfigItem", + payload: { item: item }, + } as CommandUpdateConfigItem) + }} + /> + </div> + </div> + ) +} + +export default ConfigItemTableActiveCell \ No newline at end of file diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveHeader.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveHeader.tsx new file mode 100644 index 000000000..cb651ae80 --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableActiveHeader.tsx @@ -0,0 +1,8 @@ +import { useTranslation } from "react-i18next" + +const ConfigItemTableActiveHeader = () => { + const { t } = useTranslation() + return (<div className="w-20 text-center">{t("ConfigList.Header.Active")}</div>) +} + +export default ConfigItemTableActiveHeader diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableDeviceCell.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableDeviceCell.tsx new file mode 100644 index 000000000..51efa211d --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableDeviceCell.tsx @@ -0,0 +1,43 @@ +import DeviceIcon from "@/components/icons/DeviceIcon" +import { IConfigItem, IDeviceConfig } from "@/types/config" +import { DeviceElementType } from "@/types/deviceElements" +import { IconBan } from "@tabler/icons-react" +import { Row } from "@tanstack/react-table" +import { isEmpty } from "lodash-es" +import { useTranslation } from "react-i18next" + +interface ConfigItemTableDeviceCellProps { + row: Row<IConfigItem> +} +const ConfigItemTableDeviceCell = ({ row }: ConfigItemTableDeviceCellProps) => { + const { t } = useTranslation() + const item = row.original as IConfigItem + const label = (item.Device as IDeviceConfig)?.Name ?? (!isEmpty(item.DeviceName) ? item.DeviceName : "-") + const type = (item.Device as IDeviceConfig)?.Type ?? (!isEmpty(item.DeviceType) ? item.DeviceType : "-") + const icon = ( + <DeviceIcon + disabled={!row.getValue("Active") as boolean} + variant={(type ?? "default") as DeviceElementType} + /> + ) + + const typeLabel = t( + `Types.${type?.replace("MobiFlight.OutputConfigItem", "").replace("MobiFlight.InputConfigItem", "")}`, + ) + return type != "-" ? ( + <div className="flex flex-row items-center gap-2 lg:w-36 2xl:w-48"> + <div>{icon}</div> + <div className="hidden w-full flex-col lg:flex"> + <p className="text-md truncate font-semibold">{label}</p> + <p className="truncate text-xs text-muted-foreground">{typeLabel}</p> + </div> + </div> + ) : ( + <div className="item-center flex flex-row gap-2 text-slate-400"> + <IconBan /> + <span>not set</span> + </div> + ) +} + +export default ConfigItemTableDeviceCell diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableNameCell.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableNameCell.tsx new file mode 100644 index 000000000..84bd6f06b --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableNameCell.tsx @@ -0,0 +1,95 @@ +import { Input } from "@/components/ui/input" +import { publishOnMessageExchange } from "@/lib/hooks/appMessage" +import { CommandUpdateConfigItem } from "@/types/commands" +import { IConfigItem, IDeviceConfig } from "@/types/config" +import { IconCircleCheck, IconEdit, IconX } from "@tabler/icons-react" +import { Row } from "@tanstack/react-table" +import { useCallback, useEffect, useState } from "react" + +interface ConfigItemTableNameCellProps { + row: Row<IConfigItem> +} +const ConfigItemTableNameCell = ({ row }: ConfigItemTableNameCellProps) => { + const { publish } = publishOnMessageExchange() + const [isEditing, setIsEditing] = useState(false) + const [label, setLabel] = useState(row.getValue("Name") as string) + const realLabel = row.getValue("Name") as string + + const toggleEdit = () => { + setIsEditing(!isEditing) + } + + const moduleName = + (row.getValue("ModuleSerial") as string).split("/")[0] ?? "not set" + const deviceName = (row.getValue("Device") as IDeviceConfig)?.Name ?? "-" + + const saveChanges = useCallback(() => { + const item = row.original as IConfigItem + item.Name = label + console.log(item) + publish({ + key: "CommandUpdateConfigItem", + payload: { item: item }, + } as CommandUpdateConfigItem) + }, [label, row, publish]) + + useEffect(() => { + setLabel(realLabel) + }, [realLabel]) + + return ( + <div className="group flex w-auto cursor-pointer flex-row items-center gap-1"> + {!isEditing ? ( + <div className="flex flex-col"> + <div className="flex flex-row items-center gap-1"> + <p className="max-w-52 truncate px-0 font-semibold">{label}</p> + <IconEdit + role="button" + aria-label="Edit" + onClick={toggleEdit} + className="ml-2 opacity-0 transition-opacity delay-300 ease-in group-hover:opacity-100 group-hover:delay-100 group-hover:ease-out" + /> + </div> + <p className="w-60 truncate text-xs text-muted-foreground xl:hidden"> + {moduleName} - {deviceName} + </p> + </div> + ) : ( + <div + className="flex flex-row items-center gap-1" + onKeyDown={(e) => e.key === "Enter" && saveChanges() && toggleEdit()} + > + <Input + type="text" + value={label} + className="m-0 h-6 px-2 text-sm lg:h-8" + onChange={(e) => setLabel(e.target.value)} + onKeyDown={(e) => + e.key === "Enter" && (saveChanges(), toggleEdit()) + } + autoFocus + /> + <IconCircleCheck + className="stroke-green-700" + role="button" + aria-label="Save" + onClick={() => { + saveChanges() + toggleEdit() + }} + /> + <IconX + role="button" + aria-label="Discard" + onClick={() => { + setLabel(row.getValue("Name") as string) + toggleEdit() + }} + /> + </div> + )} + </div> + ) +} + +export default ConfigItemTableNameCell diff --git a/frontend/src/components/tables/config-item-table/items/ConfigItemTableStatusCell.tsx b/frontend/src/components/tables/config-item-table/items/ConfigItemTableStatusCell.tsx new file mode 100644 index 000000000..0c2149d7b --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/ConfigItemTableStatusCell.tsx @@ -0,0 +1,78 @@ +import { IConfigItem } from "@/types" +import { IDictionary, ConfigItemStatusType } from "@/types/config" +import { + IconAlertSquareRounded, + IconBuildingBroadcastTower, + IconPlugConnectedX, + IconMathSymbols, + IconFlask, + IconRouteOff, +} from "@tabler/icons-react" +import { Row } from "@tanstack/react-table" +import { isEmpty } from "lodash-es" + +interface ConfigItemTableStatusCellProps { + row: Row<IConfigItem> +} + +const ConfigItemTableStatusCell = ({ row }: ConfigItemTableStatusCellProps) => { + const Status = row.getValue("Status") as IDictionary< + string, + ConfigItemStatusType + > + const Precondition = Status && !isEmpty(Status["Precondition"]) + const Source = Status && !isEmpty(Status["Source"]) + const Modifier = Status && !isEmpty(Status["Modifier"]) + const Device = Status && !isEmpty(Status["Device"]) + const Test = Status && !isEmpty(Status["Test"]) + const ConfigRef = Status && !isEmpty(Status["ConfigRef"]) + + return ( + <div className="flex w-28 flex-row gap-0"> + <IconAlertSquareRounded + role="status" + aria-disabled={!Precondition} + className={!Precondition ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconAlertSquareRounded> + <IconBuildingBroadcastTower + role="status" + aria-disabled={!Source} + className={!Source ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconBuildingBroadcastTower> + <IconPlugConnectedX + role="status" + aria-disabled={!Device} + className={!Device ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconPlugConnectedX> + <IconMathSymbols + aria-disabled={!Modifier} + role="status" + className={!Modifier ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconMathSymbols> + <IconFlask + aria-disabled={!Test} + role="status" + className={!Test ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconFlask> + <IconRouteOff + aria-disabled={!ConfigRef} + role="status" + className={!ConfigRef ? "stroke-slate-100" : "stroke-red-700"} + > + normal + </IconRouteOff> + </div> + ) +} + +export default ConfigItemTableStatusCell diff --git a/frontend/src/components/tables/config-item-table/items/index.ts b/frontend/src/components/tables/config-item-table/items/index.ts new file mode 100644 index 000000000..f834c3dce --- /dev/null +++ b/frontend/src/components/tables/config-item-table/items/index.ts @@ -0,0 +1,5 @@ +export { default as ConfigItemTableActionsCell } from "./ConfigItemTableActionsCell" +export { default as ConfigItemTableActiveCell } from "./ConfigItemTableActiveCell" +export { default as ConfigItemTableActiveHeader } from "./ConfigItemTableActiveHeader" +export { default as ConfigItemTableNameCell } from "./ConfigItemTableNameCell" +export { default as ConfigItemTableStatusCell } from "./ConfigItemTableStatusCell" \ No newline at end of file diff --git a/frontend/src/components/theme-provider.tsx b/frontend/src/components/theme-provider.tsx new file mode 100644 index 000000000..d89a82e11 --- /dev/null +++ b/frontend/src/components/theme-provider.tsx @@ -0,0 +1,73 @@ +import { createContext, useContext, useEffect, useState } from "react" + +type Theme = "dark" | "light" | "system" + +type ThemeProviderProps = { + children: React.ReactNode + defaultTheme?: Theme + storageKey?: string +} + +type ThemeProviderState = { + theme: Theme + setTheme: (theme: Theme) => void +} + +const initialState: ThemeProviderState = { + theme: "system", + setTheme: () => null, +} + +const ThemeProviderContext = createContext<ThemeProviderState>(initialState) + +export function ThemeProvider({ + children, + defaultTheme = "system", + storageKey = "vite-ui-theme", + ...props +}: ThemeProviderProps) { + const [theme, setTheme] = useState<Theme>( + () => (localStorage.getItem(storageKey) as Theme) || defaultTheme + ) + + useEffect(() => { + const root = window.document.documentElement + + root.classList.remove("light", "dark") + + if (theme === "system") { + const systemTheme = window.matchMedia("(prefers-color-scheme: dark)") + .matches + ? "dark" + : "light" + + root.classList.add(systemTheme) + return + } + + root.classList.add(theme) + }, [theme]) + + const value = { + theme, + setTheme: (theme: Theme) => { + localStorage.setItem(storageKey, theme) + setTheme(theme) + }, + } + + return ( + <ThemeProviderContext.Provider {...props} value={value}> + {children} + </ThemeProviderContext.Provider> + ) +} + +export const useTheme = () => { + const context = useContext(ThemeProviderContext) + + if (context === undefined) + throw new Error("useTheme must be used within a ThemeProvider") + + return context +} diff --git a/frontend/src/components/ui/badge.tsx b/frontend/src/components/ui/badge.tsx new file mode 100644 index 000000000..b7017e0ec --- /dev/null +++ b/frontend/src/components/ui/badge.tsx @@ -0,0 +1,16 @@ +import * as React from "react" +import { type VariantProps } from "class-variance-authority" +import { cn } from "@/lib/utils" +import { badgeVariants } from "./variants" + +export interface BadgeProps + extends React.HTMLAttributes<HTMLDivElement>, + VariantProps<typeof badgeVariants> {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( + <div className={cn(badgeVariants({ variant }), className)} {...props} /> + ) +} + +export { Badge } diff --git a/frontend/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx new file mode 100644 index 000000000..461ae7ff6 --- /dev/null +++ b/frontend/src/components/ui/button.tsx @@ -0,0 +1,28 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" +import { buttonVariants } from "./variants" + +export interface ButtonProps + extends React.ButtonHTMLAttributes<HTMLButtonElement>, + VariantProps<typeof buttonVariants> { + asChild?: boolean +} + +const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + <Comp + className={cn(buttonVariants({ variant, size, className }))} + ref={ref} + {...props} + /> + ) + }, +) +Button.displayName = "Button" + +export { Button } diff --git a/frontend/src/components/ui/command.tsx b/frontend/src/components/ui/command.tsx new file mode 100644 index 000000000..67ea2fb38 --- /dev/null +++ b/frontend/src/components/ui/command.tsx @@ -0,0 +1,151 @@ +import * as React from "react" +import { type DialogProps } from "@radix-ui/react-dialog" +import { Command as CommandPrimitive } from "cmdk" +import { Search } from "lucide-react" + +import { cn } from "@/lib/utils" +import { Dialog, DialogContent } from "@/components/ui/dialog" + +const Command = React.forwardRef< + React.ElementRef<typeof CommandPrimitive>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive> +>(({ className, ...props }, ref) => ( + <CommandPrimitive + ref={ref} + className={cn( + "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", + className + )} + {...props} + /> +)) +Command.displayName = CommandPrimitive.displayName + +const CommandDialog = ({ children, ...props }: DialogProps) => { + return ( + <Dialog {...props}> + <DialogContent className="overflow-hidden p-0 shadow-lg"> + <Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"> + {children} + </Command> + </DialogContent> + </Dialog> + ) +} + +const CommandInput = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.Input>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input> +>(({ className, ...props }, ref) => ( + <div className="flex items-center border-b px-3" cmdk-input-wrapper=""> + <Search className="mr-2 h-4 w-4 shrink-0 opacity-50" /> + <CommandPrimitive.Input + ref={ref} + className={cn( + "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", + className + )} + {...props} + /> + </div> +)) + +CommandInput.displayName = CommandPrimitive.Input.displayName + +const CommandList = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.List>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.List> +>(({ className, ...props }, ref) => ( + <CommandPrimitive.List + ref={ref} + className={cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)} + {...props} + /> +)) + +CommandList.displayName = CommandPrimitive.List.displayName + +const CommandEmpty = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.Empty>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty> +>((props, ref) => ( + <CommandPrimitive.Empty + ref={ref} + className="py-6 text-center text-sm" + {...props} + /> +)) + +CommandEmpty.displayName = CommandPrimitive.Empty.displayName + +const CommandGroup = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.Group>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group> +>(({ className, ...props }, ref) => ( + <CommandPrimitive.Group + ref={ref} + className={cn( + "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", + className + )} + {...props} + /> +)) + +CommandGroup.displayName = CommandPrimitive.Group.displayName + +const CommandSeparator = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.Separator>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator> +>(({ className, ...props }, ref) => ( + <CommandPrimitive.Separator + ref={ref} + className={cn("-mx-1 h-px bg-border", className)} + {...props} + /> +)) +CommandSeparator.displayName = CommandPrimitive.Separator.displayName + +const CommandItem = React.forwardRef< + React.ElementRef<typeof CommandPrimitive.Item>, + React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item> +>(({ className, ...props }, ref) => ( + <CommandPrimitive.Item + ref={ref} + className={cn( + "relative flex cursor-default gap-2 items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + className + )} + {...props} + /> +)) + +CommandItem.displayName = CommandPrimitive.Item.displayName + +const CommandShortcut = ({ + className, + ...props +}: React.HTMLAttributes<HTMLSpanElement>) => { + return ( + <span + className={cn( + "ml-auto text-xs tracking-widest text-muted-foreground", + className + )} + {...props} + /> + ) +} +CommandShortcut.displayName = "CommandShortcut" + +export { + Command, + CommandDialog, + CommandInput, + CommandList, + CommandEmpty, + CommandGroup, + CommandItem, + CommandShortcut, + CommandSeparator, +} diff --git a/frontend/src/components/ui/dialog.tsx b/frontend/src/components/ui/dialog.tsx new file mode 100644 index 000000000..01ff19c7e --- /dev/null +++ b/frontend/src/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +"use client" + +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef<typeof DialogPrimitive.Overlay>, + React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay> +>(({ className, ...props }, ref) => ( + <DialogPrimitive.Overlay + ref={ref} + className={cn( + "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", + className + )} + {...props} + /> +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef<typeof DialogPrimitive.Content>, + React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> +>(({ className, children, ...props }, ref) => ( + <DialogPortal> + <DialogOverlay /> + <DialogPrimitive.Content + ref={ref} + className={cn( + "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", + className + )} + {...props} + > + {children} + <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"> + <X className="h-4 w-4" /> + <span className="sr-only">Close</span> + </DialogPrimitive.Close> + </DialogPrimitive.Content> + </DialogPortal> +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes<HTMLDivElement>) => ( + <div + className={cn( + "flex flex-col space-y-1.5 text-center sm:text-left", + className + )} + {...props} + /> +) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes<HTMLDivElement>) => ( + <div + className={cn( + "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", + className + )} + {...props} + /> +) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef<typeof DialogPrimitive.Title>, + React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> +>(({ className, ...props }, ref) => ( + <DialogPrimitive.Title + ref={ref} + className={cn( + "text-lg font-semibold leading-none tracking-tight", + className + )} + {...props} + /> +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef<typeof DialogPrimitive.Description>, + React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description> +>(({ className, ...props }, ref) => ( + <DialogPrimitive.Description + ref={ref} + className={cn("text-sm text-muted-foreground", className)} + {...props} + /> +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogClose, + DialogTrigger, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/frontend/src/components/ui/dropdown-menu.tsx b/frontend/src/components/ui/dropdown-menu.tsx new file mode 100644 index 000000000..4ad33889a --- /dev/null +++ b/frontend/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,198 @@ +import * as React from "react" +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" +import { Check, ChevronRight, Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + <DropdownMenuPrimitive.SubTrigger + ref={ref} + className={cn( + "flex cursor-default gap-2 items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + > + {children} + <ChevronRight className="ml-auto" /> + </DropdownMenuPrimitive.SubTrigger> +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.SubContent>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent> +>(({ className, ...props }, ref) => ( + <DropdownMenuPrimitive.SubContent + ref={ref} + className={cn( + "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", + className + )} + {...props} + /> +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.Content>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> +>(({ className, sideOffset = 4, ...props }, ref) => ( + <DropdownMenuPrimitive.Portal> + <DropdownMenuPrimitive.Content + ref={ref} + sideOffset={sideOffset} + className={cn( + "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", + className + )} + {...props} + /> + </DropdownMenuPrimitive.Portal> +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.Item>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + <DropdownMenuPrimitive.Item + ref={ref} + className={cn( + "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem> +>(({ className, children, checked, ...props }, ref) => ( + <DropdownMenuPrimitive.CheckboxItem + ref={ref} + className={cn( + "relative flex cursor-default items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", + className + )} + checked={checked} + {...props} + > + <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> + <DropdownMenuPrimitive.ItemIndicator> + <Check className="h-4 w-4" /> + </DropdownMenuPrimitive.ItemIndicator> + </span> + {children} + </DropdownMenuPrimitive.CheckboxItem> +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> +>(({ className, children, ...props }, ref) => ( + <DropdownMenuPrimitive.RadioItem + ref={ref} + className={cn( + "relative flex cursor-default items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", + className + )} + {...props} + > + <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center"> + <DropdownMenuPrimitive.ItemIndicator> + <Circle className="h-2 w-2 fill-current" /> + </DropdownMenuPrimitive.ItemIndicator> + </span> + {children} + </DropdownMenuPrimitive.RadioItem> +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.Label>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + <DropdownMenuPrimitive.Label + ref={ref} + className={cn( + "px-2 py-1.5 text-sm font-semibold", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef<typeof DropdownMenuPrimitive.Separator>, + React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> +>(({ className, ...props }, ref) => ( + <DropdownMenuPrimitive.Separator + ref={ref} + className={cn("-mx-1 my-1 h-px bg-muted", className)} + {...props} + /> +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes<HTMLSpanElement>) => { + return ( + <span + className={cn("ml-auto text-xs tracking-widest opacity-60", className)} + {...props} + /> + ) +} +DropdownMenuShortcut.displayName = "DropdownMenuShortcut" + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/frontend/src/components/ui/input.tsx b/frontend/src/components/ui/input.tsx new file mode 100644 index 000000000..68551b927 --- /dev/null +++ b/frontend/src/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>( + ({ className, type, ...props }, ref) => { + return ( + <input + type={type} + className={cn( + "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", + className + )} + ref={ref} + {...props} + /> + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/frontend/src/components/ui/popover.tsx b/frontend/src/components/ui/popover.tsx new file mode 100644 index 000000000..bbba7e0eb --- /dev/null +++ b/frontend/src/components/ui/popover.tsx @@ -0,0 +1,29 @@ +import * as React from "react" +import * as PopoverPrimitive from "@radix-ui/react-popover" + +import { cn } from "@/lib/utils" + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverContent = React.forwardRef< + React.ElementRef<typeof PopoverPrimitive.Content>, + React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + <PopoverPrimitive.Portal> + <PopoverPrimitive.Content + ref={ref} + align={align} + sideOffset={sideOffset} + className={cn( + "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", + className + )} + {...props} + /> + </PopoverPrimitive.Portal> +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent } diff --git a/frontend/src/components/ui/progress.tsx b/frontend/src/components/ui/progress.tsx new file mode 100644 index 000000000..105fb6500 --- /dev/null +++ b/frontend/src/components/ui/progress.tsx @@ -0,0 +1,26 @@ +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" + +import { cn } from "@/lib/utils" + +const Progress = React.forwardRef< + React.ElementRef<typeof ProgressPrimitive.Root>, + React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> +>(({ className, value, ...props }, ref) => ( + <ProgressPrimitive.Root + ref={ref} + className={cn( + "relative h-4 w-full overflow-hidden rounded-full bg-secondary", + className + )} + {...props} + > + <ProgressPrimitive.Indicator + className="h-full w-full flex-1 bg-primary transition-all" + style={{ transform: `translateX(-${100 - (value || 0)}%)` }} + /> + </ProgressPrimitive.Root> +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } diff --git a/frontend/src/components/ui/separator.tsx b/frontend/src/components/ui/separator.tsx new file mode 100644 index 000000000..6d7f12265 --- /dev/null +++ b/frontend/src/components/ui/separator.tsx @@ -0,0 +1,29 @@ +import * as React from "react" +import * as SeparatorPrimitive from "@radix-ui/react-separator" + +import { cn } from "@/lib/utils" + +const Separator = React.forwardRef< + React.ElementRef<typeof SeparatorPrimitive.Root>, + React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref + ) => ( + <SeparatorPrimitive.Root + ref={ref} + decorative={decorative} + orientation={orientation} + className={cn( + "shrink-0 bg-border", + orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", + className + )} + {...props} + /> + ) +) +Separator.displayName = SeparatorPrimitive.Root.displayName + +export { Separator } diff --git a/frontend/src/components/ui/switch.tsx b/frontend/src/components/ui/switch.tsx new file mode 100644 index 000000000..c68629e89 --- /dev/null +++ b/frontend/src/components/ui/switch.tsx @@ -0,0 +1,27 @@ +import * as React from "react" +import * as SwitchPrimitives from "@radix-ui/react-switch" + +import { cn } from "@/lib/utils" + +const Switch = React.forwardRef< + React.ElementRef<typeof SwitchPrimitives.Root>, + React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> +>(({ className, ...props }, ref) => ( + <SwitchPrimitives.Root + className={cn( + "peer inline-flex h-5 w-10 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", + className + )} + {...props} + ref={ref} + > + <SwitchPrimitives.Thumb + className={cn( + "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0" + )} + /> + </SwitchPrimitives.Root> +)) +Switch.displayName = SwitchPrimitives.Root.displayName + +export { Switch } diff --git a/frontend/src/components/ui/table.tsx b/frontend/src/components/ui/table.tsx new file mode 100644 index 000000000..7f3502f8b --- /dev/null +++ b/frontend/src/components/ui/table.tsx @@ -0,0 +1,117 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes<HTMLTableElement> +>(({ className, ...props }, ref) => ( + <div className="relative w-full overflow-auto"> + <table + ref={ref} + className={cn("w-full caption-bottom text-sm", className)} + {...props} + /> + </div> +)) +Table.displayName = "Table" + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes<HTMLTableSectionElement> +>(({ className, ...props }, ref) => ( + <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} /> +)) +TableHeader.displayName = "TableHeader" + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes<HTMLTableSectionElement> +>(({ className, ...props }, ref) => ( + <tbody + ref={ref} + className={cn("[&_tr:last-child]:border-0", className)} + {...props} + /> +)) +TableBody.displayName = "TableBody" + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes<HTMLTableSectionElement> +>(({ className, ...props }, ref) => ( + <tfoot + ref={ref} + className={cn( + "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", + className + )} + {...props} + /> +)) +TableFooter.displayName = "TableFooter" + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes<HTMLTableRowElement> +>(({ className, ...props }, ref) => ( + <tr + ref={ref} + className={cn( + "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", + className + )} + {...props} + /> +)) +TableRow.displayName = "TableRow" + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes<HTMLTableCellElement> +>(({ className, ...props }, ref) => ( + <th + ref={ref} + className={cn( + "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", + className + )} + {...props} + /> +)) +TableHead.displayName = "TableHead" + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes<HTMLTableCellElement> +>(({ className, ...props }, ref) => ( + <td + ref={ref} + className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)} + {...props} + /> +)) +TableCell.displayName = "TableCell" + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes<HTMLTableCaptionElement> +>(({ className, ...props }, ref) => ( + <caption + ref={ref} + className={cn("mt-4 text-sm text-muted-foreground", className)} + {...props} + /> +)) +TableCaption.displayName = "TableCaption" + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/frontend/src/components/ui/tabs.tsx b/frontend/src/components/ui/tabs.tsx new file mode 100644 index 000000000..f57fffdb5 --- /dev/null +++ b/frontend/src/components/ui/tabs.tsx @@ -0,0 +1,53 @@ +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "@/lib/utils" + +const Tabs = TabsPrimitive.Root + +const TabsList = React.forwardRef< + React.ElementRef<typeof TabsPrimitive.List>, + React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> +>(({ className, ...props }, ref) => ( + <TabsPrimitive.List + ref={ref} + className={cn( + "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", + className + )} + {...props} + /> +)) +TabsList.displayName = TabsPrimitive.List.displayName + +const TabsTrigger = React.forwardRef< + React.ElementRef<typeof TabsPrimitive.Trigger>, + React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> +>(({ className, ...props }, ref) => ( + <TabsPrimitive.Trigger + ref={ref} + className={cn( + "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm", + className + )} + {...props} + /> +)) +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName + +const TabsContent = React.forwardRef< + React.ElementRef<typeof TabsPrimitive.Content>, + React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> +>(({ className, ...props }, ref) => ( + <TabsPrimitive.Content + ref={ref} + className={cn( + "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", + className + )} + {...props} + /> +)) +TabsContent.displayName = TabsPrimitive.Content.displayName + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/frontend/src/components/ui/variants.ts b/frontend/src/components/ui/variants.ts new file mode 100644 index 000000000..bdd3106b2 --- /dev/null +++ b/frontend/src/components/ui/variants.ts @@ -0,0 +1,50 @@ +import { cva } from "class-variance-authority"; + +export const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) \ No newline at end of file diff --git a/frontend/src/i18n.ts b/frontend/src/i18n.ts new file mode 100644 index 000000000..79b9b0b6a --- /dev/null +++ b/frontend/src/i18n.ts @@ -0,0 +1,13 @@ +import i18n from "i18next" +import Backend from "i18next-http-backend" +import LanguageDetector from "@/lib/languageDetector" +import { initReactI18next } from "react-i18next" + +export default i18n + .use(LanguageDetector) + .use(Backend) + .use(initReactI18next) + .init({ + fallbackLng: "en", + debug: true, + }) diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 000000000..ff6c2e769 --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,68 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + --primary: 220 60% 50%; + --primary-foreground: 210 40% 98%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 0 0% 3.9%; + --foreground: 0 0% 98%; + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} \ No newline at end of file diff --git a/frontend/src/lib/hooks/appMessage.ts b/frontend/src/lib/hooks/appMessage.ts new file mode 100644 index 000000000..85c01d202 --- /dev/null +++ b/frontend/src/lib/hooks/appMessage.ts @@ -0,0 +1,41 @@ +import { CommandMessage } from "@/types/commands" +import { AppMessage, AppMessageKey } from "@/types/messages" +import { useEffect } from "react" + +export const publishOnMessageExchange = () => ({ + publish: (message: CommandMessage) => { + console.log(`Publishing FrontendMessage -> ${message.key}`) + window.chrome?.webview?.postMessage(message) + }, +}) + +// create a useAppMessage hook that listens for messages +// the paramaters are the AppMessageKey and the onReceiveMessage callback +// the callback is called when a message is received +export const useAppMessage = ( + key: AppMessageKey, + onReceiveMessage: (message: AppMessage) => void +) => { + useEffect(() => { + const onReveiveMessageHandler = (event: Event) => { + try { + const appMessage = (event as MessageEvent).data as AppMessage + if (appMessage.key === key) { + onReceiveMessage(appMessage) + } + } catch (error) { + console.error("Error parsing message", error) + } + } + + // add an event listener for the message key + window.chrome?.webview?.addEventListener("message", onReveiveMessageHandler) + return () => { + // remove the event listener when the component is unmounted + window.chrome?.webview?.removeEventListener( + "message", + onReveiveMessageHandler + ) + } + }, [key, onReceiveMessage]) +} \ No newline at end of file diff --git a/frontend/src/lib/languageDetector.ts b/frontend/src/lib/languageDetector.ts new file mode 100644 index 000000000..8e05b73d0 --- /dev/null +++ b/frontend/src/lib/languageDetector.ts @@ -0,0 +1,11 @@ +import { LanguageDetectorModule } from "i18next" +const LanguageDetector: LanguageDetectorModule = { + type: "languageDetector", + detect: () => { + /* return detected language */ + const userLanguage = navigator.language || "en" + return userLanguage + }, +} + +export default LanguageDetector diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts new file mode 100644 index 000000000..bd0c391dd --- /dev/null +++ b/frontend/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 000000000..48427f352 --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,24 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import './i18n.ts' +import App from './App.tsx' +import { BrowserRouter, Route, Routes } from 'react-router' +import ConfigPage from './pages/ConfigList' +import { ThemeProvider } from './components/theme-provider.tsx' + +createRoot(document.getElementById('root')!).render( + <StrictMode> + <ThemeProvider defaultTheme="light" storageKey="ui-mode"> + <BrowserRouter> + <Routes> + <Route path="/" element={<App />} /> + <Route path="/config" element={<App />}> + <Route index element={<ConfigPage />} /> + </Route> + <Route index path="/index.html" element={<App />} /> + </Routes> + </BrowserRouter> + </ThemeProvider> + </StrictMode>, +) \ No newline at end of file diff --git a/frontend/src/pages/ConfigList.tsx b/frontend/src/pages/ConfigList.tsx new file mode 100644 index 000000000..6551fbbcf --- /dev/null +++ b/frontend/src/pages/ConfigList.tsx @@ -0,0 +1,62 @@ +import { useConfigStore } from "@/stores/configFileStore" +// import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { ConfigItemTable } from "@/components/tables/config-item-table/config-item-table" +import { columns } from "@/components/tables/config-item-table/config-item-table-columns" +import { useCallback, useEffect } from "react" +import { useAppMessage } from "@/lib/hooks/appMessage" +import { ConfigValueUpdate } from "@/types/messages" +import testdata from "@/../tests/data/configlist.testdata.json" with { type: "json" } +import { IConfigItem } from "@/types" + +const ConfigListPage = () => { + const { + items: configItems, + setItems, + updateItem, + updateItems + } = useConfigStore() + + const mySetItems = useCallback((items: IConfigItem[]) => { + setItems(items) + }, [setItems]) + + + useAppMessage("ConfigValueUpdate", (message) => { + const update = message.payload as ConfigValueUpdate + console.log("ConfigValueUpdate", update.ConfigItems) + // better performance for single updates + if (update.ConfigItems.length === 1) { + console.log("updateItem", update.ConfigItems[0]) + updateItem(update.ConfigItems[0], true) + return + } + updateItems(update.ConfigItems) + }) + + // this is only for easier UI testing + // while developing the UI + useEffect(() => { + if (process.env.NODE_ENV === "development" && configItems.length === 0) { + setItems(testdata) + } + },[setItems]) + + return ( + // <div className='flex flex-col gap-4 overflow-y-auto'> + // <Tabs defaultValue="config-1" className='grow flex flex-col overflow-y-auto'> + // <div> + // <TabsList className='mb-4 mt-0'> + // <TabsTrigger value="config-1">Config one</TabsTrigger> + // </TabsList> + // </div> + // <TabsContent value="config-1" className='mt-0 flex flex-col grow overflow-y-auto'> + <div className="flex flex-col gap-4 overflow-y-auto"> + <ConfigItemTable columns={columns} data={configItems} setItems={mySetItems}/> + </div> + // </TabsContent> + // </Tabs> + // </div> + ) +} + +export default ConfigListPage diff --git a/frontend/src/stores/configFileStore.ts b/frontend/src/stores/configFileStore.ts new file mode 100644 index 000000000..ea1ef4178 --- /dev/null +++ b/frontend/src/stores/configFileStore.ts @@ -0,0 +1,40 @@ +import { create } from "zustand" +import * as Types from "../types/index" + +interface ConfigState { + items: Types.IConfigItem[] + clearItems: () => void + setItems: (items: Types.IConfigItem[]) => void + updateItem: (item: Types.IConfigItem, upsert?: boolean) => void + updateItems: (items: Types.IConfigItem[]) => void +} + +export const useConfigStore = create<ConfigState>((set) => ({ + items: [], + clearItems: () => set({ items: [] }), + setItems: (newItems) => set(() => ({ items: newItems })), + updateItem: (item: Types.IConfigItem, upsert = false) => + set((state) => { + const itemIndex = state.items.findIndex( + (existingItem) => existingItem.GUID === item.GUID, + ) + if (itemIndex !== -1) { + // Update existing item + const updatedItems = [...state.items] + updatedItems[itemIndex] = item + return { items: updatedItems } + } else if (upsert) { + // Insert new item if upsert is true + return { items: [...state.items, item] } + } + return state + }), + updateItems: (configItems: Types.IConfigItem[]) => + set((state) => { + const updateMap = new Map(configItems.map((item) => [item.GUID, item])) + const mergedItems = state.items.map((item) => { + return updateMap.get(item.GUID) || item + }) + return { items: mergedItems } + }), +})) diff --git a/frontend/src/types/commands.d.ts b/frontend/src/types/commands.d.ts new file mode 100644 index 000000000..6abbabd03 --- /dev/null +++ b/frontend/src/types/commands.d.ts @@ -0,0 +1,60 @@ +// FrontendMessages are messages +// that are sent from the frontend to the backend +export type CommandMessageKey = + | "ConfigEdit" + | "CommandConfigContextMenu" + | "CommandUpdateConfigItem" + | "CommandAddConfigItem" + | "CommandResortConfigItem" + +export type CommandMessage = + | CommandConfigContextMenu + | CommandUpdateConfigItem + | CommandAddConfigItem + | CommandResortConfigItem + + +export interface CommandMessageBase { + key: CommandMessageKey +} + +// EditConfigMessage +// is sent to the backend +// when a config item shall be edited +export interface CommandConfigContextMenu extends CommandMessageBase{ + key: "CommandConfigContextMenu" + payload: { + action: "edit" | "delete" | "duplicate" | "test", + item: IConfigItem + } +} + +// CommandUpdateConfigItem +// Update basic properties of a config item +// Active, Name +export interface CommandUpdateConfigItem extends CommandMessageBase { + key: "CommandUpdateConfigItem" + payload: { + item: IConfigItem + } +} + +// CommandUpdateConfigItem +// Update basic properties of a config item +// Active, Name +export interface CommandAddConfigItem extends CommandMessageBase { + key: "CommandAddConfigItem" + payload: { + name: string, + type: ConfigItemType + } +} + + +export interface CommandResortConfigItem extends CommandMessageBase { + key: "CommandResortConfigItem" + payload: { + items: IConfigItem[], + newIndex: number + } +} \ No newline at end of file diff --git a/frontend/src/types/config.d.ts b/frontend/src/types/config.d.ts new file mode 100644 index 000000000..11b04bca9 --- /dev/null +++ b/frontend/src/types/config.d.ts @@ -0,0 +1,39 @@ +import { DeviceElementType } from "./deviceElements" + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export interface IDictionary<T, K extends string | number | symbol> { + [Key in K]: T +} +export interface IConfigItem { + GUID: string + Active: boolean + Type: string + // This is the name of the config item + Name: string + // name / serial of the device + ModuleSerial: string + Device?: IDeviceConfig | null + // this is the type of the Device + // Type: DeviceElementType; + DeviceName?: string | null + DeviceType: DeviceElementType | string + // Tags: string[]; + RawValue?: string | null + Value?: string | null + Status: IDictionary<string, ConfigItemStatusType> +} + +export type ConfigItemStatusType = "Precondition" | "Source" | "Modifier" | "Test" | "Device" | "ConfigRef" + +export interface IDictionary<T> { + [Key: string]: T +} + +export type DeviceType = "MobiFlight" | "Joystick" | "Midi" + +export type ConfigItemType = "InputConfig" | "OutputConfig" + +export interface IDeviceConfig { + Type: string + Name: string +} diff --git a/frontend/src/types/deviceElements.d.ts b/frontend/src/types/deviceElements.d.ts new file mode 100644 index 000000000..c04994aa4 --- /dev/null +++ b/frontend/src/types/deviceElements.d.ts @@ -0,0 +1,29 @@ +export type DeviceElementType = + | "Button" + | "Output" + | "Encoder" + | "LedModule" + | "Display Module" + | "Stepper" + | "Servo" + | "LcdDisplay" + | "ShiftRegister" + | "AnalogInput" + | "InputShiftRegister" + | "InputMultiplexer" + | "CustomDevice" + +export const DeviceElementTypes: DeviceElementType[] = [ + "Button", + "Encoder", + "AnalogInput", + "InputShiftRegister", + "InputMultiplexer", + "Output", + "LedModule", + "Stepper", + "Servo", + "LcdDisplay", + "ShiftRegister", + "CustomDevice", +] diff --git a/frontend/src/types/global.d.ts b/frontend/src/types/global.d.ts new file mode 100644 index 000000000..1f31a9bdb --- /dev/null +++ b/frontend/src/types/global.d.ts @@ -0,0 +1,19 @@ +export {}; + +declare global { + interface Window { + chrome?: { + webview?: { + addEventListener: ( + message: string, + handler: (message: Event) => void, // not sure yet what the event type should be + ) => void; + removeEventListener: ( + message: string, + handler: (message: Event) => void, // not sure yet what the event type should be + ) => void; + postMessage: (message: object) => void; + }; + }; + } +} \ No newline at end of file diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts new file mode 100644 index 000000000..07e9e53f3 --- /dev/null +++ b/frontend/src/types/index.ts @@ -0,0 +1,14 @@ +export type { IConfigItem, DeviceType } from "./config" +// export type { IDeviceElement, DeviceElementType } from "./deviceElements" +// export type { default as IGlobalSettings } from "./globalsettings" +export type { LogLevel, ILogMessage } from "./log" +// export type { Project } from "./project" +export type { + ConfigLoadedEvent, + AppMessage, + AppMessageKey, + AppMessagePayload, + StatusBarUpdate, + ConfigValueUpdate, + Message, +} from "./messages" diff --git a/frontend/src/types/log.d.ts b/frontend/src/types/log.d.ts new file mode 100644 index 000000000..52dd42bb3 --- /dev/null +++ b/frontend/src/types/log.d.ts @@ -0,0 +1,7 @@ +export type LogLevel = "info" | "warn" | "error" | "debug" | "trace" | "off"; +export interface ILogMessage { + Message: string + Severity: LogLevel + Timestamp: Date +} + diff --git a/frontend/src/types/messages.d.ts b/frontend/src/types/messages.d.ts new file mode 100644 index 000000000..c0b62af96 --- /dev/null +++ b/frontend/src/types/messages.d.ts @@ -0,0 +1,46 @@ +import { Settings } from "http2" + +export type AppMessageKey = + | "StatusBarUpdate" + | "ConfigFile" + | "ConfigValueUpdate" + | "Settings" + +export type AppMessagePayload = + | StatusBarUpdate + | ConfigLoadedEvent + | ConfigValueUpdate + +// AppMessage is the message format +// when receiving messages from the backend +export type AppMessage = { + key: AppMessageKey + payload: AppMessagePayload | Settings +} + +// ConfigLoadedEvent +// is sent from the backend +// when the config file was loaded +// the payload contains the config items +export interface ConfigLoadedEvent { + FileName: string + ConfigItems: IConfigItem[] +} + +// StatusBarUpdate +// the status bar shall be updated +// with a new text and value +// this happens during startup +export interface StatusBarUpdate { + Text: string + Value: number +} + +export interface ConfigValueUpdate { + ConfigItems: IConfigItem[] +} + +// Not sure what this is for +// but we are using it in the tests +// for mocking the chrome API +export type Message = AppMessagePayload \ No newline at end of file diff --git a/frontend/src/types/project.d.ts b/frontend/src/types/project.d.ts new file mode 100644 index 000000000..212e397ca --- /dev/null +++ b/frontend/src/types/project.d.ts @@ -0,0 +1,11 @@ +export interface Project { + id: string + filePath: string + name: string + linkedAircraft?: string[] + status: { + configs: { files: number, configs: number, status: string } + devices: { count: number, status: string } + sim: { name: string, status: string } + } +} \ No newline at end of file diff --git a/frontend/src/types/settings.d.ts b/frontend/src/types/settings.d.ts new file mode 100644 index 000000000..e5bbb0a6e --- /dev/null +++ b/frontend/src/types/settings.d.ts @@ -0,0 +1,24 @@ +export default interface Settings { + ArcazeSupportEnabled: boolean + AutoRetrigger: boolean + AutoRun: boolean + AutoLoadLinkedConfig: boolean + BetaUpdates: boolean + CommunityFeedback: boolean + EnableJoystickSupport: boolean + EnableMidiSupport: boolean + ExcludedJoysticks: string[] + ExcludedMidiBoards: string[] + FwAutoUpdateCheck: boolean + HubHopAutoCheck: boolean + IgnoredComPortsList: string + Language: string + LogEnabled: boolean + LogJoystickAxis: boolean + LogLevel: string + MinimizeOnAutoRun: boolean + ModuleSettings: string + RecentFiles: string[] + RecentFilesMaxCount: number + TestTimerInterval: number +} \ No newline at end of file diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1 @@ +/// <reference types="vite/client" /> diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 000000000..b670ae232 --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,92 @@ +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: ["class"], + content: ["./index.html", "./src/**/*.{ts,tsx,js,jsx}"], + theme: { + extend: { + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + }, + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + "low-bounce" : { + '0%, 100%' : { + transform: 'translateY(-3%)', + animationTimingFunction: 'cubicBezier(0.8,0,1,1)' + }, + '50%' : { + transform: 'translateY(0%)', + animationTimingFunction: 'cubicBezier(0,0,0.2,1)' + } + }, + 'highlight': { + from: { + backgroundColor: 'yellow' + }, + from: { + backgroundColor: 'transparent' + }, + } + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + "low-bounce" : "low-bounce 800ms ease-in-out infinite", + "highlight" : "highlight 2s ease-out", + }, + } + }, + plugins: [require("tailwindcss-animate")], +} + diff --git a/frontend/tests/ConfigListView.spec.ts b/frontend/tests/ConfigListView.spec.ts new file mode 100644 index 000000000..6e0e76bfe --- /dev/null +++ b/frontend/tests/ConfigListView.spec.ts @@ -0,0 +1,163 @@ +import { test, expect } from "./fixtures" + +test("Confirm empty list view", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithEmptyData() + await expect( + page.getByRole("cell", { + name: "This is a new configuration. Please add some items.", + }), + ).toBeVisible() + await expect( + page.getByRole("button", { name: "Add Output Config" }), + ).toBeVisible() + await expect( + page.getByRole("button", { name: "Add Input Config" }), + ).toBeVisible() + await expect( + page.getByRole("textbox", { name: "Filter items..." }), + ).toBeVisible() + await page.getByRole("button", { name: "Devices" }).click() + await expect(page.getByText("No results found.")).toBeVisible() + await page.getByRole("button", { name: "Type" }).click() + await page.waitForTimeout(500) + await expect( + page.getByRole("listbox").getByText("No results found.", { exact: true }), + ).toBeVisible() + await page.getByRole("button", { name: "Name" }).click() + await page.waitForTimeout(500) + await expect(page.getByText("No results found.")).toBeVisible() +}) + +test("Confirm populated list view", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await expect( + page.getByRole("cell", { name: "No results." }), + ).not.toBeVisible() +}) + +test("Confirm active toggle is working", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await configListPage.setupConfigItemEditConfirmationResponse() + const rowSelector = { name: "LED 1 Edit ProtoBoard-v2 SN-5FC-" } + await page.getByRole("row", rowSelector).getByRole("switch").click() + await expect( + page.getByRole("row", rowSelector).getByRole("switch"), + ).not.toBeChecked() + await page.getByRole("row", rowSelector).getByRole("switch").click() + await expect( + page.getByRole("row", rowSelector).getByRole("switch"), + ).toBeChecked() +}) + +test("Confirm edit function for name is working", async ({ + configListPage, + page, +}) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await configListPage.setupConfigItemEditConfirmationResponse() + await page + .getByRole("cell", { name: "LED 1" }) + .getByRole("button", { name: "Edit" }) + .click() + await page.locator('input[type="text"]').click() + await page.locator('input[type="text"]').fill("LED 1245") + await page + .getByRole("cell", { name: "LED 1245" }) + .getByRole("button", { name: "Save" }) + .click() + await expect(page.getByRole("cell", { name: "LED 1245" })).toBeVisible() + await page + .getByRole("cell", { name: "LED 1245" }) + .getByRole("button", { name: "Edit" }) + .click() + await page.locator('input[type="text"]').click() + await page.locator('input[type="text"]').fill("LED 9999") + await page + .getByRole("cell", { name: "LED 9999" }) + .getByRole("button", { name: "Discard" }) + .click() + await expect(page.getByRole("cell", { name: "LED 1245" })).toBeVisible() +}) + +test("Confirm status icons working", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await expect( + page.getByRole("row").nth(1).getByRole("status").first(), + ).toHaveAttribute("aria-disabled", "true") + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(1), + ).toHaveAttribute("aria-disabled", "true") + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(2), + ).toHaveAttribute("aria-disabled", "true") + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(3), + ).toHaveAttribute("aria-disabled", "true") + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(4), + ).toHaveAttribute("aria-disabled", "true") + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(5), + ).toHaveAttribute("aria-disabled", "true") + + await configListPage.updateConfigItemStatus(0, { + Precondition: "not satisfied", + }) + await expect( + page.getByRole("row").nth(1).getByRole("status").first(), + ).toHaveAttribute("aria-disabled", "false") + + await configListPage.updateConfigItemStatus(0, { Source: "not satisfied" }) + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(1), + ).toHaveAttribute("aria-disabled", "false") + + await configListPage.updateConfigItemStatus(0, { Device: "not satisfied" }) + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(2), + ).toHaveAttribute("aria-disabled", "false") + + await configListPage.updateConfigItemStatus(0, { Modifier: "not satisfied" }) + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(3), + ).toHaveAttribute("aria-disabled", "false") + + await configListPage.updateConfigItemStatus(0, { Test: "being tested" }) + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(4), + ).toHaveAttribute("aria-disabled", "false") + + await configListPage.updateConfigItemStatus(0, { ConfigRef: "being tested" }) + await expect( + page.getByRole("row").nth(1).getByRole("status").nth(5), + ).toHaveAttribute("aria-disabled", "false") +}) + +test("Confirm drag n drop is working", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await page.getByRole("row").nth(1).getByRole("button").first().hover() + await page.mouse.down() + await page + .getByRole("row", { name: "ShiftRegister" }) + .getByRole("button") + .first() + .hover() + await page.mouse.up() + await expect(page.getByRole("row").nth(6)).toContainText("7-Segment") +}) + +test("Confirm dark mode is working", async ({ configListPage, page }) => { + await configListPage.gotoPage() + await configListPage.initWithTestData() + await expect(page.locator("html")).toHaveAttribute("class", "light") + await page.getByRole("button", { name: "Toggle dark mode" }).click() + await expect(page.locator("html")).toHaveAttribute("class", "dark") + await page.getByRole("button", { name: "Toggle light mode" }).click() + await expect(page.locator("html")).toHaveAttribute("class", "light") +}) diff --git a/frontend/tests/StartupProgress.spec.ts b/frontend/tests/StartupProgress.spec.ts new file mode 100644 index 000000000..8d16b5495 --- /dev/null +++ b/frontend/tests/StartupProgress.spec.ts @@ -0,0 +1,16 @@ +import { test, expect } from './fixtures'; + +test('Go beyond progress bar', async ({ startupPage, page }) => { + await startupPage.gotoStartupPage() + await startupPage.setStatusBarUpdate(50,"Loading!") + // expect to have exactly one progressBar + await expect(page.getByRole('progressbar')).toHaveCount(1) + // expect the progressBar to be visible + await expect(page.getByRole('progressbar').isVisible()).toBeTruthy() + await startupPage.setStatusBarUpdate(100,"Finished!") + // expect the progressBar to be removed + await expect(page.getByRole('progressbar')).toHaveCount(0) + // expect the heading to be visible + // this will have to change later to a more specific test + await page.getByRole('heading', { name: 'MobiFlight 2025' }).isVisible() +}) \ No newline at end of file diff --git a/frontend/tests/data/configlist.testdata.json b/frontend/tests/data/configlist.testdata.json new file mode 100644 index 000000000..992103621 --- /dev/null +++ b/frontend/tests/data/configlist.testdata.json @@ -0,0 +1,452 @@ +[ + { + "Active": true, + "ConfigRefs": [], + "Device": { + "DisplayLedAddress": "7-Segment", + "DisplayLedBrightnessReference": "", + "DisplayLedConnector": 1, + "DisplayLedDecimalPoints": [], + "DisplayLedDigits": [], + "DisplayLedModuleSize": 8, + "DisplayLedPadding": false, + "DisplayLedPaddingChar": "0", + "DisplayLedReverseDigits": false, + "Name": "7-Segment", + "Type": "MobiFlight.OutputConfig.LedModule" + }, + "DeviceType": "Display Module", + "GUID": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "7-Segment", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "UUID": "b5a95362-411e-422d-9e6e-598b8b0bdcdf", + "Value": "(A:COM ACTIVE FREQUENCY:1,KHz)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "Device": { + "Acceleration": 800, + "Address": "Stepper 1", + "CompassMode": false, + "InputRev": 1000, + "Name": "Stepper 1", + "OutputRev": 2040, + "Speed": 467, + "TestValue": 500, + "Type": "MobiFlight.OutputConfig.Stepper" + }, + "DeviceType": "Stepper", + "GUID": "c6e321b0-d6e4-42db-be98-0b7867db58eb", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "Stepper 2", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "UUID": "02d438f0-b1cd-4920-8884-e3fc4998e49c", + "Value": "(A:PROP RPM:1,Rpm)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "Device": { + "Address": "Servo 1", + "Max": "255", + "MaxRotationPercent": "100", + "Min": "0", + "Name": "Servo 1", + "Type": "MobiFlight.OutputConfig.Servo" + }, + "DeviceType": "Servo", + "GUID": "4eb61c0f-a3c1-4b86-b0ff-d06e6ddc0363", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "Servo", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "UUID": "7de0a675-da06-4aef-8f02-8f93de402273", + "Value": "(A:FUEL SELECTED QUANTITY PERCENT,Percent Over 100)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "Device": { + "Address": "LCD 1", + "Lines": [ + "1234567890123456", + "******Test******", + "1234567890123456", + "******Test******" + ], + "Name": "LCD 1", + "Type": "MobiFlight.OutputConfig.LcdDisplay" + }, + "DeviceType": "LcdDisplay", + "GUID": "61ae4145-c7d5-41ef-b2a9-c993f8986be1", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "LCD", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "UUID": "dbf414f2-5a45-4b55-9983-7703862edaf0", + "Value": "(A:COM ACTIVE FREQ NAME:1,String)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [ + { + "Active": true, + "Placeholder": "#", + "Ref": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "TestValue": "1" + }, + { + "Active": true, + "Placeholder": "!", + "Ref": "c6e321b0-d6e4-42db-be98-0b7867db58eb", + "TestValue": "1" + } + ], + "Device": { + "DisplayPin": "LED 2", + "DisplayPinBrightness": 255, + "DisplayPinPWM": false, + "Name": "LED 2", + "Type": "MobiFlight.OutputConfig.Output" + }, + "DeviceType": "Output", + "GUID": "f79f75dd-0d45-4c91-870d-599cfc75ede1", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "LED 1", + "Preconditions": [ + { + "PreconditionActive": true, + "PreconditionLabel": "Config: <Ref:5b09dc42-d5cd-4284-9c03-355e579763f2> < 1 <Logic:and>", + "PreconditionLogic": "and", + "PreconditionOperand": "<", + "PreconditionPin": null, + "PreconditionRef": "5b09dc42-d5cd-4284-9c03-355e579763f2", + "PreconditionSerial": null, + "PreconditionType": "config", + "PreconditionValue": "1" + } + ], + "Source": { + "SimConnectValue": { + "UUID": "0cf15a1c-712f-4bf2-bd16-eb4e6b103e20", + "Value": "(A:BRAKE PARKING INDICATOR,Bool)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "Device": { + "Address": "ShiftRegister 1", + "Name": "ShiftRegister 1", + "Pin": "Output 0", + "Type": "MobiFlight.OutputConfig.ShiftRegister" + }, + "DeviceType": "ShiftRegister", + "GUID": "54e5ac64-e314-48de-8ebb-6d8ccc4689e4", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "ShiftRegister", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "UUID": "b0abd7a4-65cb-4109-b85b-6df6431ebcd6", + "Value": "(A:LIGHT LANDING,Bool)", + "VarType": 2 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceType": "", + "GUID": "8f74c497-c8e9-42c9-8c1d-69d5db217037", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "", + "Name": "New Output Config", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "VarType": 0 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceType": "", + "GUID": "e0262d3b-c4f9-44e1-b468-1306bd48fbb3", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "", + "Name": "New Output Config", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "VarType": 0 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceType": "", + "GUID": "9a6267d0-5f40-457c-b724-ccc835510abf", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "", + "Name": "New Output Config", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "VarType": 0 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceType": "", + "GUID": "81c4908e-429d-48c8-83f4-4e5f577be1f2", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "", + "Name": "New Output Config", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "VarType": 0 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceType": "", + "GUID": "de57dc80-be81-4049-95d0-2349109d58c1", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "", + "Name": "New Output Config", + "Preconditions": [], + "Source": { + "SimConnectValue": { + "VarType": 0 + }, + "SourceType": "SIMCONNECT", + "Type": "SimConnectSource" + }, + "Status": {}, + "TestValue": { + "Float64": 1, + "String": null, + "type": 1 + }, + "Type": "MobiFlight.OutputConfigItem" + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceName": "Button 4", + "DeviceType": "Button", + "GUID": "49079f13-b7cc-442d-a64b-70edbf7a1334", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "WINWING Orion Joystick Base 2 + JGRIP-F16 / JS-3145ad90-c6f2-11ef-8001-444553540000", + "Name": "Button", + "Preconditions": [], + "Status": {}, + "Type": "MobiFlight.InputConfigItem", + "button": { + "HoldDelay": 350, + "LongReleaseDelay": 350, + "RepeatDelay": 0, + "onHold": null, + "onLongRelease": null, + "onPress": { + "Type": "MobiFlight.InputConfig.MSFS2020CustomInputAction" + }, + "onRelease": null + } + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceName": "Encoder 1", + "DeviceType": "Encoder", + "GUID": "68285201-23d5-40ea-b81f-dbd3ffe7328d", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "Encoder", + "Preconditions": [], + "Status": {}, + "Type": "MobiFlight.InputConfigItem", + "encoder": { + "onLeft": { + "Type": "MobiFlight.InputConfig.MSFS2020CustomInputAction" + }, + "onLeftFast": null, + "onRight": { + "Type": "MobiFlight.InputConfig.MSFS2020CustomInputAction" + }, + "onRightFast": null + } + }, + { + "Active": true, + "ConfigRefs": [], + "DeviceName": "POT 1", + "DeviceType": "AnalogInput", + "GUID": "be1ffab3-4252-4001-a090-4b98c7cd126a", + "Modifiers": { + "Items": [] + }, + "ModuleSerial": "ProtoBoard-v2/ SN-5FC-1CF", + "Name": "AnalogInput", + "Preconditions": [], + "Status": {}, + "Type": "MobiFlight.InputConfigItem", + "analog": { + "onChange": { + "Type": "MobiFlight.InputConfig.MSFS2020CustomInputAction" + } + } + } +] \ No newline at end of file diff --git a/frontend/tests/fixtures.ts b/frontend/tests/fixtures.ts new file mode 100644 index 000000000..5de4f2cfe --- /dev/null +++ b/frontend/tests/fixtures.ts @@ -0,0 +1,25 @@ +/* eslint-disable react-hooks/rules-of-hooks */ +import { test as base } from '@playwright/test'; +import { MobiFlightPage } from './fixtures/MobiFlightPage'; +import { StartupPage } from './fixtures/StartupPage'; +import { ConfigListPage } from './fixtures/ConfigListPage'; + +// Declare the types of your fixtures. +type MFFixtures = { + mobiFlightPage: MobiFlightPage, + startupPage: StartupPage, + configListPage: ConfigListPage +}; + +export const test = base.extend<MFFixtures>({ + startupPage: async ({ page }, use) => { + const settingsPage = new StartupPage(new MobiFlightPage(page)) + await use(settingsPage) + }, + configListPage: async ({ page }, use) => { + const configListPage = new ConfigListPage(new MobiFlightPage(page)) + await use(configListPage) + }, +}); + +export { expect } from '@playwright/test' \ No newline at end of file diff --git a/frontend/tests/fixtures/ConfigListPage.ts b/frontend/tests/fixtures/ConfigListPage.ts new file mode 100644 index 000000000..da3cbcea0 --- /dev/null +++ b/frontend/tests/fixtures/ConfigListPage.ts @@ -0,0 +1,78 @@ +import { + AppMessage, + ConfigLoadedEvent, + ConfigValueUpdate, + IConfigItem, +} from "@/types" +import { MobiFlightPage } from "./MobiFlightPage" +import testdata from "../data/configlist.testdata.json" with { type: "json" } +import { CommandUpdateConfigItem } from "@/types/commands" +import { ConfigItemStatusType, IDictionary } from "@/types/config" + +export class ConfigListPage { + constructor(public readonly mobiFlightPage: MobiFlightPage) {} + + async gotoPage() { + await this.mobiFlightPage.page.goto("http://localhost:5173/config", { + waitUntil: "networkidle", + }) + } + + async initWithEmptyData() { + const message: AppMessage = { + key: "ConfigFile", + payload: { + FileName: "empty-config.json", + ConfigItems: [], + } as ConfigLoadedEvent, + } + await this.mobiFlightPage.publishMessage(message) + } + + async initWithTestData() { + const message: AppMessage = { + key: "ConfigFile", + payload: { + FileName: "empty-config.json", + ConfigItems: testdata, + } as ConfigLoadedEvent, + } + await this.mobiFlightPage.publishMessage(message) + } + + async setupConfigItemEditConfirmationResponse() { + await this.mobiFlightPage.subscribeToCommand( + "CommandUpdateConfigItem", + async (message) => { + const item = (message as CommandUpdateConfigItem).payload.item as IConfigItem + const response = { + key: "ConfigValueUpdate", + payload: { + ConfigItems: [item] + } as ConfigValueUpdate, + }; + + (window as Window).postMessage(response, "*") + }, + ) + } + + async updateConfigItemStatus(itemIndex: number, Status: IDictionary<string, ConfigItemStatusType>) { + const item = testdata[itemIndex] + const message: AppMessage = { + key: "ConfigValueUpdate", + payload: { + ConfigItems: [ + { + ...item, + Status: { + ...Status, + [Status.Key]: Status.Value + } + } + ], + } as ConfigValueUpdate, + } + await this.mobiFlightPage.publishMessage(message) + } +} diff --git a/frontend/tests/fixtures/MobiFlightPage.ts b/frontend/tests/fixtures/MobiFlightPage.ts new file mode 100644 index 000000000..bc5367732 --- /dev/null +++ b/frontend/tests/fixtures/MobiFlightPage.ts @@ -0,0 +1,71 @@ +import { CommandMessageKey, CommandMessage } from "@/types/commands" +import { AppMessage } from "@/types/messages" +import type { Page } from "@playwright/test" + +export class MobiFlightPage { + constructor(public readonly page: Page) { + this.page.addInitScript(() => { + if (!window.chrome?.webview?.postMessage) { + console.log( + "Setting up window.chrome.webview.postMessage for playwright testing.", + ) + window.chrome = { + webview: { + postMessage(message: object) { + window.postMessage(message, "*") + }, + addEventListener( + message: string, + callback: (event: Event) => void, + ) { + window.addEventListener(message, callback) + }, + removeEventListener( + message: string, + callback: (event: Event) => void, + ) { + window.removeEventListener(message, callback) + }, + }, + } + } + }) + } + + async publishCommand(message: CommandMessage) { + const stringifiedObject = JSON.stringify(message) + await this.page.addScriptTag({ + content: `window.postMessage(${stringifiedObject}, "*")`, + }) + } + + async publishMessage(message: AppMessage) { + const stringifiedObject = JSON.stringify(message) + await this.page.addScriptTag({ + content: `window.postMessage(${stringifiedObject}, "*")`, + }) + } + + async subscribeToCommand( + key: CommandMessageKey, + callback: (message: CommandMessage) => Promise<void>, + ) { + await this.page.evaluate( + ({ key, callbackStr }) => { + // Deserialize the function from string + const callback = new Function("return " + callbackStr)() + + window.addEventListener("message", async (event: Event) => { + const appMessage = (event as MessageEvent).data as CommandMessage + if (appMessage.key === key) { + await callback(appMessage) // Call the passed lambda function + } + }) + }, + { + key, + callbackStr: callback.toString(), // Serialize the function to a string + }, + ) + } +} diff --git a/frontend/tests/fixtures/StartupPage.ts b/frontend/tests/fixtures/StartupPage.ts new file mode 100644 index 000000000..b10491423 --- /dev/null +++ b/frontend/tests/fixtures/StartupPage.ts @@ -0,0 +1,22 @@ +import { StatusBarUpdate } from "@/types"; +import { MobiFlightPage } from "./MobiFlightPage"; +import * as Types from "@/types"; + +export class StartupPage { + constructor(public readonly mobiFlightPage: MobiFlightPage) {} + + async gotoStartupPage() { + await this.mobiFlightPage.page.goto("http://localhost:5173", { waitUntil: "networkidle" }); + } + + async setStatusBarUpdate(value: number, text: string) { + const message: Types.AppMessage = { + key: "StatusBarUpdate", + payload: { + Value: value, + Text: text, + } as StatusBarUpdate, + }; + await this.mobiFlightPage.publishMessage(message); + } +} diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 000000000..573fd41c8 --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ] + } + }, + "include": ["src", "tests/fixtures" ] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 000000000..f5dfc0d1c --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,14 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*", "./tests/*"] + }, + "resolveJsonModule": true, + } +} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 000000000..db0becc8b --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 000000000..786be0a73 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,24 @@ +import path from "path" +import { defineConfig } from "vite" +import react from "@vitejs/plugin-react" + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + react({ + // Add this line + include: "**/*.tsx", + }), + ], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + lodash: "lodash-es", + }, + }, + server: { + watch: { + usePolling: true, + }, + }, +})

    fC7xr$c~KO)__A^v7q0 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