From 16fe4a653ff461d6fc814ff1425057ff2103aaaf Mon Sep 17 00:00:00 2001 From: Madari Developers Date: Thu, 2 Jan 2025 18:45:55 +0000 Subject: [PATCH] Project import generated by Copybara. GitOrigin-RevId: 829626e92d5dba6a4586d1e7c4bd1615ec396e88 --- .github/workflows/build-deploy.yaml | 68 + .gitignore | 49 + .gitlab-ci.yml | 22 + .metadata | 30 + Makefile | 19 + README.md | 2 + analysis_options.yaml | 28 + android/.gitignore | 13 + android/app/build.gradle | 63 + android/app/proguard-rules.pro | 8 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 66 + .../media/madari/client/MainActivity.kt | 38 + .../res/drawable-v21/launch_background.xml | 11 + .../main/res/drawable/launch_background.xml | 11 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 3 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3882 bytes .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 2810 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2274 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 1539 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5750 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 4389 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 10191 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 8140 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 15670 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 11740 bytes .../app/src/main/res/values-night/styles.xml | 9 + android/app/src/main/res/values/styles.xml | 9 + .../main/res/xml/network_security_config.xml | 13 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 18 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 25 + assets/adblock_list.txt | 2948 ++++ assets/data/languages.json | 187 + assets/drift_worker.dart.js | 13358 ++++++++++++++++ assets/icon/icon.png | Bin 0 -> 25708 bytes assets/icon/icon_mini.jpg | Bin 0 -> 44247 bytes assets/icon/icon_mini.png | Bin 0 -> 246484 bytes assets/icon/icon_new.jpg | Bin 0 -> 38423 bytes assets/mermaid.js | 2314 +++ copy.bara.sky | 13 + devtools_options.yaml | 3 + .../app_database/drift_schema_v1.json | 1 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 2 + ios/Flutter/Release.xcconfig | 2 + ios/Podfile | 62 + ios/Podfile.lock | 351 + ios/Runner.xcodeproj/project.pbxproj | 757 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 1 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 136326 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 487 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1192 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2146 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 789 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2038 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 3818 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1192 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 3271 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 6134 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 1628 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 4701 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 1956 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 5663 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 6134 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 11598 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 2810 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 8140 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3061 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 8879 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 10174 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 86 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/database/app_database.dart | 28 + lib/database/database_provider.dart | 13 + .../quries/watch_history_queries.dart | 38 + lib/database/tables/watch_history_table.dart | 15 + lib/engine/connection.dart | 34 + lib/engine/connection_type.dart | 67 + lib/engine/engine.dart | 49 + lib/engine/library.dart | 139 + lib/extension/image_to_bytes.dart | 27 + lib/features/chat/container/chat_action.dart | 155 + lib/features/chat/container/chat_bubble.dart | 158 + .../chat/container/chat_container.dart | 150 + .../chat/container/chat_empty_state.dart | 207 + lib/features/chat/container/chat_history.dart | 157 + .../chat/container/chat_input_area.dart | 328 + .../container/add_collection_item.dart | 217 + .../container/collection_item_renderer.dart | 25 + .../container/collection_list_item_list.dart | 237 + .../collection_markdown_renderer.dart | 155 + .../container/collection_search_delegate.dart | 149 + .../container/create_new_collection.dart | 147 + lib/features/collection/service/service.dart | 116 + .../types/collection_item_model.dart | 43 + .../collection/widgets/collection_card.dart | 313 + .../connection/containers/auto_import.dart | 172 + .../containers/configure_neo_connection.dart | 141 + .../configure_stremio_connection.dart | 306 + .../containers/connection_manager.dart | 270 + .../containers/create_new_connection.dart | 208 + .../containers/folder_selector.dart | 170 + .../show_handle_connection_type.dart | 94 + .../services/base_connection_service.dart | 37 + .../connection/services/stremio_service.dart | 266 + lib/features/connection/types/stremio.dart | 1 + .../service/base_connection_service.dart | 241 + .../service/stremio_connection_service.dart | 290 + lib/features/connections/types/base/base.dart | 34 + .../types/stremio/stremio_base.types.dart | 745 + .../widget/base/render_library_list.dart | 328 + .../widget/base/render_stream_list.dart | 251 + .../widget/stremio/stremio_card.dart | 102 + .../widget/stremio/stremio_create.dart | 12 + .../widget/stremio/stremio_item_viewer.dart | 512 + .../widget/stremio/stremio_list_item.dart | 17 + .../stremio/stremio_season_selector.dart | 352 + .../doc_viewer/container/doc_viewer.dart | 125 + lib/features/doc_viewer/container/iframe.dart | 130 + .../container/pdf/magic_bottom_sheet.dart | 98 + .../pdf/magic_page_selector_bottom_sheet.dart | 134 + .../container/pdf/magic_show_markdown.dart | 481 + .../container/pdf/markers_view.dart | 63 + .../container/pdf/outline_view.dart | 54 + .../container/pdf/password_dialog.dart | 34 + .../doc_viewer/container/pdf/search_view.dart | 376 + .../container/pdf/thumbnails_view.dart | 55 + .../doc_viewer/container/pdf_viewer.dart | 389 + .../doc_viewer/container/photo_viewer.dart | 35 + .../doc_viewer/container/video_viewer.dart | 472 + .../video_viewer/desktop_video_player.dart | 192 + .../video_viewer/mobile_video_player.dart | 164 + .../container/video_viewer/torrent_stat.dart | 527 + lib/features/doc_viewer/types/doc_source.dart | 365 + lib/features/doc_viewer/utils/get_types.dart | 50 + lib/features/downloads/container/index.dart | 324 + lib/features/downloads/service/service.dart | 72 + .../files/container/file.container.dart | 169 + .../container/create_connection.dart | 392 + .../container/getting_started.dart | 245 + lib/features/home/screen/home_items.dart | 318 + .../library/component/library_search.dart | 272 + .../library/component/libray_card.dart | 58 + .../library/containers/connection_list.dart | 180 + .../library/screen/create_new_library.dart | 293 + .../library/screen/library_screen.dart | 94 + lib/features/library/types/library_item.dart | 1 + .../library_item/container/item_list.dart | 528 + .../library_item/container/item_viewer.dart | 167 + .../container/stremio_item_card.dart | 110 + .../container/stremio_item_list.dart | 130 + .../stremio_item_season_selector.dart | 201 + .../container/stremio_item_viewer.dart | 467 + .../container/stremio_stream_selector.dart | 330 + .../playlist/service/playlist_service.dart | 146 + lib/features/playlist/types/playlist.dart | 41 + .../playlist/types/playlist_item.dart | 49 + .../navigation/account_navigation.dart | 52 + .../settings/screen/account_screen.dart | 89 + .../settings/screen/connection_screen.dart | 111 + .../screen/email_settings_screen.dart | 57 + lib/features/settings/screen/help_screen.dart | 53 + .../settings/screen/notification_screen.dart | 57 + .../settings/screen/payment_screen.dart | 48 + .../screen/playback_settings_screen.dart | 197 + .../settings/screen/profile_button.dart | 32 + .../settings/screen/profile_setting.dart | 223 + .../settings/screen/screen_proxy_setting.dart | 179 + .../settings/screen/security_screen.dart | 250 + lib/features/settings/types/connection.dart | 38 + lib/features/settings/types/user_profile.dart | 30 + .../service/base_watch_history.dart | 46 + .../service/zeee_watch_history.dart | 253 + lib/main.dart | 157 + lib/main_web.dart | 83 + lib/pages/category.page.dart | 29 + lib/pages/chat.container.dart | 251 + lib/pages/collection_tab.page.dart | 334 + lib/pages/download.page.dart | 374 + lib/pages/getting_started.page.dart | 19 + lib/pages/home.page.dart | 232 + lib/pages/home_tab.page.dart | 222 + lib/pages/library_view.page.dart | 12 + lib/pages/more_tab.page.dart | 128 + lib/pages/search_tab.page.dart | 242 + lib/pages/sign_in.page.dart | 335 + lib/pages/sign_up.page.dart | 374 + lib/pages/stremio_item.page.dart | 118 + lib/routes.dart | 153 + lib/utils/grid.dart | 31 + lib/utils/load_language.dart | 52 + lib/utils/ocr_file.dart | 33 + lib/utils/sse_stream.dart | 7 + lib/utils/sse_stream_stub.dart | 1 + lib/utils/sse_stream_web.dart | 8 + lib/utils/stream_base.dart | 1 + lib/widgets/base64_image.dart | 69 + lib/widgets/bottom_sheet.dart | 78 + linux/.gitignore | 1 + linux/CMakeLists.txt | 145 + linux/flutter/CMakeLists.txt | 88 + linux/flutter/generated_plugin_registrant.cc | 39 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 32 + linux/main.cc | 6 + linux/my_application.cc | 124 + linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 2 + macos/Flutter/Flutter-Release.xcconfig | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 42 + macos/Podfile | 43 + macos/Podfile.lock | 176 + macos/Runner.xcodeproj/project.pbxproj | 803 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 136326 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 6239 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 365 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 18362 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 852 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 54352 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2235 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 + macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 14 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 12 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 1873 +++ pubspec.yaml | 104 + test/stremio_connection_service_test.dart | 42 + test/widget_test.dart | 30 + test_web/.editorconfig | 10 + test_web/.gitattributes | 4 + test_web/.gitignore | 14 + test_web/.yarn/releases/yarn-4.5.3.cjs | Bin 0 -> 2764795 bytes test_web/.yarnrc.yml | 2 + test_web/README.md | 1 + test_web/code.js | 15 + test_web/package.json | 8 + test_web/yarn.lock | 545 + web/_headers | 3 + web/favicon.png | Bin 0 -> 3383 bytes web/icons/Icon-192.png | Bin 0 -> 23887 bytes web/icons/Icon-512.png | Bin 0 -> 82838 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 23887 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 82838 bytes web/index.html | 120 + web/manifest.json | 35 + web/sqlite3.wasm | Bin 0 -> 711226 bytes windows/.gitignore | 17 + windows/CMakeLists.txt | 108 + windows/flutter/CMakeLists.txt | 109 + .../flutter/generated_plugin_registrant.cc | 44 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 36 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 + windows/runner/flutter_window.cpp | 71 + windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 + windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 1561 bytes windows/runner/runner.exe.manifest | 14 + windows/runner/utils.cpp | 65 + windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 + windows/runner/win32_window.h | 102 + 297 files changed, 47991 insertions(+) create mode 100644 .github/workflows/build-deploy.yaml create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .metadata create mode 100644 Makefile create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/media/madari/client/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res/xml/network_security_config.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/adblock_list.txt create mode 100644 assets/data/languages.json create mode 100644 assets/drift_worker.dart.js create mode 100644 assets/icon/icon.png create mode 100644 assets/icon/icon_mini.jpg create mode 100644 assets/icon/icon_mini.png create mode 100644 assets/icon/icon_new.jpg create mode 100644 assets/mermaid.js create mode 100644 copy.bara.sky create mode 100644 devtools_options.yaml create mode 100644 drift_schemas/app_database/drift_schema_v1.json create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Podfile create mode 100644 ios/Podfile.lock create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/database/app_database.dart create mode 100644 lib/database/database_provider.dart create mode 100644 lib/database/quries/watch_history_queries.dart create mode 100644 lib/database/tables/watch_history_table.dart create mode 100644 lib/engine/connection.dart create mode 100644 lib/engine/connection_type.dart create mode 100644 lib/engine/engine.dart create mode 100644 lib/engine/library.dart create mode 100644 lib/extension/image_to_bytes.dart create mode 100644 lib/features/chat/container/chat_action.dart create mode 100644 lib/features/chat/container/chat_bubble.dart create mode 100644 lib/features/chat/container/chat_container.dart create mode 100644 lib/features/chat/container/chat_empty_state.dart create mode 100644 lib/features/chat/container/chat_history.dart create mode 100644 lib/features/chat/container/chat_input_area.dart create mode 100644 lib/features/collection/container/add_collection_item.dart create mode 100644 lib/features/collection/container/collection_item_renderer.dart create mode 100644 lib/features/collection/container/collection_list_item_list.dart create mode 100644 lib/features/collection/container/collection_markdown_renderer.dart create mode 100644 lib/features/collection/container/collection_search_delegate.dart create mode 100644 lib/features/collection/container/create_new_collection.dart create mode 100644 lib/features/collection/service/service.dart create mode 100644 lib/features/collection/types/collection_item_model.dart create mode 100644 lib/features/collection/widgets/collection_card.dart create mode 100644 lib/features/connection/containers/auto_import.dart create mode 100644 lib/features/connection/containers/configure_neo_connection.dart create mode 100644 lib/features/connection/containers/configure_stremio_connection.dart create mode 100644 lib/features/connection/containers/connection_manager.dart create mode 100644 lib/features/connection/containers/create_new_connection.dart create mode 100644 lib/features/connection/containers/folder_selector.dart create mode 100644 lib/features/connection/containers/show_handle_connection_type.dart create mode 100644 lib/features/connection/services/base_connection_service.dart create mode 100644 lib/features/connection/services/stremio_service.dart create mode 100644 lib/features/connection/types/stremio.dart create mode 100644 lib/features/connections/service/base_connection_service.dart create mode 100644 lib/features/connections/service/stremio_connection_service.dart create mode 100644 lib/features/connections/types/base/base.dart create mode 100644 lib/features/connections/types/stremio/stremio_base.types.dart create mode 100644 lib/features/connections/widget/base/render_library_list.dart create mode 100644 lib/features/connections/widget/base/render_stream_list.dart create mode 100644 lib/features/connections/widget/stremio/stremio_card.dart create mode 100644 lib/features/connections/widget/stremio/stremio_create.dart create mode 100644 lib/features/connections/widget/stremio/stremio_item_viewer.dart create mode 100644 lib/features/connections/widget/stremio/stremio_list_item.dart create mode 100644 lib/features/connections/widget/stremio/stremio_season_selector.dart create mode 100644 lib/features/doc_viewer/container/doc_viewer.dart create mode 100644 lib/features/doc_viewer/container/iframe.dart create mode 100644 lib/features/doc_viewer/container/pdf/magic_bottom_sheet.dart create mode 100644 lib/features/doc_viewer/container/pdf/magic_page_selector_bottom_sheet.dart create mode 100644 lib/features/doc_viewer/container/pdf/magic_show_markdown.dart create mode 100644 lib/features/doc_viewer/container/pdf/markers_view.dart create mode 100644 lib/features/doc_viewer/container/pdf/outline_view.dart create mode 100644 lib/features/doc_viewer/container/pdf/password_dialog.dart create mode 100644 lib/features/doc_viewer/container/pdf/search_view.dart create mode 100644 lib/features/doc_viewer/container/pdf/thumbnails_view.dart create mode 100644 lib/features/doc_viewer/container/pdf_viewer.dart create mode 100644 lib/features/doc_viewer/container/photo_viewer.dart create mode 100644 lib/features/doc_viewer/container/video_viewer.dart create mode 100644 lib/features/doc_viewer/container/video_viewer/desktop_video_player.dart create mode 100644 lib/features/doc_viewer/container/video_viewer/mobile_video_player.dart create mode 100644 lib/features/doc_viewer/container/video_viewer/torrent_stat.dart create mode 100644 lib/features/doc_viewer/types/doc_source.dart create mode 100644 lib/features/doc_viewer/utils/get_types.dart create mode 100644 lib/features/downloads/container/index.dart create mode 100644 lib/features/downloads/service/service.dart create mode 100644 lib/features/files/container/file.container.dart create mode 100644 lib/features/getting_started/container/create_connection.dart create mode 100644 lib/features/getting_started/container/getting_started.dart create mode 100644 lib/features/home/screen/home_items.dart create mode 100644 lib/features/library/component/library_search.dart create mode 100644 lib/features/library/component/libray_card.dart create mode 100644 lib/features/library/containers/connection_list.dart create mode 100644 lib/features/library/screen/create_new_library.dart create mode 100644 lib/features/library/screen/library_screen.dart create mode 100644 lib/features/library/types/library_item.dart create mode 100644 lib/features/library_item/container/item_list.dart create mode 100644 lib/features/library_item/container/item_viewer.dart create mode 100644 lib/features/library_item/container/stremio_item_card.dart create mode 100644 lib/features/library_item/container/stremio_item_list.dart create mode 100644 lib/features/library_item/container/stremio_item_season_selector.dart create mode 100644 lib/features/library_item/container/stremio_item_viewer.dart create mode 100644 lib/features/library_item/container/stremio_stream_selector.dart create mode 100644 lib/features/playlist/service/playlist_service.dart create mode 100644 lib/features/playlist/types/playlist.dart create mode 100644 lib/features/playlist/types/playlist_item.dart create mode 100644 lib/features/settings/navigation/account_navigation.dart create mode 100644 lib/features/settings/screen/account_screen.dart create mode 100644 lib/features/settings/screen/connection_screen.dart create mode 100644 lib/features/settings/screen/email_settings_screen.dart create mode 100644 lib/features/settings/screen/help_screen.dart create mode 100644 lib/features/settings/screen/notification_screen.dart create mode 100644 lib/features/settings/screen/payment_screen.dart create mode 100644 lib/features/settings/screen/playback_settings_screen.dart create mode 100644 lib/features/settings/screen/profile_button.dart create mode 100644 lib/features/settings/screen/profile_setting.dart create mode 100644 lib/features/settings/screen/screen_proxy_setting.dart create mode 100644 lib/features/settings/screen/security_screen.dart create mode 100644 lib/features/settings/types/connection.dart create mode 100644 lib/features/settings/types/user_profile.dart create mode 100644 lib/features/watch_history/service/base_watch_history.dart create mode 100644 lib/features/watch_history/service/zeee_watch_history.dart create mode 100644 lib/main.dart create mode 100644 lib/main_web.dart create mode 100644 lib/pages/category.page.dart create mode 100644 lib/pages/chat.container.dart create mode 100644 lib/pages/collection_tab.page.dart create mode 100644 lib/pages/download.page.dart create mode 100644 lib/pages/getting_started.page.dart create mode 100644 lib/pages/home.page.dart create mode 100644 lib/pages/home_tab.page.dart create mode 100644 lib/pages/library_view.page.dart create mode 100644 lib/pages/more_tab.page.dart create mode 100644 lib/pages/search_tab.page.dart create mode 100644 lib/pages/sign_in.page.dart create mode 100644 lib/pages/sign_up.page.dart create mode 100644 lib/pages/stremio_item.page.dart create mode 100644 lib/routes.dart create mode 100644 lib/utils/grid.dart create mode 100644 lib/utils/load_language.dart create mode 100644 lib/utils/ocr_file.dart create mode 100644 lib/utils/sse_stream.dart create mode 100644 lib/utils/sse_stream_stub.dart create mode 100644 lib/utils/sse_stream_web.dart create mode 100644 lib/utils/stream_base.dart create mode 100644 lib/widgets/base64_image.dart create mode 100644 lib/widgets/bottom_sheet.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Podfile create mode 100644 macos/Podfile.lock create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/stremio_connection_service_test.dart create mode 100644 test/widget_test.dart create mode 100644 test_web/.editorconfig create mode 100644 test_web/.gitattributes create mode 100644 test_web/.gitignore create mode 100755 test_web/.yarn/releases/yarn-4.5.3.cjs create mode 100644 test_web/.yarnrc.yml create mode 100644 test_web/README.md create mode 100644 test_web/code.js create mode 100644 test_web/package.json create mode 100644 test_web/yarn.lock create mode 100644 web/_headers create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 web/sqlite3.wasm create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.github/workflows/build-deploy.yaml b/.github/workflows/build-deploy.yaml new file mode 100644 index 0000000..31dbab6 --- /dev/null +++ b/.github/workflows/build-deploy.yaml @@ -0,0 +1,68 @@ +name: Build and Deploy + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build-windows: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.24.3' + channel: 'stable' + + - name: Install dependencies + run: flutter pub get + + - name: Touch .env + run: touch .env + + - run: make build + + - name: Build Windows + run: make build_windows + + - name: Upload Windows artifact + uses: actions/upload-artifact@v3 + with: + name: windows-build + path: build/windows/x64/runner/Release/ + + build-web-deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.24.3' + channel: 'stable' + + - name: Install dependencies + run: flutter pub get + + - name: Touch .env + run: touch .env + + - run: make build + + - name: Build Web + run: make build_web + + - name: Deploy to Cloudflare Pages + uses: cloudflare/pages-action@v1 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + projectName: madari-dev + directory: build/web diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3565a7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +*.g.dart +*.gen.dart + +.env +node_modules diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..fe35f8b --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,22 @@ +stages: + - sync + +sync_to_github: + stage: sync + image: + name: shreyasbhat0/copybara + entrypoint: + - "" + script: + - apt update && apt install openssh-client -y + - mkdir ~/.ssh + - cp $SSH_KEY ~/.ssh/id_ed25519 + - chmod 600 ~/.ssh/id_ed25519 + - ssh-keyscan github.com >> ~/.ssh/known_hosts + - ssh-keyscan gitlab.anthaathi.net >> ~/.ssh/known_hosts + - git config core.sshCommand "ssh -i $SSH_KEY" + - git config --global user.name "Madari Developers" + - git config --global user.email "developers@madari.media" + - copybara copy.bara.sky --force + only: + - main diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..8dda3be --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + - platform: web + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3ee368b --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ + +.PHONY: build schema build_web build_mac +build: + dart run build_runner build --delete-conflicting-outputs + +schema: + dart run drift_dev schema dump lib/database/database.dart drift_schemas/drift_schema_v1.json + +build_web: + flutter build web --target lib/main_web.dart --release --pwa-strategy none --wasm + +build_mac: + flutter build macos --target lib/main.dart --release --no-tree-shake-icons + +build_android: + flutter build apk --release --no-tree-shake-icons + +build_windows: + flutter build windows --release --no-tree-shake-icons diff --git a/README.md b/README.md new file mode 100644 index 0000000..4f3808e --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Madari + diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..55afd91 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..f4c874b --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,63 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + namespace = "media.madari.client" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + sourceSets { + main.jniLibs.srcDirs = ['src/main/jniLibs'] + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8 + } + + defaultConfig { + applicationId = "media.madari.client" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + signingConfigs { + release { + keyAlias = keystoreProperties['keyAlias'] + keyPassword = keystoreProperties['keyPassword'] + storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword = keystoreProperties['storePassword'] + } + } + + buildTypes { + release { + signingConfig = signingConfigs.release + } + } +} + +dependencies { + implementation('com.google.mlkit:text-recognition-devanagari:16.0.1') + implementation('com.google.mlkit:text-recognition-chinese:16.0.1') + implementation('com.google.mlkit:text-recognition-korean:16.0.1') +} + +flutter { + source = "../.." +} diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..f8aa903 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,8 @@ +-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions$Builder +-dontwarn com.google.mlkit.vision.text.chinese.ChineseTextRecognizerOptions +-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions$Builder +-dontwarn com.google.mlkit.vision.text.devanagari.DevanagariTextRecognizerOptions +-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions$Builder +-dontwarn com.google.mlkit.vision.text.japanese.JapaneseTextRecognizerOptions +-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions$Builder +-dontwarn com.google.mlkit.vision.text.korean.KoreanTextRecognizerOptions diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d25f143 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/media/madari/client/MainActivity.kt b/android/app/src/main/kotlin/media/madari/client/MainActivity.kt new file mode 100644 index 0000000..159d78f --- /dev/null +++ b/android/app/src/main/kotlin/media/madari/client/MainActivity.kt @@ -0,0 +1,38 @@ +package media.madari.client + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import io.flutter.embedding.android.FlutterActivity +import io.flutter.plugin.common.MethodChannel + +class MainActivity : FlutterActivity() { + private val CHANNEL = "media.madari.client/file" + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + handleIntent(intent) + } + + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + handleIntent(intent) + } + + private fun handleIntent(intent: Intent?) { + if (intent?.action == Intent.ACTION_VIEW) { + val data: Uri? = intent.data + data?.let { + val fileData = mapOf( + "path" to it.path, + "uri" to it.toString(), + "mimeType" to intent.type + ) + + flutterEngine?.dartExecutor?.binaryMessenger?.let { messenger -> + MethodChannel(messenger, CHANNEL).invokeMethod("openFile", fileData) + } + } + } + } +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..3f8f43a --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..4088ce7 --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..55aebf9 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,3 @@ + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c501124c2d61eb56af897b7d08b652ee4b6bb8c5 GIT binary patch literal 3882 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0595fc77d8439a0dbf339caa3b567d456daa9785 GIT binary patch literal 2810 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 M07*qoM6N<$g7&IDWB>pF literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fd003dce02246598cbf15867a96f449c921a4756 GIT binary patch literal 2274 zcmV<82p#u{P)9mnr;hIud|!^;I!P(fHwsvxFK6^Vk04b83?b)~*m6j@nojYOknWm`1XT_30w zL|0tRrpCsoRlDMY)ROqXy5%8ISPBZdE{_46VVs$J?@YgQ&p2i69}Y4#`$rGM&SsO}@CVsMgNK<(M2qtX4@|S^@mg#{(P81d_^0&k` zl^#RXc(v-S0s*P|Kv9s7PncFK%foUk%Ss~P%-!9Mr%%VP&VGwP4(j^{4|?z1n;IPK zL}6rk38EJ9{(Yh}*~LFQX(YQ_9+qXemo|b_HJ|Svlb%jd9uavAFQSBHQU{Gk9#Xm*c z1fluMQ&xw4Mut8)8N((mUd(^C zx3SwG*zGK_HcJu#@)Fx|wVW#0;RS_ItVR>j20*;X3eE~EI7Fi)_S+qTua4|{grA?D zWmK}s;4)X#UOLHPe&NYl9s&7HN$9V-4{dl!l4%eQ$%kQW4yxT~QeC++J~I=k&wTj` zW3_2m)>oml2mrUu+dwro-_LjtDrtHQ z-}Uu|YPAX$5hcT1A6}!4-?-5`K#)HmE-o-7rSGq|obs?VR^nMnkeI}g{^d`fv_E>J zGrzFVbaQX7RS=VwWGQ@g6z*lBs1!xDB-$0qcd{1y$HsW_9O7wWjQh>6D{fYBtVp*HhmvNL4D-&6pGWTh{09l}jjL~azs8{Y0|EniPnvTs|SM^bz0CU)#*T0;NoNy|J9j(*d zfA*asG9oNJjrQ!GHC!Nw6rHu?n;iv0kAe8q=E}v$Nz#DX{A9rN)7-T*!w!#UD0h3# z$0uracKz>m$xdSBi;j`&bYovXbl>51_SYoBuWgj05X%w zLA9BT$se!d)#~Bm4E1?P8xj(k^+DSgWrFL*DcU6F(SS)*tEV7d!`J5x9?;@H&TBq? zLcSX~-9t-Ki^=$twK*#Pk;A8X6CizTY}hX|@RZ2gMMSN`W-`(`_kk=HOHWS^DggljN~O}1Q}DxP z{rdHX4fprWbQ>q(OoyWQT}+N#xRgMxy{L^zA2C7aELL&3qpuPlZEFJ8RB zRHH|aR;g5j&m!+z`}_OxtF5T0XvK;ZadB}R8MJBBri&LZ!d8fSNlD4%$&)iPGh13( z&^&nXV0LykPOht~Texr`_JO&wva;IR+N!Fm_U+rZX3d&QmoBYZwW_nTljr$avt|vZ zDK0L~&(AlROxW0#En5l-3edlG>(;`;LYQpHk|lfg>;XqiOw5G~7owx1Id~8wcJAB> zNl>v`t+~0metv#WpFSncb?erpr>8@expU`|PAqfk)G4wg&Z?=YS+HOMMxrSQLV0<) z8|eJ`^O%j)pFe*NAW|1a5$kqzbnM=}oAf|n^k5RsJ@5GO<8cmlX_gC`5VNbR3qvno zzHBfU2n{wG78X`tU+-QOdnGi8qpz?=D3eBXXq}#V|H#av!Ni-3iJ9q97n%dgh@bK_$+qOYeq85>4;>3yf z?%l)eixw?9d-g1PAi%?i4^f#nZyv${pycFa(&H}6mMtqSE#)|F{`~nr0K!o8LKRpF z9z+vH!y51qb`O!@N(`Gldp2m`p_MCF5}G3oV zjT<)(0ljwZ8m`3n`1rkh_mX}DF)%O?Ry%RxL{3f)vc{o9hsdGG$VgH_3eL#Lz=d}5 z1gRzjiLqb9z56s{- zAf%!rM~*Z#HDTVtG?biF&Ye344y#-SAKJBRS6W&cE@7k5=;1=#)Tz$bHn1usUor^^ z36R0v#MOs2(1azSP+nf%)vH%wUStUEpL-U-(UaF z|9Q?Ept`P0&x`1b}gT3ZK;Su5X6 zD<~kcjL_(~q6P#I7f;rl*|IH#k~~Y?mFlCKY;t_Cq447agpOjDr~!G}@BO%AC(tZ; zAz4w?pekv>p__+~VT+}3-`)0Tr zbc(r*iAFe(QO4T8J@e?p%^8apj)ZBfKv1lfFTV7*w$4aOvYE^QP0=_M3xhrI&A=o= zG@V`gXnWD6iz7+*Sb-Fuuc@*s(PW;Ul*&01#$e7cp@b8i5XOlhBfhKGT53)eY~J*A zfxw=oszXw5Z+>bjyo9|8pkSsM_CSCb!7?WrXTa1@UY@h|omjj5DFS(JwBD^bMKEgV z?rv~*5<(|h6SCvt!5*+i#vI5rjDUt99(?Ti>ywH_hn#rWB!veGJnHl}HcAY784N)1 zcE%IfBQ;bX)>M_sG&v#8&-J@K9@nFX>2dMP($WpLFa^gLJQK<}_|*E@@%&Bi+ow#8 z5C|&bI)0+9qROmG7D~)AwNTkiWeXJ>J?Qs!bi32-w&{+{0bTNH+?g z%v5VUWmra{*EG&W`5<1Z@>_Aqin`ii+HE+X&hr*=sd?F8isK0;i*X-qQL;}?Q z-S>*dj2eZ?#E67cgrIO-(mMi!>B;skjpuLQ5j!ypuAf(0dimnpEYa5O@xuL{7?lEV zRAS6YE+P-nArSa7 z-&tAr^Dhb$c?MTRfP`C6KAdMw@D2st{e3s?+;Lc~7KD2S{VLPa7c87wyc4Pt3zJ*t zTo(_qz$jtn%(%?VVRj4y1WL@w$=$l;=Fww@D_EQ?3^*td6mD@^>O=ovhkwA`*9WH# z2o|NL+0}>Qrsog;wvhvY9WR&dx_$bz+Uq3{8<8c67(R)VBAy*@&9&Qs&^X)5Nu;65hL#kMlwMyJ&z^3yY;10*uP>COnX8JjX3U6|J);Jaj4)BNC3Eha%sGXjm(fCr5GW);5p9%^o`b&+ pjZx!3;WQ2uPR}0DGxhH&&_7*gT4Gk@@wNZ}002ovPDHLkV1hM)TML5C{?i_L{mx$uZCHhtua6Ldo5#fm_2qG%pPZ4wh0Ttw_fT;Tv zQ9KY=U45WjBCyofkQ0*3WR9+S|EiklbSB)}6XNgj$#2qK)74$|@9+43Usa-w zF-B^hU{EyR|KC}&SHJU4;l6zdsj1fv8`fv^DAnas6nw8J;zu=zt$H4Fp%Usc21YoR?oVW%?)6X2f5SdByl~E&KQTe+>|n`r8*?%v!QUB_z>q?;M|?GV0f< z<_~x_Z~1M|;QX;;x=emWRjNaeY9c_zhYzoPYqrJ|hpJqclx!o+r!&Bzt16IEh_ZY7 zjN}gO)9<{a8U|Cd022O?u6lcp>hm&1Z5|sFYg3^+s-mh2Fyg)kNNI|);f4Qdd0T(g zW)~hQfPYnae?~I8hU4|;- z6F9-b!Gf*Gs5h7O5tW=^=AOlZCxI!^i zQz$g*@Zv9v_w7$?(IRq2R#N~1M2ADl8pOJEsw+XoQMs#DnJ_X%s1X&P zOw;up^X6SQc~ayeSWe*z@8{!P%Flx7>=pXBh>~C!Vjio z&0o;@=?TvG_y~=vMgRoroV#V~iJw=%tYU0h%fv*T(va?m1FkeoY7*SG!U<9Et3W}) zj`<5Zj(s#jW2*rGiDY@#f(15c2T{@!lWj03#<;#nr=v)4h$+m&`iP)K{B--Q*;hUC z5GRch@YRz#L0x0?{PX+oky)o6wKa0Ss+hOi~EFv2{%5+%U{oh#9-^gC{suG(5P zy5t(f0v`AN4?fcPY+2)kL@HX9kO*ZVYAAXk*y};yg65`((}Fd>o!GpkUi+&oXGE7; zg9yp`^fOXW07Zy%IQ_c6(BpU7qoOq%*A7m3f=)*xL6@W&$T1$pq*`e@-SFybe_piE zawl}D0n%yKd-I4uD&Je4d-OvJRiI_$u2?(WTL^<-+ zSA~1`B&VfYt3(k1NF)v1NcgOkN?&lFqXZj;`#H91W$CV6IQBCNXz(mL=g9Lk41jQD`GmXheFWr-}cm4-mo_)p< zpJ1U1SqYG=|Lbmd&OiQ9vVE5p@T)vlBMhmUn2|W;PDEaxUs#yCVx=yyaM-oX`t{;n zE-$6WN=kpvIbP;=LzOlb=GSsMTgJLnMKO8qU~+FJlV}SR7H)fYZm02&TR16;HR$Bt zy_@bIu4L~=t`Mc!Y$}|sX4e$EX0vM=2S~#YO5|qI;oAeI!&t4P zq_zq1Te7l`6&34@tHphko1JbJ~v?ZHsbPH6tql zDmip$ZQuTCevzi}>R*8I(qAyvun^y490DGgJ?=aYbc97aqB^HF^($&QW%%b|)I*7v zk;YA%6#2ZKGIv?Pmt9)YEH+kltk4)koA3ZaB|q{WJh*%D7p?EU+p0-f0}vA)XWI)e z`Hr8kb3L)?l!&Z}QRJM=rZdX3aqdYO|EXvPP8IuvyJ^=jB|y0D&{nM*4!nzMwyecp z=C4^(PFSM`4G-+ig34r-oNVE8NgaW{=q4VdDFK}*HWnn7criO>&CVP!z^XM5%QVQ7 zmzT5j8$08O=seTrFi2eZCs!al7Z?E09ttGD7GJuZ! z^G90lrK+Zb-%)D3WKMj64naFlorDrm4`Zi%em|kL;^NA=O|guJMrr~bBhF_LKq6itw9Rb&2rOPAJZ+t!kKSq4zij-7}{ zFe_+|#w`m86bC~TD)_M?v`H08Tk*B0+`XKZ$U5f=L!`-)YsnECYy^l~P8aAyf@QLuEMvs1Z@c zq1+|$m&{Zjr9Msz^#D=aI`hZGK<&(T15~jI3G4{*Y8p~}8=t!(9S{wzj&YYHbcjPA zq>;SN2H*%!eXSA80Me3cQ)yZF!I8k6P_ip zkV{rXfkGw1TdPEvp+iHML(WC=OG^_N_4>*WEMK1f=Ua@s6>ZqyEGTp$Y*FjGZMsoSX|2~Tt`QY->UAx(PpSd*Nr7Z$>Is=O${!@R7VY9fB| zi3v6Y$6?o4tiw^_@f4Mmc>Mk-P22hA?7Hb02`yV2yLRk=8S34_f~7>Wf?$>*rJ_jL+{@`bsAS0B3Tc2&zvH0#Zm)m zkT;6(Pnx*may=fPS(0CvTDP9ac0vwZFx>Jr0E&Jz1jDfK62!#>NGK z5I&eY9im7FB+HD!0wXdqrnDG3#8tn(HS@9xAi>F$%wa=!zCJ_h33#H2>qHtF-mS?Q z!Olo#eEg<@JWR4Mzo2nKQnb_I^!o!VR$@T03UR_t19Wde9=9)|G)YLP$mWSr_b}2_ z5#U9;Gc&W}^Uv|CED|eIjl|~7QvZ5e&gY*?ipbrkU~sy8=ak3_j)W{;vt1FNu)nkv zfMy-YZj+jtOT(V|fWh6_o;>SZKl83E_d0`yQsz zD0@oZzqFh9k~1mM!bw>P5R~Yur^X*#yjX^I7ECpWjBdKf$U>wMzJqqIUH1giF#xC2 zT?Y^4#l+Ng#W)o0RJo_9%#B&wM0VS5-h0uF8YxU-!kDNUP;n^h2l!MpEv{)}dtwr? zdNYH?*?gULSJt`iy5d!Jb_s&#MBa8*tYABRdxydJl& z+)j{QF`mwG`lHnD*}eXM+(asBB$Y%7R^b>iB9=9=t3oUW2-9da>fx0uSMs0^RS_(g z2YyMBc!1-JUz8`DJoBjIaQ0}}cuU@Kx9+zIzM~P|%O=7Tq}8~wQX`a#sv9AdLE!#R z6fsEzR-i34G4Ynu`u^p&=FRl%13^#3-4Ig*Zwxx@5QmgnR@-6k)uidM($d_rQn%j+ zU(0Ltyx>FPJ9VsoZC4Un$vN%hgWp7KlTZX|(l%S`(W5qxeViv2EEMmB^Wiv2TqF;m zJo5-BY7}Kn;^JB)B#DY6S%2(kp{EQ;HNXFUsUOx4^89CG`5iHvHV+KhI_Xutpg^Dl zy2$yDOj8vlxO0Vy zuG{^FqUAqx;=@cxvLhrtHBtNb|^V+cUb`Fkote>mU_)K5gpY9NhCFh?`5{P9W!R#BcrHX z_6ZiJg-=pcv9hSjrNr!#5?yS;>-gws!4_+ZM11>8tNR9Tn)r&IdqRvH> zA@|n>{y@IZi_==ITczK8Q>2Gme;1J0bOuHPIE$qSEey~(yt%)dSO&rQqq+J22{g% zE=Z~ap!mj(Tii1!d%*`X=g>ttEtq6bJ-gf!V0_*0x{)KCadFi!o(qzQ10;5uv2L%u zdi47r;EBZQD;4U)3$leYaM0t%Mb5bRZjX*8p_)m}k!sqb7+t5%jh}z|eZRlb;^JWK zm8r#4-{LOu^X+K#hG(CNOHQr{$ybOp(PzSwy&fBD;ZlT!QhmEzfsrdErPG8baM=0CkzfD*KZRLY@r@c?J#b)3MtV)N zEJLahAo&*ogb^jDrr!GWgkZ6~ra~j-Qtp$k;m}CA1kjX~l`UGdsJOVeU%!6Mn>W7CH+r54J_EV=$rKF^^YSqg8ZJ2nyUR-(f z=+W5N*ekERGC4U}-rt~MRf~#fDJUq|x^*jp2%;5w+3ohT&r058&z?Q|_U*$#W@cuy zX3gY-%r~!kDzEW)JbU-eZb)cQzjCa=DCNP=Q{(dI2MIFW~#oLk}gMVYeB2&6+i9?AWn<_q9n@u3U+i z{osQSnrDYmLFeML=9VxJ* zd+)t>=gysYW3pw`s8M0)7_v`D)p;I2ejE^op<@UTQBL!16Prj<) zS+i%)KFbACDgjhpUVf(Qb_zMux0v4i`STwa8=pYW-+lMpb3Qmsz*#|;&;NR$lb4qV zXJHuQh01ARttys9u_a5ENPuR{m~o-J?%1(opM3Jkg+39l;pEAa7uxGWs4jUc7iQkR`$)^ytw8<2fTLA-U_W zyWW2LZ5hfjas=_P3&H_H2#XVYP%x#3AAUFtpl6n>LxR zN5F#DS3-Yf9aF^!KKtx5^EDXO=FOYUEr{z99f-r>0A2Y0`|sVAf72TeGCvycY{7yB z#@N8l@bb(7`?LaEK`)6Z5k#cwHQ`N|l5q?Uf|qHIAo$kcJ5Wmu3xUu)RYZOB-3AO8 zVCF|SMoSn#c+a3}6$7%_?z`_k^93NQx7>0|Sg)`L-FV}TxGd~JBS(&OpY<2$;p3f7 z=UFZwRRJ=0;J<)gnZ@FLR_a^@@-VN7R}{9s+>-xZb0vY^nNQ_gF}FZd($mw=-m686 z7GV#K`!^Mfk0GX3RB3vorI!HDmBZdpGz#+oA00{H~KQLMV5O~wz!Gm!OExLDepJ+emlK0AaQW zWMEJ5*1!M$`)L&cwtUSs*Q{By#%O^*Zr!?dMn(qwcUX-3cf?|VzH-bA=bn3zi-l#RhlHHvS;(Kw01?3|%|#DO#QKWj`0?Yxn8Do7zl+P|dgPHu zCQX`j{#_)j=whL=oK~y{2zm|{J9g~YGo`F%-ysFFg$5ysTeoiAX}d^=9d<)dwuK89 z_U_%=OjghSpo@@;2dL`&jhZI15O5GAYgNaG`DA8hR;|>)b0MGT+qZ93FAh5T=9_N< z^!@wyo7<&#NA7a_?YCDg7^S47AZ@~Xy13a@JUuL7G13_#CJe$}Qc_~Hgb{P(Rz~fW z2nS>gecZTl-Me?k#Fi~v23~{Pg0{l-BB=fH%P+<~5#uF)fgsq!og+DdUchHTFY4E? z->X-zF=NKGZ{I#YKi{adwF~{fG|;PO&z=bIZ@lrwH{X1dm6e4SyZ}H3n}wO1b3@QV oyZ|H1BUM-%5&4rD5Cqfz13je3BrVIfHUIzs07*qoM6N<$f@Xsw$^ZZW literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b887009d6d8b07af5ca5f474dc8ca8a0663d8265 GIT binary patch literal 4389 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 JPDHLkV1j*_foA{! literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1c0b3965304845adc5f3eddd08910e2c221ec20 GIT binary patch literal 8140 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 b4c`6hoanZHP!V_@8XzeuCsHk>|L1=I@P|oL literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ad87484d4b147ecfc31f075d6163e2900f625a0e GIT binary patch literal 11740 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

du3#64PCeg|9pb7L)A~`gmMo5g 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 + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..ff81bae --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..1609f4a --- /dev/null +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..d2ffbff --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..2597170 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..7bb2df6 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..e6da251 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "8.1.0" apply false + id "org.jetbrains.kotlin.android" version "1.9.20" apply false +} + +include ":app" diff --git a/assets/adblock_list.txt b/assets/adblock_list.txt new file mode 100644 index 0000000..cd33e4e --- /dev/null +++ b/assets/adblock_list.txt @@ -0,0 +1,2948 @@ + + +101com.com +101order.com +123found.com +123freeavatars.com +180hits.de +180searchassistant.com +207.net +247media.com +24log.com +24log.de +24pm-affiliation.com +2mdn.net +2o7.net +2znp09oa.com +33across.com +360yield.com +3lift.com +4affiliate.net +4d5.net +4info.com +4jnzhl0d0.com +50websads.com +518ad.com +51yes.com +5mcwl.pw +600z.com +6ldu6qa.com +777partner.com +77tracking.com +7bpeople.com +7search.com +82o9v830.com +99count.com +a-ads.com +a-counter.kiev.ua +a.aproductmsg.com +a.consumer.net +a.mktw.net +a.sakh.com +a.ucoz.net +a.ucoz.ru +a.xanga.com +a135.wftv.com +aaddzz.com +abacho.net +abackchain.com +abandonedaction.com +abandonedclover.com +abashedangle.com +abc-ads.com +aboardlevel.com +abruptroad.com +absentstream.com +absorbingband.com +absurdwater.com +abz.com +ac.rnm.ca +acridtwist.com +actionsplash.com +actualdeals.com +actuallysheep.com +actuallysnake.com +acuityads.com +acuityplatform.com +ad-balancer.at +ad-balancer.net +ad-center.com +ad-delivery.net +ad-pay.de +ad-rotator.com +ad-score.com +ad-server.gulasidorna.se +ad-serverparc.nl +ad-souk.com +ad-space.net +ad-tech.com +ad-up.com +ad.100.tbn.ru +ad.71i.de +ad.a8.net +ad.abcnews.com +ad.abctv.com +ad.aboutwebservices.com +ad.abum.com +ad.admitad.com +ad.allstar.cz +ad.altervista.org +ad.amgdgt.com +ad.anuntis.com +ad.auditude.com +ad.bizo.com +ad.bnmla.com +ad.bondage.com +ad.caradisiac.com +ad.centrum.cz +ad.cgi.cz +ad.choiceradio.com +ad.clix.pt +ad.cooks.com +ad.crwdcntrl.net +ad.digitallook.com +ad.doctissimo.fr +ad.domainfactory.de +ad.eurosport.com +ad.flurry.com +ad.foxnetworks.com +ad.freecity.de +ad.gate24.ch +ad.grafika.cz +ad.hbv.de +ad.hodomobile.com +ad.httpool.com +ad.hyena.cz +ad.iinfo.cz +ad.ilove.ch +ad.infoseek.com +ad.jamba.net +ad.jamster.co.uk +ad.jetsoftware.com +ad.keenspace.com +ad.leadbolt.net +ad.liveinternet.ru +ad.lupa.cz +ad.media-servers.net +ad.mediastorm.hu +ad.mgd.de +ad.musicmatch.com +ad.nachtagenten.de +ad.nozonedata.com +ad.nttnavi.co.jp +ad.nwt.cz +ad.pandora.tv +ad.period-calendar.com +ad.preferances.com +ad.profiwin.de +ad.prv.pl +ad.rambler.ru +ad.reunion.com +ad.sensismediasmart.com.au +ad.seznam.cz +ad.simgames.net +ad.slutload.com +ad.smartclip.net +ad.tbn.ru +ad.technoratimedia.com +ad.thewheelof.com +ad.turn.com +ad.tv2.no +ad.twitchguru.com +ad.usatoday.com +ad.virtual-nights.com +ad.wavu.hu +ad.way.cz +ad.weatherbug.com +ad.wsod.com +ad.wz.cz +ad.xrea.com +ad.yadro.ru +ad.yourmedia.com +ad.zanox.com +ad0.bigmir.net +ad01.mediacorpsingapore.com +ad1.emediate.dk +ad1.emule-project.org +ad1.kde.cz +ad1.pamedia.com.au +ad2.iinfo.cz +ad2.lupa.cz +ad2.xrea.com +ad2flash.com +ad3.iinfo.cz +ad3.pamedia.com.au +ad3.xrea.com +ad4game.com +ad4mat.com +ad4mat.de +ad4mat.net +adaction.de +adadvisor.net +adalliance.io +adap.tv +adapt.tv +adbard.net +adblade.com +adblockanalytics.com +adbooth.net +adbot.com +adbrite.com +adbrn.com +adbroker.de +adbunker.com +adbutler.com +adbuyer.com +adbuyer3.lycos.com +adcash.com +adcast.deviantart.com +adcell.de +adcenter.net +adcentriconline.com +adcept.net +adclick.com +adclient.uimserv.net +adclient1.tucows.com +adcomplete.com +adconion.com +adcontent.gamespy.com +adcycle.com +add.newmedia.cz +addfreestats.com +addme.com +adecn.com +ademails.com +adengage.com +adexchangegate.com +adexchangeprediction.com +adexpose.com +adext.inkclub.com +adf.ly +adfarm.mediaplex.com +adflight.com +adforce.com +adform.com +adform.net +adformdsp.net +adgardener.com +adgoto.com +adhaven.com +adhese.be +adhese.com +adhoc4.net +adimage.guardian.co.uk +adimages.been.com +adimages.carsoup.com +adimages.go.com +adimages.homestore.com +adimages.omroepzeeland.nl +adimages.sanomawsoy.fi +adimg.cnet.com +adimg.com.com +adimg.uimserv.net +adimg1.chosun.com +adimgs.sapo.pt +adimpact.com +adincube.com +adinjector.net +adinterax.com +adisfy.com +adition.com +adition.de +adition.net +adizio.com +adjix.com +adjug.com +adjuggler.com +adjuggler.yourdictionary.com +adjustnetwork.com +adk2.co +adk2.com +adk2ads.tictacti.com +adland.ru +adledge.com +adlegend.com +adlightning.com +adlog.com.com +adloox.com +adlooxtracking.com +adlure.net +adm.fwmrm.net +admagnet.net +admailtiser.com +adman.gr +adman.otenet.gr +admanagement.ch +admanager.btopenworld.com +admanager.carsoup.com +admantx.com +admarketplace.net +admarvel.com +admax.nexage.com +admedia.com +admeld.com +admerize.be +admeta.com +admex.com +adminder.com +adminshop.com +admized.com +admob.com +admonitor.com +admotion.com.ar +adnet.asahi.com +adnet.biz +adnet.de +adnet.ru +adnet.worldreviewer.com +adnetinteractive.com +adnetwork.net +adnetworkperformance.com +adnews.maddog2000.de +adnotch.com +adnxs.com +adocean.pl +adonspot.com +adorigin.com +adotmob.com +adpenguin.biz +adpepper.dk +adpepper.nl +adperium.com +adpia.vn +adplus.co.id +adplxmd.com +adprofile.net +adrazzi.com +adreactor.com +adreclaim.com +adrecover.com +adrecreate.com +adremedy.com +adreporting.com +adres.internet.com +adrevolver.com +adriver.ru +adrolays.de +adrotate.de +adrotator.se +adrotic.girlonthenet.com +adrta.com +ads-click.com +ads-trk.vidible.tv +ads.4tube.com +ads.5ci.lt +ads.abovetopsecret.com +ads.aceweb.net +ads.activestate.com +ads.adfox.ru +ads.administrator.de +ads.adshareware.net +ads.adstream.com.ro +ads.adultfriendfinder.com +ads.advance.net +ads.adverline.com +ads.affiliates-spinit.com +ads.affiliates.match.com +ads.allvatar.com +ads.alt.com +ads.amdmb.com +ads.amigos.com +ads.aol.co.uk +ads.apn.co.nz +ads.appsgeyser.com +ads.as4x.tmcs.net +ads.as4x.tmcs.ticketmaster.com +ads.asiafriendfinder.com +ads.ask.com +ads.aspalliance.com +ads.avazu.net +ads.batpmturner.com +ads.belointeractive.com +ads.berlinonline.de +ads.betanews.com +ads.betfair.com +ads.betfair.com.au +ads.bigchurch.com +ads.bigfoot.com +ads.bing.com +ads.bittorrent.com +ads.blog.com +ads.bloomberg.com +ads.bluelithium.com +ads.bluemountain.com +ads.bluesq.com +ads.bonniercorp.com +ads.boylesports.com +ads.brabys.com +ads.brazzers.com +ads.bumq.com +ads.businessweek.com +ads.canalblog.com +ads.canoe.ca +ads.casinocity.com +ads.casumoaffiliates.com +ads.cbc.ca +ads.cc +ads.cc-dt.com +ads.centraliprom.com +ads.channel4.com +ads.clearchannel.com +ads.co.com +ads.colombiaonline.com +ads.com.com +ads.comeon.com +ads.contactmusic.com +ads.contentabc.com +ads.contextweb.com +ads.crakmedia.com +ads.creative-serving.com +ads.creativematch.com +ads.cricbuzz.com +ads.cybersales.cz +ads.dada.it +ads.datingyes.com +ads.dazoot.ro +ads.deltha.hu +ads.dennisnet.co.uk +ads.desmoinesregister.com +ads.detelefoongids.nl +ads.deviantart.com +ads.digital-digest.com +ads.digitalmedianet.com +ads.digitalpoint.com +ads.directionsmag.com +ads.domain.com +ads.domeus.com +ads.eagletribune.com +ads.easy-forex.com +ads.economist.com +ads.edbindex.dk +ads.egrana.com.br +ads.elcarado.com +ads.electrocelt.com +ads.elitetrader.com +ads.emirates.net.ae +ads.epltalk.com +ads.eu.msn.com +ads.exactdrive.com +ads.expat-blog.biz +ads.factorymedia.com +ads.fairfax.com.au +ads.fasttrack-ignite.com +ads.faxo.com +ads.ferianc.com +ads.filmup.com +ads.financialcontent.com +ads.flooble.com +ads.fool.com +ads.footymad.net +ads.forbes.com +ads.forbes.net +ads.forium.de +ads.fortunecity.com +ads.fotosidan.se +ads.foxnetworks.com +ads.freecity.de +ads.friendfinder.com +ads.ft.com +ads.gamecity.net +ads.gamershell.com +ads.gamespyid.com +ads.gamigo.de +ads.gaming-universe.de +ads.gaming1.com +ads.gawker.com +ads.geekswithblogs.net +ads.getlucky.com +ads.glispa.com +ads.gmodules.com +ads.goyk.com +ads.gplusmedia.com +ads.gradfinder.com +ads.grindinggears.com +ads.gsm-exchange.com +ads.gsmexchange.com +ads.guardian.co.uk +ads.guardianunlimited.co.uk +ads.guru3d.com +ads.harpers.org +ads.harvard.edu +ads.hbv.de +ads.hearstmags.com +ads.heartlight.org +ads.heias.com +ads.hollywood.com +ads.horsehero.com +ads.horyzon-media.com +ads.ibest.com.br +ads.ibryte.com +ads.icq.com +ads.ign.com +ads.img.co.za +ads.imgur.com +ads.indiatimes.com +ads.infi.net +ads.internic.co.il +ads.ipowerweb.com +ads.isoftmarketing.com +ads.itv.com +ads.iwon.com +ads.jewishfriendfinder.com +ads.jiwire.com +ads.joaffs.com +ads.jobsite.co.uk +ads.jpost.com +ads.jubii.dk +ads.justhungry.com +ads.kabooaffiliates.com +ads.kaktuz.net +ads.kelbymediagroup.com +ads.kinobox.cz +ads.kinxxx.com +ads.kompass.com +ads.krawall.de +ads.lapalingo.com +ads.larryaffiliates.com +ads.leovegas.com +ads.lesbianpersonals.com +ads.linkedin.com +ads.linuxfoundation.org +ads.livenation.com +ads.lordlucky.com +ads.mariuana.it +ads.massinfra.nl +ads.mcafee.com +ads.mediaodyssey.com +ads.medienhaus.de +ads.mgnetwork.com +ads.miarroba.com +ads.mmania.com +ads.mobilautomaten.com +ads.mobilebet.com +ads.motor-forum.nl +ads.motormedia.nl +ads.msn.com +ads.multimania.lycos.fr +ads.nationalgeographic.com +ads.ncm.com +ads.ndtv1.com +ads.networksolutions.com +ads.newgrounds.com +ads.newmedia.cz +ads.newsint.co.uk +ads.newsquest.co.uk +ads.ninemsn.com.au +ads.nj.com +ads.nola.com +ads.nordichardware.com +ads.nordichardware.se +ads.nwsource.com +ads.nyi.net +ads.nytimes.com +ads.nyx.cz +ads.nzcity.co.nz +ads.o2.pl +ads.oddschecker.com +ads.okcimg.com +ads.ole.com +ads.olivebrandresponse.com +ads.oneplace.com +ads.optusnet.com.au +ads.outpersonals.com +ads.passion.com +ads.pennet.com +ads.phpclasses.org +ads.planet.nl +ads.pni.com +ads.pof.com +ads.powweb.com +ads.primissima.it +ads.printscr.com +ads.prisacom.com +ads.program3.com +ads.programattik.com +ads.psd2html.com +ads.pushplay.com +ads.quasaraffiliates.com +ads.quoka.de +ads.rcs.it +ads.recoletos.es +ads.rediff.com +ads.redlightcenter.com +ads.redtube.com +ads.resoom.de +ads.satyamonline.com +ads.saymedia.com +ads.scifi.com +ads.seniorfriendfinder.com +ads.servebom.com +ads.sexinyourcity.com +ads.shizmoo.com +ads.shopstyle.com +ads.sift.co.uk +ads.silverdisc.co.uk +ads.smartclick.com +ads.socialtheater.com +ads.soft32.com +ads.space.com +ads.sptimes.com +ads.stackoverflow.com +ads.sun.com +ads.suomiautomaatti.com +ads.supplyframe.com +ads.tahono.com +ads.techtv.com +ads.themovienation.com +ads.thestar.com +ads.thrillsaffiliates.com +ads.tmcs.net +ads.toplayaffiliates.com +ads.totallyfreestuff.com +ads.townhall.com +ads.trinitymirror.co.uk +ads.tripod.com +ads.tripod.lycos.co.uk +ads.tripod.lycos.de +ads.tripod.lycos.es +ads.tripod.lycos.it +ads.tripod.lycos.nl +ads.tso.dennisnet.co.uk +ads.twitter.com +ads.uknetguide.co.uk +ads.ultimate-guitar.com +ads.uncrate.com +ads.undertone.com +ads.usatoday.com +ads.verticalresponse.com +ads.vgchartz.com +ads.videosz.com +ads.viksaffiliates.com +ads.virtual-nights.com +ads.vnumedia.com +ads.waps.cn +ads.wapx.cn +ads.watson.ch +ads.weather.ca +ads.web.aol.com +ads.web.cs.com +ads.web.de +ads.webmasterpoint.org +ads.websiteservices.com +ads.whoishostingthis.com +ads.wiezoekje.nl +ads.wikia.nocookie.net +ads.wineenthusiast.com +ads.wwe.biz +ads.xhamster.com +ads.xtra.co.nz +ads.xtribeapp.com +ads.y-0.net +ads.yahoo.com +ads.yap.yahoo.com +ads.yimg.com +ads.yldmgrimg.net +ads.yourfreedvds.com +ads.youtube.com +ads.zdnet.com +ads.ztod.com +ads03.redtube.com +ads1.canoe.ca +ads1.mediacapital.pt +ads1.msn.com +ads1.rne.com +ads1.virtual-nights.com +ads10.speedbit.com +ads180.com +ads2.brazzers.com +ads2.clearchannel.com +ads2.contentabc.com +ads2.gamecity.net +ads2.jubii.dk +ads2.net-communities.co.uk +ads2.oneplace.com +ads2.rne.com +ads2.virtual-nights.com +ads2.xnet.cz +ads2004.treiberupdate.de +ads3.contentabc.com +ads3.gamecity.net +ads3.virtual-nights.com +ads4.clearchannel.com +ads4.gamecity.net +ads4.virtual-nights.com +ads4homes.com +ads5.canoe.ca +ads5.virtual-nights.com +ads6.gamecity.net +ads7.gamecity.net +ads8.com +adsafeprotected.com +adsatt.abc.starwave.com +Adsatt.ABCNews.starwave.com +adsatt.espn.go.com +adsatt.espn.starwave.com +Adsatt.go.starwave.com +adsby.bidtheatre.com +adscale.de +adscholar.com +adscience.nl +adscpm.com +adsdaq.com +adsend.de +adsensecustomsearchads.com +adserv.gamezone.de +adserve.ams.rhythmxchange.com +adserver.43plc.com +adserver.71i.de +adserver.adultfriendfinder.com +adserver.aidameter.com +adserver.aol.fr +adserver.betandwin.de +adserver.bing.com +adserver.bizhat.com +adserver.break-even.it +adserver.cams.com +adserver.com +adserver.digitoday.com +adserver.flossiemediagroup.com +adserver.freecity.de +adserver.friendfinder.com +adserver.hardsextube.com +adserver.hardwareanalysis.com +adserver.html.it +adserver.hwupgrade.it +adserver.irishwebmasterforum.com +adserver.janes.com +adserver.libero.it +adserver.news.com.au +adserver.nydailynews.com +adserver.o2.pl +adserver.oddschecker.com +adserver.omroepzeeland.nl +adserver.pl +adserver.portalofevil.com +adserver.portugalmail.net +adserver.portugalmail.pt +adserver.pressboard.ca +adserver.sanomawsoy.fi +adserver.sciflicks.com +adserver.sharewareonline.com +adserver.spankaway.com +adserver.theonering.net +adserver.twitpic.com +adserver.viagogo.com +adserver.virginmedia.com +adserver.yahoo.com +adserver01.de +adserver1-images.backbeatmedia.com +adserver1.backbeatmedia.com +adserver1.mindshare.de +adserver1.ogilvy-interactive.de +adserver2.mindshare.de +adserverplus.com +adserverpub.com +adserversolutions.com +adserving.unibet.com +adservinginternational.com +adsfac.eu +adsfac.net +adsfac.us +adside.com +adsk2.co +adskeeper.co.uk +adsklick.de +adsmarket.com +adsmart.com +adsmart.net +adsmogo.com +adsnative.com +adsoftware.com +adsoldier.com +adspeed.net +adspirit.de +adsponse.de +adsrevenue.net +adsrv.deviantart.com +adsrv.eacdn.com +adsrv.iol.co.za +adsrvr.org +adsstat.com +adstage.io +adstat.4u.pl +adstest.weather.com +adsupply.com +adswizz.com +adsymptotic.com +adsynergy.com +adsys.townnews.com +adsystem.simplemachines.org +adtech.de +adtechjp.com +adtechus.com +adtegrity.net +adthis.com +adthrive.com +adtiger.de +adtoll.com +adtology.com +adtoma.com +adtrace.org +adtrade.net +adtrak.net +adtriplex.com +adultadvertising.com +adv-adserver.com +adv-banner.libero.it +adv.cooperhosting.net +adv.freeonline.it +adv.hwupgrade.it +adv.livedoor.com +adv.nexthardware.com +adv.webmd.com +adv.wp.pl +adv.yo.cz +advariant.com +adventory.com +advert.bayarea.com +advert.dyna.ultraweb.hu +adverticum.com +adverticum.net +adverticus.de +advertise.com +advertiseireland.com +advertisementafterthought.com +advertiserurl.com +advertisespace.com +advertisingbanners.com +advertisingbox.com +advertisingtag.net +advertmarket.com +advertmedia.de +advertpro.sitepoint.com +advertpro.ya.com +advertserve.com +advertstream.com +advertwizard.com +advfromnwl.com +advideo.uimserv.net +adview.ppro.de +advisormedia.cz +adviva.net +advnt.com +adwhirl.com +adwitserver.com +adworldnetwork.com +adworx.at +adworx.be +adworx.nl +adx.allstar.cz +adx.atnext.com +adxpansion.com +adxpose.com +adxprts.com +adxvalue.com +adyea.com +adz2you.com +adzbazar.com +adzerk.net +adzerk.s3.amazonaws.com +adzones.com +af-ad.co.uk +affbuzzads.com +affec.tv +affili.net +affiliate.1800flowers.com +affiliate.doubleyourdating.com +affiliate.dtiserv.com +affiliate.gamestop.com +affiliate.mercola.com +affiliate.mogs.com +affiliate.offgamers.com +affiliate.travelnow.com +affiliate.treated.com +affiliate.viator.com +affiliatefuel.com +affiliatefuture.com +affiliates.allposters.com +affiliates.babylon.com +affiliates.digitalriver.com +affiliates.globat.com +affiliates.internationaljock.com +affiliates.rozetka.com.ua +affiliates.streamray.com +affiliates.thinkhost.net +affiliates.thrixxx.com +affiliates.ultrahosting.com +affiliatetracking.com +affiliatetracking.net +affiliatewindow.com +affiliation-france.com +affrh2014.com +affrh2022.com +afftracking.justanswer.com +afterview.ru +agkn.com +agreeableprice.com +agreeablestew.com +agreemand.com +ah-ha.com +ahalogy.com +aheadday.com +aidu-ads.de +aim4media.com +aistat.net +ak0gsh40.com +aktrack.pubmatic.com +alclick.com +alenty.com +alert.com.mt +alexa-sitestats.s3.amazonaws.com +alexametrics.com +alipromo.com +all4spy.com +allosponsor.com +alphonso.tv +amazingcounters.com +amazon-adsystem.com +ambiguousquilt.com +ambitiousagreement.com +americash.com +amplitude.com +amung.us +anahtars.com +analytics.adpost.org +analytics.google.com +analytics.live.com +analytics.newsinc.com +analytics.yahoo.com +anm.intelli-direct.com +annonser.dagbladet.no +anrdoezrs.net +anxiousapples.com +apathetictheory.com +api.intensifier.de +apolloprogram.io +app-analytics.snapchat.com +app.pendo.io +appsflyer.com +aps.hearstnp.com +apture.com +apusx.com +aquaticowl.com +ar1nvz5.com +arc1.msn.com +archswimming.com +ard.xxxblackbook.com +are-ter.com +area51-ts.com +argyresthia.com +aromamirror.com +as.webmd.com +as1.advfn.com +assets1.exgfnetwork.com +assoc-amazon.com +aswpapius.com +at-adserver.alltop.com +atdmt.com +athena-ads.wikia.com +attractiveafternoon.com +attributiontracker.com +atwola.com +auctionads.com +auctionads.net +audience2media.com +audienceinsights.com +audit.median.hu +audit.webinform.hu +augur.io +auto-bannertausch.de +autohits.dk +automaticflock.com +avenuea.com +avocet.io +avpa.javalobby.org +avsads.com +awempire.com +awin1.com +awzbijw.com +axiomaticalley.com +b-1st.com +b59812ee54afcabd.com +ba.afl.rakuten.co.jp +babs.tv2.dk +backbeatmedia.com +balancebreath.com +balloontexture.com +banik.redigy.cz +banner-exchange-24.de +banner.ad.nu +banner.ambercoastcasino.com +banner.buempliz-online.ch +banner.casino.net +banner.casinodelrio.com +banner.cotedazurpalace.com +banner.coza.com +banner.cz +banner.easyspace.com +banner.elisa.net +banner.eurogrand.com +banner.goldenpalace.com +banner.img.co.za +banner.inyourpocket.com +banner.kiev.ua +banner.linux.se +banner.media-system.de +banner.mindshare.de +banner.nixnet.cz +banner.noblepoker.com +banner.northsky.com +banner.orb.net +banner.penguin.cz +banner.rbc.ru +banner.relcom.ru +banner.tanto.de +banner.titan-dsl.de +banner.vadian.net +banner.webmersion.com +banner.wirenode.com +bannerads.de +bannerboxes.com +bannercommunity.de +bannerconnect.com +bannerconnect.net +bannerexchange.cjb.net +bannerflow.com +bannergrabber.internet.gr +bannerhost.com +bannerimage.com +bannerlandia.com.ar +bannermall.com +bannermarkt.nl +bannerpower.com +banners.adultfriendfinder.com +banners.amigos.com +banners.asiafriendfinder.com +banners.babylon-x.com +banners.bol.com.br +banners.cams.com +banners.clubseventeen.com +banners.czi.cz +banners.dine.com +banners.direction-x.com +banners.directnic.com +banners.freett.com +banners.friendfinder.com +banners.getiton.com +banners.iq.pl +banners.isoftmarketing.com +banners.linkbuddies.com +banners.passion.com +banners.resultonline.com +banners.sexsearch.com +banners.sys-con.com +banners.thomsonlocal.com +banners.videosz.com +banners.virtuagirlhd.com +banners.wunderground.com +bannerserver.com +bannersgomlm.com +bannershotlink.perfectgonzo.com +bannersng.yell.com +bannerspace.com +bannerswap.com +bannertesting.com +bannery.cz +bannieres.acces-contenu.com +bans.adserver.co.il +bans.bride.ru +barbarousnerve.com +barnesandnoble.bfast.com +basebanner.com +baskettexture.com +bat.bing.com +batbuilding.com +bawdybeast.com +baypops.com +bbelements.com +bbn.img.com.ua +beacon.gu-web.net +beamincrease.com +beamkite.com +bebi.com +bedsbreath.com +begun.ru +behavioralengine.com +belstat.com +belstat.nl +berp.com +best-top.ro +bestboundary.com +bestsearch.net +bewilderedblade.com +bhcumsc.com +bidclix.com +bidclix.net +bidr.io +bidswitch.net +bidvertiser.com +bigbangmedia.com +bigclicks.com +billboard.cz +bitads.net +bitmedianetwork.com +bizad.nikkeibp.co.jp +bizographics.com +bizrate.com +blast4traffic.com +blingbucks.com +blockadblock.com +blogads.com +blogcounter.de +blogherads.com +blogtoplist.se +blogtopsites.com +blueadvertise.com +bluekai.com +bluelithium.com +bluewhaleweb.com +blushingbeast.com +blushingboundary.com +bm.annonce.cz +bn.bfast.com +boersego-ads.de +boilingbeetle.com +boilingumbrella.com +bombora.com +boomads.com +boost-my-pr.de +boredcrown.com +boringcoat.com +boudja.com +bounceexchange.com +box.anchorfree.net +bpath.com +braincash.com +branch.io +brand-display.com +brandreachsys.com +brassrule.com +bridgetrack.com +brightinfo.com +british-banners.com +broadboundary.com +broadcastbed.com +broaddoor.com +bs.yandex.ru +btez8.xyz +bttrack.com +bucketbean.com +budsinc.com +bullseye.backbeatmedia.com +businessbells.com +bustlinganimal.com +buysellads.com +buzzonclick.com +bwp.download.com +c.bigmir.net +c1.nowlinux.com +c1exchange.com +calculatingcircle.com +calculatingtoothbrush.com +calculatorcamera.com +callousbrake.com +calmfoot.com +campaign.bharatmatrimony.com +caniamedia.com +capablecows.com +captainbicycle.com +carambo.la +carbonads.com +carbonads.net +casalemedia.com +casalmedia.com +cash4members.com +cash4popup.de +cashcrate.com +cashengines.com +cashfiesta.com +cashpartner.com +casinopays.com +casinorewards.com +casinotraffic.com +cbanners.virtuagirlhd.com +cbsi.com +cdn.freefarcy.com +cdn.onesignal.com +cdn.segment.com +cecash.com +centerpointmedia.com +ceskydomov.alias.ngs.modry.cz +cetrk.com +cgicounter.puretec.de +chairscrack.com +chameleon.ad +channel1vids.com +channelintelligence.com +chardwardse.club +chart.dk +chartbeat.com +chartbeat.net +checkm8.com +checkstat.nl +cheerfulrange.com +cherrythread.com +chewcoat.com +chickensstation.com +chiefcurrent.com +chinsnakes.com +chitika.net +christingel.com +cityads.telus.net +cj.com +cjbmanagement.com +cjlog.com +claria.com +class-act-clicks.com +clearcomb.com +clevernt.com +click.fool.com +click.kmindex.ru +click2freemoney.com +clickability.com +clickadz.com +clickagents.com +clickbank.com +clickbooth.com +clickboothlnk.com +clickbrokers.com +clickcompare.co.uk +clickdensity.com +clickedyclick.com +clickhereforcellphones.com +clickhouse.com +clickhype.com +clicklink.jp +clickonometrics.pl +clicks.equantum.com +clicks.mods.de +clickserve.cc-dt.com +clicksor.com +clicktag.de +clickthruserver.com +clickthrutraffic.com +clicktrace.info +clicktrack.ziyu.net +clicktracks.com +clicktrade.com +clickwith.bid +clickxchange.com +clickz.com +clicmanager.fr +clientmetrics-pa.googleapis.com +clikerz.net +cliksolution.com +clixgalore.com +clk1005.com +clk1011.com +clk1015.com +clkrev.com +clksite.com +cloisteredhydrant.com +cloudcoins.biz +clrstm.com +cluster.adultworld.com +clustrmaps.com +cml.sad.ukrd.com +cnomy.com +cnt.spbland.ru +cnt1.pocitadlo.cz +code-server.biz +cognitiv.ai +coin-hive.com +coinhive.com +cointraffic.io +colonize.com +comclick.com +comfortablecheese.com +commandwalk.com +commindo-media-ressourcen.de +commissionmonster.com +commonswing.com +compactbanner.com +completecabbage.com +complextoad.com +comprabanner.it +concernedcondition.com +concernrain.com +confirmed-profits.com +connatix.com +connextra.com +consciouscabbage.com +consciouschairs.com +consensad.com +contadores.miarroba.com +contaxe.de +content.acc-hd.de +content.ad +contextweb.com +converge-digital.com +conversantmedia.com +conversionbet.com +conversionruler.com +convrse.media +cookies.cmpnet.com +coordinatedcub.com +cooster.ru +copperchickens.com +copycarpenter.com +copyrightaccesscontrols.com +coremetrics.com +count.rbc.ru +count.rin.ru +count.west263.com +counted.com +counter.bloke.com +counter.cnw.cz +counter.cz +counter.dreamhost.com +counter.fateback.com +counter.mirohost.net +counter.mojgorod.ru +counter.nowlinux.com +counter.rambler.ru +counter.search.bg +counter.snackly.co +counter.sparklit.com +counter.yadro.ru +counters.honesty.com +counting.kmindex.ru +counts.tucows.com +coupling-media.de +cp.abbp1.pw +cpalead.com +cpays.com +cpmstar.com +cpx.to +cpxinteractive.com +cqcounter.com +crabbychin.com +crakmedia.com +craktraffic.com +crawlability.com +crawlclocks.com +crazyegg.com +crazypopups.com +creafi-online-media.com +creatives.as4x.tmcs.net +creatives.livejasmin.com +credishe.com +criteo.com +critictruck.com +croissed.info +crowdgravity.com +crownclam.com +crtv.mate1.com +crwdcntrl.net +ctnetwork.hu +cubics.com +culturedcrayon.com +cumbersomecloud.com +curtaincows.com +customad.cnn.com +cutecushion.com +cuteturkey.com +cxense.com +cyberbounty.com +d.adroll.com +d2cmedia.ca +dakic-ia-300.com +damdoor.com +danban.com +dancemistake.com +dapper.net +dashingdirt.com +dashingsweater.com +data.namesakeoscilloscopemarquis.com +dbbsrv.com +dc-storm.com +de17a.com +deadpantruck.com +dealdotcom.com +debonairway.com +debtbusterloans.com +decisivedrawer.com +decisiveducks.com +decknetwork.net +decoycreation.com +deepintent.com +defectivesun.com +delegatediscussion.com +delightdriving.com +deloo.de +deloton.com +demandbase.com +demdex.net +deployads.com +desertedbreath.com +desertedrat.com +detailedglue.com +detailedgovernment.com +detectdiscovery.com +di1.shopping.com +dialerporn.com +dianomi.com +didtheyreadit.com +differentdesk.com +digital-ads.s3.amazonaws.com +digitalmerkat.com +direct-xxx-access.com +directaclick.com +directivepub.com +directleads.com +directorym.com +directtrack.com +discountclick.com +discreetfield.com +dispensablestranger.com +displayadsmedia.com +disqusads.com +dist.belnk.com +dk4ywix.com +dmtracker.com +dmtracking.alibaba.com +dmtracking2.alibaba.com +dnads.directnic.com +docksalmon.com +domaining.in +domainsponsor.com +domainsteam.de +domdex.com +doubleclick.com +doubleclick.de +doubleclick.net +doublepimp.com +doubtfulrainstorm.com +downloadr.xyz +dq95d35.com +drabsize.com +dragzebra.com +drumcash.com +drydrum.com +dsp.io +dstillery.com +dynamic.fmpub.net +dyntrk.com +e-adimages.scrippsnetworks.com +e-bannerx.com +e-debtconsolidation.com +e-m.fr +e-n-t-e-r-n-e-x.com +e-planning.net +e.kde.cz +eadexchange.com +earthquakescarf.com +earthycopy.com +eas.almamedia.fi +easyhits4u.com +ebayadvertising.com +ebocornac.com +ebuzzing.com +ecircle-ag.com +eclick.vn +eclkmpbn.com +eclkspbn.com +economicpizzas.com +ecoupons.com +edaa.eu +edgeio.com +effectivemeasure.com +effectivemeasure.net +efficaciouscactus.com +eiv.baidu.com +ejyymghi.com +elasticchange.com +elderlyscissors.com +elderlytown.com +elephantqueue.com +elitedollars.com +elitetoplist.com +elthamely.com +emarketer.com +emediate.dk +emediate.eu +emerse.com +emetriq.de +encouragingwilderness.com +endurableshop.com +engine.espace.netavenir.com +enginenetwork.com +enquisite.com +ensighten.com +entercasino.com +enthusiasticdad.com +entrecard.s3.amazonaws.com +enviousthread.com +eqads.com +erne.co +ero-advertising.com +errortablet.com +estat.com +etahub.com +etargetnet.com +etracker.de +eu-adcenter.net +eu1.madsone.com +eurekster.com +euros4click.de +eusta.de +eventbeacon.ca +everesttech.net +evergage.com +evyy.net +ewebcounter.com +exchange-it.com +exchange.bg +exchangead.com +exchangeclicksonline.com +exclusivebrass.com +exelator.com +exit76.com +exitexchange.com +exitfuel.com +exoclick.com +exogripper.com +exosrv.com +experianmarketingservices.digital +experteerads.com +exponea.com +exponential.com +express-submit.de +extreme-dm.com +extremetracking.com +eyeblaster.com +eyeota.net +eyereturn.com +eyeviewads.com +eyewonder.com +ezula.com +f5biz.com +facilitategrandfather.com +fadedprofit.com +familiarfloor.com +famousquarter.com +fanaticalfly.com +farethief.com +farmergoldfish.com +fascinatedfeather.com +fastclick.com +fastclick.com.edgesuite.net +fastclick.net +faultycanvas.com +faultyfowl.com +fc.webmasterpro.de +feebleshock.com +feedbackresearch.com +feefo.com +ffxcam.fairfax.com.au +fimserve.com +findcommerce.com +findepended.com +findyourcasino.com +first.nova.cz +firstlightera.com +flakyfeast.com +flashtalking.com +flavordecision.com +fleshlightcash.com +flexbanner.com +flimsycircle.com +floodprincipal.com +flowgo.com +flurry.com +foamybox.com +foo.cosmocode.de +foresee.com +forex-affiliate.net +fourarithmetic.com +fpctraffic.com +fpctraffic2.com +fqtag.com +frailoffer.com +free-banners.com +freebanner.com +freelogs.com +freeonlineusers.com +freepay.com +freeskreen.com +freestats.com +freestats.tv +freewebcounter.com +freshmarketer.com +frightenedpotato.com +frtyj.com +fullstory.com +functionalclam.com +functionalcrown.com +funklicks.com +funpageexchange.com +fusionads.net +fusionquest.com +futuristicapparatus.com +futuristicfairies.com +fuzzyflavor.com +fuzzyweather.com +fxstyle.net +ga.clearbit.com +ga87z2o.com +galaxien.com +game-advertising-online.com +gamehouse.com +gamesites100.net +gamesites200.com +gammamaximum.com +gbanners.hornymatches.com +geo.digitalpoint.com +geobanner.adultfriendfinder.com +geovisite.com +getclicky.com +getwisdom.io +giddycoat.com +globalismedia.com +globaltakeoff.net +globe7.com +globus-inter.com +glossysense.com +gmads.net +go-clicks.de +go-rank.de +go2affise.com +goingplatinum.com +goldstats.com +gondolagnome.com +google-analytics.com +googleadservices.com +googlesyndication.com +gorgeousground.com +gossipmiser.com +gostats.com +gp.dejanews.com +gracefulsock.com +grandioseguide.com +grapeshot.co.uk +graph.instagram.com +greetzebra.com +greyinstrument.com +greystripe.com +gtop100.com +guardedgovernor.com +guardedschool.com +gunggo.com +h78xb.pw +hammerhearing.com +handyfield.com +hardtofindmilk.com +harrenmedia.com +harrenmedianetwork.com +havamedia.net +heap.com +heapanalytics.com +heias.com +hellobar.com +hentaicounter.com +herbalaffiliateprogram.com +hexusads.fluent.ltd.uk +heyos.com +hfc195b.com +hgads.com +hidden.gogoceleb.com +highfalutinroom.com +hightrafficads.com +hilariouszinc.com +hilltopads.net +histats.com +historicalrequest.com +hit-parade.com +hit.bg +hit.ua +hit.webcentre.lycos.co.uk +hitbox.com +hitcounters.miarroba.com +hitfarm.com +hitiz.com +hitlist.ru +hitlounge.com +hitometer.com +hits.europuls.eu +hits.informer.com +hits.puls.lv +hits.theguardian.com +hits4me.com +hitslink.com +hittail.com +hollandbusinessadvertising.nl +hollowshake.com +homepageking.de +honeygoldfish.com +hostedads.realitykings.com +hotjar.com +hotkeys.com +hotlog.ru +hotrank.com.tw +hoverowl.com +hs-analytics.net +htmlhubing.xyz +httpool.com +hurricanedigitalmedia.com +hurtteeth.com +hydramedia.com +hyperbanner.net +hypertracker.com +hystericalhelp.com +i-clicks.net +i.xx.openx.com +i1img.com +i1media.no +ia.iinfo.cz +iad.anm.co.uk +iadnet.com +iasds01.com +icptrack.com +identads.com +idtargeting.com +ientrymail.com +iesnare.com +ifa.tube8live.com +ilbanner.com +ilead.itrack.it +illfatedsnail.com +illustriousoatmeal.com +imageads.canoe.ca +imagecash.net +images-pw.secureserver.net +imarketservices.com +img.prohardver.hu +imgpromo.easyrencontre.com +immensehoney.com +imonitor.nethost.cz +importedincrease.com +impossibleexpansion.com +imprese.cz +impressionmedia.cz +impressionz.co.uk +impulsehands.com +imrworldwide.com +inaccused.com +inboxdollars.com +incentaclick.com +inclk.com +incognitosearches.com +incrediblesugar.com +indexstats.com +indexww.com +indieclick.com +industrybrains.com +inetlog.ru +infinite-ads.com +infinityads.com +infolinks.com +information.com +inmobi.com +innocentwax.com +innovid.com +inquisitiveinvention.com +inringtone.com +insightexpress.com +insightexpressai.com +inspectlet.com +inspectorclick.com +install.365-stream.com +instantmadness.com +instinctiveads.com +instrumentsponge.com +intelliads.com +intellitxt.com +intentmedia.com +intentmedia.net +interactive.forthnet.gr +intergi.com +internetfuel.com +interreklame.de +interstat.hu +inventionpassenger.com +inviterabbits.com +invitesugar.com +ioam.de +ip.ro +ip193.cn +iperceptions.com +ipredictive.com +ipro.com +iqm.com +ireklama.cz +itfarm.com +itop.cz +its-that-easy.com +itsptp.com +ivwbox.de +ivykiosk.com +j93557g.com +jadeitite.com +jaizouji.com +jcount.com +jinkads.de +joetec.net +js.users.51.la +jsecoin.com +juicyads.com +jumptap.com +justicejudo.com +justpremium.com +justrelevant.com +k.iinfo.cz +kanoodle.com +kargo.com +karisimbi.net +karonty.com +keymedia.hu +keywee.co +kindads.com +kissmetrics.com +kliks.nl +kmpiframe.keepmeposted.com.mt +knifeoctopus.com +kniverto.com +knorex.com +komoona.com +kompasads.com +kontera.com +ktu.sv2.biz +lakequincy.com +laughablecopper.com +laughcloth.com +launchbit.com +layer-ad.de +layer-ads.de +lbn.ru +lead-analytics.nl +leadboltads.net +leadclick.com +leadingedgecash.com +leadplace.fr +leadzupc.com +leaplunchroom.com +lettucelimit.com +levelrate.de +lfstmedia.com +liadm.com +liftdna.com +ligatus.com +ligatus.de +lightcushion.com +lightspeedcash.com +lijit.com +limpingline.com +link-booster.de +link4ads.com +linkadd.de +linkbuddies.com +linkexchange.com +linkprice.com +linkrain.com +linkreferral.com +links-ranking.de +linkshighway.com +linkstorms.com +linkswaper.com +linktarget.com +liquidad.narrowcastmedia.com +liveadexchanger.com +liveintent.com +liverail.com +lizardslaugh.com +lkqd.com +loading321.com +log.btopenworld.com +log.logrocket.io +logger.snackly.co +logs.roku.com +logua.com +longinglettuce.com +lop.com +lopsidedspoon.com +loudloss.com +loudlunch.com +lp3tdqle.com +lucidmedia.com +lucklayed.info +lumpyleaf.com +lwfjd.today +lytics.io +lzjl.com +m.trb.com +m1.webstats4u.com +m32.media +m4n.nl +m6r.eu +mackeeperapp.mackeeper.com +madclient.uimserv.net +madisonavenue.com +mads.cnet.com +madvertise.de +magnificentmist.com +marchex.com +markedcrayon.com +markedpail.com +market-buster.com +marketing.888.com +marketing.hearstmagazines.nl +marketing.nyi.net +marketing.osijek031.com +marketingsolutions.yahoo.com +marketo.com +mas.sector.sk +matchcraft.com +matheranalytics.com +mathtag.com +max.i12.de +maximumcash.com +maxonclick.com +mbs.megaroticlive.com +mbuyu.nl +mdotm.com +measuremap.com +media-adrunner.mycomputer.com +media-servers.net +media.ftv-publicite.fr +media.funpic.de +media.net +media6degrees.com +mediaarea.eu +mediabridge.cc +mediacharger.com +mediageneral.com +mediaiqdigital.com +mediamath.com +mediamgr.ugo.com +mediaplazza.com +mediaplex.com +mediascale.de +mediaserver.bwinpartypartners.it +mediatext.com +mediatrking.com +mediavine.com +mediavoice.com +mediax.angloinfo.com +mediaz.angloinfo.com +medleyads.com +medyanetads.com +megacash.de +megastats.com +megawerbung.de +mellowads.com +memorizeneck.com +memorycobweb.com +messagenovice.com +metaffiliation.com +metanetwork.com +methodcash.com +metrics.cnn.com +metrics.consumerreports.org +metrics.ctv.ca +metrics.foxnews.com +metrics.govexec.com +metrics.windowsitpro.com +metrilo.com +mfadsrvr.com +mg2connext.com +mgid.com +microstatic.pl +microticker.com +militaryverse.com +minormeeting.com +misstrends.com +mixedreading.com +mixpanel.com +mixtraffic.com +mjxads.internet.com +ml314.com +mlm.de +mmismm.com +mmstat.com +mmtro.com +moatads.com +moatpixel.com +mobclix.com +mobileiconnect.com +modifyeyes.com +moggattice.com +moldyicicle.com +monetate.net +moneyexpert.co.uk +monsterpops.com +mookie1.com +mopub.com +mouseflow.com +mousestats.com +mowfruit.com +mpstat.us +mr-rank.de +mrskincash.com +mstrlytcs.com +mtrcs.samba.tv +mtree.com +musiccounter.ru +muwmedia.com +mxptint.net +myaffiliateprogram.com +mybestmv.com +mybloglog.com +mybuys.com +mycounter.ua +mydas.mobi +mylink-today.com +mymoneymakingapp.com +mypagerank.net +mypagerank.ru +mypowermall.com +mystat-in.net +mystat.pl +mysteriousmonth.com +mytop-in.net +myvisualiq.net +mzbcdn.net +n69.com +naganoadigei.com +naj.sk +nastydollars.com +nativeroll.tv +navegg.com +navigator.io +navrcholu.cz +nbjmp.com +ncaudienceexchange.com +ndnops.com +ndparking.com +nedstat.com +nedstat.nl +nedstatbasic.net +nedstatpro.net +neighborlywatch.com +nend.net +neocounter.neoworx-blog-tools.net +neoffic.com +nervoussummer.com +net-filter.com +netaffiliation.com +netagent.cz +netclickstats.com +netcommunities.com +netdirect.nl +netincap.com +netmng.com +netpool.netbookia.net +netshelter.net +neudesicmediagroup.com +newads.bangbros.com +newbie.com +newnet.qsrch.com +newnudecash.com +newopenx.detik.com +newstarads.com +newt1.adultadworld.com +newt1.adultworld.com +newtopsites.com +nexage.com +ng3.ads.warnerbros.com +nitratory.com +nitroclicks.com +noiselessplough.com +nondescriptcrowd.com +nondescriptsmile.com +nondescriptstocking.com +novem.pl +ns1p.net +ntv.io +ntvk1.ru +nugg.ad +nuggad.net +numax.nu-1.com +nuseek.com +nuttyorganization.com +nzaza.com +o0bc.com +oas.benchmark.fr +oas.foxnews.com +oas.repubblica.it +oas.roanoke.com +oas.toronto.com +oas.uniontrib.com +oas.villagevoice.com +oascentral.businessweek.com +oascentral.chicagobusiness.com +oascentral.fortunecity.com +oascentral.register.com +obscenesidewalk.com +observantice.com +oclasrv.com +oewa.at +offerforge.com +offermatica.com +olivebrandresponse.com +omniscientspark.com +omniture.com +omtrdc.net +onaudience.com +onclasrv.com +onclickads.net +oneandonlynetwork.com +onenetworkdirect.com +onestat.com +onestatfree.com +online-metrix.net +online.miarroba.com +onlinecash.com +onlinecashmethod.com +onlinerewardcenter.com +onscroll.com +onthe.io +open.oneplus.net +openad.tf1.fr +openad.travelnow.com +openads.friendfinder.com +openads.org +opentag-stats.qubit.com +openx.angelsgroup.org.uk +openx.blindferret.com +operationkettle.com +opienetwork.com +optimallimit.com +optimize-stats.voxmedia.com +optimizely.com +optimost.com +optmd.com +optmstr.com +optnmstr.com +ordingly.com +ota.cartrawler.com +otto-images.developershed.com +outbrain.com +overture.com +owebmoney.ru +owlsr.us +owneriq.net +oxado.com +oxcash.com +oxen.hillcountrytexas.com +pagead.l.google.com +pagefair.com +pagefair.net +pagerank-ranking.de +pagerank-submitter.de +pagerank4you.com +pageranktop.com +paleleaf.com +paradoxfactor.com +parchedangle.com +parketsy.pro +parsely.com +parsimoniouspolice.com +partner-ads.com +partner.pelikan.cz +partnerad.l.google.com +partnercash.de +partners.priceline.com +passion-4.net +pay-ads.com +paycounter.com +paypopup.com +payserve.com +pbnet.ru +pbterra.com +pcash.imlive.com +peacepowder.com +peep-auktion.de +peer39.com +pennyweb.com +pepperjamnetwork.com +perceivequarter.com +percentmobile.com +perfectaudience.com +perfiliate.com +performancerevenue.com +performancerevenues.com +performancing.com +permutive.com +personagraph.com +petiteumbrella.com +pgl.example0101 +pgmediaserve.com +pgpartner.com +pheedo.com +phoenix-adrunner.mycomputer.com +photographpan.com +phpadsnew.new.natuurpark.nl +phpmyvisites.net +picadmedia.com +piet2eix3l.com +pietexture.com +pimproll.com +ping.ublock.org +pippio.com +piquantpigs.com +pixel.adsafeprotected.com +pixel.condenastdigital.com +pixel.digitru.st +pixel.sojern.com +pixel.watch +play4traffic.com +playhaven.com +playmobileads.com +plista.com +plugrush.com +pointroll.com +popads.net +popflawlessads.com +popmyads.com +popub.com +popunder.ru +popup.msn.com +popupmoney.com +popupnation.com +popups.infostart.com +popuptraffic.com +porngraph.com +porntrack.com +possessivebucket.com +possibleboats.com +postrelease.com +potenza.cz +pr-star.de +practicetoothpaste.com +praddpro.de +prchecker.info +precisioncounter.com +predictad.com +premium-offers.com +presetrabbits.com +previousplayground.com +previouspotato.com +primaryads.com +primetime.net +privatecash.com +prmtracking.com +pro-advertising.com +producer.getwisdom.io +proext.com +profero.com +profitrumour.com +programattik.com +projectwonderful.com +promo.badoink.com +promo.ulust.com +promobenef.com +promos.bwin.it +promos.fling.com +promote.pair.com +promotion-campaigns.com +pronetadvertising.com +propellerads.com +props.id +proton-tm.com +protraffic.com +provexia.com +provideplant.com +prsitecheck.com +ps7894.com +pub.chez.com +pub.club-internet.fr +pub.hardware.fr +pub.realmedia.fr +pubdirecte.com +publicidad.elmundo.es +publicidees.com +pubmatic.com +pubs.lemonde.fr +puffyloss.com +puffypull.com +puffypurpose.com +pushazer.com +pushengage.com +puzzlingfall.com +px.dynamicyield.com +q.azcentral.com +qctop.com +qnsr.com +quacksquirrel.com +quaintcan.com +qualtrics.com +quantcast.com +quantcast.mgr.consensu.org +quantserve.com +quantummetric.com +quarterbean.com +quarterserver.de +questaffiliates.net +quicksandear.com +quietknowledge.com +quinst.com +quisma.com +quizzicalzephyr.com +r.scoota.co +radar.cedexis.com +radarurl.com +radiate.com +railwayrainstorm.com +rampidads.com +rank-master.com +rankchamp.de +ranking-charts.de +ranking-hits.de +ranking-id.de +ranking-links.de +ranking-liste.de +rankingchart.de +rankingscout.com +rankyou.com +rapidcounter.com +rapidkittens.com +raresummer.com +rate.ru +ratings.lycos.com +rb1.design.ru +re-directme.com +reachjunction.com +reactx.com +readgoldfish.com +readingguilt.com +readingopera.com +readserver.net +readymoon.com +realcastmedia.com +realclever.com +realclix.com +realmedia-a800.d4p.net +realtechnetwork.com +realtracker.com +rebelsubway.com +receptiveink.com +receptivereaction.com +record.affiliates.karjalakasino.com +record.bonniergaming.com +record.mrwin.com +redirectvoluum.com +reduxmedia.com +referralware.com +referrer.disqus.com +reflectivereward.com +regnow.com +reinvigorate.net +reklam.rfsl.se +reklama.mironet.cz +reklama.reflektor.cz +reklamcsere.hu +reklame.unwired-i.net +reklamer.com.ua +relevanz10.de +relmaxtop.com +remarketingpixel.com +remistrainew.club +remotead.cnet.com +remox.com +republika.onet.pl +resolutekey.com +resonantbrush.com +resonate.com +retargeter.com +revcontent.com +revenue.net +revenuedirect.com +revenuehits.com +revsci.net +revstats.com +richmails.com +richmedia.yimg.com +richstring.com +richwebmaster.com +rightstats.com +ringsrecord.com +ritzykey.com +ritzysponge.com +rlcdn.com +rle.ru +rmads.msn.com +rmedia.boston.com +roar.com +robotreplay.com +rockabox.co +roia.biz +rok.com.com +rose.ixbt.com +rotabanner.com +roughroll.com +roxr.net +rta.dailymail.co.uk +rtbpop.com +rtbpopd.com +rtmark.net +ru-traffic.com +ru4.com +rubiconproject.com +rulerabbit.com +runads.com +rundsp.com +ruthlessrobin.com +s.adroll.com +s2d6.com +sageanalyst.net +sail-horizon.com +samsungacr.com +samsungads.com +saysidewalk.com +sbx.pagesjaunes.fr +sc-analytics.appspot.com +scambiobanner.aruba.it +scanscout.com +scarcesign.com +scarcestream.com +scatteredheat.com +scintillatingscissors.com +scintillatingspace.com +scopelight.com +scorecardresearch.com +scratch2cash.com +screechingfurniture.com +scripte-monster.de +scrubsky.com +scrubswim.com +seadform.net +searchmarketing.com +searchramp.com +secretivecub.com +secretspiders.com +secure.webconnect.net +sedoparking.com +sedotracker.com +selectionsugar.com +selectivesummer.com +sendmepixel.com +sensismediasmart.com.au +separatesilver.com +serv0.com +servedby-buysellads.com +servedbyadbutler.com +servedbyopenx.com +servethis.com +services.hearstmags.com +serving-sys.com +sessioncam.com +sexcounter.com +sexinyourcity.com +sexlist.com +sextracker.com +shakesea.com +shakesuggestion.com +shakytaste.com +shallowsmile.com +shareadspace.com +shareasale.com +sharepointads.com +sharethrough.com +sharppatch.com +shelterstraw.com +sher.index.hu +shermore.info +shinystat.com +shinystat.it +shiveringsail.com +shoppingads.com +sicksmash.com +sidebar.angelfire.com +silkysquirrel.com +sillyscrew.com +similarsabine.com +simpli.fi +simplisticnose.com +sincerebuffalo.com +sincerespy.com +sinefight-skinesia.com +sinoa.com +sitedataprocessing.com +siteimproveanalytics.com +sitemeter.com +sitestat.com +sixscissors.com +sixsigmatraffic.com +sizesidewalk.com +sizmek.com +skimresources.com +skylink.vn +sleepcartoon.com +slipperysack.com +slopeaota.com +smart.brvaffs.com +smart4ads.com +smartadserver.com +smartlook.com +smashsurprise.com +smetrics.ctv.ca +smetrics.walgreens.com +smilingwaves.com +snakesort.com +snapads.com +sneakystamp.com +snoobi.com +socialspark.com +softclick.com.br +sombersea.com +sombersquirrel.com +sombersurprise.com +somniture.stuff.co.nz +sonobi.com +sortable.com +spacash.com +sparkstudios.com +specially4u.net +specificmedia.co.uk +specificpop.com +spectacularsnail.com +speedomizer.com +speedshiftmedia.com +spezialreporte.de +spidersboats.com +spiffymachine.com +spinbox.techtracker.com +spinbox.versiontracker.com +spirebaboon.com +sponsorads.de +sponsorpro.de +sponsors.thoughtsmedia.com +spot.fitness.com +spottysense.com +spotxchange.com +springaftermath.com +spurioussteam.com +spykemediatrack.com +spylog.com +spywarelabs.com +spywords.com +squeamishscarecrow.com +squirrelhands.com +srwww1.com +stackadapt.com +stakingscrew.com +stakingslope.com +standingnest.com +starffa.com +start.freeze.com +stat.cliche.se +stat.dealtime.com +stat.dyna.ultraweb.hu +stat.pl +stat.webmedia.pl +stat.zenon.net +stat24.com +stat24.meta.ua +statcounter.com +static.fmpub.net +static.itrack.it +staticads.btopenworld.com +statistik-gallup.net +statm.the-adult-company.com +stats.blogger.com +stats.directnic.com +stats.hyperinzerce.cz +stats.merriam-webster.com +stats.mirrorfootball.co.uk +stats.olark.com +stats.pusher.com +stats.self.com +stats.townnews.com +stats.unwired-i.net +stats.wordpress.com +stats.x14.eu +stats2.self.com +stats4all.com +statsie.com +statxpress.com +steadfastsound.com +steadfastsystem.com +steelhouse.com +steelhousemedia.com +stickssheep.com +stickyadstv.com +storesurprise.com +stormyachiever.com +stormysponge.com +storygize.net +stoveseashore.com +straightnest.com +straightschool.com +stripedburst.com +strivesidewalk.com +structurerod.com +stupendoussleet.com +subscribe.hearstmags.com +succeedscene.com +suddensidewalk.com +sugarcurtain.com +sugoicounter.com +sulkybutter.com +summerobject.com +sumo.com +sumome.com +superclix.de +superficialsink.com +superstats.com +supertop.ru +supertop100.com +surfmusik-adserver.de +swan-swan-goose.com +swimslope.com +swordfishdc.com +swordgoose.com +t.insigit.com +taboola.com +tagular.com +tailsweep.com +tailsweep.se +takru.com +talentedsteel.com +tangerinenet.biz +tangibleteam.com +tapad.com +tapfiliate.com +tapinfluence.com +targad.de +targetingnow.com +targetnet.com +targetpoint.com +tastefulsongs.com +tatsumi-sys.jp +tawdryson.com +tcads.net +tdxio.com +teads.tv +tealeaf.com +tealiumiq.com +techclicks.net +tedioustooth.com +teenrevenue.com +teenyvolcano.com +teethfan.com +teliad.de +temelio.com +tendertest.com +terriblethumb.com +terribleturkey.com +text-link-ads.com +textad.sexsearch.com +textads.biz +textlinks.com +tfag.de +theadex.com +theadhost.com +theads.me +thebugs.ws +therapistla.com +therichkids.com +thinkablerice.com +thirdrespect.com +thirstytwig.com +threechurch.com +throattrees.com +throtle.io +thruport.com +tia.timeinc.net +ticklesign.com +tidaltv.com +tinybar.com +tlvmedia.com +tnkexchange.com +tns-counter.ru +tntclix.co.uk +toecircle.com +toothbrushnote.com +top-casting-termine.de +top-site-list.com +top.list.ru +top.mail.ru +top.proext.com +top100-images.rambler.ru +top100.mafia.ru +top123.ro +top20free.com +top90.ro +topbarh.box.sk +topbucks.com +topforall.com +topgamesites.net +toplist.cz +toplist.pornhost.com +toplista.mw.hu +toplistcity.com +topping.com.ua +toprebates.com +topsafelist.net +topsir.com +topsite.lv +topsites.com.br +topstats.com +totemcash.com +touchclarity.com +touchclarity.natwest.com +tour.brazzers.com +tpnads.com +tracedesire.com +track.adform.net +track.anchorfree.com +track.contently.com +track.flexlinks.com +track.flexlinkspro.com +track.gawker.com +track.viewdeos.com +track1.viewdeos.com +trackalyzer.com +trackedlink.net +trackedweb.net +tracker-pm2.spilleren.com +tracker.icerocket.com +tracker.marinsm.com +tracker.trackerfix.com +tracking.crunchiemedia.com +tracking.gajmp.com +tracking.ibxlink.com +tracking.internetstores.de +tracking101.com +trackingsoft.com +trackmysales.com +tradeadexchange.com +tradedoubler.com +traffic-exchange.com +traffic.focuusing.com +trafficfactory.biz +trafficholder.com +traffichunt.com +trafficjunky.net +trafficleader.com +trafficsecrets.com +trafficspaces.net +trafficstrategies.com +trafficswarm.com +traffictrader.net +trafficz.com +trafficz.net +traffiq.com +trafic.ro +traktrafficflow.com +tranquilside.com +travis.bosscasinos.com +trekdata.com +tremendoustime.com +trendcounter.com +trendmd.com +tribalfusion.com +trickycelery.com +tritetongue.com +trix.net +trmit.com +truckstomatoes.com +truehits.net +truehits1.gits.net.th +truehits2.gits.net.th +tsyndicate.com +tubemogul.com +turboadv.com +turn.com +tvmtracker.com +twittad.com +twyn.com +tynt.com +typicalteeth.com +tyroo.com +uarating.com +ukbanners.com +ultimateclixx.com +ultramercial.com +ultraoranges.com +unarmedindustry.com +undertone.com +unknowntray.com +unrulymedia.com +untd.com +untidyquestion.com +unusualtitle.com +unwrittenspot.com +urlcash.net +us.a1.yimg.com +usapromotravel.com +useriq.com +userreplay.com +userreplay.net +utils.mediageneral.net +uttermosthobbies.com +v1.cnzz.com +validclick.com +valuead.com +valueclick.com +valueclickmedia.com +valuecommerce.com +valuesponsor.com +vanfireworks.com +variablefitness.com +veille-referencement.com +ventivmedia.com +verblife-3.co +vericlick.com +vertadnet.com +verticalmass.com +veruta.com +vervewireless.com +vibrantmedia.com +video-stats.video.google.com +videoadex.com +videoamp.com +videoegg.com +vidora.com +view4cash.de +visiblemeasures.com +visistat.com +visit.webhosting.yahoo.com +visitbox.de +visitpath.com +visual-pagerank.fr +visualrevenue.com +vmmpxl.com +voicefive.com +voicevegetable.com +volvelle.tech +vpon.com +vrs.cz +vs.tucows.com +vtracy.de +vungle.com +w55c.net +wa.and.co.uk +warlog.ru +waryfog.com +watchingthat.com +wateryvan.com +wdads.sx.atl.publicus.com +web-stat.com +web.informer.com +web2.deja.com +webads.co.nz +webads.nl +webangel.ru +webcash.nl +webcounter.cz +webcounter.goweb.de +webgains.com +webmaster-partnerprogramme24.de +webmasterplan.com +webmasterplan.de +weborama.com +weborama.fr +webpower.com +webseoanalytics.com +websponsors.com +webstat.channel4.com +webstat.com +webstat.net +webstats4u.com +webtrackerplus.com +webtracky.com +webtraffic.se +webtraxx.de +webtrends.telegraph.co.uk +webtrendslive.com +wellmadefrog.com +werbung.meteoxpress.com +wetrack.it +whaleads.com +whenu.com +whirlwealth.com +whiskyqueue.com +whispa.com +whisperingcrib.com +whoisonline.net +wholesaletraffic.info +widdit.com +widespace.com +widget.privy.com +widgetbucks.com +wikia-ads.wikia.com +window.nixnet.cz +wintricksbanner.googlepages.com +wirecomic.com +wisepops.com +witch-counter.de +wlmarketing.com +womanear.com +wonderlandads.com +wondoads.de +woopra.com +worldwide-cash.net +worriednumber.com +worrybutter.com +wpnrtnmrewunrtok.xyz +wryfinger.com +wt-eu02.net +wtlive.com +www-banner.chat.ru +www-google-analytics.l.google.com +www.dnps.com +www.kaplanindex.com +www.money4exit.de +www.photo-ads.co.uk +www8.glam.com +wwwpromoter.com +x-traceur.com +x6.yakiuchi.com +xchange.ro +xclicks.net +xertive.com +xg4ken.com +xiti.com +xovq5nemr.com +xplusone.com +xponsor.com +xq1.net +xtendmedia.com +xtremetop100.com +xxxcounter.com +xxxmyself.com +y.ibsys.com +yab-adimages.s3.amazonaws.com +yadro.ru +yepads.com +yesads.com +yesadvertising.com +yieldads.com +yieldlab.net +yieldmanager.com +yieldmanager.net +yieldmo.com +yieldtraffic.com +yldbt.com +ymetrica1.com +yoggrt.com +z5x.net +zangocash.com +zanox-affiliate.de +zanox.com +zantracker.com +zbwp6ghm.com +zealousfield.com +zedo.com +zemanta.com +zencudo.co.uk +zenkreka.com +zenzuu.com +zeus.developershed.com +zeusclicks.com +zlp6s.pw +zm232.com +zmedia.com +zqtk.net +zy16eoat1w.com diff --git a/assets/data/languages.json b/assets/data/languages.json new file mode 100644 index 0000000..70ab11b --- /dev/null +++ b/assets/data/languages.json @@ -0,0 +1,187 @@ +{ + "abk": "аҧсуа бызшәа", + "aar": "Afaraf", + "afr": "Afrikaans", + "aka": "Akan", + "sqi": "gjuha shqipe", + "amh": "አማርኛ", + "ara": "العربية", + "arg": "aragonés", + "hye": "Հայերեն", + "asm": "অসমীয়া", + "ava": "авар мацӀ", + "ave": "avesta", + "aym": "aymar aru", + "aze": "azərbaycan dili", + "bam": "bamanankan", + "bak": "башҡорт теле", + "eus": "euskara", + "bel": "беларуская мова", + "ben": "বাংলা", + "bih": "भोजपुरी", + "bis": "Bislama", + "bos": "bosanski jezik", + "bre": "brezhoneg", + "bul": "български език", + "mya": "ဗမာစာ", + "cat": "català", + "cha": "Chamoru", + "che": "нохчийн мотт", + "nya": "chiCheŵa", + "zho": "中文 (Zhōngwén)", + "chv": "чӑваш чӗлхи", + "cor": "Kernewek", + "cos": "corsu", + "cre": "ᓀᐦᐃᔭᐍᐏᐣ", + "hrv": "hrvatski jezik", + "ces": "čeština", + "dan": "dansk", + "div": "ދިވެހި", + "nld": "Nederlands", + "dzo": "རྫོང་ཁ", + "eng": "English", + "epo": "Esperanto", + "est": "eesti", + "ewe": "Eʋegbe", + "fao": "føroyskt", + "fij": "vosa Vakaviti", + "fin": "suomi", + "fre": "français", + "ful": "Fulfulde", + "glg": "galego", + "kat": "ქართული", + "ger": "Deutsch", + "ell": "ελληνικά", + "grn": "Avañe'ẽ", + "guj": "ગુજરાતી", + "hat": "Kreyòl ayisyen", + "hau": "Hausa", + "heb": "עברית", + "her": "Otjiherero", + "hin": "हिन्दी", + "hmo": "Hiri Motu", + "hun": "magyar", + "ina": "Interlingua", + "ind": "Bahasa Indonesia", + "ile": "Interlingue", + "gle": "Gaeilge", + "ibo": "Asụsụ Igbo", + "ipk": "Iñupiaq", + "ido": "Ido", + "isl": "Íslenska", + "ita": "italiano", + "iku": "ᐃᓄᒃᑎᑐᑦ", + "jpn": "日本語 (にほんご)", + "jav": "basa Jawa", + "kal": "kalaallisut", + "kan": "ಕನ್ನಡ", + "kau": "Kanuri", + "kas": "कश्मीरी", + "kaz": "қазақ тілі", + "khm": "ខ្មែរ", + "kik": "Gĩkũyũ", + "kin": "Ikinyarwanda", + "kir": "Кыргызча", + "kom": "коми кыв", + "kon": "KiKongo", + "kor": "한국어 (韓國語)", + "kur": "Kurdî", + "kua": "Kuanyama", + "lat": "latine", + "ltz": "Lëtzebuergesch", + "lug": "Luganda", + "lim": "Limburgs", + "lin": "Lingála", + "lao": "ພາສາລາວ", + "lit": "lietuvių kalba", + "lub": "Tshiluba", + "lav": "latviešu valoda", + "glv": "Gaelg", + "mkd": "македонски јазик", + "mlg": "fiteny malagasy", + "msa": "bahasa Melayu", + "mal": "മലയാളം", + "mlt": "Malti", + "mri": "te reo Māori", + "mar": "मराठी", + "mah": "Kajin M̧ajeļ", + "mon": "монгол", + "nau": "Ekakairũ Naoero", + "nav": "Diné bizaad", + "nob": "Norsk bokmål", + "nde": "isiNdebele", + "nep": "नेपाली", + "ndo": "Owambo", + "nno": "Norsk nynorsk", + "nor": "Norsk", + "iii": "ꆈꌠ꒿ Nuosuhxop", + "nbl": "isiNdebele", + "oci": "occitan", + "oji": "ᐊᓂᔑᓈᐯᒧᐎᓐ", + "chu": "ѩзыкъ словѣньскъ", + "orm": "Afaan Oromoo", + "ori": "ଓଡ଼ିଆ", + "oss": "ирон æвзаг", + "pan": "ਪੰਜਾਬੀ", + "pli": "पाऴि", + "fas": "فارسی", + "pol": "język polski", + "pus": "پښتو", + "por": "português", + "pob": "português Brazil", + "que": "Runa Simi", + "roh": "rumantsch grischun", + "run": "Ikirundi", + "ron": "limba română", + "rus": "русский язык", + "san": "संस्कृतम्", + "srd": "sardu", + "snd": "सिन्धी", + "sme": "Davvisámegiella", + "smo": "gagana fa'a Samoa", + "sag": "yângâ tî sängö", + "srp": "српски језик", + "gla": "Gàidhlig", + "sna": "chiShona", + "sin": "සිංහල", + "slk": "slovenčina", + "slv": "slovenski jezik", + "som": "Soomaaliga", + "sot": "Sesotho", + "spa": "español", + "sun": "Basa Sunda", + "swa": "Kiswahili", + "ssw": "SiSwati", + "swe": "Svenska", + "tam": "தமிழ்", + "tel": "తెలుగు", + "tgk": "тоҷикӣ", + "tha": "ไทย", + "tir": "ትግርኛ", + "bod": "བོད་ཡིག", + "tuk": "Türkmen", + "tgl": "Wikang Tagalog", + "tsn": "Setswana", + "ton": "faka Tonga", + "tur": "Türkçe", + "tso": "Xitsonga", + "tat": "татар теле", + "twi": "Twi", + "tah": "Reo Tahiti", + "uig": "Uyƣurqə", + "ukr": "українська мова", + "urd": "اردو", + "uzb": "O'zbek", + "ven": "Tshivenḓa", + "vie": "Tiếng Việt", + "vol": "Volapük", + "wln": "walon", + "cym": "Cymraeg", + "wol": "Wollof", + "fry": "Frysk", + "xho": "isiXhosa", + "yid": "ייִדיש", + "yor": "Yorùbá", + "zha": "Saɯ cueŋƅ", + "zul": "isiZulu" +} diff --git a/assets/drift_worker.dart.js b/assets/drift_worker.dart.js new file mode 100644 index 0000000..853ffd1 --- /dev/null +++ b/assets/drift_worker.dart.js @@ -0,0 +1,13358 @@ +(function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) +for(var r=0;r=0)return true +if(typeof version=="function"&&version.length==0){var q=version() +if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() +function inherit(a,b){a.prototype.constructor=a +a.prototype["$i"+a.name]=a +if(b!=null){if(z){Object.setPrototypeOf(a.prototype,b.prototype) +return}var s=Object.create(b.prototype) +copyProperties(a.prototype,s) +a.prototype=s}}function inheritMany(a,b){for(var s=0;s4294967295)throw A.a(A.Y(a,0,4294967295,"length",null)) +return J.ug(new Array(a),b)}, +q_(a,b){if(a<0)throw A.a(A.K("Length must be a non-negative integer: "+a,null)) +return A.d(new Array(a),b.h("w<0>"))}, +pY(a,b){if(a<0)throw A.a(A.K("Length must be a non-negative integer: "+a,null)) +return A.d(new Array(a),b.h("w<0>"))}, +ug(a,b){return J.kb(A.d(a,b.h("w<0>")))}, +kb(a){a.fixed$length=Array +return a}, +uh(a,b){return J.tF(a,b)}, +q0(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 +default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 +default:return!1}}, +ui(a,b){var s,r +for(s=a.length;b0;b=s){s=b-1 +r=a.charCodeAt(s) +if(r!==32&&r!==13&&!J.q0(r))break}return b}, +ci(a){if(typeof a=="number"){if(Math.floor(a)==a)return J.el.prototype +return J.hb.prototype}if(typeof a=="string")return J.bX.prototype +if(a==null)return J.em.prototype +if(typeof a=="boolean")return J.ha.prototype +if(Array.isArray(a))return J.w.prototype +if(typeof a!="object"){if(typeof a=="function")return J.bY.prototype +if(typeof a=="symbol")return J.eo.prototype +if(typeof a=="bigint")return J.aY.prototype +return a}if(a instanceof A.e)return a +return J.pk(a)}, +V(a){if(typeof a=="string")return J.bX.prototype +if(a==null)return a +if(Array.isArray(a))return J.w.prototype +if(typeof a!="object"){if(typeof a=="function")return J.bY.prototype +if(typeof a=="symbol")return J.eo.prototype +if(typeof a=="bigint")return J.aY.prototype +return a}if(a instanceof A.e)return a +return J.pk(a)}, +aM(a){if(a==null)return a +if(Array.isArray(a))return J.w.prototype +if(typeof a!="object"){if(typeof a=="function")return J.bY.prototype +if(typeof a=="symbol")return J.eo.prototype +if(typeof a=="bigint")return J.aY.prototype +return a}if(a instanceof A.e)return a +return J.pk(a)}, +x8(a){if(typeof a=="number")return J.d0.prototype +if(typeof a=="string")return J.bX.prototype +if(a==null)return a +if(!(a instanceof A.e))return J.cA.prototype +return a}, +fv(a){if(typeof a=="string")return J.bX.prototype +if(a==null)return a +if(!(a instanceof A.e))return J.cA.prototype +return a}, +X(a,b){if(a==null)return b==null +if(typeof a!="object")return b!=null&&a===b +return J.ci(a).O(a,b)}, +aO(a,b){if(typeof b==="number")if(Array.isArray(a)||typeof a=="string"||A.rI(a,a[v.dispatchPropertyName]))if(b>>>0===b&&b>>0===b&&b").b(a))return new A.eV(a,b.h("@<0>").H(c).h("eV<1,2>")) +return new A.cm(a,b.h("@<0>").H(c).h("cm<1,2>"))}, +uk(a){return new A.bZ("Field '"+a+"' has not been initialized.")}, +o8(a){var s,r=a^48 +if(r<=9)return r +s=a|32 +if(97<=s&&s<=102)return s-87 +return-1}, +c8(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +oL(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +aD(a,b,c){return a}, +pn(a){var s,r +for(s=$.cQ.length,r=0;rc)A.y(A.Y(b,0,c,"start",null))}return new A.cy(a,b,c,d.h("cy<0>"))}, +eq(a,b,c,d){if(t.Q.b(a))return new A.cr(a,b,c.h("@<0>").H(d).h("cr<1,2>")) +return new A.az(a,b,c.h("@<0>").H(d).h("az<1,2>"))}, +oM(a,b,c){var s="takeCount" +A.bT(b,s) +A.ab(b,s) +if(t.Q.b(a))return new A.ed(a,b,c.h("ed<0>")) +return new A.cz(a,b,c.h("cz<0>"))}, +qj(a,b,c){var s="count" +if(t.Q.b(a)){A.bT(b,s) +A.ab(b,s) +return new A.cX(a,b,c.h("cX<0>"))}A.bT(b,s) +A.ab(b,s) +return new A.bB(a,b,c.h("bB<0>"))}, +ue(a,b,c){return new A.cq(a,b,c.h("cq<0>"))}, +ak(){return new A.b3("No element")}, +pX(){return new A.b3("Too few elements")}, +cc:function cc(){}, +fM:function fM(a,b){this.a=a +this.$ti=b}, +cm:function cm(a,b){this.a=a +this.$ti=b}, +eV:function eV(a,b){this.a=a +this.$ti=b}, +eQ:function eQ(){}, +ah:function ah(a,b){this.a=a +this.$ti=b}, +bZ:function bZ(a){this.a=a}, +e8:function e8(a){this.a=a}, +of:function of(){}, +kE:function kE(){}, +u:function u(){}, +P:function P(){}, +cy:function cy(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +aZ:function aZ(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +az:function az(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cr:function cr(a,b,c){this.a=a +this.b=b +this.$ti=c}, +b0:function b0(a,b,c){var _=this +_.a=null +_.b=a +_.c=b +_.$ti=c}, +D:function D(a,b,c){this.a=a +this.b=b +this.$ti=c}, +aT:function aT(a,b,c){this.a=a +this.b=b +this.$ti=c}, +eK:function eK(a,b){this.a=a +this.b=b}, +ef:function ef(a,b,c){this.a=a +this.b=b +this.$ti=c}, +h0:function h0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=null +_.$ti=d}, +cz:function cz(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ed:function ed(a,b,c){this.a=a +this.b=b +this.$ti=c}, +hH:function hH(a,b,c){this.a=a +this.b=b +this.$ti=c}, +bB:function bB(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cX:function cX(a,b,c){this.a=a +this.b=b +this.$ti=c}, +hA:function hA(a,b){this.a=a +this.b=b}, +eA:function eA(a,b,c){this.a=a +this.b=b +this.$ti=c}, +hB:function hB(a,b){this.a=a +this.b=b +this.c=!1}, +cs:function cs(a){this.$ti=a}, +fY:function fY(){}, +eL:function eL(a,b){this.a=a +this.$ti=b}, +i_:function i_(a,b){this.a=a +this.$ti=b}, +bt:function bt(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cq:function cq(a,b,c){this.a=a +this.b=b +this.$ti=c}, +ej:function ej(a,b){this.a=a +this.b=b +this.c=-1}, +eg:function eg(){}, +hL:function hL(){}, +dj:function dj(){}, +ez:function ez(a,b){this.a=a +this.$ti=b}, +hG:function hG(a){this.a=a}, +fq:function fq(){}, +rS(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +rI(a,b){var s +if(b!=null){s=b.x +if(s!=null)return s}return t.aU.b(a)}, +v(a){var s +if(typeof a=="string")return a +if(typeof a=="number"){if(a!==0)return""+a}else if(!0===a)return"true" +else if(!1===a)return"false" +else if(a==null)return"null" +s=J.aU(a) +return s}, +ey(a){var s,r=$.q7 +if(r==null)r=$.q7=Symbol("identityHashCode") +s=a[r] +if(s==null){s=Math.random()*0x3fffffff|0 +a[r]=s}return s}, +q8(a,b){var s,r,q,p,o,n=null,m=/^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(a) +if(m==null)return n +s=m[3] +if(b==null){if(s!=null)return parseInt(a,10) +if(m[2]!=null)return parseInt(a,16) +return n}if(b<2||b>36)throw A.a(A.Y(b,2,36,"radix",n)) +if(b===10&&s!=null)return parseInt(a,10) +if(b<10||s==null){r=b<=10?47+b:86+b +q=m[1] +for(p=q.length,o=0;or)return n}return parseInt(a,b)}, +ks(a){return A.us(a)}, +us(a){var s,r,q,p +if(a instanceof A.e)return A.aK(A.aE(a),null) +s=J.ci(a) +if(s===B.aG||s===B.aJ||t.ak.b(a)){r=B.a1(a) +if(r!=="Object"&&r!=="")return r +q=a.constructor +if(typeof q=="function"){p=q.name +if(typeof p=="string"&&p!=="Object"&&p!=="")return p}}return A.aK(A.aE(a),null)}, +q9(a){if(a==null||typeof a=="number"||A.bO(a))return J.aU(a) +if(typeof a=="string")return JSON.stringify(a) +if(a instanceof A.cn)return a.j(0) +if(a instanceof A.f9)return a.fP(!0) +return"Instance of '"+A.ks(a)+"'"}, +ut(){if(!!self.location)return self.location.href +return null}, +q6(a){var s,r,q,p,o=a.length +if(o<=500)return String.fromCharCode.apply(null,a) +for(s="",r=0;r65535)return A.uC(a)}return A.q6(a)}, +uD(a,b,c){var s,r,q,p +if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) +for(s=b,r="";s>>0,s&1023|56320)}}throw A.a(A.Y(a,0,1114111,null,null))}, +aS(a){if(a.date===void 0)a.date=new Date(a.a) +return a.date}, +uB(a){return a.c?A.aS(a).getUTCFullYear()+0:A.aS(a).getFullYear()+0}, +uz(a){return a.c?A.aS(a).getUTCMonth()+1:A.aS(a).getMonth()+1}, +uv(a){return a.c?A.aS(a).getUTCDate()+0:A.aS(a).getDate()+0}, +uw(a){return a.c?A.aS(a).getUTCHours()+0:A.aS(a).getHours()+0}, +uy(a){return a.c?A.aS(a).getUTCMinutes()+0:A.aS(a).getMinutes()+0}, +uA(a){return a.c?A.aS(a).getUTCSeconds()+0:A.aS(a).getSeconds()+0}, +ux(a){return a.c?A.aS(a).getUTCMilliseconds()+0:A.aS(a).getMilliseconds()+0}, +uu(a){var s=a.$thrownJsError +if(s==null)return null +return A.R(s)}, +dX(a,b){var s,r="index" +if(!A.bn(b))return new A.aV(!0,b,r,null) +s=J.ae(a) +if(b<0||b>=s)return A.h6(b,s,a,null,r) +return A.kw(b,r)}, +x2(a,b,c){if(a>c)return A.Y(a,0,c,"start",null) +if(b!=null)if(bc)return A.Y(b,a,c,"end",null) +return new A.aV(!0,b,"end",null)}, +dU(a){return new A.aV(!0,a,null,null)}, +a(a){return A.rG(new Error(),a)}, +rG(a,b){var s +if(b==null)b=new A.bD() +a.dartException=b +s=A.xH +if("defineProperty" in Object){Object.defineProperty(a,"message",{get:s}) +a.name=""}else a.toString=s +return a}, +xH(){return J.aU(this.dartException)}, +y(a){throw A.a(a)}, +ol(a,b){throw A.rG(b,a)}, +W(a){throw A.a(A.ax(a))}, +bE(a){var s,r,q,p,o,n +a=A.rQ(a.replace(String({}),"$receiver$")) +s=a.match(/\\\$[a-zA-Z]+\\\$/g) +if(s==null)s=A.d([],t.s) +r=s.indexOf("\\$arguments\\$") +q=s.indexOf("\\$argumentsExpr\\$") +p=s.indexOf("\\$expr\\$") +o=s.indexOf("\\$method\\$") +n=s.indexOf("\\$receiver\\$") +return new A.lf(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, +lg(a){return function($expr$){var $argumentsExpr$="$arguments$" +try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, +qs(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, +oE(a,b){var s=b==null,r=s?null:b.method +return new A.hd(a,r,s?null:b.receiver)}, +E(a){if(a==null)return new A.hr(a) +if(a instanceof A.ee)return A.cj(a,a.a) +if(typeof a!=="object")return a +if("dartException" in a)return A.cj(a,a.dartException) +return A.wA(a)}, +cj(a,b){if(t.w.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a +return b}, +wA(a){var s,r,q,p,o,n,m,l,k,j,i,h,g +if(!("message" in a))return a +s=a.message +if("number" in a&&typeof a.number=="number"){r=a.number +q=r&65535 +if((B.b.R(r,16)&8191)===10)switch(q){case 438:return A.cj(a,A.oE(A.v(s)+" (Error "+q+")",null)) +case 445:case 5007:A.v(s) +return A.cj(a,new A.eu())}}if(a instanceof TypeError){p=$.rY() +o=$.rZ() +n=$.t_() +m=$.t0() +l=$.t3() +k=$.t4() +j=$.t2() +$.t1() +i=$.t6() +h=$.t5() +g=p.ar(s) +if(g!=null)return A.cj(a,A.oE(s,g)) +else{g=o.ar(s) +if(g!=null){g.method="call" +return A.cj(a,A.oE(s,g))}else if(n.ar(s)!=null||m.ar(s)!=null||l.ar(s)!=null||k.ar(s)!=null||j.ar(s)!=null||m.ar(s)!=null||i.ar(s)!=null||h.ar(s)!=null)return A.cj(a,new A.eu())}return A.cj(a,new A.hK(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new A.eD() +s=function(b){try{return String(b)}catch(f){}return null}(a) +return A.cj(a,new A.aV(!1,null,null,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new A.eD() +return a}, +R(a){var s +if(a instanceof A.ee)return a.b +if(a==null)return new A.fd(a) +s=a.$cachedTrace +if(s!=null)return s +s=new A.fd(a) +if(typeof a==="object")a.$cachedTrace=s +return s}, +pp(a){if(a==null)return J.aw(a) +if(typeof a=="object")return A.ey(a) +return J.aw(a)}, +x4(a,b){var s,r,q,p=a.length +for(s=0;s=0 +else if(b instanceof A.cu){s=B.a.K(a,c) +return b.b.test(s)}else return!J.or(b,B.a.K(a,c)).gF(0)}, +pj(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") +return a}, +xD(a,b,c,d){var s=b.fe(a,d) +if(s==null)return a +return A.pr(a,s.b.index,s.gbz(),c)}, +rQ(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") +return a}, +bd(a,b,c){var s +if(typeof b=="string")return A.xC(a,b,c) +if(b instanceof A.cu){s=b.gfq() +s.lastIndex=0 +return a.replace(s,A.pj(c))}return A.xB(a,b,c)}, +xB(a,b,c){var s,r,q,p +for(s=J.or(b,a),s=s.gt(s),r=0,q="";s.k();){p=s.gm() +q=q+a.substring(r,p.gcq())+c +r=p.gbz()}s=q+a.substring(r) +return s.charCodeAt(0)==0?s:s}, +xC(a,b,c){var s,r,q +if(b===""){if(a==="")return c +s=a.length +r=""+c +for(q=0;q=0)return a.split(b).join(c) +return a.replace(new RegExp(A.rQ(b),"g"),A.pj(c))}, +xE(a,b,c,d){var s,r,q,p +if(typeof b=="string"){s=a.indexOf(b,d) +if(s<0)return a +return A.pr(a,s,s+b.length,c)}if(b instanceof A.cu)return d===0?a.replace(b.b,A.pj(c)):A.xD(a,b,c,d) +r=J.tD(b,a,d) +q=r.gt(r) +if(!q.k())return a +p=q.gm() +return B.a.aN(a,p.gcq(),p.gbz(),c)}, +pr(a,b,c,d){return a.substring(0,b)+d+a.substring(c)}, +ap:function ap(a,b){this.a=a +this.b=b}, +cJ:function cJ(a,b){this.a=a +this.b=b}, +e9:function e9(){}, +ea:function ea(a,b,c){this.a=a +this.b=b +this.$ti=c}, +cI:function cI(a,b){this.a=a +this.$ti=b}, +ip:function ip(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +k6:function k6(){}, +ek:function ek(a,b){this.a=a +this.$ti=b}, +lf:function lf(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +eu:function eu(){}, +hd:function hd(a,b,c){this.a=a +this.b=b +this.c=c}, +hK:function hK(a){this.a=a}, +hr:function hr(a){this.a=a}, +ee:function ee(a,b){this.a=a +this.b=b}, +fd:function fd(a){this.a=a +this.b=null}, +cn:function cn(){}, +jc:function jc(){}, +jd:function jd(){}, +l5:function l5(){}, +kW:function kW(){}, +e4:function e4(a,b){this.a=a +this.b=b}, +ia:function ia(a){this.a=a}, +hx:function hx(a){this.a=a}, +bu:function bu(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +ke:function ke(a){this.a=a}, +kd:function kd(a){this.a=a}, +kh:function kh(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +b9:function b9(a,b){this.a=a +this.$ti=b}, +hg:function hg(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +o9:function o9(a){this.a=a}, +oa:function oa(a){this.a=a}, +ob:function ob(a){this.a=a}, +f9:function f9(){}, +iv:function iv(){}, +cu:function cu(a,b){var _=this +_.a=a +_.b=b +_.d=_.c=null}, +dB:function dB(a){this.b=a}, +i0:function i0(a,b,c){this.a=a +this.b=b +this.c=c}, +lR:function lR(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +di:function di(a,b){this.a=a +this.c=b}, +iD:function iD(a,b,c){this.a=a +this.b=b +this.c=c}, +nv:function nv(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +xG(a){A.ol(new A.bZ("Field '"+a+"' has been assigned during initialization."),new Error())}, +G(){A.ol(new A.bZ("Field '' has not been initialized."),new Error())}, +pt(){A.ol(new A.bZ("Field '' has already been initialized."),new Error())}, +om(){A.ol(new A.bZ("Field '' has been assigned during initialization."),new Error())}, +m7(a){var s=new A.m6(a) +return s.b=s}, +m6:function m6(a){this.a=a +this.b=null}, +vS(a){return a}, +p8(a,b,c){}, +iM(a){var s,r,q +if(t.aP.b(a))return a +s=J.V(a) +r=A.b_(s.gl(a),null,!1,t.z) +for(q=0;q>>0!==a||a>=c)throw A.a(A.dX(b,a))}, +cg(a,b,c){var s +if(!(a>>>0!==a))s=b>>>0!==b||a>b||b>c +else s=!0 +if(s)throw A.a(A.x2(a,b,c)) +return b}, +d1:function d1(){}, +es:function es(){}, +d2:function d2(){}, +d4:function d4(){}, +c1:function c1(){}, +aR:function aR(){}, +hi:function hi(){}, +hj:function hj(){}, +hk:function hk(){}, +d3:function d3(){}, +hl:function hl(){}, +hm:function hm(){}, +hn:function hn(){}, +et:function et(){}, +bx:function bx(){}, +f4:function f4(){}, +f5:function f5(){}, +f6:function f6(){}, +f7:function f7(){}, +qg(a,b){var s=b.c +return s==null?b.c=A.p3(a,b.x,!0):s}, +oH(a,b){var s=b.c +return s==null?b.c=A.fj(a,"C",[b.x]):s}, +qh(a){var s=a.w +if(s===6||s===7||s===8)return A.qh(a.x) +return s===12||s===13}, +uG(a){return a.as}, +aq(a){return A.iJ(v.typeUniverse,a,!1)}, +xg(a,b){var s,r,q,p,o +if(a==null)return null +s=b.y +r=a.Q +if(r==null)r=a.Q=new Map() +q=b.as +p=r.get(q) +if(p!=null)return p +o=A.bP(v.typeUniverse,a.x,s,0) +r.set(q,o) +return o}, +bP(a1,a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=a2.w +switch(a0){case 5:case 1:case 2:case 3:case 4:return a2 +case 6:s=a2.x +r=A.bP(a1,s,a3,a4) +if(r===s)return a2 +return A.qW(a1,r,!0) +case 7:s=a2.x +r=A.bP(a1,s,a3,a4) +if(r===s)return a2 +return A.p3(a1,r,!0) +case 8:s=a2.x +r=A.bP(a1,s,a3,a4) +if(r===s)return a2 +return A.qU(a1,r,!0) +case 9:q=a2.y +p=A.dR(a1,q,a3,a4) +if(p===q)return a2 +return A.fj(a1,a2.x,p) +case 10:o=a2.x +n=A.bP(a1,o,a3,a4) +m=a2.y +l=A.dR(a1,m,a3,a4) +if(n===o&&l===m)return a2 +return A.p1(a1,n,l) +case 11:k=a2.x +j=a2.y +i=A.dR(a1,j,a3,a4) +if(i===j)return a2 +return A.qV(a1,k,i) +case 12:h=a2.x +g=A.bP(a1,h,a3,a4) +f=a2.y +e=A.wx(a1,f,a3,a4) +if(g===h&&e===f)return a2 +return A.qT(a1,g,e) +case 13:d=a2.y +a4+=d.length +c=A.dR(a1,d,a3,a4) +o=a2.x +n=A.bP(a1,o,a3,a4) +if(c===d&&n===o)return a2 +return A.p2(a1,n,c,!0) +case 14:b=a2.x +if(b") +for(r=1;r=0)p+=" "+r[q];++q}return p+"})"}, +rj(a3,a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=", ",a2=null +if(a5!=null){s=a5.length +if(a4==null)a4=A.d([],t.s) +else a2=a4.length +r=a4.length +for(q=s;q>0;--q)a4.push("T"+(r+q)) +for(p=t.X,o=t._,n="<",m="",q=0;q0){a+=a0+"[" +for(a0="",q=0;q0){a+=a0+"{" +for(a0="",q=0;q "+b}, +aK(a,b){var s,r,q,p,o,n,m=a.w +if(m===5)return"erased" +if(m===2)return"dynamic" +if(m===3)return"void" +if(m===1)return"Never" +if(m===4)return"any" +if(m===6)return A.aK(a.x,b) +if(m===7){s=a.x +r=A.aK(s,b) +q=s.w +return(q===12||q===13?"("+r+")":r)+"?"}if(m===8)return"FutureOr<"+A.aK(a.x,b)+">" +if(m===9){p=A.wz(a.x) +o=a.y +return o.length>0?p+("<"+A.rs(o,b)+">"):p}if(m===11)return A.wl(a,b) +if(m===12)return A.rj(a,b,null) +if(m===13)return A.rj(a.x,b,a.y) +if(m===14){n=a.x +return b[b.length-1-n]}return"?"}, +wz(a){var s=v.mangledGlobalNames[a] +if(s!=null)return s +return"minified:"+a}, +vr(a,b){var s=a.tR[b] +for(;typeof s=="string";)s=a.tR[s] +return s}, +vq(a,b){var s,r,q,p,o,n=a.eT,m=n[b] +if(m==null)return A.iJ(a,b,!1) +else if(typeof m=="number"){s=m +r=A.fk(a,5,"#") +q=A.nJ(s) +for(p=0;p0)p+="<"+A.fi(c)+">" +s=a.eC.get(p) +if(s!=null)return s +r=new A.b2(null,null) +r.w=9 +r.x=b +r.y=c +if(c.length>0)r.c=c[0] +r.as=p +q=A.bK(a,r) +a.eC.set(p,q) +return q}, +p1(a,b,c){var s,r,q,p,o,n +if(b.w===10){s=b.x +r=b.y.concat(c)}else{r=c +s=b}q=s.as+(";<"+A.fi(r)+">") +p=a.eC.get(q) +if(p!=null)return p +o=new A.b2(null,null) +o.w=10 +o.x=s +o.y=r +o.as=q +n=A.bK(a,o) +a.eC.set(q,n) +return n}, +qV(a,b,c){var s,r,q="+"+(b+"("+A.fi(c)+")"),p=a.eC.get(q) +if(p!=null)return p +s=new A.b2(null,null) +s.w=11 +s.x=b +s.y=c +s.as=q +r=A.bK(a,s) +a.eC.set(q,r) +return r}, +qT(a,b,c){var s,r,q,p,o,n=b.as,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+A.fi(m) +if(j>0){s=l>0?",":"" +g+=s+"["+A.fi(k)+"]"}if(h>0){s=l>0?",":"" +g+=s+"{"+A.vi(i)+"}"}r=n+(g+")") +q=a.eC.get(r) +if(q!=null)return q +p=new A.b2(null,null) +p.w=12 +p.x=b +p.y=c +p.as=r +o=A.bK(a,p) +a.eC.set(r,o) +return o}, +p2(a,b,c,d){var s,r=b.as+("<"+A.fi(c)+">"),q=a.eC.get(r) +if(q!=null)return q +s=A.vk(a,b,c,r,d) +a.eC.set(r,s) +return s}, +vk(a,b,c,d,e){var s,r,q,p,o,n,m,l +if(e){s=c.length +r=A.nJ(s) +for(q=0,p=0;p0){n=A.bP(a,b,r,0) +m=A.dR(a,c,r,0) +return A.p2(a,n,m,c!==m)}}l=new A.b2(null,null) +l.w=13 +l.x=b +l.y=c +l.as=d +return A.bK(a,l)}, +qN(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, +qP(a){var s,r,q,p,o,n,m,l=a.r,k=a.s +for(s=l.length,r=0;r=48&&q<=57)r=A.v9(r+1,q,l,k) +else if((((q|32)>>>0)-97&65535)<26||q===95||q===36||q===124)r=A.qO(a,r,l,k,!1) +else if(q===46)r=A.qO(a,r,l,k,!0) +else{++r +switch(q){case 44:break +case 58:k.push(!1) +break +case 33:k.push(!0) +break +case 59:k.push(A.cf(a.u,a.e,k.pop())) +break +case 94:k.push(A.vn(a.u,k.pop())) +break +case 35:k.push(A.fk(a.u,5,"#")) +break +case 64:k.push(A.fk(a.u,2,"@")) +break +case 126:k.push(A.fk(a.u,3,"~")) +break +case 60:k.push(a.p) +a.p=k.length +break +case 62:A.vb(a,k) +break +case 38:A.va(a,k) +break +case 42:p=a.u +k.push(A.qW(p,A.cf(p,a.e,k.pop()),a.n)) +break +case 63:p=a.u +k.push(A.p3(p,A.cf(p,a.e,k.pop()),a.n)) +break +case 47:p=a.u +k.push(A.qU(p,A.cf(p,a.e,k.pop()),a.n)) +break +case 40:k.push(-3) +k.push(a.p) +a.p=k.length +break +case 41:A.v8(a,k) +break +case 91:k.push(a.p) +a.p=k.length +break +case 93:o=k.splice(a.p) +A.qQ(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-1) +break +case 123:k.push(a.p) +a.p=k.length +break +case 125:o=k.splice(a.p) +A.vd(a.u,a.e,o) +a.p=k.pop() +k.push(o) +k.push(-2) +break +case 43:n=l.indexOf("(",r) +k.push(l.substring(r,n)) +k.push(-4) +k.push(a.p) +a.p=k.length +r=n+1 +break +default:throw"Bad character "+q}}}m=k.pop() +return A.cf(a.u,a.e,m)}, +v9(a,b,c,d){var s,r,q=b-48 +for(s=c.length;a=48&&r<=57))break +q=q*10+(r-48)}d.push(q) +return a}, +qO(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 +for(s=c.length;m>>0)-97&65535)<26||r===95||r===36||r===124))q=r>=48&&r<=57 +else q=!0 +if(!q)break}}p=c.substring(b,m) +if(e){s=a.u +o=a.e +if(o.w===10)o=o.x +n=A.vr(s,o.x)[p] +if(n==null)A.y('No "'+p+'" in "'+A.uG(o)+'"') +d.push(A.fl(s,o,n))}else d.push(p) +return m}, +vb(a,b){var s,r=a.u,q=A.qM(a,b),p=b.pop() +if(typeof p=="string")b.push(A.fj(r,p,q)) +else{s=A.cf(r,a.e,p) +switch(s.w){case 12:b.push(A.p2(r,s,q,a.n)) +break +default:b.push(A.p1(r,s,q)) +break}}}, +v8(a,b){var s,r,q,p=a.u,o=b.pop(),n=null,m=null +if(typeof o=="number")switch(o){case-1:n=b.pop() +break +case-2:m=b.pop() +break +default:b.push(o) +break}else b.push(o) +s=A.qM(a,b) +o=b.pop() +switch(o){case-3:o=b.pop() +if(n==null)n=p.sEA +if(m==null)m=p.sEA +r=A.cf(p,a.e,o) +q=new A.ii() +q.a=s +q.b=n +q.c=m +b.push(A.qT(p,r,q)) +return +case-4:b.push(A.qV(p,b.pop(),s)) +return +default:throw A.a(A.e1("Unexpected state under `()`: "+A.v(o)))}}, +va(a,b){var s=b.pop() +if(0===s){b.push(A.fk(a.u,1,"0&")) +return}if(1===s){b.push(A.fk(a.u,4,"1&")) +return}throw A.a(A.e1("Unexpected extended operation "+A.v(s)))}, +qM(a,b){var s=b.splice(a.p) +A.qQ(a.u,a.e,s) +a.p=b.pop() +return s}, +cf(a,b,c){if(typeof c=="string")return A.fj(a,c,a.sEA) +else if(typeof c=="number"){b.toString +return A.vc(a,b,c)}else return c}, +qQ(a,b,c){var s,r=c.length +for(s=0;sn)return!1 +m=n-o +l=s.b +k=r.b +j=l.length +i=k.length +if(o+j=d)return!1 +a1=f[b] +b+=3 +if(a00?new Array(q):v.typeUniverse.sEA +for(o=0;o0?new Array(a):v.typeUniverse.sEA}, +b2:function b2(a,b){var _=this +_.a=a +_.b=b +_.r=_.f=_.d=_.c=null +_.w=0 +_.as=_.Q=_.z=_.y=_.x=null}, +ii:function ii(){this.c=this.b=this.a=null}, +nB:function nB(a){this.a=a}, +id:function id(){}, +fh:function fh(a){this.a=a}, +uV(){var s,r,q={} +if(self.scheduleImmediate!=null)return A.wD() +if(self.MutationObserver!=null&&self.document!=null){s=self.document.createElement("div") +r=self.document.createElement("span") +q.a=null +new self.MutationObserver(A.ch(new A.lT(q),1)).observe(s,{childList:true}) +return new A.lS(q,s,r)}else if(self.setImmediate!=null)return A.wE() +return A.wF()}, +uW(a){self.scheduleImmediate(A.ch(new A.lU(a),0))}, +uX(a){self.setImmediate(A.ch(new A.lV(a),0))}, +uY(a){A.oN(B.z,a)}, +oN(a,b){var s=B.b.I(a.a,1000) +return A.vf(s<0?0:s,b)}, +vf(a,b){var s=new A.iG() +s.hR(a,b) +return s}, +vg(a,b){var s=new A.iG() +s.hS(a,b) +return s}, +o(a){return new A.i1(new A.k($.i,a.h("k<0>")),a.h("i1<0>"))}, +n(a,b){a.$2(0,null) +b.b=!0 +return b.a}, +c(a,b){A.vJ(a,b)}, +m(a,b){b.L(a)}, +l(a,b){b.by(A.E(a),A.R(a))}, +vJ(a,b){var s,r,q=new A.nL(b),p=new A.nM(b) +if(a instanceof A.k)a.fN(q,p,t.z) +else{s=t.z +if(a instanceof A.k)a.bH(q,p,s) +else{r=new A.k($.i,t.eI) +r.a=8 +r.c=a +r.fN(q,p,s)}}}, +p(a){var s=function(b,c){return function(d,e){while(true){try{b(d,e) +break}catch(r){e=r +d=c}}}}(a,1) +return $.i.d5(new A.o1(s),t.H,t.S,t.z)}, +qS(a,b,c){return 0}, +iY(a,b){var s=A.aD(a,"error",t.K) +return new A.cU(s,b==null?A.fG(a):b)}, +fG(a){var s +if(t.w.b(a)){s=a.gbJ() +if(s!=null)return s}return B.bu}, +uc(a,b){var s=new A.k($.i,b.h("k<0>")) +A.qm(B.z,new A.k_(a,s)) +return s}, +jZ(a,b){var s,r,q,p,o,n,m=null +try{m=a.$0()}catch(o){s=A.E(o) +r=A.R(o) +n=$.i +q=new A.k(n,b.h("k<0>")) +p=n.aK(s,r) +if(p!=null)q.aD(p.a,p.b) +else q.aD(s,r) +return q}return b.h("C<0>").b(m)?m:A.f_(m,b)}, +aX(a,b){var s=a==null?b.a(a):a,r=new A.k($.i,b.h("k<0>")) +r.b1(s) +return r}, +pT(a,b,c){var s,r +A.aD(a,"error",t.K) +s=$.i +if(s!==B.d){r=s.aK(a,b) +if(r!=null){a=r.a +b=r.b}}if(b==null)b=A.fG(a) +s=new A.k($.i,c.h("k<0>")) +s.aD(a,b) +return s}, +pS(a,b){var s,r=!b.b(null) +if(r)throw A.a(A.ag(null,"computation","The type parameter is not nullable")) +s=new A.k($.i,b.h("k<0>")) +A.qm(a,new A.jY(null,s,b)) +return s}, +ox(a,b){var s,r,q,p,o,n,m,l,k={},j=null,i=!1,h=new A.k($.i,b.h("k>")) +k.a=null +k.b=0 +k.c=k.d=null +s=new A.k1(k,j,i,h) +try{for(n=J.M(a),m=t.P;n.k();){r=n.gm() +q=k.b +r.bH(new A.k0(k,q,h,b,j,i),s,m);++k.b}n=k.b +if(n===0){n=h +n.br(A.d([],b.h("w<0>"))) +return n}k.a=A.b_(n,null,!1,b.h("0?"))}catch(l){p=A.E(l) +o=A.R(l) +if(k.b===0||i)return A.pT(p,o,b.h("q<0>")) +else{k.d=p +k.c=o}}return h}, +p9(a,b,c){var s=$.i.aK(b,c) +if(s!=null){b=s.a +c=s.b}else if(c==null)c=A.fG(b) +a.X(b,c)}, +v5(a,b,c){var s=new A.k(b,c.h("k<0>")) +s.a=8 +s.c=a +return s}, +f_(a,b){var s=new A.k($.i,b.h("k<0>")) +s.a=8 +s.c=a +return s}, +oY(a,b){var s,r +for(;s=a.a,(s&4)!==0;)a=a.c +if(a===b){b.aD(new A.aV(!0,a,null,"Cannot complete a future with itself"),A.oJ()) +return}s|=b.a&1 +a.a=s +if((s&24)!==0){r=b.cE() +b.cu(a) +A.dw(b,r)}else{r=b.c +b.fH(a) +a.dY(r)}}, +v6(a,b){var s,r,q={},p=q.a=a +for(;s=p.a,(s&4)!==0;){p=p.c +q.a=p}if(p===b){b.aD(new A.aV(!0,p,null,"Cannot complete a future with itself"),A.oJ()) +return}if((s&24)===0){r=b.c +b.fH(p) +q.a.dY(r) +return}if((s&16)===0&&b.c==null){b.cu(p) +return}b.a^=2 +b.b.aZ(new A.mp(q,b))}, +dw(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=g.a=a +for(;!0;){s={} +r=f.a +q=(r&16)===0 +p=!q +if(b==null){if(p&&(r&1)===0){r=f.c +f.b.c4(r.a,r.b)}return}s.a=b +o=b.a +for(f=b;o!=null;f=o,o=n){f.a=null +A.dw(g.a,f) +s.a=o +n=o.a}r=g.a +m=r.c +s.b=p +s.c=m +if(q){l=f.c +l=(l&1)!==0||(l&15)===8}else l=!0 +if(l){k=f.b.b +if(p){f=r.b +f=!(f===k||f.gbb()===k.gbb())}else f=!1 +if(f){f=g.a +r=f.c +f.b.c4(r.a,r.b) +return}j=$.i +if(j!==k)$.i=k +else j=null +f=s.a.c +if((f&15)===8)new A.mw(s,g,p).$0() +else if(q){if((f&1)!==0)new A.mv(s,m).$0()}else if((f&2)!==0)new A.mu(g,s).$0() +if(j!=null)$.i=j +f=s.c +if(f instanceof A.k){r=s.a.$ti +r=r.h("C<2>").b(f)||!r.y[1].b(f)}else r=!1 +if(r){i=s.a.b +if((f.a&24)!==0){h=i.c +i.c=null +b=i.cF(h) +i.a=f.a&30|i.a&1 +i.c=f.c +g.a=f +continue}else A.oY(f,i) +return}}i=s.a.b +h=i.c +i.c=null +b=i.cF(h) +f=s.b +r=s.c +if(!f){i.a=8 +i.c=r}else{i.a=i.a&1|16 +i.c=r}g.a=i +f=i}}, +wn(a,b){if(t.b.b(a))return b.d5(a,t.z,t.K,t.l) +if(t.bI.b(a))return b.be(a,t.z,t.K) +throw A.a(A.ag(a,"onError",u.c))}, +wf(){var s,r +for(s=$.dQ;s!=null;s=$.dQ){$.fs=null +r=s.b +$.dQ=r +if(r==null)$.fr=null +s.a.$0()}}, +ww(){$.pc=!0 +try{A.wf()}finally{$.fs=null +$.pc=!1 +if($.dQ!=null)$.pw().$1(A.rA())}}, +ru(a){var s=new A.i2(a),r=$.fr +if(r==null){$.dQ=$.fr=s +if(!$.pc)$.pw().$1(A.rA())}else $.fr=r.b=s}, +wv(a){var s,r,q,p=$.dQ +if(p==null){A.ru(a) +$.fs=$.fr +return}s=new A.i2(a) +r=$.fs +if(r==null){s.b=p +$.dQ=$.fs=s}else{q=r.b +s.b=q +$.fs=r.b=s +if(q==null)$.fr=s}}, +ok(a){var s,r=null,q=$.i +if(B.d===q){A.nZ(r,r,B.d,a) +return}if(B.d===q.ge1().a)s=B.d.gbb()===q.gbb() +else s=!1 +if(s){A.nZ(r,r,q,q.au(a,t.H)) +return}s=$.i +s.aZ(s.cQ(a))}, +xX(a){return new A.dI(A.aD(a,"stream",t.K))}, +eG(a,b,c,d){var s=null +return c?new A.dM(b,s,s,a,d.h("dM<0>")):new A.dq(b,s,s,a,d.h("dq<0>"))}, +iP(a){var s,r,q +if(a==null)return +try{a.$0()}catch(q){s=A.E(q) +r=A.R(q) +$.i.c4(s,r)}}, +v4(a,b,c,d,e,f){var s=$.i,r=e?1:0,q=c!=null?32:0,p=A.i7(s,b,f),o=A.i8(s,c),n=d==null?A.rz():d +return new A.cd(a,p,o,s.au(n,t.H),s,r|q,f.h("cd<0>"))}, +i7(a,b,c){var s=b==null?A.wG():b +return a.be(s,t.H,c)}, +i8(a,b){if(b==null)b=A.wH() +if(t.da.b(b))return a.d5(b,t.z,t.K,t.l) +if(t.d5.b(b))return a.be(b,t.z,t.K) +throw A.a(A.K("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace.",null))}, +wg(a){}, +wi(a,b){$.i.c4(a,b)}, +wh(){}, +wt(a,b,c){var s,r,q,p,o,n +try{b.$1(a.$0())}catch(n){s=A.E(n) +r=A.R(n) +q=$.i.aK(s,r) +if(q==null)c.$2(s,r) +else{p=q.a +o=q.b +c.$2(p,o)}}}, +vP(a,b,c,d){var s=a.J(),r=$.ck() +if(s!==r)s.aj(new A.nO(b,c,d)) +else b.X(c,d)}, +vQ(a,b){return new A.nN(a,b)}, +rc(a,b,c){var s=a.J(),r=$.ck() +if(s!==r)s.aj(new A.nP(b,c)) +else b.b2(c)}, +ve(a,b,c){return new A.dG(new A.nu(null,null,a,c,b),b.h("@<0>").H(c).h("dG<1,2>"))}, +qm(a,b){var s=$.i +if(s===B.d)return s.ei(a,b) +return s.ei(a,s.cQ(b))}, +wr(a,b,c,d,e){A.ft(d,e)}, +ft(a,b){A.wv(new A.nV(a,b))}, +nW(a,b,c,d){var s,r=$.i +if(r===c)return d.$0() +$.i=c +s=r +try{r=d.$0() +return r}finally{$.i=s}}, +nY(a,b,c,d,e){var s,r=$.i +if(r===c)return d.$1(e) +$.i=c +s=r +try{r=d.$1(e) +return r}finally{$.i=s}}, +nX(a,b,c,d,e,f){var s,r=$.i +if(r===c)return d.$2(e,f) +$.i=c +s=r +try{r=d.$2(e,f) +return r}finally{$.i=s}}, +rq(a,b,c,d){return d}, +rr(a,b,c,d){return d}, +rp(a,b,c,d){return d}, +wq(a,b,c,d,e){return null}, +nZ(a,b,c,d){var s,r +if(B.d!==c){s=B.d.gbb() +r=c.gbb() +d=s!==r?c.cQ(d):c.ef(d,t.H)}A.ru(d)}, +wp(a,b,c,d,e){return A.oN(d,B.d!==c?c.ef(e,t.H):e)}, +wo(a,b,c,d,e){var s +if(B.d!==c)e=c.fU(e,t.H,t.aF) +s=B.b.I(d.a,1000) +return A.vg(s<0?0:s,e)}, +ws(a,b,c,d){A.pq(d)}, +wk(a){$.i.hf(a)}, +ro(a,b,c,d,e){var s,r,q +$.rO=A.wI() +if(d==null)d=B.bI +if(e==null)s=c.gfm() +else{r=t.X +s=A.ud(e,r,r)}r=new A.i9(c.gfE(),c.gfG(),c.gfF(),c.gfA(),c.gfB(),c.gfz(),c.gfd(),c.ge1(),c.gfa(),c.gf9(),c.gft(),c.gfg(),c.gdS(),c,s) +q=d.a +if(q!=null)r.as=new A.au(r,q) +return r}, +xx(a,b,c){A.aD(a,"body",c.h("0()")) +return A.wu(a,b,null,c)}, +wu(a,b,c,d){return $.i.h4(c,b).bg(a,d)}, +lT:function lT(a){this.a=a}, +lS:function lS(a,b,c){this.a=a +this.b=b +this.c=c}, +lU:function lU(a){this.a=a}, +lV:function lV(a){this.a=a}, +iG:function iG(){this.c=0}, +nA:function nA(a,b){this.a=a +this.b=b}, +nz:function nz(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +i1:function i1(a,b){this.a=a +this.b=!1 +this.$ti=b}, +nL:function nL(a){this.a=a}, +nM:function nM(a){this.a=a}, +o1:function o1(a){this.a=a}, +iE:function iE(a){var _=this +_.a=a +_.e=_.d=_.c=_.b=null}, +dL:function dL(a,b){this.a=a +this.$ti=b}, +cU:function cU(a,b){this.a=a +this.b=b}, +eP:function eP(a,b){this.a=a +this.$ti=b}, +cD:function cD(a,b,c,d,e,f,g){var _=this +_.ay=0 +_.CW=_.ch=null +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +cC:function cC(){}, +fg:function fg(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.r=_.f=_.e=_.d=null +_.$ti=c}, +nw:function nw(a,b){this.a=a +this.b=b}, +ny:function ny(a,b,c){this.a=a +this.b=b +this.c=c}, +nx:function nx(a){this.a=a}, +k_:function k_(a,b){this.a=a +this.b=b}, +jY:function jY(a,b,c){this.a=a +this.b=b +this.c=c}, +k1:function k1(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +k0:function k0(a,b,c,d,e,f){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f}, +dr:function dr(){}, +a3:function a3(a,b){this.a=a +this.$ti=b}, +a8:function a8(a,b){this.a=a +this.$ti=b}, +ce:function ce(a,b,c,d,e){var _=this +_.a=null +_.b=a +_.c=b +_.d=c +_.e=d +_.$ti=e}, +k:function k(a,b){var _=this +_.a=0 +_.b=a +_.c=null +_.$ti=b}, +mm:function mm(a,b){this.a=a +this.b=b}, +mt:function mt(a,b){this.a=a +this.b=b}, +mq:function mq(a){this.a=a}, +mr:function mr(a){this.a=a}, +ms:function ms(a,b,c){this.a=a +this.b=b +this.c=c}, +mp:function mp(a,b){this.a=a +this.b=b}, +mo:function mo(a,b){this.a=a +this.b=b}, +mn:function mn(a,b,c){this.a=a +this.b=b +this.c=c}, +mw:function mw(a,b,c){this.a=a +this.b=b +this.c=c}, +mx:function mx(a){this.a=a}, +mv:function mv(a,b){this.a=a +this.b=b}, +mu:function mu(a,b){this.a=a +this.b=b}, +i2:function i2(a){this.a=a +this.b=null}, +Z:function Z(){}, +l2:function l2(a,b){this.a=a +this.b=b}, +l3:function l3(a,b){this.a=a +this.b=b}, +l0:function l0(a){this.a=a}, +l1:function l1(a,b,c){this.a=a +this.b=b +this.c=c}, +kZ:function kZ(a,b){this.a=a +this.b=b}, +l_:function l_(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +kX:function kX(a,b){this.a=a +this.b=b}, +kY:function kY(a,b,c){this.a=a +this.b=b +this.c=c}, +hF:function hF(){}, +cK:function cK(){}, +nt:function nt(a){this.a=a}, +ns:function ns(a){this.a=a}, +iF:function iF(){}, +i3:function i3(){}, +dq:function dq(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +dM:function dM(a,b,c,d,e){var _=this +_.a=null +_.b=0 +_.c=null +_.d=a +_.e=b +_.f=c +_.r=d +_.$ti=e}, +an:function an(a,b){this.a=a +this.$ti=b}, +cd:function cd(a,b,c,d,e,f,g){var _=this +_.w=a +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +dJ:function dJ(a){this.a=a}, +af:function af(){}, +m5:function m5(a,b,c){this.a=a +this.b=b +this.c=c}, +m4:function m4(a){this.a=a}, +dH:function dH(){}, +ic:function ic(){}, +ds:function ds(a){this.b=a +this.a=null}, +eT:function eT(a,b){this.b=a +this.c=b +this.a=null}, +mf:function mf(){}, +f8:function f8(){this.a=0 +this.c=this.b=null}, +ni:function ni(a,b){this.a=a +this.b=b}, +eU:function eU(a){this.a=1 +this.b=a +this.c=null}, +dI:function dI(a){this.a=null +this.b=a +this.c=!1}, +nO:function nO(a,b,c){this.a=a +this.b=b +this.c=c}, +nN:function nN(a,b){this.a=a +this.b=b}, +nP:function nP(a,b){this.a=a +this.b=b}, +eZ:function eZ(){}, +du:function du(a,b,c,d,e,f,g){var _=this +_.w=a +_.x=null +_.a=b +_.b=c +_.c=d +_.d=e +_.e=f +_.r=_.f=null +_.$ti=g}, +f3:function f3(a,b,c){this.b=a +this.a=b +this.$ti=c}, +eW:function eW(a){this.a=a}, +dF:function dF(a,b,c,d,e,f){var _=this +_.w=$ +_.x=null +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.r=_.f=null +_.$ti=f}, +ff:function ff(){}, +eO:function eO(a,b,c){this.a=a +this.b=b +this.$ti=c}, +dx:function dx(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.$ti=e}, +dG:function dG(a,b){this.a=a +this.$ti=b}, +nu:function nu(a,b,c,d,e){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e}, +au:function au(a,b){this.a=a +this.b=b}, +iL:function iL(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k +_.Q=l +_.as=m}, +dO:function dO(a){this.a=a}, +iK:function iK(){}, +i9:function i9(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.e=e +_.f=f +_.r=g +_.w=h +_.x=i +_.y=j +_.z=k +_.Q=l +_.as=m +_.at=null +_.ax=n +_.ay=o}, +mc:function mc(a,b,c){this.a=a +this.b=b +this.c=c}, +me:function me(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +mb:function mb(a,b){this.a=a +this.b=b}, +md:function md(a,b,c){this.a=a +this.b=b +this.c=c}, +nV:function nV(a,b){this.a=a +this.b=b}, +iz:function iz(){}, +nn:function nn(a,b,c){this.a=a +this.b=b +this.c=c}, +np:function np(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +nm:function nm(a,b){this.a=a +this.b=b}, +no:function no(a,b,c){this.a=a +this.b=b +this.c=c}, +pV(a,b){return new A.cG(a.h("@<0>").H(b).h("cG<1,2>"))}, +qL(a,b){var s=a[b] +return s===a?null:s}, +p_(a,b,c){if(c==null)a[b]=a +else a[b]=c}, +oZ(){var s=Object.create(null) +A.p_(s,"",s) +delete s[""] +return s}, +ul(a,b){return new A.bu(a.h("@<0>").H(b).h("bu<1,2>"))}, +ki(a,b,c){return A.x4(a,new A.bu(b.h("@<0>").H(c).h("bu<1,2>")))}, +a4(a,b){return new A.bu(a.h("@<0>").H(b).h("bu<1,2>"))}, +oF(a){return new A.f1(a.h("f1<0>"))}, +p0(){var s=Object.create(null) +s[""]=s +delete s[""] +return s}, +iq(a,b,c){var s=new A.dA(a,b,c.h("dA<0>")) +s.c=a.e +return s}, +ud(a,b,c){var s=A.pV(b,c) +a.aa(0,new A.k4(s,b,c)) +return s}, +oG(a){var s,r={} +if(A.pn(a))return"{...}" +s=new A.av("") +try{$.cQ.push(a) +s.a+="{" +r.a=!0 +a.aa(0,new A.km(r,s)) +s.a+="}"}finally{$.cQ.pop()}r=s.a +return r.charCodeAt(0)==0?r:r}, +cG:function cG(a){var _=this +_.a=0 +_.e=_.d=_.c=_.b=null +_.$ti=a}, +my:function my(a){this.a=a}, +dy:function dy(a){var _=this +_.a=0 +_.e=_.d=_.c=_.b=null +_.$ti=a}, +cH:function cH(a,b){this.a=a +this.$ti=b}, +ij:function ij(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=null +_.$ti=c}, +f1:function f1(a){var _=this +_.a=0 +_.f=_.e=_.d=_.c=_.b=null +_.r=0 +_.$ti=a}, +nh:function nh(a){this.a=a +this.c=this.b=null}, +dA:function dA(a,b,c){var _=this +_.a=a +_.b=b +_.d=_.c=null +_.$ti=c}, +k4:function k4(a,b,c){this.a=a +this.b=b +this.c=c}, +ep:function ep(a){var _=this +_.b=_.a=0 +_.c=null +_.$ti=a}, +ir:function ir(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=null +_.d=c +_.e=!1 +_.$ti=d}, +aF:function aF(){}, +x:function x(){}, +T:function T(){}, +kl:function kl(a){this.a=a}, +km:function km(a,b){this.a=a +this.b=b}, +f2:function f2(a,b){this.a=a +this.$ti=b}, +is:function is(a,b,c){var _=this +_.a=a +_.b=b +_.c=null +_.$ti=c}, +df:function df(){}, +fb:function fb(){}, +vE(a,b,c){var s,r,q,p,o=c-b +if(o<=4096)s=$.tg() +else s=new Uint8Array(o) +for(r=J.V(a),q=0;q=16)return null +r=r*16+o}n=h-1 +i[h]=r +for(;s=16)return null +r=r*16+o}m=n-1 +i[n]=r}if(j===1&&i[0]===0)return $.b8() +l=A.aJ(j,i) +return new A.a6(l===0?!1:c,i,l)}, +qJ(a,b){var s,r,q,p,o +if(a==="")return null +s=$.t9().a9(a) +if(s==null)return null +r=s.b +q=r[1]==="-" +p=r[4] +o=r[3] +if(p!=null)return A.v1(p,q) +if(o!=null)return A.v2(o,2,q) +return null}, +aJ(a,b){while(!0){if(!(a>0&&b[a-1]===0))break;--a}return a}, +oV(a,b,c,d){var s,r=new Uint16Array(d),q=c-b +for(s=0;s>>0)+(o>>>4)-1075 +m=new Uint16Array(4) +m[0]=(r[1]<<8>>>0)+r[0] +m[1]=(r[3]<<8>>>0)+r[2] +m[2]=(r[5]<<8>>>0)+r[4] +m[3]=o&15|16 +l=new A.a6(!1,m,4) +if(n<0)k=l.bm(0,-n) +else k=n>0?l.b0(0,n):l +if(s)return k.aB(0) +return k}, +oW(a,b,c,d){var s +if(b===0)return 0 +if(c===0&&d===a)return b +for(s=b-1;s>=0;--s)d[s+c]=a[s] +for(s=c-1;s>=0;--s)d[s]=0 +return b+c}, +qH(a,b,c,d){var s,r,q,p=B.b.I(c,16),o=B.b.aA(c,16),n=16-o,m=B.b.b0(1,n)-1 +for(s=b-1,r=0;s>=0;--s){q=a[s] +d[s+p+1]=(B.b.bm(q,n)|r)>>>0 +r=B.b.b0((q&m)>>>0,o)}d[p]=r}, +qC(a,b,c,d){var s,r,q,p=B.b.I(c,16) +if(B.b.aA(c,16)===0)return A.oW(a,b,p,d) +s=b+p+1 +A.qH(a,b,c,d) +for(r=p;--r,r>=0;)d[r]=0 +q=s-1 +return d[q]===0?q:s}, +v3(a,b,c,d){var s,r,q=B.b.I(c,16),p=B.b.aA(c,16),o=16-p,n=B.b.b0(1,p)-1,m=B.b.bm(a[q],p),l=b-q-1 +for(s=0;s>>0,o)|m)>>>0 +m=B.b.bm(r,p)}d[l]=m}, +m1(a,b,c,d){var s,r=b-d +if(r===0)for(s=b-1;s>=0;--s){r=a[s]-c[s] +if(r!==0)return r}return r}, +v_(a,b,c,d,e){var s,r +for(s=0,r=0;r=0;e=p,c=r){r=c+1 +q=a*b[c]+d[e]+s +p=e+1 +d[e]=q&65535 +s=B.b.I(q,65536)}for(;s!==0;e=p){o=d[e]+s +p=e+1 +d[e]=o&65535 +s=B.b.I(o,65536)}}, +v0(a,b,c){var s,r=b[c] +if(r===a)return 65535 +s=B.b.eX((r<<16|b[c-1])>>>0,a) +if(s>65535)return 65535 +return s}, +u3(a){throw A.a(A.ag(a,"object","Expandos are not allowed on strings, numbers, bools, records or null"))}, +aN(a,b){var s=A.q8(a,b) +if(s!=null)return s +throw A.a(A.ai(a,null,null))}, +u2(a,b){a=A.a(a) +a.stack=b.j(0) +throw a +throw A.a("unreachable")}, +b_(a,b,c,d){var s,r=c?J.q_(a,d):J.pZ(a,d) +if(a!==0&&b!=null)for(s=0;s")) +for(s=J.M(a);s.k();)r.push(s.gm()) +if(b)return r +return J.kb(r)}, +ay(a,b,c){var s +if(b)return A.q1(a,c) +s=J.kb(A.q1(a,c)) +return s}, +q1(a,b){var s,r +if(Array.isArray(a))return A.d(a.slice(0),b.h("w<0>")) +s=A.d([],b.h("w<0>")) +for(r=J.M(a);r.k();)s.push(r.gm()) +return s}, +aG(a,b){var s=A.q2(a,!1,b) +s.fixed$length=Array +s.immutable$list=Array +return s}, +ql(a,b,c){var s,r,q,p,o +A.ab(b,"start") +s=c==null +r=!s +if(r){q=c-b +if(q<0)throw A.a(A.Y(c,b,null,"end",null)) +if(q===0)return""}if(Array.isArray(a)){p=a +o=p.length +if(s)c=o +return A.qa(b>0||c0)a=J.e0(a,b) +return A.qa(A.ay(a,!0,t.S))}, +qk(a){return A.aA(a)}, +uI(a,b,c){var s=a.length +if(b>=s)return"" +return A.uD(a,b,c==null||c>s?s:c)}, +J(a,b,c,d,e){return new A.cu(a,A.oC(a,d,b,e,c,!1))}, +oK(a,b,c){var s=J.M(b) +if(!s.k())return a +if(c.length===0){do a+=A.v(s.gm()) +while(s.k())}else{a+=A.v(s.gm()) +for(;s.k();)a=a+c+A.v(s.gm())}return a}, +eI(){var s,r,q=A.ut() +if(q==null)throw A.a(A.H("'Uri.base' is not supported")) +s=$.qx +if(s!=null&&q===$.qw)return s +r=A.bm(q) +$.qx=r +$.qw=q +return r}, +vC(a,b,c,d){var s,r,q,p,o,n="0123456789ABCDEF" +if(c===B.j){s=$.td() +s=s.b.test(b)}else s=!1 +if(s)return b +r=B.i.a5(b) +for(s=r.length,q=0,p="";q>>4]&1<<(o&15))!==0)p+=A.aA(o) +else p=d&&o===32?p+"+":p+"%"+n[o>>>4&15]+n[o&15]}return p.charCodeAt(0)==0?p:p}, +oJ(){return A.R(new Error())}, +tZ(a){var s=Math.abs(a),r=a<0?"-":"" +if(s>=1000)return""+a +if(s>=100)return r+"0"+s +if(s>=10)return r+"00"+s +return r+"000"+s}, +pL(a){if(a>=100)return""+a +if(a>=10)return"0"+a +return"00"+a}, +fR(a){if(a>=10)return""+a +return"0"+a}, +pM(a,b){return new A.bp(a+1000*b)}, +ou(a,b){var s,r,q +for(s=a.length,r=0;rc)throw A.a(A.Y(a,b,c,d,null)) +return a}, +uF(a,b,c,d){if(0>a||a>=d)A.y(A.h6(a,d,b,null,c)) +return a}, +ba(a,b,c){if(0>a||a>c)throw A.a(A.Y(a,0,c,"start",null)) +if(b!=null){if(a>b||b>c)throw A.a(A.Y(b,a,c,"end",null)) +return b}return c}, +ab(a,b){if(a<0)throw A.a(A.Y(a,0,null,b,null)) +return a}, +pW(a,b){var s=b.b +return new A.ei(s,!0,a,null,"Index out of range")}, +h6(a,b,c,d,e){return new A.ei(b,!0,a,e,"Index out of range")}, +H(a){return new A.hN(a)}, +qt(a){return new A.hJ(a)}, +B(a){return new A.b3(a)}, +ax(a){return new A.fN(a)}, +jO(a){return new A.ig(a)}, +ai(a,b,c){return new A.bs(a,b,c)}, +uf(a,b,c){var s,r +if(A.pn(a)){if(b==="("&&c===")")return"(...)" +return b+"..."+c}s=A.d([],t.s) +$.cQ.push(a) +try{A.we(a,s)}finally{$.cQ.pop()}r=A.oK(b,s,", ")+c +return r.charCodeAt(0)==0?r:r}, +oA(a,b,c){var s,r +if(A.pn(a))return b+"..."+c +s=new A.av(b) +$.cQ.push(a) +try{r=s +r.a=A.oK(r.a,a,", ")}finally{$.cQ.pop()}s.a+=c +r=s.a +return r.charCodeAt(0)==0?r:r}, +we(a,b){var s,r,q,p,o,n,m,l=a.gt(a),k=0,j=0 +while(!0){if(!(k<80||j<3))break +if(!l.k())return +s=A.v(l.gm()) +b.push(s) +k+=s.length+2;++j}if(!l.k()){if(j<=5)return +r=b.pop() +q=b.pop()}else{p=l.gm();++j +if(!l.k()){if(j<=4){b.push(A.v(p)) +return}r=A.v(p) +q=b.pop() +k+=r.length+2}else{o=l.gm();++j +for(;l.k();p=o,o=n){n=l.gm();++j +if(j>100){while(!0){if(!(k>75&&j>3))break +k-=b.pop().length+2;--j}b.push("...") +return}}q=A.v(p) +r=A.v(o) +k+=r.length+q.length+4}}if(j>b.length+2){k+=5 +m="..."}else m=null +while(!0){if(!(k>80&&b.length>3))break +k-=b.pop().length+2 +if(m==null){k+=5 +m="..."}}if(m!=null)b.push(m) +b.push(q) +b.push(r)}, +ev(a,b,c,d){var s +if(B.f===c){s=J.aw(a) +b=J.aw(b) +return A.oL(A.c8(A.c8($.op(),s),b))}if(B.f===d){s=J.aw(a) +b=J.aw(b) +c=J.aw(c) +return A.oL(A.c8(A.c8(A.c8($.op(),s),b),c))}s=J.aw(a) +b=J.aw(b) +c=J.aw(c) +d=J.aw(d) +d=A.oL(A.c8(A.c8(A.c8(A.c8($.op(),s),b),c),d)) +return d}, +xv(a){var s=A.v(a),r=$.rO +if(r==null)A.pq(s) +else r.$1(s)}, +qv(a){var s,r=null,q=new A.av(""),p=A.d([-1],t.t) +A.uR(r,r,r,q,p) +p.push(q.a.length) +q.a+="," +A.uQ(B.p,B.ap.jP(a),q) +s=q.a +return new A.hP(s.charCodeAt(0)==0?s:s,p,r).geN()}, +bm(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length +if(a4>=5){s=((a5.charCodeAt(4)^58)*3|a5.charCodeAt(0)^100|a5.charCodeAt(1)^97|a5.charCodeAt(2)^116|a5.charCodeAt(3)^97)>>>0 +if(s===0)return A.qu(a4=14)r[7]=a4 +q=r[1] +if(q>=0)if(A.rt(a5,0,q,20,r)===20)r[7]=q +p=r[2]+1 +o=r[3] +n=r[4] +m=r[5] +l=r[6] +if(lq+3)){i=o>0 +if(!(i&&o+1===n)){if(!B.a.E(a5,"\\",n))if(p>0)h=B.a.E(a5,"\\",p-1)||B.a.E(a5,"\\",p-2) +else h=!1 +else h=!0 +if(!h){if(!(mn+2&&B.a.E(a5,"/..",m-3) +else h=!0 +if(!h)if(q===4){if(B.a.E(a5,"file",0)){if(p<=0){if(!B.a.E(a5,"/",n)){g="file:///" +s=3}else{g="file://" +s=2}a5=g+B.a.n(a5,n,a4) +m+=s +l+=s +a4=a5.length +p=7 +o=7 +n=7}else if(n===m){++l +f=m+1 +a5=B.a.aN(a5,n,m,"/");++a4 +m=f}j="file"}else if(B.a.E(a5,"http",0)){if(i&&o+3===n&&B.a.E(a5,"80",o+1)){l-=3 +e=n-3 +m-=3 +a5=B.a.aN(a5,o,n,"") +a4-=3 +n=e}j="http"}}else if(q===5&&B.a.E(a5,"https",0)){if(i&&o+4===n&&B.a.E(a5,"443",o+1)){l-=4 +e=n-4 +m-=4 +a5=B.a.aN(a5,o,n,"") +a4-=3 +n=e}j="https"}k=!h}}}}if(k)return new A.b5(a40)j=A.nF(a5,0,q) +else{if(q===0)A.dN(a5,0,"Invalid empty scheme") +j=""}d=a3 +if(p>0){c=q+3 +b=c9)k.$2("invalid character",s)}else{if(q===3)k.$2(m,s) +o=A.aN(B.a.n(a,r,s),null) +if(o>255)k.$2(l,r) +n=q+1 +j[q]=o +r=s+1 +q=n}}if(q!==3)k.$2(m,c) +o=A.aN(B.a.n(a,r,c),null) +if(o>255)k.$2(l,r) +j[q]=o +return j}, +qy(a,b,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=null,d=new A.ll(a),c=new A.lm(d,a) +if(a.length<2)d.$2("address is too short",e) +s=A.d([],t.t) +for(r=b,q=r,p=!1,o=!1;r>>0) +s.push((k[2]<<8|k[3])>>>0)}if(p){if(s.length>7)d.$2("an address with a wildcard must have less than 7 parts",e)}else if(s.length!==8)d.$2("an address without a wildcard must contain exactly 8 parts",e) +j=new Uint8Array(16) +for(l=s.length,i=9-l,r=0,h=0;r")),r=r.h("P.E");s.k();){q=s.d +if(q==null)q=r.a(q) +if(B.a.M(q,A.J('["*/:<>?\\\\|]',!0,!1,!1,!1)))if(b)throw A.a(A.K("Illegal character in path",null)) +else throw A.a(A.H("Illegal character in path: "+q))}}, +vu(a,b){var s,r="Illegal drive letter " +if(!(65<=a&&a<=90))s=97<=a&&a<=122 +else s=!0 +if(s)return +if(b)throw A.a(A.K(r+A.qk(a),null)) +else throw A.a(A.H(r+A.qk(a)))}, +vx(a,b){var s=null,r=A.d(a.split("/"),t.s) +if(B.a.u(a,"/"))return A.aj(s,s,r,"file") +else return A.aj(s,s,r,s)}, +vy(a,b){var s,r,q,p,o="\\",n=null,m="file" +if(B.a.u(a,"\\\\?\\"))if(B.a.E(a,"UNC\\",4))a=B.a.aN(a,0,7,o) +else{a=B.a.K(a,4) +if(a.length<3||a.charCodeAt(1)!==58||a.charCodeAt(2)!==92)throw A.a(A.ag(a,"path","Windows paths with \\\\?\\ prefix must be absolute"))}else a=A.bd(a,"/",o) +s=a.length +if(s>1&&a.charCodeAt(1)===58){A.vu(a.charCodeAt(0),!0) +if(s===2||a.charCodeAt(2)!==92)throw A.a(A.ag(a,"path","Windows paths with drive letter must be absolute")) +r=A.d(a.split(o),t.s) +A.nC(r,!0,1) +return A.aj(n,n,r,m)}if(B.a.u(a,o))if(B.a.E(a,o,1)){q=B.a.aV(a,o,2) +s=q<0 +p=s?B.a.K(a,2):B.a.n(a,2,q) +r=A.d((s?"":B.a.K(a,q+1)).split(o),t.s) +A.nC(r,!0,0) +return A.aj(p,n,r,m)}else{r=A.d(a.split(o),t.s) +A.nC(r,!0,0) +return A.aj(n,n,r,m)}else{r=A.d(a.split(o),t.s) +A.nC(r,!0,0) +return A.aj(n,n,r,n)}}, +nE(a,b){if(a!=null&&a===A.qZ(b))return null +return a}, +r2(a,b,c,d){var s,r,q,p,o,n +if(a==null)return null +if(b===c)return"" +if(a.charCodeAt(b)===91){s=c-1 +if(a.charCodeAt(s)!==93)A.dN(a,b,"Missing end `]` to match `[` in host") +r=b+1 +q=A.vv(a,r,s) +if(q=b&&q=b&&s>>4]&1<<(p&15))!==0){if(q&&65<=p&&90>=p){if(i==null)i=new A.av("") +if(r>>4]&1<<(o&15))!==0){if(p&&65<=o&&90>=o){if(q==null)q=new A.av("") +if(r>>4]&1<<(o&15))!==0)A.dN(a,s,"Invalid character") +else{j=1 +if((o&64512)===55296&&s+1>>4]&1<<(q&15))!==0))A.dN(a,s,"Illegal scheme character") +if(65<=q&&q<=90)r=!0}a=B.a.n(a,b,c) +return A.vs(r?a.toLowerCase():a)}, +vs(a){if(a==="http")return"http" +if(a==="file")return"file" +if(a==="https")return"https" +if(a==="package")return"package" +return a}, +r5(a,b,c){if(a==null)return"" +return A.fo(a,b,c,B.aL,!1,!1)}, +r3(a,b,c,d,e,f){var s,r=e==="file",q=r||f +if(a==null){if(d==null)return r?"/":"" +s=new A.D(d,new A.nD(),A.Q(d).h("D<1,j>")).aq(0,"/")}else if(d!=null)throw A.a(A.K("Both path and pathSegments specified",null)) +else s=A.fo(a,b,c,B.a5,!0,!0) +if(s.length===0){if(r)return"/"}else if(q&&!B.a.u(s,"/"))s="/"+s +return A.vz(s,e,f)}, +vz(a,b,c){var s=b.length===0 +if(s&&!c&&!B.a.u(a,"/")&&!B.a.u(a,"\\"))return A.p6(a,!s||c) +return A.cL(a)}, +r4(a,b,c,d){if(a!=null)return A.fo(a,b,c,B.p,!0,!1) +return null}, +r1(a,b,c){if(a==null)return null +return A.fo(a,b,c,B.p,!0,!1)}, +p5(a,b,c){var s,r,q,p,o,n=b+2 +if(n>=a.length)return"%" +s=a.charCodeAt(b+1) +r=a.charCodeAt(n) +q=A.o8(s) +p=A.o8(r) +if(q<0||p<0)return"%" +o=q*16+p +if(o<127&&(B.ab[B.b.R(o,4)]&1<<(o&15))!==0)return A.aA(c&&65<=o&&90>=o?(o|32)>>>0:o) +if(s>=97||r>=97)return B.a.n(a,b,b+3).toUpperCase() +return null}, +p4(a){var s,r,q,p,o,n="0123456789ABCDEF" +if(a<128){s=new Uint8Array(3) +s[0]=37 +s[1]=n.charCodeAt(a>>>4) +s[2]=n.charCodeAt(a&15)}else{if(a>2047)if(a>65535){r=240 +q=4}else{r=224 +q=3}else{r=192 +q=2}s=new Uint8Array(3*q) +for(p=0;--q,q>=0;r=128){o=B.b.jb(a,6*q)&63|r +s[p]=37 +s[p+1]=n.charCodeAt(o>>>4) +s[p+2]=n.charCodeAt(o&15) +p+=3}}return A.ql(s,0,null)}, +fo(a,b,c,d,e,f){var s=A.r7(a,b,c,d,e,f) +return s==null?B.a.n(a,b,c):s}, +r7(a,b,c,d,e,f){var s,r,q,p,o,n,m,l,k,j,i=null +for(s=!e,r=b,q=r,p=i;r>>4]&1<<(o&15))!==0)++r +else{n=1 +if(o===37){m=A.p5(a,r,!1) +if(m==null){r+=3 +continue}if("%"===m)m="%25" +else n=3}else if(o===92&&f)m="/" +else if(s&&o<=93&&(B.a6[o>>>4]&1<<(o&15))!==0){A.dN(a,r,"Invalid character") +n=i +m=n}else{if((o&64512)===55296){l=r+1 +if(l=2&&A.r0(a.charCodeAt(0)))for(s=1;s127||(B.a4[r>>>4]&1<<(r&15))===0)break}return a}, +vB(a,b){if(a.kd("package")&&a.c==null)return A.rv(b,0,b.length) +return-1}, +vw(a,b){var s,r,q +for(s=0,r=0;r<2;++r){q=a.charCodeAt(b+r) +if(48<=q&&q<=57)s=s*16+q-48 +else{q|=32 +if(97<=q&&q<=102)s=s*16+q-87 +else throw A.a(A.K("Invalid URL encoding",null))}}return s}, +p7(a,b,c,d,e){var s,r,q,p,o=b +while(!0){if(!(o127)throw A.a(A.K("Illegal percent encoding in URI",null)) +if(r===37){if(o+3>q)throw A.a(A.K("Truncated URI",null)) +p.push(A.vw(a,o+1)) +o+=2}else p.push(r)}}return d.cT(p)}, +r0(a){var s=a|32 +return 97<=s&&s<=122}, +uR(a,b,c,d,e){d.a=d.a}, +qu(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=A.d([b-1],t.t) +for(s=a.length,r=b,q=-1,p=null;rb)throw A.a(A.ai(k,a,r)) +for(;p!==44;){j.push(r);++r +for(o=-1;r=0)j.push(o) +else{n=B.c.gC(j) +if(p!==44||r!==n+7||!B.a.E(a,"base64",n+1))throw A.a(A.ai("Expecting '='",a,r)) +break}}j.push(r) +m=r+1 +if((j.length&1)===1)a=B.aq.ki(a,m,s) +else{l=A.r7(a,m,s,B.p,!0,!1) +if(l!=null)a=B.a.aN(a,m,s,l)}return new A.hP(a,j,c)}, +uQ(a,b,c){var s,r,q,p,o,n="0123456789ABCDEF" +for(s=b.length,r=0,q=0;q>>4]&1<<(p&15))!==0){o=A.aA(p) +c.a+=o}else{o=A.aA(37) +c.a+=o +o=A.aA(n.charCodeAt(p>>>4)) +c.a+=o +o=A.aA(n.charCodeAt(p&15)) +c.a+=o}}if((r&4294967040)!==0)for(q=0;q255)throw A.a(A.ag(p,"non-byte value",null))}}, +vU(){var s,r,q,p,o,n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",m=".",l=":",k="/",j="\\",i="?",h="#",g="/\\",f=J.pY(22,t.p) +for(s=0;s<22;++s)f[s]=new Uint8Array(96) +r=new A.nQ(f) +q=new A.nR() +p=new A.nS() +o=r.$2(0,225) +q.$3(o,n,1) +q.$3(o,m,14) +q.$3(o,l,34) +q.$3(o,k,3) +q.$3(o,j,227) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(14,225) +q.$3(o,n,1) +q.$3(o,m,15) +q.$3(o,l,34) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(15,225) +q.$3(o,n,1) +q.$3(o,"%",225) +q.$3(o,l,34) +q.$3(o,k,9) +q.$3(o,j,233) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(1,225) +q.$3(o,n,1) +q.$3(o,l,34) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(2,235) +q.$3(o,n,139) +q.$3(o,k,131) +q.$3(o,j,131) +q.$3(o,m,146) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(3,235) +q.$3(o,n,11) +q.$3(o,k,68) +q.$3(o,j,68) +q.$3(o,m,18) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(4,229) +q.$3(o,n,5) +p.$3(o,"AZ",229) +q.$3(o,l,102) +q.$3(o,"@",68) +q.$3(o,"[",232) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(5,229) +q.$3(o,n,5) +p.$3(o,"AZ",229) +q.$3(o,l,102) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(6,231) +p.$3(o,"19",7) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(7,231) +p.$3(o,"09",7) +q.$3(o,"@",68) +q.$3(o,k,138) +q.$3(o,j,138) +q.$3(o,i,172) +q.$3(o,h,205) +q.$3(r.$2(8,8),"]",5) +o=r.$2(9,235) +q.$3(o,n,11) +q.$3(o,m,16) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(16,235) +q.$3(o,n,11) +q.$3(o,m,17) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(17,235) +q.$3(o,n,11) +q.$3(o,k,9) +q.$3(o,j,233) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(10,235) +q.$3(o,n,11) +q.$3(o,m,18) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(18,235) +q.$3(o,n,11) +q.$3(o,m,19) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(19,235) +q.$3(o,n,11) +q.$3(o,g,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(11,235) +q.$3(o,n,11) +q.$3(o,k,10) +q.$3(o,j,234) +q.$3(o,i,172) +q.$3(o,h,205) +o=r.$2(12,236) +q.$3(o,n,12) +q.$3(o,i,12) +q.$3(o,h,205) +o=r.$2(13,237) +q.$3(o,n,13) +q.$3(o,i,13) +p.$3(r.$2(20,245),"az",21) +o=r.$2(21,245) +p.$3(o,"az",21) +p.$3(o,"09",21) +q.$3(o,"+-.",21) +return f}, +rt(a,b,c,d,e){var s,r,q,p,o=$.tr() +for(s=b;s95?31:q] +d=p&31 +e[p>>>5]=s}return d}, +qR(a){if(a.b===7&&B.a.u(a.a,"package")&&a.c<=0)return A.rv(a.a,a.e,a.f) +return-1}, +rv(a,b,c){var s,r,q +for(s=b,r=0;s=1)return a.$1(b) +return a.$0()}, +vL(a,b,c,d){if(d>=2)return a.$2(b,c) +if(d===1)return a.$1(b) +return a.$0()}, +vM(a,b,c,d,e){if(e>=3)return a.$3(b,c,d) +if(e===2)return a.$2(b,c) +if(e===1)return a.$1(b) +return a.$0()}, +vN(a,b,c,d,e,f){if(f>=4)return a.$4(b,c,d,e) +if(f===3)return a.$3(b,c,d) +if(f===2)return a.$2(b,c) +if(f===1)return a.$1(b) +return a.$0()}, +vO(a,b,c,d,e,f,g){if(g>=5)return a.$5(b,c,d,e,f) +if(g===4)return a.$4(b,c,d,e) +if(g===3)return a.$3(b,c,d) +if(g===2)return a.$2(b,c) +if(g===1)return a.$1(b) +return a.$0()}, +rn(a){return a==null||A.bO(a)||typeof a=="number"||typeof a=="string"||t.gj.b(a)||t.p.b(a)||t.go.b(a)||t.dQ.b(a)||t.h7.b(a)||t.an.b(a)||t.bv.b(a)||t.h4.b(a)||t.gN.b(a)||t.E.b(a)||t.fd.b(a)}, +xj(a){if(A.rn(a))return a +return new A.od(new A.dy(t.hg)).$1(a)}, +cO(a,b,c){return a[b].apply(a,c)}, +dV(a,b){var s,r +if(b==null)return new a() +if(b instanceof Array)switch(b.length){case 0:return new a() +case 1:return new a(b[0]) +case 2:return new a(b[0],b[1]) +case 3:return new a(b[0],b[1],b[2]) +case 4:return new a(b[0],b[1],b[2],b[3])}s=[null] +B.c.aI(s,b) +r=a.bind.apply(a,s) +String(r) +return new r()}, +a0(a,b){var s=new A.k($.i,b.h("k<0>")),r=new A.a3(s,b.h("a3<0>")) +a.then(A.ch(new A.oh(r),1),A.ch(new A.oi(r),1)) +return s}, +rm(a){return a==null||typeof a==="boolean"||typeof a==="number"||typeof a==="string"||a instanceof Int8Array||a instanceof Uint8Array||a instanceof Uint8ClampedArray||a instanceof Int16Array||a instanceof Uint16Array||a instanceof Int32Array||a instanceof Uint32Array||a instanceof Float32Array||a instanceof Float64Array||a instanceof ArrayBuffer||a instanceof DataView}, +rC(a){if(A.rm(a))return a +return new A.o4(new A.dy(t.hg)).$1(a)}, +od:function od(a){this.a=a}, +oh:function oh(a){this.a=a}, +oi:function oi(a){this.a=a}, +o4:function o4(a){this.a=a}, +hq:function hq(a){this.a=a}, +rJ(a,b){return Math.max(a,b)}, +xz(a){return Math.sqrt(a)}, +xy(a){return Math.sin(a)}, +x_(a){return Math.cos(a)}, +xF(a){return Math.tan(a)}, +wB(a){return Math.acos(a)}, +wC(a){return Math.asin(a)}, +wW(a){return Math.atan(a)}, +nf:function nf(a){this.a=a}, +cW:function cW(){}, +fS:function fS(){}, +hh:function hh(){}, +hp:function hp(){}, +hM:function hM(){}, +u_(a,b){var s=new A.ec(a,b,A.a4(t.S,t.aR),A.eG(null,null,!0,t.al),new A.a3(new A.k($.i,t.D),t.h)) +s.hK(a,!1,b) +return s}, +ec:function ec(a,b,c,d,e){var _=this +_.a=a +_.c=b +_.d=0 +_.e=c +_.f=d +_.r=!1 +_.w=e}, +jD:function jD(a){this.a=a}, +jE:function jE(a,b){this.a=a +this.b=b}, +iu:function iu(a,b){this.a=a +this.b=b}, +fO:function fO(){}, +fW:function fW(a){this.a=a}, +fV:function fV(){}, +jF:function jF(a){this.a=a}, +jG:function jG(a){this.a=a}, +c0:function c0(){}, +am:function am(a,b){this.a=a +this.b=b}, +bb:function bb(a,b){this.a=a +this.b=b}, +aH:function aH(a){this.a=a}, +bq:function bq(a,b,c){this.a=a +this.b=b +this.c=c}, +bo:function bo(a){this.a=a}, +d5:function d5(a,b){this.a=a +this.b=b}, +cx:function cx(a,b){this.a=a +this.b=b}, +bW:function bW(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +c3:function c3(a){this.a=a}, +bh:function bh(a,b){this.a=a +this.b=b}, +c2:function c2(a,b){this.a=a +this.b=b}, +c5:function c5(a,b){this.a=a +this.b=b}, +bV:function bV(a,b){this.a=a +this.b=b}, +c6:function c6(a){this.a=a}, +c4:function c4(a,b){this.a=a +this.b=b}, +by:function by(a){this.a=a}, +bA:function bA(a){this.a=a}, +uH(a,b,c){var s=null,r=t.S,q=A.d([],t.t) +r=new A.kF(a,!1,!0,A.a4(r,t.x),A.a4(r,t.g1),q,new A.fg(s,s,t.dn),A.oF(t.gw),new A.a3(new A.k($.i,t.D),t.h),A.eG(s,s,!1,t.bw)) +r.hM(a,!1,!0) +return r}, +kF:function kF(a,b,c,d,e,f,g,h,i,j){var _=this +_.a=a +_.b=b +_.c=c +_.d=d +_.f=_.e=0 +_.r=e +_.w=f +_.x=g +_.y=!1 +_.z=h +_.Q=i +_.as=j}, +kK:function kK(a){this.a=a}, +kL:function kL(a,b){this.a=a +this.b=b}, +kM:function kM(a,b){this.a=a +this.b=b}, +kG:function kG(a,b){this.a=a +this.b=b}, +kH:function kH(a,b){this.a=a +this.b=b}, +kJ:function kJ(a,b){this.a=a +this.b=b}, +kI:function kI(a){this.a=a}, +fa:function fa(a,b,c){this.a=a +this.b=b +this.c=c}, +hZ:function hZ(){}, +lN:function lN(a,b){this.a=a +this.b=b}, +lO:function lO(a,b){this.a=a +this.b=b}, +lL:function lL(){}, +lH:function lH(a,b){this.a=a +this.b=b}, +lI:function lI(){}, +lJ:function lJ(){}, +lG:function lG(){}, +lM:function lM(){}, +lK:function lK(){}, +dk:function dk(a,b){this.a=a +this.b=b}, +bC:function bC(a,b){this.a=a +this.b=b}, +xw(a,b){var s,r,q={} +q.a=s +q.a=null +s=new A.bU(new A.a8(new A.k($.i,b.h("k<0>")),b.h("a8<0>")),A.d([],t.bT),b.h("bU<0>")) +q.a=s +r=t.X +A.xx(new A.oj(q,a,b),A.ki([B.ah,s],r,r),t.H) +return q.a}, +rB(){var s=$.i.i(0,B.ah) +if(s instanceof A.bU&&s.c)throw A.a(B.Z)}, +oj:function oj(a,b,c){this.a=a +this.b=b +this.c=c}, +bU:function bU(a,b,c){var _=this +_.a=a +_.b=b +_.c=!1 +_.$ti=c}, +e5:function e5(){}, +al:function al(){}, +e3:function e3(a,b){this.a=a +this.b=b}, +cT:function cT(a,b){this.a=a +this.b=b}, +rh(a){return"SAVEPOINT s"+a}, +rf(a){return"RELEASE s"+a}, +rg(a){return"ROLLBACK TO s"+a}, +jt:function jt(){}, +kt:function kt(){}, +le:function le(){}, +kn:function kn(){}, +jx:function jx(){}, +ho:function ho(){}, +jM:function jM(){}, +i4:function i4(){}, +lW:function lW(a,b){this.a=a +this.b=b}, +m0:function m0(a,b,c){this.a=a +this.b=b +this.c=c}, +lZ:function lZ(a,b,c){this.a=a +this.b=b +this.c=c}, +m_:function m_(a,b,c){this.a=a +this.b=b +this.c=c}, +lY:function lY(a,b,c){this.a=a +this.b=b +this.c=c}, +lX:function lX(a,b){this.a=a +this.b=b}, +iH:function iH(){}, +fe:function fe(a,b,c,d,e,f,g,h,i){var _=this +_.y=a +_.z=null +_.Q=b +_.as=c +_.at=d +_.ax=e +_.ay=f +_.ch=g +_.e=h +_.a=i +_.b=0 +_.d=_.c=!1}, +nq:function nq(a){this.a=a}, +nr:function nr(a){this.a=a}, +fT:function fT(){}, +jC:function jC(a,b){this.a=a +this.b=b}, +jB:function jB(a){this.a=a}, +i5:function i5(a,b){var _=this +_.e=a +_.a=b +_.b=0 +_.d=_.c=!1}, +eY:function eY(a,b,c){var _=this +_.e=a +_.f=null +_.r=b +_.a=c +_.b=0 +_.d=_.c=!1}, +mj:function mj(a,b){this.a=a +this.b=b}, +qd(a,b){var s,r,q,p=A.a4(t.N,t.S) +for(s=a.length,r=0;r3)throw A.a("Expected two or three arguments to regexp") +s=a.i(0,0) +q=a.i(0,1) +if(s==null||q==null)return null +if(typeof s!="string"||typeof q!="string")throw A.a("Expected two strings as parameters to regexp") +if(g===3){p=a.i(0,2) +if(A.bn(p)){k=(p&1)===1 +j=(p&2)!==2 +i=(p&4)===4 +h=(p&8)===8}}r=null +try{o=k +n=j +m=i +r=A.J(s,n,h,o,m)}catch(l){if(A.E(l) instanceof A.bs)throw A.a("Invalid regex") +else throw l}o=r.b +return o.test(q)}, +vT(a){var s,r,q=a.a.b +if(q<2||q>3)throw A.a("Expected 2 or 3 arguments to moor_contains") +s=a.i(0,0) +r=a.i(0,1) +if(typeof s!="string"||typeof r!="string")throw A.a("First two args to contains must be strings") +return q===3&&a.i(0,2)===1?J.pC(s,r):B.a.M(s.toLowerCase(),r.toLowerCase())}, +jN:function jN(){}, +o_:function o_(a){this.a=a}, +he:function he(a){var _=this +_.a=$ +_.b=!1 +_.d=null +_.e=a}, +kf:function kf(a,b){this.a=a +this.b=b}, +kg:function kg(a,b){this.a=a +this.b=b}, +bi:function bi(){this.a=null}, +kj:function kj(a,b,c){this.a=a +this.b=b +this.c=c}, +kk:function kk(a,b){this.a=a +this.b=b}, +uU(a,b,c){var s=null,r=new A.hE(t.a7),q=t.X,p=A.eG(s,s,!1,q),o=A.eG(s,s,!1,q),n=A.pU(new A.an(o,A.t(o).h("an<1>")),new A.dJ(p),!0,q) +r.a=n +q=A.pU(new A.an(p,A.t(p).h("an<1>")),new A.dJ(o),!0,q) +r.b=q +a.onmessage=A.bc(new A.lD(b,r,c)) +n=n.b +n===$&&A.G() +new A.an(n,A.t(n).h("an<1>")).eB(new A.lE(c,a),new A.lF(b,a)) +return q}, +lD:function lD(a,b,c){this.a=a +this.b=b +this.c=c}, +lE:function lE(a,b){this.a=a +this.b=b}, +lF:function lF(a,b){this.a=a +this.b=b}, +jy:function jy(a,b,c){var _=this +_.a=a +_.b=b +_.c=c +_.d=null}, +jA:function jA(a){this.a=a}, +jz:function jz(a,b){this.a=a +this.b=b}, +qc(a){var s +$label0$0:{if(a<=0){s=B.u +break $label0$0}if(1===a){s=B.aY +break $label0$0}if(2===a){s=B.aZ +break $label0$0}if(a>2){s=B.v +break $label0$0}s=A.y(A.e1(null))}return s}, +qb(a){if("v" in a)return A.qc(A.h(A.r(a.v))) +else return B.u}, +oO(a){var s,r,q,p,o,n,m,l,k,j,i=A.ad(a.type),h=a.payload +$label0$0:{if("Error"===i){s=new A.dp(A.ad(t.m.a(h))) +break $label0$0}if("ServeDriftDatabase"===i){s=t.m +s.a(h) +r=A.qb(h) +q=A.bm(A.ad(h.sqlite)) +s=s.a(h.port) +p=A.ou(B.aT,A.ad(h.storage)) +o=A.ad(h.database) +n=t.A.a(h.initPort) +m=r.c +l=m<2||A.bL(h.migrations) +s=new A.de(q,s,p,o,n,r,l,m<3||A.bL(h.new_serialization)) +break $label0$0}if("StartFileSystemServer"===i){s=new A.eE(t.m.a(h)) +break $label0$0}if("RequestCompatibilityCheck"===i){s=new A.dc(A.ad(h)) +break $label0$0}if("DedicatedWorkerCompatibilityResult"===i){t.m.a(h) +k=A.d([],t.L) +if("existing" in h)B.c.aI(k,A.pO(t.c.a(h.existing))) +s=A.bL(h.supportsNestedWorkers) +q=A.bL(h.canAccessOpfs) +p=A.bL(h.supportsSharedArrayBuffers) +o=A.bL(h.supportsIndexedDb) +n=A.bL(h.indexedDbExists) +m=A.bL(h.opfsExists) +m=new A.eb(s,q,p,o,k,A.qb(h),n,m) +s=m +break $label0$0}if("SharedWorkerCompatibilityResult"===i){s=t.c +s.a(h) +j=B.c.b8(h,t.y) +if(h.length>5){k=A.pO(s.a(h[5])) +r=h.length>6?A.qc(A.h(h[6])):B.u}else{k=B.B +r=B.u}s=j.a +q=J.V(s) +p=j.$ti.y[1] +s=new A.c7(p.a(q.i(s,0)),p.a(q.i(s,1)),p.a(q.i(s,2)),k,r,p.a(q.i(s,3)),p.a(q.i(s,4))) +break $label0$0}if("DeleteDatabase"===i){s=h==null?t.K.a(h):h +t.c.a(s) +q=$.pv().i(0,A.ad(s[0])) +q.toString +s=new A.fU(new A.ap(q,A.ad(s[1]))) +break $label0$0}s=A.y(A.K("Unknown type "+i,null))}return s}, +pO(a){var s,r,q=A.d([],t.L),p=B.c.b8(a,t.m),o=p.$ti +p=new A.aZ(p,p.gl(0),o.h("aZ")) +o=o.h("x.E") +for(;p.k();){s=p.d +if(s==null)s=o.a(s) +r=$.pv().i(0,A.ad(s.l)) +r.toString +q.push(new A.ap(r,A.ad(s.n)))}return q}, +pN(a){var s,r,q,p,o=A.d([],t.W) +for(s=a.length,r=0;r"))) +for(;i.k();){l=i.gm() +if(J.X(l.name,a)){q=!0 +s=1 +break $async$outer}}q=!1 +s=1 +break +case 8:k=n.open(a,1) +k.onupgradeneeded=A.bc(new A.o2(g,k)) +s=10 +return A.c(A.jf(k,i),$async$dW) +case 10:j=c +if(g.a==null)g.a=!0 +j.close() +s=g.a===!1?11:12 +break +case 11:s=13 +return A.c(A.jf(n.deleteDatabase(a),t.X),$async$dW) +case 13:case 12:p=2 +s=6 +break +case 4:p=3 +f=o +s=6 +break +case 3:s=2 +break +case 6:i=g.a +q=i===!0 +s=1 +break +case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$dW,r)}, +o5(a){var s=0,r=A.o(t.H),q,p +var $async$o5=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:q=t.m +p=q.a(self) +s="indexedDB" in p?2:3 +break +case 2:s=4 +return A.c(A.jf(q.a(p.indexedDB).deleteDatabase(a),t.X),$async$o5) +case 4:case 3:return A.m(null,r)}}) +return A.n($async$o5,r)}, +dY(){var s=0,r=A.o(t.o),q,p=2,o,n=[],m,l,k,j,i,h,g,f,e +var $async$dY=A.p(function(a,b){if(a===1){o=b +s=p}while(true)switch(s){case 0:f=A.pe() +if(f==null){q=B.r +s=1 +break}i=t.m +s=3 +return A.c(A.a0(f.getDirectory(),i),$async$dY) +case 3:m=b +p=5 +s=8 +return A.c(A.a0(m.getDirectoryHandle("drift_db"),i),$async$dY) +case 8:m=b +p=2 +s=7 +break +case 5:p=4 +e=o +q=B.r +s=1 +break +s=7 +break +case 4:s=2 +break +case 7:i=m +g=t.cO +if(!(self.Symbol.asyncIterator in i))A.y(A.K("Target object does not implement the async iterable interface",null)) +l=new A.f3(new A.og(),new A.e2(i,g),g.h("f3")) +k=A.d([],t.s) +i=new A.dI(A.aD(l,"stream",t.K)) +p=9 +case 12:s=14 +return A.c(i.k(),$async$dY) +case 14:if(!b){s=13 +break}j=i.gm() +if(J.X(j.kind,"directory"))J.oq(k,j.name) +s=12 +break +case 13:n.push(11) +s=10 +break +case 9:n=[2] +case 10:p=2 +s=15 +return A.c(i.J(),$async$dY) +case 15:s=n.pop() +break +case 11:q=k +s=1 +break +case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$dY,r)}, +fu(a){return A.x1(a)}, +x1(a){var s=0,r=A.o(t.H),q,p=2,o,n,m,l,k,j +var $async$fu=A.p(function(b,c){if(b===1){o=c +s=p}while(true)switch(s){case 0:k=A.pe() +if(k==null){s=1 +break}m=t.m +s=3 +return A.c(A.a0(k.getDirectory(),m),$async$fu) +case 3:n=c +p=5 +s=8 +return A.c(A.a0(n.getDirectoryHandle("drift_db"),m),$async$fu) +case 8:n=c +s=9 +return A.c(A.a0(n.removeEntry(a,{recursive:!0}),t.X),$async$fu) +case 9:p=2 +s=7 +break +case 5:p=4 +j=o +s=7 +break +case 4:s=2 +break +case 7:case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$fu,r)}, +jf(a,b){var s=new A.k($.i,b.h("k<0>")),r=new A.a8(s,b.h("a8<0>")) +A.aB(a,"success",new A.ji(r,a,b),!1) +A.aB(a,"error",new A.jj(r,a),!1) +A.aB(a,"blocked",new A.jk(r,a),!1) +return s}, +o2:function o2(a,b){this.a=a +this.b=b}, +og:function og(){}, +fX:function fX(a,b){this.a=a +this.b=b}, +jL:function jL(a,b){this.a=a +this.b=b}, +jI:function jI(a){this.a=a}, +jH:function jH(a){this.a=a}, +jJ:function jJ(a,b,c){this.a=a +this.b=b +this.c=c}, +jK:function jK(a,b,c){this.a=a +this.b=b +this.c=c}, +m8:function m8(a,b){this.a=a +this.b=b}, +dd:function dd(a,b,c){var _=this +_.a=a +_.b=b +_.c=0 +_.d=c}, +kD:function kD(a){this.a=a}, +lp:function lp(a,b){this.a=a +this.b=b}, +ji:function ji(a,b,c){this.a=a +this.b=b +this.c=c}, +jj:function jj(a,b){this.a=a +this.b=b}, +jk:function jk(a,b){this.a=a +this.b=b}, +kN:function kN(a,b){this.a=a +this.b=null +this.c=b}, +kS:function kS(a){this.a=a}, +kO:function kO(a,b){this.a=a +this.b=b}, +kR:function kR(a,b,c){this.a=a +this.b=b +this.c=c}, +kP:function kP(a){this.a=a}, +kQ:function kQ(a,b,c){this.a=a +this.b=b +this.c=c}, +ca:function ca(a,b){this.a=a +this.b=b}, +bJ:function bJ(a,b){this.a=a +this.b=b}, +hV:function hV(a,b,c,d,e){var _=this +_.e=a +_.f=null +_.r=b +_.w=c +_.x=d +_.a=e +_.b=0 +_.d=_.c=!1}, +nK:function nK(a,b,c,d,e,f,g){var _=this +_.Q=a +_.as=b +_.at=c +_.b=null +_.d=_.c=!1 +_.e=d +_.f=e +_.r=f +_.x=g +_.y=$ +_.a=!1}, +jo(a,b){if(a==null)a="." +return new A.fP(b,a)}, +pd(a){return a}, +rw(a,b){var s,r,q,p,o,n,m,l +for(s=b.length,r=1;r=1;s=q){q=s-1 +if(b[q]!=null)break}p=new A.av("") +o=""+(a+"(") +p.a=o +n=A.Q(b) +m=n.h("cy<1>") +l=new A.cy(b,0,s,m) +l.hN(b,0,s,n.c) +m=o+new A.D(l,new A.o0(),m.h("D")).aq(0,", ") +p.a=m +p.a=m+("): part "+(r-1)+" was null, but part "+r+" was not.") +throw A.a(A.K(p.j(0),null))}}, +fP:function fP(a,b){this.a=a +this.b=b}, +jp:function jp(){}, +jq:function jq(){}, +o0:function o0(){}, +dD:function dD(a){this.a=a}, +dE:function dE(a){this.a=a}, +ka:function ka(){}, +d6(a,b){var s,r,q,p,o,n=b.hu(a) +b.ab(a) +if(n!=null)a=B.a.K(a,n.length) +s=t.s +r=A.d([],s) +q=A.d([],s) +s=a.length +if(s!==0&&b.D(a.charCodeAt(0))){q.push(a[0]) +p=1}else{q.push("") +p=0}for(o=p;o")),r=new A.a8(s,b.h("a8<0>")) +A.aB(a,"success",new A.jg(r,a,b),!1) +A.aB(a,"error",new A.jh(r,a),!1) +return s}, +tY(a,b){var s=new A.k($.i,b.h("k<0>")),r=new A.a8(s,b.h("a8<0>")) +A.aB(a,"success",new A.jl(r,a,b),!1) +A.aB(a,"error",new A.jm(r,a),!1) +A.aB(a,"blocked",new A.jn(r,a),!1) +return s}, +cF:function cF(a,b){var _=this +_.c=_.b=_.a=null +_.d=a +_.$ti=b}, +m9:function m9(a,b){this.a=a +this.b=b}, +ma:function ma(a,b){this.a=a +this.b=b}, +jg:function jg(a,b,c){this.a=a +this.b=b +this.c=c}, +jh:function jh(a,b){this.a=a +this.b=b}, +jl:function jl(a,b,c){this.a=a +this.b=b +this.c=c}, +jm:function jm(a,b){this.a=a +this.b=b}, +jn:function jn(a,b){this.a=a +this.b=b}, +lv(a,b){var s=0,r=A.o(t.g9),q,p,o,n,m,l +var $async$lv=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:l={} +b.aa(0,new A.lx(l)) +p=t.m +s=3 +return A.c(A.a0(self.WebAssembly.instantiateStreaming(a,l),p),$async$lv) +case 3:o=d +n=o.instance.exports +if("_initialize" in n)t.g.a(n._initialize).call() +m=t.N +p=new A.hX(A.a4(m,t.g),A.a4(m,p)) +p.hO(o.instance) +q=p +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$lv,r)}, +hX:function hX(a,b){this.a=a +this.b=b}, +lx:function lx(a){this.a=a}, +lw:function lw(a){this.a=a}, +lz(a){var s=0,r=A.o(t.ab),q,p,o +var $async$lz=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:p=a.gh7()?new self.URL(a.j(0)):new self.URL(a.j(0),A.eI().j(0)) +o=A +s=3 +return A.c(A.a0(self.fetch(p,null),t.m),$async$lz) +case 3:q=o.ly(c) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$lz,r)}, +ly(a){var s=0,r=A.o(t.ab),q,p,o +var $async$ly=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:p=A +o=A +s=3 +return A.c(A.lo(a),$async$ly) +case 3:q=new p.hY(new o.lA(c)) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$ly,r)}, +hY:function hY(a){this.a=a}, +dn:function dn(a,b,c,d,e){var _=this +_.d=a +_.e=b +_.r=c +_.b=d +_.a=e}, +hW:function hW(a,b){this.a=a +this.b=b +this.c=0}, +qf(a){var s +if(!J.X(a.byteLength,8))throw A.a(A.K("Must be 8 in length",null)) +s=self.Int32Array +return new A.kC(t.ha.a(A.dV(s,[a])))}, +un(a){return B.h}, +uo(a){var s=a.b +return new A.S(s.getInt32(0,!1),s.getInt32(4,!1),s.getInt32(8,!1))}, +up(a){var s=a.b +return new A.aQ(B.j.cT(A.oI(a.a,16,s.getInt32(12,!1))),s.getInt32(0,!1),s.getInt32(4,!1),s.getInt32(8,!1))}, +kC:function kC(a){this.b=a}, +bj:function bj(a,b,c){this.a=a +this.b=b +this.c=c}, +ac:function ac(a,b,c,d,e){var _=this +_.c=a +_.d=b +_.a=c +_.b=d +_.$ti=e}, +bw:function bw(){}, +aW:function aW(){}, +S:function S(a,b,c){this.a=a +this.b=b +this.c=c}, +aQ:function aQ(a,b,c,d){var _=this +_.d=a +_.a=b +_.b=c +_.c=d}, +hT(a){var s=0,r=A.o(t.ei),q,p,o,n,m,l,k,j,i +var $async$hT=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:k=t.m +s=3 +return A.c(A.a0(A.rR().getDirectory(),k),$async$hT) +case 3:j=c +i=$.fz().aP(0,a.root) +p=i.length,o=0 +case 4:if(!(o")),A.xJ(),r.h("az<1,a2>")),t.a))}if(!B.a.M(a,q))return new A.bf(A.aG(A.d([A.qr(a)],t.J),t.a)) +return new A.bf(A.aG(new A.D(A.d(a.split(q),t.s),A.xI(),t.fe),t.a))}, +bf:function bf(a){this.a=a}, +j6:function j6(){}, +jb:function jb(){}, +ja:function ja(){}, +j8:function j8(){}, +j9:function j9(a){this.a=a}, +j7:function j7(a){this.a=a}, +ub(a){return A.pR(a)}, +pR(a){return A.h3(a,new A.jX(a))}, +ua(a){return A.u7(a)}, +u7(a){return A.h3(a,new A.jV(a))}, +u4(a){return A.h3(a,new A.jS(a))}, +u8(a){return A.u5(a)}, +u5(a){return A.h3(a,new A.jT(a))}, +u9(a){return A.u6(a)}, +u6(a){return A.h3(a,new A.jU(a))}, +h4(a){if(B.a.M(a,$.rU()))return A.bm(a) +else if(B.a.M(a,$.rV()))return A.qY(a,!0) +else if(B.a.u(a,"/"))return A.qY(a,!1) +if(B.a.M(a,"\\"))return $.tC().hp(a) +return A.bm(a)}, +h3(a,b){var s,r +try{s=b.$0() +return s}catch(r){if(A.E(r) instanceof A.bs)return new A.bl(A.aj(null,"unparsed",null,null),a) +else throw r}}, +N:function N(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.d=d}, +jX:function jX(a){this.a=a}, +jV:function jV(a){this.a=a}, +jW:function jW(a){this.a=a}, +jS:function jS(a){this.a=a}, +jT:function jT(a){this.a=a}, +jU:function jU(a){this.a=a}, +hf:function hf(a){this.a=a +this.b=$}, +qq(a){if(t.a.b(a))return a +if(a instanceof A.bf)return a.ho() +return new A.hf(new A.la(a))}, +qr(a){var s,r,q +try{if(a.length===0){r=A.qn(A.d([],t.e),null) +return r}if(B.a.M(a,$.tv())){r=A.uM(a) +return r}if(B.a.M(a,"\tat ")){r=A.uL(a) +return r}if(B.a.M(a,$.tl())||B.a.M(a,$.tj())){r=A.uK(a) +return r}if(B.a.M(a,u.q)){r=A.tS(a).ho() +return r}if(B.a.M(a,$.to())){r=A.qo(a) +return r}r=A.qp(a) +return r}catch(q){r=A.E(q) +if(r instanceof A.bs){s=r +throw A.a(A.ai(s.a+"\nStack trace:\n"+a,null,null))}else throw q}}, +uO(a){return A.qp(a)}, +qp(a){var s=A.aG(A.uP(a),t.B) +return new A.a2(s)}, +uP(a){var s,r=B.a.eM(a),q=$.pz(),p=t.U,o=new A.aT(A.d(A.bd(r,q,"").split("\n"),t.s),new A.lb(),p) +if(!o.gt(0).k())return A.d([],t.e) +r=A.oM(o,o.gl(0)-1,p.h("f.E")) +r=A.eq(r,A.x7(),A.t(r).h("f.E"),t.B) +s=A.ay(r,!0,A.t(r).h("f.E")) +if(!J.tG(o.gC(0),".da"))B.c.v(s,A.pR(o.gC(0))) +return s}, +uM(a){var s=A.b4(A.d(a.split("\n"),t.s),1,null,t.N).hF(0,new A.l9()),r=t.B +r=A.aG(A.eq(s,A.rE(),s.$ti.h("f.E"),r),r) +return new A.a2(r)}, +uL(a){var s=A.aG(new A.az(new A.aT(A.d(a.split("\n"),t.s),new A.l8(),t.U),A.rE(),t.M),t.B) +return new A.a2(s)}, +uK(a){var s=A.aG(new A.az(new A.aT(A.d(B.a.eM(a).split("\n"),t.s),new A.l6(),t.U),A.x5(),t.M),t.B) +return new A.a2(s)}, +uN(a){return A.qo(a)}, +qo(a){var s=a.length===0?A.d([],t.e):new A.az(new A.aT(A.d(B.a.eM(a).split("\n"),t.s),new A.l7(),t.U),A.x6(),t.M) +s=A.aG(s,t.B) +return new A.a2(s)}, +qn(a,b){var s=A.aG(a,t.B) +return new A.a2(s)}, +a2:function a2(a){this.a=a}, +la:function la(a){this.a=a}, +lb:function lb(){}, +l9:function l9(){}, +l8:function l8(){}, +l6:function l6(){}, +l7:function l7(){}, +ld:function ld(){}, +lc:function lc(a){this.a=a}, +bl:function bl(a,b){this.a=a +this.w=b}, +e7:function e7(a){var _=this +_.b=_.a=$ +_.c=null +_.d=!1 +_.$ti=a}, +eS:function eS(a,b,c){this.a=a +this.b=b +this.$ti=c}, +eR:function eR(a,b){this.b=a +this.a=b}, +pU(a,b,c,d){var s,r={} +r.a=a +s=new A.eh(d.h("eh<0>")) +s.hL(b,!0,r,d) +return s}, +eh:function eh(a){var _=this +_.b=_.a=$ +_.c=null +_.d=!1 +_.$ti=a}, +k3:function k3(a,b){this.a=a +this.b=b}, +k2:function k2(a){this.a=a}, +f0:function f0(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.e=_.d=!1 +_.r=_.f=null +_.w=d}, +hE:function hE(a){this.b=this.a=$ +this.$ti=a}, +eF:function eF(){}, +bF:function bF(){}, +im:function im(){}, +bG:function bG(a,b){this.a=a +this.b=b}, +aB(a,b,c,d){var s +if(c==null)s=null +else{s=A.rx(new A.mh(c),t.m) +s=s==null?null:A.bc(s)}s=new A.ie(a,b,s,!1) +s.e3() +return s}, +rx(a,b){var s=$.i +if(s===B.d)return a +return s.eg(a,b)}, +ov:function ov(a,b){this.a=a +this.$ti=b}, +eX:function eX(a,b,c,d){var _=this +_.a=a +_.b=b +_.c=c +_.$ti=d}, +ie:function ie(a,b,c,d){var _=this +_.a=0 +_.b=a +_.c=b +_.d=c +_.e=d}, +mh:function mh(a){this.a=a}, +mi:function mi(a){this.a=a}, +pq(a){if(typeof dartPrint=="function"){dartPrint(a) +return}if(typeof console=="object"&&typeof console.log!="undefined"){console.log(a) +return}if(typeof print=="function"){print(a) +return}throw"Unable to print message: "+String(a)}, +um(a){return a}, +oB(a,b){var s,r,q,p,o,n +if(b.length===0)return!1 +s=b.split(".") +r=t.m.a(self) +for(q=s.length,p=t.A,o=0;o=65&&a<=90))s=a>=97&&a<=122 +else s=!0 +return s}, +rD(a,b){var s,r,q=null,p=a.length,o=b+2 +if(p0)throw A.a(A.jO("BigInt value exceeds the range of 64 bits")) +return a}, +kB(a){var s=0,r=A.o(t.E),q +var $async$kB=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:s=3 +return A.c(A.a0(a.arrayBuffer(),t.bZ),$async$kB) +case 3:q=c +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$kB,r)}, +qi(a,b,c){var s=self.DataView,r=[a] +r.push(b) +r.push(c) +return t.gT.a(A.dV(s,r))}, +oI(a,b,c){var s=self.Uint8Array,r=[a] +r.push(b) +r.push(c) +return t.Z.a(A.dV(s,r))}, +tP(a,b){self.Atomics.notify(a,b,1/0)}, +rR(){var s=self.navigator +if("storage" in s)return s.storage +return null}, +jP(a,b,c){return a.read(b,c)}, +ow(a,b,c){return a.write(b,c)}, +pQ(a,b){return A.a0(a.removeEntry(b,{recursive:!1}),t.X)}, +oy(a,b){var s,r +for(s=b,r=0;r<16;++r)s+=A.aA("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012346789".charCodeAt(a.hc(61))) +return s.charCodeAt(0)==0?s:s}, +xl(){var s=t.m.a(self) +if(A.oB(s,"DedicatedWorkerGlobalScope"))new A.jy(s,new A.bi(),new A.fX(A.a4(t.N,t.fE),null)).U() +else if(A.oB(s,"SharedWorkerGlobalScope"))new A.kN(s,new A.fX(A.a4(t.N,t.fE),null)).U()}},B={} +var w=[A,J,B] +var $={} +A.oD.prototype={} +J.h9.prototype={ +O(a,b){return a===b}, +gB(a){return A.ey(a)}, +j(a){return"Instance of '"+A.ks(a)+"'"}, +gW(a){return A.bQ(A.pb(this))}} +J.ha.prototype={ +j(a){return String(a)}, +gB(a){return a?519018:218159}, +gW(a){return A.bQ(t.y)}, +$iL:1, +$iU:1} +J.em.prototype={ +O(a,b){return null==b}, +j(a){return"null"}, +gB(a){return 0}, +$iL:1, +$iF:1} +J.en.prototype={$iA:1} +J.c_.prototype={ +gB(a){return 0}, +j(a){return String(a)}} +J.ht.prototype={} +J.cA.prototype={} +J.bY.prototype={ +j(a){var s=a[$.dZ()] +if(s==null)return this.hG(a) +return"JavaScript function for "+J.aU(s)}} +J.aY.prototype={ +gB(a){return 0}, +j(a){return String(a)}} +J.eo.prototype={ +gB(a){return 0}, +j(a){return String(a)}} +J.w.prototype={ +b8(a,b){return new A.ah(a,A.Q(a).h("@<1>").H(b).h("ah<1,2>"))}, +v(a,b){if(!!a.fixed$length)A.y(A.H("add")) +a.push(b)}, +d6(a,b){var s +if(!!a.fixed$length)A.y(A.H("removeAt")) +s=a.length +if(b>=s)throw A.a(A.kw(b,null)) +return a.splice(b,1)[0]}, +cY(a,b,c){var s +if(!!a.fixed$length)A.y(A.H("insert")) +s=a.length +if(b>s)throw A.a(A.kw(b,null)) +a.splice(b,0,c)}, +ev(a,b,c){var s,r +if(!!a.fixed$length)A.y(A.H("insertAll")) +A.qe(b,0,a.length,"index") +if(!t.Q.b(c))c=J.iX(c) +s=J.ae(c) +a.length=a.length+s +r=b+s +this.P(a,r,a.length,a,b) +this.ae(a,b,r,c)}, +hi(a){if(!!a.fixed$length)A.y(A.H("removeLast")) +if(a.length===0)throw A.a(A.dX(a,-1)) +return a.pop()}, +A(a,b){var s +if(!!a.fixed$length)A.y(A.H("remove")) +for(s=0;s").H(c).h("D<1,2>"))}, +aq(a,b){var s,r=A.b_(a.length,"",!1,t.N) +for(s=0;ss)throw A.a(A.Y(b,0,s,"start",null)) +if(cs)throw A.a(A.Y(c,b,s,"end",null)) +if(b===c)return A.d([],A.Q(a)) +return A.d(a.slice(b,c),A.Q(a))}, +co(a,b,c){A.ba(b,c,a.length) +return A.b4(a,b,c,A.Q(a).c)}, +gG(a){if(a.length>0)return a[0] +throw A.a(A.ak())}, +gC(a){var s=a.length +if(s>0)return a[s-1] +throw A.a(A.ak())}, +P(a,b,c,d,e){var s,r,q,p,o +if(!!a.immutable$list)A.y(A.H("setRange")) +A.ba(b,c,a.length) +s=c-b +if(s===0)return +A.ab(e,"skipCount") +if(t.j.b(d)){r=d +q=e}else{r=J.e0(d,e).az(0,!1) +q=0}p=J.V(r) +if(q+s>p.gl(r))throw A.a(A.pX()) +if(q=0;--o)a[b+o]=p.i(r,q+o) +else for(o=0;o0){a[0]=q +a[1]=r}return}p=0 +if(A.Q(a).c.b(null))for(o=0;o0)this.iX(a,p)}, +hB(a){return this.hC(a,null)}, +iX(a,b){var s,r=a.length +for(;s=r-1,r>0;r=s)if(a[s]===null){a[s]=void 0;--b +if(b===0)break}}, +d0(a,b){var s,r=a.length,q=r-1 +if(q<0)return-1 +q>=r +for(s=q;s>=0;--s)if(J.X(a[s],b))return s +return-1}, +gF(a){return a.length===0}, +j(a){return A.oA(a,"[","]")}, +az(a,b){var s=A.d(a.slice(0),A.Q(a)) +return s}, +cj(a){return this.az(a,!0)}, +gt(a){return new J.fC(a,a.length,A.Q(a).h("fC<1>"))}, +gB(a){return A.ey(a)}, +gl(a){return a.length}, +i(a,b){if(!(b>=0&&b=0&&b=p){r.d=null +return!1}r.d=q[s] +r.c=s+1 +return!0}} +J.d0.prototype={ +ah(a,b){var s +if(ab)return 1 +else if(a===b){if(a===0){s=this.gey(b) +if(this.gey(a)===s)return 0 +if(this.gey(a))return-1 +return 1}return 0}else if(isNaN(a)){if(isNaN(b))return 0 +return 1}else return-1}, +gey(a){return a===0?1/a<0:a<0}, +kF(a){var s +if(a>=-2147483648&&a<=2147483647)return a|0 +if(isFinite(a)){s=a<0?Math.ceil(a):Math.floor(a) +return s+0}throw A.a(A.H(""+a+".toInt()"))}, +jF(a){var s,r +if(a>=0){if(a<=2147483647){s=a|0 +return a===s?s:s+1}}else if(a>=-2147483648)return a|0 +r=Math.ceil(a) +if(isFinite(r))return r +throw A.a(A.H(""+a+".ceil()"))}, +j(a){if(a===0&&1/a<0)return"-0.0" +else return""+a}, +gB(a){var s,r,q,p,o=a|0 +if(a===o)return o&536870911 +s=Math.abs(a) +r=Math.log(s)/0.6931471805599453|0 +q=Math.pow(2,r) +p=s<1?s/q:q/s +return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, +aA(a,b){var s=a%b +if(s===0)return 0 +if(s>0)return s +return s+b}, +eX(a,b){if((a|0)===a)if(b>=1||b<-1)return a/b|0 +return this.fL(a,b)}, +I(a,b){return(a|0)===a?a/b|0:this.fL(a,b)}, +fL(a,b){var s=a/b +if(s>=-2147483648&&s<=2147483647)return s|0 +if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) +throw A.a(A.H("Result of truncating division is "+A.v(s)+": "+A.v(a)+" ~/ "+b))}, +b0(a,b){if(b<0)throw A.a(A.dU(b)) +return b>31?0:a<>>0}, +bm(a,b){var s +if(b<0)throw A.a(A.dU(b)) +if(a>0)s=this.e2(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +R(a,b){var s +if(a>0)s=this.e2(a,b) +else{s=b>31?31:b +s=a>>s>>>0}return s}, +jb(a,b){if(0>b)throw A.a(A.dU(b)) +return this.e2(a,b)}, +e2(a,b){return b>31?0:a>>>b}, +gW(a){return A.bQ(t.v)}, +$iI:1, +$ib6:1} +J.el.prototype={ +gfV(a){var s,r=a<0?-a-1:a,q=r +for(s=32;q>=4294967296;){q=this.I(q,4294967296) +s+=32}return s-Math.clz32(q)}, +gW(a){return A.bQ(t.S)}, +$iL:1, +$ib:1} +J.hb.prototype={ +gW(a){return A.bQ(t.i)}, +$iL:1} +J.bX.prototype={ +jH(a,b){if(b<0)throw A.a(A.dX(a,b)) +if(b>=a.length)A.y(A.dX(a,b)) +return a.charCodeAt(b)}, +cM(a,b,c){var s=b.length +if(c>s)throw A.a(A.Y(c,0,s,null,null)) +return new A.iD(b,a,c)}, +ed(a,b){return this.cM(a,b,0)}, +ha(a,b,c){var s,r,q=null +if(c<0||c>b.length)throw A.a(A.Y(c,0,b.length,q,q)) +s=a.length +if(c+s>b.length)return q +for(r=0;rr)return!1 +return b===this.K(a,r-s)}, +hl(a,b,c){A.qe(0,0,a.length,"startIndex") +return A.xE(a,b,c,0)}, +aP(a,b){if(typeof b=="string")return A.d(a.split(b),t.s) +else if(b instanceof A.cu&&b.gfp().exec("").length-2===0)return A.d(a.split(b.b),t.s) +else return this.i7(a,b)}, +aN(a,b,c,d){var s=A.ba(b,c,a.length) +return A.pr(a,b,s,d)}, +i7(a,b){var s,r,q,p,o,n,m=A.d([],t.s) +for(s=J.or(b,a),s=s.gt(s),r=0,q=1;s.k();){p=s.gm() +o=p.gcq() +n=p.gbz() +q=n-o +if(q===0&&r===o)continue +m.push(this.n(a,r,o)) +r=n}if(r0)m.push(this.K(a,r)) +return m}, +E(a,b,c){var s +if(c<0||c>a.length)throw A.a(A.Y(c,0,a.length,null,null)) +if(typeof b=="string"){s=c+b.length +if(s>a.length)return!1 +return b===a.substring(c,s)}return J.tJ(b,a,c)!=null}, +u(a,b){return this.E(a,b,0)}, +n(a,b,c){return a.substring(b,A.ba(b,c,a.length))}, +K(a,b){return this.n(a,b,null)}, +eM(a){var s,r,q,p=a.trim(),o=p.length +if(o===0)return p +if(p.charCodeAt(0)===133){s=J.ui(p,1) +if(s===o)return""}else s=0 +r=o-1 +q=p.charCodeAt(r)===133?J.uj(p,r):o +if(s===0&&q===o)return p +return p.substring(s,q)}, +bI(a,b){var s,r +if(0>=b)return"" +if(b===1||a.length===0)return a +if(b!==b>>>0)throw A.a(B.aB) +for(s=a,r="";!0;){if((b&1)===1)r=s+r +b=b>>>1 +if(b===0)break +s+=s}return r}, +km(a,b,c){var s=b-a.length +if(s<=0)return a +return this.bI(c,s)+a}, +hd(a,b){var s=b-a.length +if(s<=0)return a +return a+this.bI(" ",s)}, +aV(a,b,c){var s +if(c<0||c>a.length)throw A.a(A.Y(c,0,a.length,null,null)) +s=a.indexOf(b,c) +return s}, +k8(a,b){return this.aV(a,b,0)}, +h9(a,b,c){var s,r +if(c==null)c=a.length +else if(c<0||c>a.length)throw A.a(A.Y(c,0,a.length,null,null)) +s=b.length +r=a.length +if(c+s>r)c=r-s +return a.lastIndexOf(b,c)}, +d0(a,b){return this.h9(a,b,null)}, +M(a,b){return A.xA(a,b,0)}, +ah(a,b){var s +if(a===b)s=0 +else s=a>6}r=r+((r&67108863)<<3)&536870911 +r^=r>>11 +return r+((r&16383)<<15)&536870911}, +gW(a){return A.bQ(t.N)}, +gl(a){return a.length}, +i(a,b){if(!(b>=0&&b"))}, +gl(a){return J.ae(this.gan())}, +gF(a){return J.iU(this.gan())}, +Y(a,b){var s=A.t(this) +return A.e6(J.e0(this.gan(),b),s.c,s.y[1])}, +ai(a,b){var s=A.t(this) +return A.e6(J.iW(this.gan(),b),s.c,s.y[1])}, +N(a,b){return A.t(this).y[1].a(J.fA(this.gan(),b))}, +gG(a){return A.t(this).y[1].a(J.fB(this.gan()))}, +gC(a){return A.t(this).y[1].a(J.iV(this.gan()))}, +j(a){return J.aU(this.gan())}} +A.fM.prototype={ +k(){return this.a.k()}, +gm(){return this.$ti.y[1].a(this.a.gm())}} +A.cm.prototype={ +gan(){return this.a}} +A.eV.prototype={$iu:1} +A.eQ.prototype={ +i(a,b){return this.$ti.y[1].a(J.aO(this.a,b))}, +q(a,b,c){J.pA(this.a,b,this.$ti.c.a(c))}, +co(a,b,c){var s=this.$ti +return A.e6(J.tI(this.a,b,c),s.c,s.y[1])}, +P(a,b,c,d,e){var s=this.$ti +J.tK(this.a,b,c,A.e6(d,s.y[1],s.c),e)}, +ae(a,b,c,d){return this.P(0,b,c,d,0)}, +$iu:1, +$iq:1} +A.ah.prototype={ +b8(a,b){return new A.ah(this.a,this.$ti.h("@<1>").H(b).h("ah<1,2>"))}, +gan(){return this.a}} +A.bZ.prototype={ +j(a){return"LateInitializationError: "+this.a}} +A.e8.prototype={ +gl(a){return this.a.length}, +i(a,b){return this.a.charCodeAt(b)}} +A.of.prototype={ +$0(){return A.aX(null,t.P)}, +$S:14} +A.kE.prototype={} +A.u.prototype={} +A.P.prototype={ +gt(a){var s=this +return new A.aZ(s,s.gl(s),A.t(s).h("aZ"))}, +gF(a){return this.gl(this)===0}, +gG(a){if(this.gl(this)===0)throw A.a(A.ak()) +return this.N(0,0)}, +gC(a){var s=this +if(s.gl(s)===0)throw A.a(A.ak()) +return s.N(0,s.gl(s)-1)}, +aq(a,b){var s,r,q,p=this,o=p.gl(p) +if(b.length!==0){if(o===0)return"" +s=A.v(p.N(0,0)) +if(o!==p.gl(p))throw A.a(A.ax(p)) +for(r=s,q=1;q").H(c).h("D<1,2>"))}, +k6(a,b,c){var s,r,q=this,p=q.gl(q) +for(s=b,r=0;rs)throw A.a(A.Y(r,0,s,"start",null))}}, +gig(){var s=J.ae(this.a),r=this.c +if(r==null||r>s)return s +return r}, +gjg(){var s=J.ae(this.a),r=this.b +if(r>s)return s +return r}, +gl(a){var s,r=J.ae(this.a),q=this.b +if(q>=r)return 0 +s=this.c +if(s==null||s>=r)return r-q +return s-q}, +N(a,b){var s=this,r=s.gjg()+b +if(b<0||r>=s.gig())throw A.a(A.h6(b,s.gl(0),s,null,"index")) +return J.fA(s.a,r)}, +Y(a,b){var s,r,q=this +A.ab(b,"count") +s=q.b+b +r=q.c +if(r!=null&&s>=r)return new A.cs(q.$ti.h("cs<1>")) +return A.b4(q.a,s,r,q.$ti.c)}, +ai(a,b){var s,r,q,p=this +A.ab(b,"count") +s=p.c +r=p.b +q=r+b +if(s==null)return A.b4(p.a,r,q,p.$ti.c) +else{if(s=o){r.d=null +return!1}r.d=p.N(q,s);++r.c +return!0}} +A.az.prototype={ +gt(a){return new A.b0(J.M(this.a),this.b,A.t(this).h("b0<1,2>"))}, +gl(a){return J.ae(this.a)}, +gF(a){return J.iU(this.a)}, +gG(a){return this.b.$1(J.fB(this.a))}, +gC(a){return this.b.$1(J.iV(this.a))}, +N(a,b){return this.b.$1(J.fA(this.a,b))}} +A.cr.prototype={$iu:1} +A.b0.prototype={ +k(){var s=this,r=s.b +if(r.k()){s.a=s.c.$1(r.gm()) +return!0}s.a=null +return!1}, +gm(){var s=this.a +return s==null?this.$ti.y[1].a(s):s}} +A.D.prototype={ +gl(a){return J.ae(this.a)}, +N(a,b){return this.b.$1(J.fA(this.a,b))}} +A.aT.prototype={ +gt(a){return new A.eK(J.M(this.a),this.b)}, +bd(a,b,c){return new A.az(this,b,this.$ti.h("@<1>").H(c).h("az<1,2>"))}} +A.eK.prototype={ +k(){var s,r +for(s=this.a,r=this.b;s.k();)if(r.$1(s.gm()))return!0 +return!1}, +gm(){return this.a.gm()}} +A.ef.prototype={ +gt(a){return new A.h0(J.M(this.a),this.b,B.a0,this.$ti.h("h0<1,2>"))}} +A.h0.prototype={ +gm(){var s=this.d +return s==null?this.$ti.y[1].a(s):s}, +k(){var s,r,q=this,p=q.c +if(p==null)return!1 +for(s=q.a,r=q.b;!p.k();){q.d=null +if(s.k()){q.c=null +p=J.M(r.$1(s.gm())) +q.c=p}else return!1}q.d=q.c.gm() +return!0}} +A.cz.prototype={ +gt(a){return new A.hH(J.M(this.a),this.b,A.t(this).h("hH<1>"))}} +A.ed.prototype={ +gl(a){var s=J.ae(this.a),r=this.b +if(s>r)return r +return s}, +$iu:1} +A.hH.prototype={ +k(){if(--this.b>=0)return this.a.k() +this.b=-1 +return!1}, +gm(){if(this.b<0){this.$ti.c.a(null) +return null}return this.a.gm()}} +A.bB.prototype={ +Y(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.bB(this.a,this.b+b,A.t(this).h("bB<1>"))}, +gt(a){return new A.hA(J.M(this.a),this.b)}} +A.cX.prototype={ +gl(a){var s=J.ae(this.a)-this.b +if(s>=0)return s +return 0}, +Y(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.cX(this.a,this.b+b,this.$ti)}, +$iu:1} +A.hA.prototype={ +k(){var s,r +for(s=this.a,r=0;r"))}, +Y(a,b){A.ab(b,"count") +return this}, +ai(a,b){A.ab(b,"count") +return this}} +A.fY.prototype={ +k(){return!1}, +gm(){throw A.a(A.ak())}} +A.eL.prototype={ +gt(a){return new A.i_(J.M(this.a),this.$ti.h("i_<1>"))}} +A.i_.prototype={ +k(){var s,r +for(s=this.a,r=this.$ti.c;s.k();)if(r.b(s.gm()))return!0 +return!1}, +gm(){return this.$ti.c.a(this.a.gm())}} +A.bt.prototype={ +gl(a){return J.ae(this.a)}, +gF(a){return J.iU(this.a)}, +gG(a){return new A.ap(this.b,J.fB(this.a))}, +N(a,b){return new A.ap(b+this.b,J.fA(this.a,b))}, +ai(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.bt(J.iW(this.a,b),this.b,A.t(this).h("bt<1>"))}, +Y(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.bt(J.e0(this.a,b),b+this.b,A.t(this).h("bt<1>"))}, +gt(a){return new A.ej(J.M(this.a),this.b)}} +A.cq.prototype={ +gC(a){var s,r=this.a,q=J.V(r),p=q.gl(r) +if(p<=0)throw A.a(A.ak()) +s=q.gC(r) +if(p!==q.gl(r))throw A.a(A.ax(this)) +return new A.ap(p-1+this.b,s)}, +ai(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.cq(J.iW(this.a,b),this.b,this.$ti)}, +Y(a,b){A.bT(b,"count") +A.ab(b,"count") +return new A.cq(J.e0(this.a,b),this.b+b,this.$ti)}, +$iu:1} +A.ej.prototype={ +k(){if(++this.c>=0&&this.a.k())return!0 +this.c=-2 +return!1}, +gm(){var s=this.c +return s>=0?new A.ap(this.b+s,this.a.gm()):A.y(A.ak())}} +A.eg.prototype={} +A.hL.prototype={ +q(a,b,c){throw A.a(A.H("Cannot modify an unmodifiable list"))}, +P(a,b,c,d,e){throw A.a(A.H("Cannot modify an unmodifiable list"))}, +ae(a,b,c,d){return this.P(0,b,c,d,0)}} +A.dj.prototype={} +A.ez.prototype={ +gl(a){return J.ae(this.a)}, +N(a,b){var s=this.a,r=J.V(s) +return r.N(s,r.gl(s)-1-b)}} +A.hG.prototype={ +gB(a){var s=this._hashCode +if(s!=null)return s +s=664597*B.a.gB(this.a)&536870911 +this._hashCode=s +return s}, +j(a){return'Symbol("'+this.a+'")'}, +O(a,b){if(b==null)return!1 +return b instanceof A.hG&&this.a===b.a}} +A.fq.prototype={} +A.ap.prototype={$r:"+(1,2)",$s:1} +A.cJ.prototype={$r:"+file,outFlags(1,2)",$s:2} +A.e9.prototype={ +j(a){return A.oG(this)}, +gel(){return new A.dL(this.jQ(),A.t(this).h("dL>"))}, +jQ(){var s=this +return function(){var r=0,q=1,p,o,n,m +return function $async$gel(a,b,c){if(b===1){p=c +r=q}while(true)switch(r){case 0:o=s.ga_(),o=o.gt(o),n=A.t(s).h("bv<1,2>") +case 2:if(!o.k()){r=3 +break}m=o.gm() +r=4 +return a.b=new A.bv(m,s.i(0,m),n),1 +case 4:r=2 +break +case 3:return 0 +case 1:return a.c=p,3}}}}, +$iaa:1} +A.ea.prototype={ +gl(a){return this.b.length}, +gfl(){var s=this.$keys +if(s==null){s=Object.keys(this.a) +this.$keys=s}return s}, +a4(a){if(typeof a!="string")return!1 +if("__proto__"===a)return!1 +return this.a.hasOwnProperty(a)}, +i(a,b){if(!this.a4(b))return null +return this.b[this.a[b]]}, +aa(a,b){var s,r,q=this.gfl(),p=this.b +for(s=q.length,r=0;r"))}, +gaO(){return new A.cI(this.b,this.$ti.h("cI<2>"))}} +A.cI.prototype={ +gl(a){return this.a.length}, +gF(a){return 0===this.a.length}, +gt(a){var s=this.a +return new A.ip(s,s.length,this.$ti.h("ip<1>"))}} +A.ip.prototype={ +gm(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +k(){var s=this,r=s.c +if(r>=s.b){s.d=null +return!1}s.d=s.a[r] +s.c=r+1 +return!0}} +A.k6.prototype={ +O(a,b){if(b==null)return!1 +return b instanceof A.ek&&this.a.O(0,b.a)&&A.pl(this)===A.pl(b)}, +gB(a){return A.ev(this.a,A.pl(this),B.f,B.f)}, +j(a){var s=B.c.aq([A.bQ(this.$ti.c)],", ") +return this.a.j(0)+" with "+("<"+s+">")}} +A.ek.prototype={ +$2(a,b){return this.a.$1$2(a,b,this.$ti.y[0])}, +$4(a,b,c,d){return this.a.$1$4(a,b,c,d,this.$ti.y[0])}, +$S(){return A.xg(A.o3(this.a),this.$ti)}} +A.lf.prototype={ +ar(a){var s,r,q=this,p=new RegExp(q.a).exec(a) +if(p==null)return null +s=Object.create(null) +r=q.b +if(r!==-1)s.arguments=p[r+1] +r=q.c +if(r!==-1)s.argumentsExpr=p[r+1] +r=q.d +if(r!==-1)s.expr=p[r+1] +r=q.e +if(r!==-1)s.method=p[r+1] +r=q.f +if(r!==-1)s.receiver=p[r+1] +return s}} +A.eu.prototype={ +j(a){return"Null check operator used on a null value"}} +A.hd.prototype={ +j(a){var s,r=this,q="NoSuchMethodError: method not found: '",p=r.b +if(p==null)return"NoSuchMethodError: "+r.a +s=r.c +if(s==null)return q+p+"' ("+r.a+")" +return q+p+"' on '"+s+"' ("+r.a+")"}} +A.hK.prototype={ +j(a){var s=this.a +return s.length===0?"Error":"Error: "+s}} +A.hr.prototype={ +j(a){return"Throw of null ('"+(this.a===null?"null":"undefined")+"' from JavaScript)"}, +$ia5:1} +A.ee.prototype={} +A.fd.prototype={ +j(a){var s,r=this.b +if(r!=null)return r +r=this.a +s=r!==null&&typeof r==="object"?r.stack:null +return this.b=s==null?"":s}, +$ia1:1} +A.cn.prototype={ +j(a){var s=this.constructor,r=s==null?null:s.name +return"Closure '"+A.rS(r==null?"unknown":r)+"'"}, +gkJ(){return this}, +$C:"$1", +$R:1, +$D:null} +A.jc.prototype={$C:"$0",$R:0} +A.jd.prototype={$C:"$2",$R:2} +A.l5.prototype={} +A.kW.prototype={ +j(a){var s=this.$static_name +if(s==null)return"Closure of unknown static method" +return"Closure '"+A.rS(s)+"'"}} +A.e4.prototype={ +O(a,b){if(b==null)return!1 +if(this===b)return!0 +if(!(b instanceof A.e4))return!1 +return this.$_target===b.$_target&&this.a===b.a}, +gB(a){return(A.pp(this.a)^A.ey(this.$_target))>>>0}, +j(a){return"Closure '"+this.$_name+"' of "+("Instance of '"+A.ks(this.a)+"'")}} +A.ia.prototype={ +j(a){return"Reading static variable '"+this.a+"' during its initialization"}} +A.hx.prototype={ +j(a){return"RuntimeError: "+this.a}} +A.bu.prototype={ +gl(a){return this.a}, +gF(a){return this.a===0}, +ga_(){return new A.b9(this,A.t(this).h("b9<1>"))}, +gaO(){var s=A.t(this) +return A.eq(new A.b9(this,s.h("b9<1>")),new A.ke(this),s.c,s.y[1])}, +a4(a){var s,r +if(typeof a=="string"){s=this.b +if(s==null)return!1 +return s[a]!=null}else if(typeof a=="number"&&(a&0x3fffffff)===a){r=this.c +if(r==null)return!1 +return r[a]!=null}else return this.k9(a)}, +k9(a){var s=this.d +if(s==null)return!1 +return this.d_(s[this.cZ(a)],a)>=0}, +aI(a,b){b.aa(0,new A.kd(this))}, +i(a,b){var s,r,q,p,o=null +if(typeof b=="string"){s=this.b +if(s==null)return o +r=s[b] +q=r==null?o:r.b +return q}else if(typeof b=="number"&&(b&0x3fffffff)===b){p=this.c +if(p==null)return o +r=p[b] +q=r==null?o:r.b +return q}else return this.ka(b)}, +ka(a){var s,r,q=this.d +if(q==null)return null +s=q[this.cZ(a)] +r=this.d_(s,a) +if(r<0)return null +return s[r].b}, +q(a,b,c){var s,r,q=this +if(typeof b=="string"){s=q.b +q.eY(s==null?q.b=q.dW():s,b,c)}else if(typeof b=="number"&&(b&0x3fffffff)===b){r=q.c +q.eY(r==null?q.c=q.dW():r,b,c)}else q.kc(b,c)}, +kc(a,b){var s,r,q,p=this,o=p.d +if(o==null)o=p.d=p.dW() +s=p.cZ(a) +r=o[s] +if(r==null)o[s]=[p.dq(a,b)] +else{q=p.d_(r,a) +if(q>=0)r[q].b=b +else r.push(p.dq(a,b))}}, +hg(a,b){var s,r,q=this +if(q.a4(a)){s=q.i(0,a) +return s==null?A.t(q).y[1].a(s):s}r=b.$0() +q.q(0,a,r) +return r}, +A(a,b){var s=this +if(typeof b=="string")return s.eZ(s.b,b) +else if(typeof b=="number"&&(b&0x3fffffff)===b)return s.eZ(s.c,b) +else return s.kb(b)}, +kb(a){var s,r,q,p,o=this,n=o.d +if(n==null)return null +s=o.cZ(a) +r=n[s] +q=o.d_(r,a) +if(q<0)return null +p=r.splice(q,1)[0] +o.f_(p) +if(r.length===0)delete n[s] +return p.b}, +c1(a){var s=this +if(s.a>0){s.b=s.c=s.d=s.e=s.f=null +s.a=0 +s.dn()}}, +aa(a,b){var s=this,r=s.e,q=s.r +for(;r!=null;){b.$2(r.a,r.b) +if(q!==s.r)throw A.a(A.ax(s)) +r=r.c}}, +eY(a,b,c){var s=a[b] +if(s==null)a[b]=this.dq(b,c) +else s.b=c}, +eZ(a,b){var s +if(a==null)return null +s=a[b] +if(s==null)return null +this.f_(s) +delete a[b] +return s.b}, +dn(){this.r=this.r+1&1073741823}, +dq(a,b){var s,r=this,q=new A.kh(a,b) +if(r.e==null)r.e=r.f=q +else{s=r.f +s.toString +q.d=s +r.f=s.c=q}++r.a +r.dn() +return q}, +f_(a){var s=this,r=a.d,q=a.c +if(r==null)s.e=q +else r.c=q +if(q==null)s.f=r +else q.d=r;--s.a +s.dn()}, +cZ(a){return J.aw(a)&1073741823}, +d_(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"]=s +delete s[""] +return s}} +A.ke.prototype={ +$1(a){var s=this.a,r=s.i(0,a) +return r==null?A.t(s).y[1].a(r):r}, +$S(){return A.t(this.a).h("2(1)")}} +A.kd.prototype={ +$2(a,b){this.a.q(0,a,b)}, +$S(){return A.t(this.a).h("~(1,2)")}} +A.kh.prototype={} +A.b9.prototype={ +gl(a){return this.a.a}, +gF(a){return this.a.a===0}, +gt(a){var s=this.a,r=new A.hg(s,s.r) +r.c=s.e +return r}} +A.hg.prototype={ +gm(){return this.d}, +k(){var s,r=this,q=r.a +if(r.b!==q.r)throw A.a(A.ax(q)) +s=r.c +if(s==null){r.d=null +return!1}else{r.d=s.a +r.c=s.c +return!0}}} +A.o9.prototype={ +$1(a){return this.a(a)}, +$S:44} +A.oa.prototype={ +$2(a,b){return this.a(a,b)}, +$S:62} +A.ob.prototype={ +$1(a){return this.a(a)}, +$S:109} +A.f9.prototype={ +j(a){return this.fP(!1)}, +fP(a){var s,r,q,p,o,n=this.ii(),m=this.fi(),l=(a?""+"Record ":"")+"(" +for(s=n.length,r="",q=0;q0;){--q;--s +j[q]=r[s]}}return A.aG(j,k)}} +A.iv.prototype={ +fi(){return[this.a,this.b]}, +O(a,b){if(b==null)return!1 +return b instanceof A.iv&&this.$s===b.$s&&J.X(this.a,b.a)&&J.X(this.b,b.b)}, +gB(a){return A.ev(this.$s,this.a,this.b,B.f)}} +A.cu.prototype={ +j(a){return"RegExp/"+this.a+"/"+this.b.flags}, +gfq(){var s=this,r=s.c +if(r!=null)return r +r=s.b +return s.c=A.oC(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, +gfp(){var s=this,r=s.d +if(r!=null)return r +r=s.b +return s.d=A.oC(s.a+"|()",r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, +a9(a){var s=this.b.exec(a) +if(s==null)return null +return new A.dB(s)}, +cM(a,b,c){var s=b.length +if(c>s)throw A.a(A.Y(c,0,s,null,null)) +return new A.i0(this,b,c)}, +ed(a,b){return this.cM(0,b,0)}, +fe(a,b){var s,r=this.gfq() +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +return new A.dB(s)}, +ih(a,b){var s,r=this.gfp() +r.lastIndex=b +s=r.exec(a) +if(s==null)return null +if(s.pop()!=null)return null +return new A.dB(s)}, +ha(a,b,c){if(c<0||c>b.length)throw A.a(A.Y(c,0,b.length,null,null)) +return this.ih(b,c)}} +A.dB.prototype={ +gcq(){return this.b.index}, +gbz(){var s=this.b +return s.index+s[0].length}, +i(a,b){return this.b[b]}, +aM(a){var s,r=this.b.groups +if(r!=null){s=r[a] +if(s!=null||a in r)return s}throw A.a(A.ag(a,"name","Not a capture group name"))}, +$ier:1, +$ihu:1} +A.i0.prototype={ +gt(a){return new A.lR(this.a,this.b,this.c)}} +A.lR.prototype={ +gm(){var s=this.d +return s==null?t.cz.a(s):s}, +k(){var s,r,q,p,o,n,m=this,l=m.b +if(l==null)return!1 +s=m.c +r=l.length +if(s<=r){q=m.a +p=q.fe(l,s) +if(p!=null){m.d=p +o=p.gbz() +if(p.b.index===o){s=!1 +if(q.b.unicode){q=m.c +n=q+1 +if(n=55296&&r<=56319){s=l.charCodeAt(n) +s=s>=56320&&s<=57343}}}o=(s?o+1:o)+1}m.c=o +return!0}}m.b=m.d=null +return!1}} +A.di.prototype={ +gbz(){return this.a+this.c.length}, +i(a,b){if(b!==0)A.y(A.kw(b,null)) +return this.c}, +$ier:1, +gcq(){return this.a}} +A.iD.prototype={ +gt(a){return new A.nv(this.a,this.b,this.c)}, +gG(a){var s=this.b,r=this.a.indexOf(s,this.c) +if(r>=0)return new A.di(r,s) +throw A.a(A.ak())}} +A.nv.prototype={ +k(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length +if(p+n>l){q.d=null +return!1}s=m.indexOf(o,p) +if(s<0){q.c=l+1 +q.d=null +return!1}r=s+n +q.d=new A.di(s,o) +q.c=r===q.c?r+1:r +return!0}, +gm(){var s=this.d +s.toString +return s}} +A.m6.prototype={ +ag(){var s=this.b +if(s===this)throw A.a(A.uk(this.a)) +return s}} +A.d1.prototype={ +gW(a){return B.b7}, +$iL:1, +$id1:1, +$ios:1} +A.es.prototype={ +iv(a,b,c,d){var s=A.Y(b,0,c,d,null) +throw A.a(s)}, +f7(a,b,c,d){if(b>>>0!==b||b>c)this.iv(a,b,c,d)}} +A.d2.prototype={ +gW(a){return B.b8}, +$iL:1, +$id2:1, +$iot:1} +A.d4.prototype={ +gl(a){return a.length}, +fI(a,b,c,d,e){var s,r,q=a.length +this.f7(a,b,q,"start") +this.f7(a,c,q,"end") +if(b>c)throw A.a(A.Y(b,0,c,null,null)) +s=c-b +if(e<0)throw A.a(A.K(e,null)) +r=d.length +if(r-e0){s=Date.now()-r.c +if(s>(p+1)*o)p=B.b.eX(s,o)}q.c=p +r.d.$1(q)}, +$S:9} +A.i1.prototype={ +L(a){var s,r=this +if(a==null)a=r.$ti.c.a(a) +if(!r.b)r.a.b1(a) +else{s=r.a +if(r.$ti.h("C<1>").b(a))s.f6(a) +else s.br(a)}}, +by(a,b){var s=this.a +if(this.b)s.X(a,b) +else s.aD(a,b)}} +A.nL.prototype={ +$1(a){return this.a.$2(0,a)}, +$S:16} +A.nM.prototype={ +$2(a,b){this.a.$2(1,new A.ee(a,b))}, +$S:45} +A.o1.prototype={ +$2(a,b){this.a(a,b)}, +$S:54} +A.iE.prototype={ +gm(){return this.b}, +iZ(a,b){var s,r,q +a=a +b=b +s=this.a +for(;!0;)try{r=s(this,a,b) +return r}catch(q){b=q +a=1}}, +k(){var s,r,q,p,o=this,n=null,m=0 +for(;!0;){s=o.d +if(s!=null)try{if(s.k()){o.b=s.gm() +return!0}else o.d=null}catch(r){n=r +m=1 +o.d=null}q=o.iZ(m,n) +if(1===q)return!0 +if(0===q){o.b=null +p=o.e +if(p==null||p.length===0){o.a=A.qS +return!1}o.a=p.pop() +m=0 +n=null +continue}if(2===q){m=0 +n=null +continue}if(3===q){n=o.c +o.c=null +p=o.e +if(p==null||p.length===0){o.b=null +o.a=A.qS +throw n +return!1}o.a=p.pop() +m=1 +continue}throw A.a(A.B("sync*"))}return!1}, +kK(a){var s,r,q=this +if(a instanceof A.dL){s=a.a() +r=q.e +if(r==null)r=q.e=[] +r.push(q.a) +q.a=s +return 2}else{q.d=J.M(a) +return 2}}} +A.dL.prototype={ +gt(a){return new A.iE(this.a())}} +A.cU.prototype={ +j(a){return A.v(this.a)}, +$iO:1, +gbJ(){return this.b}} +A.eP.prototype={} +A.cD.prototype={ +al(){}, +am(){}} +A.cC.prototype={ +gbM(){return this.c<4}, +fC(a){var s=a.CW,r=a.ch +if(s==null)this.d=r +else s.ch=r +if(r==null)this.e=s +else r.CW=s +a.CW=a +a.ch=a}, +fK(a,b,c,d){var s,r,q,p,o,n,m,l,k,j=this +if((j.c&4)!==0){s=$.i +r=new A.eU(s) +A.ok(r.gfs()) +if(c!=null)r.c=s.au(c,t.H) +return r}s=A.t(j) +r=$.i +q=d?1:0 +p=b!=null?32:0 +o=A.i7(r,a,s.c) +n=A.i8(r,b) +m=c==null?A.rz():c +l=new A.cD(j,o,n,r.au(m,t.H),r,q|p,s.h("cD<1>")) +l.CW=l +l.ch=l +l.ay=j.c&1 +k=j.e +j.e=l +l.ch=null +l.CW=k +if(k==null)j.d=l +else k.ch=l +if(j.d===l)A.iP(j.a) +return l}, +fu(a){var s,r=this +A.t(r).h("cD<1>").a(a) +if(a.ch===a)return null +s=a.ay +if((s&2)!==0)a.ay=s|4 +else{r.fC(a) +if((r.c&2)===0&&r.d==null)r.du()}return null}, +fv(a){}, +fw(a){}, +bK(){if((this.c&4)!==0)return new A.b3("Cannot add new events after calling close") +return new A.b3("Cannot add new events while doing an addStream")}, +v(a,b){if(!this.gbM())throw A.a(this.bK()) +this.b3(b)}, +a3(a,b){var s +A.aD(a,"error",t.K) +if(!this.gbM())throw A.a(this.bK()) +s=$.i.aK(a,b) +if(s!=null){a=s.a +b=s.b}this.b5(a,b)}, +p(){var s,r,q=this +if((q.c&4)!==0){s=q.r +s.toString +return s}if(!q.gbM())throw A.a(q.bK()) +q.c|=4 +r=q.r +if(r==null)r=q.r=new A.k($.i,t.D) +q.b4() +return r}, +dK(a){var s,r,q,p=this,o=p.c +if((o&2)!==0)throw A.a(A.B(u.o)) +s=p.d +if(s==null)return +r=o&1 +p.c=o^3 +for(;s!=null;){o=s.ay +if((o&1)===r){s.ay=o|2 +a.$1(s) +o=s.ay^=1 +q=s.ch +if((o&4)!==0)p.fC(s) +s.ay&=4294967293 +s=q}else s=s.ch}p.c&=4294967293 +if(p.d==null)p.du()}, +du(){if((this.c&4)!==0){var s=this.r +if((s.a&30)===0)s.b1(null)}A.iP(this.b)}, +$ia9:1} +A.fg.prototype={ +gbM(){return A.cC.prototype.gbM.call(this)&&(this.c&2)===0}, +bK(){if((this.c&2)!==0)return new A.b3(u.o) +return this.hI()}, +b3(a){var s=this,r=s.d +if(r==null)return +if(r===s.e){s.c|=2 +r.bq(a) +s.c&=4294967293 +if(s.d==null)s.du() +return}s.dK(new A.nw(s,a))}, +b5(a,b){if(this.d==null)return +this.dK(new A.ny(this,a,b))}, +b4(){var s=this +if(s.d!=null)s.dK(new A.nx(s)) +else s.r.b1(null)}} +A.nw.prototype={ +$1(a){a.bq(this.b)}, +$S(){return this.a.$ti.h("~(af<1>)")}} +A.ny.prototype={ +$1(a){a.bo(this.b,this.c)}, +$S(){return this.a.$ti.h("~(af<1>)")}} +A.nx.prototype={ +$1(a){a.cv()}, +$S(){return this.a.$ti.h("~(af<1>)")}} +A.k_.prototype={ +$0(){var s,r,q,p=null +try{p=this.a.$0()}catch(q){s=A.E(q) +r=A.R(q) +A.p9(this.b,s,r) +return}this.b.b2(p)}, +$S:0} +A.jY.prototype={ +$0(){this.c.a(null) +this.b.b2(null)}, +$S:0} +A.k1.prototype={ +$2(a,b){var s=this,r=s.a,q=--r.b +if(r.a!=null){r.a=null +r.d=a +r.c=b +if(q===0||s.c)s.d.X(a,b)}else if(q===0&&!s.c){q=r.d +q.toString +r=r.c +r.toString +s.d.X(q,r)}}, +$S:6} +A.k0.prototype={ +$1(a){var s,r,q,p,o,n,m=this,l=m.a,k=--l.b,j=l.a +if(j!=null){J.pA(j,m.b,a) +if(J.X(k,0)){l=m.d +s=A.d([],l.h("w<0>")) +for(q=j,p=q.length,o=0;o")) +r=b==null?1:3 +this.ct(new A.ce(s,r,a,b,this.$ti.h("@<1>").H(c).h("ce<1,2>"))) +return s}, +bG(a,b){return this.bH(a,null,b)}, +fN(a,b,c){var s=new A.k($.i,c.h("k<0>")) +this.ct(new A.ce(s,19,a,b,this.$ti.h("@<1>").H(c).h("ce<1,2>"))) +return s}, +aj(a){var s=this.$ti,r=$.i,q=new A.k(r,s) +if(r!==B.d)a=r.au(a,t.z) +this.ct(new A.ce(q,8,a,null,s.h("ce<1,1>"))) +return q}, +j9(a){this.a=this.a&1|16 +this.c=a}, +cu(a){this.a=a.a&30|this.a&1 +this.c=a.c}, +ct(a){var s=this,r=s.a +if(r<=3){a.a=s.c +s.c=a}else{if((r&4)!==0){r=s.c +if((r.a&24)===0){r.ct(a) +return}s.cu(r)}s.b.aZ(new A.mm(s,a))}}, +dY(a){var s,r,q,p,o,n=this,m={} +m.a=a +if(a==null)return +s=n.a +if(s<=3){r=n.c +n.c=a +if(r!=null){q=a.a +for(p=a;q!=null;p=q,q=o)o=q.a +p.a=r}}else{if((s&4)!==0){s=n.c +if((s.a&24)===0){s.dY(a) +return}n.cu(s)}m.a=n.cF(a) +n.b.aZ(new A.mt(m,n))}}, +cE(){var s=this.c +this.c=null +return this.cF(s)}, +cF(a){var s,r,q +for(s=a,r=null;s!=null;r=s,s=q){q=s.a +s.a=r}return r}, +f5(a){var s,r,q,p=this +p.a^=2 +try{a.bH(new A.mq(p),new A.mr(p),t.P)}catch(q){s=A.E(q) +r=A.R(q) +A.ok(new A.ms(p,s,r))}}, +b2(a){var s,r=this,q=r.$ti +if(q.h("C<1>").b(a))if(q.b(a))A.oY(a,r) +else r.f5(a) +else{s=r.cE() +r.a=8 +r.c=a +A.dw(r,s)}}, +br(a){var s=this,r=s.cE() +s.a=8 +s.c=a +A.dw(s,r)}, +X(a,b){var s=this.cE() +this.j9(A.iY(a,b)) +A.dw(this,s)}, +b1(a){if(this.$ti.h("C<1>").b(a)){this.f6(a) +return}this.f4(a)}, +f4(a){this.a^=2 +this.b.aZ(new A.mo(this,a))}, +f6(a){if(this.$ti.b(a)){A.v6(a,this) +return}this.f5(a)}, +aD(a,b){this.a^=2 +this.b.aZ(new A.mn(this,a,b))}, +$iC:1} +A.mm.prototype={ +$0(){A.dw(this.a,this.b)}, +$S:0} +A.mt.prototype={ +$0(){A.dw(this.b,this.a.a)}, +$S:0} +A.mq.prototype={ +$1(a){var s,r,q,p=this.a +p.a^=2 +try{p.br(p.$ti.c.a(a))}catch(q){s=A.E(q) +r=A.R(q) +p.X(s,r)}}, +$S:25} +A.mr.prototype={ +$2(a,b){this.a.X(a,b)}, +$S:80} +A.ms.prototype={ +$0(){this.a.X(this.b,this.c)}, +$S:0} +A.mp.prototype={ +$0(){A.oY(this.a.a,this.b)}, +$S:0} +A.mo.prototype={ +$0(){this.a.br(this.b)}, +$S:0} +A.mn.prototype={ +$0(){this.a.X(this.b,this.c)}, +$S:0} +A.mw.prototype={ +$0(){var s,r,q,p,o,n,m=this,l=null +try{q=m.a.a +l=q.b.b.bg(q.d,t.z)}catch(p){s=A.E(p) +r=A.R(p) +q=m.c&&m.b.a.c.a===s +o=m.a +if(q)o.c=m.b.a.c +else o.c=A.iY(s,r) +o.b=!0 +return}if(l instanceof A.k&&(l.a&24)!==0){if((l.a&16)!==0){q=m.a +q.c=l.c +q.b=!0}return}if(l instanceof A.k){n=m.b.a +q=m.a +q.c=l.bG(new A.mx(n),t.z) +q.b=!1}}, +$S:0} +A.mx.prototype={ +$1(a){return this.a}, +$S:82} +A.mv.prototype={ +$0(){var s,r,q,p,o,n +try{q=this.a +p=q.a +o=p.$ti +q.c=p.b.b.bh(p.d,this.b,o.h("2/"),o.c)}catch(n){s=A.E(n) +r=A.R(n) +q=this.a +q.c=A.iY(s,r) +q.b=!0}}, +$S:0} +A.mu.prototype={ +$0(){var s,r,q,p,o,n,m=this +try{s=m.a.a.c +p=m.b +if(p.a.kh(s)&&p.a.e!=null){p.c=p.a.k7(s) +p.b=!1}}catch(o){r=A.E(o) +q=A.R(o) +p=m.a.a.c +n=m.b +if(p.a===r)n.c=p +else n.c=A.iY(r,q) +n.b=!0}}, +$S:0} +A.i2.prototype={} +A.Z.prototype={ +gl(a){var s={},r=new A.k($.i,t.gR) +s.a=0 +this.S(new A.l2(s,this),!0,new A.l3(s,r),r.gdB()) +return r}, +gG(a){var s=new A.k($.i,A.t(this).h("k")),r=this.S(null,!0,new A.l0(s),s.gdB()) +r.c9(new A.l1(this,r,s)) +return s}, +k5(a,b){var s=new A.k($.i,A.t(this).h("k")),r=this.S(null,!0,new A.kZ(null,s),s.gdB()) +r.c9(new A.l_(this,b,r,s)) +return s}} +A.l2.prototype={ +$1(a){++this.a.a}, +$S(){return A.t(this.b).h("~(Z.T)")}} +A.l3.prototype={ +$0(){this.b.b2(this.a.a)}, +$S:0} +A.l0.prototype={ +$0(){var s,r,q,p +try{q=A.ak() +throw A.a(q)}catch(p){s=A.E(p) +r=A.R(p) +A.p9(this.a,s,r)}}, +$S:0} +A.l1.prototype={ +$1(a){A.rc(this.b,this.c,a)}, +$S(){return A.t(this.a).h("~(Z.T)")}} +A.kZ.prototype={ +$0(){var s,r,q,p +try{q=A.ak() +throw A.a(q)}catch(p){s=A.E(p) +r=A.R(p) +A.p9(this.b,s,r)}}, +$S:0} +A.l_.prototype={ +$1(a){var s=this.c,r=this.d +A.wt(new A.kX(this.b,a),new A.kY(s,r,a),A.vQ(s,r))}, +$S(){return A.t(this.a).h("~(Z.T)")}} +A.kX.prototype={ +$0(){return this.a.$1(this.b)}, +$S:22} +A.kY.prototype={ +$1(a){if(a)A.rc(this.a,this.b,this.c)}, +$S:39} +A.hF.prototype={} +A.cK.prototype={ +giN(){if((this.b&8)===0)return this.a +return this.a.ge6()}, +dH(){var s,r=this +if((r.b&8)===0){s=r.a +return s==null?r.a=new A.f8():s}s=r.a.ge6() +return s}, +gaS(){var s=this.a +return(this.b&8)!==0?s.ge6():s}, +ds(){if((this.b&4)!==0)return new A.b3("Cannot add event after closing") +return new A.b3("Cannot add event while adding a stream")}, +fc(){var s=this.c +if(s==null)s=this.c=(this.b&2)!==0?$.ck():new A.k($.i,t.D) +return s}, +v(a,b){var s=this,r=s.b +if(r>=4)throw A.a(s.ds()) +if((r&1)!==0)s.b3(b) +else if((r&3)===0)s.dH().v(0,new A.ds(b))}, +a3(a,b){var s,r,q=this +A.aD(a,"error",t.K) +if(q.b>=4)throw A.a(q.ds()) +s=$.i.aK(a,b) +if(s!=null){a=s.a +b=s.b}else if(b==null)b=A.fG(a) +r=q.b +if((r&1)!==0)q.b5(a,b) +else if((r&3)===0)q.dH().v(0,new A.eT(a,b))}, +jA(a){return this.a3(a,null)}, +p(){var s=this,r=s.b +if((r&4)!==0)return s.fc() +if(r>=4)throw A.a(s.ds()) +r=s.b=r|4 +if((r&1)!==0)s.b4() +else if((r&3)===0)s.dH().v(0,B.y) +return s.fc()}, +fK(a,b,c,d){var s,r,q,p,o=this +if((o.b&3)!==0)throw A.a(A.B("Stream has already been listened to.")) +s=A.v4(o,a,b,c,d,A.t(o).c) +r=o.giN() +q=o.b|=1 +if((q&8)!==0){p=o.a +p.se6(s) +p.bf()}else o.a=s +s.ja(r) +s.dL(new A.nt(o)) +return s}, +fu(a){var s,r,q,p,o,n,m,l=this,k=null +if((l.b&8)!==0)k=l.a.J() +l.a=null +l.b=l.b&4294967286|2 +s=l.r +if(s!=null)if(k==null)try{r=s.$0() +if(r instanceof A.k)k=r}catch(o){q=A.E(o) +p=A.R(o) +n=new A.k($.i,t.D) +n.aD(q,p) +k=n}else k=k.aj(s) +m=new A.ns(l) +if(k!=null)k=k.aj(m) +else m.$0() +return k}, +fv(a){if((this.b&8)!==0)this.a.bC() +A.iP(this.e)}, +fw(a){if((this.b&8)!==0)this.a.bf() +A.iP(this.f)}, +$ia9:1} +A.nt.prototype={ +$0(){A.iP(this.a.d)}, +$S:0} +A.ns.prototype={ +$0(){var s=this.a.c +if(s!=null&&(s.a&30)===0)s.b1(null)}, +$S:0} +A.iF.prototype={ +b3(a){this.gaS().bq(a)}, +b5(a,b){this.gaS().bo(a,b)}, +b4(){this.gaS().cv()}} +A.i3.prototype={ +b3(a){this.gaS().bp(new A.ds(a))}, +b5(a,b){this.gaS().bp(new A.eT(a,b))}, +b4(){this.gaS().bp(B.y)}} +A.dq.prototype={} +A.dM.prototype={} +A.an.prototype={ +gB(a){return(A.ey(this.a)^892482866)>>>0}, +O(a,b){if(b==null)return!1 +if(this===b)return!0 +return b instanceof A.an&&b.a===this.a}} +A.cd.prototype={ +cB(){return this.w.fu(this)}, +al(){this.w.fv(this)}, +am(){this.w.fw(this)}} +A.dJ.prototype={ +v(a,b){this.a.v(0,b)}, +a3(a,b){this.a.a3(a,b)}, +p(){return this.a.p()}, +$ia9:1} +A.af.prototype={ +ja(a){var s=this +if(a==null)return +s.r=a +if(a.c!=null){s.e=(s.e|128)>>>0 +a.cp(s)}}, +c9(a){this.a=A.i7(this.d,a,A.t(this).h("af.T"))}, +eF(a){var s=this +s.e=(s.e&4294967263)>>>0 +s.b=A.i8(s.d,a)}, +bC(){var s,r,q=this,p=q.e +if((p&8)!==0)return +s=(p+256|4)>>>0 +q.e=s +if(p<256){r=q.r +if(r!=null)if(r.a===1)r.a=3}if((p&4)===0&&(s&64)===0)q.dL(q.gbN())}, +bf(){var s=this,r=s.e +if((r&8)!==0)return +if(r>=256){r=s.e=r-256 +if(r<256)if((r&128)!==0&&s.r.c!=null)s.r.cp(s) +else{r=(r&4294967291)>>>0 +s.e=r +if((r&64)===0)s.dL(s.gbO())}}}, +J(){var s=this,r=(s.e&4294967279)>>>0 +s.e=r +if((r&8)===0)s.dv() +r=s.f +return r==null?$.ck():r}, +dv(){var s,r=this,q=r.e=(r.e|8)>>>0 +if((q&128)!==0){s=r.r +if(s.a===1)s.a=3}if((q&64)===0)r.r=null +r.f=r.cB()}, +bq(a){var s=this.e +if((s&8)!==0)return +if(s<64)this.b3(a) +else this.bp(new A.ds(a))}, +bo(a,b){var s=this.e +if((s&8)!==0)return +if(s<64)this.b5(a,b) +else this.bp(new A.eT(a,b))}, +cv(){var s=this,r=s.e +if((r&8)!==0)return +r=(r|2)>>>0 +s.e=r +if(r<64)s.b4() +else s.bp(B.y)}, +al(){}, +am(){}, +cB(){return null}, +bp(a){var s,r=this,q=r.r +if(q==null)q=r.r=new A.f8() +q.v(0,a) +s=r.e +if((s&128)===0){s=(s|128)>>>0 +r.e=s +if(s<256)q.cp(r)}}, +b3(a){var s=this,r=s.e +s.e=(r|64)>>>0 +s.d.ci(s.a,a,A.t(s).h("af.T")) +s.e=(s.e&4294967231)>>>0 +s.dw((r&4)!==0)}, +b5(a,b){var s,r=this,q=r.e,p=new A.m5(r,a,b) +if((q&1)!==0){r.e=(q|16)>>>0 +r.dv() +s=r.f +if(s!=null&&s!==$.ck())s.aj(p) +else p.$0()}else{p.$0() +r.dw((q&4)!==0)}}, +b4(){var s,r=this,q=new A.m4(r) +r.dv() +r.e=(r.e|16)>>>0 +s=r.f +if(s!=null&&s!==$.ck())s.aj(q) +else q.$0()}, +dL(a){var s=this,r=s.e +s.e=(r|64)>>>0 +a.$0() +s.e=(s.e&4294967231)>>>0 +s.dw((r&4)!==0)}, +dw(a){var s,r,q=this,p=q.e +if((p&128)!==0&&q.r.c==null){p=q.e=(p&4294967167)>>>0 +s=!1 +if((p&4)!==0)if(p<256){s=q.r +s=s==null?null:s.c==null +s=s!==!1}if(s){p=(p&4294967291)>>>0 +q.e=p}}for(;!0;a=r){if((p&8)!==0){q.r=null +return}r=(p&4)!==0 +if(a===r)break +q.e=(p^64)>>>0 +if(r)q.al() +else q.am() +p=(q.e&4294967231)>>>0 +q.e=p}if((p&128)!==0&&p<256)q.r.cp(q)}} +A.m5.prototype={ +$0(){var s,r,q,p=this.a,o=p.e +if((o&8)!==0&&(o&16)===0)return +p.e=(o|64)>>>0 +s=p.b +o=this.b +r=t.K +q=p.d +if(t.da.b(s))q.hn(s,o,this.c,r,t.l) +else q.ci(s,o,r) +p.e=(p.e&4294967231)>>>0}, +$S:0} +A.m4.prototype={ +$0(){var s=this.a,r=s.e +if((r&16)===0)return +s.e=(r|74)>>>0 +s.d.cg(s.c) +s.e=(s.e&4294967231)>>>0}, +$S:0} +A.dH.prototype={ +S(a,b,c,d){return this.a.fK(a,d,c,b===!0)}, +aW(a,b,c){return this.S(a,null,b,c)}, +kg(a){return this.S(a,null,null,null)}, +eB(a,b){return this.S(a,null,b,null)}} +A.ic.prototype={ +gc8(){return this.a}, +sc8(a){return this.a=a}} +A.ds.prototype={ +eH(a){a.b3(this.b)}} +A.eT.prototype={ +eH(a){a.b5(this.b,this.c)}} +A.mf.prototype={ +eH(a){a.b4()}, +gc8(){return null}, +sc8(a){throw A.a(A.B("No events after a done."))}} +A.f8.prototype={ +cp(a){var s=this,r=s.a +if(r===1)return +if(r>=1){s.a=1 +return}A.ok(new A.ni(s,a)) +s.a=1}, +v(a,b){var s=this,r=s.c +if(r==null)s.b=s.c=b +else{r.sc8(b) +s.c=b}}} +A.ni.prototype={ +$0(){var s,r,q=this.a,p=q.a +q.a=0 +if(p===3)return +s=q.b +r=s.gc8() +q.b=r +if(r==null)q.c=null +s.eH(this.b)}, +$S:0} +A.eU.prototype={ +c9(a){}, +eF(a){}, +bC(){var s=this.a +if(s>=0)this.a=s+2}, +bf(){var s=this,r=s.a-2 +if(r<0)return +if(r===0){s.a=1 +A.ok(s.gfs())}else s.a=r}, +J(){this.a=-1 +this.c=null +return $.ck()}, +iJ(){var s,r=this,q=r.a-1 +if(q===0){r.a=-1 +s=r.c +if(s!=null){r.c=null +r.b.cg(s)}}else r.a=q}} +A.dI.prototype={ +gm(){if(this.c)return this.b +return null}, +k(){var s,r=this,q=r.a +if(q!=null){if(r.c){s=new A.k($.i,t.k) +r.b=s +r.c=!1 +q.bf() +return s}throw A.a(A.B("Already waiting for next."))}return r.iu()}, +iu(){var s,r,q=this,p=q.b +if(p!=null){s=new A.k($.i,t.k) +q.b=s +r=p.S(q.giD(),!0,q.giF(),q.giH()) +if(q.b!=null)q.a=r +return s}return $.rW()}, +J(){var s=this,r=s.a,q=s.b +s.b=null +if(r!=null){s.a=null +if(!s.c)q.b1(!1) +else s.c=!1 +return r.J()}return $.ck()}, +iE(a){var s,r,q=this +if(q.a==null)return +s=q.b +q.b=a +q.c=!0 +s.b2(!0) +if(q.c){r=q.a +if(r!=null)r.bC()}}, +iI(a,b){var s=this,r=s.a,q=s.b +s.b=s.a=null +if(r!=null)q.X(a,b) +else q.aD(a,b)}, +iG(){var s=this,r=s.a,q=s.b +s.b=s.a=null +if(r!=null)q.br(!1) +else q.f4(!1)}} +A.nO.prototype={ +$0(){return this.a.X(this.b,this.c)}, +$S:0} +A.nN.prototype={ +$2(a,b){A.vP(this.a,this.b,a,b)}, +$S:6} +A.nP.prototype={ +$0(){return this.a.b2(this.b)}, +$S:0} +A.eZ.prototype={ +S(a,b,c,d){var s=this.$ti,r=$.i,q=b===!0?1:0,p=d!=null?32:0,o=A.i7(r,a,s.y[1]),n=A.i8(r,d) +s=new A.du(this,o,n,r.au(c,t.H),r,q|p,s.h("du<1,2>")) +s.x=this.a.aW(s.gdM(),s.gdO(),s.gdQ()) +return s}, +aW(a,b,c){return this.S(a,null,b,c)}} +A.du.prototype={ +bq(a){if((this.e&2)!==0)return +this.dm(a)}, +bo(a,b){if((this.e&2)!==0)return +this.bn(a,b)}, +al(){var s=this.x +if(s!=null)s.bC()}, +am(){var s=this.x +if(s!=null)s.bf()}, +cB(){var s=this.x +if(s!=null){this.x=null +return s.J()}return null}, +dN(a){this.w.io(a,this)}, +dR(a,b){this.bo(a,b)}, +dP(){this.cv()}} +A.f3.prototype={ +io(a,b){var s,r,q,p,o,n,m=null +try{m=this.b.$1(a)}catch(q){s=A.E(q) +r=A.R(q) +p=s +o=r +n=$.i.aK(p,o) +if(n!=null){p=n.a +o=n.b}b.bo(p,o) +return}b.bq(m)}} +A.eW.prototype={ +v(a,b){var s=this.a +if((s.e&2)!==0)A.y(A.B("Stream is already closed")) +s.dm(b)}, +a3(a,b){var s=this.a +if((s.e&2)!==0)A.y(A.B("Stream is already closed")) +s.bn(a,b)}, +p(){var s=this.a +if((s.e&2)!==0)A.y(A.B("Stream is already closed")) +s.eW()}, +$ia9:1} +A.dF.prototype={ +al(){var s=this.x +if(s!=null)s.bC()}, +am(){var s=this.x +if(s!=null)s.bf()}, +cB(){var s=this.x +if(s!=null){this.x=null +return s.J()}return null}, +dN(a){var s,r,q,p +try{q=this.w +q===$&&A.G() +q.v(0,a)}catch(p){s=A.E(p) +r=A.R(p) +if((this.e&2)!==0)A.y(A.B("Stream is already closed")) +this.bn(s,r)}}, +dR(a,b){var s,r,q,p,o=this,n="Stream is already closed" +try{q=o.w +q===$&&A.G() +q.a3(a,b)}catch(p){s=A.E(p) +r=A.R(p) +if(s===a){if((o.e&2)!==0)A.y(A.B(n)) +o.bn(a,b)}else{if((o.e&2)!==0)A.y(A.B(n)) +o.bn(s,r)}}}, +dP(){var s,r,q,p,o=this +try{o.x=null +q=o.w +q===$&&A.G() +q.p()}catch(p){s=A.E(p) +r=A.R(p) +if((o.e&2)!==0)A.y(A.B("Stream is already closed")) +o.bn(s,r)}}} +A.ff.prototype={ +ee(a){return new A.eO(this.a,a,this.$ti.h("eO<1,2>"))}} +A.eO.prototype={ +S(a,b,c,d){var s=this.$ti,r=$.i,q=b===!0?1:0,p=d!=null?32:0,o=A.i7(r,a,s.y[1]),n=A.i8(r,d),m=new A.dF(o,n,r.au(c,t.H),r,q|p,s.h("dF<1,2>")) +m.w=this.a.$1(new A.eW(m)) +m.x=this.b.aW(m.gdM(),m.gdO(),m.gdQ()) +return m}, +aW(a,b,c){return this.S(a,null,b,c)}} +A.dx.prototype={ +v(a,b){var s,r=this.d +if(r==null)throw A.a(A.B("Sink is closed")) +this.$ti.y[1].a(b) +s=r.a +if((s.e&2)!==0)A.y(A.B("Stream is already closed")) +s.dm(b)}, +a3(a,b){var s +A.aD(a,"error",t.K) +s=this.d +if(s==null)throw A.a(A.B("Sink is closed")) +s.a3(a,b)}, +p(){var s=this.d +if(s==null)return +this.d=null +this.c.$1(s)}, +$ia9:1} +A.dG.prototype={ +ee(a){return this.hJ(a)}} +A.nu.prototype={ +$1(a){var s=this +return new A.dx(s.a,s.b,s.c,a,s.e.h("@<0>").H(s.d).h("dx<1,2>"))}, +$S(){return this.e.h("@<0>").H(this.d).h("dx<1,2>(a9<2>)")}} +A.au.prototype={} +A.iL.prototype={$ioR:1} +A.dO.prototype={$ia_:1} +A.iK.prototype={ +bP(a,b,c){var s,r,q,p,o,n,m,l,k=this.gdS(),j=k.a +if(j===B.d){A.ft(b,c) +return}s=k.b +r=j.ga1() +m=j.ghe() +m.toString +q=m +p=$.i +try{$.i=q +s.$5(j,r,a,b,c) +$.i=p}catch(l){o=A.E(l) +n=A.R(l) +$.i=p +m=b===o?c:n +q.bP(j,o,m)}}, +$iz:1} +A.i9.prototype={ +gf3(){var s=this.at +return s==null?this.at=new A.dO(this):s}, +ga1(){return this.ax.gf3()}, +gbb(){return this.as.a}, +cg(a){var s,r,q +try{this.bg(a,t.H)}catch(q){s=A.E(q) +r=A.R(q) +this.bP(this,s,r)}}, +ci(a,b,c){var s,r,q +try{this.bh(a,b,t.H,c)}catch(q){s=A.E(q) +r=A.R(q) +this.bP(this,s,r)}}, +hn(a,b,c,d,e){var s,r,q +try{this.eK(a,b,c,t.H,d,e)}catch(q){s=A.E(q) +r=A.R(q) +this.bP(this,s,r)}}, +ef(a,b){return new A.mc(this,this.au(a,b),b)}, +fU(a,b,c){return new A.me(this,this.be(a,b,c),c,b)}, +cQ(a){return new A.mb(this,this.au(a,t.H))}, +eg(a,b){return new A.md(this,this.be(a,t.H,b),b)}, +i(a,b){var s,r=this.ay,q=r.i(0,b) +if(q!=null||r.a4(b))return q +s=this.ax.i(0,b) +if(s!=null)r.q(0,b,s) +return s}, +c4(a,b){this.bP(this,a,b)}, +h4(a,b){var s=this.Q,r=s.a +return s.b.$5(r,r.ga1(),this,a,b)}, +bg(a){var s=this.a,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +bh(a,b){var s=this.b,r=s.a +return s.b.$5(r,r.ga1(),this,a,b)}, +eK(a,b,c){var s=this.c,r=s.a +return s.b.$6(r,r.ga1(),this,a,b,c)}, +au(a){var s=this.d,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +be(a){var s=this.e,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +d5(a){var s=this.f,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +aK(a,b){var s,r +A.aD(a,"error",t.K) +s=this.r +r=s.a +if(r===B.d)return null +return s.b.$5(r,r.ga1(),this,a,b)}, +aZ(a){var s=this.w,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +ei(a,b){var s=this.x,r=s.a +return s.b.$5(r,r.ga1(),this,a,b)}, +hf(a){var s=this.z,r=s.a +return s.b.$4(r,r.ga1(),this,a)}, +gfE(){return this.a}, +gfG(){return this.b}, +gfF(){return this.c}, +gfA(){return this.d}, +gfB(){return this.e}, +gfz(){return this.f}, +gfd(){return this.r}, +ge1(){return this.w}, +gfa(){return this.x}, +gf9(){return this.y}, +gft(){return this.z}, +gfg(){return this.Q}, +gdS(){return this.as}, +ghe(){return this.ax}, +gfm(){return this.ay}} +A.mc.prototype={ +$0(){return this.a.bg(this.b,this.c)}, +$S(){return this.c.h("0()")}} +A.me.prototype={ +$1(a){var s=this +return s.a.bh(s.b,a,s.d,s.c)}, +$S(){return this.d.h("@<0>").H(this.c).h("1(2)")}} +A.mb.prototype={ +$0(){return this.a.cg(this.b)}, +$S:0} +A.md.prototype={ +$1(a){return this.a.ci(this.b,a,this.c)}, +$S(){return this.c.h("~(0)")}} +A.nV.prototype={ +$0(){A.pP(this.a,this.b)}, +$S:0} +A.iz.prototype={ +gfE(){return B.bC}, +gfG(){return B.bE}, +gfF(){return B.bD}, +gfA(){return B.bB}, +gfB(){return B.bw}, +gfz(){return B.bH}, +gfd(){return B.by}, +ge1(){return B.bF}, +gfa(){return B.bx}, +gf9(){return B.bG}, +gft(){return B.bA}, +gfg(){return B.bz}, +gdS(){return B.bv}, +ghe(){return null}, +gfm(){return $.tc()}, +gf3(){var s=$.nl +return s==null?$.nl=new A.dO(this):s}, +ga1(){var s=$.nl +return s==null?$.nl=new A.dO(this):s}, +gbb(){return this}, +cg(a){var s,r,q +try{if(B.d===$.i){a.$0() +return}A.nW(null,null,this,a)}catch(q){s=A.E(q) +r=A.R(q) +A.ft(s,r)}}, +ci(a,b){var s,r,q +try{if(B.d===$.i){a.$1(b) +return}A.nY(null,null,this,a,b)}catch(q){s=A.E(q) +r=A.R(q) +A.ft(s,r)}}, +hn(a,b,c){var s,r,q +try{if(B.d===$.i){a.$2(b,c) +return}A.nX(null,null,this,a,b,c)}catch(q){s=A.E(q) +r=A.R(q) +A.ft(s,r)}}, +ef(a,b){return new A.nn(this,a,b)}, +fU(a,b,c){return new A.np(this,a,c,b)}, +cQ(a){return new A.nm(this,a)}, +eg(a,b){return new A.no(this,a,b)}, +i(a,b){return null}, +c4(a,b){A.ft(a,b)}, +h4(a,b){return A.ro(null,null,this,a,b)}, +bg(a){if($.i===B.d)return a.$0() +return A.nW(null,null,this,a)}, +bh(a,b){if($.i===B.d)return a.$1(b) +return A.nY(null,null,this,a,b)}, +eK(a,b,c){if($.i===B.d)return a.$2(b,c) +return A.nX(null,null,this,a,b,c)}, +au(a){return a}, +be(a){return a}, +d5(a){return a}, +aK(a,b){return null}, +aZ(a){A.nZ(null,null,this,a)}, +ei(a,b){return A.oN(a,b)}, +hf(a){A.pq(a)}} +A.nn.prototype={ +$0(){return this.a.bg(this.b,this.c)}, +$S(){return this.c.h("0()")}} +A.np.prototype={ +$1(a){var s=this +return s.a.bh(s.b,a,s.d,s.c)}, +$S(){return this.d.h("@<0>").H(this.c).h("1(2)")}} +A.nm.prototype={ +$0(){return this.a.cg(this.b)}, +$S:0} +A.no.prototype={ +$1(a){return this.a.ci(this.b,a,this.c)}, +$S(){return this.c.h("~(0)")}} +A.cG.prototype={ +gl(a){return this.a}, +gF(a){return this.a===0}, +ga_(){return new A.cH(this,A.t(this).h("cH<1>"))}, +gaO(){var s=A.t(this) +return A.eq(new A.cH(this,s.h("cH<1>")),new A.my(this),s.c,s.y[1])}, +a4(a){var s,r +if(typeof a=="string"&&a!=="__proto__"){s=this.b +return s==null?!1:s[a]!=null}else if(typeof a=="number"&&(a&1073741823)===a){r=this.c +return r==null?!1:r[a]!=null}else return this.i4(a)}, +i4(a){var s=this.d +if(s==null)return!1 +return this.aQ(this.fh(s,a),a)>=0}, +i(a,b){var s,r,q +if(typeof b=="string"&&b!=="__proto__"){s=this.b +r=s==null?null:A.qL(s,b) +return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c +r=q==null?null:A.qL(q,b) +return r}else return this.il(b)}, +il(a){var s,r,q=this.d +if(q==null)return null +s=this.fh(q,a) +r=this.aQ(s,a) +return r<0?null:s[r+1]}, +q(a,b,c){var s,r,q=this +if(typeof b=="string"&&b!=="__proto__"){s=q.b +q.f1(s==null?q.b=A.oZ():s,b,c)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c +q.f1(r==null?q.c=A.oZ():r,b,c)}else q.j8(b,c)}, +j8(a,b){var s,r,q,p=this,o=p.d +if(o==null)o=p.d=A.oZ() +s=p.dC(a) +r=o[s] +if(r==null){A.p_(o,s,[a,b]);++p.a +p.e=null}else{q=p.aQ(r,a) +if(q>=0)r[q+1]=b +else{r.push(a,b);++p.a +p.e=null}}}, +aa(a,b){var s,r,q,p,o,n=this,m=n.f8() +for(s=m.length,r=A.t(n).y[1],q=0;q"))}} +A.ij.prototype={ +gm(){var s=this.d +return s==null?this.$ti.c.a(s):s}, +k(){var s=this,r=s.b,q=s.c,p=s.a +if(r!==p.e)throw A.a(A.ax(p)) +else if(q>=r.length){s.d=null +return!1}else{s.d=r[q] +s.c=q+1 +return!0}}} +A.f1.prototype={ +gt(a){var s=this,r=new A.dA(s,s.r,s.$ti.h("dA<1>")) +r.c=s.e +return r}, +gl(a){return this.a}, +gF(a){return this.a===0}, +M(a,b){var s,r +if(b!=="__proto__"){s=this.b +if(s==null)return!1 +return s[b]!=null}else{r=this.i3(b) +return r}}, +i3(a){var s=this.d +if(s==null)return!1 +return this.aQ(s[B.a.gB(a)&1073741823],a)>=0}, +gG(a){var s=this.e +if(s==null)throw A.a(A.B("No elements")) +return s.a}, +gC(a){var s=this.f +if(s==null)throw A.a(A.B("No elements")) +return s.a}, +v(a,b){var s,r,q=this +if(typeof b=="string"&&b!=="__proto__"){s=q.b +return q.f0(s==null?q.b=A.p0():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c +return q.f0(r==null?q.c=A.p0():r,b)}else return q.hT(b)}, +hT(a){var s,r,q=this,p=q.d +if(p==null)p=q.d=A.p0() +s=J.aw(a)&1073741823 +r=p[s] +if(r==null)p[s]=[q.dX(a)] +else{if(q.aQ(r,a)>=0)return!1 +r.push(q.dX(a))}return!0}, +A(a,b){var s +if(typeof b=="string"&&b!=="__proto__")return this.iW(this.b,b) +else{s=this.iV(b) +return s}}, +iV(a){var s,r,q,p,o=this.d +if(o==null)return!1 +s=J.aw(a)&1073741823 +r=o[s] +q=this.aQ(r,a) +if(q<0)return!1 +p=r.splice(q,1)[0] +if(0===r.length)delete o[s] +this.fR(p) +return!0}, +f0(a,b){if(a[b]!=null)return!1 +a[b]=this.dX(b) +return!0}, +iW(a,b){var s +if(a==null)return!1 +s=a[b] +if(s==null)return!1 +this.fR(s) +delete a[b] +return!0}, +fo(){this.r=this.r+1&1073741823}, +dX(a){var s,r=this,q=new A.nh(a) +if(r.e==null)r.e=r.f=q +else{s=r.f +s.toString +q.c=s +r.f=s.b=q}++r.a +r.fo() +return q}, +fR(a){var s=this,r=a.c,q=a.b +if(r==null)s.e=q +else r.b=q +if(q==null)s.f=r +else q.c=r;--s.a +s.fo()}, +aQ(a,b){var s,r +if(a==null)return-1 +s=a.length +for(r=0;r"))}, +gl(a){return this.b}, +gG(a){var s +if(this.b===0)throw A.a(A.B("No such element")) +s=this.c +s.toString +return s}, +gC(a){var s +if(this.b===0)throw A.a(A.B("No such element")) +s=this.c.c +s.toString +return s}, +gF(a){return this.b===0}, +dT(a,b,c){var s,r,q=this +if(b.a!=null)throw A.a(A.B("LinkedListEntry is already in a LinkedList"));++q.a +b.a=q +s=q.b +if(s===0){b.b=b +q.c=b.c=b +q.b=s+1 +return}r=a.c +r.toString +b.c=r +b.b=a +a.c=r.b=b +q.b=s+1}, +e4(a){var s,r,q=this;++q.a +s=a.b +s.c=a.c +a.c.b=s +r=--q.b +a.a=a.b=a.c=null +if(r===0)q.c=null +else if(a===q.c)q.c=s}} +A.ir.prototype={ +gm(){var s=this.c +return s==null?this.$ti.c.a(s):s}, +k(){var s=this,r=s.a +if(s.b!==r.a)throw A.a(A.ax(s)) +if(r.b!==0)r=s.e&&s.d===r.gG(0) +else r=!0 +if(r){s.c=null +return!1}s.e=!0 +r=s.d +s.c=r +s.d=r.b +return!0}} +A.aF.prototype={ +gcc(){var s=this.a +if(s==null||this===s.gG(0))return null +return this.c}} +A.x.prototype={ +gt(a){return new A.aZ(a,this.gl(a),A.aE(a).h("aZ"))}, +N(a,b){return this.i(a,b)}, +gF(a){return this.gl(a)===0}, +gG(a){if(this.gl(a)===0)throw A.a(A.ak()) +return this.i(a,0)}, +gC(a){if(this.gl(a)===0)throw A.a(A.ak()) +return this.i(a,this.gl(a)-1)}, +bd(a,b,c){return new A.D(a,b,A.aE(a).h("@").H(c).h("D<1,2>"))}, +Y(a,b){return A.b4(a,b,null,A.aE(a).h("x.E"))}, +ai(a,b){return A.b4(a,0,A.aD(b,"count",t.S),A.aE(a).h("x.E"))}, +az(a,b){var s,r,q,p,o=this +if(o.gF(a)){s=J.q_(0,A.aE(a).h("x.E")) +return s}r=o.i(a,0) +q=A.b_(o.gl(a),r,!0,A.aE(a).h("x.E")) +for(p=1;p").H(b).h("ah<1,2>"))}, +a0(a,b,c){var s=this.gl(a) +A.ba(b,c,s) +return A.q2(this.co(a,b,c),!0,A.aE(a).h("x.E"))}, +co(a,b,c){A.ba(b,c,this.gl(a)) +return A.b4(a,b,c,A.aE(a).h("x.E"))}, +en(a,b,c,d){var s +A.ba(b,c,this.gl(a)) +for(s=b;s").b(d)){r=e +q=d}else{q=J.e0(d,e).az(0,!1) +r=0}p=J.V(q) +if(r+s>p.gl(q))throw A.a(A.pX()) +if(r=0;--o)this.q(a,b+o,p.i(q,r+o)) +else for(o=0;o"))}, +gl(a){return J.ae(this.ga_())}, +gF(a){return J.iU(this.ga_())}, +gaO(){return new A.f2(this,A.t(this).h("f2"))}, +j(a){return A.oG(this)}, +$iaa:1} +A.kl.prototype={ +$1(a){var s=this.a,r=s.i(0,a) +if(r==null)r=A.t(s).h("T.V").a(r) +return new A.bv(a,r,A.t(s).h("bv"))}, +$S(){return A.t(this.a).h("bv(T.K)")}} +A.km.prototype={ +$2(a,b){var s,r=this.a +if(!r.a)this.b.a+=", " +r.a=!1 +r=this.b +s=A.v(a) +s=r.a+=s +r.a=s+": " +s=A.v(b) +r.a+=s}, +$S:53} +A.f2.prototype={ +gl(a){var s=this.a +return s.gl(s)}, +gF(a){var s=this.a +return s.gF(s)}, +gG(a){var s=this.a +s=s.i(0,J.fB(s.ga_())) +return s==null?this.$ti.y[1].a(s):s}, +gC(a){var s=this.a +s=s.i(0,J.iV(s.ga_())) +return s==null?this.$ti.y[1].a(s):s}, +gt(a){var s=this.a +return new A.is(J.M(s.ga_()),s,this.$ti.h("is<1,2>"))}} +A.is.prototype={ +k(){var s=this,r=s.a +if(r.k()){s.c=s.b.i(0,r.gm()) +return!0}s.c=null +return!1}, +gm(){var s=this.c +return s==null?this.$ti.y[1].a(s):s}} +A.df.prototype={ +gF(a){return this.a===0}, +bd(a,b,c){return new A.cr(this,b,this.$ti.h("@<1>").H(c).h("cr<1,2>"))}, +j(a){return A.oA(this,"{","}")}, +ai(a,b){return A.oM(this,b,this.$ti.c)}, +Y(a,b){return A.qj(this,b,this.$ti.c)}, +gG(a){var s,r=A.iq(this,this.r,this.$ti.c) +if(!r.k())throw A.a(A.ak()) +s=r.d +return s==null?r.$ti.c.a(s):s}, +gC(a){var s,r,q=A.iq(this,this.r,this.$ti.c) +if(!q.k())throw A.a(A.ak()) +s=q.$ti.c +do{r=q.d +if(r==null)r=s.a(r)}while(q.k()) +return r}, +N(a,b){var s,r,q,p=this +A.ab(b,"index") +s=A.iq(p,p.r,p.$ti.c) +for(r=b;s.k();){if(r===0){q=s.d +return q==null?s.$ti.c.a(q):q}--r}throw A.a(A.h6(b,b-r,p,null,"index"))}, +$iu:1, +$if:1} +A.fb.prototype={} +A.nH.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:true}) +return s}catch(r){}return null}, +$S:28} +A.nG.prototype={ +$0(){var s,r +try{s=new TextDecoder("utf-8",{fatal:false}) +return s}catch(r){}return null}, +$S:28} +A.fD.prototype={ +jP(a){return B.ao.a5(a)}} +A.iI.prototype={ +a5(a){var s,r,q,p=A.ba(0,null,a.length),o=new Uint8Array(p) +for(s=~this.a,r=0;r=0){g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(f) +if(g===k)continue +k=g}else{if(f===-1){if(o<0){e=p==null?null:p.a.length +if(e==null)e=0 +o=e+(r-q) +n=r}++m +if(k===61)continue}k=g}if(f!==-2){if(p==null){p=new A.av("") +e=p}else e=p +e.a+=B.a.n(a0,q,r) +d=A.aA(k) +e.a+=d +q=l +continue}}throw A.a(A.ai("Invalid base64 data",a0,r))}if(p!=null){e=B.a.n(a0,q,a2) +e=p.a+=e +d=e.length +if(o>=0)A.pD(a0,n,a2,o,m,d) +else{c=B.b.aA(d-1,4)+1 +if(c===1)throw A.a(A.ai(a,a0,a2)) +for(;c<4;){e+="=" +p.a=e;++c}}e=p.a +return B.a.aN(a0,a1,a2,e.charCodeAt(0)==0?e:e)}b=a2-a1 +if(o>=0)A.pD(a0,n,a2,o,m,b) +else{c=B.b.aA(b,4) +if(c===1)throw A.a(A.ai(a,a0,a2)) +if(c>1)a0=B.a.aN(a0,a2,a2,c===2?"==":"=")}return a0}} +A.fJ.prototype={} +A.co.prototype={} +A.cp.prototype={} +A.fZ.prototype={} +A.hQ.prototype={ +cT(a){return new A.fp(!1).dD(a,0,null,!0)}} +A.hR.prototype={ +a5(a){var s,r,q=A.ba(0,null,a.length) +if(q===0)return new Uint8Array(0) +s=new Uint8Array(q*3) +r=new A.nI(s) +if(r.ik(a,0,q)!==q)r.e9() +return B.e.a0(s,0,r.b)}} +A.nI.prototype={ +e9(){var s=this,r=s.c,q=s.b,p=s.b=q+1 +r[q]=239 +q=s.b=p+1 +r[p]=191 +s.b=q+1 +r[q]=189}, +jn(a,b){var s,r,q,p,o=this +if((b&64512)===56320){s=65536+((a&1023)<<10)|b&1023 +r=o.c +q=o.b +p=o.b=q+1 +r[q]=s>>>18|240 +q=o.b=p+1 +r[p]=s>>>12&63|128 +p=o.b=q+1 +r[q]=s>>>6&63|128 +o.b=p+1 +r[p]=s&63|128 +return!0}else{o.e9() +return!1}}, +ik(a,b,c){var s,r,q,p,o,n,m,l=this +if(b!==c&&(a.charCodeAt(c-1)&64512)===55296)--c +for(s=l.c,r=s.length,q=b;q=r)break +l.b=o+1 +s[o]=p}else{o=p&64512 +if(o===55296){if(l.b+4>r)break +n=q+1 +if(l.jn(p,a.charCodeAt(n)))q=n}else if(o===56320){if(l.b+3>r)break +l.e9()}else if(p<=2047){o=l.b +m=o+1 +if(m>=r)break +l.b=m +s[o]=p>>>6|192 +l.b=m+1 +s[m]=p&63|128}else{o=l.b +if(o+2>=r)break +m=l.b=o+1 +s[o]=p>>>12|224 +o=l.b=m+1 +s[m]=p>>>6&63|128 +l.b=o+1 +s[o]=p&63|128}}}return q}} +A.fp.prototype={ +dD(a,b,c,d){var s,r,q,p,o,n,m=this,l=A.ba(b,c,J.ae(a)) +if(b===l)return"" +if(a instanceof Uint8Array){s=a +r=s +q=0}else{r=A.vE(a,b,l) +l-=b +q=b +b=0}if(d&&l-b>=15){p=m.a +o=A.vD(p,r,b,l) +if(o!=null){if(!p)return o +if(o.indexOf("\ufffd")<0)return o}}o=m.dF(r,b,l,d) +p=m.b +if((p&1)!==0){n=A.vF(p) +m.b=0 +throw A.a(A.ai(n,a,q+m.c))}return o}, +dF(a,b,c,d){var s,r,q=this +if(c-b>1000){s=B.b.I(b+c,2) +r=q.dF(a,b,s,!1) +if((q.b&1)!==0)return r +return r+q.dF(a,s,c,d)}return q.jL(a,b,c,d)}, +jL(a,b,c,d){var s,r,q,p,o,n,m,l=this,k=65533,j=l.b,i=l.c,h=new A.av(""),g=b+1,f=a[b] +$label0$0:for(s=l.a;!0;){for(;!0;g=p){r="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE".charCodeAt(f)&31 +i=j<=32?f&61694>>>r:(f&63|i<<6)>>>0 +j=" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA".charCodeAt(j+r) +if(j===0){q=A.aA(i) +h.a+=q +if(g===c)break $label0$0 +break}else if((j&1)!==0){if(s)switch(j){case 69:case 67:q=A.aA(k) +h.a+=q +break +case 65:q=A.aA(k) +h.a+=q;--g +break +default:q=A.aA(k) +q=h.a+=q +h.a=q+A.aA(k) +break}else{l.b=j +l.c=g-1 +return""}j=0}if(g===c)break $label0$0 +p=g+1 +f=a[g]}p=g+1 +f=a[g] +if(f<128){while(!0){if(!(p=128){o=n-1 +p=n +break}p=n}if(o-g<20)for(m=g;m32)if(s){s=A.aA(k) +h.a+=s}else{l.b=77 +l.c=c +return""}l.b=j +l.c=i +s=h.a +return s.charCodeAt(0)==0?s:s}} +A.a6.prototype={ +aB(a){var s,r,q=this,p=q.c +if(p===0)return q +s=!q.a +r=q.b +p=A.aJ(p,r) +return new A.a6(p===0?!1:s,r,p)}, +ic(a){var s,r,q,p,o,n,m=this.c +if(m===0)return $.b8() +s=m+a +r=this.b +q=new Uint16Array(s) +for(p=m-1;p>=0;--p)q[p+a]=r[p] +o=this.a +n=A.aJ(s,q) +return new A.a6(n===0?!1:o,q,n)}, +ie(a){var s,r,q,p,o,n,m,l=this,k=l.c +if(k===0)return $.b8() +s=k-a +if(s<=0)return l.a?$.py():$.b8() +r=l.b +q=new Uint16Array(s) +for(p=a;p>>0!==0)return l.dl(0,$.fy()) +for(k=0;k=0)return q.cs(b,r) +return b.cs(q,!r)}, +dl(a,b){var s,r,q=this,p=q.c +if(p===0)return b.aB(0) +s=b.c +if(s===0)return q +r=q.a +if(r!==b.a)return q.dr(b,r) +if(A.m1(q.b,p,b.b,s)>=0)return q.cs(b,r) +return b.cs(q,!r)}, +bI(a,b){var s,r,q,p,o,n,m,l=this.c,k=b.c +if(l===0||k===0)return $.b8() +s=l+k +r=this.b +q=b.b +p=new Uint16Array(s) +for(o=0;o0?p.aB(0):p}, +iU(a){var s,r,q,p=this +if(p.c0)q=q.bm(0,$.oU.ag()) +return p.a&&q.c>0?q.aB(0):q}, +fb(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this,c=d.c +if(c===$.qE&&a.c===$.qG&&d.b===$.qD&&a.b===$.qF)return +s=a.b +r=a.c +q=16-B.b.gfV(s[r-1]) +if(q>0){p=new Uint16Array(r+5) +o=A.qC(s,r,q,p) +n=new Uint16Array(c+5) +m=A.qC(d.b,c,q,n)}else{n=A.oV(d.b,0,c,c+2) +o=r +p=s +m=c}l=p[o-1] +k=m-o +j=new Uint16Array(m) +i=A.oW(p,o,k,j) +h=m+1 +if(A.m1(n,m,j,i)>=0){n[m]=1 +A.i6(n,h,j,i,n)}else n[m]=0 +g=new Uint16Array(o+2) +g[o]=1 +A.i6(g,o+1,p,o,g) +f=m-1 +for(;k>0;){e=A.v0(l,n,f);--k +A.qI(e,g,0,n,k,o) +if(n[f]1;){q=$.px() +if(q.c===0)A.y(B.as) +p=r.iU(q).j(0) +s.push(p) +o=p.length +if(o===1)s.push("000") +if(o===2)s.push("00") +if(o===3)s.push("0") +r=r.ib(q)}s.push(B.b.j(r.b[0])) +if(m)s.push("-") +return new A.ez(s,t.bJ).c5(0)}} +A.m2.prototype={ +$2(a,b){a=a+b&536870911 +a=a+((a&524287)<<10)&536870911 +return a^a>>>6}, +$S:4} +A.m3.prototype={ +$1(a){a=a+((a&67108863)<<3)&536870911 +a^=a>>>11 +return a+((a&16383)<<15)&536870911}, +$S:12} +A.ih.prototype={ +h_(a){var s=this.a +if(s!=null)s.unregister(a)}} +A.fQ.prototype={ +O(a,b){if(b==null)return!1 +return b instanceof A.fQ&&this.a===b.a&&this.b===b.b&&this.c===b.c}, +gB(a){return A.ev(this.a,this.b,B.f,B.f)}, +ah(a,b){var s=B.b.ah(this.a,b.a) +if(s!==0)return s +return B.b.ah(this.b,b.b)}, +j(a){var s=this,r=A.tZ(A.uB(s)),q=A.fR(A.uz(s)),p=A.fR(A.uv(s)),o=A.fR(A.uw(s)),n=A.fR(A.uy(s)),m=A.fR(A.uA(s)),l=A.pL(A.ux(s)),k=s.b,j=k===0?"":A.pL(k) +k=r+"-"+q +if(s.c)return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j+"Z" +else return k+"-"+p+" "+o+":"+n+":"+m+"."+l+j}} +A.bp.prototype={ +O(a,b){if(b==null)return!1 +return b instanceof A.bp&&this.a===b.a}, +gB(a){return B.b.gB(this.a)}, +ah(a,b){return B.b.ah(this.a,b.a)}, +j(a){var s,r,q,p,o,n=this.a,m=B.b.I(n,36e8),l=n%36e8 +if(n<0){m=0-m +n=0-l +s="-"}else{n=l +s=""}r=B.b.I(n,6e7) +n%=6e7 +q=r<10?"0":"" +p=B.b.I(n,1e6) +o=p<10?"0":"" +return s+m+":"+q+r+":"+o+p+"."+B.a.km(B.b.j(n%1e6),6,"0")}} +A.mg.prototype={ +j(a){return this.af()}} +A.O.prototype={ +gbJ(){return A.uu(this)}} +A.fF.prototype={ +j(a){var s=this.a +if(s!=null)return"Assertion failed: "+A.h_(s) +return"Assertion failed"}} +A.bD.prototype={} +A.aV.prototype={ +gdJ(){return"Invalid argument"+(!this.a?"(s)":"")}, +gdI(){return""}, +j(a){var s=this,r=s.c,q=r==null?"":" ("+r+")",p=s.d,o=p==null?"":": "+A.v(p),n=s.gdJ()+q+o +if(!s.a)return n +return n+s.gdI()+": "+A.h_(s.gex())}, +gex(){return this.b}} +A.d9.prototype={ +gex(){return this.b}, +gdJ(){return"RangeError"}, +gdI(){var s,r=this.e,q=this.f +if(r==null)s=q!=null?": Not less than or equal to "+A.v(q):"" +else if(q==null)s=": Not greater than or equal to "+A.v(r) +else if(q>r)s=": Not in inclusive range "+A.v(r)+".."+A.v(q) +else s=qe.length +else s=!1 +if(s)f=null +if(f==null){if(e.length>78)e=B.a.n(e,0,75)+"..." +return g+"\n"+e}for(r=1,q=0,p=!1,o=0;o1?g+(" (at line "+r+", character "+(f-q+1)+")\n"):g+(" (at character "+(f+1)+")\n") +m=e.length +for(o=f;o78){k="..." +if(f-q<75){j=q+75 +i=q}else{if(m-f<75){i=m-75 +j=m +k=""}else{i=f-36 +j=f+36}l="..."}}else{j=m +i=q +k=""}return g+l+B.a.n(e,i,j)+k+"\n"+B.a.bI(" ",f-i+l.length)+"^\n"}else return f!=null?g+(" (at offset "+A.v(f)+")"):g}, +$ia5:1} +A.h8.prototype={ +gbJ(){return null}, +j(a){return"IntegerDivisionByZeroException"}, +$iO:1, +$ia5:1} +A.f.prototype={ +b8(a,b){return A.e6(this,A.t(this).h("f.E"),b)}, +bd(a,b,c){return A.eq(this,b,A.t(this).h("f.E"),c)}, +az(a,b){return A.ay(this,b,A.t(this).h("f.E"))}, +cj(a){return this.az(0,!0)}, +gl(a){var s,r=this.gt(this) +for(s=0;r.k();)++s +return s}, +gF(a){return!this.gt(this).k()}, +ai(a,b){return A.oM(this,b,A.t(this).h("f.E"))}, +Y(a,b){return A.qj(this,b,A.t(this).h("f.E"))}, +hA(a,b){return new A.eA(this,b,A.t(this).h("eA"))}, +gG(a){var s=this.gt(this) +if(!s.k())throw A.a(A.ak()) +return s.gm()}, +gC(a){var s,r=this.gt(this) +if(!r.k())throw A.a(A.ak()) +do s=r.gm() +while(r.k()) +return s}, +N(a,b){var s,r +A.ab(b,"index") +s=this.gt(this) +for(r=b;s.k();){if(r===0)return s.gm();--r}throw A.a(A.h6(b,b-r,this,null,"index"))}, +j(a){return A.uf(this,"(",")")}} +A.bv.prototype={ +j(a){return"MapEntry("+A.v(this.a)+": "+A.v(this.b)+")"}} +A.F.prototype={ +gB(a){return A.e.prototype.gB.call(this,0)}, +j(a){return"null"}} +A.e.prototype={$ie:1, +O(a,b){return this===b}, +gB(a){return A.ey(this)}, +j(a){return"Instance of '"+A.ks(this)+"'"}, +gW(a){return A.xa(this)}, +toString(){return this.j(this)}} +A.dK.prototype={ +j(a){return this.a}, +$ia1:1} +A.av.prototype={ +gl(a){return this.a.length}, +j(a){var s=this.a +return s.charCodeAt(0)==0?s:s}} +A.lk.prototype={ +$2(a,b){throw A.a(A.ai("Illegal IPv4 address, "+a,this.a,b))}, +$S:75} +A.ll.prototype={ +$2(a,b){throw A.a(A.ai("Illegal IPv6 address, "+a,this.a,b))}, +$S:76} +A.lm.prototype={ +$2(a,b){var s +if(b-a>4)this.a.$2("an IPv6 part can only contain a maximum of 4 hex digits",a) +s=A.aN(B.a.n(this.b,a,b),16) +if(s<0||s>65535)this.a.$2("each part must be in the range of `0x0..0xFFFF`",a) +return s}, +$S:4} +A.fm.prototype={ +gfM(){var s,r,q,p,o=this,n=o.w +if(n===$){s=o.a +r=s.length!==0?""+s+":":"" +q=o.c +p=q==null +if(!p||s==="file"){s=r+"//" +r=o.b +if(r.length!==0)s=s+r+"@" +if(!p)s+=q +r=o.d +if(r!=null)s=s+":"+A.v(r)}else s=r +s+=o.e +r=o.f +if(r!=null)s=s+"?"+r +r=o.r +if(r!=null)s=s+"#"+r +n!==$&&A.om() +n=o.w=s.charCodeAt(0)==0?s:s}return n}, +gkn(){var s,r,q=this,p=q.x +if(p===$){s=q.e +if(s.length!==0&&s.charCodeAt(0)===47)s=B.a.K(s,1) +r=s.length===0?B.r:A.aG(new A.D(A.d(s.split("/"),t.s),A.wZ(),t.do),t.N) +q.x!==$&&A.om() +p=q.x=r}return p}, +gB(a){var s,r=this,q=r.y +if(q===$){s=B.a.gB(r.gfM()) +r.y!==$&&A.om() +r.y=s +q=s}return q}, +geO(){return this.b}, +gbc(){var s=this.c +if(s==null)return"" +if(B.a.u(s,"["))return B.a.n(s,1,s.length-1) +return s}, +gcb(){var s=this.d +return s==null?A.qZ(this.a):s}, +gcd(){var s=this.f +return s==null?"":s}, +gcW(){var s=this.r +return s==null?"":s}, +kd(a){var s=this.a +if(a.length!==s.length)return!1 +return A.vR(a,s,0)>=0}, +hk(a){var s,r,q,p,o,n,m,l=this +a=A.nF(a,0,a.length) +s=a==="file" +r=l.b +q=l.d +if(a!==l.a)q=A.nE(q,a) +p=l.c +if(!(p!=null))p=r.length!==0||q!=null||s?"":null +o=l.e +if(!s)n=p!=null&&o.length!==0 +else n=!0 +if(n&&!B.a.u(o,"/"))o="/"+o +m=o +return A.fn(a,r,p,q,m,l.f,l.r)}, +gh7(){if(this.a!==""){var s=this.r +s=(s==null?"":s)===""}else s=!1 +return s}, +fn(a,b){var s,r,q,p,o,n,m +for(s=0,r=0;B.a.E(b,"../",r);){r+=3;++s}q=B.a.d0(a,"/") +while(!0){if(!(q>0&&s>0))break +p=B.a.h9(a,"/",q-1) +if(p<0)break +o=q-p +n=o!==2 +m=!1 +if(!n||o===3)if(a.charCodeAt(p+1)===46)n=!n||a.charCodeAt(p+2)===46 +else n=m +else n=m +if(n)break;--s +q=p}return B.a.aN(a,q+1,null,B.a.K(b,r-3*s))}, +hm(a){return this.ce(A.bm(a))}, +ce(a){var s,r,q,p,o,n,m,l,k,j,i,h=this +if(a.gZ().length!==0)return a +else{s=h.a +if(a.geq()){r=a.hk(s) +return r}else{q=h.b +p=h.c +o=h.d +n=h.e +if(a.gh5())m=a.gcX()?a.gcd():h.f +else{l=A.vB(h,n) +if(l>0){k=B.a.n(n,0,l) +n=a.gep()?k+A.cL(a.gac()):k+A.cL(h.fn(B.a.K(n,k.length),a.gac()))}else if(a.gep())n=A.cL(a.gac()) +else if(n.length===0)if(p==null)n=s.length===0?a.gac():A.cL(a.gac()) +else n=A.cL("/"+a.gac()) +else{j=h.fn(n,a.gac()) +r=s.length===0 +if(!r||p!=null||B.a.u(n,"/"))n=A.cL(j) +else n=A.p6(j,!r||p!=null)}m=a.gcX()?a.gcd():null}}}i=a.ger()?a.gcW():null +return A.fn(s,q,p,o,n,m,i)}, +geq(){return this.c!=null}, +gcX(){return this.f!=null}, +ger(){return this.r!=null}, +gh5(){return this.e.length===0}, +gep(){return B.a.u(this.e,"/")}, +eL(){var s,r=this,q=r.a +if(q!==""&&q!=="file")throw A.a(A.H("Cannot extract a file path from a "+q+" URI")) +q=r.f +if((q==null?"":q)!=="")throw A.a(A.H(u.y)) +q=r.r +if((q==null?"":q)!=="")throw A.a(A.H(u.l)) +if(r.c!=null&&r.gbc()!=="")A.y(A.H(u.j)) +s=r.gkn() +A.vt(s,!1) +q=A.oK(B.a.u(r.e,"/")?""+"/":"",s,"/") +q=q.charCodeAt(0)==0?q:q +return q}, +j(a){return this.gfM()}, +O(a,b){var s,r,q,p=this +if(b==null)return!1 +if(p===b)return!0 +s=!1 +if(t.dD.b(b))if(p.a===b.gZ())if(p.c!=null===b.geq())if(p.b===b.geO())if(p.gbc()===b.gbc())if(p.gcb()===b.gcb())if(p.e===b.gac()){r=p.f +q=r==null +if(!q===b.gcX()){if(q)r="" +if(r===b.gcd()){r=p.r +q=r==null +if(!q===b.ger()){s=q?"":r +s=s===b.gcW()}}}}return s}, +$ihO:1, +gZ(){return this.a}, +gac(){return this.e}} +A.nD.prototype={ +$1(a){return A.vC(B.aN,a,B.j,!1)}, +$S:8} +A.hP.prototype={ +geN(){var s,r,q,p,o=this,n=null,m=o.c +if(m==null){m=o.a +s=o.b[0]+1 +r=B.a.aV(m,"?",s) +q=m.length +if(r>=0){p=A.fo(m,r+1,q,B.p,!1,!1) +q=r}else p=n +m=o.c=new A.ib("data","",n,n,A.fo(m,s,q,B.a5,!1,!1),p,n)}return m}, +j(a){var s=this.a +return this.b[0]===-1?"data:"+s:s}} +A.nQ.prototype={ +$2(a,b){var s=this.a[a] +B.e.en(s,0,96,b) +return s}, +$S:78} +A.nR.prototype={ +$3(a,b,c){var s,r +for(s=b.length,r=0;r>>0]=c}, +$S:23} +A.b5.prototype={ +geq(){return this.c>0}, +ges(){return this.c>0&&this.d+10&&this.r>=this.a.length}, +gZ(){var s=this.w +return s==null?this.w=this.i2():s}, +i2(){var s,r=this,q=r.b +if(q<=0)return"" +s=q===4 +if(s&&B.a.u(r.a,"http"))return"http" +if(q===5&&B.a.u(r.a,"https"))return"https" +if(s&&B.a.u(r.a,"file"))return"file" +if(q===7&&B.a.u(r.a,"package"))return"package" +return B.a.n(r.a,0,q)}, +geO(){var s=this.c,r=this.b+3 +return s>r?B.a.n(this.a,r,s-1):""}, +gbc(){var s=this.c +return s>0?B.a.n(this.a,s,this.d):""}, +gcb(){var s,r=this +if(r.ges())return A.aN(B.a.n(r.a,r.d+1,r.e),null) +s=r.b +if(s===4&&B.a.u(r.a,"http"))return 80 +if(s===5&&B.a.u(r.a,"https"))return 443 +return 0}, +gac(){return B.a.n(this.a,this.e,this.f)}, +gcd(){var s=this.f,r=this.r +return s=q.length)return s +return new A.b5(B.a.n(q,0,r),s.b,s.c,s.d,s.e,s.f,r,s.w)}, +hk(a){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=null +a=A.nF(a,0,a.length) +s=!(h.b===a.length&&B.a.u(h.a,a)) +r=a==="file" +q=h.c +p=q>0?B.a.n(h.a,h.b+3,q):"" +o=h.ges()?h.gcb():g +if(s)o=A.nE(o,a) +q=h.c +if(q>0)n=B.a.n(h.a,q,h.d) +else n=p.length!==0||o!=null||r?"":g +q=h.a +m=h.f +l=B.a.n(q,h.e,m) +if(!r)k=n!=null&&l.length!==0 +else k=!0 +if(k&&!B.a.u(l,"/"))l="/"+l +k=h.r +j=m0)return b +s=b.c +if(s>0){r=a.b +if(r<=0)return b +q=r===4 +if(q&&B.a.u(a.a,"file"))p=b.e!==b.f +else if(q&&B.a.u(a.a,"http"))p=!b.fk("80") +else p=!(r===5&&B.a.u(a.a,"https"))||!b.fk("443") +if(p){o=r+1 +return new A.b5(B.a.n(a.a,0,o)+B.a.K(b.a,c+1),r,s+o,b.d+o,b.e+o,b.f+o,b.r+o,a.w)}else return this.fO().ce(b)}n=b.e +c=b.f +if(n===c){s=b.r +if(c0?l:m +o=k-n +return new A.b5(B.a.n(a.a,0,k)+B.a.K(s,n),a.b,a.c,a.d,m,c+o,b.r+o,a.w)}j=a.e +i=a.f +if(j===i&&a.c>0){for(;B.a.E(s,"../",n);)n+=3 +o=j-n+1 +return new A.b5(B.a.n(a.a,0,j)+"/"+B.a.K(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}h=a.a +l=A.qR(this) +if(l>=0)g=l +else for(g=j;B.a.E(h,"../",g);)g+=3 +f=0 +while(!0){e=n+3 +if(!(e<=c&&B.a.E(s,"../",n)))break;++f +n=e}for(d="";i>g;){--i +if(h.charCodeAt(i)===47){if(f===0){d="/" +break}--f +d="/"}}if(i===g&&a.b<=0&&!B.a.E(h,"/",j)){n-=f*3 +d=""}o=i-n+d.length +return new A.b5(B.a.n(h,0,i)+d+B.a.K(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.w)}, +eL(){var s,r=this,q=r.b +if(q>=0){s=!(q===4&&B.a.u(r.a,"file")) +q=s}else q=!1 +if(q)throw A.a(A.H("Cannot extract a file path from a "+r.gZ()+" URI")) +q=r.f +s=r.a +if(q0?s.gbc():r,n=s.ges()?s.gcb():r,m=s.a,l=s.f,k=B.a.n(m,s.e,l),j=s.r +l=l864e13)A.y(A.Y(r,-864e13,864e13,"millisecondsSinceEpoch",null)) +A.aD(!0,"isUtc",t.y) +return new A.fQ(r,0,!0)}if(a instanceof RegExp)throw A.a(A.K("structured clone of RegExp",null)) +if(typeof Promise!="undefined"&&a instanceof Promise)return A.a0(a,t.X) +q=Object.getPrototypeOf(a) +if(q===Object.prototype||q===null){p=t.X +o=A.a4(p,p) +s.q(0,a,o) +n=Object.keys(a) +m=[] +for(s=J.aM(n),p=s.gt(n);p.k();)m.push(A.rC(p.gm())) +for(l=0;l4294967296)throw A.a(new A.d9(j,j,!1,j,j,"max must be in range 0 < max \u2264 2^32, was "+a)) +if(a>255)if(a>65535)s=a>16777215?4:3 +else s=2 +else s=1 +r=this.a +r.setUint32(0,0,!1) +q=4-s +p=A.h(Math.pow(256,s)) +for(o=a-1,n=(a&o)===0;!0;){m=r.buffer +m=new Uint8Array(m,q,s) +crypto.getRandomValues(m) +l=r.getUint32(0,!1) +if(n)return(l&o)>>>0 +k=l%a +if(l-k+a>>0)&2147483647 +r^=r>>>6}r=r+(r<<3>>>0)&2147483647 +r^=r>>>11 +return r+(r<<15>>>0)&2147483647}} +A.hp.prototype={} +A.hM.prototype={} +A.ec.prototype={ +hK(a,b,c){var s=this.a.a +s===$&&A.G() +s.eB(this.giq(),new A.jD(this))}, +hb(){return this.d++}, +p(){var s=0,r=A.o(t.H),q,p=this,o +var $async$p=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:if(p.r||(p.w.a.a&30)!==0){s=1 +break}p.r=!0 +o=p.a.b +o===$&&A.G() +o.p() +s=3 +return A.c(p.w.a,$async$p) +case 3:case 1:return A.m(q,r)}}) +return A.n($async$p,r)}, +ir(a){var s,r=this +if(r.c){a.toString +a=B.a_.ej(a)}if(a instanceof A.bb){s=r.e.A(0,a.a) +if(s!=null)s.a.L(a.b)}else if(a instanceof A.bq){s=r.e.A(0,a.a) +if(s!=null)s.fX(new A.fW(a.b),a.c)}else if(a instanceof A.am)r.f.v(0,a) +else if(a instanceof A.bo){s=r.e.A(0,a.a) +if(s!=null)s.fW(B.Z)}}, +bw(a){var s,r,q=this +if(q.r||(q.w.a.a&30)!==0)throw A.a(A.B("Tried to send "+a.j(0)+" over isolate channel, but the connection was closed!")) +s=q.a.b +s===$&&A.G() +r=q.c?B.a_.dk(a):a +s.a.v(0,r)}, +kv(a,b,c){var s,r=this +if(r.r||(r.w.a.a&30)!==0)return +s=a.a +if(b instanceof A.e5)r.bw(new A.bo(s)) +else r.bw(new A.bq(s,b,c))}, +hx(a){var s=this.f +new A.an(s,A.t(s).h("an<1>")).kg(new A.jE(this,a))}} +A.jD.prototype={ +$0(){var s,r,q,p,o +for(s=this.a,r=s.e,q=r.gaO(),p=A.t(q),q=new A.b0(J.M(q.a),q.b,p.h("b0<1,2>")),p=p.y[1];q.k();){o=q.a;(o==null?p.a(o):o).fW(B.ar)}r.c1(0) +s.w.aU()}, +$S:0} +A.jE.prototype={ +$1(a){return this.hs(a)}, +hs(a){var s=0,r=A.o(t.H),q,p=2,o,n=this,m,l,k,j,i,h +var $async$$1=A.p(function(b,c){if(b===1){o=c +s=p}while(true)switch(s){case 0:i=null +p=4 +k=n.b.$1(a) +s=7 +return A.c(t.cG.b(k)?k:A.f_(k,t.O),$async$$1) +case 7:i=c +p=2 +s=6 +break +case 4:p=3 +h=o +m=A.E(h) +l=A.R(h) +k=n.a.kv(a,m,l) +q=k +s=1 +break +s=6 +break +case 3:s=2 +break +case 6:k=n.a +if(!(k.r||(k.w.a.a&30)!==0))k.bw(new A.bb(a.a,i)) +case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$$1,r)}, +$S:86} +A.iu.prototype={ +fX(a,b){var s +if(b==null)s=this.b +else{s=A.d([],t.J) +if(b instanceof A.bf)B.c.aI(s,b.a) +else s.push(A.qq(b)) +s.push(A.qq(this.b)) +s=new A.bf(A.aG(s,t.a))}this.a.by(a,s)}, +fW(a){return this.fX(a,null)}} +A.fO.prototype={ +j(a){return"Channel was closed before receiving a response"}, +$ia5:1} +A.fW.prototype={ +j(a){return J.aU(this.a)}, +$ia5:1} +A.fV.prototype={ +dk(a){var s,r +if(a instanceof A.am)return[0,a.a,this.h0(a.b)] +else if(a instanceof A.bq){s=J.aU(a.b) +r=a.c +r=r==null?null:r.j(0) +return[2,a.a,s,r]}else if(a instanceof A.bb)return[1,a.a,this.h0(a.b)] +else if(a instanceof A.bo)return A.d([3,a.a],t.t) +else return null}, +ej(a){var s,r,q,p +if(!t.j.b(a))throw A.a(B.aE) +s=J.V(a) +r=A.h(s.i(a,0)) +q=A.h(s.i(a,1)) +switch(r){case 0:return new A.am(q,t.ah.a(this.fZ(s.i(a,2)))) +case 2:p=A.vH(s.i(a,3)) +s=s.i(a,2) +if(s==null)s=t.K.a(s) +return new A.bq(q,s,p!=null?new A.dK(p):null) +case 1:return new A.bb(q,t.O.a(this.fZ(s.i(a,2)))) +case 3:return new A.bo(q)}throw A.a(B.aF)}, +h0(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f +if(a==null)return a +if(a instanceof A.d5)return a.a +else if(a instanceof A.bW){s=a.a +r=a.b +q=[] +for(p=a.c,o=p.length,n=0;n")),g=g.h("P.E");s.k();){a8=s.d +h.push(this.dE(a8==null?g.a(a8):a8))}l.push(new A.cT(i,h))}f=J.iV(a7.a) +$label1$2:{if(f==null){s=a6 +break $label1$2}A.h(f) +s=f +break $label1$2}return new A.bh(new A.e3(n,l),s) +case 5:return new A.c5(B.aa[q.$1(1)],p.$1(2)) +case 6:return new A.bV(q.$1(1),p.$1(2)) +case 13:s.toString +return new A.c6(A.ou(B.ac,A.ad(J.aO(s,1)))) +case 7:return new A.c4(new A.ew(p.$1(1),q.$1(2)),q.$1(3)) +case 8:e=A.d([],t.be) +s=t.j +k=1 +while(!0){m=a7.a +m.toString +if(!(k")).k5(0,new A.kI(r))}, +jN(a,b){var s,r,q +for(s=this.z,s=A.iq(s,s.r,s.$ti.c),r=s.$ti.c;s.k();){q=s.d +if(q==null)q=r.a(q) +if(q!==b)q.bw(new A.am(q.d++,a))}}} +A.kK.prototype={ +$1(a){var s=this.a +s.i_() +s.as.p()}, +$S:89} +A.kL.prototype={ +$1(a){return this.a.it(this.b,a)}, +$S:93} +A.kM.prototype={ +$1(a){return this.a.z.A(0,this.b)}, +$S:24} +A.kG.prototype={ +$0(){var s=this.b +return this.a.aF(s.a,s.b,s.c,s.d)}, +$S:110} +A.kH.prototype={ +$0(){return this.a.r.A(0,this.b.a)}, +$S:116} +A.kJ.prototype={ +$0(){var s,r=this.b +if(r==null)return this.a.w.length===0 +else{s=this.a.w +return s.length!==0&&B.c.gG(s)===r}}, +$S:22} +A.kI.prototype={ +$1(a){return this.a.$0()}, +$S:24} +A.fa.prototype={ +cN(a,b){return this.jD(a,b)}, +jD(a,b){var s=0,r=A.o(t.H),q=1,p,o=[],n=this,m,l,k,j,i +var $async$cN=A.p(function(c,d){if(c===1){p=d +s=q}while(true)switch(s){case 0:j=n.a +i=j.dZ(a,!0) +q=2 +m=n.b +l=m.hb() +k=new A.k($.i,t.D) +m.e.q(0,l,new A.iu(new A.a3(k,t.h),A.oJ())) +m.bw(new A.am(l,new A.c4(b,i))) +s=5 +return A.c(k,$async$cN) +case 5:o.push(4) +s=3 +break +case 2:o=[1] +case 3:q=1 +j.cD(i) +s=o.pop() +break +case 4:return A.m(null,r) +case 1:return A.l(p,r)}}) +return A.n($async$cN,r)}} +A.hZ.prototype={ +dk(a){var s,r,q +$label0$0:{if(a instanceof A.am){s=new A.ap(0,{i:a.a,p:this.j5(a.b)}) +break $label0$0}if(a instanceof A.bb){s=new A.ap(1,{i:a.a,p:this.j6(a.b)}) +break $label0$0}if(a instanceof A.bq){r=a.c +q=J.aU(a.b) +s=r==null?null:r.j(0) +s=new A.ap(2,[a.a,q,s]) +break $label0$0}if(a instanceof A.bo){s=new A.ap(3,a.a) +break $label0$0}s=null}return A.d([s.a,s.b],t.f)}, +ej(a){var s,r,q,p,o,n,m=null,l="Pattern matching error",k={} +k.a=null +s=a.length===2 +if(s){r=a[0] +q=k.a=a[1]}else{q=m +r=q}if(!s)throw A.a(A.B(l)) +r=A.h(A.r(r)) +$label0$0:{if(0===r){s=new A.lN(k,this).$0() +break $label0$0}if(1===r){s=new A.lO(k,this).$0() +break $label0$0}if(2===r){t.c.a(q) +s=q.length===3 +p=m +o=m +if(s){n=q[0] +p=q[1] +o=q[2]}else n=m +if(!s)A.y(A.B(l)) +n=A.h(A.r(n)) +A.ad(p) +s=new A.bq(n,p,o!=null?new A.dK(A.ad(o)):m) +break $label0$0}if(3===r){s=new A.bo(A.h(A.r(q))) +break $label0$0}s=A.y(A.K("Unknown message tag "+r,m))}return s}, +j5(a){var s,r,q,p,o,n,m,l,k,j,i,h=null +$label0$0:{s=h +if(a==null)break $label0$0 +if(a instanceof A.bW){s=a.a +r=a.b +q=[] +for(p=a.c,o=p.length,n=0;n") +q=new A.by(A.ay(new A.D(s,new A.lG(),q),!0,q.h("P.E"))) +s=q +break $label0$0}s=A.y(A.K("Unknown request tag "+r,m))}return s}, +j6(a){var s,r +$label0$0:{s=null +if(a==null)break $label0$0 +if(a instanceof A.aH){r=a.a +s=A.bO(r)?r:A.h(r) +break $label0$0}if(a instanceof A.bA){s=this.j7(a) +break $label0$0}}return s}, +j7(a){var s,r,q,p=a.a,o=J.V(p) +if(o.gF(p)){p=self +return{c:new p.Array(),r:new p.Array()}}else{s=J.cS(o.gG(p).ga_(),new A.lM(),t.N).cj(0) +r=A.d([],t.fk) +for(p=o.gt(p);p.k();){q=[] +for(o=J.M(p.gm().gaO());o.k();)q.push(this.e8(o.gm())) +r.push(q)}return{c:s,r:r}}}, +ia(a){var s,r,q,p,o,n,m,l,k,j +if(a==null)return null +else if(typeof a==="boolean")return new A.aH(A.bL(a)) +else if(typeof a==="number")return new A.aH(A.h(A.r(a))) +else{t.m.a(a) +s=a.c +s=t.o.b(s)?s:new A.ah(s,A.Q(s).h("ah<1,j>")) +r=t.N +s=J.cS(s,new A.lK(),r) +q=A.ay(s,!0,s.$ti.h("P.E")) +p=A.d([],t.d) +s=a.r +s=J.M(t.e9.b(s)?s:new A.ah(s,A.Q(s).h("ah<1,w>"))) +o=t.X +for(;s.k();){n=s.gm() +m=A.a4(r,o) +n=A.ue(n,0,o) +l=J.M(n.a) +n=n.b +k=new A.ej(l,n) +for(;k.k();){j=k.c +j=j>=0?new A.ap(n+j,l.gm()):A.y(A.ak()) +m.q(0,q[j.a],this.e7(j.b))}p.push(m)}return new A.bA(p)}}, +e8(a){var s +$label0$0:{if(a==null){s=null +break $label0$0}if(A.bn(a)){s=a +break $label0$0}if(A.bO(a)){s=a +break $label0$0}if(typeof a=="string"){s=a +break $label0$0}if(typeof a=="number"){s=A.d([15,a],t.n) +break $label0$0}if(a instanceof A.a6){s=A.d([14,a.j(0)],t.f) +break $label0$0}if(t.I.b(a)){s=new Uint8Array(A.iM(a)) +break $label0$0}s=A.y(A.K("Unknown db value: "+A.v(a),null))}return s}, +e7(a){var s,r,q,p=null +if(a!=null)if(typeof a==="number")return A.h(A.r(a)) +else if(typeof a==="boolean")return A.bL(a) +else if(typeof a==="string")return A.ad(a) +else if(A.oB(a,"Uint8Array"))return t.Z.a(a) +else{t.c.a(a) +s=a.length===2 +if(s){r=a[0] +q=a[1]}else{q=p +r=q}if(!s)throw A.a(A.B("Pattern matching error")) +if(r==14)return A.oX(A.ad(q),p) +else return A.r(q)}else return p}} +A.lN.prototype={ +$0(){var s=t.m.a(this.a.a) +return new A.am(s.i,this.b.i9(s.p))}, +$S:38} +A.lO.prototype={ +$0(){var s=t.m.a(this.a.a) +return new A.bb(s.i,this.b.ia(s.p))}, +$S:37} +A.lL.prototype={ +$1(a){return a}, +$S:8} +A.lH.prototype={ +$0(){var s,r,q,p,o,n,m=this.b,l=J.V(m),k=t.c,j=k.a(l.i(m,1)),i=t.o.b(j)?j:new A.ah(j,A.Q(j).h("ah<1,j>")) +i=J.cS(i,new A.lI(),t.N) +s=A.ay(i,!0,i.$ti.h("P.E")) +i=l.gl(m) +r=A.d([],t.g7) +for(i=l.Y(m,2).ai(0,i-3),k=A.e6(i,i.$ti.h("f.E"),k),k=A.eq(k,new A.lJ(),A.t(k).h("f.E"),t.ee),i=A.t(k),k=new A.b0(J.M(k.a),k.b,i.h("b0<1,2>")),q=this.a.gjl(),i=i.y[1];k.k();){p=k.a +if(p==null)p=i.a(p) +o=J.V(p) +n=A.h(A.r(o.i(p,0))) +p=o.Y(p,1) +o=p.$ti.h("D") +r.push(new A.cT(n,A.ay(new A.D(p,q,o),!0,o.h("P.E"))))}m=l.i(m,l.gl(m)-1) +m=m==null?null:A.h(A.r(m)) +return new A.bh(new A.e3(s,r),m)}, +$S:40} +A.lI.prototype={ +$1(a){return a}, +$S:8} +A.lJ.prototype={ +$1(a){return a}, +$S:41} +A.lG.prototype={ +$1(a){var s,r,q +t.c.a(a) +s=a.length===2 +if(s){r=a[0] +q=a[1]}else{r=null +q=null}if(!s)throw A.a(A.B("Pattern matching error")) +A.ad(r) +return new A.bC(q==null?null:B.a7[A.h(A.r(q))],r)}, +$S:42} +A.lM.prototype={ +$1(a){return a}, +$S:8} +A.lK.prototype={ +$1(a){return a}, +$S:8} +A.dk.prototype={ +af(){return"UpdateKind."+this.b}} +A.bC.prototype={ +gB(a){return A.ev(this.a,this.b,B.f,B.f)}, +O(a,b){if(b==null)return!1 +return b instanceof A.bC&&b.a==this.a&&b.b===this.b}, +j(a){return"TableUpdate("+this.b+", kind: "+A.v(this.a)+")"}} +A.oj.prototype={ +$0(){return this.a.a.a.L(A.jZ(this.b,this.c))}, +$S:0} +A.bU.prototype={ +J(){var s,r +if(this.c)return +for(s=this.b,r=0;!1;++r)s[r].$0() +this.c=!0}} +A.e5.prototype={ +j(a){return"Operation was cancelled"}, +$ia5:1} +A.al.prototype={ +p(){var s=0,r=A.o(t.H) +var $async$p=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:return A.m(null,r)}}) +return A.n($async$p,r)}} +A.e3.prototype={ +gB(a){return A.ev(B.o.h6(this.a),B.o.h6(this.b),B.f,B.f)}, +O(a,b){if(b==null)return!1 +return b instanceof A.e3&&B.o.em(b.a,this.a)&&B.o.em(b.b,this.b)}, +j(a){return"BatchedStatements("+A.v(this.a)+", "+A.v(this.b)+")"}} +A.cT.prototype={ +gB(a){return A.ev(this.a,B.o,B.f,B.f)}, +O(a,b){if(b==null)return!1 +return b instanceof A.cT&&b.a===this.a&&B.o.em(b.b,this.b)}, +j(a){return"ArgumentsForBatchedStatement("+this.a+", "+A.v(this.b)+")"}} +A.jt.prototype={} +A.kt.prototype={} +A.le.prototype={} +A.kn.prototype={} +A.jx.prototype={} +A.ho.prototype={} +A.jM.prototype={} +A.i4.prototype={ +gez(){return!1}, +gc6(){return!1}, +b6(a,b){if(this.gez()||this.b>0)return this.a.cr(new A.lW(a,b),b) +else return a.$0()}, +cz(a,b){this.gc6()}, +ad(a,b){return this.kC(a,b)}, +kC(a,b){var s=0,r=A.o(t.aS),q,p=this,o +var $async$ad=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:s=3 +return A.c(p.b6(new A.m0(p,a,b),t.aj),$async$ad) +case 3:o=d.gjC(0) +q=A.ay(o,!0,o.$ti.h("P.E")) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$ad,r)}, +cf(a,b){return this.b6(new A.lZ(this,a,b),t.S)}, +aw(a,b){return this.b6(new A.m_(this,a,b),t.S)}, +a8(a,b){return this.b6(new A.lY(this,b,a),t.H)}, +ky(a){return this.a8(a,null)}, +av(a){return this.b6(new A.lX(this,a),t.H)}, +cO(){return new A.eY(this,new A.a3(new A.k($.i,t.D),t.h),new A.bi())}, +cP(){return this.aT(this)}} +A.lW.prototype={ +$0(){A.rB() +return this.a.$0()}, +$S(){return this.b.h("C<0>()")}} +A.m0.prototype={ +$0(){var s=this.a,r=this.b,q=this.c +s.cz(r,q) +return s.gaL().ad(r,q)}, +$S:43} +A.lZ.prototype={ +$0(){var s=this.a,r=this.b,q=this.c +s.cz(r,q) +return s.gaL().d8(r,q)}, +$S:36} +A.m_.prototype={ +$0(){var s=this.a,r=this.b,q=this.c +s.cz(r,q) +return s.gaL().aw(r,q)}, +$S:36} +A.lY.prototype={ +$0(){var s,r,q=this.b +if(q==null)q=B.t +s=this.a +r=this.c +s.cz(r,q) +return s.gaL().a8(r,q)}, +$S:3} +A.lX.prototype={ +$0(){var s=this.a +s.gc6() +return s.gaL().av(this.b)}, +$S:3} +A.iH.prototype={ +hZ(){this.c=!0 +if(this.d)throw A.a(A.B("A transaction was used after being closed. Please check that you're awaiting all database operations inside a `transaction` block."))}, +aT(a){throw A.a(A.H("Nested transactions aren't supported."))}, +gao(){return B.m}, +gc6(){return!1}, +gez(){return!0}, +$ihI:1} +A.fe.prototype={ +ap(a){var s,r,q=this +q.hZ() +s=q.z +if(s==null){s=q.z=new A.a3(new A.k($.i,t.k),t.co) +r=q.as;++r.b +r.b6(new A.nq(q),t.P).aj(new A.nr(r))}return s.a}, +gaL(){return this.e.e}, +aT(a){var s=this.at+1 +return new A.fe(this.y,new A.a3(new A.k($.i,t.D),t.h),a,s,A.rh(s),A.rf(s),A.rg(s),this.e,new A.bi())}, +bk(){var s=0,r=A.o(t.H),q,p=this +var $async$bk=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:if(!p.c){s=1 +break}s=3 +return A.c(p.a8(p.ay,B.t),$async$bk) +case 3:p.f2() +case 1:return A.m(q,r)}}) +return A.n($async$bk,r)}, +bE(){var s=0,r=A.o(t.H),q,p=2,o,n=[],m=this +var $async$bE=A.p(function(a,b){if(a===1){o=b +s=p}while(true)switch(s){case 0:if(!m.c){s=1 +break}p=3 +s=6 +return A.c(m.a8(m.ch,B.t),$async$bE) +case 6:n.push(5) +s=4 +break +case 3:n=[2] +case 4:p=2 +m.f2() +s=n.pop() +break +case 5:case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$bE,r)}, +f2(){var s=this +if(s.at===0)s.e.e.a=!1 +s.Q.aU() +s.d=!0}} +A.nq.prototype={ +$0(){var s=0,r=A.o(t.P),q=1,p,o=this,n,m,l,k,j +var $async$$0=A.p(function(a,b){if(a===1){p=b +s=q}while(true)switch(s){case 0:q=3 +l=o.a +s=6 +return A.c(l.ky(l.ax),$async$$0) +case 6:l.e.e.a=!0 +l.z.L(!0) +q=1 +s=5 +break +case 3:q=2 +j=p +n=A.E(j) +m=A.R(j) +o.a.z.by(n,m) +s=5 +break +case 2:s=1 +break +case 5:s=7 +return A.c(o.a.Q.a,$async$$0) +case 7:return A.m(null,r) +case 1:return A.l(p,r)}}) +return A.n($async$$0,r)}, +$S:14} +A.nr.prototype={ +$0(){return this.a.b--}, +$S:46} +A.fT.prototype={ +gaL(){return this.e}, +gao(){return B.m}, +ap(a){return this.x.cr(new A.jC(this,a),t.y)}, +bu(a){return this.j1(a)}, +j1(a){var s=0,r=A.o(t.H),q=this,p,o,n,m +var $async$bu=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:n=q.e +m=n.y +m===$&&A.G() +p=a.c +s=m instanceof A.ho?2:4 +break +case 2:o=p +s=3 +break +case 4:s=m instanceof A.fc?5:7 +break +case 5:s=8 +return A.c(A.aX(m.a.gkH(),t.S),$async$bu) +case 8:o=c +s=6 +break +case 7:throw A.a(A.jO("Invalid delegate: "+n.j(0)+". The versionDelegate getter must not subclass DBVersionDelegate directly")) +case 6:case 3:if(o===0)o=null +s=9 +return A.c(a.cN(new A.i5(q,new A.bi()),new A.ew(o,p)),$async$bu) +case 9:s=m instanceof A.fc&&o!==p?10:11 +break +case 10:m.a.h1("PRAGMA user_version = "+p+";") +s=12 +return A.c(A.aX(null,t.H),$async$bu) +case 12:case 11:return A.m(null,r)}}) +return A.n($async$bu,r)}, +aT(a){var s=$.i +return new A.fe(B.az,new A.a3(new A.k(s,t.D),t.h),a,0,"BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION",this,new A.bi())}, +p(){return this.x.cr(new A.jB(this),t.H)}, +gc6(){return this.r}, +gez(){return this.w}} +A.jC.prototype={ +$0(){var s=0,r=A.o(t.y),q,p=2,o,n=this,m,l,k,j,i,h,g,f,e +var $async$$0=A.p(function(a,b){if(a===1){o=b +s=p}while(true)switch(s){case 0:f=n.a +if(f.d){q=A.pT(new A.b3("Can't re-open a database after closing it. Please create a new database connection and open that instead."),null,t.y) +s=1 +break}k=f.f +if(k!=null)A.pP(k.a,k.b) +j=f.e +i=t.y +h=A.aX(j.d,i) +s=3 +return A.c(t.bF.b(h)?h:A.f_(h,i),$async$$0) +case 3:if(b){q=f.c=!0 +s=1 +break}i=n.b +s=4 +return A.c(j.ca(i),$async$$0) +case 4:f.c=!0 +p=6 +s=9 +return A.c(f.bu(i),$async$$0) +case 9:q=!0 +s=1 +break +p=2 +s=8 +break +case 6:p=5 +e=o +m=A.E(e) +l=A.R(e) +f.f=new A.ap(m,l) +throw e +s=8 +break +case 5:s=2 +break +case 8:case 1:return A.m(q,r) +case 2:return A.l(o,r)}}) +return A.n($async$$0,r)}, +$S:47} +A.jB.prototype={ +$0(){var s=this.a +if(s.c&&!s.d){s.d=!0 +s.c=!1 +return s.e.p()}else return A.aX(null,t.H)}, +$S:3} +A.i5.prototype={ +aT(a){return this.e.aT(a)}, +ap(a){this.c=!0 +return A.aX(!0,t.y)}, +gaL(){return this.e.e}, +gc6(){return!1}, +gao(){return B.m}} +A.eY.prototype={ +gao(){return this.e.gao()}, +ap(a){var s,r,q,p=this,o=p.f +if(o!=null)return o.a +else{p.c=!0 +s=new A.k($.i,t.k) +r=new A.a3(s,t.co) +p.f=r +q=p.e;++q.b +q.b6(new A.mj(p,r),t.P) +return s}}, +gaL(){return this.e.gaL()}, +aT(a){return this.e.aT(a)}, +p(){this.r.aU() +return A.aX(null,t.H)}} +A.mj.prototype={ +$0(){var s=0,r=A.o(t.P),q=this,p +var $async$$0=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:q.b.L(!0) +p=q.a +s=2 +return A.c(p.r.a,$async$$0) +case 2:--p.e.b +return A.m(null,r)}}) +return A.n($async$$0,r)}, +$S:14} +A.d8.prototype={ +gjC(a){var s=this.b +return new A.D(s,new A.kv(this),A.Q(s).h("D<1,aa>"))}} +A.kv.prototype={ +$1(a){var s,r,q,p,o,n,m,l=A.a4(t.N,t.z) +for(s=this.a,r=s.a,q=r.length,s=s.c,p=J.V(a),o=0;o")).gG(0)) +q.toString +q.a7()}p.q(0,a,s)}return new A.ap(s,A.h(A.r(n.call(null,r)))===0)}} +A.fc.prototype={} +A.kr.prototype={ +jO(){var s,r,q,p,o,n +for(s=this.b,r=s.gaO(),q=A.t(r),r=new A.b0(J.M(r.a),r.b,q.h("b0<1,2>")),q=q.y[1];r.k();){p=r.a +if(p==null)p=q.a(p) +o=p.c +if(!o.d){n=$.e_().a +if(n!=null)n.unregister(p) +if(!o.d){o.d=!0 +if(!o.c){n=o.b +A.h(A.r(n.c.id.call(null,n.b))) +o.c=!0}n=o.b +n.ba() +A.h(A.r(n.c.to.call(null,n.b)))}p=p.b +if(!p.e)B.c.A(p.c.d,o)}}s.c1(0)}} +A.jN.prototype={ +$1(a){return Date.now()}, +$S:49} +A.o_.prototype={ +$1(a){var s=a.i(0,0) +if(typeof s=="number")return this.a.$1(s) +else return null}, +$S:26} +A.he.prototype={ +gi8(){var s=this.a +s===$&&A.G() +return s}, +gao(){if(this.b){var s=this.a +s===$&&A.G() +s=B.m!==s.gao()}else s=!1 +if(s)throw A.a(A.jO("LazyDatabase created with "+B.m.j(0)+", but underlying database is "+this.gi8().gao().j(0)+".")) +return B.m}, +hV(){var s,r,q=this +if(q.b)return A.aX(null,t.H) +else{s=q.d +if(s!=null)return s.a +else{s=new A.k($.i,t.D) +r=q.d=new A.a3(s,t.h) +A.jZ(q.e,t.x).bH(new A.kf(q,r),r.gjJ(),t.P) +return s}}}, +cO(){var s=this.a +s===$&&A.G() +return s.cO()}, +cP(){var s=this.a +s===$&&A.G() +return s.cP()}, +ap(a){return this.hV().bG(new A.kg(this,a),t.y)}, +av(a){var s=this.a +s===$&&A.G() +return s.av(a)}, +a8(a,b){var s=this.a +s===$&&A.G() +return s.a8(a,b)}, +cf(a,b){var s=this.a +s===$&&A.G() +return s.cf(a,b)}, +aw(a,b){var s=this.a +s===$&&A.G() +return s.aw(a,b)}, +ad(a,b){var s=this.a +s===$&&A.G() +return s.ad(a,b)}, +p(){if(this.b){var s=this.a +s===$&&A.G() +return s.p()}else return A.aX(null,t.H)}} +A.kf.prototype={ +$1(a){var s=this.a +s.a!==$&&A.pt() +s.a=a +s.b=!0 +this.b.aU()}, +$S:51} +A.kg.prototype={ +$1(a){var s=this.a.a +s===$&&A.G() +return s.ap(this.b)}, +$S:52} +A.bi.prototype={ +cr(a,b){var s=this.a,r=new A.k($.i,t.D) +this.a=r +r=new A.kj(a,new A.a3(r,t.h),b) +if(s!=null)return s.bG(new A.kk(r,b),b) +else return r.$0()}} +A.kj.prototype={ +$0(){return A.jZ(this.a,this.c).aj(this.b.gjI())}, +$S(){return this.c.h("C<0>()")}} +A.kk.prototype={ +$1(a){return this.a.$0()}, +$S(){return this.b.h("C<0>(~)")}} +A.lD.prototype={ +$1(a){var s,r=this,q=a.data +if(r.a&&J.X(q,"_disconnect")){s=r.b.a +s===$&&A.G() +s=s.a +s===$&&A.G() +s.p()}else{s=r.b.a +if(r.c){s===$&&A.G() +s=s.a +s===$&&A.G() +s.v(0,B.a3.ej(t.c.a(q)))}else{s===$&&A.G() +s=s.a +s===$&&A.G() +s.v(0,A.rC(q))}}}, +$S:10} +A.lE.prototype={ +$1(a){var s=this.b +if(this.a)s.postMessage(B.a3.dk(t.fJ.a(a))) +else s.postMessage(A.xj(a))}, +$S:7} +A.lF.prototype={ +$0(){if(this.a)this.b.postMessage("_disconnect") +this.b.close()}, +$S:0} +A.jy.prototype={ +U(){A.aB(this.a,"message",new A.jA(this),!1)}, +ak(a){return this.is(a)}, +is(a6){var s=0,r=A.o(t.H),q=1,p,o=this,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5 +var $async$ak=A.p(function(a7,a8){if(a7===1){p=a8 +s=q}while(true)switch(s){case 0:a3={} +k=a6 instanceof A.dc +j=k?a6.a:null +s=k?3:4 +break +case 3:a3.a=a3.b=!1 +s=5 +return A.c(o.b.cr(new A.jz(a3,o),t.P),$async$ak) +case 5:i=o.c.a.i(0,j) +h=A.d([],t.L) +g=!1 +s=a3.b?6:7 +break +case 6:a5=J +s=8 +return A.c(A.dY(),$async$ak) +case 8:k=a5.M(a8) +case 9:if(!k.k()){s=10 +break}f=k.gm() +h.push(new A.ap(B.F,f)) +if(f===j)g=!0 +s=9 +break +case 10:case 7:s=i!=null?11:13 +break +case 11:k=i.a +e=k===B.w||k===B.E +g=k===B.ak||k===B.al +s=12 +break +case 13:a5=a3.a +if(a5){s=14 +break}else a8=a5 +s=15 +break +case 14:s=16 +return A.c(A.dW(j),$async$ak) +case 16:case 15:e=a8 +case 12:k=t.m.a(self) +d="Worker" in k +f=a3.b +c=a3.a +new A.eb(d,f,"SharedArrayBuffer" in k,c,h,B.v,e,g).di(o.a) +s=2 +break +case 4:if(a6 instanceof A.de){o.c.eT(a6) +s=2 +break}k=a6 instanceof A.eE +b=k?a6.a:null +s=k?17:18 +break +case 17:s=19 +return A.c(A.hT(b),$async$ak) +case 19:a=a8 +o.a.postMessage(!0) +s=20 +return A.c(a.U(),$async$ak) +case 20:s=2 +break +case 18:n=null +m=null +a0=a6 instanceof A.fU +if(a0){a1=a6.a +n=a1.a +m=a1.b}s=a0?21:22 +break +case 21:q=24 +case 27:switch(n){case B.am:s=29 +break +case B.F:s=30 +break +default:s=28 +break}break +case 29:s=31 +return A.c(A.o5(m),$async$ak) +case 31:s=28 +break +case 30:s=32 +return A.c(A.fu(m),$async$ak) +case 32:s=28 +break +case 28:a6.di(o.a) +q=1 +s=26 +break +case 24:q=23 +a4=p +l=A.E(a4) +new A.dp(J.aU(l)).di(o.a) +s=26 +break +case 23:s=1 +break +case 26:s=2 +break +case 22:s=2 +break +case 2:return A.m(null,r) +case 1:return A.l(p,r)}}) +return A.n($async$ak,r)}} +A.jA.prototype={ +$1(a){this.a.ak(A.oO(t.m.a(a.data)))}, +$S:1} +A.jz.prototype={ +$0(){var s=0,r=A.o(t.P),q=this,p,o,n,m,l +var $async$$0=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:o=q.b +n=o.d +m=q.a +s=n!=null?2:4 +break +case 2:m.b=n.b +m.a=n.a +s=3 +break +case 4:l=m +s=5 +return A.c(A.cP(),$async$$0) +case 5:l.b=b +s=6 +return A.c(A.iQ(),$async$$0) +case 6:p=b +m.a=p +o.d=new A.lp(p,m.b) +case 3:return A.m(null,r)}}) +return A.n($async$$0,r)}, +$S:14} +A.d7.prototype={ +af(){return"ProtocolVersion."+this.b}} +A.lr.prototype={ +dj(a){this.aC(new A.lu(a))}, +eS(a){this.aC(new A.lt(a))}, +di(a){this.aC(new A.ls(a))}} +A.lu.prototype={ +$2(a,b){var s=b==null?B.A:b +this.a.postMessage(a,s)}, +$S:19} +A.lt.prototype={ +$2(a,b){var s=b==null?B.A:b +this.a.postMessage(a,s)}, +$S:19} +A.ls.prototype={ +$2(a,b){var s=b==null?B.A:b +this.a.postMessage(a,s)}, +$S:19} +A.je.prototype={} +A.c7.prototype={ +aC(a){var s=this +A.dP(a,"SharedWorkerCompatibilityResult",A.d([s.e,s.f,s.r,s.c,s.d,A.pN(s.a),s.b.c],t.f),null)}} +A.dp.prototype={ +aC(a){A.dP(a,"Error",this.a,null)}, +j(a){return"Error in worker: "+this.a}, +$ia5:1} +A.de.prototype={ +aC(a){var s,r,q=this,p={} +p.sqlite=q.a.j(0) +s=q.b +p.port=s +p.storage=q.c.b +p.database=q.d +r=q.e +p.initPort=r +p.migrations=q.r +p.new_serialization=q.w +p.v=q.f.c +s=A.d([s],t.W) +if(r!=null)s.push(r) +A.dP(a,"ServeDriftDatabase",p,s)}} +A.dc.prototype={ +aC(a){A.dP(a,"RequestCompatibilityCheck",this.a,null)}} +A.eb.prototype={ +aC(a){var s=this,r={} +r.supportsNestedWorkers=s.e +r.canAccessOpfs=s.f +r.supportsIndexedDb=s.w +r.supportsSharedArrayBuffers=s.r +r.indexedDbExists=s.c +r.opfsExists=s.d +r.existing=A.pN(s.a) +r.v=s.b.c +A.dP(a,"DedicatedWorkerCompatibilityResult",r,null)}} +A.eE.prototype={ +aC(a){A.dP(a,"StartFileSystemServer",this.a,null)}} +A.fU.prototype={ +aC(a){var s=this.a +A.dP(a,"DeleteDatabase",A.d([s.a.b,s.b],t.s),null)}} +A.o2.prototype={ +$1(a){this.b.transaction.abort() +this.a.a=!1}, +$S:10} +A.og.prototype={ +$1(a){return t.m.a(a[1])}, +$S:56} +A.fX.prototype={ +eT(a){var s=a.w +this.a.hg(a.d,new A.jL(this,a)).hv(A.uU(a.b,a.f.c>=1,s),!s)}, +aX(a,b,c,d,e){return this.kk(a,b,c,d,e)}, +kk(a,b,c,d,a0){var s=0,r=A.o(t.x),q,p=this,o,n,m,l,k,j,i,h,g,f,e +var $async$aX=A.p(function(a1,a2){if(a1===1)return A.l(a2,r) +while(true)switch(s){case 0:s=3 +return A.c(A.lz(d),$async$aX) +case 3:f=a2 +e=null +case 4:switch(a0.a){case 0:s=6 +break +case 1:s=7 +break +case 3:s=8 +break +case 2:s=9 +break +case 4:s=10 +break +default:s=11 +break}break +case 6:s=12 +return A.c(A.hz("drift_db/"+a),$async$aX) +case 12:o=a2 +e=o.gb9() +s=5 +break +case 7:s=13 +return A.c(p.cw(a),$async$aX) +case 13:o=a2 +e=o.gb9() +s=5 +break +case 8:case 9:s=14 +return A.c(A.h7(a),$async$aX) +case 14:o=a2 +e=o.gb9() +s=5 +break +case 10:o=A.oz(null) +s=5 +break +case 11:o=null +case 5:s=c!=null&&o.ck("/database",0)===0?15:16 +break +case 15:n=c.$0() +s=17 +return A.c(t.eY.b(n)?n:A.f_(n,t.aD),$async$aX) +case 17:m=a2 +if(m!=null){l=o.aY(new A.eC("/database"),4).a +l.bj(m,0) +l.cl()}case 16:n=f.a +n=n.b +k=n.c0(B.i.a5(o.a),1) +j=n.c.e +i=j.a +j.q(0,i,o) +h=A.h(A.r(n.y.call(null,k,i,1))) +n=$.rT() +n.a.set(o,h) +n=A.ul(t.N,t.eT) +g=new A.hV(new A.nK(f,"/database",null,p.b,!0,b,new A.kr(n)),!1,!0,new A.bi(),new A.bi()) +if(e!=null){q=A.tO(g,new A.m8(e,g)) +s=1 +break}else{q=g +s=1 +break}case 1:return A.m(q,r)}}) +return A.n($async$aX,r)}, +cw(a){return this.iz(a)}, +iz(a){var s=0,r=A.o(t.aT),q,p,o,n,m,l,k,j,i +var $async$cw=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:k=self +j=new k.SharedArrayBuffer(8) +i=k.Int32Array +i=t.ha.a(A.dV(i,[j])) +k.Atomics.store(i,0,-1) +i={clientVersion:1,root:"drift_db/"+a,synchronizationBuffer:j,communicationBuffer:new k.SharedArrayBuffer(67584)} +p=new k.Worker(A.eI().j(0)) +new A.eE(i).dj(p) +s=3 +return A.c(new A.eX(p,"message",!1,t.fF).gG(0),$async$cw) +case 3:o=A.qf(i.synchronizationBuffer) +i=i.communicationBuffer +n=A.qi(i,65536,2048) +k=k.Uint8Array +k=t.Z.a(A.dV(k,[i])) +m=A.jo("/",$.cR()) +l=$.iS() +q=new A.dn(o,new A.bj(i,n,k),m,l,"dart-sqlite3-vfs") +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$cw,r)}} +A.jL.prototype={ +$0(){var s=this.b,r=s.e,q=r!=null?new A.jI(r):null,p=this.a,o=A.uH(new A.he(new A.jJ(p,s,q)),!1,!0),n=new A.k($.i,t.D),m=new A.dd(s.c,o,new A.a8(n,t.F)) +n.aj(new A.jK(p,s,m)) +return m}, +$S:57} +A.jI.prototype={ +$0(){var s=new A.k($.i,t.fX),r=this.a +r.postMessage(!0) +r.onmessage=A.bc(new A.jH(new A.a3(s,t.fu))) +return s}, +$S:58} +A.jH.prototype={ +$1(a){var s=t.dE.a(a.data),r=s==null?null:s +this.a.L(r)}, +$S:10} +A.jJ.prototype={ +$0(){var s=this.b +return this.a.aX(s.d,s.r,this.c,s.a,s.c)}, +$S:59} +A.jK.prototype={ +$0(){this.a.a.A(0,this.b.d) +this.c.b.hy()}, +$S:9} +A.m8.prototype={ +c2(a){return this.jG(a)}, +jG(a){var s=0,r=A.o(t.H),q=this,p +var $async$c2=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:s=2 +return A.c(a.p(),$async$c2) +case 2:s=q.b===a?3:4 +break +case 3:p=q.a.$0() +s=5 +return A.c(p instanceof A.k?p:A.f_(p,t.H),$async$c2) +case 5:case 4:return A.m(null,r)}}) +return A.n($async$c2,r)}} +A.dd.prototype={ +hv(a,b){var s,r,q;++this.c +s=t.X +s=A.ve(new A.kD(this),s,s).gjE().$1(a.ghD()) +r=a.$ti +q=new A.e7(r.h("e7<1>")) +q.b=new A.eR(q,a.ghz()) +q.a=new A.eS(s,q,r.h("eS<1>")) +this.b.hw(q,b)}} +A.kD.prototype={ +$1(a){var s=this.a +if(--s.c===0)s.d.aU() +s=a.a +if((s.e&2)!==0)A.y(A.B("Stream is already closed")) +s.eW()}, +$S:60} +A.lp.prototype={} +A.ji.prototype={ +$1(a){this.a.L(this.c.a(this.b.result))}, +$S:1} +A.jj.prototype={ +$1(a){var s=this.b.error +if(s==null)s=a +this.a.aJ(s)}, +$S:1} +A.jk.prototype={ +$1(a){var s=this.b.error +if(s==null)s=a +this.a.aJ(s)}, +$S:1} +A.kN.prototype={ +U(){A.aB(this.a,"connect",new A.kS(this),!1)}, +dV(a){return this.iC(a)}, +iC(a){var s=0,r=A.o(t.H),q=this,p,o +var $async$dV=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:p=a.ports +o=J.aO(t.cl.b(p)?p:new A.ah(p,A.Q(p).h("ah<1,A>")),0) +o.start() +A.aB(o,"message",new A.kO(q,o),!1) +return A.m(null,r)}}) +return A.n($async$dV,r)}, +cA(a,b){return this.iA(a,b)}, +iA(a,b){var s=0,r=A.o(t.H),q=1,p,o=this,n,m,l,k,j,i,h,g +var $async$cA=A.p(function(c,d){if(c===1){p=d +s=q}while(true)switch(s){case 0:q=3 +n=A.oO(t.m.a(b.data)) +m=n +l=null +i=m instanceof A.dc +if(i)l=m.a +s=i?7:8 +break +case 7:s=9 +return A.c(o.bW(l),$async$cA) +case 9:k=d +k.eS(a) +s=6 +break +case 8:if(m instanceof A.de&&B.w===m.c){o.c.eT(n) +s=6 +break}if(m instanceof A.de){i=o.b +i.toString +n.dj(i) +s=6 +break}i=A.K("Unknown message",null) +throw A.a(i) +case 6:q=1 +s=5 +break +case 3:q=2 +g=p +j=A.E(g) +new A.dp(J.aU(j)).eS(a) +a.close() +s=5 +break +case 2:s=1 +break +case 5:return A.m(null,r) +case 1:return A.l(p,r)}}) +return A.n($async$cA,r)}, +bW(a){return this.jf(a)}, +jf(a){var s=0,r=A.o(t.fM),q,p=this,o,n,m,l,k,j,i,h,g,f,e,d,c +var $async$bW=A.p(function(b,a0){if(b===1)return A.l(a0,r) +while(true)switch(s){case 0:l={} +k=t.m.a(self) +j="Worker" in k +s=3 +return A.c(A.iQ(),$async$bW) +case 3:i=a0 +s=!j?4:6 +break +case 4:l=p.c.a.i(0,a) +if(l==null)o=null +else{l=l.a +l=l===B.w||l===B.E +o=l}h=A +g=!1 +f=!1 +e=i +d=B.B +c=B.v +s=o==null?7:9 +break +case 7:s=10 +return A.c(A.dW(a),$async$bW) +case 10:s=8 +break +case 9:a0=o +case 8:q=new h.c7(g,f,e,d,c,a0,!1) +s=1 +break +s=5 +break +case 6:n=p.b +if(n==null)n=p.b=new k.Worker(A.eI().j(0)) +new A.dc(a).dj(n) +k=new A.k($.i,t.a9) +l.a=l.b=null +m=new A.kR(l,new A.a3(k,t.bi),i) +l.b=A.aB(n,"message",new A.kP(m),!1) +l.a=A.aB(n,"error",new A.kQ(p,m,n),!1) +q=k +s=1 +break +case 5:case 1:return A.m(q,r)}}) +return A.n($async$bW,r)}} +A.kS.prototype={ +$1(a){return this.a.dV(a)}, +$S:1} +A.kO.prototype={ +$1(a){return this.a.cA(this.b,a)}, +$S:1} +A.kR.prototype={ +$4(a,b,c,d){var s,r=this.b +if((r.a.a&30)===0){r.L(new A.c7(!0,a,this.c,d,B.v,c,b)) +r=this.a +s=r.b +if(s!=null)s.J() +r=r.a +if(r!=null)r.J()}}, +$S:61} +A.kP.prototype={ +$1(a){var s=t.ed.a(A.oO(t.m.a(a.data))) +this.a.$4(s.f,s.d,s.c,s.a)}, +$S:1} +A.kQ.prototype={ +$1(a){this.b.$4(!1,!1,!1,B.B) +this.c.terminate() +this.a.b=null}, +$S:1} +A.ca.prototype={ +af(){return"WasmStorageImplementation."+this.b}} +A.bJ.prototype={ +af(){return"WebStorageApi."+this.b}} +A.hV.prototype={} +A.nK.prototype={ +kl(){var s=this.Q.ca(this.as) +return s}, +bt(){var s=0,r=A.o(t.H),q +var $async$bt=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:q=A.f_(null,t.H) +s=2 +return A.c(q,$async$bt) +case 2:return A.m(null,r)}}) +return A.n($async$bt,r)}, +bv(a,b){return this.j3(a,b)}, +j3(a,b){var s=0,r=A.o(t.z),q=this +var $async$bv=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:q.kE(a,b) +s=!q.a?2:3 +break +case 2:s=4 +return A.c(q.bt(),$async$bv) +case 4:case 3:return A.m(null,r)}}) +return A.n($async$bv,r)}, +a8(a,b){return this.kz(a,b)}, +kz(a,b){var s=0,r=A.o(t.H),q=this +var $async$a8=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:s=2 +return A.c(q.bv(a,b),$async$a8) +case 2:return A.m(null,r)}}) +return A.n($async$a8,r)}, +aw(a,b){return this.kA(a,b)}, +kA(a,b){var s=0,r=A.o(t.S),q,p=this,o,n +var $async$aw=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:s=3 +return A.c(p.bv(a,b),$async$aw) +case 3:o=p.b.b +n=t.C.a(o.a.x2.call(null,o.b)) +q=A.h(self.Number(n)) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$aw,r)}, +d8(a,b){return this.kD(a,b)}, +kD(a,b){var s=0,r=A.o(t.S),q,p=this,o +var $async$d8=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:s=3 +return A.c(p.bv(a,b),$async$d8) +case 3:o=p.b.b +q=A.h(A.r(o.a.x1.call(null,o.b))) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$d8,r)}, +av(a){return this.kx(a)}, +kx(a){var s=0,r=A.o(t.H),q=this +var $async$av=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:q.kw(a) +s=!q.a?2:3 +break +case 2:s=4 +return A.c(q.bt(),$async$av) +case 4:case 3:return A.m(null,r)}}) +return A.n($async$av,r)}, +p(){var s=0,r=A.o(t.H),q=this +var $async$p=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:s=2 +return A.c(q.hH(),$async$p) +case 2:q.b.a7() +s=3 +return A.c(q.bt(),$async$p) +case 3:return A.m(null,r)}}) +return A.n($async$p,r)}} +A.fP.prototype={ +fS(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var s +A.rw("absolute",A.d([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o],t.d4)) +s=this.a +s=s.T(a)>0&&!s.ab(a) +if(s)return a +s=this.b +return this.h8(0,s==null?A.pi():s,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)}, +aH(a){var s=null +return this.fS(a,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +h8(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var s=A.d([b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q],t.d4) +A.rw("join",s) +return this.kf(new A.eL(s,t.eJ))}, +ke(a,b,c){var s=null +return this.h8(0,b,c,s,s,s,s,s,s,s,s,s,s,s,s,s,s)}, +kf(a){var s,r,q,p,o,n,m,l,k +for(s=a.gt(0),r=new A.eK(s,new A.jp()),q=this.a,p=!1,o=!1,n="";r.k();){m=s.gm() +if(q.ab(m)&&o){l=A.d6(m,q) +k=n.charCodeAt(0)==0?n:n +n=B.a.n(k,0,q.bF(k,!0)) +l.b=n +if(q.c7(n))l.e[0]=q.gbl() +n=""+l.j(0)}else if(q.T(m)>0){o=!q.ab(m) +n=""+m}else{if(!(m.length!==0&&q.eh(m[0])))if(p)n+=q.gbl() +n+=m}p=q.c7(m)}return n.charCodeAt(0)==0?n:n}, +aP(a,b){var s=A.d6(b,this.a),r=s.d,q=A.Q(r).h("aT<1>") +q=A.ay(new A.aT(r,new A.jq(),q),!0,q.h("f.E")) +s.d=q +r=s.b +if(r!=null)B.c.cY(q,0,r) +return s.d}, +bB(a){var s +if(!this.iB(a))return a +s=A.d6(a,this.a) +s.eE() +return s.j(0)}, +iB(a){var s,r,q,p,o,n,m,l,k=this.a,j=k.T(a) +if(j!==0){if(k===$.fx())for(s=0;s0)return o.bB(a) +if(m.T(a)<=0||m.ab(a))a=o.aH(a) +if(m.T(a)<=0&&m.T(b)>0)throw A.a(A.q5(n+a+'" from "'+b+'".')) +s=A.d6(b,m) +s.eE() +r=A.d6(a,m) +r.eE() +q=s.d +if(q.length!==0&&J.X(q[0],"."))return r.j(0) +q=s.b +p=r.b +if(q!=p)q=q==null||p==null||!m.eG(q,p) +else q=!1 +if(q)return r.j(0) +while(!0){q=s.d +if(q.length!==0){p=r.d +q=p.length!==0&&m.eG(q[0],p[0])}else q=!1 +if(!q)break +B.c.d6(s.d,0) +B.c.d6(s.e,1) +B.c.d6(r.d,0) +B.c.d6(r.e,1)}q=s.d +if(q.length!==0&&J.X(q[0],".."))throw A.a(A.q5(n+a+'" from "'+b+'".')) +q=t.N +B.c.ev(r.d,0,A.b_(s.d.length,"..",!1,q)) +p=r.e +p[0]="" +B.c.ev(p,1,A.b_(s.d.length,m.gbl(),!1,q)) +m=r.d +q=m.length +if(q===0)return"." +if(q>1&&J.X(B.c.gC(m),".")){B.c.hi(r.d) +m=r.e +m.pop() +m.pop() +m.push("")}r.b="" +r.hj() +return r.j(0)}, +kt(a){return this.eJ(a,null)}, +iw(a,b){var s,r,q,p,o,n,m,l,k=this +a=a +b=b +r=k.a +q=r.T(a)>0 +p=r.T(b)>0 +if(q&&!p){b=k.aH(b) +if(r.ab(a))a=k.aH(a)}else if(p&&!q){a=k.aH(a) +if(r.ab(b))b=k.aH(b)}else if(p&&q){o=r.ab(b) +n=r.ab(a) +if(o&&!n)b=k.aH(b) +else if(n&&!o)a=k.aH(a)}m=k.ix(a,b) +if(m!==B.n)return m +s=null +try{s=k.eJ(b,a)}catch(l){if(A.E(l) instanceof A.ex)return B.k +else throw l}if(r.T(s)>0)return B.k +if(J.X(s,"."))return B.W +if(J.X(s,".."))return B.k +return J.ae(s)>=3&&J.tL(s,"..")&&r.D(J.tE(s,2))?B.k:B.X}, +ix(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=this +if(a===".")a="" +s=e.a +r=s.T(a) +q=s.T(b) +if(r!==q)return B.k +for(p=0;pq.aP(0,s).length?s:r}} +A.jp.prototype={ +$1(a){return a!==""}, +$S:2} +A.jq.prototype={ +$1(a){return a.length!==0}, +$S:2} +A.o0.prototype={ +$1(a){return a==null?"null":'"'+a+'"'}, +$S:63} +A.dD.prototype={ +j(a){return this.a}} +A.dE.prototype={ +j(a){return this.a}} +A.ka.prototype={ +hu(a){var s=this.T(a) +if(s>0)return B.a.n(a,0,s) +return this.ab(a)?a[0]:null}, +hh(a){var s,r=null,q=a.length +if(q===0)return A.aj(r,r,r,r) +s=A.jo(r,this).aP(0,a) +if(this.D(a.charCodeAt(q-1)))B.c.v(s,"") +return A.aj(r,r,s,r)}, +cR(a,b){return a===b}, +eG(a,b){return a===b}} +A.kp.prototype={ +geu(){var s=this.d +if(s.length!==0)s=J.X(B.c.gC(s),"")||!J.X(B.c.gC(this.e),"") +else s=!1 +return s}, +hj(){var s,r,q=this +while(!0){s=q.d +if(!(s.length!==0&&J.X(B.c.gC(s),"")))break +B.c.hi(q.d) +q.e.pop()}s=q.e +r=s.length +if(r!==0)s[r-1]=""}, +eE(){var s,r,q,p,o,n,m=this,l=A.d([],t.s) +for(s=m.d,r=s.length,q=0,p=0;p0){s=B.a.aV(a,"\\",s+1) +if(s>0)return s}return r}if(r<3)return 0 +if(!A.rH(a.charCodeAt(0)))return 0 +if(a.charCodeAt(1)!==58)return 0 +r=a.charCodeAt(2) +if(!(r===47||r===92))return 0 +return 3}, +T(a){return this.bF(a,!1)}, +ab(a){return this.T(a)===1}, +d3(a){var s,r +if(a.gZ()!==""&&a.gZ()!=="file")throw A.a(A.K("Uri "+a.j(0)+" must have scheme 'file:'.",null)) +s=a.gac() +if(a.gbc()===""){if(s.length>=3&&B.a.u(s,"/")&&A.rD(s,1)!=null)s=B.a.hl(s,"/","")}else s="\\\\"+a.gbc()+s +r=A.bd(s,"/","\\") +return A.p7(r,0,r.length,B.j,!1)}, +ec(a){var s,r,q=A.d6(a,this),p=q.b +p.toString +if(B.a.u(p,"\\\\")){s=new A.aT(A.d(p.split("\\"),t.s),new A.lQ(),t.U) +B.c.cY(q.d,0,s.gC(0)) +if(q.geu())B.c.v(q.d,"") +return A.aj(s.gG(0),null,q.d,"file")}else{if(q.d.length===0||q.geu())B.c.v(q.d,"") +p=q.d +r=q.b +r.toString +r=A.bd(r,"/","") +B.c.cY(p,0,A.bd(r,"\\","")) +return A.aj(null,null,q.d,"file")}}, +cR(a,b){var s +if(a===b)return!0 +if(a===47)return b===92 +if(a===92)return b===47 +if((a^b)!==32)return!1 +s=a|32 +return s>=97&&s<=122}, +eG(a,b){var s,r +if(a===b)return!0 +s=a.length +if(s!==b.length)return!1 +for(r=0;r")).aq(0,", ")}return q.charCodeAt(0)==0?q:q}, +$ia5:1} +A.kV.prototype={ +$1(a){if(t.p.b(a))return"blob ("+a.length+" bytes)" +else return J.aU(a)}, +$S:64} +A.cl.prototype={} +A.kx.prototype={} +A.hD.prototype={} +A.ky.prototype={} +A.kA.prototype={} +A.kz.prototype={} +A.da.prototype={} +A.db.prototype={} +A.h2.prototype={ +a7(){var s,r,q,p,o,n,m +for(s=this.d,r=s.length,q=0;q255)A.y(A.ag(e,"functionName","Must not exceed 255 bytes when utf-8 encoded")) +s=new Uint8Array(A.iM(l)) +r=c?526337:2049 +q=m.a +p=q.c0(s,1) +m=A.cO(q.w,"call",[null,m.b,p,a.a,r,q.c.ks(new A.hv(new A.jw(d),n,n))]) +o=A.h(m) +q.e.call(null,p) +if(o!==0)A.iR(this,o,n,n,n)}, +a6(a,b,c,d){return this.fY(a,b,!0,c,d)}, +a7(){var s,r,q,p=this +if(p.e)return +$.e_().h_(p) +p.e=!0 +for(s=p.d,r=0;!1;++r)s[r].p() +s=p.b +q=s.a +q.c.r=null +q.Q.call(null,s.b,-1) +p.c.a7()}, +h1(a){var s,r,q,p,o=this,n=B.t +if(J.ae(n)===0){if(o.e)A.y(A.B("This database has already been closed")) +r=o.b +q=r.a +s=q.c0(B.i.a5(a),1) +p=A.h(A.cO(q.dx,"call",[null,r.b,s,0,0,0])) +q.e.call(null,s) +if(p!==0)A.iR(o,p,"executing",a,n)}else{s=o.d4(a,!0) +try{s.h2(new A.ct(n))}finally{s.a7()}}}, +iO(a,b,c,a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this +if(d.e)A.y(A.B("This database has already been closed")) +s=B.i.a5(a) +r=d.b +q=r.a +p=q.bx(s) +o=q.d +n=A.h(A.r(o.call(null,4))) +o=A.h(A.r(o.call(null,4))) +m=new A.lC(r,p,n,o) +l=A.d([],t.bb) +k=new A.jv(m,l) +for(r=s.length,q=q.b,j=0;j."))}return s}, +dt(a){$label0$0:{this.hW(a.a) +break $label0$0}}, +a7(){var s,r=this.c +if(!r.d){$.e_().h_(this) +r.a7() +s=this.b +if(!s.e)B.c.A(s.c.d,r)}}, +eR(a){var s=this +if(s.c.d)A.y(A.B(u.D)) +s.bR() +s.dt(a) +return s.j4()}, +h2(a){var s=this +if(s.c.d)A.y(A.B(u.D)) +s.bR() +s.dt(a) +s.ff()}} +A.jr.prototype={ +hY(){var s,r,q,p,o=A.a4(t.N,t.S) +for(s=this.a,r=s.length,q=0;q")).S(a,b,c,d)}, +aW(a,b,c){return this.S(a,null,b,c)}} +A.iZ.prototype={ +$0(){var s,r=this,q=r.c.next(),p=r.a +p.a=q +s=r.d +A.a0(q,t.m).bH(new A.j0(p,r.b,s,r),s.gfT(),t.P)}, +$S:0} +A.j0.prototype={ +$1(a){var s,r,q=this,p=a.done +if(p==null)p=null +s=a.value +r=q.c +if(p===!0){r.p() +q.a.a=null}else{r.v(0,s==null?q.b.$ti.c.a(s):s) +q.a.a=null +p=r.b +if(!((p&1)!==0?(r.gaS().e&4)!==0:(p&2)===0))q.d.$0()}}, +$S:10} +A.j_.prototype={ +$0(){var s,r +if(this.a.a==null){s=this.b +r=s.b +s=!((r&1)!==0?(s.gaS().e&4)!==0:(r&2)===0)}else s=!1 +if(s)this.c.$0()}, +$S:0} +A.cF.prototype={ +J(){var s=0,r=A.o(t.H),q=this,p +var $async$J=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:p=q.b +if(p!=null)p.J() +p=q.c +if(p!=null)p.J() +q.c=q.b=null +return A.m(null,r)}}) +return A.n($async$J,r)}, +gm(){var s=this.a +return s==null?A.y(A.B("Await moveNext() first")):s}, +k(){var s,r,q=this,p=q.a +if(p!=null)p.continue() +p=new A.k($.i,t.k) +s=new A.a8(p,t.fa) +r=q.d +q.b=A.aB(r,"success",new A.m9(q,s),!1) +q.c=A.aB(r,"error",new A.ma(q,s),!1) +return p}} +A.m9.prototype={ +$1(a){var s,r=this.a +r.J() +s=r.$ti.h("1?").a(r.d.result) +r.a=s +this.b.L(s!=null)}, +$S:1} +A.ma.prototype={ +$1(a){var s=this.a +s.J() +s=s.d.error +if(s==null)s=a +this.b.aJ(s)}, +$S:1} +A.jg.prototype={ +$1(a){this.a.L(this.c.a(this.b.result))}, +$S:1} +A.jh.prototype={ +$1(a){var s=this.b.error +if(s==null)s=a +this.a.aJ(s)}, +$S:1} +A.jl.prototype={ +$1(a){this.a.L(this.c.a(this.b.result))}, +$S:1} +A.jm.prototype={ +$1(a){var s=this.b.error +if(s==null)s=a +this.a.aJ(s)}, +$S:1} +A.jn.prototype={ +$1(a){var s=this.b.error +if(s==null)s=a +this.a.aJ(s)}, +$S:1} +A.hX.prototype={ +hO(a){var s,r,q,p,o,n,m=self,l=m.Object.keys(a.exports) +l=B.c.gt(l) +s=this.b +r=t.m +q=this.a +p=t.g +for(;l.k();){o=A.ad(l.gm()) +n=a.exports[o] +if(typeof n==="function")q.q(0,o,p.a(n)) +else if(n instanceof m.WebAssembly.Global)s.q(0,o,r.a(n))}}} +A.lx.prototype={ +$2(a,b){var s={} +this.a[a]=s +b.aa(0,new A.lw(s))}, +$S:67} +A.lw.prototype={ +$2(a,b){this.a[a]=b}, +$S:68} +A.hY.prototype={} +A.dn.prototype={ +j0(a,b){var s,r,q=this.e +q.hq(b) +s=this.d.b +r=self +r.Atomics.store(s,1,-1) +r.Atomics.store(s,0,a.a) +A.tP(s,0) +r.Atomics.wait(s,1,-1) +s=r.Atomics.load(s,1) +if(s!==0)throw A.a(A.cB(s)) +return a.d.$1(q)}, +a2(a,b){var s=t.cb +return this.j0(a,b,s,s)}, +ck(a,b){return this.a2(B.H,new A.aQ(a,b,0,0)).a}, +da(a,b){this.a2(B.G,new A.aQ(a,b,0,0))}, +dc(a){var s=this.r.aH(a) +if($.iT().iw("/",s)!==B.X)throw A.a(B.ai) +return s}, +aY(a,b){var s=a.a,r=this.a2(B.S,new A.aQ(s==null?A.oy(this.b,"/"):s,b,0,0)) +return new A.cJ(new A.hW(this,r.b),r.a)}, +de(a){this.a2(B.M,new A.S(B.b.I(a.a,1000),0,0))}, +p(){this.a2(B.I,B.h)}} +A.hW.prototype={ +geP(){return 2048}, +eI(a,b){var s,r,q,p,o,n,m,l,k,j=a.length +for(s=this.a,r=this.b,q=s.e.a,p=t.Z,o=0;j>0;){n=Math.min(65536,j) +j-=n +m=s.a2(B.Q,new A.S(r,b+o,n)).a +l=self.Uint8Array +k=[q] +k.push(0) +k.push(m) +A.hc(a,"set",p.a(A.dV(l,k)),o,null,null) +o+=m +if(m0;){o=Math.min(65536,k) +if(o===k)n=a +else{m=a.buffer +l=a.byteOffset +n=new Uint8Array(m,l,o)}A.hc(r,"set",n,0,null,null) +s.a2(B.L,new A.S(q,b+p,o)) +p+=o +k-=o}}} +A.kC.prototype={} +A.bj.prototype={ +hq(a){var s,r +if(!(a instanceof A.aW))if(a instanceof A.S){s=this.b +s.setInt32(0,a.a,!1) +s.setInt32(4,a.b,!1) +s.setInt32(8,a.c,!1) +if(a instanceof A.aQ){r=B.i.a5(a.d) +s.setInt32(12,r.length,!1) +B.e.b_(this.c,16,r)}}else throw A.a(A.H("Message "+a.j(0)))}} +A.ac.prototype={ +af(){return"WorkerOperation."+this.b}, +kr(a){return this.c.$1(a)}} +A.bw.prototype={} +A.aW.prototype={} +A.S.prototype={} +A.aQ.prototype={} +A.iw.prototype={} +A.eJ.prototype={ +bS(a,b){return this.iY(a,b)}, +fD(a){return this.bS(a,!1)}, +iY(a,b){var s=0,r=A.o(t.eg),q,p=this,o,n,m,l,k,j,i,h,g +var $async$bS=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:j=$.fz() +i=j.eJ(a,"/") +h=j.aP(0,i) +g=h.length +j=g>=1 +o=null +if(j){n=g-1 +m=B.c.a0(h,0,n) +o=h[n]}else m=null +if(!j)throw A.a(A.B("Pattern matching error")) +l=p.c +j=m.length,n=t.m,k=0 +case 3:if(!(k") +l=A.ay(new A.b9(j,m),!0,m.h("f.E")) +B.c.hB(l) +s=3 +return A.c(A.ox(new A.D(l,new A.j2(new A.j3(o,a),b),A.Q(l).h("D<1,C<~>>")),t.H),$async$b7) +case 3:s=b.c!==n.length?4:5 +break +case 4:k=new A.cF(p.objectStore("files").openCursor(a),t.V) +s=6 +return A.c(k.k(),$async$b7) +case 6:s=7 +return A.c(A.bg(k.gm().update({name:n.name,length:b.c}),t.X),$async$b7) +case 7:case 5:return A.m(null,r)}}) +return A.n($async$b7,r)}, +bi(a,b,c){return this.kG(0,b,c)}, +kG(a,b,c){var s=0,r=A.o(t.H),q=this,p,o,n,m,l,k +var $async$bi=A.p(function(d,e){if(d===1)return A.l(e,r) +while(true)switch(s){case 0:k=q.a +k.toString +p=k.transaction($.on(),"readwrite") +o=p.objectStore("files") +n=p.objectStore("blocks") +s=2 +return A.c(q.e0(p,b),$async$bi) +case 2:m=e +s=m.length>c?3:4 +break +case 3:s=5 +return A.c(A.bg(n.delete(q.iQ(b,B.b.I(c,4096)*4096+1)),t.X),$async$bi) +case 5:case 4:l=new A.cF(o.openCursor(b),t.V) +s=6 +return A.c(l.k(),$async$bi) +case 6:s=7 +return A.c(A.bg(l.gm().update({name:m.name,length:c}),t.X),$async$bi) +case 7:return A.m(null,r)}}) +return A.n($async$bi,r)}, +cU(a){return this.jM(a)}, +jM(a){var s=0,r=A.o(t.H),q=this,p,o,n +var $async$cU=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:n=q.a +n.toString +p=n.transaction(A.d(["files","blocks"],t.s),"readwrite") +o=q.e_(a,9007199254740992,0) +n=t.X +s=2 +return A.c(A.ox(A.d([A.bg(p.objectStore("blocks").delete(o),n),A.bg(p.objectStore("files").delete(a),n)],t.fG),t.H),$async$cU) +case 2:return A.m(null,r)}}) +return A.n($async$cU,r)}} +A.j4.prototype={ +$1(a){var s=t.m.a(this.a.result) +if(J.X(a.oldVersion,0)){s.createObjectStore("files",{autoIncrement:!0}).createIndex("fileName","name",{unique:!0}) +s.createObjectStore("blocks")}}, +$S:10} +A.j1.prototype={ +$1(a){if(a==null)throw A.a(A.ag(this.a,"fileId","File not found in database")) +else return a}, +$S:70} +A.j5.prototype={ +$0(){var s=0,r=A.o(t.H),q=this,p,o,n,m +var $async$$0=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:p=B.e +o=q.b +n=q.c +m=A +s=2 +return A.c(A.kB(t.m.a(q.a.value)),$async$$0) +case 2:p.b_(o,n,m.b1(b,0,q.d)) +return A.m(null,r)}}) +return A.n($async$$0,r)}, +$S:3} +A.j3.prototype={ +hr(a,b){var s=0,r=A.o(t.H),q=this,p,o,n,m,l,k +var $async$$2=A.p(function(c,d){if(c===1)return A.l(d,r) +while(true)switch(s){case 0:p=q.a +o=self +n=q.b +m=t.n +s=2 +return A.c(A.bg(p.openCursor(o.IDBKeyRange.only(A.d([n,a],m))),t.A),$async$$2) +case 2:l=d +k=new o.Blob(A.d([b],t.as)) +o=t.X +s=l==null?3:5 +break +case 3:s=6 +return A.c(A.bg(p.put(k,A.d([n,a],m)),o),$async$$2) +case 6:s=4 +break +case 5:s=7 +return A.c(A.bg(l.update(k),o),$async$$2) +case 7:case 4:return A.m(null,r)}}) +return A.n($async$$2,r)}, +$2(a,b){return this.hr(a,b)}, +$S:71} +A.j2.prototype={ +$1(a){var s=this.b.b.i(0,a) +s.toString +return this.a.$2(a,s)}, +$S:72} +A.mk.prototype={ +jj(a,b,c){B.e.b_(this.b.hg(a,new A.ml(this,a)),b,c)}, +jB(a,b){var s,r,q,p,o,n,m,l,k +for(s=b.length,r=0;rp)B.e.b_(s,0,A.b1(r.buffer,r.byteOffset+p,Math.min(4096,q-p))) +return s}, +$S:73} +A.it.prototype={} +A.d_.prototype={ +bX(a){var s=this +if(s.e||s.d.a==null)A.y(A.cB(10)) +if(a.ew(s.w)){s.fJ() +return a.d.a}else return A.aX(null,t.H)}, +fJ(){var s,r,q=this +if(q.f==null&&!q.w.gF(0)){s=q.w +r=q.f=s.gG(0) +s.A(0,r) +r.d.L(A.uc(r.gd7(),t.H).aj(new A.k5(q)))}}, +p(){var s=0,r=A.o(t.H),q,p=this,o,n +var $async$p=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:if(!p.e){o=p.bX(new A.dv(p.d.gb9(),new A.a8(new A.k($.i,t.D),t.F))) +p.e=!0 +q=o +s=1 +break}else{n=p.w +if(!n.gF(0)){q=n.gC(0).d.a +s=1 +break}}case 1:return A.m(q,r)}}) +return A.n($async$p,r)}, +bs(a){return this.ij(a)}, +ij(a){var s=0,r=A.o(t.S),q,p=this,o,n +var $async$bs=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:n=p.y +s=n.a4(a)?3:5 +break +case 3:n=n.i(0,a) +n.toString +q=n +s=1 +break +s=4 +break +case 5:s=6 +return A.c(p.d.cV(a),$async$bs) +case 6:o=c +o.toString +n.q(0,a,o) +q=o +s=1 +break +case 4:case 1:return A.m(q,r)}}) +return A.n($async$bs,r)}, +bQ(){var s=0,r=A.o(t.H),q=this,p,o,n,m,l,k,j,i,h,g +var $async$bQ=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:h=q.d +s=2 +return A.c(h.d1(),$async$bQ) +case 2:g=b +q.y.aI(0,g) +p=g.gel(),p=p.gt(p),o=q.r.d +case 3:if(!p.k()){s=4 +break}n=p.gm() +m=n.a +l=n.b +k=new A.bG(new Uint8Array(0),0) +s=5 +return A.c(h.bD(l),$async$bQ) +case 5:j=b +n=j.length +k.sl(0,n) +i=k.b +if(n>i)A.y(A.Y(n,0,i,null,null)) +B.e.P(k.a,0,n,j,0) +o.q(0,m,k) +s=3 +break +case 4:return A.m(null,r)}}) +return A.n($async$bQ,r)}, +ck(a,b){return this.r.d.a4(a)?1:0}, +da(a,b){var s=this +s.r.d.A(0,a) +if(!s.x.A(0,a))s.bX(new A.dt(s,a,new A.a8(new A.k($.i,t.D),t.F)))}, +dc(a){return $.fz().bB("/"+a)}, +aY(a,b){var s,r,q,p=this,o=a.a +if(o==null)o=A.oy(p.b,"/") +s=p.r +r=s.d.a4(o)?1:0 +q=s.aY(new A.eC(o),b) +if(r===0)if((b&8)!==0)p.x.v(0,o) +else p.bX(new A.cE(p,o,new A.a8(new A.k($.i,t.D),t.F))) +return new A.cJ(new A.il(p,q.a,o),0)}, +de(a){}} +A.k5.prototype={ +$0(){var s=this.a +s.f=null +s.fJ()}, +$S:9} +A.il.prototype={ +eQ(a,b){this.b.eQ(a,b)}, +geP(){return 0}, +d9(){return this.b.d>=2?1:0}, +cl(){}, +cm(){return this.b.cm()}, +dd(a){this.b.d=a +return null}, +df(a){}, +cn(a){var s=this,r=s.a +if(r.e||r.d.a==null)A.y(A.cB(10)) +s.b.cn(a) +if(!r.x.M(0,s.c))r.bX(new A.dv(new A.mz(s,a),new A.a8(new A.k($.i,t.D),t.F)))}, +dg(a){this.b.d=a +return null}, +bj(a,b){var s,r,q,p,o,n,m=this,l=m.a +if(l.e||l.d.a==null)A.y(A.cB(10)) +s=m.c +if(l.x.M(0,s)){m.b.bj(a,b) +return}r=l.r.d.i(0,s) +if(r==null)r=new A.bG(new Uint8Array(0),0) +q=A.b1(r.a.buffer,0,r.b) +m.b.bj(a,b) +p=new Uint8Array(a.length) +B.e.b_(p,0,a) +o=A.d([],t.gQ) +n=$.i +o.push(new A.it(b,p)) +l.bX(new A.cM(l,s,q,o,new A.a8(new A.k(n,t.D),t.F)))}, +$idl:1} +A.mz.prototype={ +$0(){var s=0,r=A.o(t.H),q,p=this,o,n,m +var $async$$0=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:o=p.a +n=o.a +m=n.d +s=3 +return A.c(n.bs(o.c),$async$$0) +case 3:q=m.bi(0,b,p.b) +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$$0,r)}, +$S:3} +A.ao.prototype={ +ew(a){a.dT(a.c,this,!1) +return!0}} +A.dv.prototype={ +V(){return this.w.$0()}} +A.dt.prototype={ +ew(a){var s,r,q,p +if(!a.gF(0)){s=a.gC(0) +for(r=this.x;s!=null;)if(s instanceof A.dt)if(s.x===r)return!1 +else s=s.gcc() +else if(s instanceof A.cM){q=s.gcc() +if(s.x===r){p=s.a +p.toString +p.e4(A.t(s).h("aF.E").a(s))}s=q}else if(s instanceof A.cE){if(s.x===r){r=s.a +r.toString +r.e4(A.t(s).h("aF.E").a(s)) +return!1}s=s.gcc()}else break}a.dT(a.c,this,!1) +return!0}, +V(){var s=0,r=A.o(t.H),q=this,p,o,n +var $async$V=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:p=q.w +o=q.x +s=2 +return A.c(p.bs(o),$async$V) +case 2:n=b +p.y.A(0,o) +s=3 +return A.c(p.d.cU(n),$async$V) +case 3:return A.m(null,r)}}) +return A.n($async$V,r)}} +A.cE.prototype={ +V(){var s=0,r=A.o(t.H),q=this,p,o,n,m +var $async$V=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:p=q.w +o=q.x +n=p.y +m=o +s=2 +return A.c(p.d.cS(o),$async$V) +case 2:n.q(0,m,b) +return A.m(null,r)}}) +return A.n($async$V,r)}} +A.cM.prototype={ +ew(a){var s,r=a.b===0?null:a.gC(0) +for(s=this.x;r!=null;)if(r instanceof A.cM)if(r.x===s){B.c.aI(r.z,this.z) +return!1}else r=r.gcc() +else if(r instanceof A.cE){if(r.x===s)break +r=r.gcc()}else break +a.dT(a.c,this,!1) +return!0}, +V(){var s=0,r=A.o(t.H),q=this,p,o,n,m,l,k +var $async$V=A.p(function(a,b){if(a===1)return A.l(b,r) +while(true)switch(s){case 0:m=q.y +l=new A.mk(m,A.a4(t.S,t.p),m.length) +for(m=q.z,p=m.length,o=0;o=2?1:0}, +cl(){if(this.c)this.a.d.A(0,this.b)}, +cm(){return this.a.d.i(0,this.b).b}, +dd(a){this.d=a}, +df(a){}, +cn(a){var s=this.a.d,r=this.b,q=s.i(0,r) +if(q==null){s.q(0,r,new A.bG(new Uint8Array(0),0)) +s.i(0,r).sl(0,a)}else q.sl(0,a)}, +dg(a){this.d=a}, +bj(a,b){var s,r=this.a.d,q=this.b,p=r.i(0,q) +if(p==null){p=new A.bG(new Uint8Array(0),0) +r.q(0,q,p)}s=b+a.length +if(s>p.b)p.sl(0,s) +p.ae(0,b,s,a)}} +A.cY.prototype={ +af(){return"FileType."+this.b}} +A.dg.prototype={ +dU(a,b){var s=this.e,r=b?1:0 +s[a.a]=r +A.ow(this.d,s,{at:0})}, +ck(a,b){var s,r=$.oo().i(0,a) +if(r==null)return this.r.d.a4(a)?1:0 +else{s=this.e +A.jP(this.d,s,{at:0}) +return s[r.a]}}, +da(a,b){var s=$.oo().i(0,a) +if(s==null){this.r.d.A(0,a) +return null}else this.dU(s,!1)}, +dc(a){return $.fz().bB("/"+a)}, +aY(a,b){var s,r,q,p=this,o=a.a +if(o==null)return p.r.aY(a,b) +s=$.oo().i(0,o) +if(s==null)return p.r.aY(a,b) +r=p.e +A.jP(p.d,r,{at:0}) +r=r[s.a] +q=p.f.i(0,s) +q.toString +if(r===0)if((b&4)!==0){q.truncate(0) +p.dU(s,!0)}else throw A.a(B.ai) +return new A.cJ(new A.iC(p,s,q,(b&8)!==0),0)}, +de(a){}, +p(){var s,r,q +this.d.close() +for(s=this.f.gaO(),r=A.t(s),s=new A.b0(J.M(s.a),s.b,r.h("b0<1,2>")),r=r.y[1];s.k();){q=s.a +if(q==null)q=r.a(q) +q.close()}}} +A.kT.prototype={ +ht(a){var s=0,r=A.o(t.m),q,p=this,o,n +var $async$$1=A.p(function(b,c){if(b===1)return A.l(c,r) +while(true)switch(s){case 0:o=t.m +n=A +s=4 +return A.c(A.a0(p.a.getFileHandle(a,{create:!0}),o),$async$$1) +case 4:s=3 +return A.c(n.a0(c.createSyncAccessHandle(),o),$async$$1) +case 3:q=c +s=1 +break +case 1:return A.m(q,r)}}) +return A.n($async$$1,r)}, +$1(a){return this.ht(a)}, +$S:74} +A.iC.prototype={ +eI(a,b){return A.jP(this.c,a,{at:b})}, +d9(){return this.e>=2?1:0}, +cl(){var s=this +s.c.flush() +if(s.d)s.a.dU(s.b,!1)}, +cm(){return this.c.getSize()}, +dd(a){this.e=a}, +df(a){this.c.flush()}, +cn(a){this.c.truncate(a)}, +dg(a){this.e=a}, +bj(a,b){if(A.ow(this.c,a,{at:b})q.c)throw A.a(A.cB(14)) +s=A.b1(q.d.buffer,0,null) +r=q.e +B.e.b_(s,r,p) +s[r+o]=0}, +$S:0} +A.n9.prototype={ +$3(a,b,c){var s=this.a.d.e.i(0,a) +s.toString +return A.aL(new A.mP(s,this.b,c,b))}, +$S:27} +A.mP.prototype={ +$0(){var s=this +s.a.kI(A.b1(s.b.buffer,s.c,s.d))}, +$S:0} +A.na.prototype={ +$2(a,b){var s=this.a.d.e.i(0,a) +s.toString +return A.aL(new A.mO(s,b))}, +$S:4} +A.mO.prototype={ +$0(){this.a.de(A.pM(this.b,0))}, +$S:0} +A.nb.prototype={ +$2(a,b){var s +this.a.d.e.i(0,a).toString +s=Date.now() +s=self.BigInt(s) +A.hc(A.q3(this.b.buffer,0,null),"setBigInt64",b,s,!0,null)}, +$S:79} +A.nc.prototype={ +$1(a){return this.a.d.f.i(0,a).geP()}, +$S:12} +A.nd.prototype={ +$1(a){var s=this.a,r=s.d.f.i(0,a) +r.toString +return A.aL(new A.mN(s,r,a))}, +$S:12} +A.mN.prototype={ +$0(){this.b.cl() +this.a.d.f.A(0,this.c)}, +$S:0} +A.ne.prototype={ +$4(a,b,c,d){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mM(s,this.b,b,c,d))}, +$S:32} +A.mM.prototype={ +$0(){var s=this +s.a.eQ(A.b1(s.b.buffer,s.c,s.d),A.h(self.Number(s.e)))}, +$S:0} +A.mT.prototype={ +$4(a,b,c,d){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mL(s,this.b,b,c,d))}, +$S:32} +A.mL.prototype={ +$0(){var s=this +s.a.bj(A.b1(s.b.buffer,s.c,s.d),A.h(self.Number(s.e)))}, +$S:0} +A.mU.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mK(s,b))}, +$S:81} +A.mK.prototype={ +$0(){return this.a.cn(A.h(self.Number(this.b)))}, +$S:0} +A.mV.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mJ(s,b))}, +$S:4} +A.mJ.prototype={ +$0(){return this.a.df(this.b)}, +$S:0} +A.mW.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mI(s,this.b,b))}, +$S:4} +A.mI.prototype={ +$0(){var s=this.a.cm() +A.cv(this.b.buffer,0,null)[B.b.R(this.c,2)]=s}, +$S:0} +A.mX.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mD(s,b))}, +$S:4} +A.mD.prototype={ +$0(){return this.a.dd(this.b)}, +$S:0} +A.mY.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mC(s,b))}, +$S:4} +A.mC.prototype={ +$0(){return this.a.dg(this.b)}, +$S:0} +A.mZ.prototype={ +$2(a,b){var s=this.a.d.f.i(0,a) +s.toString +return A.aL(new A.mB(s,this.b,b))}, +$S:4} +A.mB.prototype={ +$0(){var s=this.a.d9() +A.cv(this.b.buffer,0,null)[B.b.R(this.c,2)]=s}, +$S:0} +A.n_.prototype={ +$3(a,b,c){var s=this.a,r=s.a +r===$&&A.G() +r=s.d.b.i(0,A.h(A.r(r.xr.call(null,a)))).a +s=s.a +r.$2(new A.c9(s,a),new A.dm(s,b,c))}, +$S:18} +A.n0.prototype={ +$3(a,b,c){var s=this.a,r=s.a +r===$&&A.G() +r=s.d.b.i(0,A.h(A.r(r.xr.call(null,a)))).b +s=s.a +r.$2(new A.c9(s,a),new A.dm(s,b,c))}, +$S:18} +A.n1.prototype={ +$3(a,b,c){var s=this.a,r=s.a +r===$&&A.G() +s.d.b.i(0,A.h(A.r(r.xr.call(null,a)))).toString +s=s.a +null.$2(new A.c9(s,a),new A.dm(s,b,c))}, +$S:18} +A.n3.prototype={ +$1(a){var s=this.a,r=s.a +r===$&&A.G() +s.d.b.i(0,A.h(A.r(r.xr.call(null,a)))).c.$1(new A.c9(s.a,a))}, +$S:15} +A.n4.prototype={ +$1(a){var s=this.a,r=s.a +r===$&&A.G() +s.d.b.i(0,A.h(A.r(r.xr.call(null,a)))).toString +null.$1(new A.c9(s.a,a))}, +$S:15} +A.n5.prototype={ +$1(a){this.a.d.b.A(0,a)}, +$S:15} +A.n6.prototype={ +$5(a,b,c,d,e){var s=this.b,r=A.oP(s,c,b),q=A.oP(s,e,d) +this.a.d.b.i(0,a).toString +return null.$2(r,q)}, +$S:29} +A.n7.prototype={ +$5(a,b,c,d,e){A.cb(this.b,d,null)}, +$S:83} +A.js.prototype={ +ks(a){var s=this.a++ +this.b.q(0,s,a) +return s}} +A.hv.prototype={} +A.bf.prototype={ +ho(){var s=this.a +return A.qn(new A.ef(s,new A.jb(),A.Q(s).h("ef<1,N>")),null)}, +j(a){var s=this.a,r=A.Q(s) +return new A.D(s,new A.j9(new A.D(s,new A.ja(),r.h("D<1,b>")).eo(0,0,B.x)),r.h("D<1,j>")).aq(0,u.q)}, +$ia1:1} +A.j6.prototype={ +$1(a){return a.length!==0}, +$S:2} +A.jb.prototype={ +$1(a){return a.gc3()}, +$S:84} +A.ja.prototype={ +$1(a){var s=a.gc3() +return new A.D(s,new A.j8(),A.Q(s).h("D<1,b>")).eo(0,0,B.x)}, +$S:85} +A.j8.prototype={ +$1(a){return a.gbA().length}, +$S:34} +A.j9.prototype={ +$1(a){var s=a.gc3() +return new A.D(s,new A.j7(this.a),A.Q(s).h("D<1,j>")).c5(0)}, +$S:87} +A.j7.prototype={ +$1(a){return B.a.hd(a.gbA(),this.a)+" "+A.v(a.geC())+"\n"}, +$S:35} +A.N.prototype={ +geA(){var s=this.a +if(s.gZ()==="data")return"data:..." +return $.iT().kp(s)}, +gbA(){var s,r=this,q=r.b +if(q==null)return r.geA() +s=r.c +if(s==null)return r.geA()+" "+A.v(q) +return r.geA()+" "+A.v(q)+":"+A.v(s)}, +j(a){return this.gbA()+" in "+A.v(this.d)}, +geC(){return this.d}} +A.jX.prototype={ +$0(){var s,r,q,p,o,n,m,l=null,k=this.a +if(k==="...")return new A.N(A.aj(l,l,l,l),l,l,"...") +s=$.ty().a9(k) +if(s==null)return new A.bl(A.aj(l,"unparsed",l,l),k) +k=s.b +r=k[1] +r.toString +q=$.th() +r=A.bd(r,q,"") +p=A.bd(r,"","") +r=k[2] +q=r +q.toString +if(B.a.u(q,"1?A.aN(n[1],l):l +return new A.N(o,m,k>2?A.aN(n[2],l):l,p)}, +$S:11} +A.jV.prototype={ +$0(){var s,r,q,p,o,n="",m=this.a,l=$.tx().a9(m) +if(l!=null){s=l.aM("member") +m=l.aM("uri") +m.toString +r=A.h4(m) +m=l.aM("index") +m.toString +q=l.aM("offset") +q.toString +p=A.aN(q,16) +if(!(s==null))m=s +return new A.N(r,1,p+1,m)}l=$.tt().a9(m) +if(l!=null){m=new A.jW(m) +q=l.b +o=q[2] +if(o!=null){o=o +o.toString +q=q[1] +q.toString +q=A.bd(q,"",n) +q=A.bd(q,"Anonymous function",n) +return m.$2(o,A.bd(q,"(anonymous function)",n))}else{q=q[3] +q.toString +return m.$2(q,n)}}return new A.bl(A.aj(null,"unparsed",null,null),m)}, +$S:11} +A.jW.prototype={ +$2(a,b){var s,r,q,p,o,n=null,m=$.ts(),l=m.a9(a) +for(;l!=null;a=s){s=l.b[1] +s.toString +l=m.a9(s)}if(a==="native")return new A.N(A.bm("native"),n,n,b) +r=$.tu().a9(a) +if(r==null)return new A.bl(A.aj(n,"unparsed",n,n),this.a) +m=r.b +s=m[1] +s.toString +q=A.h4(s) +s=m[2] +s.toString +p=A.aN(s,n) +o=m[3] +return new A.N(q,p,o!=null?A.aN(o,n):n,b)}, +$S:90} +A.jS.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.ti().a9(n) +if(m==null)return new A.bl(A.aj(o,"unparsed",o,o),n) +n=m.b +s=n[1] +s.toString +r=A.bd(s,"/<","") +s=n[2] +s.toString +q=A.h4(s) +n=n[3] +n.toString +p=A.aN(n,o) +return new A.N(q,p,o,r.length===0||r==="anonymous"?"":r)}, +$S:11} +A.jT.prototype={ +$0(){var s,r,q,p,o,n,m,l,k=null,j=this.a,i=$.tk().a9(j) +if(i!=null){s=i.b +r=s[3] +q=r +q.toString +if(B.a.M(q," line "))return A.u4(j) +j=r +j.toString +p=A.h4(j) +o=s[1] +if(o!=null){j=s[2] +j.toString +o+=B.c.c5(A.b_(B.a.ed("/",j).gl(0),".",!1,t.N)) +if(o==="")o="" +o=B.a.hl(o,$.tp(),"")}else o="" +j=s[4] +if(j==="")n=k +else{j=j +j.toString +n=A.aN(j,k)}j=s[5] +if(j==null||j==="")m=k +else{j=j +j.toString +m=A.aN(j,k)}return new A.N(p,n,m,o)}i=$.tm().a9(j) +if(i!=null){j=i.aM("member") +j.toString +s=i.aM("uri") +s.toString +p=A.h4(s) +s=i.aM("index") +s.toString +r=i.aM("offset") +r.toString +l=A.aN(r,16) +if(!(j.length!==0))j=s +return new A.N(p,1,l+1,j)}i=$.tq().a9(j) +if(i!=null){j=i.aM("member") +j.toString +return new A.N(A.aj(k,"wasm code",k,k),k,k,j)}return new A.bl(A.aj(k,"unparsed",k,k),j)}, +$S:11} +A.jU.prototype={ +$0(){var s,r,q,p,o=null,n=this.a,m=$.tn().a9(n) +if(m==null)throw A.a(A.ai("Couldn't parse package:stack_trace stack trace line '"+n+"'.",o,o)) +n=m.b +s=n[1] +if(s==="data:...")r=A.qv("") +else{s=s +s.toString +r=A.bm(s)}if(r.gZ()===""){s=$.iT() +r=s.hp(s.fS(s.a.d3(A.pd(r)),o,o,o,o,o,o,o,o,o,o,o,o,o,o))}s=n[2] +if(s==null)q=o +else{s=s +s.toString +q=A.aN(s,o)}s=n[3] +if(s==null)p=o +else{s=s +s.toString +p=A.aN(s,o)}return new A.N(r,q,p,n[4])}, +$S:11} +A.hf.prototype={ +gfQ(){var s,r=this,q=r.b +if(q===$){s=r.a.$0() +r.b!==$&&A.om() +r.b=s +q=s}return q}, +gc3(){return this.gfQ().gc3()}, +j(a){return this.gfQ().j(0)}, +$ia1:1, +$ia2:1} +A.a2.prototype={ +j(a){var s=this.a,r=A.Q(s) +return new A.D(s,new A.lc(new A.D(s,new A.ld(),r.h("D<1,b>")).eo(0,0,B.x)),r.h("D<1,j>")).c5(0)}, +$ia1:1, +gc3(){return this.a}} +A.la.prototype={ +$0(){return A.qr(this.a.j(0))}, +$S:91} +A.lb.prototype={ +$1(a){return a.length!==0}, +$S:2} +A.l9.prototype={ +$1(a){return!B.a.u(a,$.tw())}, +$S:2} +A.l8.prototype={ +$1(a){return a!=="\tat "}, +$S:2} +A.l6.prototype={ +$1(a){return a.length!==0&&a!=="[native code]"}, +$S:2} +A.l7.prototype={ +$1(a){return!B.a.u(a,"=====")}, +$S:2} +A.ld.prototype={ +$1(a){return a.gbA().length}, +$S:34} +A.lc.prototype={ +$1(a){if(a instanceof A.bl)return a.j(0)+"\n" +return B.a.hd(a.gbA(),this.a)+" "+A.v(a.geC())+"\n"}, +$S:35} +A.bl.prototype={ +j(a){return this.w}, +$iN:1, +gbA(){return"unparsed"}, +geC(){return this.w}} +A.e7.prototype={} +A.eS.prototype={ +S(a,b,c,d){var s,r=this.b +if(r.d){a=null +d=null}s=this.a.S(a,b,c,d) +if(!r.d)r.c=s +return s}, +aW(a,b,c){return this.S(a,null,b,c)}, +eB(a,b){return this.S(a,null,b,null)}} +A.eR.prototype={ +p(){var s,r=this.hE(),q=this.b +q.d=!0 +s=q.c +if(s!=null){s.c9(null) +s.eF(null)}return r}} +A.eh.prototype={ +ghD(){var s=this.b +s===$&&A.G() +return new A.an(s,A.t(s).h("an<1>"))}, +ghz(){var s=this.a +s===$&&A.G() +return s}, +hL(a,b,c,d){var s=this,r=$.i +s.a!==$&&A.pt() +s.a=new A.f0(a,s,new A.a3(new A.k(r,t.eI),t.fz),!0) +r=A.eG(null,new A.k3(c,s),!0,d) +s.b!==$&&A.pt() +s.b=r}, +iK(){var s,r +this.d=!0 +s=this.c +if(s!=null)s.J() +r=this.b +r===$&&A.G() +r.p()}} +A.k3.prototype={ +$0(){var s,r,q=this.b +if(q.d)return +s=this.a.a +r=q.b +r===$&&A.G() +q.c=s.aW(r.gjz(r),new A.k2(q),r.gfT())}, +$S:0} +A.k2.prototype={ +$0(){var s=this.a,r=s.a +r===$&&A.G() +r.iL() +s=s.b +s===$&&A.G() +s.p()}, +$S:0} +A.f0.prototype={ +v(a,b){if(this.e)throw A.a(A.B("Cannot add event after closing.")) +if(this.d)return +this.a.a.v(0,b)}, +a3(a,b){if(this.e)throw A.a(A.B("Cannot add event after closing.")) +if(this.d)return +this.im(a,b)}, +im(a,b){this.a.a.a3(a,b) +return}, +p(){var s=this +if(s.e)return s.c.a +s.e=!0 +if(!s.d){s.b.iK() +s.c.L(s.a.a.p())}return s.c.a}, +iL(){this.d=!0 +var s=this.c +if((s.a.a&30)===0)s.aU() +return}, +$ia9:1} +A.hE.prototype={} +A.eF.prototype={} +A.bF.prototype={ +gl(a){return this.b}, +i(a,b){if(b>=this.b)throw A.a(A.pW(b,this)) +return this.a[b]}, +q(a,b,c){if(b>=this.b)throw A.a(A.pW(b,this)) +this.a[b]=c}, +sl(a,b){var s,r,q,p=this,o=p.b +if(bo){if(o===0)q=new Uint8Array(b) +else q=p.i5(b) +B.e.ae(q,0,p.b,p.a) +p.a=q}}p.b=b}, +i5(a){var s=this.a.length*2 +if(a!=null&&ss)throw A.a(A.Y(c,0,s,null,null)) +s=this.a +if(A.t(this).h("bF").b(d))B.e.P(s,b,c,d.a,e) +else B.e.P(s,b,c,d,e)}, +ae(a,b,c,d){return this.P(0,b,c,d,0)}} +A.im.prototype={} +A.bG.prototype={} +A.ov.prototype={} +A.eX.prototype={ +S(a,b,c,d){return A.aB(this.a,this.b,a,!1)}, +aW(a,b,c){return this.S(a,null,b,c)}} +A.ie.prototype={ +J(){var s=this,r=A.aX(null,t.H) +if(s.b==null)return r +s.e5() +s.d=s.b=null +return r}, +c9(a){var s,r=this +if(r.b==null)throw A.a(A.B("Subscription has been canceled.")) +r.e5() +if(a==null)s=null +else{s=A.rx(new A.mi(a),t.m) +s=s==null?null:A.bc(s)}r.d=s +r.e3()}, +eF(a){}, +bC(){if(this.b==null)return;++this.a +this.e5()}, +bf(){var s=this +if(s.b==null||s.a<=0)return;--s.a +s.e3()}, +e3(){var s=this,r=s.d +if(r!=null&&s.a<=0)s.b.addEventListener(s.c,r,!1)}, +e5(){var s=this.d +if(s!=null)this.b.removeEventListener(this.c,s,!1)}} +A.mh.prototype={ +$1(a){return this.a.$1(a)}, +$S:1} +A.mi.prototype={ +$1(a){return this.a.$1(a)}, +$S:1};(function aliases(){var s=J.c_.prototype +s.hG=s.j +s=A.cC.prototype +s.hI=s.bK +s=A.af.prototype +s.dm=s.bq +s.bn=s.bo +s.eW=s.cv +s=A.ff.prototype +s.hJ=s.ee +s=A.x.prototype +s.eV=s.P +s=A.f.prototype +s.hF=s.hA +s=A.cW.prototype +s.hE=s.p +s=A.eB.prototype +s.hH=s.p})();(function installTearOffs(){var s=hunkHelpers._static_2,r=hunkHelpers._static_1,q=hunkHelpers._static_0,p=hunkHelpers.installStaticTearOff,o=hunkHelpers._instance_0u,n=hunkHelpers.installInstanceTearOff,m=hunkHelpers._instance_2u,l=hunkHelpers._instance_1i,k=hunkHelpers._instance_1u +s(J,"w3","uh",92) +r(A,"wD","uW",21) +r(A,"wE","uX",21) +r(A,"wF","uY",21) +q(A,"rA","ww",0) +r(A,"wG","wg",16) +s(A,"wH","wi",6) +q(A,"rz","wh",0) +p(A,"wN",5,null,["$5"],["wr"],94,0) +p(A,"wS",4,null,["$1$4","$4"],["nW",function(a,b,c,d){return A.nW(a,b,c,d,t.z)}],95,0) +p(A,"wU",5,null,["$2$5","$5"],["nY",function(a,b,c,d,e){var i=t.z +return A.nY(a,b,c,d,e,i,i)}],96,0) +p(A,"wT",6,null,["$3$6","$6"],["nX",function(a,b,c,d,e,f){var i=t.z +return A.nX(a,b,c,d,e,f,i,i,i)}],97,0) +p(A,"wQ",4,null,["$1$4","$4"],["rq",function(a,b,c,d){return A.rq(a,b,c,d,t.z)}],98,0) +p(A,"wR",4,null,["$2$4","$4"],["rr",function(a,b,c,d){var i=t.z +return A.rr(a,b,c,d,i,i)}],99,0) +p(A,"wP",4,null,["$3$4","$4"],["rp",function(a,b,c,d){var i=t.z +return A.rp(a,b,c,d,i,i,i)}],100,0) +p(A,"wL",5,null,["$5"],["wq"],101,0) +p(A,"wV",4,null,["$4"],["nZ"],102,0) +p(A,"wK",5,null,["$5"],["wp"],103,0) +p(A,"wJ",5,null,["$5"],["wo"],104,0) +p(A,"wO",4,null,["$4"],["ws"],105,0) +r(A,"wI","wk",106) +p(A,"wM",5,null,["$5"],["ro"],107,0) +var j +o(j=A.cD.prototype,"gbN","al",0) +o(j,"gbO","am",0) +n(A.dr.prototype,"gjJ",0,1,null,["$2","$1"],["by","aJ"],33,0,0) +n(A.a3.prototype,"gjI",0,0,null,["$1","$0"],["L","aU"],77,0,0) +m(A.k.prototype,"gdB","X",6) +l(j=A.cK.prototype,"gjz","v",7) +n(j,"gfT",0,1,null,["$2","$1"],["a3","jA"],33,0,0) +o(j=A.cd.prototype,"gbN","al",0) +o(j,"gbO","am",0) +o(j=A.af.prototype,"gbN","al",0) +o(j,"gbO","am",0) +o(A.eU.prototype,"gfs","iJ",0) +k(j=A.dI.prototype,"giD","iE",7) +m(j,"giH","iI",6) +o(j,"giF","iG",0) +o(j=A.du.prototype,"gbN","al",0) +o(j,"gbO","am",0) +k(j,"gdM","dN",7) +m(j,"gdQ","dR",117) +o(j,"gdO","dP",0) +o(j=A.dF.prototype,"gbN","al",0) +o(j,"gbO","am",0) +k(j,"gdM","dN",7) +m(j,"gdQ","dR",6) +o(j,"gdO","dP",0) +k(A.dG.prototype,"gjE","ee","Z<2>(e?)") +r(A,"wZ","uT",8) +p(A,"xr",2,null,["$1$2","$2"],["rJ",function(a,b){return A.rJ(a,b,t.v)}],108,0) +r(A,"xt","xz",5) +r(A,"xs","xy",5) +r(A,"xq","x_",5) +r(A,"xu","xF",5) +r(A,"xn","wB",5) +r(A,"xo","wC",5) +r(A,"xp","wW",5) +k(A.ec.prototype,"giq","ir",7) +k(A.fV.prototype,"gi6","dE",13) +k(A.hZ.prototype,"gjl","e7",13) +r(A,"z_","rh",20) +r(A,"yY","rf",20) +r(A,"yZ","rg",20) +r(A,"rL","wj",26) +r(A,"rM","wm",111) +r(A,"rK","vT",112) +o(A.dn.prototype,"gb9","p",0) +r(A,"bS","un",113) +r(A,"b7","uo",114) +r(A,"ps","up",115) +k(A.eJ.prototype,"giS","iT",69) +o(A.fH.prototype,"gb9","p",0) +o(A.d_.prototype,"gb9","p",3) +o(A.dv.prototype,"gd7","V",0) +o(A.dt.prototype,"gd7","V",3) +o(A.cE.prototype,"gd7","V",3) +o(A.cM.prototype,"gd7","V",3) +o(A.dg.prototype,"gb9","p",0) +r(A,"x7","ub",17) +r(A,"rE","ua",17) +r(A,"x5","u8",17) +r(A,"x6","u9",17) +r(A,"xJ","uO",30) +r(A,"xI","uN",30)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inherit,q=hunkHelpers.inheritMany +r(A.e,null) +q(A.e,[A.oD,J.h9,J.fC,A.f,A.fM,A.O,A.x,A.cn,A.kE,A.aZ,A.b0,A.eK,A.h0,A.hH,A.hA,A.hB,A.fY,A.i_,A.ej,A.eg,A.hL,A.hG,A.f9,A.e9,A.ip,A.lf,A.hr,A.ee,A.fd,A.T,A.kh,A.hg,A.cu,A.dB,A.lR,A.di,A.nv,A.m6,A.b2,A.ii,A.nB,A.iG,A.i1,A.iE,A.cU,A.Z,A.af,A.cC,A.dr,A.ce,A.k,A.i2,A.hF,A.cK,A.iF,A.i3,A.dJ,A.ic,A.mf,A.f8,A.eU,A.dI,A.eW,A.dx,A.au,A.iL,A.dO,A.iK,A.ij,A.df,A.nh,A.dA,A.ir,A.aF,A.is,A.co,A.cp,A.nI,A.fp,A.a6,A.ih,A.fQ,A.bp,A.mg,A.hs,A.eD,A.ig,A.bs,A.h8,A.bv,A.F,A.dK,A.av,A.fm,A.hP,A.b5,A.h1,A.hq,A.nf,A.cW,A.fS,A.hh,A.hp,A.hM,A.ec,A.iu,A.fO,A.fW,A.fV,A.c0,A.aH,A.bW,A.c3,A.bh,A.c5,A.bV,A.c6,A.c4,A.by,A.bA,A.kF,A.fa,A.hZ,A.bC,A.bU,A.e5,A.al,A.e3,A.cT,A.kt,A.le,A.jx,A.d8,A.ku,A.ew,A.kr,A.bi,A.jy,A.lr,A.fX,A.dd,A.lp,A.kN,A.fP,A.dD,A.dE,A.l4,A.kp,A.ex,A.hC,A.cl,A.kx,A.hD,A.ky,A.kA,A.kz,A.da,A.db,A.br,A.ju,A.kU,A.cV,A.jr,A.iA,A.nk,A.ct,A.aI,A.eC,A.bH,A.fK,A.cF,A.hX,A.kC,A.bj,A.bw,A.iw,A.eJ,A.dC,A.fH,A.mk,A.it,A.il,A.hU,A.mA,A.js,A.hv,A.bf,A.N,A.hf,A.a2,A.bl,A.eF,A.f0,A.hE,A.ov,A.ie]) +q(J.h9,[J.ha,J.em,J.en,J.aY,J.eo,J.d0,J.bX]) +q(J.en,[J.c_,J.w,A.d1,A.es]) +q(J.c_,[J.ht,J.cA,J.bY]) +r(J.kc,J.w) +q(J.d0,[J.el,J.hb]) +q(A.f,[A.cc,A.u,A.az,A.aT,A.ef,A.cz,A.bB,A.eA,A.eL,A.bt,A.cI,A.i0,A.iD,A.dL,A.ep]) +q(A.cc,[A.cm,A.fq]) +r(A.eV,A.cm) +r(A.eQ,A.fq) +r(A.ah,A.eQ) +q(A.O,[A.bZ,A.bD,A.hd,A.hK,A.ia,A.hx,A.id,A.fF,A.aV,A.hN,A.hJ,A.b3,A.fN]) +q(A.x,[A.dj,A.hS,A.dm,A.bF]) +r(A.e8,A.dj) +q(A.cn,[A.jc,A.k6,A.jd,A.l5,A.ke,A.o9,A.ob,A.lT,A.lS,A.nL,A.nw,A.ny,A.nx,A.k0,A.mq,A.mx,A.l2,A.l1,A.l_,A.kY,A.nu,A.me,A.md,A.np,A.no,A.my,A.kl,A.m3,A.nD,A.nR,A.nS,A.od,A.oh,A.oi,A.o4,A.jE,A.jF,A.jG,A.kK,A.kL,A.kM,A.kI,A.lL,A.lI,A.lJ,A.lG,A.lM,A.lK,A.kv,A.jN,A.o_,A.kf,A.kg,A.kk,A.lD,A.lE,A.jA,A.o2,A.og,A.jH,A.kD,A.ji,A.jj,A.jk,A.kS,A.kO,A.kR,A.kP,A.kQ,A.jp,A.jq,A.o0,A.lQ,A.kV,A.o7,A.j0,A.m9,A.ma,A.jg,A.jh,A.jl,A.jm,A.jn,A.j4,A.j1,A.j2,A.kT,A.mQ,A.mR,A.mS,A.n2,A.n8,A.n9,A.nc,A.nd,A.ne,A.mT,A.n_,A.n0,A.n1,A.n3,A.n4,A.n5,A.n6,A.n7,A.j6,A.jb,A.ja,A.j8,A.j9,A.j7,A.lb,A.l9,A.l8,A.l6,A.l7,A.ld,A.lc,A.mh,A.mi]) +q(A.jc,[A.of,A.lU,A.lV,A.nA,A.nz,A.k_,A.jY,A.mm,A.mt,A.ms,A.mp,A.mo,A.mn,A.mw,A.mv,A.mu,A.l3,A.l0,A.kZ,A.kX,A.nt,A.ns,A.m5,A.m4,A.ni,A.nO,A.nP,A.mc,A.mb,A.nV,A.nn,A.nm,A.nH,A.nG,A.jD,A.kG,A.kH,A.kJ,A.lN,A.lO,A.lH,A.oj,A.lW,A.m0,A.lZ,A.m_,A.lY,A.lX,A.nq,A.nr,A.jC,A.jB,A.mj,A.kj,A.lF,A.jz,A.jL,A.jI,A.jJ,A.jK,A.jv,A.iZ,A.j_,A.j5,A.ml,A.k5,A.mz,A.mH,A.mG,A.mF,A.mE,A.mP,A.mO,A.mN,A.mM,A.mL,A.mK,A.mJ,A.mI,A.mD,A.mC,A.mB,A.jX,A.jV,A.jS,A.jT,A.jU,A.la,A.k3,A.k2]) +q(A.u,[A.P,A.cs,A.b9,A.cH,A.f2]) +q(A.P,[A.cy,A.D,A.ez]) +r(A.cr,A.az) +r(A.ed,A.cz) +r(A.cX,A.bB) +r(A.cq,A.bt) +r(A.iv,A.f9) +q(A.iv,[A.ap,A.cJ]) +r(A.ea,A.e9) +r(A.ek,A.k6) +r(A.eu,A.bD) +q(A.l5,[A.kW,A.e4]) +q(A.T,[A.bu,A.cG]) +q(A.jd,[A.kd,A.oa,A.nM,A.o1,A.k1,A.mr,A.nN,A.k4,A.km,A.m2,A.lk,A.ll,A.lm,A.nQ,A.lu,A.lt,A.ls,A.jw,A.lx,A.lw,A.j3,A.na,A.nb,A.mU,A.mV,A.mW,A.mX,A.mY,A.mZ,A.jW]) +q(A.es,[A.d2,A.d4]) +q(A.d4,[A.f4,A.f6]) +r(A.f5,A.f4) +r(A.c1,A.f5) +r(A.f7,A.f6) +r(A.aR,A.f7) +q(A.c1,[A.hi,A.hj]) +q(A.aR,[A.hk,A.d3,A.hl,A.hm,A.hn,A.et,A.bx]) +r(A.fh,A.id) +q(A.Z,[A.dH,A.eZ,A.eO,A.e2,A.eS,A.eX]) +r(A.an,A.dH) +r(A.eP,A.an) +q(A.af,[A.cd,A.du,A.dF]) +r(A.cD,A.cd) +r(A.fg,A.cC) +q(A.dr,[A.a3,A.a8]) +q(A.cK,[A.dq,A.dM]) +q(A.ic,[A.ds,A.eT]) +r(A.f3,A.eZ) +r(A.ff,A.hF) +r(A.dG,A.ff) +q(A.iK,[A.i9,A.iz]) +r(A.dy,A.cG) +r(A.fb,A.df) +r(A.f1,A.fb) +q(A.co,[A.fZ,A.fI]) +q(A.fZ,[A.fD,A.hQ]) +q(A.cp,[A.iI,A.fJ,A.hR]) +r(A.fE,A.iI) +q(A.aV,[A.d9,A.ei]) +r(A.ib,A.fm) +q(A.c0,[A.am,A.bb,A.bq,A.bo]) +q(A.mg,[A.d5,A.cx,A.c2,A.dk,A.cw,A.d7,A.ca,A.bJ,A.ko,A.ac,A.cY]) +r(A.jt,A.kt) +r(A.kn,A.le) +q(A.jx,[A.ho,A.jM]) +q(A.al,[A.i4,A.dz,A.he]) +q(A.i4,[A.iH,A.fT,A.i5,A.eY]) +r(A.fe,A.iH) +r(A.io,A.dz) +r(A.eB,A.jt) +r(A.fc,A.jM) +q(A.lr,[A.je,A.dp,A.de,A.dc,A.eE,A.fU]) +q(A.je,[A.c7,A.eb]) +r(A.m8,A.ku) +r(A.hV,A.fT) +r(A.nK,A.eB) +r(A.ka,A.l4) +q(A.ka,[A.kq,A.ln,A.lP]) +q(A.br,[A.h2,A.cZ]) +r(A.dh,A.cV) +r(A.ix,A.jr) +r(A.iy,A.ix) +r(A.hw,A.iy) +r(A.iB,A.iA) +r(A.bk,A.iB) +r(A.fL,A.bH) +r(A.lA,A.kx) +r(A.lq,A.ky) +r(A.lC,A.kA) +r(A.lB,A.kz) +r(A.c9,A.da) +r(A.bI,A.db) +r(A.hY,A.kU) +q(A.fL,[A.dn,A.d_,A.h5,A.dg]) +q(A.fK,[A.hW,A.ik,A.iC]) +q(A.bw,[A.aW,A.S]) +r(A.aQ,A.S) +r(A.ao,A.aF) +q(A.ao,[A.dv,A.dt,A.cE,A.cM]) +q(A.eF,[A.e7,A.eh]) +r(A.eR,A.cW) +r(A.im,A.bF) +r(A.bG,A.im) +s(A.dj,A.hL) +s(A.fq,A.x) +s(A.f4,A.x) +s(A.f5,A.eg) +s(A.f6,A.x) +s(A.f7,A.eg) +s(A.dq,A.i3) +s(A.dM,A.iF) +s(A.ix,A.x) +s(A.iy,A.hp) +s(A.iA,A.hM) +s(A.iB,A.T)})() +var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{b:"int",I:"double",b6:"num",j:"String",U:"bool",F:"Null",q:"List",e:"Object",aa:"Map"},mangledNames:{},types:["~()","~(A)","U(j)","C<~>()","b(b,b)","I(b6)","~(e,a1)","~(e?)","j(j)","F()","F(A)","N()","b(b)","e?(e?)","C()","F(b)","~(@)","N(j)","F(b,b,b)","~(A?,q?)","j(b)","~(~())","U()","~(at,j,b)","U(~)","F(@)","b6?(q)","b(b,b,b)","@()","b(b,b,b,b,b)","a2(j)","b(b,b,b,b)","b(b,b,b,aY)","~(e[a1?])","b(N)","j(N)","C()","bb()","am()","F(U)","bh()","q(w)","bC(e?)","C()","@(@)","F(@,a1)","b()","C()","aa(q)","b(q)","~(@,@)","F(al)","C(~)","~(e?,e?)","~(b,@)","F(~())","A(w)","dd()","C()","C()","~(a9)","~(U,U,U,q<+(bJ,j)>)","@(@,j)","j(j?)","j(e?)","~(da,q)","~(br)","~(j,aa)","~(j,e?)","~(dC)","A(A?)","C<~>(b,at)","C<~>(b)","at()","C(j)","~(j,b)","~(j,b?)","~([e?])","at(@,@)","F(b,b)","F(e,a1)","b(b,aY)","k<@>(@)","F(b,b,b,b,aY)","q(a2)","b(a2)","C<~>(am)","j(a2)","b?(b)","F(~)","N(j,j)","a2()","b(@,@)","bz?/(am)","~(z?,a_?,z,e,a1)","0^(z?,a_?,z,0^())","0^(z?,a_?,z,0^(1^),1^)","0^(z?,a_?,z,0^(1^,2^),1^,2^)","0^()(z,a_,z,0^())","0^(1^)(z,a_,z,0^(1^))","0^(1^,2^)(z,a_,z,0^(1^,2^))","cU?(z,a_,z,e,a1?)","~(z?,a_?,z,~())","eH(z,a_,z,bp,~())","eH(z,a_,z,bp,~(eH))","~(z,a_,z,j)","~(j)","z(z?,a_?,z,oR?,aa?)","0^(0^,0^)","@(j)","C()","U?(q)","U(q<@>)","aW(bj)","S(bj)","aQ(bj)","bU<@>?()","~(@,a1)"],interceptorsByTag:null,leafTags:null,arrayRti:Symbol("$ti"),rttc:{"2;":(a,b)=>c=>c instanceof A.ap&&a.b(c.a)&&b.b(c.b),"2;file,outFlags":(a,b)=>c=>c instanceof A.cJ&&a.b(c.a)&&b.b(c.b)}} +A.vp(v.typeUniverse,JSON.parse('{"bY":"c_","ht":"c_","cA":"c_","w":{"q":["1"],"u":["1"],"A":[],"f":["1"],"ar":["1"]},"ha":{"U":[],"L":[]},"em":{"F":[],"L":[]},"en":{"A":[]},"c_":{"A":[]},"kc":{"w":["1"],"q":["1"],"u":["1"],"A":[],"f":["1"],"ar":["1"]},"d0":{"I":[],"b6":[]},"el":{"I":[],"b":[],"b6":[],"L":[]},"hb":{"I":[],"b6":[],"L":[]},"bX":{"j":[],"ar":["@"],"L":[]},"cc":{"f":["2"]},"cm":{"cc":["1","2"],"f":["2"],"f.E":"2"},"eV":{"cm":["1","2"],"cc":["1","2"],"u":["2"],"f":["2"],"f.E":"2"},"eQ":{"x":["2"],"q":["2"],"cc":["1","2"],"u":["2"],"f":["2"]},"ah":{"eQ":["1","2"],"x":["2"],"q":["2"],"cc":["1","2"],"u":["2"],"f":["2"],"x.E":"2","f.E":"2"},"bZ":{"O":[]},"e8":{"x":["b"],"q":["b"],"u":["b"],"f":["b"],"x.E":"b"},"u":{"f":["1"]},"P":{"u":["1"],"f":["1"]},"cy":{"P":["1"],"u":["1"],"f":["1"],"f.E":"1","P.E":"1"},"az":{"f":["2"],"f.E":"2"},"cr":{"az":["1","2"],"u":["2"],"f":["2"],"f.E":"2"},"D":{"P":["2"],"u":["2"],"f":["2"],"f.E":"2","P.E":"2"},"aT":{"f":["1"],"f.E":"1"},"ef":{"f":["2"],"f.E":"2"},"cz":{"f":["1"],"f.E":"1"},"ed":{"cz":["1"],"u":["1"],"f":["1"],"f.E":"1"},"bB":{"f":["1"],"f.E":"1"},"cX":{"bB":["1"],"u":["1"],"f":["1"],"f.E":"1"},"eA":{"f":["1"],"f.E":"1"},"cs":{"u":["1"],"f":["1"],"f.E":"1"},"eL":{"f":["1"],"f.E":"1"},"bt":{"f":["+(b,1)"],"f.E":"+(b,1)"},"cq":{"bt":["1"],"u":["+(b,1)"],"f":["+(b,1)"],"f.E":"+(b,1)"},"dj":{"x":["1"],"q":["1"],"u":["1"],"f":["1"]},"ez":{"P":["1"],"u":["1"],"f":["1"],"f.E":"1","P.E":"1"},"e9":{"aa":["1","2"]},"ea":{"e9":["1","2"],"aa":["1","2"]},"cI":{"f":["1"],"f.E":"1"},"eu":{"bD":[],"O":[]},"hd":{"O":[]},"hK":{"O":[]},"hr":{"a5":[]},"fd":{"a1":[]},"ia":{"O":[]},"hx":{"O":[]},"bu":{"T":["1","2"],"aa":["1","2"],"T.V":"2","T.K":"1"},"b9":{"u":["1"],"f":["1"],"f.E":"1"},"dB":{"hu":[],"er":[]},"i0":{"f":["hu"],"f.E":"hu"},"di":{"er":[]},"iD":{"f":["er"],"f.E":"er"},"d1":{"A":[],"os":[],"L":[]},"d2":{"ot":[],"A":[],"L":[]},"d3":{"aR":[],"k8":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"bx":{"aR":[],"at":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"es":{"A":[]},"d4":{"aP":["1"],"A":[],"ar":["1"]},"c1":{"x":["I"],"q":["I"],"aP":["I"],"u":["I"],"A":[],"ar":["I"],"f":["I"]},"aR":{"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"]},"hi":{"c1":[],"jQ":[],"x":["I"],"q":["I"],"aP":["I"],"u":["I"],"A":[],"ar":["I"],"f":["I"],"L":[],"x.E":"I"},"hj":{"c1":[],"jR":[],"x":["I"],"q":["I"],"aP":["I"],"u":["I"],"A":[],"ar":["I"],"f":["I"],"L":[],"x.E":"I"},"hk":{"aR":[],"k7":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"hl":{"aR":[],"k9":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"hm":{"aR":[],"lh":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"hn":{"aR":[],"li":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"et":{"aR":[],"lj":[],"x":["b"],"q":["b"],"aP":["b"],"u":["b"],"A":[],"ar":["b"],"f":["b"],"L":[],"x.E":"b"},"id":{"O":[]},"fh":{"bD":[],"O":[]},"cU":{"O":[]},"k":{"C":["1"]},"uq":{"a9":["1"]},"af":{"af.T":"1"},"dx":{"a9":["1"]},"dL":{"f":["1"],"f.E":"1"},"eP":{"an":["1"],"dH":["1"],"Z":["1"],"Z.T":"1"},"cD":{"cd":["1"],"af":["1"],"af.T":"1"},"cC":{"a9":["1"]},"fg":{"cC":["1"],"a9":["1"]},"a3":{"dr":["1"]},"a8":{"dr":["1"]},"cK":{"a9":["1"]},"dq":{"cK":["1"],"a9":["1"]},"dM":{"cK":["1"],"a9":["1"]},"an":{"dH":["1"],"Z":["1"],"Z.T":"1"},"cd":{"af":["1"],"af.T":"1"},"dJ":{"a9":["1"]},"dH":{"Z":["1"]},"eZ":{"Z":["2"]},"du":{"af":["2"],"af.T":"2"},"f3":{"eZ":["1","2"],"Z":["2"],"Z.T":"2"},"eW":{"a9":["1"]},"dF":{"af":["2"],"af.T":"2"},"eO":{"Z":["2"],"Z.T":"2"},"dG":{"ff":["1","2"]},"iL":{"oR":[]},"dO":{"a_":[]},"iK":{"z":[]},"i9":{"z":[]},"iz":{"z":[]},"cG":{"T":["1","2"],"aa":["1","2"],"T.V":"2","T.K":"1"},"dy":{"cG":["1","2"],"T":["1","2"],"aa":["1","2"],"T.V":"2","T.K":"1"},"cH":{"u":["1"],"f":["1"],"f.E":"1"},"f1":{"fb":["1"],"df":["1"],"u":["1"],"f":["1"]},"ep":{"f":["1"],"f.E":"1"},"x":{"q":["1"],"u":["1"],"f":["1"]},"T":{"aa":["1","2"]},"f2":{"u":["2"],"f":["2"],"f.E":"2"},"df":{"u":["1"],"f":["1"]},"fb":{"df":["1"],"u":["1"],"f":["1"]},"fD":{"co":["j","q"]},"iI":{"cp":["j","q"]},"fE":{"cp":["j","q"]},"fI":{"co":["q","j"]},"fJ":{"cp":["q","j"]},"fZ":{"co":["j","q"]},"hQ":{"co":["j","q"]},"hR":{"cp":["j","q"]},"I":{"b6":[]},"b":{"b6":[]},"q":{"u":["1"],"f":["1"]},"hu":{"er":[]},"fF":{"O":[]},"bD":{"O":[]},"aV":{"O":[]},"d9":{"O":[]},"ei":{"O":[]},"hN":{"O":[]},"hJ":{"O":[]},"b3":{"O":[]},"fN":{"O":[]},"hs":{"O":[]},"eD":{"O":[]},"ig":{"a5":[]},"bs":{"a5":[]},"h8":{"a5":[],"O":[]},"dK":{"a1":[]},"fm":{"hO":[]},"b5":{"hO":[]},"ib":{"hO":[]},"hq":{"a5":[]},"cW":{"a9":["1"]},"fO":{"a5":[]},"fW":{"a5":[]},"am":{"c0":[]},"bb":{"c0":[]},"bh":{"as":[]},"by":{"as":[]},"aH":{"bz":[]},"bq":{"c0":[]},"bo":{"c0":[]},"d5":{"as":[]},"bW":{"as":[]},"c3":{"as":[]},"c5":{"as":[]},"bV":{"as":[]},"c6":{"as":[]},"c4":{"as":[]},"bA":{"bz":[]},"e5":{"a5":[]},"i4":{"al":[]},"iH":{"hI":[],"al":[]},"fe":{"hI":[],"al":[]},"fT":{"al":[]},"i5":{"al":[]},"eY":{"al":[]},"dz":{"al":[]},"io":{"hI":[],"al":[]},"he":{"al":[]},"dp":{"a5":[]},"hV":{"al":[]},"ex":{"a5":[]},"hC":{"a5":[]},"h2":{"br":[]},"hS":{"x":["e?"],"q":["e?"],"u":["e?"],"f":["e?"],"x.E":"e?"},"cZ":{"br":[]},"dh":{"cV":[]},"bk":{"T":["j","@"],"aa":["j","@"],"T.V":"@","T.K":"j"},"hw":{"x":["bk"],"q":["bk"],"u":["bk"],"f":["bk"],"x.E":"bk"},"aI":{"a5":[]},"fL":{"bH":[]},"fK":{"dl":[]},"bI":{"db":[]},"c9":{"da":[]},"dm":{"x":["bI"],"q":["bI"],"u":["bI"],"f":["bI"],"x.E":"bI"},"e2":{"Z":["1"],"Z.T":"1"},"dn":{"bH":[]},"hW":{"dl":[]},"aW":{"bw":[]},"S":{"bw":[]},"aQ":{"S":[],"bw":[]},"d_":{"bH":[]},"ao":{"aF":["ao"]},"il":{"dl":[]},"dv":{"ao":[],"aF":["ao"],"aF.E":"ao"},"dt":{"ao":[],"aF":["ao"],"aF.E":"ao"},"cE":{"ao":[],"aF":["ao"],"aF.E":"ao"},"cM":{"ao":[],"aF":["ao"],"aF.E":"ao"},"h5":{"bH":[]},"ik":{"dl":[]},"dg":{"bH":[]},"iC":{"dl":[]},"bf":{"a1":[]},"hf":{"a2":[],"a1":[]},"a2":{"a1":[]},"bl":{"N":[]},"e7":{"eF":["1"]},"eS":{"Z":["1"],"Z.T":"1"},"eR":{"a9":["1"]},"eh":{"eF":["1"]},"f0":{"a9":["1"]},"bG":{"bF":["b"],"x":["b"],"q":["b"],"u":["b"],"f":["b"],"x.E":"b","bF.E":"b"},"bF":{"x":["1"],"q":["1"],"u":["1"],"f":["1"]},"im":{"bF":["b"],"x":["b"],"q":["b"],"u":["b"],"f":["b"]},"eX":{"Z":["1"],"Z.T":"1"},"k9":{"q":["b"],"u":["b"],"f":["b"]},"at":{"q":["b"],"u":["b"],"f":["b"]},"lj":{"q":["b"],"u":["b"],"f":["b"]},"k7":{"q":["b"],"u":["b"],"f":["b"]},"lh":{"q":["b"],"u":["b"],"f":["b"]},"k8":{"q":["b"],"u":["b"],"f":["b"]},"li":{"q":["b"],"u":["b"],"f":["b"]},"jQ":{"q":["I"],"u":["I"],"f":["I"]},"jR":{"q":["I"],"u":["I"],"f":["I"]}}')) +A.vo(v.typeUniverse,JSON.parse('{"eK":1,"hA":1,"hB":1,"fY":1,"ej":1,"eg":1,"hL":1,"dj":1,"fq":2,"hg":1,"d4":1,"a9":1,"iE":1,"hF":2,"iF":1,"i3":1,"dJ":1,"ic":1,"ds":1,"f8":1,"eU":1,"dI":1,"eW":1,"au":1,"h1":1,"cW":1,"fS":1,"hh":1,"hp":1,"hM":2,"eB":1,"tN":1,"hD":1,"eR":1,"f0":1,"ie":1}')) +var u={q:"===== asynchronous gap ===========================\n",l:"Cannot extract a file path from a URI with a fragment component",y:"Cannot extract a file path from a URI with a query component",j:"Cannot extract a non-Windows file path from a file URI with an authority",o:"Cannot fire new event. Controller is already firing an event",c:"Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type",D:"Tried to operate on a released prepared statement"} +var t=(function rtii(){var s=A.aq +return{b9:s("tN"),cO:s("e2>"),E:s("os"),fd:s("ot"),g1:s("bU<@>"),eT:s("cV"),ed:s("eb"),gw:s("ec"),Q:s("u<@>"),q:s("aW"),w:s("O"),g8:s("a5"),ez:s("cY"),G:s("S"),h4:s("jQ"),gN:s("jR"),B:s("N"),b8:s("xR"),bF:s("C"),cG:s("C"),eY:s("C"),bd:s("d_"),dQ:s("k7"),an:s("k8"),gj:s("k9"),dP:s("f"),g7:s("w"),cf:s("w"),eV:s("w"),e:s("w"),fG:s("w>"),fk:s("w>"),W:s("w"),gP:s("w>"),gz:s("w>"),d:s("w>"),eC:s("w>"),as:s("w"),f:s("w"),L:s("w<+(bJ,j)>"),bb:s("w"),s:s("w"),be:s("w"),J:s("w"),gQ:s("w"),n:s("w"),gn:s("w<@>"),t:s("w"),c:s("w"),d4:s("w"),r:s("w"),Y:s("w"),bT:s("w<~()>"),aP:s("ar<@>"),T:s("em"),m:s("A"),C:s("aY"),g:s("bY"),aU:s("aP<@>"),au:s("ep"),e9:s("q>"),cl:s("q"),aS:s("q>"),o:s("q"),j:s("q<@>"),I:s("q"),ee:s("q"),dY:s("aa"),g6:s("aa"),cv:s("aa"),M:s("az"),fe:s("D"),do:s("D"),fJ:s("c0"),cb:s("bw"),eN:s("aQ"),bZ:s("d1"),gT:s("d2"),ha:s("d3"),aV:s("c1"),eB:s("aR"),Z:s("bx"),bw:s("by"),P:s("F"),K:s("e"),x:s("al"),aj:s("d8"),fl:s("xV"),bQ:s("+()"),cz:s("hu"),gy:s("hv"),al:s("am"),cc:s("bz"),bJ:s("ez"),fE:s("dd"),fM:s("c7"),gW:s("dg"),l:s("a1"),a7:s("hE"),N:s("j"),aF:s("eH"),a:s("a2"),u:s("hI"),dm:s("L"),eK:s("bD"),h7:s("lh"),bv:s("li"),go:s("lj"),p:s("at"),ak:s("cA"),dD:s("hO"),ei:s("eJ"),fL:s("bH"),ga:s("dl"),h2:s("hU"),g9:s("hX"),ab:s("hY"),aT:s("dn"),U:s("aT"),eJ:s("eL"),R:s("ac"),dx:s("ac"),b0:s("ac"),bi:s("a3"),co:s("a3"),fz:s("a3<@>"),fu:s("a3"),h:s("a3<~>"),V:s("cF"),fF:s("eX"),et:s("k"),a9:s("k"),k:s("k"),eI:s("k<@>"),gR:s("k"),fX:s("k"),D:s("k<~>"),hg:s("dy"),cT:s("dC"),aR:s("iu"),eg:s("iw"),dn:s("fg<~>"),bh:s("a8"),fa:s("a8"),F:s("a8<~>"),y:s("U"),i:s("I"),z:s("@"),bI:s("@(e)"),b:s("@(e,a1)"),S:s("b"),aw:s("0&*"),_:s("e*"),eH:s("C?"),A:s("A?"),dE:s("bx?"),X:s("e?"),ah:s("as?"),O:s("bz?"),fN:s("bG?"),aD:s("at?"),h6:s("b?"),v:s("b6"),H:s("~"),d5:s("~(e)"),da:s("~(e,a1)")}})();(function constants(){var s=hunkHelpers.makeConstList +B.aG=J.h9.prototype +B.c=J.w.prototype +B.b=J.el.prototype +B.aH=J.d0.prototype +B.a=J.bX.prototype +B.aI=J.bY.prototype +B.aJ=J.en.prototype +B.e=A.bx.prototype +B.ag=J.ht.prototype +B.D=J.cA.prototype +B.an=new A.cl(0) +B.l=new A.cl(1) +B.q=new A.cl(2) +B.Y=new A.cl(3) +B.bJ=new A.cl(-1) +B.ao=new A.fE(127) +B.x=new A.ek(A.xr(),A.aq("ek")) +B.ap=new A.fD() +B.bK=new A.fJ() +B.aq=new A.fI() +B.Z=new A.e5() +B.ar=new A.fO() +B.bL=new A.fS() +B.a_=new A.fV() +B.a0=new A.fY() +B.h=new A.aW() +B.as=new A.h8() +B.a1=function getTagFallback(o) { + var s = Object.prototype.toString.call(o); + return s.substring(8, s.length - 1); +} +B.at=function() { + var toStringFunction = Object.prototype.toString; + function getTag(o) { + var s = toStringFunction.call(o); + return s.substring(8, s.length - 1); + } + function getUnknownTag(object, tag) { + if (/^HTML[A-Z].*Element$/.test(tag)) { + var name = toStringFunction.call(object); + if (name == "[object Object]") return null; + return "HTMLElement"; + } + } + function getUnknownTagGenericBrowser(object, tag) { + if (object instanceof HTMLElement) return "HTMLElement"; + return getUnknownTag(object, tag); + } + function prototypeForTag(tag) { + if (typeof window == "undefined") return null; + if (typeof window[tag] == "undefined") return null; + var constructor = window[tag]; + if (typeof constructor != "function") return null; + return constructor.prototype; + } + function discriminator(tag) { return null; } + var isBrowser = typeof HTMLElement == "function"; + return { + getTag: getTag, + getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, + prototypeForTag: prototypeForTag, + discriminator: discriminator }; +} +B.ay=function(getTagFallback) { + return function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("DumpRenderTree") >= 0) return hooks; + if (userAgent.indexOf("Chrome") >= 0) { + function confirm(p) { + return typeof window == "object" && window[p] && window[p].name == p; + } + if (confirm("Window") && confirm("HTMLElement")) return hooks; + } + hooks.getTag = getTagFallback; + }; +} +B.au=function(hooks) { + if (typeof dartExperimentalFixupGetTag != "function") return hooks; + hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); +} +B.ax=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Firefox") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "GeoGeolocation": "Geolocation", + "Location": "!Location", + "WorkerMessageEvent": "MessageEvent", + "XMLDocument": "!Document"}; + function getTagFirefox(o) { + var tag = getTag(o); + return quickMap[tag] || tag; + } + hooks.getTag = getTagFirefox; +} +B.aw=function(hooks) { + if (typeof navigator != "object") return hooks; + var userAgent = navigator.userAgent; + if (typeof userAgent != "string") return hooks; + if (userAgent.indexOf("Trident/") == -1) return hooks; + var getTag = hooks.getTag; + var quickMap = { + "BeforeUnloadEvent": "Event", + "DataTransfer": "Clipboard", + "HTMLDDElement": "HTMLElement", + "HTMLDTElement": "HTMLElement", + "HTMLPhraseElement": "HTMLElement", + "Position": "Geoposition" + }; + function getTagIE(o) { + var tag = getTag(o); + var newTag = quickMap[tag]; + if (newTag) return newTag; + if (tag == "Object") { + if (window.DataView && (o instanceof window.DataView)) return "DataView"; + } + return tag; + } + function prototypeForTagIE(tag) { + var constructor = window[tag]; + if (constructor == null) return null; + return constructor.prototype; + } + hooks.getTag = getTagIE; + hooks.prototypeForTag = prototypeForTagIE; +} +B.av=function(hooks) { + var getTag = hooks.getTag; + var prototypeForTag = hooks.prototypeForTag; + function getTagFixed(o) { + var tag = getTag(o); + if (tag == "Document") { + if (!!o.xmlVersion) return "!Document"; + return "!HTMLDocument"; + } + return tag; + } + function prototypeForTagFixed(tag) { + if (tag == "Document") return null; + return prototypeForTag(tag); + } + hooks.getTag = getTagFixed; + hooks.prototypeForTag = prototypeForTagFixed; +} +B.a2=function(hooks) { return hooks; } + +B.o=new A.hh() +B.az=new A.kn() +B.aA=new A.ho() +B.aB=new A.hs() +B.f=new A.kE() +B.j=new A.hQ() +B.i=new A.hR() +B.a3=new A.hZ() +B.y=new A.mf() +B.d=new A.iz() +B.z=new A.bp(0) +B.aE=new A.bs("Cannot read message",null,null) +B.aF=new A.bs("Unknown tag",null,null) +B.aK=A.d(s([11]),t.t) +B.aL=A.d(s([0,0,32722,12287,65534,34815,65534,18431]),t.t) +B.p=A.d(s([0,0,65490,45055,65535,34815,65534,18431]),t.t) +B.aM=A.d(s([0,0,32754,11263,65534,34815,65534,18431]),t.t) +B.a4=A.d(s([0,0,26624,1023,65534,2047,65534,2047]),t.t) +B.aN=A.d(s([0,0,32722,12287,65535,34815,65534,18431]),t.t) +B.a5=A.d(s([0,0,65490,12287,65535,34815,65534,18431]),t.t) +B.a6=A.d(s([0,0,32776,33792,1,10240,0,0]),t.t) +B.F=new A.bJ(0,"opfs") +B.am=new A.bJ(1,"indexedDb") +B.aO=A.d(s([B.F,B.am]),A.aq("w")) +B.bj=new A.dk(0,"insert") +B.bk=new A.dk(1,"update") +B.bl=new A.dk(2,"delete") +B.a7=A.d(s([B.bj,B.bk,B.bl]),A.aq("w")) +B.H=new A.ac(A.ps(),A.b7(),0,"xAccess",t.b0) +B.G=new A.ac(A.ps(),A.bS(),1,"xDelete",A.aq("ac")) +B.S=new A.ac(A.ps(),A.b7(),2,"xOpen",t.b0) +B.Q=new A.ac(A.b7(),A.b7(),3,"xRead",t.dx) +B.L=new A.ac(A.b7(),A.bS(),4,"xWrite",t.R) +B.M=new A.ac(A.b7(),A.bS(),5,"xSleep",t.R) +B.N=new A.ac(A.b7(),A.bS(),6,"xClose",t.R) +B.R=new A.ac(A.b7(),A.b7(),7,"xFileSize",t.dx) +B.O=new A.ac(A.b7(),A.bS(),8,"xSync",t.R) +B.P=new A.ac(A.b7(),A.bS(),9,"xTruncate",t.R) +B.J=new A.ac(A.b7(),A.bS(),10,"xLock",t.R) +B.K=new A.ac(A.b7(),A.bS(),11,"xUnlock",t.R) +B.I=new A.ac(A.bS(),A.bS(),12,"stopServer",A.aq("ac")) +B.aP=A.d(s([B.H,B.G,B.S,B.Q,B.L,B.M,B.N,B.R,B.O,B.P,B.J,B.K,B.I]),A.aq("w>")) +B.A=A.d(s([]),t.W) +B.aQ=A.d(s([]),t.gz) +B.aR=A.d(s([]),t.f) +B.r=A.d(s([]),t.s) +B.t=A.d(s([]),t.c) +B.B=A.d(s([]),t.L) +B.ak=new A.ca(0,"opfsShared") +B.al=new A.ca(1,"opfsLocks") +B.w=new A.ca(2,"sharedIndexedDb") +B.E=new A.ca(3,"unsafeIndexedDb") +B.bs=new A.ca(4,"inMemory") +B.aT=A.d(s([B.ak,B.al,B.w,B.E,B.bs]),A.aq("w")) +B.b3=new A.cx(0,"custom") +B.b4=new A.cx(1,"deleteOrUpdate") +B.b5=new A.cx(2,"insert") +B.b6=new A.cx(3,"select") +B.a8=A.d(s([B.b3,B.b4,B.b5,B.b6]),A.aq("w")) +B.aD=new A.cY("/database",0,"database") +B.aC=new A.cY("/database-journal",1,"journal") +B.a9=A.d(s([B.aD,B.aC]),A.aq("w")) +B.ad=new A.c2(0,"beginTransaction") +B.aV=new A.c2(1,"commit") +B.aW=new A.c2(2,"rollback") +B.ae=new A.c2(3,"startExclusive") +B.af=new A.c2(4,"endExclusive") +B.aa=A.d(s([B.ad,B.aV,B.aW,B.ae,B.af]),A.aq("w")) +B.ab=A.d(s([0,0,24576,1023,65534,34815,65534,18431]),t.t) +B.m=new A.cw(0,"sqlite") +B.b0=new A.cw(1,"mysql") +B.b1=new A.cw(2,"postgres") +B.b2=new A.cw(3,"mariadb") +B.ac=A.d(s([B.m,B.b0,B.b1,B.b2]),A.aq("w")) +B.aX={} +B.aU=new A.ea(B.aX,[],A.aq("ea")) +B.C=new A.d5(0,"terminateAll") +B.bM=new A.ko(2,"readWriteCreate") +B.u=new A.d7(0,0,"legacy") +B.aY=new A.d7(1,1,"v1") +B.aZ=new A.d7(2,2,"v2") +B.v=new A.d7(3,3,"v3") +B.aS=A.d(s([]),t.d) +B.b_=new A.bA(B.aS) +B.ah=new A.hG("drift.runtime.cancellation") +B.b7=A.be("os") +B.b8=A.be("ot") +B.b9=A.be("jQ") +B.ba=A.be("jR") +B.bb=A.be("k7") +B.bc=A.be("k8") +B.bd=A.be("k9") +B.be=A.be("e") +B.bf=A.be("lh") +B.bg=A.be("li") +B.bh=A.be("lj") +B.bi=A.be("at") +B.bm=new A.aI(10) +B.bn=new A.aI(12) +B.ai=new A.aI(14) +B.bo=new A.aI(2570) +B.bp=new A.aI(3850) +B.bq=new A.aI(522) +B.aj=new A.aI(778) +B.br=new A.aI(8) +B.T=new A.dD("above root") +B.U=new A.dD("at root") +B.bt=new A.dD("reaches root") +B.V=new A.dD("below root") +B.k=new A.dE("different") +B.W=new A.dE("equal") +B.n=new A.dE("inconclusive") +B.X=new A.dE("within") +B.bu=new A.dK("") +B.bv=new A.au(B.d,A.wN()) +B.bw=new A.au(B.d,A.wR()) +B.bx=new A.au(B.d,A.wK()) +B.by=new A.au(B.d,A.wL()) +B.bz=new A.au(B.d,A.wM()) +B.bA=new A.au(B.d,A.wO()) +B.bB=new A.au(B.d,A.wQ()) +B.bC=new A.au(B.d,A.wS()) +B.bD=new A.au(B.d,A.wT()) +B.bE=new A.au(B.d,A.wU()) +B.bF=new A.au(B.d,A.wV()) +B.bG=new A.au(B.d,A.wJ()) +B.bH=new A.au(B.d,A.wP()) +B.bI=new A.iL(null,null,null,null,null,null,null,null,null,null,null,null,null)})();(function staticFields(){$.ng=null +$.cQ=A.d([],t.f) +$.rO=null +$.q7=null +$.pI=null +$.pH=null +$.rF=null +$.ry=null +$.rP=null +$.o6=null +$.oc=null +$.pm=null +$.nj=A.d([],A.aq("w?>")) +$.dQ=null +$.fr=null +$.fs=null +$.pc=!1 +$.i=B.d +$.nl=null +$.qD=null +$.qE=null +$.qF=null +$.qG=null +$.oS=A.m7("_lastQuoRemDigits") +$.oT=A.m7("_lastQuoRemUsed") +$.eN=A.m7("_lastRemUsed") +$.oU=A.m7("_lastRem_nsh") +$.qw="" +$.qx=null +$.re=null +$.nT=null})();(function lazyInitializers(){var s=hunkHelpers.lazyFinal,r=hunkHelpers.lazy +s($,"xM","dZ",()=>A.x9("_$dart_dartClosure")) +s($,"z1","tB",()=>B.d.bg(new A.of(),A.aq("C"))) +s($,"y1","rY",()=>A.bE(A.lg({ +toString:function(){return"$receiver$"}}))) +s($,"y2","rZ",()=>A.bE(A.lg({$method$:null, +toString:function(){return"$receiver$"}}))) +s($,"y3","t_",()=>A.bE(A.lg(null))) +s($,"y4","t0",()=>A.bE(function(){var $argumentsExpr$="$arguments$" +try{null.$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"y7","t3",()=>A.bE(A.lg(void 0))) +s($,"y8","t4",()=>A.bE(function(){var $argumentsExpr$="$arguments$" +try{(void 0).$method$($argumentsExpr$)}catch(q){return q.message}}())) +s($,"y6","t2",()=>A.bE(A.qs(null))) +s($,"y5","t1",()=>A.bE(function(){try{null.$method$}catch(q){return q.message}}())) +s($,"ya","t6",()=>A.bE(A.qs(void 0))) +s($,"y9","t5",()=>A.bE(function(){try{(void 0).$method$}catch(q){return q.message}}())) +s($,"yc","pw",()=>A.uV()) +s($,"xT","ck",()=>A.aq("k").a($.tB())) +s($,"xS","rW",()=>A.v5(!1,B.d,t.y)) +s($,"ym","tc",()=>{var q=t.z +return A.pV(q,q)}) +s($,"yq","tg",()=>A.q4(4096)) +s($,"yo","te",()=>new A.nH().$0()) +s($,"yp","tf",()=>new A.nG().$0()) +s($,"yd","t7",()=>A.ur(A.iM(A.d([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t.t)))) +s($,"yk","b8",()=>A.eM(0)) +s($,"yi","fy",()=>A.eM(1)) +s($,"yj","ta",()=>A.eM(2)) +s($,"yg","py",()=>$.fy().aB(0)) +s($,"ye","px",()=>A.eM(1e4)) +r($,"yh","t9",()=>A.J("^\\s*([+-]?)((0x[a-f0-9]+)|(\\d+)|([a-z0-9]+))\\s*$",!1,!1,!1,!1)) +s($,"yf","t8",()=>A.q4(8)) +s($,"yl","tb",()=>typeof FinalizationRegistry=="function"?FinalizationRegistry:null) +s($,"yn","td",()=>A.J("^[\\-\\.0-9A-Z_a-z~]*$",!0,!1,!1,!1)) +s($,"yJ","op",()=>A.pp(B.be)) +s($,"yM","tr",()=>A.vU()) +s($,"xU","iS",()=>{var q=new A.nf(new DataView(new ArrayBuffer(A.vS(8)))) +q.hQ() +return q}) +s($,"yb","pv",()=>A.u1(B.aO,A.aq("bJ"))) +s($,"z5","tC",()=>A.jo(null,$.fx())) +s($,"z3","fz",()=>A.jo(null,$.cR())) +s($,"yW","iT",()=>new A.fP($.pu(),null)) +s($,"xZ","rX",()=>new A.kq(A.J("/",!0,!1,!1,!1),A.J("[^/]$",!0,!1,!1,!1),A.J("^/",!0,!1,!1,!1))) +s($,"y0","fx",()=>new A.lP(A.J("[/\\\\]",!0,!1,!1,!1),A.J("[^/\\\\]$",!0,!1,!1,!1),A.J("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])",!0,!1,!1,!1),A.J("^[/\\\\](?![/\\\\])",!0,!1,!1,!1))) +s($,"y_","cR",()=>new A.ln(A.J("/",!0,!1,!1,!1),A.J("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$",!0,!1,!1,!1),A.J("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*",!0,!1,!1,!1),A.J("^/",!0,!1,!1,!1))) +s($,"xY","pu",()=>A.uJ()) +s($,"yV","tA",()=>A.pF("-9223372036854775808")) +s($,"yU","tz",()=>A.pF("9223372036854775807")) +s($,"z0","e_",()=>{var q=$.tb() +q=q==null?null:new q(A.ch(A.xK(new A.o7(),A.aq("br")),1)) +return new A.ih(q,A.aq("ih
"))}) +s($,"xL","on",()=>A.um(A.d(["files","blocks"],t.s))) +s($,"xO","oo",()=>{var q,p,o=A.a4(t.N,t.ez) +for(q=0;q<2;++q){p=B.a9[q] +o.q(0,p.c,p)}return o}) +s($,"xN","rT",()=>new A.h1(new WeakMap())) +s($,"yT","ty",()=>A.J("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$",!0,!1,!1,!1)) +s($,"yO","tt",()=>A.J("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$",!0,!1,!1,!1)) +s($,"yP","tu",()=>A.J("^(.*?):(\\d+)(?::(\\d+))?$|native$",!0,!1,!1,!1)) +s($,"yS","tx",()=>A.J("^\\s*at (?:(?.+) )?(?:\\(?(?:(?\\S+):wasm-function\\[(?\\d+)\\]\\:0x(?[0-9a-fA-F]+))\\)?)$",!0,!1,!1,!1)) +s($,"yN","ts",()=>A.J("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$",!0,!1,!1,!1)) +s($,"yC","ti",()=>A.J("(\\S+)@(\\S+) line (\\d+) >.* (Function|eval):\\d+:\\d+",!0,!1,!1,!1)) +s($,"yE","tk",()=>A.J("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$",!0,!1,!1,!1)) +s($,"yG","tm",()=>A.J("^(?.*?)@(?:(?\\S+).*?:wasm-function\\[(?\\d+)\\]:0x(?[0-9a-fA-F]+))$",!0,!1,!1,!1)) +s($,"yL","tq",()=>A.J("^.*?wasm-function\\[(?.*)\\]@\\[wasm code\\]$",!0,!1,!1,!1)) +s($,"yH","tn",()=>A.J("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d].*)$",!0,!1,!1,!1)) +s($,"yB","th",()=>A.J("<(|[^>]+)_async_body>",!0,!1,!1,!1)) +s($,"yK","tp",()=>A.J("^\\.",!0,!1,!1,!1)) +s($,"xP","rU",()=>A.J("^[a-zA-Z][-+.a-zA-Z\\d]*://",!0,!1,!1,!1)) +s($,"xQ","rV",()=>A.J("^([a-zA-Z]:[\\\\/]|\\\\\\\\)",!0,!1,!1,!1)) +s($,"yQ","tv",()=>A.J("\\n ?at ",!0,!1,!1,!1)) +s($,"yR","tw",()=>A.J(" ?at ",!0,!1,!1,!1)) +s($,"yD","tj",()=>A.J("@\\S+ line \\d+ >.* (Function|eval):\\d+:\\d+",!0,!1,!1,!1)) +s($,"yF","tl",()=>A.J("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$",!0,!1,!0,!1)) +s($,"yI","to",()=>A.J("^[^\\s<][^\\s]*( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$",!0,!1,!0,!1)) +s($,"z4","pz",()=>A.J("^\\n?$",!0,!1,!0,!1))})();(function nativeSupport(){!function(){var s=function(a){var m={} +m[a]=1 +return Object.keys(hunkHelpers.convertToFastObject(m))[0]} +v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} +var r="___dart_isolate_tags_" +var q=Object[r]||(Object[r]=Object.create(null)) +var p="_ZxYxX" +for(var o=0;;o++){var n=s(p+"_"+o+"_") +if(!(n in q)){q[n]=1 +v.isolateTag=n +break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() +hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer:A.d1,ArrayBufferView:A.es,DataView:A.d2,Float32Array:A.hi,Float64Array:A.hj,Int16Array:A.hk,Int32Array:A.d3,Int8Array:A.hl,Uint16Array:A.hm,Uint32Array:A.hn,Uint8ClampedArray:A.et,CanvasPixelArray:A.et,Uint8Array:A.bx}) +hunkHelpers.setOrUpdateLeafTags({ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false}) +A.d4.$nativeSuperclassTag="ArrayBufferView" +A.f4.$nativeSuperclassTag="ArrayBufferView" +A.f5.$nativeSuperclassTag="ArrayBufferView" +A.c1.$nativeSuperclassTag="ArrayBufferView" +A.f6.$nativeSuperclassTag="ArrayBufferView" +A.f7.$nativeSuperclassTag="ArrayBufferView" +A.aR.$nativeSuperclassTag="ArrayBufferView"})() +Function.prototype.$0=function(){return this()} +Function.prototype.$1=function(a){return this(a)} +Function.prototype.$2=function(a,b){return this(a,b)} +Function.prototype.$1$1=function(a){return this(a)} +Function.prototype.$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$4=function(a,b,c,d){return this(a,b,c,d)} +Function.prototype.$3$1=function(a){return this(a)} +Function.prototype.$2$1=function(a){return this(a)} +Function.prototype.$3$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$2$2=function(a,b){return this(a,b)} +Function.prototype.$2$3=function(a,b,c){return this(a,b,c)} +Function.prototype.$1$2=function(a,b){return this(a,b)} +Function.prototype.$5=function(a,b,c,d,e){return this(a,b,c,d,e)} +Function.prototype.$6=function(a,b,c,d,e,f){return this(a,b,c,d,e,f)} +Function.prototype.$1$0=function(){return this()} +convertAllToFastObject(w) +convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) +return}if(typeof document.currentScript!="undefined"){a(document.currentScript) +return}var s=document.scripts +function onLoad(b){for(var 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 G@_zvP@rVQf literal 0 HcmV?d00001 diff --git a/assets/icon/icon_mini.jpg b/assets/icon/icon_mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..470d86f6587a89f2b2453002aba5f084c0e37bde GIT binary patch literal 44247 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
1>;KR~zTf#q0CKS}hxX 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 Hf9m-UyhbpU literal 0 HcmV?d00001 diff --git a/assets/mermaid.js b/assets/mermaid.js new file mode 100644 index 0000000..6ffd928 --- /dev/null +++ b/assets/mermaid.js @@ -0,0 +1,2314 @@ +"use strict";var __esbuild_esm_mermaid=(()=>{var cxe=Object.create;var R1=Object.defineProperty;var uxe=Object.getOwnPropertyDescriptor;var hxe=Object.getOwnPropertyNames;var fxe=Object.getPrototypeOf,dxe=Object.prototype.hasOwnProperty;var o=(t,e)=>R1(t,"name",{value:e,configurable:!0});var M=(t,e)=>()=>(t&&(e=t(t=0)),e);var Ni=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),vr=(t,e)=>{for(var r in e)R1(t,r,{get:e[r],enumerable:!0})},Cb=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of hxe(e))!dxe.call(t,i)&&i!==r&&R1(t,i,{get:()=>e[i],enumerable:!(n=uxe(e,i))||n.enumerable});return t},Er=(t,e,r)=>(Cb(t,e,"default"),r&&Cb(r,e,"default")),ka=(t,e,r)=>(r=t!=null?cxe(fxe(t)):{},Cb(e||!t||!t.__esModule?R1(r,"default",{value:t,enumerable:!0}):r,t)),pxe=t=>Cb(R1({},"__esModule",{value:!0}),t);var Ab=Ni((wS,TS)=>{"use strict";(function(t,e){typeof wS=="object"&&typeof TS<"u"?TS.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(wS,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",a="minute",s="hour",l="day",u="week",h="month",f="quarter",d="year",p="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:o(function(k){var R=["th","st","nd","rd"],S=k%100;return"["+k+(R[(S-20)%10]||R[S]||R[0])+"]"},"ordinal")},x=o(function(k,R,S){var O=String(k);return!O||O.length>=R?k:""+Array(R+1-O.length).join(S)+k},"m"),b={s:x,z:o(function(k){var R=-k.utcOffset(),S=Math.abs(R),O=Math.floor(S/60),N=S%60;return(R<=0?"+":"-")+x(O,2,"0")+":"+x(N,2,"0")},"z"),m:o(function k(R,S){if(R.date()1)return k(F[0])}else{var B=R.name;_[B]=R,N=B}return!O&&N&&(w=N),N||!O&&w},"t"),C=o(function(k,R){if(E(k))return k.clone();var S=typeof R=="object"?R:{};return S.date=k,S.args=arguments,new I(S)},"O"),A=b;A.l=L,A.i=E,A.w=function(k,R){return C(k,{locale:R.$L,utc:R.$u,x:R.$x,$offset:R.$offset})};var I=function(){function k(S){this.$L=L(S.locale,null,!0),this.parse(S),this.$x=this.$x||S.x||{},this[T]=!0}o(k,"M");var R=k.prototype;return R.parse=function(S){this.$d=function(O){var N=O.date,P=O.utc;if(N===null)return new Date(NaN);if(A.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N=="string"&&!/Z$/i.test(N)){var F=N.match(g);if(F){var B=F[2]-1||0,$=(F[7]||"0").substring(0,3);return P?new Date(Date.UTC(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)):new Date(F[1],B,F[3]||1,F[4]||0,F[5]||0,F[6]||0,$)}}return new Date(N)}(S),this.init()},R.init=function(){var S=this.$d;this.$y=S.getFullYear(),this.$M=S.getMonth(),this.$D=S.getDate(),this.$W=S.getDay(),this.$H=S.getHours(),this.$m=S.getMinutes(),this.$s=S.getSeconds(),this.$ms=S.getMilliseconds()},R.$utils=function(){return A},R.isValid=function(){return this.$d.toString()!==m},R.isSame=function(S,O){var N=C(S);return this.startOf(O)<=N&&N<=this.endOf(O)},R.isAfter=function(S,O){return C(S){"use strict";EF=ka(Ab(),1),jc={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Y={trace:o((...t)=>{},"trace"),debug:o((...t)=>{},"debug"),info:o((...t)=>{},"info"),warn:o((...t)=>{},"warn"),error:o((...t)=>{},"error"),fatal:o((...t)=>{},"fatal")},M1=o(function(t="fatal"){let e=jc.fatal;typeof t=="string"?t.toLowerCase()in jc&&(e=jc[t]):typeof t=="number"&&(e=t),Y.trace=()=>{},Y.debug=()=>{},Y.info=()=>{},Y.warn=()=>{},Y.error=()=>{},Y.fatal=()=>{},e<=jc.fatal&&(Y.fatal=console.error?console.error.bind(console,bo("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",bo("FATAL"))),e<=jc.error&&(Y.error=console.error?console.error.bind(console,bo("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",bo("ERROR"))),e<=jc.warn&&(Y.warn=console.warn?console.warn.bind(console,bo("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",bo("WARN"))),e<=jc.info&&(Y.info=console.info?console.info.bind(console,bo("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",bo("INFO"))),e<=jc.debug&&(Y.debug=console.debug?console.debug.bind(console,bo("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("DEBUG"))),e<=jc.trace&&(Y.trace=console.debug?console.debug.bind(console,bo("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",bo("TRACE")))},"setLogLevel"),bo=o(t=>`%c${(0,EF.default)().format("ss.SSS")} : ${t} : `,"format")});var mxe,Z0,kS,SF,_b=M(()=>{"use strict";mxe=Object.freeze({left:0,top:0,width:16,height:16}),Z0=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),kS=Object.freeze({...mxe,...Z0}),SF=Object.freeze({...kS,body:"",hidden:!1})});var gxe,CF,AF=M(()=>{"use strict";_b();gxe=Object.freeze({width:null,height:null}),CF=Object.freeze({...gxe,...Z0})});var Lb,ES,Db,_F=M(()=>{"use strict";Lb=/^[a-z0-9]+(-[a-z0-9]+)*$/,ES=o((t,e,r,n="")=>{let i=t.split(":");if(t.slice(0,1)==="@"){if(i.length<2||i.length>3)return null;n=i.shift().slice(1)}if(i.length>3||!i.length)return null;if(i.length>1){let l=i.pop(),u=i.pop(),h={provider:i.length>0?i[0]:n,prefix:u,name:l};return e&&!Db(h)?null:h}let a=i[0],s=a.split("-");if(s.length>1){let l={provider:n,prefix:s.shift(),name:s.join("-")};return e&&!Db(l)?null:l}if(r&&n===""){let l={provider:n,prefix:"",name:a};return e&&!Db(l,r)?null:l}return null},"stringToIcon"),Db=o((t,e)=>t?!!((t.provider===""||t.provider.match(Lb))&&(e&&t.prefix===""||t.prefix.match(Lb))&&t.name.match(Lb)):!1,"validateIconName")});function LF(t,e){let r={};!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0);let n=((t.rotate||0)+(e.rotate||0))%4;return n&&(r.rotate=n),r}var DF=M(()=>{"use strict";o(LF,"mergeIconTransformations")});function SS(t,e){let r=LF(t,e);for(let n in SF)n in Z0?n in t&&!(n in r)&&(r[n]=Z0[n]):n in e?r[n]=e[n]:n in t&&(r[n]=t[n]);return r}var NF=M(()=>{"use strict";_b();DF();o(SS,"mergeIconData")});function RF(t,e){let r=t.icons,n=t.aliases||Object.create(null),i=Object.create(null);function a(s){if(r[s])return i[s]=[];if(!(s in i)){i[s]=null;let l=n[s]&&n[s].parent,u=l&&a(l);u&&(i[s]=[l].concat(u))}return i[s]}return o(a,"resolve"),(e||Object.keys(r).concat(Object.keys(n))).forEach(a),i}var MF=M(()=>{"use strict";o(RF,"getIconsTree")});function IF(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(l){a=SS(n[l]||i[l],a)}return o(s,"parse"),s(e),r.forEach(s),SS(t,a)}function CS(t,e){if(t.icons[e])return IF(t,e,[]);let r=RF(t,[e])[e];return r?IF(t,e,r):null}var OF=M(()=>{"use strict";NF();MF();o(IF,"internalGetIconData");o(CS,"getIconData")});function AS(t,e,r){if(e===1)return t;if(r=r||100,typeof t=="number")return Math.ceil(t*e*r)/r;if(typeof t!="string")return t;let n=t.split(yxe);if(n===null||!n.length)return t;let i=[],a=n.shift(),s=vxe.test(a);for(;;){if(s){let l=parseFloat(a);isNaN(l)?i.push(a):i.push(Math.ceil(l*e*r)/r)}else i.push(a);if(a=n.shift(),a===void 0)return i.join("");s=!s}}var yxe,vxe,PF=M(()=>{"use strict";yxe=/(-?[0-9.]*[0-9]+[0-9.]*)/g,vxe=/^-?[0-9.]*[0-9]+[0-9.]*$/g;o(AS,"calculateSize")});function xxe(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;n>=0;){let i=t.indexOf(">",n),a=t.indexOf("",a);if(s===-1)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function bxe(t,e){return t?""+t+""+e:e}function BF(t,e,r){let n=xxe(t);return bxe(n.defs,e+n.content+r)}var FF=M(()=>{"use strict";o(xxe,"splitSVGDefs");o(bxe,"mergeDefsAndContent");o(BF,"wrapSVGContent")});function _S(t,e){let r={...kS,...t},n={...CF,...e},i={left:r.left,top:r.top,width:r.width,height:r.height},a=r.body;[r,n].forEach(y=>{let v=[],x=y.hFlip,b=y.vFlip,w=y.rotate;x?b?w+=2:(v.push("translate("+(i.width+i.left).toString()+" "+(0-i.top).toString()+")"),v.push("scale(-1 1)"),i.top=i.left=0):b&&(v.push("translate("+(0-i.left).toString()+" "+(i.height+i.top).toString()+")"),v.push("scale(1 -1)"),i.top=i.left=0);let _;switch(w<0&&(w-=Math.floor(w/4)*4),w=w%4,w){case 1:_=i.height/2+i.top,v.unshift("rotate(90 "+_.toString()+" "+_.toString()+")");break;case 2:v.unshift("rotate(180 "+(i.width/2+i.left).toString()+" "+(i.height/2+i.top).toString()+")");break;case 3:_=i.width/2+i.left,v.unshift("rotate(-90 "+_.toString()+" "+_.toString()+")");break}w%2===1&&(i.left!==i.top&&(_=i.left,i.left=i.top,i.top=_),i.width!==i.height&&(_=i.width,i.width=i.height,i.height=_)),v.length&&(a=BF(a,'',""))});let s=n.width,l=n.height,u=i.width,h=i.height,f,d;s===null?(d=l===null?"1em":l==="auto"?h:l,f=AS(d,u/h)):(f=s==="auto"?u:s,d=l===null?AS(f,h/u):l==="auto"?h:l);let p={},m=o((y,v)=>{wxe(v)||(p[y]=v.toString())},"setAttr");m("width",f),m("height",d);let g=[i.left,i.top,u,h];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:a}}var wxe,zF=M(()=>{"use strict";_b();AF();PF();FF();wxe=o(t=>t==="unset"||t==="undefined"||t==="none","isUnsetKeyword");o(_S,"iconToSVG")});function LS(t,e=kxe){let r=[],n;for(;n=Txe.exec(t);)r.push(n[1]);if(!r.length)return t;let i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(a=>{let s=typeof e=="function"?e(a):e+(Exe++).toString(),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t=t.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),t=t.replace(new RegExp(i,"g"),""),t}var Txe,kxe,Exe,GF=M(()=>{"use strict";Txe=/\sid="(\S+)"/g,kxe="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16),Exe=0;o(LS,"replaceIDs")});function DS(t,e){let r=t.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(let n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var $F=M(()=>{"use strict";o(DS,"iconToHTML")});var UF=Ni((lst,VF)=>{"use strict";var J0=1e3,ep=J0*60,tp=ep*60,Ff=tp*24,Sxe=Ff*7,Cxe=Ff*365.25;VF.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Axe(t);if(r==="number"&&isFinite(t))return e.long?Lxe(t):_xe(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Axe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Cxe;case"weeks":case"week":case"w":return r*Sxe;case"days":case"day":case"d":return r*Ff;case"hours":case"hour":case"hrs":case"hr":case"h":return r*tp;case"minutes":case"minute":case"mins":case"min":case"m":return r*ep;case"seconds":case"second":case"secs":case"sec":case"s":return r*J0;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}o(Axe,"parse");function _xe(t){var e=Math.abs(t);return e>=Ff?Math.round(t/Ff)+"d":e>=tp?Math.round(t/tp)+"h":e>=ep?Math.round(t/ep)+"m":e>=J0?Math.round(t/J0)+"s":t+"ms"}o(_xe,"fmtShort");function Lxe(t){var e=Math.abs(t);return e>=Ff?Nb(t,e,Ff,"day"):e>=tp?Nb(t,e,tp,"hour"):e>=ep?Nb(t,e,ep,"minute"):e>=J0?Nb(t,e,J0,"second"):t+" ms"}o(Lxe,"fmtLong");function Nb(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}o(Nb,"plural")});var WF=Ni((ust,HF)=>{"use strict";function Dxe(t){r.debug=r,r.default=r,r.coerce=u,r.disable=a,r.enable=i,r.enabled=s,r.humanize=UF(),r.destroy=h,Object.keys(t).forEach(f=>{r[f]=t[f]}),r.names=[],r.skips=[],r.formatters={};function e(f){let d=0;for(let p=0;p{if(E==="%%")return"%";_++;let C=r.formatters[L];if(typeof C=="function"){let A=v[_];E=C.call(x,A),v.splice(_,1),_--}return E}),r.formatArgs.call(x,v),(x.log||r.log).apply(x,v)}return o(y,"debug"),y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:o(()=>p!==null?p:(m!==r.namespaces&&(m=r.namespaces,g=r.enabled(f)),g),"get"),set:o(v=>{p=v},"set")}),typeof r.init=="function"&&r.init(y),y}o(r,"createDebug");function n(f,d){let p=r(this.namespace+(typeof d>"u"?":":d)+f);return p.log=this.log,p}o(n,"extend");function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let d,p=(typeof f=="string"?f:"").split(/[\s,]+/),m=p.length;for(d=0;d"-"+d)].join(",");return r.enable(""),f}o(a,"disable");function s(f){if(f[f.length-1]==="*")return!0;let d,p;for(d=0,p=r.skips.length;d{"use strict";Us.formatArgs=Rxe;Us.save=Mxe;Us.load=Ixe;Us.useColors=Nxe;Us.storage=Oxe();Us.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Us.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Nxe(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}o(Nxe,"useColors");function Rxe(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Rb.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}o(Rxe,"formatArgs");Us.log=console.debug||console.log||(()=>{});function Mxe(t){try{t?Us.storage.setItem("debug",t):Us.storage.removeItem("debug")}catch{}}o(Mxe,"save");function Ixe(){let t;try{t=Us.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}o(Ixe,"load");function Oxe(){try{return localStorage}catch{}}o(Oxe,"localstorage");Rb.exports=WF()(Us);var{formatters:Pxe}=Rb.exports;Pxe.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var dst,qF=M(()=>{"use strict";_F();OF();zF();GF();$F();dst=ka(YF(),1)});var RS,NS,XF,Mb,Bxe,wo,Kc=M(()=>{"use strict";ht();qF();RS={body:'?',height:80,width:80},NS=new Map,XF=new Map,Mb=o(t=>{for(let e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(Y.debug("Registering icon pack:",e.name),"loader"in e)XF.set(e.name,e.loader);else if("icons"in e)NS.set(e.name,e.icons);else throw Y.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Bxe=o(async(t,e)=>{let r=ES(t,!0,e!==void 0);if(!r)throw new Error(`Invalid icon name: ${t}`);let n=r.prefix||e;if(!n)throw new Error(`Icon name must contain a prefix: ${t}`);let i=NS.get(n);if(!i){let s=XF.get(n);if(!s)throw new Error(`Icon set not found: ${r.prefix}`);try{i={...await s(),prefix:n},NS.set(n,i)}catch(l){throw Y.error(l),new Error(`Failed to load icon set: ${r.prefix}`)}}let a=CS(i,r.name);if(!a)throw new Error(`Icon not found: ${t}`);return a},"getRegisteredIconData"),wo=o(async(t,e)=>{let r;try{r=await Bxe(t,e?.fallbackPrefix)}catch(a){Y.error(a),r=RS}let n=_S(r,e);return DS(LS(n.body),n.attributes)},"getIconSVG")});function Ib(t){for(var e=[],r=1;r{"use strict";o(Ib,"dedent")});var Ob,zf,jF,Pb=M(()=>{"use strict";Ob=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,zf=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,jF=/\s*%%.*\n/gm});var rp,IS=M(()=>{"use strict";rp=class extends Error{static{o(this,"UnknownDiagramError")}constructor(e){super(e),this.name="UnknownDiagramError"}}});var Gf,np,Bb,OS,KF,$f=M(()=>{"use strict";ht();Pb();IS();Gf={},np=o(function(t,e){t=t.replace(Ob,"").replace(zf,"").replace(jF,` +`);for(let[r,{detector:n}]of Object.entries(Gf))if(n(t,e))return r;throw new rp(`No diagram type detected matching given configuration for text: ${t}`)},"detectType"),Bb=o((...t)=>{for(let{id:e,detector:r,loader:n}of t)OS(e,r,n)},"registerLazyLoadedDiagrams"),OS=o((t,e,r)=>{Gf[t]&&Y.warn(`Detector with key ${t} already exists. Overwriting.`),Gf[t]={detector:e,loader:r},Y.debug(`Detector with key ${t} added${r?" with loader":""}`)},"addDetector"),KF=o(t=>Gf[t].loader,"getDiagramLoader")});var I1,QF,PS=M(()=>{"use strict";I1=function(){var t=o(function(He,xe,X,fe){for(X=X||{},fe=He.length;fe--;X[He[fe]]=xe);return X},"o"),e=[1,24],r=[1,25],n=[1,26],i=[1,27],a=[1,28],s=[1,63],l=[1,64],u=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],m=[1,29],g=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],_=[1,36],T=[1,37],E=[1,38],L=[1,39],C=[1,40],A=[1,41],I=[1,42],D=[1,43],k=[1,44],R=[1,45],S=[1,46],O=[1,47],N=[1,48],P=[1,50],F=[1,51],B=[1,52],$=[1,53],z=[1,54],W=[1,55],j=[1,56],K=[1,57],ie=[1,58],Q=[1,59],ee=[1,60],J=[14,42],H=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],q=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Z=[1,82],ae=[1,83],ue=[1,84],ce=[1,85],te=[12,14,42],De=[12,14,33,42],oe=[12,14,33,42,76,77,79,80],ke=[12,33],Fe=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Be={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:o(function(xe,X,fe,he,ge,ne,ye){var U=ne.length-1;switch(ge){case 3:he.setDirection("TB");break;case 4:he.setDirection("BT");break;case 5:he.setDirection("RL");break;case 6:he.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:he.setC4Type(ne[U-3]);break;case 19:he.setTitle(ne[U].substring(6)),this.$=ne[U].substring(6);break;case 20:he.setAccDescription(ne[U].substring(15)),this.$=ne[U].substring(15);break;case 21:this.$=ne[U].trim(),he.setTitle(this.$);break;case 22:case 23:this.$=ne[U].trim(),he.setAccDescription(this.$);break;case 28:ne[U].splice(2,0,"ENTERPRISE"),he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 29:ne[U].splice(2,0,"SYSTEM"),he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 30:he.addPersonOrSystemBoundary(...ne[U]),this.$=ne[U];break;case 31:ne[U].splice(2,0,"CONTAINER"),he.addContainerBoundary(...ne[U]),this.$=ne[U];break;case 32:he.addDeploymentNode("node",...ne[U]),this.$=ne[U];break;case 33:he.addDeploymentNode("nodeL",...ne[U]),this.$=ne[U];break;case 34:he.addDeploymentNode("nodeR",...ne[U]),this.$=ne[U];break;case 35:he.popBoundaryParseStack();break;case 39:he.addPersonOrSystem("person",...ne[U]),this.$=ne[U];break;case 40:he.addPersonOrSystem("external_person",...ne[U]),this.$=ne[U];break;case 41:he.addPersonOrSystem("system",...ne[U]),this.$=ne[U];break;case 42:he.addPersonOrSystem("system_db",...ne[U]),this.$=ne[U];break;case 43:he.addPersonOrSystem("system_queue",...ne[U]),this.$=ne[U];break;case 44:he.addPersonOrSystem("external_system",...ne[U]),this.$=ne[U];break;case 45:he.addPersonOrSystem("external_system_db",...ne[U]),this.$=ne[U];break;case 46:he.addPersonOrSystem("external_system_queue",...ne[U]),this.$=ne[U];break;case 47:he.addContainer("container",...ne[U]),this.$=ne[U];break;case 48:he.addContainer("container_db",...ne[U]),this.$=ne[U];break;case 49:he.addContainer("container_queue",...ne[U]),this.$=ne[U];break;case 50:he.addContainer("external_container",...ne[U]),this.$=ne[U];break;case 51:he.addContainer("external_container_db",...ne[U]),this.$=ne[U];break;case 52:he.addContainer("external_container_queue",...ne[U]),this.$=ne[U];break;case 53:he.addComponent("component",...ne[U]),this.$=ne[U];break;case 54:he.addComponent("component_db",...ne[U]),this.$=ne[U];break;case 55:he.addComponent("component_queue",...ne[U]),this.$=ne[U];break;case 56:he.addComponent("external_component",...ne[U]),this.$=ne[U];break;case 57:he.addComponent("external_component_db",...ne[U]),this.$=ne[U];break;case 58:he.addComponent("external_component_queue",...ne[U]),this.$=ne[U];break;case 60:he.addRel("rel",...ne[U]),this.$=ne[U];break;case 61:he.addRel("birel",...ne[U]),this.$=ne[U];break;case 62:he.addRel("rel_u",...ne[U]),this.$=ne[U];break;case 63:he.addRel("rel_d",...ne[U]),this.$=ne[U];break;case 64:he.addRel("rel_l",...ne[U]),this.$=ne[U];break;case 65:he.addRel("rel_r",...ne[U]),this.$=ne[U];break;case 66:he.addRel("rel_b",...ne[U]),this.$=ne[U];break;case 67:ne[U].splice(0,1),he.addRel("rel",...ne[U]),this.$=ne[U];break;case 68:he.updateElStyle("update_el_style",...ne[U]),this.$=ne[U];break;case 69:he.updateRelStyle("update_rel_style",...ne[U]),this.$=ne[U];break;case 70:he.updateLayoutConfig("update_layout_config",...ne[U]),this.$=ne[U];break;case 71:this.$=[ne[U]];break;case 72:ne[U].unshift(ne[U-1]),this.$=ne[U];break;case 73:case 75:this.$=ne[U].trim();break;case 74:let Te={};Te[ne[U-1].trim()]=ne[U].trim(),this.$=Te;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:70,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:71,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:72,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{13:73,19:20,20:21,21:22,22:e,23:r,24:n,26:i,28:a,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{14:[1,74]},t(J,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee}),t(J,[2,14]),t(H,[2,16],{12:[1,76]}),t(J,[2,36],{12:[1,77]}),t(q,[2,19]),t(q,[2,20]),{25:[1,78]},{27:[1,79]},t(q,[2,23]),{35:80,75:81,76:Z,77:ae,79:ue,80:ce},{35:86,75:81,76:Z,77:ae,79:ue,80:ce},{35:87,75:81,76:Z,77:ae,79:ue,80:ce},{35:88,75:81,76:Z,77:ae,79:ue,80:ce},{35:89,75:81,76:Z,77:ae,79:ue,80:ce},{35:90,75:81,76:Z,77:ae,79:ue,80:ce},{35:91,75:81,76:Z,77:ae,79:ue,80:ce},{35:92,75:81,76:Z,77:ae,79:ue,80:ce},{35:93,75:81,76:Z,77:ae,79:ue,80:ce},{35:94,75:81,76:Z,77:ae,79:ue,80:ce},{35:95,75:81,76:Z,77:ae,79:ue,80:ce},{35:96,75:81,76:Z,77:ae,79:ue,80:ce},{35:97,75:81,76:Z,77:ae,79:ue,80:ce},{35:98,75:81,76:Z,77:ae,79:ue,80:ce},{35:99,75:81,76:Z,77:ae,79:ue,80:ce},{35:100,75:81,76:Z,77:ae,79:ue,80:ce},{35:101,75:81,76:Z,77:ae,79:ue,80:ce},{35:102,75:81,76:Z,77:ae,79:ue,80:ce},{35:103,75:81,76:Z,77:ae,79:ue,80:ce},{35:104,75:81,76:Z,77:ae,79:ue,80:ce},t(te,[2,59]),{35:105,75:81,76:Z,77:ae,79:ue,80:ce},{35:106,75:81,76:Z,77:ae,79:ue,80:ce},{35:107,75:81,76:Z,77:ae,79:ue,80:ce},{35:108,75:81,76:Z,77:ae,79:ue,80:ce},{35:109,75:81,76:Z,77:ae,79:ue,80:ce},{35:110,75:81,76:Z,77:ae,79:ue,80:ce},{35:111,75:81,76:Z,77:ae,79:ue,80:ce},{35:112,75:81,76:Z,77:ae,79:ue,80:ce},{35:113,75:81,76:Z,77:ae,79:ue,80:ce},{35:114,75:81,76:Z,77:ae,79:ue,80:ce},{35:115,75:81,76:Z,77:ae,79:ue,80:ce},{20:116,29:49,30:61,32:62,34:s,36:l,37:u,38:h,39:f,40:d,41:p,43:23,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee},{12:[1,118],33:[1,117]},{35:119,75:81,76:Z,77:ae,79:ue,80:ce},{35:120,75:81,76:Z,77:ae,79:ue,80:ce},{35:121,75:81,76:Z,77:ae,79:ue,80:ce},{35:122,75:81,76:Z,77:ae,79:ue,80:ce},{35:123,75:81,76:Z,77:ae,79:ue,80:ce},{35:124,75:81,76:Z,77:ae,79:ue,80:ce},{35:125,75:81,76:Z,77:ae,79:ue,80:ce},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(J,[2,15]),t(H,[2,17],{21:22,19:130,22:e,23:r,24:n,26:i,28:a}),t(J,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:n,26:i,28:a,34:s,36:l,37:u,38:h,39:f,40:d,41:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w,51:_,52:T,53:E,54:L,55:C,56:A,57:I,58:D,59:k,60:R,61:S,62:O,63:N,64:P,65:F,66:B,67:$,68:z,69:W,70:j,71:K,72:ie,73:Q,74:ee}),t(q,[2,21]),t(q,[2,22]),t(te,[2,39]),t(De,[2,71],{75:81,35:132,76:Z,77:ae,79:ue,80:ce}),t(oe,[2,73]),{78:[1,133]},t(oe,[2,75]),t(oe,[2,76]),t(te,[2,40]),t(te,[2,41]),t(te,[2,42]),t(te,[2,43]),t(te,[2,44]),t(te,[2,45]),t(te,[2,46]),t(te,[2,47]),t(te,[2,48]),t(te,[2,49]),t(te,[2,50]),t(te,[2,51]),t(te,[2,52]),t(te,[2,53]),t(te,[2,54]),t(te,[2,55]),t(te,[2,56]),t(te,[2,57]),t(te,[2,58]),t(te,[2,60]),t(te,[2,61]),t(te,[2,62]),t(te,[2,63]),t(te,[2,64]),t(te,[2,65]),t(te,[2,66]),t(te,[2,67]),t(te,[2,68]),t(te,[2,69]),t(te,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(ke,[2,28]),t(ke,[2,29]),t(ke,[2,30]),t(ke,[2,31]),t(ke,[2,32]),t(ke,[2,33]),t(ke,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(H,[2,18]),t(J,[2,38]),t(De,[2,72]),t(oe,[2,74]),t(te,[2,24]),t(te,[2,35]),t(Fe,[2,25]),t(Fe,[2,26],{12:[1,138]}),t(Fe,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:o(function(xe,X){if(X.recoverable)this.trace(xe);else{var fe=new Error(xe);throw fe.hash=X,fe}},"parseError"),parse:o(function(xe){var X=this,fe=[0],he=[],ge=[null],ne=[],ye=this.table,U="",Te=0,se=0,Ee=0,Ae=2,Pe=1,Me=ne.slice.call(arguments,1),me=Object.create(this.lexer),We={yy:{}};for(var Re in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Re)&&(We.yy[Re]=this.yy[Re]);me.setInput(xe,We.yy),We.yy.lexer=me,We.yy.parser=this,typeof me.yylloc>"u"&&(me.yylloc={});var tt=me.yylloc;ne.push(tt);var gt=me.options&&me.options.ranges;typeof We.yy.parseError=="function"?this.parseError=We.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Et(zt){fe.length=fe.length-2*zt,ge.length=ge.length-zt,ne.length=ne.length-zt}o(Et,"popStack");function vt(){var zt;return zt=he.pop()||me.lex()||Pe,typeof zt!="number"&&(zt instanceof Array&&(he=zt,zt=he.pop()),zt=X.symbols_[zt]||zt),zt}o(vt,"lex");for(var Ye,Tt,$e,rt,ft,kt,er={},dt,Xe,ct,Lt;;){if($e=fe[fe.length-1],this.defaultActions[$e]?rt=this.defaultActions[$e]:((Ye===null||typeof Ye>"u")&&(Ye=vt()),rt=ye[$e]&&ye[$e][Ye]),typeof rt>"u"||!rt.length||!rt[0]){var Rt="";Lt=[];for(dt in ye[$e])this.terminals_[dt]&&dt>Ae&&Lt.push("'"+this.terminals_[dt]+"'");me.showPosition?Rt="Parse error on line "+(Te+1)+`: +`+me.showPosition()+` +Expecting `+Lt.join(", ")+", got '"+(this.terminals_[Ye]||Ye)+"'":Rt="Parse error on line "+(Te+1)+": Unexpected "+(Ye==Pe?"end of input":"'"+(this.terminals_[Ye]||Ye)+"'"),this.parseError(Rt,{text:me.match,token:this.terminals_[Ye]||Ye,line:me.yylineno,loc:tt,expected:Lt})}if(rt[0]instanceof Array&&rt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$e+", token: "+Ye);switch(rt[0]){case 1:fe.push(Ye),ge.push(me.yytext),ne.push(me.yylloc),fe.push(rt[1]),Ye=null,Tt?(Ye=Tt,Tt=null):(se=me.yyleng,U=me.yytext,Te=me.yylineno,tt=me.yylloc,Ee>0&&Ee--);break;case 2:if(Xe=this.productions_[rt[1]][1],er.$=ge[ge.length-Xe],er._$={first_line:ne[ne.length-(Xe||1)].first_line,last_line:ne[ne.length-1].last_line,first_column:ne[ne.length-(Xe||1)].first_column,last_column:ne[ne.length-1].last_column},gt&&(er._$.range=[ne[ne.length-(Xe||1)].range[0],ne[ne.length-1].range[1]]),kt=this.performAction.apply(er,[U,se,Te,We.yy,rt[1],ge,ne].concat(Me)),typeof kt<"u")return kt;Xe&&(fe=fe.slice(0,-1*Xe*2),ge=ge.slice(0,-1*Xe),ne=ne.slice(0,-1*Xe)),fe.push(this.productions_[rt[1]][0]),ge.push(er.$),ne.push(er._$),ct=ye[fe[fe.length-2]][fe[fe.length-1]],fe.push(ct);break;case 3:return!0}}return!0},"parse")},Ve=function(){var He={EOF:1,parseError:o(function(X,fe){if(this.yy.parser)this.yy.parser.parseError(X,fe);else throw new Error(X)},"parseError"),setInput:o(function(xe,X){return this.yy=X||this.yy||{},this._input=xe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var xe=this._input[0];this.yytext+=xe,this.yyleng++,this.offset++,this.match+=xe,this.matched+=xe;var X=xe.match(/(?:\r\n?|\n).*/g);return X?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),xe},"input"),unput:o(function(xe){var X=xe.length,fe=xe.split(/(?:\r\n?|\n)/g);this._input=xe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-X),this.offset-=X;var he=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),fe.length-1&&(this.yylineno-=fe.length-1);var ge=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:fe?(fe.length===he.length?this.yylloc.first_column:0)+he[he.length-fe.length].length-fe[0].length:this.yylloc.first_column-X},this.options.ranges&&(this.yylloc.range=[ge[0],ge[0]+this.yyleng-X]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(xe){this.unput(this.match.slice(xe))},"less"),pastInput:o(function(){var xe=this.matched.substr(0,this.matched.length-this.match.length);return(xe.length>20?"...":"")+xe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var xe=this.match;return xe.length<20&&(xe+=this._input.substr(0,20-xe.length)),(xe.substr(0,20)+(xe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var xe=this.pastInput(),X=new Array(xe.length+1).join("-");return xe+this.upcomingInput()+` +`+X+"^"},"showPosition"),test_match:o(function(xe,X){var fe,he,ge;if(this.options.backtrack_lexer&&(ge={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ge.yylloc.range=this.yylloc.range.slice(0))),he=xe[0].match(/(?:\r\n?|\n).*/g),he&&(this.yylineno+=he.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:he?he[he.length-1].length-he[he.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+xe[0].length},this.yytext+=xe[0],this.match+=xe[0],this.matches=xe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(xe[0].length),this.matched+=xe[0],fe=this.performAction.call(this,this.yy,this,X,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),fe)return fe;if(this._backtrack){for(var ne in ge)this[ne]=ge[ne];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var xe,X,fe,he;this._more||(this.yytext="",this.match="");for(var ge=this._currentRules(),ne=0;neX[0].length)){if(X=fe,he=ne,this.options.backtrack_lexer){if(xe=this.test_match(fe,ge[ne]),xe!==!1)return xe;if(this._backtrack){X=!1;continue}else return!1}else if(!this.options.flex)break}return X?(xe=this.test_match(X,ge[he]),xe!==!1?xe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var X=this.next();return X||this.lex()},"lex"),begin:o(function(X){this.conditionStack.push(X)},"begin"),popState:o(function(){var X=this.conditionStack.length-1;return X>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(X){return X=this.conditionStack.length-1-Math.abs(X||0),X>=0?this.conditionStack[X]:"INITIAL"},"topState"),pushState:o(function(X){this.begin(X)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(X,fe,he,ge){var ne=ge;switch(he){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,82,83,84,85],inclusive:!0}}};return He}();Be.lexer=Ve;function Ge(){this.yy={}}return o(Ge,"Parser"),Ge.prototype=Be,Be.Parser=Ge,new Ge}();I1.parser=I1;QF=I1});var BS,Gn,ip=M(()=>{"use strict";BS=o((t,e,{depth:r=2,clobber:n=!1}={})=>{let i={depth:r,clobber:n};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(a=>BS(t,a,i)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(a=>{t.includes(a)||t.push(a)}),t):t===void 0||r<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(a=>{typeof e[a]=="object"&&(t[a]===void 0||typeof t[a]=="object")?(t[a]===void 0&&(t[a]=Array.isArray(e[a])?[]:{}),t[a]=BS(t[a],e[a],{depth:r-1,clobber:n})):(n||typeof t[a]!="object"&&typeof e[a]!="object")&&(t[a]=e[a])}),t)},"assignWithDepth"),Gn=BS});var Fb,ZF,JF=M(()=>{"use strict";Fb={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:o(t=>t>=255?255:t<0?0:t,"r"),g:o(t=>t>=255?255:t<0?0:t,"g"),b:o(t=>t>=255?255:t<0?0:t,"b"),h:o(t=>t%360,"h"),s:o(t=>t>=100?100:t<0?0:t,"s"),l:o(t=>t>=100?100:t<0?0:t,"l"),a:o(t=>t>=1?1:t<0?0:t,"a")},toLinear:o(t=>{let e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},"toLinear"),hue2rgb:o((t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?t+(e-t)*6*r:r<.5?e:r<.6666666666666666?t+(e-t)*(.6666666666666666-r)*6:t),"hue2rgb"),hsl2rgb:o(({h:t,s:e,l:r},n)=>{if(!e)return r*2.55;t/=360,e/=100,r/=100;let i=r<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return Fb.hue2rgb(a,i,t+.3333333333333333)*255;case"g":return Fb.hue2rgb(a,i,t)*255;case"b":return Fb.hue2rgb(a,i,t-.3333333333333333)*255}},"hsl2rgb"),rgb2hsl:o(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;let i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if(n==="l")return s*100;if(i===a)return 0;let l=i-a,u=s>.5?l/(2-i-a):l/(i+a);if(n==="s")return u*100;switch(i){case t:return((e-r)/l+(e{"use strict";Fxe={clamp:o((t,e,r)=>e>r?Math.min(e,Math.max(r,t)):Math.min(r,Math.max(e,t)),"clamp"),round:o(t=>Math.round(t*1e10)/1e10,"round")},ez=Fxe});var zxe,rz,nz=M(()=>{"use strict";zxe={dec2hex:o(t=>{let e=Math.round(t).toString(16);return e.length>1?e:`0${e}`},"dec2hex")},rz=zxe});var Gxe,Yt,jl=M(()=>{"use strict";JF();tz();nz();Gxe={channel:ZF,lang:ez,unit:rz},Yt=Gxe});var Qc,Ri,O1=M(()=>{"use strict";jl();Qc={};for(let t=0;t<=255;t++)Qc[t]=Yt.unit.dec2hex(t);Ri={ALL:0,RGB:1,HSL:2}});var FS,iz,az=M(()=>{"use strict";O1();FS=class{static{o(this,"Type")}constructor(){this.type=Ri.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=Ri.ALL}is(e){return this.type===e}},iz=FS});var zS,sz,oz=M(()=>{"use strict";jl();az();O1();zS=class{static{o(this,"Channels")}constructor(e,r){this.color=r,this.changed=!1,this.data=e,this.type=new iz}set(e,r){return this.color=r,this.changed=!1,this.data=e,this.type.type=Ri.ALL,this}_ensureHSL(){let e=this.data,{h:r,s:n,l:i}=e;r===void 0&&(e.h=Yt.channel.rgb2hsl(e,"h")),n===void 0&&(e.s=Yt.channel.rgb2hsl(e,"s")),i===void 0&&(e.l=Yt.channel.rgb2hsl(e,"l"))}_ensureRGB(){let e=this.data,{r,g:n,b:i}=e;r===void 0&&(e.r=Yt.channel.hsl2rgb(e,"r")),n===void 0&&(e.g=Yt.channel.hsl2rgb(e,"g")),i===void 0&&(e.b=Yt.channel.hsl2rgb(e,"b"))}get r(){let e=this.data,r=e.r;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"r"))}get g(){let e=this.data,r=e.g;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"g"))}get b(){let e=this.data,r=e.b;return!this.type.is(Ri.HSL)&&r!==void 0?r:(this._ensureHSL(),Yt.channel.hsl2rgb(e,"b"))}get h(){let e=this.data,r=e.h;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"h"))}get s(){let e=this.data,r=e.s;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"s"))}get l(){let e=this.data,r=e.l;return!this.type.is(Ri.RGB)&&r!==void 0?r:(this._ensureRGB(),Yt.channel.rgb2hsl(e,"l"))}get a(){return this.data.a}set r(e){this.type.set(Ri.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(Ri.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(Ri.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(Ri.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(Ri.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(Ri.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}},sz=zS});var $xe,th,P1=M(()=>{"use strict";oz();$xe=new sz({r:0,g:0,b:0,a:0},"transparent"),th=$xe});var lz,Vf,GS=M(()=>{"use strict";P1();O1();lz={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:o(t=>{if(t.charCodeAt(0)!==35)return;let e=t.match(lz.re);if(!e)return;let r=e[1],n=parseInt(r,16),i=r.length,a=i%4===0,s=i>4,l=s?1:17,u=s?8:4,h=a?0:-1,f=s?255:15;return th.set({r:(n>>u*(h+3)&f)*l,g:(n>>u*(h+2)&f)*l,b:(n>>u*(h+1)&f)*l,a:a?(n&f)*l/255:1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`#${Qc[Math.round(e)]}${Qc[Math.round(r)]}${Qc[Math.round(n)]}${Qc[Math.round(i*255)]}`:`#${Qc[Math.round(e)]}${Qc[Math.round(r)]}${Qc[Math.round(n)]}`},"stringify")},Vf=lz});var zb,B1,cz=M(()=>{"use strict";jl();P1();zb={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:o(t=>{let e=t.match(zb.hueRe);if(e){let[,r,n]=e;switch(n){case"grad":return Yt.channel.clamp.h(parseFloat(r)*.9);case"rad":return Yt.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return Yt.channel.clamp.h(parseFloat(r)*360)}}return Yt.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:o(t=>{let e=t.charCodeAt(0);if(e!==104&&e!==72)return;let r=t.match(zb.re);if(!r)return;let[,n,i,a,s,l]=r;return th.set({h:zb._hue2deg(n),s:Yt.channel.clamp.s(parseFloat(i)),l:Yt.channel.clamp.l(parseFloat(a)),a:s?Yt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:o(t=>{let{h:e,s:r,l:n,a:i}=t;return i<1?`hsla(${Yt.lang.round(e)}, ${Yt.lang.round(r)}%, ${Yt.lang.round(n)}%, ${i})`:`hsl(${Yt.lang.round(e)}, ${Yt.lang.round(r)}%, ${Yt.lang.round(n)}%)`},"stringify")},B1=zb});var Gb,$S,uz=M(()=>{"use strict";GS();Gb={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:o(t=>{t=t.toLowerCase();let e=Gb.colors[t];if(e)return Vf.parse(e)},"parse"),stringify:o(t=>{let e=Vf.stringify(t);for(let r in Gb.colors)if(Gb.colors[r]===e)return r},"stringify")},$S=Gb});var hz,F1,fz=M(()=>{"use strict";jl();P1();hz={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:o(t=>{let e=t.charCodeAt(0);if(e!==114&&e!==82)return;let r=t.match(hz.re);if(!r)return;let[,n,i,a,s,l,u,h,f]=r;return th.set({r:Yt.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:Yt.channel.clamp.g(s?parseFloat(a)*2.55:parseFloat(a)),b:Yt.channel.clamp.b(u?parseFloat(l)*2.55:parseFloat(l)),a:h?Yt.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},t)},"parse"),stringify:o(t=>{let{r:e,g:r,b:n,a:i}=t;return i<1?`rgba(${Yt.lang.round(e)}, ${Yt.lang.round(r)}, ${Yt.lang.round(n)}, ${Yt.lang.round(i)})`:`rgb(${Yt.lang.round(e)}, ${Yt.lang.round(r)}, ${Yt.lang.round(n)})`},"stringify")},F1=hz});var Vxe,Mi,Zc=M(()=>{"use strict";GS();cz();uz();fz();O1();Vxe={format:{keyword:$S,hex:Vf,rgb:F1,rgba:F1,hsl:B1,hsla:B1},parse:o(t=>{if(typeof t!="string")return t;let e=Vf.parse(t)||F1.parse(t)||B1.parse(t)||$S.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:o(t=>!t.changed&&t.color?t.color:t.type.is(Ri.HSL)||t.data.r===void 0?B1.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?F1.stringify(t):Vf.stringify(t),"stringify")},Mi=Vxe});var Uxe,$b,VS=M(()=>{"use strict";jl();Zc();Uxe=o((t,e)=>{let r=Mi.parse(t);for(let n in e)r[n]=Yt.channel.clamp[n](e[n]);return Mi.stringify(r)},"change"),$b=Uxe});var Hxe,Hs,US=M(()=>{"use strict";jl();P1();Zc();VS();Hxe=o((t,e,r=0,n=1)=>{if(typeof t!="number")return $b(t,{a:e});let i=th.set({r:Yt.channel.clamp.r(t),g:Yt.channel.clamp.g(e),b:Yt.channel.clamp.b(r),a:Yt.channel.clamp.a(n)});return Mi.stringify(i)},"rgba"),Hs=Hxe});var Wxe,z1,dz=M(()=>{"use strict";jl();Zc();Wxe=o((t,e)=>Yt.lang.round(Mi.parse(t)[e]),"channel"),z1=Wxe});var Yxe,pz,mz=M(()=>{"use strict";jl();Zc();Yxe=o(t=>{let{r:e,g:r,b:n}=Mi.parse(t),i=.2126*Yt.channel.toLinear(e)+.7152*Yt.channel.toLinear(r)+.0722*Yt.channel.toLinear(n);return Yt.lang.round(i)},"luminance"),pz=Yxe});var qxe,gz,yz=M(()=>{"use strict";mz();qxe=o(t=>pz(t)>=.5,"isLight"),gz=qxe});var Xxe,aa,vz=M(()=>{"use strict";yz();Xxe=o(t=>!gz(t),"isDark"),aa=Xxe});var jxe,Vb,HS=M(()=>{"use strict";jl();Zc();jxe=o((t,e,r)=>{let n=Mi.parse(t),i=n[e],a=Yt.channel.clamp[e](i+r);return i!==a&&(n[e]=a),Mi.stringify(n)},"adjustChannel"),Vb=jxe});var Kxe,Dt,xz=M(()=>{"use strict";HS();Kxe=o((t,e)=>Vb(t,"l",e),"lighten"),Dt=Kxe});var Qxe,Bt,bz=M(()=>{"use strict";HS();Qxe=o((t,e)=>Vb(t,"l",-e),"darken"),Bt=Qxe});var Zxe,Ne,wz=M(()=>{"use strict";Zc();VS();Zxe=o((t,e)=>{let r=Mi.parse(t),n={};for(let i in e)e[i]&&(n[i]=r[i]+e[i]);return $b(t,n)},"adjust"),Ne=Zxe});var Jxe,Tz,kz=M(()=>{"use strict";Zc();US();Jxe=o((t,e,r=50)=>{let{r:n,g:i,b:a,a:s}=Mi.parse(t),{r:l,g:u,b:h,a:f}=Mi.parse(e),d=r/100,p=d*2-1,m=s-f,y=((p*m===-1?p:(p+m)/(1+p*m))+1)/2,v=1-y,x=n*y+l*v,b=i*y+u*v,w=a*y+h*v,_=s*d+f*(1-d);return Hs(x,b,w,_)},"mix"),Tz=Jxe});var ebe,pt,Ez=M(()=>{"use strict";Zc();kz();ebe=o((t,e=100)=>{let r=Mi.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,Tz(r,t,e)},"invert"),pt=ebe});var Sz=M(()=>{"use strict";US();dz();vz();xz();bz();wz();Ez()});var To=M(()=>{"use strict";Sz()});var rh,nh,G1=M(()=>{"use strict";rh="#ffffff",nh="#f2f2f2"});var wi,ap=M(()=>{"use strict";To();wi=o((t,e)=>e?Ne(t,{s:-40,l:10}):Ne(t,{s:-40,l:-10}),"mkBorder")});var WS,Az,_z=M(()=>{"use strict";To();G1();ap();WS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Ne(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Ne(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||wi(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||wi(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||pt(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||pt(this.tertiaryColor),this.lineColor=this.lineColor||pt(this.background),this.arrowheadColor=this.arrowheadColor||pt(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?Bt(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||Bt(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||pt(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||Dt(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.darkMode)for(let r=0;r{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Az=o(t=>{let e=new WS;return e.calculate(t),e},"getThemeVariables")});var YS,Lz,Dz=M(()=>{"use strict";To();ap();YS=class{static{o(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=Dt(this.primaryColor,16),this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=pt(this.background),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=Dt(pt("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Hs(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=Bt("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Bt(this.sectionBkgColor,10),this.taskBorderColor=Hs(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Hs(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=Dt(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=Dt(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=Dt(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Ne(this.primaryColor,{h:64}),this.fillType3=Ne(this.secondaryColor,{h:64}),this.fillType4=Ne(this.primaryColor,{h:-64}),this.fillType5=Ne(this.secondaryColor,{h:-64}),this.fillType6=Ne(this.primaryColor,{h:128}),this.fillType7=Ne(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330});for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Lz=o(t=>{let e=new YS;return e.calculate(t),e},"getThemeVariables")});var qS,sp,Ub=M(()=>{"use strict";To();ap();G1();qS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Ne(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=Hs(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},sp=o(t=>{let e=new qS;return e.calculate(t),e},"getThemeVariables")});var XS,Nz,Rz=M(()=>{"use strict";To();G1();ap();XS=class{static{o(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=Dt("#cde498",10),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.primaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=Bt(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Ne(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Ne(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Ne(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Ne(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Ne(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Ne(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Ne(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Ne(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Ne(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Bt(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Bt(this.tertiaryColor,40);for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Nz=o(t=>{let e=new XS;return e.calculate(t),e},"getThemeVariables")});var jS,Mz,Iz=M(()=>{"use strict";To();ap();G1();jS=class{static{o(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=Dt(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Ne(this.primaryColor,{h:-160}),this.primaryBorderColor=wi(this.primaryColor,this.darkMode),this.secondaryBorderColor=wi(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=wi(this.tertiaryColor,this.darkMode),this.primaryTextColor=pt(this.primaryColor),this.secondaryTextColor=pt(this.secondaryColor),this.tertiaryTextColor=pt(this.tertiaryColor),this.lineColor=pt(this.background),this.textColor=pt(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=Dt(this.contrast,55),this.border2=this.contrast,this.actorBorder=Dt(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[n]=e[n]}),this.updateColors(),r.forEach(n=>{this[n]=e[n]})}},Mz=o(t=>{let e=new jS;return e.calculate(t),e},"getThemeVariables")});var ko,Hb=M(()=>{"use strict";_z();Dz();Ub();Rz();Iz();ko={base:{getThemeVariables:Az},dark:{getThemeVariables:Lz},default:{getThemeVariables:sp},forest:{getThemeVariables:Nz},neutral:{getThemeVariables:Mz}}});var Jc,Oz=M(()=>{"use strict";Jc={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1}});var Pz,Bz,Fz,ur,hs=M(()=>{"use strict";Hb();Oz();Pz={...Jc,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:ko.default.getThemeVariables(),sequence:{...Jc.sequence,messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:o(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:o(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...Jc.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Jc.c4,useWidth:void 0,personFont:o(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:o(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:o(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:o(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:o(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:o(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:o(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:o(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:o(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:o(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:o(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:o(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:o(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:o(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:o(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:o(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:o(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:o(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:o(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:o(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:o(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:o(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...Jc.pie,useWidth:984},xyChart:{...Jc.xyChart,useWidth:void 0},requirement:{...Jc.requirement,useWidth:void 0},packet:{...Jc.packet}},Bz=o((t,e="")=>Object.keys(t).reduce((r,n)=>Array.isArray(t[n])?r:typeof t[n]=="object"&&t[n]!==null?[...r,e+n,...Bz(t[n],"")]:[...r,e+n],[]),"keyify"),Fz=new Set(Bz(Pz,"")),ur=Pz});var op,tbe,KS=M(()=>{"use strict";hs();ht();op=o(t=>{if(Y.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>op(e));return}for(let e of Object.keys(t)){if(Y.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!Fz.has(e)||t[e]==null){Y.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){Y.debug("sanitizing object",e),op(t[e]);continue}let r=["themeCSS","fontFamily","altFontFamily"];for(let n of r)e.includes(n)&&(Y.debug("sanitizing css option",e),t[e]=tbe(t[e]))}if(t.themeVariables)for(let e of Object.keys(t.themeVariables)){let r=t.themeVariables[e];r?.match&&!r.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}Y.debug("After sanitization",t)}},"sanitizeDirective"),tbe=o(t=>{let e=0,r=0;for(let n of t){if(e{"use strict";ip();ht();Hb();hs();KS();ih=Object.freeze(ur),fs=Gn({},ih),lp=[],$1=Gn({},ih),Wb=o((t,e)=>{let r=Gn({},t),n={};for(let i of e)Uz(i),n=Gn(n,i);if(r=Gn(r,n),n.theme&&n.theme in ko){let i=Gn({},Gz),a=Gn(i.themeVariables||{},n.themeVariables);r.theme&&r.theme in ko&&(r.themeVariables=ko[r.theme].getThemeVariables(a))}return $1=r,Wz($1),$1},"updateCurrentConfig"),QS=o(t=>(fs=Gn({},ih),fs=Gn(fs,t),t.theme&&ko[t.theme]&&(fs.themeVariables=ko[t.theme].getThemeVariables(t.themeVariables)),Wb(fs,lp),fs),"setSiteConfig"),$z=o(t=>{Gz=Gn({},t)},"saveConfigFromInitialize"),Vz=o(t=>(fs=Gn(fs,t),Wb(fs,lp),fs),"updateSiteConfig"),ZS=o(()=>Gn({},fs),"getSiteConfig"),Yb=o(t=>(Wz(t),Gn($1,t),Sr()),"setConfig"),Sr=o(()=>Gn({},$1),"getConfig"),Uz=o(t=>{t&&(["secure",...fs.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(Y.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&Uz(t[e])}))},"sanitize"),Hz=o(t=>{op(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),lp.push(t),Wb(fs,lp)},"addDirective"),V1=o((t=fs)=>{lp=[],Wb(t,lp)},"reset"),rbe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},zz={},nbe=o(t=>{zz[t]||(Y.warn(rbe[t]),zz[t]=!0)},"issueWarning"),Wz=o(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&nbe("LAZY_LOAD_DEPRECATED")},"checkConfig")});function Ws(t){return function(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:jb;Yz&&Yz(t,null);let n=e.length;for(;n--;){let i=e[n];if(typeof i=="string"){let a=r(i);a!==i&&(ibe(e)||(e[n]=a),i=a)}t[i]=!0}return t}function ube(t){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:wbe(),e=o(yt=>iG(yt),"DOMPurify");if(e.version="3.2.1",e.removed=[],!t||!t.document||t.document.nodeType!==q1.document)return e.isSupported=!1,e;let{document:r}=t,n=r,i=n.currentScript,{DocumentFragment:a,HTMLTemplateElement:s,Node:l,Element:u,NodeFilter:h,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:m}=t,g=u.prototype,y=Y1(g,"cloneNode"),v=Y1(g,"remove"),x=Y1(g,"nextSibling"),b=Y1(g,"childNodes"),w=Y1(g,"parentNode");if(typeof s=="function"){let yt=r.createElement("template");yt.content&&yt.content.ownerDocument&&(r=yt.content.ownerDocument)}let _,T="",{implementation:E,createNodeIterator:L,createDocumentFragment:C,getElementsByTagName:A}=r,{importNode:I}=n,D={};e.isSupported=typeof eG=="function"&&typeof w=="function"&&E&&E.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:k,ERB_EXPR:R,TMPLIT_EXPR:S,DATA_ATTR:O,ARIA_ATTR:N,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:F,CUSTOM_ELEMENT:B}=Jz,{IS_ALLOWED_URI:$}=Jz,z=null,W=Ar({},[...jz,...eC,...tC,...rC,...Kz]),j=null,K=Ar({},[...Qz,...nC,...Zz,...Xb]),ie=Object.seal(tG(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Q=null,ee=null,J=!0,H=!0,q=!1,Z=!0,ae=!1,ue=!0,ce=!1,te=!1,De=!1,oe=!1,ke=!1,Fe=!1,Be=!0,Ve=!1,Ge="user-content-",He=!0,xe=!1,X={},fe=null,he=Ar({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ge=null,ne=Ar({},["audio","video","img","source","image","track"]),ye=null,U=Ar({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Te="http://www.w3.org/1998/Math/MathML",se="http://www.w3.org/2000/svg",Ee="http://www.w3.org/1999/xhtml",Ae=Ee,Pe=!1,Me=null,me=Ar({},[Te,se,Ee],JS),We=Ar({},["mi","mo","mn","ms","mtext"]),Re=Ar({},["annotation-xml"]),tt=Ar({},["title","style","font","a","script"]),gt=null,Et=["application/xhtml+xml","text/html"],vt="text/html",Ye=null,Tt=null,$e=r.createElement("form"),rt=o(function(Se){return Se instanceof RegExp||Se instanceof Function},"isRegexOrFunction"),ft=o(function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Tt&&Tt===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=Uf(Se),gt=Et.indexOf(Se.PARSER_MEDIA_TYPE)===-1?vt:Se.PARSER_MEDIA_TYPE,Ye=gt==="application/xhtml+xml"?JS:jb,z=ul(Se,"ALLOWED_TAGS")?Ar({},Se.ALLOWED_TAGS,Ye):W,j=ul(Se,"ALLOWED_ATTR")?Ar({},Se.ALLOWED_ATTR,Ye):K,Me=ul(Se,"ALLOWED_NAMESPACES")?Ar({},Se.ALLOWED_NAMESPACES,JS):me,ye=ul(Se,"ADD_URI_SAFE_ATTR")?Ar(Uf(U),Se.ADD_URI_SAFE_ATTR,Ye):U,ge=ul(Se,"ADD_DATA_URI_TAGS")?Ar(Uf(ne),Se.ADD_DATA_URI_TAGS,Ye):ne,fe=ul(Se,"FORBID_CONTENTS")?Ar({},Se.FORBID_CONTENTS,Ye):he,Q=ul(Se,"FORBID_TAGS")?Ar({},Se.FORBID_TAGS,Ye):{},ee=ul(Se,"FORBID_ATTR")?Ar({},Se.FORBID_ATTR,Ye):{},X=ul(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,J=Se.ALLOW_ARIA_ATTR!==!1,H=Se.ALLOW_DATA_ATTR!==!1,q=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ae=Se.SAFE_FOR_TEMPLATES||!1,ue=Se.SAFE_FOR_XML!==!1,ce=Se.WHOLE_DOCUMENT||!1,oe=Se.RETURN_DOM||!1,ke=Se.RETURN_DOM_FRAGMENT||!1,Fe=Se.RETURN_TRUSTED_TYPE||!1,De=Se.FORCE_BODY||!1,Be=Se.SANITIZE_DOM!==!1,Ve=Se.SANITIZE_NAMED_PROPS||!1,He=Se.KEEP_CONTENT!==!1,xe=Se.IN_PLACE||!1,$=Se.ALLOWED_URI_REGEXP||rG,Ae=Se.NAMESPACE||Ee,We=Se.MATHML_TEXT_INTEGRATION_POINTS||We,Re=Se.HTML_INTEGRATION_POINTS||Re,ie=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&rt(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ie.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&rt(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ie.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ie.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ae&&(H=!1),ke&&(oe=!0),X&&(z=Ar({},Kz),j=[],X.html===!0&&(Ar(z,jz),Ar(j,Qz)),X.svg===!0&&(Ar(z,eC),Ar(j,nC),Ar(j,Xb)),X.svgFilters===!0&&(Ar(z,tC),Ar(j,nC),Ar(j,Xb)),X.mathMl===!0&&(Ar(z,rC),Ar(j,Zz),Ar(j,Xb))),Se.ADD_TAGS&&(z===W&&(z=Uf(z)),Ar(z,Se.ADD_TAGS,Ye)),Se.ADD_ATTR&&(j===K&&(j=Uf(j)),Ar(j,Se.ADD_ATTR,Ye)),Se.ADD_URI_SAFE_ATTR&&Ar(ye,Se.ADD_URI_SAFE_ATTR,Ye),Se.FORBID_CONTENTS&&(fe===he&&(fe=Uf(fe)),Ar(fe,Se.FORBID_CONTENTS,Ye)),He&&(z["#text"]=!0),ce&&Ar(z,["html","head","body"]),z.table&&(Ar(z,["tbody"]),delete Q.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw W1('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw W1('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');_=Se.TRUSTED_TYPES_POLICY,T=_.createHTML("")}else _===void 0&&(_=Tbe(m,i)),_!==null&&typeof T=="string"&&(T=_.createHTML(""));Wa&&Wa(Se),Tt=Se}},"_parseConfig"),kt=Ar({},[...eC,...tC,...hbe]),er=Ar({},[...rC,...fbe]),dt=o(function(Se){let at=w(Se);(!at||!at.tagName)&&(at={namespaceURI:Ae,tagName:"template"});let At=jb(Se.tagName),pr=jb(at.tagName);return Me[Se.namespaceURI]?Se.namespaceURI===se?at.namespaceURI===Ee?At==="svg":at.namespaceURI===Te?At==="svg"&&(pr==="annotation-xml"||We[pr]):!!kt[At]:Se.namespaceURI===Te?at.namespaceURI===Ee?At==="math":at.namespaceURI===se?At==="math"&&Re[pr]:!!er[At]:Se.namespaceURI===Ee?at.namespaceURI===se&&!Re[pr]||at.namespaceURI===Te&&!We[pr]?!1:!er[At]&&(tt[At]||!kt[At]):!!(gt==="application/xhtml+xml"&&Me[Se.namespaceURI]):!1},"_checkValidNamespace"),Xe=o(function(Se){U1(e.removed,{element:Se});try{w(Se).removeChild(Se)}catch{v(Se)}},"_forceRemove"),ct=o(function(Se,at){try{U1(e.removed,{attribute:at.getAttributeNode(Se),from:at})}catch{U1(e.removed,{attribute:null,from:at})}if(at.removeAttribute(Se),Se==="is"&&!j[Se])if(oe||ke)try{Xe(at)}catch{}else try{at.setAttribute(Se,"")}catch{}},"_removeAttribute"),Lt=o(function(Se){let at=null,At=null;if(De)Se=""+Se;else{let On=Xz(Se,/^[\r\n\t ]+/);At=On&&On[0]}gt==="application/xhtml+xml"&&Ae===Ee&&(Se=''+Se+"");let pr=_?_.createHTML(Se):Se;if(Ae===Ee)try{at=new p().parseFromString(pr,gt)}catch{}if(!at||!at.documentElement){at=E.createDocument(Ae,"template",null);try{at.documentElement.innerHTML=Pe?T:pr}catch{}}let In=at.body||at.documentElement;return Se&&At&&In.insertBefore(r.createTextNode(At),In.childNodes[0]||null),Ae===Ee?A.call(at,ce?"html":"body")[0]:ce?at.documentElement:In},"_initDocument"),Rt=o(function(Se){return L.call(Se.ownerDocument||Se,Se,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),zt=o(function(Se){return Se instanceof d&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof f)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},"_isClobbered"),Xn=o(function(Se){return typeof l=="function"&&Se instanceof l},"_isNode");function or(yt,Se,at){D[yt]&&qb(D[yt],At=>{At.call(e,Se,at,Tt)})}o(or,"_executeHook");let hn=o(function(Se){let at=null;if(or("beforeSanitizeElements",Se,null),zt(Se))return Xe(Se),!0;let At=Ye(Se.nodeName);if(or("uponSanitizeElement",Se,{tagName:At,allowedTags:z}),Se.hasChildNodes()&&!Xn(Se.firstElementChild)&&Ha(/<[/\w]/g,Se.innerHTML)&&Ha(/<[/\w]/g,Se.textContent)||Se.nodeType===q1.progressingInstruction||ue&&Se.nodeType===q1.comment&&Ha(/<[/\w]/g,Se.data))return Xe(Se),!0;if(!z[At]||Q[At]){if(!Q[At]&&Ur(At)&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,At)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(At)))return!1;if(He&&!fe[At]){let pr=w(Se)||Se.parentNode,In=b(Se)||Se.childNodes;if(In&&pr){let On=In.length;for(let Ir=On-1;Ir>=0;--Ir){let kn=y(In[Ir],!0);kn.__removalCount=(Se.__removalCount||0)+1,pr.insertBefore(kn,x(Se))}}}return Xe(Se),!0}return Se instanceof u&&!dt(Se)||(At==="noscript"||At==="noembed"||At==="noframes")&&Ha(/<\/no(script|embed|frames)/i,Se.innerHTML)?(Xe(Se),!0):(ae&&Se.nodeType===q1.text&&(at=Se.textContent,qb([k,R,S],pr=>{at=H1(at,pr," ")}),Se.textContent!==at&&(U1(e.removed,{element:Se.cloneNode()}),Se.textContent=at)),or("afterSanitizeElements",Se,null),!1)},"_sanitizeElements"),Tn=o(function(Se,at,At){if(Be&&(at==="id"||at==="name")&&(At in r||At in $e))return!1;if(!(H&&!ee[at]&&Ha(O,at))){if(!(J&&Ha(N,at))){if(!j[at]||ee[at]){if(!(Ur(Se)&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,Se)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(Se))&&(ie.attributeNameCheck instanceof RegExp&&Ha(ie.attributeNameCheck,at)||ie.attributeNameCheck instanceof Function&&ie.attributeNameCheck(at))||at==="is"&&ie.allowCustomizedBuiltInElements&&(ie.tagNameCheck instanceof RegExp&&Ha(ie.tagNameCheck,At)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(At))))return!1}else if(!ye[at]){if(!Ha($,H1(At,F,""))){if(!((at==="src"||at==="xlink:href"||at==="href")&&Se!=="script"&&obe(At,"data:")===0&&ge[Se])){if(!(q&&!Ha(P,H1(At,F,"")))){if(At)return!1}}}}}}return!0},"_isValidAttribute"),Ur=o(function(Se){return Se!=="annotation-xml"&&Xz(Se,B)},"_isBasicCustomElement"),ri=o(function(Se){or("beforeSanitizeAttributes",Se,null);let{attributes:at}=Se;if(!at)return;let At={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:j,forceKeepAttr:void 0},pr=at.length;for(;pr--;){let In=at[pr],{name:On,namespaceURI:Ir,value:kn}=In,_t=Ye(On),St=On==="value"?kn:lbe(kn);if(At.attrName=_t,At.attrValue=St,At.keepAttr=!0,At.forceKeepAttr=void 0,or("uponSanitizeAttribute",Se,At),St=At.attrValue,Ve&&(_t==="id"||_t==="name")&&(ct(On,Se),St=Ge+St),ue&&Ha(/((--!?|])>)|<\/(style|title)/i,St)){ct(On,Se);continue}if(At.forceKeepAttr||(ct(On,Se),!At.keepAttr))continue;if(!Z&&Ha(/\/>/i,St)){ct(On,Se);continue}ae&&qb([k,R,S],Ue=>{St=H1(St,Ue," ")});let bt=Ye(Se.nodeName);if(Tn(bt,_t,St)){if(_&&typeof m=="object"&&typeof m.getAttributeType=="function"&&!Ir)switch(m.getAttributeType(bt,_t)){case"TrustedHTML":{St=_.createHTML(St);break}case"TrustedScriptURL":{St=_.createScriptURL(St);break}}try{Ir?Se.setAttributeNS(Ir,On,St):Se.setAttribute(On,St),zt(Se)?Xe(Se):qz(e.removed)}catch{}}}or("afterSanitizeAttributes",Se,null)},"_sanitizeAttributes"),Mn=o(function yt(Se){let at=null,At=Rt(Se);for(or("beforeSanitizeShadowDOM",Se,null);at=At.nextNode();)or("uponSanitizeShadowNode",at,null),!hn(at)&&(at.content instanceof a&&yt(at.content),ri(at));or("afterSanitizeShadowDOM",Se,null)},"_sanitizeShadowDOM");return e.sanitize=function(yt){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},at=null,At=null,pr=null,In=null;if(Pe=!yt,Pe&&(yt=""),typeof yt!="string"&&!Xn(yt))if(typeof yt.toString=="function"){if(yt=yt.toString(),typeof yt!="string")throw W1("dirty is not a string, aborting")}else throw W1("toString is not a function");if(!e.isSupported)return yt;if(te||ft(Se),e.removed=[],typeof yt=="string"&&(xe=!1),xe){if(yt.nodeName){let kn=Ye(yt.nodeName);if(!z[kn]||Q[kn])throw W1("root node is forbidden and cannot be sanitized in-place")}}else if(yt instanceof l)at=Lt(""),At=at.ownerDocument.importNode(yt,!0),At.nodeType===q1.element&&At.nodeName==="BODY"||At.nodeName==="HTML"?at=At:at.appendChild(At);else{if(!oe&&!ae&&!ce&&yt.indexOf("<")===-1)return _&&Fe?_.createHTML(yt):yt;if(at=Lt(yt),!at)return oe?null:Fe?T:""}at&&De&&Xe(at.firstChild);let On=Rt(xe?yt:at);for(;pr=On.nextNode();)hn(pr)||(pr.content instanceof a&&Mn(pr.content),ri(pr));if(xe)return yt;if(oe){if(ke)for(In=C.call(at.ownerDocument);at.firstChild;)In.appendChild(at.firstChild);else In=at;return(j.shadowroot||j.shadowrootmode)&&(In=I.call(n,In,!0)),In}let Ir=ce?at.outerHTML:at.innerHTML;return ce&&z["!doctype"]&&at.ownerDocument&&at.ownerDocument.doctype&&at.ownerDocument.doctype.name&&Ha(nG,at.ownerDocument.doctype.name)&&(Ir=" +`+Ir),ae&&qb([k,R,S],kn=>{Ir=H1(Ir,kn," ")}),_&&Fe?_.createHTML(Ir):Ir},e.setConfig=function(){let yt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ft(yt),te=!0},e.clearConfig=function(){Tt=null,te=!1},e.isValidAttribute=function(yt,Se,at){Tt||ft({});let At=Ye(yt),pr=Ye(Se);return Tn(At,pr,at)},e.addHook=function(yt,Se){typeof Se=="function"&&(D[yt]=D[yt]||[],U1(D[yt],Se))},e.removeHook=function(yt){if(D[yt])return qz(D[yt])},e.removeHooks=function(yt){D[yt]&&(D[yt]=[])},e.removeAllHooks=function(){D={}},e}var eG,Yz,ibe,abe,sbe,Wa,Eo,tG,iC,aC,qb,qz,U1,jb,JS,Xz,H1,obe,lbe,ul,Ha,W1,jz,eC,tC,hbe,rC,fbe,Kz,Qz,nC,Zz,Xb,dbe,pbe,mbe,gbe,ybe,rG,vbe,xbe,nG,bbe,Jz,q1,wbe,Tbe,ah,sC=M(()=>{"use strict";({entries:eG,setPrototypeOf:Yz,isFrozen:ibe,getPrototypeOf:abe,getOwnPropertyDescriptor:sbe}=Object),{freeze:Wa,seal:Eo,create:tG}=Object,{apply:iC,construct:aC}=typeof Reflect<"u"&&Reflect;Wa||(Wa=o(function(e){return e},"freeze"));Eo||(Eo=o(function(e){return e},"seal"));iC||(iC=o(function(e,r,n){return e.apply(r,n)},"apply"));aC||(aC=o(function(e,r){return new e(...r)},"construct"));qb=Ws(Array.prototype.forEach),qz=Ws(Array.prototype.pop),U1=Ws(Array.prototype.push),jb=Ws(String.prototype.toLowerCase),JS=Ws(String.prototype.toString),Xz=Ws(String.prototype.match),H1=Ws(String.prototype.replace),obe=Ws(String.prototype.indexOf),lbe=Ws(String.prototype.trim),ul=Ws(Object.prototype.hasOwnProperty),Ha=Ws(RegExp.prototype.test),W1=cbe(TypeError);o(Ws,"unapply");o(cbe,"unconstruct");o(Ar,"addToSet");o(ube,"cleanArray");o(Uf,"clone");o(Y1,"lookupGetter");jz=Wa(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),eC=Wa(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),tC=Wa(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),hbe=Wa(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),rC=Wa(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),fbe=Wa(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Kz=Wa(["#text"]),Qz=Wa(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),nC=Wa(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Zz=Wa(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Xb=Wa(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),dbe=Eo(/\{\{[\w\W]*|[\w\W]*\}\}/gm),pbe=Eo(/<%[\w\W]*|[\w\W]*%>/gm),mbe=Eo(/\${[\w\W]*}/gm),gbe=Eo(/^data-[\-\w.\u00B7-\uFFFF]/),ybe=Eo(/^aria-[\-\w]+$/),rG=Eo(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),vbe=Eo(/^(?:\w+script|data):/i),xbe=Eo(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nG=Eo(/^html$/i),bbe=Eo(/^[a-z][.\w]*(-[.\w]+)+$/i),Jz=Object.freeze({__proto__:null,ARIA_ATTR:ybe,ATTR_WHITESPACE:xbe,CUSTOM_ELEMENT:bbe,DATA_ATTR:gbe,DOCTYPE_NAME:nG,ERB_EXPR:pbe,IS_ALLOWED_URI:rG,IS_SCRIPT_OR_DATA:vbe,MUSTACHE_EXPR:dbe,TMPLIT_EXPR:mbe}),q1={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},wbe=o(function(){return typeof window>"u"?null:window},"getGlobal"),Tbe=o(function(e,r){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let n=null,i="data-tt-policy-suffix";r&&r.hasAttribute(i)&&(n=r.getAttribute(i));let a="dompurify"+(n?"#"+n:"");try{return e.createPolicy(a,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},"_createTrustedTypesPolicy");o(iG,"createDOMPurify");ah=iG()});var N$={};vr(N$,{default:()=>g3e});function Lbe(t){return String(t).replace(_be,e=>Abe[e])}function Mbe(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function Gbe(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}function BG(t){for(var e=0;e=l4[e]&&t<=l4[e+1])return!0;return!1}function Qbe(t,e){Zl[t]=e}function RC(t,e,r){if(!Zl[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=Zl[e][n];if(!i&&t[0]in sG&&(n=sG[t[0]].charCodeAt(0),i=Zl[e][n]),!i&&r==="text"&&BG(n)&&(i=Zl[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}function Zbe(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!oC[e]){var r=oC[e]={cssEmPerMu:Kb.quad[e]/18};for(var n in Kb)Kb.hasOwnProperty(n)&&(r[n]=Kb[n][e])}return oC[e]}function cG(t){if(t instanceof ms)return t;throw new Error("Expected symbolNode but got "+String(t)+".")}function r4e(t){if(t instanceof qf)return t;throw new Error("Expected span but got "+String(t)+".")}function G(t,e,r,n,i,a){En[t][i]={font:e,group:r,replace:n},a&&n&&(En[t][n]=En[t][i])}function Ct(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},u=0;u0&&(a.push(n4(s,e)),s=[]),a.push(n[l]));s.length>0&&a.push(n4(s,e));var h;r?(h=n4(Ii(r,e,!0)),h.classes=["tag"],a.push(h)):i&&a.push(i);var f=iu(["katex-html"],a);if(f.setAttribute("aria-hidden","true"),h){var d=h.children[0];d.style.height=mt(f.height+f.depth),f.depth&&(d.style.verticalAlign=mt(-f.depth))}return f}function jG(t){return new Yf(t)}function pG(t,e,r,n,i){var a=gs(t,r),s;a.length===1&&a[0]instanceof ps&&Jt.contains(["mrow","mtable"],a[0].type)?s=a[0]:s=new st.MathNode("mrow",a);var l=new st.MathNode("annotation",[new st.TextNode(e)]);l.setAttribute("encoding","application/x-tex");var u=new st.MathNode("semantics",[s,l]),h=new st.MathNode("math",[u]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&h.setAttribute("display","block");var f=i?"katex":"katex-mathml";return Ie.makeSpan([f],[h])}function yr(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function PC(t){var e=x4(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function x4(t){return t&&(t.type==="atom"||i4e.hasOwnProperty(t.type))?t:null}function JG(t,e){var r=Ii(t.body,e,!0);return I4e([t.mclass],r,e)}function e$(t,e){var r,n=gs(t.body,e);return t.mclass==="minner"?r=new st.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new st.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new st.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}function B4e(t,e,r){var n=O4e[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),a={type:"atom",text:n,mode:"math",family:"rel"},s=r.callFunction("\\Big",[a],[]),l=r.callFunction("\\\\cdright",[e[1]],[]),u={type:"ordgroup",mode:"math",body:[i,s,l]};return r.callFunction("\\\\cdparent",[u],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function F4e(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new ut("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],a=0;a-1))if("<>AV".indexOf(h)>-1)for(var d=0;d<2;d++){for(var p=!0,m=u+1;mAV=|." after @',s[u]);var g=B4e(h,f,t),y={type:"styling",body:[g],mode:"math",style:"display"};n.push(y),l=mG()}a%2===0?n.push(l):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var v=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}function w4(t,e){var r=x4(t);if(r&&Jt.contains(Q4e,r.text))return r;throw r?new ut("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new ut("Invalid delimiter type '"+t.type+"'",t)}function vG(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}function ec(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:a,mathmlBuilder:s}=t,l={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},u=0;u1||!f)&&y.pop(),x.length{"use strict";Ys=class t{static{o(this,"SourceLocation")}constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}},Co=class t{static{o(this,"Token")}constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new t(r,Ys.range(this,e))}},ut=class t{static{o(this,"ParseError")}constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,a,s=r&&r.loc;if(s&&s.start<=s.end){var l=s.lexer.input;i=s.start,a=s.end,i===l.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var u=l.slice(i,a).replace(/[^]/g,"$&\u0332"),h;i>15?h="\u2026"+l.slice(i-15,i):h=l.slice(0,i);var f;a+15":">","<":"<",'"':""","'":"'"},_be=/[&><"']/g;o(Lbe,"escape");PG=o(function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},"getBaseElem"),Dbe=o(function(e){var r=PG(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},"isCharacterBox"),Nbe=o(function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},"assert"),Rbe=o(function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},"protocolFromUrl"),Jt={contains:kbe,deflt:Ebe,escape:Lbe,hyphenate:Cbe,getBaseElem:PG,isCharacterBox:Dbe,protocolFromUrl:Rbe},o4={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:o(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:o((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:o(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:o(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:o(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:o(t=>t==="Infinity"?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}};o(Mbe,"getDefaultValue");Z1=class{static{o(this,"Settings")}constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in o4)if(o4.hasOwnProperty(r)){var n=o4[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:Mbe(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new ut("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=Jt.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}},Kl=class{static{o(this,"Style")}constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return Ql[Ibe[this.id]]}sub(){return Ql[Obe[this.id]]}fracNum(){return Ql[Pbe[this.id]]}fracDen(){return Ql[Bbe[this.id]]}cramp(){return Ql[Fbe[this.id]]}text(){return Ql[zbe[this.id]]}isTight(){return this.size>=2}},NC=0,c4=1,hp=2,ru=3,J1=4,So=5,fp=6,Ya=7,Ql=[new Kl(NC,0,!1),new Kl(c4,0,!0),new Kl(hp,1,!1),new Kl(ru,1,!0),new Kl(J1,2,!1),new Kl(So,2,!0),new Kl(fp,3,!1),new Kl(Ya,3,!0)],Ibe=[J1,So,J1,So,fp,Ya,fp,Ya],Obe=[So,So,So,So,Ya,Ya,Ya,Ya],Pbe=[hp,ru,J1,So,fp,Ya,fp,Ya],Bbe=[ru,ru,So,So,Ya,Ya,Ya,Ya],Fbe=[c4,c4,ru,ru,So,So,Ya,Ya],zbe=[NC,c4,hp,ru,hp,ru,hp,ru],rr={DISPLAY:Ql[NC],TEXT:Ql[hp],SCRIPT:Ql[J1],SCRIPTSCRIPT:Ql[fp]},xC=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];o(Gbe,"scriptFromCodepoint");l4=[];xC.forEach(t=>t.blocks.forEach(e=>l4.push(...e)));o(BG,"supportedCodepoint");up=80,$be=o(function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtMain"),Vbe=o(function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize1"),Ube=o(function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},"sqrtSize2"),Hbe=o(function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},"sqrtSize3"),Wbe=o(function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},"sqrtSize4"),Ybe=o(function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},"phasePath"),qbe=o(function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},"sqrtTall"),Xbe=o(function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=$be(r,up);break;case"sqrtSize1":i=Vbe(r,up);break;case"sqrtSize2":i=Ube(r,up);break;case"sqrtSize3":i=Hbe(r,up);break;case"sqrtSize4":i=Wbe(r,up);break;case"sqrtTall":i=qbe(r,up,n)}return i},"sqrtPath"),jbe=o(function(e,r){switch(e){case"\u239C":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"\u2223":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"\u2225":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"\u239F":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"\u23A2":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"\u23A5":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"\u23AA":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"\u23D0":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"\u2016":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},"innerPath"),aG={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},Kbe=o(function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),Yf=class{static{o(this,"DocumentFragment")}constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return Jt.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText(),"toText");return this.children.map(e).join("")}},Zl={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Kb={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},sG={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};o(Qbe,"setFontMetrics");o(RC,"getCharacterMetrics");oC={};o(Zbe,"getGlobalMetrics");Jbe=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],oG=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],lG=o(function(e,r){return r.size<2?e:Jbe[e-1][r.size-1]},"sizeAtStyle"),u4=class t{static{o(this,"Options")}constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=oG[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new t(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:lG(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:oG[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=lG(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==t.BASESIZE?["sizing","reset-size"+this.size,"size"+t.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Zbe(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};u4.BASESIZE=6;bC={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},e4e={ex:!0,em:!0,mu:!0},FG=o(function(e){return typeof e!="string"&&(e=e.unit),e in bC||e in e4e||e==="ex"},"validUnit"),Qn=o(function(e,r){var n;if(e.unit in bC)n=bC[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new ut("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},"calculateSize"),mt=o(function(e){return+e.toFixed(4)+"em"},"makeEm"),lh=o(function(e){return e.filter(r=>r).join(" ")},"createClass"),zG=o(function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},"initNode"),GG=o(function(e){var r=document.createElement(e);r.className=lh(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var a=0;a",r},"toMarkup"),qf=class{static{o(this,"Span")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,zG.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return GG.call(this,"span")}toMarkup(){return $G.call(this,"span")}},ey=class{static{o(this,"Anchor")}constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,zG.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return Jt.contains(this.classes,e)}toNode(){return GG.call(this,"a")}toMarkup(){return $G.call(this,"a")}},wC=class{static{o(this,"Img")}constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return Jt.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+Jt.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=mt(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=lh(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=Jt.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+Jt.escape(n)+'"');var a=Jt.escape(this.text);return e?(r+=">",r+=a,r+="",r):a}},fl=class{static{o(this,"SvgNode")}constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}},ty=class{static{o(this,"LineNode")}constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e="","\\gt",!0);G(V,re,we,"\u2208","\\in",!0);G(V,re,we,"\uE020","\\@not");G(V,re,we,"\u2282","\\subset",!0);G(V,re,we,"\u2283","\\supset",!0);G(V,re,we,"\u2286","\\subseteq",!0);G(V,re,we,"\u2287","\\supseteq",!0);G(V,ve,we,"\u2288","\\nsubseteq",!0);G(V,ve,we,"\u2289","\\nsupseteq",!0);G(V,re,we,"\u22A8","\\models");G(V,re,we,"\u2190","\\leftarrow",!0);G(V,re,we,"\u2264","\\le");G(V,re,we,"\u2264","\\leq",!0);G(V,re,we,"<","\\lt",!0);G(V,re,we,"\u2192","\\rightarrow",!0);G(V,re,we,"\u2192","\\to");G(V,ve,we,"\u2271","\\ngeq",!0);G(V,ve,we,"\u2270","\\nleq",!0);G(V,re,su,"\xA0","\\ ");G(V,re,su,"\xA0","\\space");G(V,re,su,"\xA0","\\nobreakspace");G(it,re,su,"\xA0","\\ ");G(it,re,su,"\xA0"," ");G(it,re,su,"\xA0","\\space");G(it,re,su,"\xA0","\\nobreakspace");G(V,re,su,null,"\\nobreak");G(V,re,su,null,"\\allowbreak");G(V,re,y4,",",",");G(V,re,y4,";",";");G(V,ve,Nt,"\u22BC","\\barwedge",!0);G(V,ve,Nt,"\u22BB","\\veebar",!0);G(V,re,Nt,"\u2299","\\odot",!0);G(V,re,Nt,"\u2295","\\oplus",!0);G(V,re,Nt,"\u2297","\\otimes",!0);G(V,re,_e,"\u2202","\\partial",!0);G(V,re,Nt,"\u2298","\\oslash",!0);G(V,ve,Nt,"\u229A","\\circledcirc",!0);G(V,ve,Nt,"\u22A1","\\boxdot",!0);G(V,re,Nt,"\u25B3","\\bigtriangleup");G(V,re,Nt,"\u25BD","\\bigtriangledown");G(V,re,Nt,"\u2020","\\dagger");G(V,re,Nt,"\u22C4","\\diamond");G(V,re,Nt,"\u22C6","\\star");G(V,re,Nt,"\u25C3","\\triangleleft");G(V,re,Nt,"\u25B9","\\triangleright");G(V,re,qs,"{","\\{");G(it,re,_e,"{","\\{");G(it,re,_e,"{","\\textbraceleft");G(V,re,qa,"}","\\}");G(it,re,_e,"}","\\}");G(it,re,_e,"}","\\textbraceright");G(V,re,qs,"{","\\lbrace");G(V,re,qa,"}","\\rbrace");G(V,re,qs,"[","\\lbrack",!0);G(it,re,_e,"[","\\lbrack",!0);G(V,re,qa,"]","\\rbrack",!0);G(it,re,_e,"]","\\rbrack",!0);G(V,re,qs,"(","\\lparen",!0);G(V,re,qa,")","\\rparen",!0);G(it,re,_e,"<","\\textless",!0);G(it,re,_e,">","\\textgreater",!0);G(V,re,qs,"\u230A","\\lfloor",!0);G(V,re,qa,"\u230B","\\rfloor",!0);G(V,re,qs,"\u2308","\\lceil",!0);G(V,re,qa,"\u2309","\\rceil",!0);G(V,re,_e,"\\","\\backslash");G(V,re,_e,"\u2223","|");G(V,re,_e,"\u2223","\\vert");G(it,re,_e,"|","\\textbar",!0);G(V,re,_e,"\u2225","\\|");G(V,re,_e,"\u2225","\\Vert");G(it,re,_e,"\u2225","\\textbardbl");G(it,re,_e,"~","\\textasciitilde");G(it,re,_e,"\\","\\textbackslash");G(it,re,_e,"^","\\textasciicircum");G(V,re,we,"\u2191","\\uparrow",!0);G(V,re,we,"\u21D1","\\Uparrow",!0);G(V,re,we,"\u2193","\\downarrow",!0);G(V,re,we,"\u21D3","\\Downarrow",!0);G(V,re,we,"\u2195","\\updownarrow",!0);G(V,re,we,"\u21D5","\\Updownarrow",!0);G(V,re,Ti,"\u2210","\\coprod");G(V,re,Ti,"\u22C1","\\bigvee");G(V,re,Ti,"\u22C0","\\bigwedge");G(V,re,Ti,"\u2A04","\\biguplus");G(V,re,Ti,"\u22C2","\\bigcap");G(V,re,Ti,"\u22C3","\\bigcup");G(V,re,Ti,"\u222B","\\int");G(V,re,Ti,"\u222B","\\intop");G(V,re,Ti,"\u222C","\\iint");G(V,re,Ti,"\u222D","\\iiint");G(V,re,Ti,"\u220F","\\prod");G(V,re,Ti,"\u2211","\\sum");G(V,re,Ti,"\u2A02","\\bigotimes");G(V,re,Ti,"\u2A01","\\bigoplus");G(V,re,Ti,"\u2A00","\\bigodot");G(V,re,Ti,"\u222E","\\oint");G(V,re,Ti,"\u222F","\\oiint");G(V,re,Ti,"\u2230","\\oiiint");G(V,re,Ti,"\u2A06","\\bigsqcup");G(V,re,Ti,"\u222B","\\smallint");G(it,re,dp,"\u2026","\\textellipsis");G(V,re,dp,"\u2026","\\mathellipsis");G(it,re,dp,"\u2026","\\ldots",!0);G(V,re,dp,"\u2026","\\ldots",!0);G(V,re,dp,"\u22EF","\\@cdots",!0);G(V,re,dp,"\u22F1","\\ddots",!0);G(V,re,_e,"\u22EE","\\varvdots");G(V,re,$n,"\u02CA","\\acute");G(V,re,$n,"\u02CB","\\grave");G(V,re,$n,"\xA8","\\ddot");G(V,re,$n,"~","\\tilde");G(V,re,$n,"\u02C9","\\bar");G(V,re,$n,"\u02D8","\\breve");G(V,re,$n,"\u02C7","\\check");G(V,re,$n,"^","\\hat");G(V,re,$n,"\u20D7","\\vec");G(V,re,$n,"\u02D9","\\dot");G(V,re,$n,"\u02DA","\\mathring");G(V,re,tr,"\uE131","\\@imath");G(V,re,tr,"\uE237","\\@jmath");G(V,re,_e,"\u0131","\u0131");G(V,re,_e,"\u0237","\u0237");G(it,re,_e,"\u0131","\\i",!0);G(it,re,_e,"\u0237","\\j",!0);G(it,re,_e,"\xDF","\\ss",!0);G(it,re,_e,"\xE6","\\ae",!0);G(it,re,_e,"\u0153","\\oe",!0);G(it,re,_e,"\xF8","\\o",!0);G(it,re,_e,"\xC6","\\AE",!0);G(it,re,_e,"\u0152","\\OE",!0);G(it,re,_e,"\xD8","\\O",!0);G(it,re,$n,"\u02CA","\\'");G(it,re,$n,"\u02CB","\\`");G(it,re,$n,"\u02C6","\\^");G(it,re,$n,"\u02DC","\\~");G(it,re,$n,"\u02C9","\\=");G(it,re,$n,"\u02D8","\\u");G(it,re,$n,"\u02D9","\\.");G(it,re,$n,"\xB8","\\c");G(it,re,$n,"\u02DA","\\r");G(it,re,$n,"\u02C7","\\v");G(it,re,$n,"\xA8",'\\"');G(it,re,$n,"\u02DD","\\H");G(it,re,$n,"\u25EF","\\textcircled");VG={"--":!0,"---":!0,"``":!0,"''":!0};G(it,re,_e,"\u2013","--",!0);G(it,re,_e,"\u2013","\\textendash");G(it,re,_e,"\u2014","---",!0);G(it,re,_e,"\u2014","\\textemdash");G(it,re,_e,"\u2018","`",!0);G(it,re,_e,"\u2018","\\textquoteleft");G(it,re,_e,"\u2019","'",!0);G(it,re,_e,"\u2019","\\textquoteright");G(it,re,_e,"\u201C","``",!0);G(it,re,_e,"\u201C","\\textquotedblleft");G(it,re,_e,"\u201D","''",!0);G(it,re,_e,"\u201D","\\textquotedblright");G(V,re,_e,"\xB0","\\degree",!0);G(it,re,_e,"\xB0","\\degree");G(it,re,_e,"\xB0","\\textdegree",!0);G(V,re,_e,"\xA3","\\pounds");G(V,re,_e,"\xA3","\\mathsterling",!0);G(it,re,_e,"\xA3","\\pounds");G(it,re,_e,"\xA3","\\textsterling",!0);G(V,ve,_e,"\u2720","\\maltese");G(it,ve,_e,"\u2720","\\maltese");uG='0123456789/@."';for(Qb=0;Qb0)return hl(a,h,i,r,s.concat(f));if(u){var d,p;if(u==="boldsymbol"){var m=o4e(a,i,r,s,n);d=m.fontName,p=[m.fontClass]}else l?(d=WG[u].fontName,p=[u]):(d=r4(u,r.fontWeight,r.fontShape),p=[u,r.fontWeight,r.fontShape]);if(v4(a,d,i).metrics)return hl(a,d,i,r,s.concat(p));if(VG.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var g=[],y=0;y{if(lh(t.classes)!==lh(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),u4e=o(t=>{for(var e=0;er&&(r=s.height),s.depth>n&&(n=s.depth),s.maxFontSize>i&&(i=s.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},"sizeElementFromChildren"),ds=o(function(e,r,n,i){var a=new qf(e,r,n,i);return MC(a),a},"makeSpan"),UG=o((t,e,r,n)=>new qf(t,e,r,n),"makeSvgSpan"),h4e=o(function(e,r,n){var i=ds([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=mt(i.height),i.maxFontSize=1,i},"makeLineSpan"),f4e=o(function(e,r,n,i){var a=new ey(e,r,n,i);return MC(a),a},"makeAnchor"),HG=o(function(e){var r=new Yf(e);return MC(r),r},"makeFragment"),d4e=o(function(e,r){return e instanceof Yf?ds([],[e],r):e},"wrapFragment"),p4e=o(function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,a=i,s=1;s{var r=ds(["mspace"],[],e),n=Qn(t,e);return r.style.marginRight=mt(n),r},"makeGlue"),r4=o(function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var a;return r==="textbf"&&n==="textit"?a="BoldItalic":r==="textbf"?a="Bold":r==="textit"?a="Italic":a="Regular",i+"-"+a},"retrieveTextFontName"),WG={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},YG={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},y4e=o(function(e,r){var[n,i,a]=YG[e],s=new Jl(n),l=new fl([s],{width:mt(i),height:mt(a),style:"width:"+mt(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),u=UG(["overlay"],[l],r);return u.height=a,u.style.height=mt(a),u.style.width=mt(i),u},"staticSvg"),Ie={fontMap:WG,makeSymbol:hl,mathsym:s4e,makeSpan:ds,makeSvgSpan:UG,makeLineSpan:h4e,makeAnchor:f4e,makeFragment:HG,wrapFragment:d4e,makeVList:m4e,makeOrd:l4e,makeGlue:g4e,staticSvg:y4e,svgData:YG,tryCombineChars:u4e},Kn={number:3,unit:"mu"},Hf={number:4,unit:"mu"},tu={number:5,unit:"mu"},v4e={mord:{mop:Kn,mbin:Hf,mrel:tu,minner:Kn},mop:{mord:Kn,mop:Kn,mrel:tu,minner:Kn},mbin:{mord:Hf,mop:Hf,mopen:Hf,minner:Hf},mrel:{mord:tu,mop:tu,mopen:tu,minner:tu},mopen:{},mclose:{mop:Kn,mbin:Hf,mrel:tu,minner:Kn},mpunct:{mord:Kn,mop:Kn,mrel:tu,mopen:Kn,mclose:Kn,mpunct:Kn,minner:Kn},minner:{mord:Kn,mop:Kn,mbin:Hf,mrel:tu,mopen:Kn,mpunct:Kn,minner:Kn}},x4e={mord:{mop:Kn},mop:{mord:Kn,mop:Kn},mbin:{},mrel:{},mopen:{},mclose:{mop:Kn},mpunct:{},minner:{mop:Kn}},qG={},f4={},d4={};o(Ct,"defineFunction");o(Xf,"defineFunctionBuilders");p4=o(function(e){return e.type==="ordgroup"&&e.body.length===1?e.body[0]:e},"normalizeArgument"),di=o(function(e){return e.type==="ordgroup"?e.body:[e]},"ordargument"),iu=Ie.makeSpan,b4e=["leftmost","mbin","mopen","mrel","mop","mpunct"],w4e=["rightmost","mrel","mclose","mpunct"],T4e={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT},k4e={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},Ii=o(function(e,r,n,i){i===void 0&&(i=[null,null]);for(var a=[],s=0;s{var v=y.classes[0],x=g.classes[0];v==="mbin"&&Jt.contains(w4e,x)?y.classes[0]="mord":x==="mbin"&&Jt.contains(b4e,v)&&(g.classes[0]="mord")},{node:d},p,m),dG(a,(g,y)=>{var v=kC(y),x=kC(g),b=v&&x?g.hasClass("mtight")?x4e[v][x]:v4e[v][x]:null;if(b)return Ie.makeGlue(b,h)},{node:d},p,m),a},"buildExpression"),dG=o(function t(e,r,n,i,a){i&&e.push(i);for(var s=0;sp=>{e.splice(d+1,0,p),s++})(s)}i&&e.pop()},"traverseNonSpaceNodes"),XG=o(function(e){return e instanceof Yf||e instanceof ey||e instanceof qf&&e.hasClass("enclosing")?e:null},"checkPartialGroup"),E4e=o(function t(e,r){var n=XG(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},"getOutermostNode"),kC=o(function(e,r){return e?(r&&(e=E4e(e,r)),k4e[e.classes[0]]||null):null},"getTypeOfDomTree"),ry=o(function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return iu(r.concat(n))},"makeNullDelimiter"),Or=o(function(e,r,n){if(!e)return iu();if(f4[e.type]){var i=f4[e.type](e,r);if(n&&r.size!==n.size){i=iu(r.sizingClasses(n),[i],r);var a=r.sizeMultiplier/n.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new ut("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(n4,"buildHTMLUnbreakable");o(EC,"buildHTML");o(jG,"newDocumentFragment");ps=class{static{o(this,"MathNode")}constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=lh(this.classes));for(var n=0;n0&&(e+=' class ="'+Jt.escape(lh(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}},Wf=class{static{o(this,"TextNode")}constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return Jt.escape(this.toText())}toText(){return this.text}},SC=class{static{o(this,"SpaceNode")}constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",mt(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},st={MathNode:ps,TextNode:Wf,SpaceNode:SC,newDocumentFragment:jG},Ao=o(function(e,r,n){return En[r][e]&&En[r][e].replace&&e.charCodeAt(0)!==55349&&!(VG.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=En[r][e].replace),new st.TextNode(e)},"makeText"),IC=o(function(e){return e.length===1?e[0]:new st.MathNode("mrow",e)},"makeRow"),OC=o(function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var a=e.text;if(Jt.contains(["\\imath","\\jmath"],a))return null;En[i][a]&&En[i][a].replace&&(a=En[i][a].replace);var s=Ie.fontMap[n].fontName;return RC(a,s,i)?Ie.fontMap[n].variant:null},"getVariant"),gs=o(function(e,r,n){if(e.length===1){var i=mn(e[0],r);return n&&i instanceof ps&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],s,l=0;l0&&(d.text=d.text.slice(0,1)+"\u0338"+d.text.slice(1),a.pop())}}}a.push(u),s=u}return a},"buildExpression"),ch=o(function(e,r,n){return IC(gs(e,r,n))},"buildExpressionRow"),mn=o(function(e,r){if(!e)return new st.MathNode("mrow");if(d4[e.type]){var n=d4[e.type](e,r);return n}else throw new ut("Got group of unknown type: '"+e.type+"'")},"buildGroup");o(pG,"buildMathML");KG=o(function(e){return new u4({style:e.displayMode?rr.DISPLAY:rr.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},"optionsFromSettings"),QG=o(function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=Ie.makeSpan(n,[e])}return e},"displayWrap"),S4e=o(function(e,r,n){var i=KG(n),a;if(n.output==="mathml")return pG(e,r,i,n.displayMode,!0);if(n.output==="html"){var s=EC(e,i);a=Ie.makeSpan(["katex"],[s])}else{var l=pG(e,r,i,n.displayMode,!1),u=EC(e,i);a=Ie.makeSpan(["katex"],[l,u])}return QG(a,n)},"buildTree"),C4e=o(function(e,r,n){var i=KG(n),a=EC(e,i),s=Ie.makeSpan(["katex"],[a]);return QG(s,n)},"buildHTMLTree"),A4e={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},_4e=o(function(e){var r=new st.MathNode("mo",[new st.TextNode(A4e[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},"mathMLnode"),L4e={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},D4e=o(function(e){return e.type==="ordgroup"?e.body.length:1},"groupLength"),N4e=o(function(e,r){function n(){var l=4e5,u=e.label.slice(1);if(Jt.contains(["widehat","widecheck","widetilde","utilde"],u)){var h=e,f=D4e(h.base),d,p,m;if(f>5)u==="widehat"||u==="widecheck"?(d=420,l=2364,m=.42,p=u+"4"):(d=312,l=2340,m=.34,p="tilde4");else{var g=[1,1,2,2,3,3][f];u==="widehat"||u==="widecheck"?(l=[0,1062,2364,2364,2364][g],d=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p=u+g):(l=[0,600,1033,2339,2340][g],d=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var y=new Jl(p),v=new fl([y],{width:"100%",height:mt(m),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Ie.makeSvgSpan([],[v],r),minWidth:0,height:m}}else{var x=[],b=L4e[u],[w,_,T]=b,E=T/1e3,L=w.length,C,A;if(L===1){var I=b[3];C=["hide-tail"],A=[I]}else if(L===2)C=["halfarrow-left","halfarrow-right"],A=["xMinYMin","xMaxYMin"];else if(L===3)C=["brace-left","brace-center","brace-right"],A=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+L+" children.");for(var D=0;D0&&(i.style.minWidth=mt(a)),i},"svgSpan"),R4e=o(function(e,r,n,i,a){var s,l=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(s=Ie.makeSpan(["stretchy",r],[],a),r==="fbox"){var u=a.color&&a.getColor();u&&(s.style.borderColor=u)}}else{var h=[];/^[bx]cancel$/.test(r)&&h.push(new ty({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&h.push(new ty({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var f=new fl(h,{width:"100%",height:mt(l)});s=Ie.makeSvgSpan([],[f],a)}return s.height=l,s.style.height=mt(l),s},"encloseSpan"),au={encloseSpan:R4e,mathMLnode:_4e,svgSpan:N4e};o(yr,"assertNodeType");o(PC,"assertSymbolNodeType");o(x4,"checkSymbolNodeType");BC=o((t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=yr(t.base,"accent"),r=n.base,t.base=r,i=r4e(Or(t,e)),t.base=n):(n=yr(t,"accent"),r=n.base);var a=Or(r,e.havingCrampedStyle()),s=n.isShifty&&Jt.isCharacterBox(r),l=0;if(s){var u=Jt.getBaseElem(r),h=Or(u,e.havingCrampedStyle());l=cG(h).skew}var f=n.label==="\\c",d=f?a.height+a.depth:Math.min(a.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=au.svgSpan(n,e),p=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+mt(2*l)+")",marginLeft:mt(2*l)}:void 0}]},e);else{var m,g;n.label==="\\vec"?(m=Ie.staticSvg("vec",e),g=Ie.svgData.vec[1]):(m=Ie.makeOrd({mode:n.mode,text:n.label},e,"textord"),m=cG(m),m.italic=0,g=m.width,f&&(d+=m.depth)),p=Ie.makeSpan(["accent-body"],[m]);var y=n.label==="\\textcircled";y&&(p.classes.push("accent-full"),d=a.height);var v=l;y||(v-=g/2),p.style.left=mt(v),n.label==="\\textcircled"&&(p.style.top=".2em"),p=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:p}]},e)}var x=Ie.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=x,i.height=Math.max(x.height,i.height),i.classes[0]="mord",i):x},"htmlBuilder$a"),ZG=o((t,e)=>{var r=t.isStretchy?au.mathMLnode(t.label):new st.MathNode("mo",[Ao(t.label,t.mode)]),n=new st.MathNode("mover",[mn(t.base,e),r]);return n.setAttribute("accent","true"),n},"mathmlBuilder$9"),M4e=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));Ct({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:o((t,e)=>{var r=p4(e[0]),n=!M4e.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},"handler"),htmlBuilder:BC,mathmlBuilder:ZG});Ct({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:o((t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},"handler"),htmlBuilder:BC,mathmlBuilder:ZG});Ct({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},"handler"),htmlBuilder:o((t,e)=>{var r=Or(t.base,e),n=au.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,a=Ie.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return Ie.makeSpan(["mord","accentunder"],[a],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=au.mathMLnode(t.label),n=new st.MathNode("munder",[mn(t.base,e),r]);return n.setAttribute("accentunder","true"),n},"mathmlBuilder")});i4=o(t=>{var e=new st.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e},"paddedNode");Ct({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=Ie.wrapFragment(Or(t.body,n,e),e),a=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var s;t.below&&(n=e.havingStyle(r.sub()),s=Ie.wrapFragment(Or(t.below,n,e),e),s.classes.push(a+"-arrow-pad"));var l=au.svgSpan(t,e),u=-e.fontMetrics().axisHeight+.5*l.height,h=-e.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(h-=i.depth);var f;if(s){var d=-e.fontMetrics().axisHeight+s.height+.5*l.height+.111;f=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u},{type:"elem",elem:s,shift:d}]},e)}else f=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:h},{type:"elem",elem:l,shift:u}]},e);return f.children[0].children[0].children[1].classes.push("svg-align"),Ie.makeSpan(["mrel","x-arrow"],[f],e)},mathmlBuilder(t,e){var r=au.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=i4(mn(t.body,e));if(t.below){var a=i4(mn(t.below,e));n=new st.MathNode("munderover",[r,a,i])}else n=new st.MathNode("mover",[r,i])}else if(t.below){var s=i4(mn(t.below,e));n=new st.MathNode("munder",[r,s])}else n=i4(),n=new st.MathNode("mover",[r,n]);return n}});I4e=Ie.makeSpan;o(JG,"htmlBuilder$9");o(e$,"mathmlBuilder$8");Ct({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:di(i),isCharacterBox:Jt.isCharacterBox(i)}},htmlBuilder:JG,mathmlBuilder:e$});b4=o(t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"},"binrelClass");Ct({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:b4(e[0]),body:di(e[1]),isCharacterBox:Jt.isCharacterBox(e[1])}}});Ct({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],a=e[0],s;n!=="\\stackrel"?s=b4(i):s="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:di(i)},u={type:"supsub",mode:a.mode,base:l,sup:n==="\\underset"?null:a,sub:n==="\\underset"?a:null};return{type:"mclass",mode:r.mode,mclass:s,body:[u],isCharacterBox:Jt.isCharacterBox(u)}},htmlBuilder:JG,mathmlBuilder:e$});Ct({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:b4(e[0]),body:di(e[0])}},htmlBuilder(t,e){var r=Ii(t.body,e,!0),n=Ie.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=gs(t.body,e),n=new st.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});O4e={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},mG=o(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),gG=o(t=>t.type==="textord"&&t.text==="@","isStartOfArrow"),P4e=o((t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e,"isLabelEnd");o(B4e,"cdArrow");o(F4e,"parseCD");Ct({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=Ie.wrapFragment(Or(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=mt(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new st.MathNode("mrow",[mn(t.label,e)]);return r=new st.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new st.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});Ct({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=Ie.wrapFragment(Or(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new st.MathNode("mrow",[mn(t.fragment,e)])}});Ct({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=yr(e[0],"ordgroup"),i=n.body,a="",s=0;s=1114111)throw new ut("\\@char with invalid code point "+a);return u<=65535?h=String.fromCharCode(u):(u-=65536,h=String.fromCharCode((u>>10)+55296,(u&1023)+56320)),{type:"textord",mode:r.mode,text:h}}});t$=o((t,e)=>{var r=Ii(t.body,e.withColor(t.color),!1);return Ie.makeFragment(r)},"htmlBuilder$8"),r$=o((t,e)=>{var r=gs(t.body,e.withColor(t.color)),n=new st.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n},"mathmlBuilder$7");Ct({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=yr(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:di(i)}},htmlBuilder:t$,mathmlBuilder:r$});Ct({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=yr(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var a=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:a}},htmlBuilder:t$,mathmlBuilder:r$});Ct({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,a=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:a,size:i&&yr(i,"size").value}},htmlBuilder(t,e){var r=Ie.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=mt(Qn(t.size,e)))),r},mathmlBuilder(t,e){var r=new st.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",mt(Qn(t.size,e)))),r}});CC={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},n$=o(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new ut("Expected a control sequence",t);return e},"checkControlSequence"),z4e=o(t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},"getRHS"),i$=o((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand");Ct({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(CC[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=CC[n.text]),yr(e.parseFunction(),"internal");throw new ut("Invalid token after macro prefix",n)}});Ct({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new ut("Expected a control sequence",n);for(var a=0,s,l=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){s=e.gullet.future(),l[a].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new ut('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==a+1)throw new ut('Argument number "'+n.text+'" out of order');a++,l.push([])}else{if(n.text==="EOF")throw new ut("Expected a macro definition");l[a].push(n.text)}var{tokens:u}=e.gullet.consumeArg();return s&&u.unshift(s),(r==="\\edef"||r==="\\xdef")&&(u=e.gullet.expandTokens(u),u.reverse()),e.gullet.macros.set(i,{tokens:u,numArgs:a,delimiters:l},r===CC[r]),{type:"internal",mode:e.mode}}});Ct({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=n$(e.gullet.popToken());e.gullet.consumeSpaces();var i=z4e(e);return i$(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});Ct({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=n$(e.gullet.popToken()),i=e.gullet.popToken(),a=e.gullet.popToken();return i$(e,n,a,r==="\\\\globalfuture"),e.gullet.pushToken(a),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});K1=o(function(e,r,n){var i=En.math[e]&&En.math[e].replace,a=RC(i||e,r,n);if(!a)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return a},"getMetrics"),FC=o(function(e,r,n,i){var a=n.havingBaseStyle(r),s=Ie.makeSpan(i.concat(a.sizingClasses(n)),[e],n),l=a.sizeMultiplier/n.sizeMultiplier;return s.height*=l,s.depth*=l,s.maxFontSize=a.sizeMultiplier,s},"styleWrap"),a$=o(function(e,r,n){var i=r.havingBaseStyle(n),a=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=mt(a),e.height-=a,e.depth+=a},"centerSpan"),G4e=o(function(e,r,n,i,a,s){var l=Ie.makeSymbol(e,"Main-Regular",a,i),u=FC(l,r,i,s);return n&&a$(u,i,r),u},"makeSmallDelim"),$4e=o(function(e,r,n,i){return Ie.makeSymbol(e,"Size"+r+"-Regular",n,i)},"mathrmSize"),s$=o(function(e,r,n,i,a,s){var l=$4e(e,r,a,i),u=FC(Ie.makeSpan(["delimsizing","size"+r],[l],i),rr.TEXT,i,s);return n&&a$(u,i,rr.TEXT),u},"makeLargeDelim"),uC=o(function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Ie.makeSpan(["delimsizinginner",i],[Ie.makeSpan([],[Ie.makeSymbol(e,r,n)])]);return{type:"elem",elem:a}},"makeGlyphSpan"),hC=o(function(e,r,n){var i=Zl["Size4-Regular"][e.charCodeAt(0)]?Zl["Size4-Regular"][e.charCodeAt(0)][4]:Zl["Size1-Regular"][e.charCodeAt(0)][4],a=new Jl("inner",jbe(e,Math.round(1e3*r))),s=new fl([a],{width:mt(i),height:mt(r),style:"width:"+mt(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),l=Ie.makeSvgSpan([],[s],n);return l.height=r,l.style.height=mt(r),l.style.width=mt(i),{type:"elem",elem:l}},"makeInner"),AC=.008,a4={type:"kern",size:-1*AC},V4e=["|","\\lvert","\\rvert","\\vert"],U4e=["\\|","\\lVert","\\rVert","\\Vert"],o$=o(function(e,r,n,i,a,s){var l,u,h,f,d="",p=0;l=h=f=e,u=null;var m="Size1-Regular";e==="\\uparrow"?h=f="\u23D0":e==="\\Uparrow"?h=f="\u2016":e==="\\downarrow"?l=h="\u23D0":e==="\\Downarrow"?l=h="\u2016":e==="\\updownarrow"?(l="\\uparrow",h="\u23D0",f="\\downarrow"):e==="\\Updownarrow"?(l="\\Uparrow",h="\u2016",f="\\Downarrow"):Jt.contains(V4e,e)?(h="\u2223",d="vert",p=333):Jt.contains(U4e,e)?(h="\u2225",d="doublevert",p=556):e==="["||e==="\\lbrack"?(l="\u23A1",h="\u23A2",f="\u23A3",m="Size4-Regular",d="lbrack",p=667):e==="]"||e==="\\rbrack"?(l="\u23A4",h="\u23A5",f="\u23A6",m="Size4-Regular",d="rbrack",p=667):e==="\\lfloor"||e==="\u230A"?(h=l="\u23A2",f="\u23A3",m="Size4-Regular",d="lfloor",p=667):e==="\\lceil"||e==="\u2308"?(l="\u23A1",h=f="\u23A2",m="Size4-Regular",d="lceil",p=667):e==="\\rfloor"||e==="\u230B"?(h=l="\u23A5",f="\u23A6",m="Size4-Regular",d="rfloor",p=667):e==="\\rceil"||e==="\u2309"?(l="\u23A4",h=f="\u23A5",m="Size4-Regular",d="rceil",p=667):e==="("||e==="\\lparen"?(l="\u239B",h="\u239C",f="\u239D",m="Size4-Regular",d="lparen",p=875):e===")"||e==="\\rparen"?(l="\u239E",h="\u239F",f="\u23A0",m="Size4-Regular",d="rparen",p=875):e==="\\{"||e==="\\lbrace"?(l="\u23A7",u="\u23A8",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(l="\u23AB",u="\u23AC",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(l="\u23A7",f="\u23A9",h="\u23AA",m="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(l="\u23AB",f="\u23AD",h="\u23AA",m="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(l="\u23A7",f="\u23AD",h="\u23AA",m="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(l="\u23AB",f="\u23A9",h="\u23AA",m="Size4-Regular");var g=K1(l,m,a),y=g.height+g.depth,v=K1(h,m,a),x=v.height+v.depth,b=K1(f,m,a),w=b.height+b.depth,_=0,T=1;if(u!==null){var E=K1(u,m,a);_=E.height+E.depth,T=2}var L=y+w+_,C=Math.max(0,Math.ceil((r-L)/(T*x))),A=L+C*T*x,I=i.fontMetrics().axisHeight;n&&(I*=i.sizeMultiplier);var D=A/2-I,k=[];if(d.length>0){var R=A-y-w,S=Math.round(A*1e3),O=Kbe(d,Math.round(R*1e3)),N=new Jl(d,O),P=(p/1e3).toFixed(3)+"em",F=(S/1e3).toFixed(3)+"em",B=new fl([N],{width:P,height:F,viewBox:"0 0 "+p+" "+S}),$=Ie.makeSvgSpan([],[B],i);$.height=S/1e3,$.style.width=P,$.style.height=F,k.push({type:"elem",elem:$})}else{if(k.push(uC(f,m,a)),k.push(a4),u===null){var z=A-y-w+2*AC;k.push(hC(h,z,i))}else{var W=(A-y-w-_)/2+2*AC;k.push(hC(h,W,i)),k.push(a4),k.push(uC(u,m,a)),k.push(a4),k.push(hC(h,W,i))}k.push(a4),k.push(uC(l,m,a))}var j=i.havingBaseStyle(rr.TEXT),K=Ie.makeVList({positionType:"bottom",positionData:D,children:k},j);return FC(Ie.makeSpan(["delimsizing","mult"],[K],j),rr.TEXT,i,s)},"makeStackedDelim"),fC=80,dC=.08,pC=o(function(e,r,n,i,a){var s=Xbe(e,i,n),l=new Jl(e,s),u=new fl([l],{width:"400em",height:mt(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return Ie.makeSvgSpan(["hide-tail"],[u],a)},"sqrtSvg"),H4e=o(function(e,r){var n=r.havingBaseSizing(),i=h$("\\surd",e*n.sizeMultiplier,u$,n),a=n.sizeMultiplier,s=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),l,u=0,h=0,f=0,d;return i.type==="small"?(f=1e3+1e3*s+fC,e<1?a=1:e<1.4&&(a=.7),u=(1+s+dC)/a,h=(1+s)/a,l=pC("sqrtMain",u,f,s,r),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(f=(1e3+fC)*Q1[i.size],h=(Q1[i.size]+s)/a,u=(Q1[i.size]+s+dC)/a,l=pC("sqrtSize"+i.size,u,f,s,r),l.style.minWidth="1.02em",d=1/a):(u=e+s+dC,h=e+s,f=Math.floor(1e3*e+s)+fC,l=pC("sqrtTall",u,f,s,r),l.style.minWidth="0.742em",d=1.056),l.height=h,l.style.height=mt(u),{span:l,advanceWidth:d,ruleWidth:(r.fontMetrics().sqrtRuleThickness+s)*a}},"makeSqrtImage"),l$=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],W4e=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],c$=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Q1=[0,1.2,1.8,2.4,3],Y4e=o(function(e,r,n,i,a){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),Jt.contains(l$,e)||Jt.contains(c$,e))return s$(e,r,!1,n,i,a);if(Jt.contains(W4e,e))return o$(e,Q1[r],!1,n,i,a);throw new ut("Illegal delimiter: '"+e+"'")},"makeSizedDelim"),q4e=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],X4e=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"stack"}],u$=[{type:"small",style:rr.SCRIPTSCRIPT},{type:"small",style:rr.SCRIPT},{type:"small",style:rr.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],j4e=o(function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},"delimTypeToFont"),h$=o(function(e,r,n,i){for(var a=Math.min(2,3-i.style.size),s=a;sr)return n[s]}return n[n.length-1]},"traverseSequence"),f$=o(function(e,r,n,i,a,s){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var l;Jt.contains(c$,e)?l=q4e:Jt.contains(l$,e)?l=u$:l=X4e;var u=h$(e,r,l,i);return u.type==="small"?G4e(e,u.style,n,i,a,s):u.type==="large"?s$(e,u.size,n,i,a,s):o$(e,r,n,i,a,s)},"makeCustomSizedDelim"),K4e=o(function(e,r,n,i,a,s){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,u=901,h=5/i.fontMetrics().ptPerEm,f=Math.max(r-l,n+l),d=Math.max(f/500*u,2*f-h);return f$(e,d,!0,i,a,s)},"makeLeftRightDelim"),nu={sqrtImage:H4e,sizedDelim:Y4e,sizeToMaxHeight:Q1,customSizedDelim:f$,leftRightDelim:K4e},yG={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Q4e=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];o(w4,"checkDelimiter");Ct({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:o((t,e)=>{var r=w4(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:yG[t.funcName].size,mclass:yG[t.funcName].mclass,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>t.delim==="."?Ie.makeSpan([t.mclass]):nu.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:o(t=>{var e=[];t.delim!=="."&&e.push(Ao(t.delim,t.mode));var r=new st.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=mt(nu.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r},"mathmlBuilder")});o(vG,"assertParsed");Ct({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new ut("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:w4(e[0],t).text,color:r}},"handler")});Ct({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=w4(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var a=yr(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:a.delim,rightColor:a.color}},"handler"),htmlBuilder:o((t,e)=>{vG(t);for(var r=Ii(t.body,e,!0,["mopen","mclose"]),n=0,i=0,a=!1,s=0;s{vG(t);var r=gs(t.body,e);if(t.left!=="."){var n=new st.MathNode("mo",[Ao(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new st.MathNode("mo",[Ao(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return IC(r)},"mathmlBuilder")});Ct({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var r=w4(e[0],t);if(!t.parser.leftrightDepth)throw new ut("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},"handler"),htmlBuilder:o((t,e)=>{var r;if(t.delim===".")r=ry(e,[]);else{r=nu.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Ao("|","text"):Ao(t.delim,t.mode),n=new st.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n},"mathmlBuilder")});zC=o((t,e)=>{var r=Ie.wrapFragment(Or(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,a,s=0,l=Jt.isCharacterBox(t.body);if(n==="sout")a=Ie.makeSpan(["stretchy","sout"]),a.height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var u=Qn({number:.6,unit:"pt"},e),h=Qn({number:.35,unit:"ex"},e),f=e.havingBaseSizing();i=i/f.sizeMultiplier;var d=r.height+r.depth+u+h;r.style.paddingLeft=mt(d/2+u);var p=Math.floor(1e3*d*i),m=Ybe(p),g=new fl([new Jl("phase",m)],{width:"400em",height:mt(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});a=Ie.makeSvgSpan(["hide-tail"],[g],e),a.style.height=mt(d),s=r.depth+u+h}else{/cancel/.test(n)?l||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var y=0,v=0,x=0;/box/.test(n)?(x=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),y=e.fontMetrics().fboxsep+(n==="colorbox"?0:x),v=y):n==="angl"?(x=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),y=4*x,v=Math.max(0,.25-r.depth)):(y=l?.2:0,v=y),a=au.encloseSpan(r,n,y,v,e),/fbox|boxed|fcolorbox/.test(n)?(a.style.borderStyle="solid",a.style.borderWidth=mt(x)):n==="angl"&&x!==.049&&(a.style.borderTopWidth=mt(x),a.style.borderRightWidth=mt(x)),s=r.depth+v,t.backgroundColor&&(a.style.backgroundColor=t.backgroundColor,t.borderColor&&(a.style.borderColor=t.borderColor))}var b;if(t.backgroundColor)b=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:r,shift:0}]},e);else{var w=/cancel|phase/.test(n)?["svg-align"]:[];b=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:a,shift:s,wrapperClasses:w}]},e)}return/cancel/.test(n)&&(b.height=r.height,b.depth=r.depth),/cancel/.test(n)&&!l?Ie.makeSpan(["mord","cancel-lap"],[b],e):Ie.makeSpan(["mord"],[b],e)},"htmlBuilder$7"),GC=o((t,e)=>{var r=0,n=new st.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[mn(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n},"mathmlBuilder$6");Ct({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=yr(e[0],"color-token").color,s=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,body:s}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,a=yr(e[0],"color-token").color,s=yr(e[1],"color-token").color,l=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,borderColor:a,body:l}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});Ct({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:zC,mathmlBuilder:GC});Ct({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});d$={};o(ec,"defineEnvironment");p$={};o(le,"defineMacro");o(xG,"getHLines");T4=o(t=>{var e=t.parser.settings;if(!e.displayMode)throw new ut("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext");o($C,"getAutoTag");o(uh,"parseArray");o(VC,"dCellStyle");tc=o(function(e,r){var n,i,a=e.body.length,s=e.hLinesBeforeRow,l=0,u=new Array(a),h=[],f=Math.max(r.fontMetrics().arrayRuleWidth,r.minRuleThickness),d=1/r.fontMetrics().ptPerEm,p=5*d;if(e.colSeparationType&&e.colSeparationType==="small"){var m=r.havingStyle(rr.SCRIPT).sizeMultiplier;p=.2778*(m/r.sizeMultiplier)}var g=e.colSeparationType==="CD"?Qn({number:3,unit:"ex"},r):12*d,y=3*d,v=e.arraystretch*g,x=.7*v,b=.3*v,w=0;function _(ke){for(var Fe=0;Fe0&&(w+=.25),h.push({pos:w,isDashed:ke[Fe]})}for(o(_,"setHLinePos"),_(s[0]),n=0;n0&&(D+=b,Lke))for(n=0;n=l)){var ee=void 0;(i>0||e.hskipBeforeAndAfter)&&(ee=Jt.deflt(W.pregap,p),ee!==0&&(O=Ie.makeSpan(["arraycolsep"],[]),O.style.width=mt(ee),S.push(O)));var J=[];for(n=0;n0){for(var ae=Ie.makeLineSpan("hline",r,f),ue=Ie.makeLineSpan("hdashline",r,f),ce=[{type:"elem",elem:u,shift:0}];h.length>0;){var te=h.pop(),De=te.pos-k;te.isDashed?ce.push({type:"elem",elem:ue,shift:De}):ce.push({type:"elem",elem:ae,shift:De})}u=Ie.makeVList({positionType:"individualShift",children:ce},r)}if(P.length===0)return Ie.makeSpan(["mord"],[u],r);var oe=Ie.makeVList({positionType:"individualShift",children:P},r);return oe=Ie.makeSpan(["tag"],[oe],r),Ie.makeFragment([u,oe])},"htmlBuilder"),Z4e={c:"center ",l:"left ",r:"right "},rc=o(function(e,r){for(var n=[],i=new st.MathNode("mtd",[],["mtr-glue"]),a=new st.MathNode("mtd",[],["mml-eqn-num"]),s=0;s0){var g=e.cols,y="",v=!1,x=0,b=g.length;g[0].type==="separator"&&(p+="top ",x=1),g[g.length-1].type==="separator"&&(p+="bottom ",b-=1);for(var w=x;w0?"left ":"",p+=C[C.length-1].length>0?"right ":"";for(var A=1;A-1?"alignat":"align",a=e.envName==="split",s=uh(e.parser,{cols:n,addJot:!0,autoTag:a?void 0:$C(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:e.parser.settings.leqno},"display"),l,u=0,h={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var f="",d=0;d0&&m&&(v=1),n[g]={type:"align",align:y,pregap:v,postgap:0}}return s.colSeparationType=m?"align":"alignat",s},"alignedHandler");ec({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=x4(e[0]),n=r?[e[0]]:yr(e[0],"ordgroup").body,i=n.map(function(s){var l=PC(s),u=l.text;if("lcr".indexOf(u)!==-1)return{type:"align",align:u};if(u==="|")return{type:"separator",separator:"|"};if(u===":")return{type:"separator",separator:":"};throw new ut("Unknown column alignment: "+u,s)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return uh(t.parser,a,VC(t.envName))},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new ut("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var a=uh(t.parser,n,VC(t.envName)),s=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(s).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[a],left:e[0],right:e[1],rightColor:void 0}:a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=uh(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=x4(e[0]),n=r?[e[0]]:yr(e[0],"ordgroup").body,i=n.map(function(s){var l=PC(s),u=l.text;if("lc".indexOf(u)!==-1)return{type:"align",align:u};throw new ut("Unknown column alignment: "+u,s)});if(i.length>1)throw new ut("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=uh(t.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new ut("{subarray} can contain only one column");return a},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=uh(t.parser,e,VC(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:m$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){Jt.contains(["gather","gather*"],t.envName)&&T4(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:$C(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return uh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:m$,htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){T4(t);var e={autoTag:$C(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return uh(t.parser,e,"display")},htmlBuilder:tc,mathmlBuilder:rc});ec({type:"array",names:["CD"],props:{numArgs:0},handler(t){return T4(t),F4e(t.parser)},htmlBuilder:tc,mathmlBuilder:rc});le("\\nonumber","\\gdef\\@eqnsw{0}");le("\\notag","\\nonumber");Ct({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new ut(t.funcName+" valid only within array environment")}});bG=d$;Ct({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new ut("Invalid environment name",i);for(var a="",s=0;s{var r=t.font,n=e.withFont(r);return Or(t.body,n)},"htmlBuilder$5"),y$=o((t,e)=>{var r=t.font,n=e.withFont(r);return mn(t.body,n)},"mathmlBuilder$4"),wG={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Ct({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=p4(e[0]),a=n;return a in wG&&(a=wG[a]),{type:"font",mode:r.mode,font:a.slice(1),body:i}},"handler"),htmlBuilder:g$,mathmlBuilder:y$});Ct({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r}=t,n=e[0],i=Jt.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:b4(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}},"handler")});Ct({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:a}=r,s=r.parseExpression(!0,i),l="math"+n.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:r.mode,body:s}}},"handler"),htmlBuilder:g$,mathmlBuilder:y$});v$=o((t,e)=>{var r=e;return t==="display"?r=r.id>=rr.SCRIPT.id?r.text():rr.DISPLAY:t==="text"&&r.size===rr.DISPLAY.size?r=rr.TEXT:t==="script"?r=rr.SCRIPT:t==="scriptscript"&&(r=rr.SCRIPTSCRIPT),r},"adjustStyle"),UC=o((t,e)=>{var r=v$(t.size,e.style),n=r.fracNum(),i=r.fracDen(),a;a=e.havingStyle(n);var s=Or(t.numer,a,e);if(t.continued){var l=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm;s.height=s.height0?g=3*p:g=7*p,y=e.fontMetrics().denom1):(d>0?(m=e.fontMetrics().num2,g=p):(m=e.fontMetrics().num3,g=3*p),y=e.fontMetrics().denom2);var v;if(f){var b=e.fontMetrics().axisHeight;m-s.depth-(b+.5*d){var r=new st.MathNode("mfrac",[mn(t.numer,e),mn(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=Qn(t.barSize,e);r.setAttribute("linethickness",mt(n))}var i=v$(t.size,e.style);if(i.size!==e.style.size){r=new st.MathNode("mstyle",[r]);var a=i.size===rr.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",a),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var s=[];if(t.leftDelim!=null){var l=new st.MathNode("mo",[new st.TextNode(t.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),s.push(l)}if(s.push(r),t.rightDelim!=null){var u=new st.MathNode("mo",[new st.TextNode(t.rightDelim.replace("\\",""))]);u.setAttribute("fence","true"),s.push(u)}return IC(s)}return r},"mathmlBuilder$3");Ct({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1],s,l=null,u=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":s=!0;break;case"\\\\atopfrac":s=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":s=!1,l="(",u=")";break;case"\\\\bracefrac":s=!1,l="\\{",u="\\}";break;case"\\\\brackfrac":s=!1,l="[",u="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:a,hasBarLine:s,leftDelim:l,rightDelim:u,size:h,barSize:null}},"handler"),htmlBuilder:UC,mathmlBuilder:HC});Ct({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")});Ct({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});TG=["display","text","script","scriptscript"],kG=o(function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r},"delimFromValue");Ct({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],a=p4(e[0]),s=a.type==="atom"&&a.family==="open"?kG(a.text):null,l=p4(e[1]),u=l.type==="atom"&&l.family==="close"?kG(l.text):null,h=yr(e[2],"size"),f,d=null;h.isBlank?f=!0:(d=h.value,f=d.number>0);var p="auto",m=e[3];if(m.type==="ordgroup"){if(m.body.length>0){var g=yr(m.body[0],"textord");p=TG[Number(g.text)]}}else m=yr(m,"textord"),p=TG[Number(m.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:f,barSize:d,leftDelim:s,rightDelim:u,size:p}},htmlBuilder:UC,mathmlBuilder:HC});Ct({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:yr(e[0],"size").value,token:i}}});Ct({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0],a=Nbe(yr(e[1],"infix").size),s=e[2],l=a.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:s,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},"handler"),htmlBuilder:UC,mathmlBuilder:HC});x$=o((t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Or(t.sup,e.havingStyle(r.sup()),e):Or(t.sub,e.havingStyle(r.sub()),e),i=yr(t.base,"horizBrace")):i=yr(t,"horizBrace");var a=Or(i.base,e.havingBaseStyle(rr.DISPLAY)),s=au.svgSpan(i,e),l;if(i.isOver?(l=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Ie.makeVList({positionType:"bottom",positionData:a.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),l.children[0].children[0].children[0].classes.push("svg-align")),n){var u=Ie.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e);i.isOver?l=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:u},{type:"kern",size:.2},{type:"elem",elem:n}]},e):l=Ie.makeVList({positionType:"bottom",positionData:u.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:u}]},e)}return Ie.makeSpan(["mord",i.isOver?"mover":"munder"],[l],e)},"htmlBuilder$3"),J4e=o((t,e)=>{var r=au.mathMLnode(t.label);return new st.MathNode(t.isOver?"mover":"munder",[mn(t.base,e),r])},"mathmlBuilder$2");Ct({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:x$,mathmlBuilder:J4e});Ct({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[1],i=yr(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:di(n)}:r.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e,!1);return Ie.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=ch(t.body,e);return r instanceof ps||(r=new ps("mrow",[r])),r.setAttribute("href",t.href),r},"mathmlBuilder")});Ct({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=yr(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:r,funcName:n,token:i}=t,a=yr(e[0],"raw").string,s=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,u={};switch(n){case"\\htmlClass":u.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":u.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":u.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var h=a.split(","),f=0;f{var r=Ii(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=Ie.makeSpan(n,r,e);for(var a in t.attributes)a!=="class"&&t.attributes.hasOwnProperty(a)&&i.setAttribute(a,t.attributes[a]);return i},"htmlBuilder"),mathmlBuilder:o((t,e)=>ch(t.body,e),"mathmlBuilder")});Ct({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:di(e[0]),mathml:di(e[1])}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.html,e,!1);return Ie.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>ch(t.mathml,e),"mathmlBuilder")});mC=o(function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new ut("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!FG(n))throw new ut("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n},"sizeData");Ct({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:o((t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},a={number:.9,unit:"em"},s={number:0,unit:"em"},l="";if(r[0])for(var u=yr(r[0],"raw").string,h=u.split(","),f=0;f{var r=Qn(t.height,e),n=0;t.totalheight.number>0&&(n=Qn(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=Qn(t.width,e));var a={height:mt(r+n)};i>0&&(a.width=mt(i)),n>0&&(a.verticalAlign=mt(-n));var s=new wC(t.src,t.alt,a);return s.height=r,s.depth=n,s},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new st.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=Qn(t.height,e),i=0;if(t.totalheight.number>0&&(i=Qn(t.totalheight,e)-n,r.setAttribute("valign",mt(-i))),r.setAttribute("height",mt(n+i)),t.width.number>0){var a=Qn(t.width,e);r.setAttribute("width",mt(a))}return r.setAttribute("src",t.src),r},"mathmlBuilder")});Ct({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=yr(e[0],"size");if(r.settings.strict){var a=n[1]==="m",s=i.value.unit==="mu";a?(s||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):s&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return Ie.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=Qn(t.dimension,e);return new st.SpaceNode(r)}});Ct({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},"handler"),htmlBuilder:o((t,e)=>{var r;t.alignment==="clap"?(r=Ie.makeSpan([],[Or(t.body,e)]),r=Ie.makeSpan(["inner"],[r],e)):r=Ie.makeSpan(["inner"],[Or(t.body,e)]);var n=Ie.makeSpan(["fix"],[]),i=Ie.makeSpan([t.alignment],[r,n],e),a=Ie.makeSpan(["strut"]);return a.style.height=mt(i.height+i.depth),i.depth&&(a.style.verticalAlign=mt(-i.depth)),i.children.unshift(a),i=Ie.makeSpan(["thinbox"],[i],e),Ie.makeSpan(["mord","vbox"],[i],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=new st.MathNode("mpadded",[mn(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r},"mathmlBuilder")});Ct({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var a=r==="\\("?"\\)":"$",s=n.parseExpression(!1,a);return n.expect(a),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:s}}});Ct({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new ut("Mismatched "+t.funcName)}});EG=o((t,e)=>{switch(e.style.size){case rr.DISPLAY.size:return t.display;case rr.TEXT.size:return t.text;case rr.SCRIPT.size:return t.script;case rr.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle");Ct({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:o((t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:di(e[0]),text:di(e[1]),script:di(e[2]),scriptscript:di(e[3])}},"handler"),htmlBuilder:o((t,e)=>{var r=EG(t,e),n=Ii(r,e,!1);return Ie.makeFragment(n)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=EG(t,e);return ch(r,e)},"mathmlBuilder")});b$=o((t,e,r,n,i,a,s)=>{t=Ie.makeSpan([],[t]);var l=r&&Jt.isCharacterBox(r),u,h;if(e){var f=Or(e,n.havingStyle(i.sup()),n);h={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-f.depth)}}if(r){var d=Or(r,n.havingStyle(i.sub()),n);u={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-d.height)}}var p;if(h&&u){var m=n.fontMetrics().bigOpSpacing5+u.elem.height+u.elem.depth+u.kern+t.depth+s;p=Ie.makeVList({positionType:"bottom",positionData:m,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:mt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:mt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(u){var g=t.height-s;p=Ie.makeVList({positionType:"top",positionData:g,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:u.elem,marginLeft:mt(-a)},{type:"kern",size:u.kern},{type:"elem",elem:t}]},n)}else if(h){var y=t.depth+s;p=Ie.makeVList({positionType:"bottom",positionData:y,children:[{type:"elem",elem:t},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:mt(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var v=[p];if(u&&a!==0&&!l){var x=Ie.makeSpan(["mspace"],[],n);x.style.marginRight=mt(a),v.unshift(x)}return Ie.makeSpan(["mop","op-limits"],v,n)},"assembleSupSub"),w$=["\\smallint"],pp=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=yr(t.base,"op"),i=!0):a=yr(t,"op");var s=e.style,l=!1;s.size===rr.DISPLAY.size&&a.symbol&&!Jt.contains(w$,a.name)&&(l=!0);var u;if(a.symbol){var h=l?"Size2-Regular":"Size1-Regular",f="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(f=a.name.slice(1),a.name=f==="oiint"?"\\iint":"\\iiint"),u=Ie.makeSymbol(a.name,h,"math",e,["mop","op-symbol",l?"large-op":"small-op"]),f.length>0){var d=u.italic,p=Ie.staticSvg(f+"Size"+(l?"2":"1"),e);u=Ie.makeVList({positionType:"individualShift",children:[{type:"elem",elem:u,shift:0},{type:"elem",elem:p,shift:l?.08:0}]},e),a.name="\\"+f,u.classes.unshift("mop"),u.italic=d}}else if(a.body){var m=Ii(a.body,e,!0);m.length===1&&m[0]instanceof ms?(u=m[0],u.classes[0]="mop"):u=Ie.makeSpan(["mop"],m,e)}else{for(var g=[],y=1;y{var r;if(t.symbol)r=new ps("mo",[Ao(t.name,t.mode)]),Jt.contains(w$,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new ps("mo",gs(t.body,e));else{r=new ps("mi",[new Wf(t.name.slice(1))]);var n=new ps("mo",[Ao("\u2061","text")]);t.parentIsSupSub?r=new ps("mrow",[r,n]):r=jG([r,n])}return r},"mathmlBuilder$1"),e3e={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Ct({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=e3e[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},"handler"),htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:di(n)}},"handler"),htmlBuilder:pp,mathmlBuilder:ny});t3e={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Ct({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:pp,mathmlBuilder:ny});Ct({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=t3e[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:pp,mathmlBuilder:ny});T$=o((t,e)=>{var r,n,i=!1,a;t.type==="supsub"?(r=t.sup,n=t.sub,a=yr(t.base,"operatorname"),i=!0):a=yr(t,"operatorname");var s;if(a.body.length>0){for(var l=a.body.map(d=>{var p=d.text;return typeof p=="string"?{type:"textord",mode:d.mode,text:p}:d}),u=Ii(l,e.withFont("mathrm"),!0),h=0;h{for(var r=gs(t.body,e.withFont("mathrm")),n=!0,i=0;if.toText()).join("");r=[new st.TextNode(l)]}var u=new st.MathNode("mi",r);u.setAttribute("mathvariant","normal");var h=new st.MathNode("mo",[Ao("\u2061","text")]);return t.parentIsSupSub?new st.MathNode("mrow",[u,h]):st.newDocumentFragment([u,h])},"mathmlBuilder");Ct({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:o((t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:di(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:T$,mathmlBuilder:r3e});le("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Xf({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Ie.makeFragment(Ii(t.body,e,!1)):Ie.makeSpan(["mord"],Ii(t.body,e,!0),e)},mathmlBuilder(t,e){return ch(t.body,e,!0)}});Ct({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Or(t.body,e.havingCrampedStyle()),n=Ie.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return Ie.makeSpan(["mord","overline"],[a],e)},mathmlBuilder(t,e){var r=new st.MathNode("mo",[new st.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new st.MathNode("mover",[mn(t.body,e),r]);return n.setAttribute("accent","true"),n}});Ct({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:di(n)}},"handler"),htmlBuilder:o((t,e)=>{var r=Ii(t.body,e.withPhantom(),!1);return Ie.makeFragment(r)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(t.body,e);return new st.MathNode("mphantom",r)},"mathmlBuilder")});Ct({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Ie.makeSpan([],[Or(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=gs(di(t.body),e),n=new st.MathNode("mphantom",r),i=new st.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i},"mathmlBuilder")});Ct({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:o((t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},"handler"),htmlBuilder:o((t,e)=>{var r=Ie.makeSpan(["inner"],[Or(t.body,e.withPhantom())]),n=Ie.makeSpan(["fix"],[]);return Ie.makeSpan(["mord","rlap"],[r,n],e)},"htmlBuilder"),mathmlBuilder:o((t,e)=>{var r=gs(di(t.body),e),n=new st.MathNode("mphantom",r),i=new st.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i},"mathmlBuilder")});Ct({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=yr(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Or(t.body,e),n=Qn(t.dy,e);return Ie.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new st.MathNode("mpadded",[mn(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});Ct({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});Ct({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],a=yr(e[0],"size"),s=yr(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&yr(i,"size").value,width:a.value,height:s.value}},htmlBuilder(t,e){var r=Ie.makeSpan(["mord","rule"],[],e),n=Qn(t.width,e),i=Qn(t.height,e),a=t.shift?Qn(t.shift,e):0;return r.style.borderRightWidth=mt(n),r.style.borderTopWidth=mt(i),r.style.bottom=mt(a),r.width=n,r.height=i+a,r.depth=-a,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=Qn(t.width,e),n=Qn(t.height,e),i=t.shift?Qn(t.shift,e):0,a=e.color&&e.getColor()||"black",s=new st.MathNode("mspace");s.setAttribute("mathbackground",a),s.setAttribute("width",mt(r)),s.setAttribute("height",mt(n));var l=new st.MathNode("mpadded",[s]);return i>=0?l.setAttribute("height",mt(i)):(l.setAttribute("height",mt(i)),l.setAttribute("depth",mt(-i))),l.setAttribute("voffset",mt(i)),l}});o(k$,"sizingGroup");SG=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],n3e=o((t,e)=>{var r=e.havingSize(t.size);return k$(t.body,r,e)},"htmlBuilder");Ct({type:"sizing",names:SG,props:{numArgs:0,allowedInText:!0},handler:o((t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:SG.indexOf(n)+1,body:a}},"handler"),htmlBuilder:n3e,mathmlBuilder:o((t,e)=>{var r=e.havingSize(t.size),n=gs(t.body,r),i=new st.MathNode("mstyle",n);return i.setAttribute("mathsize",mt(r.sizeMultiplier)),i},"mathmlBuilder")});Ct({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:o((t,e,r)=>{var{parser:n}=t,i=!1,a=!1,s=r[0]&&yr(r[0],"ordgroup");if(s)for(var l="",u=0;u{var r=Ie.makeSpan([],[Or(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new st.MathNode("mpadded",[mn(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r},"mathmlBuilder")});Ct({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],a=e[0];return{type:"sqrt",mode:n.mode,body:a,index:i}},htmlBuilder(t,e){var r=Or(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=Ie.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,a=i;e.style.idr.height+r.depth+s&&(s=(s+d-r.height-r.depth)/2);var p=u.height-r.height-s-h;r.style.paddingLeft=mt(f);var m=Ie.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:u},{type:"kern",size:h}]},e);if(t.index){var g=e.havingStyle(rr.SCRIPTSCRIPT),y=Or(t.index,g,e),v=.6*(m.height-m.depth),x=Ie.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:y}]},e),b=Ie.makeSpan(["root"],[x]);return Ie.makeSpan(["mord","sqrt"],[b,m],e)}else return Ie.makeSpan(["mord","sqrt"],[m],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new st.MathNode("mroot",[mn(r,e),mn(n,e)]):new st.MathNode("msqrt",[mn(r,e)])}});CG={display:rr.DISPLAY,text:rr.TEXT,script:rr.SCRIPT,scriptscript:rr.SCRIPTSCRIPT};Ct({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,a=i.parseExpression(!0,r),s=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:s,body:a}},htmlBuilder(t,e){var r=CG[t.style],n=e.havingStyle(r).withFont("");return k$(t.body,n,e)},mathmlBuilder(t,e){var r=CG[t.style],n=e.havingStyle(r),i=gs(t.body,n),a=new st.MathNode("mstyle",i),s={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=s[t.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});i3e=o(function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===rr.DISPLAY.size||n.alwaysHandleSupSub);return i?pp:null}else if(n.type==="operatorname"){var a=n.alwaysHandleSupSub&&(r.style.size===rr.DISPLAY.size||n.limits);return a?T$:null}else{if(n.type==="accent")return Jt.isCharacterBox(n.base)?BC:null;if(n.type==="horizBrace"){var s=!e.sub;return s===n.isOver?x$:null}else return null}else return null},"htmlBuilderDelegate");Xf({type:"supsub",htmlBuilder(t,e){var r=i3e(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:a}=t,s=Or(n,e),l,u,h=e.fontMetrics(),f=0,d=0,p=n&&Jt.isCharacterBox(n);if(i){var m=e.havingStyle(e.style.sup());l=Or(i,m,e),p||(f=s.height-m.fontMetrics().supDrop*m.sizeMultiplier/e.sizeMultiplier)}if(a){var g=e.havingStyle(e.style.sub());u=Or(a,g,e),p||(d=s.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}var y;e.style===rr.DISPLAY?y=h.sup1:e.style.cramped?y=h.sup3:y=h.sup2;var v=e.sizeMultiplier,x=mt(.5/h.ptPerEm/v),b=null;if(u){var w=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(s instanceof ms||w)&&(b=mt(-s.italic))}var _;if(l&&u){f=Math.max(f,y,l.depth+.25*h.xHeight),d=Math.max(d,h.sub2);var T=h.defaultRuleThickness,E=4*T;if(f-l.depth-(u.height-d)0&&(f+=L,d-=L)}var C=[{type:"elem",elem:u,shift:d,marginRight:x,marginLeft:b},{type:"elem",elem:l,shift:-f,marginRight:x}];_=Ie.makeVList({positionType:"individualShift",children:C},e)}else if(u){d=Math.max(d,h.sub1,u.height-.8*h.xHeight);var A=[{type:"elem",elem:u,marginLeft:b,marginRight:x}];_=Ie.makeVList({positionType:"shift",positionData:d,children:A},e)}else if(l)f=Math.max(f,y,l.depth+.25*h.xHeight),_=Ie.makeVList({positionType:"shift",positionData:-f,children:[{type:"elem",elem:l,marginRight:x}]},e);else throw new Error("supsub must have either sup or sub.");var I=kC(s,"right")||"mord";return Ie.makeSpan([I],[s,Ie.makeSpan(["msupsub"],[_])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var a=[mn(t.base,e)];t.sub&&a.push(mn(t.sub,e)),t.sup&&a.push(mn(t.sup,e));var s;if(r)s=n?"mover":"munder";else if(t.sub)if(t.sup){var h=t.base;h&&h.type==="op"&&h.limits&&e.style===rr.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===rr.DISPLAY||h.limits)?s="munderover":s="msubsup"}else{var u=t.base;u&&u.type==="op"&&u.limits&&(e.style===rr.DISPLAY||u.alwaysHandleSupSub)||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(u.limits||e.style===rr.DISPLAY)?s="munder":s="msub"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===rr.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===rr.DISPLAY)?s="mover":s="msup"}return new st.MathNode(s,a)}});Xf({type:"atom",htmlBuilder(t,e){return Ie.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new st.MathNode("mo",[Ao(t.text,t.mode)]);if(t.family==="bin"){var n=OC(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});E$={mi:"italic",mn:"normal",mtext:"normal"};Xf({type:"mathord",htmlBuilder(t,e){return Ie.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new st.MathNode("mi",[Ao(t.text,t.mode,e)]),n=OC(t,e)||"italic";return n!==E$[r.type]&&r.setAttribute("mathvariant",n),r}});Xf({type:"textord",htmlBuilder(t,e){return Ie.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Ao(t.text,t.mode,e),n=OC(t,e)||"normal",i;return t.mode==="text"?i=new st.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new st.MathNode("mn",[r]):t.text==="\\prime"?i=new st.MathNode("mo",[r]):i=new st.MathNode("mi",[r]),n!==E$[i.type]&&i.setAttribute("mathvariant",n),i}});gC={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},yC={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Xf({type:"spacing",htmlBuilder(t,e){if(yC.hasOwnProperty(t.text)){var r=yC[t.text].className||"";if(t.mode==="text"){var n=Ie.makeOrd(t,e,"textord");return n.classes.push(r),n}else return Ie.makeSpan(["mspace",r],[Ie.mathsym(t.text,t.mode,e)],e)}else{if(gC.hasOwnProperty(t.text))return Ie.makeSpan(["mspace",gC[t.text]],[],e);throw new ut('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(yC.hasOwnProperty(t.text))r=new st.MathNode("mtext",[new st.TextNode("\xA0")]);else{if(gC.hasOwnProperty(t.text))return new st.MathNode("mspace");throw new ut('Unknown type of space "'+t.text+'"')}return r}});AG=o(()=>{var t=new st.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad");Xf({type:"tag",mathmlBuilder(t,e){var r=new st.MathNode("mtable",[new st.MathNode("mtr",[AG(),new st.MathNode("mtd",[ch(t.body,e)]),AG(),new st.MathNode("mtd",[ch(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});_G={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},LG={"\\textbf":"textbf","\\textmd":"textmd"},a3e={"\\textit":"textit","\\textup":"textup"},DG=o((t,e)=>{var r=t.font;if(r){if(_G[r])return e.withTextFontFamily(_G[r]);if(LG[r])return e.withTextFontWeight(LG[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(a3e[r])},"optionsWithFont");Ct({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:di(i),font:n}},htmlBuilder(t,e){var r=DG(t,e),n=Ii(t.body,r,!0);return Ie.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=DG(t,e);return ch(t.body,r)}});Ct({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Or(t.body,e),n=Ie.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,a=Ie.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return Ie.makeSpan(["mord","underline"],[a],e)},mathmlBuilder(t,e){var r=new st.MathNode("mo",[new st.TextNode("\u203E")]);r.setAttribute("stretchy","true");var n=new st.MathNode("munder",[mn(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});Ct({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Or(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return Ie.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new st.MathNode("mpadded",[mn(t.body,e)],["vcenter"])}});Ct({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new ut("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=NG(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"\u2423":"\xA0"),"makeVerb"),oh=qG,S$=`[ \r + ]`,s3e="\\\\[a-zA-Z@]+",o3e="\\\\[^\uD800-\uDFFF]",l3e="("+s3e+")"+S$+"*",c3e=`\\\\( +|[ \r ]+ +?)[ \r ]*`,_C="[\u0300-\u036F]",u3e=new RegExp(_C+"+$"),h3e="("+S$+"+)|"+(c3e+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(_C+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(_C+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+l3e)+("|"+o3e+")"),m4=class{static{o(this,"Lexer")}constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(h3e,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Co("EOF",new Ys(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new ut("Unexpected character: '"+e[r]+"'",new Co(e[r],new Ys(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=e.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Co(i,new Ys(this,r,this.tokenRegex.lastIndex))}},LC=class{static{o(this,"Namespace")}constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new ut("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}},f3e=p$;le("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});le("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});le("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});le("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});le("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});le("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");le("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});RG={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};le("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new ut("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=RG[e.text],n==null||n>=r)throw new ut("Invalid base-"+r+" digit "+e.text);for(var i;(i=RG[t.future().text])!=null&&i{var n=t.consumeArg().tokens;if(n.length!==1)throw new ut("\\newcommand's first argument must be a macro name");var i=n[0].text,a=t.isDefined(i);if(a&&!e)throw new ut("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new ut("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var s=0;if(n=t.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",u=t.expandNextToken();u.text!=="]"&&u.text!=="EOF";)l+=u.text,u=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new ut("Invalid number of arguments: "+l);s=parseInt(l),n=t.consumeArg().tokens}return t.macros.set(i,{tokens:n,numArgs:s}),""},"newcommand");le("\\newcommand",t=>WC(t,!1,!0));le("\\renewcommand",t=>WC(t,!0,!1));le("\\providecommand",t=>WC(t,!0,!0));le("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});le("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});le("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),oh[r],En.math[r],En.text[r]),""});le("\\bgroup","{");le("\\egroup","}");le("~","\\nobreakspace");le("\\lq","`");le("\\rq","'");le("\\aa","\\r a");le("\\AA","\\r A");le("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");le("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");le("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");le("\u212C","\\mathscr{B}");le("\u2130","\\mathscr{E}");le("\u2131","\\mathscr{F}");le("\u210B","\\mathscr{H}");le("\u2110","\\mathscr{I}");le("\u2112","\\mathscr{L}");le("\u2133","\\mathscr{M}");le("\u211B","\\mathscr{R}");le("\u212D","\\mathfrak{C}");le("\u210C","\\mathfrak{H}");le("\u2128","\\mathfrak{Z}");le("\\Bbbk","\\Bbb{k}");le("\xB7","\\cdotp");le("\\llap","\\mathllap{\\textrm{#1}}");le("\\rlap","\\mathrlap{\\textrm{#1}}");le("\\clap","\\mathclap{\\textrm{#1}}");le("\\mathstrut","\\vphantom{(}");le("\\underbar","\\underline{\\text{#1}}");le("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');le("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");le("\\ne","\\neq");le("\u2260","\\neq");le("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");le("\u2209","\\notin");le("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");le("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");le("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");le("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");le("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");le("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");le("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");le("\u27C2","\\perp");le("\u203C","\\mathclose{!\\mkern-0.8mu!}");le("\u220C","\\notni");le("\u231C","\\ulcorner");le("\u231D","\\urcorner");le("\u231E","\\llcorner");le("\u231F","\\lrcorner");le("\xA9","\\copyright");le("\xAE","\\textregistered");le("\uFE0F","\\textregistered");le("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');le("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');le("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');le("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');le("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");le("\u22EE","\\vdots");le("\\varGamma","\\mathit{\\Gamma}");le("\\varDelta","\\mathit{\\Delta}");le("\\varTheta","\\mathit{\\Theta}");le("\\varLambda","\\mathit{\\Lambda}");le("\\varXi","\\mathit{\\Xi}");le("\\varPi","\\mathit{\\Pi}");le("\\varSigma","\\mathit{\\Sigma}");le("\\varUpsilon","\\mathit{\\Upsilon}");le("\\varPhi","\\mathit{\\Phi}");le("\\varPsi","\\mathit{\\Psi}");le("\\varOmega","\\mathit{\\Omega}");le("\\substack","\\begin{subarray}{c}#1\\end{subarray}");le("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");le("\\boxed","\\fbox{$\\displaystyle{#1}$}");le("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");le("\\implies","\\DOTSB\\;\\Longrightarrow\\;");le("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");MG={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};le("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in MG?e=MG[r]:(r.slice(0,4)==="\\not"||r in En.math&&Jt.contains(["bin","rel"],En.math[r].group))&&(e="\\dotsb"),e});YC={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};le("\\dotso",function(t){var e=t.future().text;return e in YC?"\\ldots\\,":"\\ldots"});le("\\dotsc",function(t){var e=t.future().text;return e in YC&&e!==","?"\\ldots\\,":"\\ldots"});le("\\cdots",function(t){var e=t.future().text;return e in YC?"\\@cdots\\,":"\\@cdots"});le("\\dotsb","\\cdots");le("\\dotsm","\\cdots");le("\\dotsi","\\!\\cdots");le("\\dotsx","\\ldots\\,");le("\\DOTSI","\\relax");le("\\DOTSB","\\relax");le("\\DOTSX","\\relax");le("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");le("\\,","\\tmspace+{3mu}{.1667em}");le("\\thinspace","\\,");le("\\>","\\mskip{4mu}");le("\\:","\\tmspace+{4mu}{.2222em}");le("\\medspace","\\:");le("\\;","\\tmspace+{5mu}{.2777em}");le("\\thickspace","\\;");le("\\!","\\tmspace-{3mu}{.1667em}");le("\\negthinspace","\\!");le("\\negmedspace","\\tmspace-{4mu}{.2222em}");le("\\negthickspace","\\tmspace-{5mu}{.277em}");le("\\enspace","\\kern.5em ");le("\\enskip","\\hskip.5em\\relax");le("\\quad","\\hskip1em\\relax");le("\\qquad","\\hskip2em\\relax");le("\\tag","\\@ifstar\\tag@literal\\tag@paren");le("\\tag@paren","\\tag@literal{({#1})}");le("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new ut("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});le("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");le("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");le("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");le("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");le("\\newline","\\\\\\relax");le("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");C$=mt(Zl["Main-Regular"][84][1]-.7*Zl["Main-Regular"][65][1]);le("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+C$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");le("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+C$+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");le("\\hspace","\\@ifstar\\@hspacer\\@hspace");le("\\@hspace","\\hskip #1\\relax");le("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");le("\\ordinarycolon",":");le("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");le("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');le("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');le("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');le("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');le("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');le("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');le("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');le("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');le("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');le("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');le("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');le("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');le("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');le("\u2237","\\dblcolon");le("\u2239","\\eqcolon");le("\u2254","\\coloneqq");le("\u2255","\\eqqcolon");le("\u2A74","\\Coloneqq");le("\\ratio","\\vcentcolon");le("\\coloncolon","\\dblcolon");le("\\colonequals","\\coloneqq");le("\\coloncolonequals","\\Coloneqq");le("\\equalscolon","\\eqqcolon");le("\\equalscoloncolon","\\Eqqcolon");le("\\colonminus","\\coloneq");le("\\coloncolonminus","\\Coloneq");le("\\minuscolon","\\eqcolon");le("\\minuscoloncolon","\\Eqcolon");le("\\coloncolonapprox","\\Colonapprox");le("\\coloncolonsim","\\Colonsim");le("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");le("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");le("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");le("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");le("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");le("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");le("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");le("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");le("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");le("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");le("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");le("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");le("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");le("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");le("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");le("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");le("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");le("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");le("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");le("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");le("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");le("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");le("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");le("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");le("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");le("\\imath","\\html@mathml{\\@imath}{\u0131}");le("\\jmath","\\html@mathml{\\@jmath}{\u0237}");le("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");le("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");le("\u27E6","\\llbracket");le("\u27E7","\\rrbracket");le("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");le("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");le("\u2983","\\lBrace");le("\u2984","\\rBrace");le("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");le("\u29B5","\\minuso");le("\\darr","\\downarrow");le("\\dArr","\\Downarrow");le("\\Darr","\\Downarrow");le("\\lang","\\langle");le("\\rang","\\rangle");le("\\uarr","\\uparrow");le("\\uArr","\\Uparrow");le("\\Uarr","\\Uparrow");le("\\N","\\mathbb{N}");le("\\R","\\mathbb{R}");le("\\Z","\\mathbb{Z}");le("\\alef","\\aleph");le("\\alefsym","\\aleph");le("\\Alpha","\\mathrm{A}");le("\\Beta","\\mathrm{B}");le("\\bull","\\bullet");le("\\Chi","\\mathrm{X}");le("\\clubs","\\clubsuit");le("\\cnums","\\mathbb{C}");le("\\Complex","\\mathbb{C}");le("\\Dagger","\\ddagger");le("\\diamonds","\\diamondsuit");le("\\empty","\\emptyset");le("\\Epsilon","\\mathrm{E}");le("\\Eta","\\mathrm{H}");le("\\exist","\\exists");le("\\harr","\\leftrightarrow");le("\\hArr","\\Leftrightarrow");le("\\Harr","\\Leftrightarrow");le("\\hearts","\\heartsuit");le("\\image","\\Im");le("\\infin","\\infty");le("\\Iota","\\mathrm{I}");le("\\isin","\\in");le("\\Kappa","\\mathrm{K}");le("\\larr","\\leftarrow");le("\\lArr","\\Leftarrow");le("\\Larr","\\Leftarrow");le("\\lrarr","\\leftrightarrow");le("\\lrArr","\\Leftrightarrow");le("\\Lrarr","\\Leftrightarrow");le("\\Mu","\\mathrm{M}");le("\\natnums","\\mathbb{N}");le("\\Nu","\\mathrm{N}");le("\\Omicron","\\mathrm{O}");le("\\plusmn","\\pm");le("\\rarr","\\rightarrow");le("\\rArr","\\Rightarrow");le("\\Rarr","\\Rightarrow");le("\\real","\\Re");le("\\reals","\\mathbb{R}");le("\\Reals","\\mathbb{R}");le("\\Rho","\\mathrm{P}");le("\\sdot","\\cdot");le("\\sect","\\S");le("\\spades","\\spadesuit");le("\\sub","\\subset");le("\\sube","\\subseteq");le("\\supe","\\supseteq");le("\\Tau","\\mathrm{T}");le("\\thetasym","\\vartheta");le("\\weierp","\\wp");le("\\Zeta","\\mathrm{Z}");le("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");le("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");le("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");le("\\bra","\\mathinner{\\langle{#1}|}");le("\\ket","\\mathinner{|{#1}\\rangle}");le("\\braket","\\mathinner{\\langle{#1}\\rangle}");le("\\Bra","\\left\\langle#1\\right|");le("\\Ket","\\left|#1\\right\\rangle");A$=o(t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.consumeArg().tokens,s=e.macros.get("|"),l=e.macros.get("\\|");e.macros.beginGroup();var u=o(d=>p=>{t&&(p.macros.set("|",s),i.length&&p.macros.set("\\|",l));var m=d;if(!d&&i.length){var g=p.future();g.text==="|"&&(p.popToken(),m=!0)}return{tokens:m?i:n,numArgs:0}},"midMacro");e.macros.set("|",u(!1)),i.length&&e.macros.set("\\|",u(!0));var h=e.consumeArg().tokens,f=e.expandTokens([...a,...h,...r]);return e.macros.endGroup(),{tokens:f.reverse(),numArgs:0}},"braketHelper");le("\\bra@ket",A$(!1));le("\\bra@set",A$(!0));le("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");le("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");le("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");le("\\angln","{\\angl n}");le("\\blue","\\textcolor{##6495ed}{#1}");le("\\orange","\\textcolor{##ffa500}{#1}");le("\\pink","\\textcolor{##ff00af}{#1}");le("\\red","\\textcolor{##df0030}{#1}");le("\\green","\\textcolor{##28ae7b}{#1}");le("\\gray","\\textcolor{gray}{#1}");le("\\purple","\\textcolor{##9d38bd}{#1}");le("\\blueA","\\textcolor{##ccfaff}{#1}");le("\\blueB","\\textcolor{##80f6ff}{#1}");le("\\blueC","\\textcolor{##63d9ea}{#1}");le("\\blueD","\\textcolor{##11accd}{#1}");le("\\blueE","\\textcolor{##0c7f99}{#1}");le("\\tealA","\\textcolor{##94fff5}{#1}");le("\\tealB","\\textcolor{##26edd5}{#1}");le("\\tealC","\\textcolor{##01d1c1}{#1}");le("\\tealD","\\textcolor{##01a995}{#1}");le("\\tealE","\\textcolor{##208170}{#1}");le("\\greenA","\\textcolor{##b6ffb0}{#1}");le("\\greenB","\\textcolor{##8af281}{#1}");le("\\greenC","\\textcolor{##74cf70}{#1}");le("\\greenD","\\textcolor{##1fab54}{#1}");le("\\greenE","\\textcolor{##0d923f}{#1}");le("\\goldA","\\textcolor{##ffd0a9}{#1}");le("\\goldB","\\textcolor{##ffbb71}{#1}");le("\\goldC","\\textcolor{##ff9c39}{#1}");le("\\goldD","\\textcolor{##e07d10}{#1}");le("\\goldE","\\textcolor{##a75a05}{#1}");le("\\redA","\\textcolor{##fca9a9}{#1}");le("\\redB","\\textcolor{##ff8482}{#1}");le("\\redC","\\textcolor{##f9685d}{#1}");le("\\redD","\\textcolor{##e84d39}{#1}");le("\\redE","\\textcolor{##bc2612}{#1}");le("\\maroonA","\\textcolor{##ffbde0}{#1}");le("\\maroonB","\\textcolor{##ff92c6}{#1}");le("\\maroonC","\\textcolor{##ed5fa6}{#1}");le("\\maroonD","\\textcolor{##ca337c}{#1}");le("\\maroonE","\\textcolor{##9e034e}{#1}");le("\\purpleA","\\textcolor{##ddd7ff}{#1}");le("\\purpleB","\\textcolor{##c6b9fc}{#1}");le("\\purpleC","\\textcolor{##aa87ff}{#1}");le("\\purpleD","\\textcolor{##7854ab}{#1}");le("\\purpleE","\\textcolor{##543b78}{#1}");le("\\mintA","\\textcolor{##f5f9e8}{#1}");le("\\mintB","\\textcolor{##edf2df}{#1}");le("\\mintC","\\textcolor{##e0e5cc}{#1}");le("\\grayA","\\textcolor{##f6f7f7}{#1}");le("\\grayB","\\textcolor{##f0f1f2}{#1}");le("\\grayC","\\textcolor{##e3e5e6}{#1}");le("\\grayD","\\textcolor{##d6d8da}{#1}");le("\\grayE","\\textcolor{##babec2}{#1}");le("\\grayF","\\textcolor{##888d93}{#1}");le("\\grayG","\\textcolor{##626569}{#1}");le("\\grayH","\\textcolor{##3b3e40}{#1}");le("\\grayI","\\textcolor{##21242c}{#1}");le("\\kaBlue","\\textcolor{##314453}{#1}");le("\\kaGreen","\\textcolor{##71B307}{#1}");_$={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},DC=class{static{o(this,"MacroExpander")}constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new LC(f3e,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new m4(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Co("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),a,s=0,l=0;do{if(a=this.popToken(),r.push(a),a.text==="{")++s;else if(a.text==="}"){if(--s,s===-1)throw new ut("Extra }",a)}else if(a.text==="EOF")throw new ut("Unexpected end of input in a macro argument, expected '"+(e&&n?e[l]:"}")+"'",a);if(e&&n)if((s===0||s===1&&e[l]==="{")&&a.text===e[l]){if(++l,l===e.length){r.splice(-l,l);break}}else l=0}while(s!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:a}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new ut("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new ut("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new ut("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var a=i.tokens,s=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var u=a[l];if(u.text==="#"){if(l===0)throw new ut("Incomplete placeholder at end of macro body",u);if(u=a[--l],u.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(u.text))a.splice(l,2,...s[+u.text-1]);else throw new ut("Not a valid argument number",u)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Co(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var s=i.replace(/##/g,"");s.indexOf("#"+(a+1))!==-1;)++a;for(var l=new m4(i,this.settings),u=[],h=l.lex();h.text!=="EOF";)u.push(h),h=l.lex();u.reverse();var f={tokens:u,numArgs:a};return f}return i}isDefined(e){return this.macros.has(e)||oh.hasOwnProperty(e)||En.math.hasOwnProperty(e)||En.text.hasOwnProperty(e)||_$.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:oh.hasOwnProperty(e)&&!oh[e].primitive}},IG=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,s4=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),vC={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},OG={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},g4=class t{static{o(this,"Parser")}constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new DC(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new ut("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Co("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(t.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&oh[i.text]&&oh[i.text].infix)break;var a=this.parseAtom(r);if(a){if(a.type==="internal")continue}else break;n.push(a)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var l=En[this.mode][r].group,u=Ys.range(e),h;if(n4e.hasOwnProperty(l)){var f=l;h={type:"atom",mode:this.mode,family:f,loc:u,text:r}}else h={type:l,mode:this.mode,loc:u,text:r};s=h}else if(r.charCodeAt(0)>=128)this.settings.strict&&(BG(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),s={type:"textord",mode:"text",loc:Ys.range(e),text:r};else return null;if(this.consume(),a)for(var d=0;d{e instanceof Element&&e.tagName==="A"&&e.hasAttribute("target")&&e.setAttribute(t,e.getAttribute("target")??"")}),ah.addHook("afterSanitizeAttributes",e=>{e instanceof Element&&e.tagName==="A"&&e.hasAttribute(t)&&(e.setAttribute("target",e.getAttribute(t)??""),e.removeAttribute(t),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener"))})}var jf,y3e,v3e,O$,M$,Tr,b3e,w3e,T3e,k3e,P$,E3e,xr,S3e,C3e,ou,jC,A3e,_3e,I$,KC,pi,Kf,hh,je,fr=M(()=>{"use strict";sC();jf=//gi,y3e=o(t=>t?P$(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),v3e=(()=>{let t=!1;return()=>{t||(x3e(),t=!0)}})();o(x3e,"setupDompurifyHooks");O$=o(t=>(v3e(),ah.sanitize(t)),"removeScript"),M$=o((t,e)=>{if(e.flowchart?.htmlLabels!==!1){let r=e.securityLevel;r==="antiscript"||r==="strict"?t=O$(t):r!=="loose"&&(t=P$(t),t=t.replace(//g,">"),t=t.replace(/=/g,"="),t=k3e(t))}return t},"sanitizeMore"),Tr=o((t,e)=>t&&(e.dompurifyConfig?t=ah.sanitize(M$(t,e),e.dompurifyConfig).toString():t=ah.sanitize(M$(t,e),{FORBID_TAGS:["style"]}).toString(),t),"sanitizeText"),b3e=o((t,e)=>typeof t=="string"?Tr(t,e):t.flat().map(r=>Tr(r,e)),"sanitizeTextOrArray"),w3e=o(t=>jf.test(t),"hasBreaks"),T3e=o(t=>t.split(jf),"splitBreaks"),k3e=o(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),P$=o(t=>t.replace(jf,"#br#"),"breakToPlaceholder"),E3e=o(t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},"getUrl"),xr=o(t=>!(t===!1||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),S3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.max(...e)},"getMax"),C3e=o(function(...t){let e=t.filter(r=>!isNaN(r));return Math.min(...e)},"getMin"),ou=o(function(t){let e=t.split(/(,)/),r=[];for(let n=0;n0&&n+1Math.max(0,t.split(e).length-1),"countOccurrence"),A3e=o((t,e)=>{let r=jC(t,"~"),n=jC(e,"~");return r===1&&n===1},"shouldCombineSets"),_3e=o(t=>{let e=jC(t,"~"),r=!1;if(e<=1)return t;e%2!==0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;i!==-1&&a!==-1&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),I$=o(()=>window.MathMLElement!==void 0,"isMathMLSupported"),KC=/\$\$(.*)\$\$/g,pi=o(t=>(t.match(KC)?.length??0)>0,"hasKatex"),Kf=o(async(t,e)=>{t=await hh(t,e);let r=document.createElement("div");r.innerHTML=t,r.id="katex-temp",r.style.visibility="hidden",r.style.position="absolute",r.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",r);let i={width:r.clientWidth,height:r.clientHeight};return r.remove(),i},"calculateMathMLDimensions"),hh=o(async(t,e)=>{if(!pi(t))return t;if(!(I$()||e.legacyMathML||e.forceLegacyMathML))return t.replace(KC,"MathML is unsupported in this environment.");let{default:r}=await Promise.resolve().then(()=>(R$(),N$)),n=e.forceLegacyMathML||!I$()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(jf).map(i=>pi(i)?`

`:`
${i}
`).join("").replace(KC,(i,a)=>r.renderToString(a,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),je={getRows:y3e,sanitizeText:Tr,sanitizeTextOrArray:b3e,hasBreaks:w3e,splitBreaks:T3e,lineBreakRegex:jf,removeScript:O$,getUrl:E3e,evaluate:xr,getMax:S3e,getMin:C3e}});var L3e,D3e,Zr,_o,ni=M(()=>{"use strict";ht();L3e=o(function(t,e){for(let r of e)t.attr(r[0],r[1])},"d3Attrs"),D3e=o(function(t,e,r){let n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Zr=o(function(t,e,r,n){let i=D3e(e,r,n);L3e(t,i)},"configureSvgSize"),_o=o(function(t,e,r,n){let i=e.node().getBBox(),a=i.width,s=i.height;Y.info(`SVG bounds: ${a}x${s}`,i);let l=0,u=0;Y.info(`Graph bounds: ${l}x${u}`,t),l=a+r*2,u=s+r*2,Y.info(`Calculated bounds: ${l}x${u}`),Zr(e,u,l,n);let h=`${i.x-r} ${i.y-r} ${i.width+2*r} ${i.height+2*r}`;e.attr("viewBox",h)},"setupGraphViewbox")});var k4,N3e,B$,F$,QC=M(()=>{"use strict";ht();k4={},N3e=o((t,e,r)=>{let n="";return t in k4&&k4[t]?n=k4[t](r):Y.warn(`No theme found for ${t}`),` & { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + fill: ${r.textColor} + } + + /* Classes common for multiple diagrams */ + + & .error-icon { + fill: ${r.errorBkgColor}; + } + & .error-text { + fill: ${r.errorTextColor}; + stroke: ${r.errorTextColor}; + } + + & .edge-thickness-normal { + stroke-width: 1px; + } + & .edge-thickness-thick { + stroke-width: 3.5px + } + & .edge-pattern-solid { + stroke-dasharray: 0; + } + & .edge-thickness-invisible { + stroke-width: 0; + fill: none; + } + & .edge-pattern-dashed{ + stroke-dasharray: 3; + } + .edge-pattern-dotted { + stroke-dasharray: 2; + } + + & .marker { + fill: ${r.lineColor}; + stroke: ${r.lineColor}; + } + & .marker.cross { + stroke: ${r.lineColor}; + } + + & svg { + font-family: ${r.fontFamily}; + font-size: ${r.fontSize}; + } + & p { + margin: 0 + } + + ${n} + + ${e} +`},"getStyles"),B$=o((t,e)=>{e!==void 0&&(k4[t]=e)},"addStylesForDiagram"),F$=N3e});var iy={};vr(iy,{clear:()=>_r,getAccDescription:()=>Fr,getAccTitle:()=>Pr,getDiagramTitle:()=>Jr,setAccDescription:()=>Br,setAccTitle:()=>Rr,setDiagramTitle:()=>ln});var ZC,JC,e7,t7,_r,Rr,Pr,Br,Fr,ln,Jr,ki=M(()=>{"use strict";fr();Ua();ZC="",JC="",e7="",t7=o(t=>Tr(t,Sr()),"sanitizeText"),_r=o(()=>{ZC="",e7="",JC=""},"clear"),Rr=o(t=>{ZC=t7(t).replace(/^\s+/g,"")},"setAccTitle"),Pr=o(()=>ZC,"getAccTitle"),Br=o(t=>{e7=t7(t).replace(/\n\s+/g,` +`)},"setAccDescription"),Fr=o(()=>e7,"getAccDescription"),ln=o(t=>{JC=t7(t)},"setDiagramTitle"),Jr=o(()=>JC,"getDiagramTitle")});var z$,R3e,de,n7,S4,i7,a7,M3e,E4,Qf,ay,r7,Vt=M(()=>{"use strict";$f();ht();Ua();fr();ni();QC();ki();z$=Y,R3e=M1,de=Sr,n7=Yb,S4=ih,i7=o(t=>Tr(t,de()),"sanitizeText"),a7=_o,M3e=o(()=>iy,"getCommonDb"),E4={},Qf=o((t,e,r)=>{E4[t]&&z$.warn(`Diagram with id ${t} already registered. Overwriting.`),E4[t]=e,r&&OS(t,r),B$(t,e.styles),e.injectUtils?.(z$,R3e,de,i7,a7,M3e(),()=>{})},"registerDiagram"),ay=o(t=>{if(t in E4)return E4[t];throw new r7(t)},"getDiagram"),r7=class extends Error{static{o(this,"DiagramNotFoundError")}constructor(e){super(`Diagram ${e} not found.`)}}});var pl,fh,Xa,dl,nc,sy,s7,o7,C4,A4,G$,I3e,O3e,P3e,B3e,F3e,z3e,G3e,$3e,V3e,U3e,H3e,W3e,Y3e,q3e,X3e,j3e,K3e,$$,Q3e,Z3e,V$,J3e,e5e,t5e,r5e,dh,n5e,i5e,a5e,s5e,o5e,oy,l7=M(()=>{"use strict";Vt();fr();ki();pl=[],fh=[""],Xa="global",dl="",nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],sy=[],s7="",o7=!1,C4=4,A4=2,I3e=o(function(){return G$},"getC4Type"),O3e=o(function(t){G$=Tr(t,de())},"setC4Type"),P3e=o(function(t,e,r,n,i,a,s,l,u){if(t==null||e===void 0||e===null||r===void 0||r===null||n===void 0||n===null)return;let h={},f=sy.find(d=>d.from===e&&d.to===r);if(f?h=f:sy.push(h),h.type=t,h.from=e,h.to=r,h.label={text:n},i==null)h.techn={text:""};else if(typeof i=="object"){let[d,p]=Object.entries(i)[0];h[d]={text:p}}else h.techn={text:i};if(a==null)h.descr={text:""};else if(typeof a=="object"){let[d,p]=Object.entries(a)[0];h[d]={text:p}}else h.descr={text:a};if(typeof s=="object"){let[d,p]=Object.entries(s)[0];h[d]=p}else h.sprite=s;if(typeof l=="object"){let[d,p]=Object.entries(l)[0];h[d]=p}else h.tags=l;if(typeof u=="object"){let[d,p]=Object.entries(u)[0];h[d]=p}else h.link=u;h.wrap=dh()},"addRel"),B3e=o(function(t,e,r,n,i,a,s){if(e===null||r===null)return;let l={},u=pl.find(h=>h.alias===e);if(u&&e===u.alias?l=u:(l.alias=e,pl.push(l)),r==null?l.label={text:""}:l.label={text:r},n==null)l.descr={text:""};else if(typeof n=="object"){let[h,f]=Object.entries(n)[0];l[h]={text:f}}else l.descr={text:n};if(typeof i=="object"){let[h,f]=Object.entries(i)[0];l[h]=f}else l.sprite=i;if(typeof a=="object"){let[h,f]=Object.entries(a)[0];l[h]=f}else l.tags=a;if(typeof s=="object"){let[h,f]=Object.entries(s)[0];l[h]=f}else l.link=s;l.typeC4Shape={text:t},l.parentBoundary=Xa,l.wrap=dh()},"addPersonOrSystem"),F3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=pl.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,pl.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=dh(),u.typeC4Shape={text:t},u.parentBoundary=Xa},"addContainer"),z3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=pl.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,pl.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.techn={text:""};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.techn={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof a=="object"){let[f,d]=Object.entries(a)[0];u[f]=d}else u.sprite=a;if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.wrap=dh(),u.typeC4Shape={text:t},u.parentBoundary=Xa},"addComponent"),G3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"system"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Xa,a.wrap=dh(),dl=Xa,Xa=t,fh.push(dl)},"addPersonOrSystemBoundary"),$3e=o(function(t,e,r,n,i){if(t===null||e===null)return;let a={},s=nc.find(l=>l.alias===t);if(s&&t===s.alias?a=s:(a.alias=t,nc.push(a)),e==null?a.label={text:""}:a.label={text:e},r==null)a.type={text:"container"};else if(typeof r=="object"){let[l,u]=Object.entries(r)[0];a[l]={text:u}}else a.type={text:r};if(typeof n=="object"){let[l,u]=Object.entries(n)[0];a[l]=u}else a.tags=n;if(typeof i=="object"){let[l,u]=Object.entries(i)[0];a[l]=u}else a.link=i;a.parentBoundary=Xa,a.wrap=dh(),dl=Xa,Xa=t,fh.push(dl)},"addContainerBoundary"),V3e=o(function(t,e,r,n,i,a,s,l){if(e===null||r===null)return;let u={},h=nc.find(f=>f.alias===e);if(h&&e===h.alias?u=h:(u.alias=e,nc.push(u)),r==null?u.label={text:""}:u.label={text:r},n==null)u.type={text:"node"};else if(typeof n=="object"){let[f,d]=Object.entries(n)[0];u[f]={text:d}}else u.type={text:n};if(i==null)u.descr={text:""};else if(typeof i=="object"){let[f,d]=Object.entries(i)[0];u[f]={text:d}}else u.descr={text:i};if(typeof s=="object"){let[f,d]=Object.entries(s)[0];u[f]=d}else u.tags=s;if(typeof l=="object"){let[f,d]=Object.entries(l)[0];u[f]=d}else u.link=l;u.nodeType=t,u.parentBoundary=Xa,u.wrap=dh(),dl=Xa,Xa=e,fh.push(dl)},"addDeploymentNode"),U3e=o(function(){Xa=dl,fh.pop(),dl=fh.pop(),fh.push(dl)},"popBoundaryParseStack"),H3e=o(function(t,e,r,n,i,a,s,l,u,h,f){let d=pl.find(p=>p.alias===e);if(!(d===void 0&&(d=nc.find(p=>p.alias===e),d===void 0))){if(r!=null)if(typeof r=="object"){let[p,m]=Object.entries(r)[0];d[p]=m}else d.bgColor=r;if(n!=null)if(typeof n=="object"){let[p,m]=Object.entries(n)[0];d[p]=m}else d.fontColor=n;if(i!=null)if(typeof i=="object"){let[p,m]=Object.entries(i)[0];d[p]=m}else d.borderColor=i;if(a!=null)if(typeof a=="object"){let[p,m]=Object.entries(a)[0];d[p]=m}else d.shadowing=a;if(s!=null)if(typeof s=="object"){let[p,m]=Object.entries(s)[0];d[p]=m}else d.shape=s;if(l!=null)if(typeof l=="object"){let[p,m]=Object.entries(l)[0];d[p]=m}else d.sprite=l;if(u!=null)if(typeof u=="object"){let[p,m]=Object.entries(u)[0];d[p]=m}else d.techn=u;if(h!=null)if(typeof h=="object"){let[p,m]=Object.entries(h)[0];d[p]=m}else d.legendText=h;if(f!=null)if(typeof f=="object"){let[p,m]=Object.entries(f)[0];d[p]=m}else d.legendSprite=f}},"updateElStyle"),W3e=o(function(t,e,r,n,i,a,s){let l=sy.find(u=>u.from===e&&u.to===r);if(l!==void 0){if(n!=null)if(typeof n=="object"){let[u,h]=Object.entries(n)[0];l[u]=h}else l.textColor=n;if(i!=null)if(typeof i=="object"){let[u,h]=Object.entries(i)[0];l[u]=h}else l.lineColor=i;if(a!=null)if(typeof a=="object"){let[u,h]=Object.entries(a)[0];l[u]=parseInt(h)}else l.offsetX=parseInt(a);if(s!=null)if(typeof s=="object"){let[u,h]=Object.entries(s)[0];l[u]=parseInt(h)}else l.offsetY=parseInt(s)}},"updateRelStyle"),Y3e=o(function(t,e,r){let n=C4,i=A4;if(typeof e=="object"){let a=Object.values(e)[0];n=parseInt(a)}else n=parseInt(e);if(typeof r=="object"){let a=Object.values(r)[0];i=parseInt(a)}else i=parseInt(r);n>=1&&(C4=n),i>=1&&(A4=i)},"updateLayoutConfig"),q3e=o(function(){return C4},"getC4ShapeInRow"),X3e=o(function(){return A4},"getC4BoundaryInRow"),j3e=o(function(){return Xa},"getCurrentBoundaryParse"),K3e=o(function(){return dl},"getParentBoundaryParse"),$$=o(function(t){return t==null?pl:pl.filter(e=>e.parentBoundary===t)},"getC4ShapeArray"),Q3e=o(function(t){return pl.find(e=>e.alias===t)},"getC4Shape"),Z3e=o(function(t){return Object.keys($$(t))},"getC4ShapeKeys"),V$=o(function(t){return t==null?nc:nc.filter(e=>e.parentBoundary===t)},"getBoundaries"),J3e=V$,e5e=o(function(){return sy},"getRels"),t5e=o(function(){return s7},"getTitle"),r5e=o(function(t){o7=t},"setWrap"),dh=o(function(){return o7},"autoWrap"),n5e=o(function(){pl=[],nc=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],dl="",Xa="global",fh=[""],sy=[],fh=[""],s7="",o7=!1,C4=4,A4=2},"clear"),i5e={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},a5e={FILLED:0,OPEN:1},s5e={LEFTOF:0,RIGHTOF:1,OVER:2},o5e=o(function(t){s7=Tr(t,de())},"setTitle"),oy={addPersonOrSystem:B3e,addPersonOrSystemBoundary:G3e,addContainer:F3e,addContainerBoundary:$3e,addComponent:z3e,addDeploymentNode:V3e,popBoundaryParseStack:U3e,addRel:P3e,updateElStyle:H3e,updateRelStyle:W3e,updateLayoutConfig:Y3e,autoWrap:dh,setWrap:r5e,getC4ShapeArray:$$,getC4Shape:Q3e,getC4ShapeKeys:Z3e,getBoundaries:V$,getBoundarys:J3e,getCurrentBoundaryParse:j3e,getParentBoundaryParse:K3e,getRels:e5e,getTitle:t5e,getC4Type:I3e,getC4ShapeInRow:q3e,getC4BoundaryInRow:X3e,setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,getConfig:o(()=>de().c4,"getConfig"),clear:n5e,LINETYPE:i5e,ARROWTYPE:a5e,PLACEMENT:s5e,setTitle:o5e,setC4Type:O3e}});function Zf(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}var c7=M(()=>{"use strict";o(Zf,"ascending")});function u7(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}var U$=M(()=>{"use strict";o(u7,"descending")});function Jf(t){let e,r,n;t.length!==2?(e=Zf,r=o((l,u)=>Zf(t(l),u),"compare2"),n=o((l,u)=>t(l)-u,"delta")):(e=t===Zf||t===u7?t:l5e,r=t,n=t);function i(l,u,h=0,f=l.length){if(h>>1;r(l[d],u)<0?h=d+1:f=d}while(h>>1;r(l[d],u)<=0?h=d+1:f=d}while(hh&&n(l[d-1],u)>-n(l[d],u)?d-1:d}return o(s,"center"),{left:i,center:s,right:a}}function l5e(){return 0}var h7=M(()=>{"use strict";c7();U$();o(Jf,"bisector");o(l5e,"zero")});function f7(t){return t===null?NaN:+t}var H$=M(()=>{"use strict";o(f7,"number")});var W$,Y$,c5e,u5e,d7,q$=M(()=>{"use strict";c7();h7();H$();W$=Jf(Zf),Y$=W$.right,c5e=W$.left,u5e=Jf(f7).center,d7=Y$});function X$({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):r}function h5e({_intern:t,_key:e},r){let n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function f5e({_intern:t,_key:e},r){let n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function d5e(t){return t!==null&&typeof t=="object"?t.valueOf():t}var mp,j$=M(()=>{"use strict";mp=class extends Map{static{o(this,"InternMap")}constructor(e,r=d5e){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(let[n,i]of e)this.set(n,i)}get(e){return super.get(X$(this,e))}has(e){return super.has(X$(this,e))}set(e,r){return super.set(h5e(this,e),r)}delete(e){return super.delete(f5e(this,e))}};o(X$,"intern_get");o(h5e,"intern_set");o(f5e,"intern_delete");o(d5e,"keyof")});function _4(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=a>=p5e?10:a>=m5e?5:a>=g5e?2:1,l,u,h;return i<0?(h=Math.pow(10,-i)/s,l=Math.round(t*h),u=Math.round(e*h),l/he&&--u,h=-h):(h=Math.pow(10,i)*s,l=Math.round(t/h),u=Math.round(e/h),l*he&&--u),u0))return[];if(t===e)return[t];let n=e=i))return[];let l=a-i+1,u=new Array(l);if(n)if(s<0)for(let h=0;h{"use strict";p5e=Math.sqrt(50),m5e=Math.sqrt(10),g5e=Math.sqrt(2);o(_4,"tickSpec");o(L4,"ticks");o(ly,"tickIncrement");o(gp,"tickStep")});function D4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var Q$=M(()=>{"use strict";o(D4,"max")});function N4(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var Z$=M(()=>{"use strict";o(N4,"min")});function R4(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((e-t)/r))|0,a=new Array(i);++n{"use strict";o(R4,"range")});var ph=M(()=>{"use strict";q$();h7();Q$();Z$();J$();K$();j$()});function p7(t){return t}var eV=M(()=>{"use strict";o(p7,"default")});function y5e(t){return"translate("+t+",0)"}function v5e(t){return"translate(0,"+t+")"}function x5e(t){return e=>+t(e)}function b5e(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function w5e(){return!this.__axis}function rV(t,e){var r=[],n=null,i=null,a=6,s=6,l=3,u=typeof window<"u"&&window.devicePixelRatio>1?0:.5,h=t===I4||t===M4?-1:1,f=t===M4||t===m7?"x":"y",d=t===I4||t===g7?y5e:v5e;function p(m){var g=n??(e.ticks?e.ticks.apply(e,r):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,r):p7),v=Math.max(a,0)+l,x=e.range(),b=+x[0]+u,w=+x[x.length-1]+u,_=(e.bandwidth?b5e:x5e)(e.copy(),u),T=m.selection?m.selection():m,E=T.selectAll(".domain").data([null]),L=T.selectAll(".tick").data(g,e).order(),C=L.exit(),A=L.enter().append("g").attr("class","tick"),I=L.select("line"),D=L.select("text");E=E.merge(E.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),L=L.merge(A),I=I.merge(A.append("line").attr("stroke","currentColor").attr(f+"2",h*a)),D=D.merge(A.append("text").attr("fill","currentColor").attr(f,h*v).attr("dy",t===I4?"0em":t===g7?"0.71em":"0.32em")),m!==T&&(E=E.transition(m),L=L.transition(m),I=I.transition(m),D=D.transition(m),C=C.transition(m).attr("opacity",tV).attr("transform",function(k){return isFinite(k=_(k))?d(k+u):this.getAttribute("transform")}),A.attr("opacity",tV).attr("transform",function(k){var R=this.parentNode.__axis;return d((R&&isFinite(R=R(k))?R:_(k))+u)})),C.remove(),E.attr("d",t===M4||t===m7?s?"M"+h*s+","+b+"H"+u+"V"+w+"H"+h*s:"M"+u+","+b+"V"+w:s?"M"+b+","+h*s+"V"+u+"H"+w+"V"+h*s:"M"+b+","+u+"H"+w),L.attr("opacity",1).attr("transform",function(k){return d(_(k)+u)}),I.attr(f+"2",h*a),D.attr(f,h*v).text(y),T.filter(w5e).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===m7?"start":t===M4?"end":"middle"),T.each(function(){this.__axis=_})}return o(p,"axis"),p.scale=function(m){return arguments.length?(e=m,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(m){return arguments.length?(r=m==null?[]:Array.from(m),p):r.slice()},p.tickValues=function(m){return arguments.length?(n=m==null?null:Array.from(m),p):n&&n.slice()},p.tickFormat=function(m){return arguments.length?(i=m,p):i},p.tickSize=function(m){return arguments.length?(a=s=+m,p):a},p.tickSizeInner=function(m){return arguments.length?(a=+m,p):a},p.tickSizeOuter=function(m){return arguments.length?(s=+m,p):s},p.tickPadding=function(m){return arguments.length?(l=+m,p):l},p.offset=function(m){return arguments.length?(u=+m,p):u},p}function y7(t){return rV(I4,t)}function v7(t){return rV(g7,t)}var I4,m7,g7,M4,tV,nV=M(()=>{"use strict";eV();I4=1,m7=2,g7=3,M4=4,tV=1e-6;o(y5e,"translateX");o(v5e,"translateY");o(x5e,"number");o(b5e,"center");o(w5e,"entering");o(rV,"axis");o(y7,"axisTop");o(v7,"axisBottom")});var iV=M(()=>{"use strict";nV()});function sV(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}function E5e(t,e){for(var r=0,n=t.length,i;r{"use strict";T5e={value:o(()=>{},"value")};o(sV,"dispatch");o(O4,"Dispatch");o(k5e,"parseTypenames");O4.prototype=sV.prototype={constructor:O4,on:o(function(t,e){var r=this._,n=k5e(t+"",r),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var r=new Array(i),n=0,i,a;n{"use strict";oV()});var P4,w7,T7=M(()=>{"use strict";P4="http://www.w3.org/1999/xhtml",w7={svg:"http://www.w3.org/2000/svg",xhtml:P4,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function ic(t){var e=t+="",r=e.indexOf(":");return r>=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),w7.hasOwnProperty(e)?{space:w7[e],local:t}:t}var B4=M(()=>{"use strict";T7();o(ic,"default")});function S5e(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===P4&&e.documentElement.namespaceURI===P4?e.createElement(t):e.createElementNS(r,t)}}function C5e(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function cy(t){var e=ic(t);return(e.local?C5e:S5e)(e)}var k7=M(()=>{"use strict";B4();T7();o(S5e,"creatorInherit");o(C5e,"creatorFixed");o(cy,"default")});function A5e(){}function mh(t){return t==null?A5e:function(){return this.querySelector(t)}}var F4=M(()=>{"use strict";o(A5e,"none");o(mh,"default")});function E7(t){typeof t!="function"&&(t=mh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";ml();F4();o(E7,"default")});function S7(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}var cV=M(()=>{"use strict";o(S7,"array")});function _5e(){return[]}function yp(t){return t==null?_5e:function(){return this.querySelectorAll(t)}}var C7=M(()=>{"use strict";o(_5e,"empty");o(yp,"default")});function L5e(t){return function(){return S7(t.apply(this,arguments))}}function A7(t){typeof t=="function"?t=L5e(t):t=yp(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{"use strict";ml();cV();C7();o(L5e,"arrayAll");o(A7,"default")});function vp(t){return function(){return this.matches(t)}}function z4(t){return function(e){return e.matches(t)}}var uy=M(()=>{"use strict";o(vp,"default");o(z4,"childMatcher")});function N5e(t){return function(){return D5e.call(this.children,t)}}function R5e(){return this.firstElementChild}function _7(t){return this.select(t==null?R5e:N5e(typeof t=="function"?t:z4(t)))}var D5e,hV=M(()=>{"use strict";uy();D5e=Array.prototype.find;o(N5e,"childFind");o(R5e,"childFirst");o(_7,"default")});function I5e(){return Array.from(this.children)}function O5e(t){return function(){return M5e.call(this.children,t)}}function L7(t){return this.selectAll(t==null?I5e:O5e(typeof t=="function"?t:z4(t)))}var M5e,fV=M(()=>{"use strict";uy();M5e=Array.prototype.filter;o(I5e,"children");o(O5e,"childrenFilter");o(L7,"default")});function D7(t){typeof t!="function"&&(t=vp(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";ml();uy();o(D7,"default")});function hy(t){return new Array(t.length)}var N7=M(()=>{"use strict";o(hy,"default")});function R7(){return new ii(this._enter||this._groups.map(hy),this._parents)}function fy(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var M7=M(()=>{"use strict";N7();ml();o(R7,"default");o(fy,"EnterNode");fy.prototype={constructor:fy,appendChild:o(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:o(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:o(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:o(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function I7(t){return function(){return t}}var pV=M(()=>{"use strict";o(I7,"default")});function P5e(t,e,r,n,i,a){for(var s=0,l,u=e.length,h=a.length;s=w&&(w=b+1);!(T=v[w])&&++w{"use strict";ml();M7();pV();o(P5e,"bindIndex");o(B5e,"bindKey");o(F5e,"datum");o(O7,"default");o(z5e,"arraylike")});function P7(){return new ii(this._exit||this._groups.map(hy),this._parents)}var gV=M(()=>{"use strict";N7();ml();o(P7,"default")});function B7(t,e,r){var n=this.enter(),i=this,a=this.exit();return typeof t=="function"?(n=t(n),n&&(n=n.selection())):n=n.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),r==null?a.remove():r(a),n&&i?n.merge(i).order():i}var yV=M(()=>{"use strict";o(B7,"default")});function F7(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,a=n.length,s=Math.min(i,a),l=new Array(i),u=0;u{"use strict";ml();o(F7,"default")});function z7(){for(var t=this._groups,e=-1,r=t.length;++e=0;)(s=n[i])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}var xV=M(()=>{"use strict";o(z7,"default")});function G7(t){t||(t=G5e);function e(d,p){return d&&p?t(d.__data__,p.__data__):!d-!p}o(e,"compareNode");for(var r=this._groups,n=r.length,i=new Array(n),a=0;ae?1:t>=e?0:NaN}var bV=M(()=>{"use strict";ml();o(G7,"default");o(G5e,"ascending")});function $7(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var wV=M(()=>{"use strict";o($7,"default")});function V7(){return Array.from(this)}var TV=M(()=>{"use strict";o(V7,"default")});function U7(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(U7,"default")});function H7(){let t=0;for(let e of this)++t;return t}var EV=M(()=>{"use strict";o(H7,"default")});function W7(){return!this.node()}var SV=M(()=>{"use strict";o(W7,"default")});function Y7(t){for(var e=this._groups,r=0,n=e.length;r{"use strict";o(Y7,"default")});function $5e(t){return function(){this.removeAttribute(t)}}function V5e(t){return function(){this.removeAttributeNS(t.space,t.local)}}function U5e(t,e){return function(){this.setAttribute(t,e)}}function H5e(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function W5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function Y5e(t,e){return function(){var r=e.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function q7(t,e){var r=ic(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((e==null?r.local?V5e:$5e:typeof e=="function"?r.local?Y5e:W5e:r.local?H5e:U5e)(r,e))}var AV=M(()=>{"use strict";B4();o($5e,"attrRemove");o(V5e,"attrRemoveNS");o(U5e,"attrConstant");o(H5e,"attrConstantNS");o(W5e,"attrFunction");o(Y5e,"attrFunctionNS");o(q7,"default")});function dy(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var X7=M(()=>{"use strict";o(dy,"default")});function q5e(t){return function(){this.style.removeProperty(t)}}function X5e(t,e,r){return function(){this.style.setProperty(t,e,r)}}function j5e(t,e,r){return function(){var n=e.apply(this,arguments);n==null?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function j7(t,e,r){return arguments.length>1?this.each((e==null?q5e:typeof e=="function"?j5e:X5e)(t,e,r??"")):gh(this.node(),t)}function gh(t,e){return t.style.getPropertyValue(e)||dy(t).getComputedStyle(t,null).getPropertyValue(e)}var K7=M(()=>{"use strict";X7();o(q5e,"styleRemove");o(X5e,"styleConstant");o(j5e,"styleFunction");o(j7,"default");o(gh,"styleValue")});function K5e(t){return function(){delete this[t]}}function Q5e(t,e){return function(){this[t]=e}}function Z5e(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function Q7(t,e){return arguments.length>1?this.each((e==null?K5e:typeof e=="function"?Z5e:Q5e)(t,e)):this.node()[t]}var _V=M(()=>{"use strict";o(K5e,"propertyRemove");o(Q5e,"propertyConstant");o(Z5e,"propertyFunction");o(Q7,"default")});function LV(t){return t.trim().split(/^|\s+/)}function Z7(t){return t.classList||new DV(t)}function DV(t){this._node=t,this._names=LV(t.getAttribute("class")||"")}function NV(t,e){for(var r=Z7(t),n=-1,i=e.length;++n{"use strict";o(LV,"classArray");o(Z7,"classList");o(DV,"ClassList");DV.prototype={add:o(function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:o(function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:o(function(t){return this._names.indexOf(t)>=0},"contains")};o(NV,"classedAdd");o(RV,"classedRemove");o(J5e,"classedTrue");o(ewe,"classedFalse");o(twe,"classedFunction");o(J7,"default")});function rwe(){this.textContent=""}function nwe(t){return function(){this.textContent=t}}function iwe(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function eA(t){return arguments.length?this.each(t==null?rwe:(typeof t=="function"?iwe:nwe)(t)):this.node().textContent}var IV=M(()=>{"use strict";o(rwe,"textRemove");o(nwe,"textConstant");o(iwe,"textFunction");o(eA,"default")});function awe(){this.innerHTML=""}function swe(t){return function(){this.innerHTML=t}}function owe(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function tA(t){return arguments.length?this.each(t==null?awe:(typeof t=="function"?owe:swe)(t)):this.node().innerHTML}var OV=M(()=>{"use strict";o(awe,"htmlRemove");o(swe,"htmlConstant");o(owe,"htmlFunction");o(tA,"default")});function lwe(){this.nextSibling&&this.parentNode.appendChild(this)}function rA(){return this.each(lwe)}var PV=M(()=>{"use strict";o(lwe,"raise");o(rA,"default")});function cwe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nA(){return this.each(cwe)}var BV=M(()=>{"use strict";o(cwe,"lower");o(nA,"default")});function iA(t){var e=typeof t=="function"?t:cy(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var FV=M(()=>{"use strict";k7();o(iA,"default")});function uwe(){return null}function aA(t,e){var r=typeof t=="function"?t:cy(t),n=e==null?uwe:typeof e=="function"?e:mh(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var zV=M(()=>{"use strict";k7();F4();o(uwe,"constantNull");o(aA,"default")});function hwe(){var t=this.parentNode;t&&t.removeChild(this)}function sA(){return this.each(hwe)}var GV=M(()=>{"use strict";o(hwe,"remove");o(sA,"default")});function fwe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function dwe(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function oA(t){return this.select(t?dwe:fwe)}var $V=M(()=>{"use strict";o(fwe,"selection_cloneShallow");o(dwe,"selection_cloneDeep");o(oA,"default")});function lA(t){return arguments.length?this.property("__data__",t):this.node().__data__}var VV=M(()=>{"use strict";o(lA,"default")});function pwe(t){return function(e){t.call(this,e,this.__data__)}}function mwe(t){return t.trim().split(/^|\s+/).map(function(e){var r="",n=e.indexOf(".");return n>=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function gwe(t){return function(){var e=this.__on;if(e){for(var r=0,n=-1,i=e.length,a;r{"use strict";o(pwe,"contextListener");o(mwe,"parseTypenames");o(gwe,"onRemove");o(ywe,"onAdd");o(cA,"default")});function HV(t,e,r){var n=dy(t),i=n.CustomEvent;typeof i=="function"?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function vwe(t,e){return function(){return HV(this,t,e)}}function xwe(t,e){return function(){return HV(this,t,e.apply(this,arguments))}}function uA(t,e){return this.each((typeof e=="function"?xwe:vwe)(t,e))}var WV=M(()=>{"use strict";X7();o(HV,"dispatchEvent");o(vwe,"dispatchConstant");o(xwe,"dispatchFunction");o(uA,"default")});function*hA(){for(var t=this._groups,e=0,r=t.length;e{"use strict";o(hA,"default")});function ii(t,e){this._groups=t,this._parents=e}function qV(){return new ii([[document.documentElement]],fA)}function bwe(){return this}var fA,lu,ml=M(()=>{"use strict";lV();uV();hV();fV();dV();mV();M7();gV();yV();vV();xV();bV();wV();TV();kV();EV();SV();CV();AV();K7();_V();MV();IV();OV();PV();BV();FV();zV();GV();$V();VV();UV();WV();YV();fA=[null];o(ii,"Selection");o(qV,"selection");o(bwe,"selection_selection");ii.prototype=qV.prototype={constructor:ii,select:E7,selectAll:A7,selectChild:_7,selectChildren:L7,filter:D7,data:O7,enter:R7,exit:P7,join:B7,merge:F7,selection:bwe,order:z7,sort:G7,call:$7,nodes:V7,node:U7,size:H7,empty:W7,each:Y7,attr:q7,style:j7,property:Q7,classed:J7,text:eA,html:tA,raise:rA,lower:nA,append:iA,insert:aA,remove:sA,clone:oA,datum:lA,on:cA,dispatch:uA,[Symbol.iterator]:hA};lu=qV});function ze(t){return typeof t=="string"?new ii([[document.querySelector(t)]],[document.documentElement]):new ii([[t]],fA)}var XV=M(()=>{"use strict";ml();o(ze,"default")});var gl=M(()=>{"use strict";uy();B4();XV();ml();F4();C7();K7()});var jV=M(()=>{"use strict"});function yh(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function xp(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}var dA=M(()=>{"use strict";o(yh,"default");o(xp,"extend")});function vh(){}function QV(){return this.rgb().formatHex()}function _we(){return this.rgb().formatHex8()}function Lwe(){return iU(this).formatHsl()}function ZV(){return this.rgb().formatRgb()}function vl(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=wwe.exec(t))?(r=e[1].length,e=parseInt(e[1],16),r===6?JV(e):r===3?new sa(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?G4(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?G4(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Twe.exec(t))?new sa(e[1],e[2],e[3],1):(e=kwe.exec(t))?new sa(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Ewe.exec(t))?G4(e[1],e[2],e[3],e[4]):(e=Swe.exec(t))?G4(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Cwe.exec(t))?rU(e[1],e[2]/100,e[3]/100,1):(e=Awe.exec(t))?rU(e[1],e[2]/100,e[3]/100,e[4]):KV.hasOwnProperty(t)?JV(KV[t]):t==="transparent"?new sa(NaN,NaN,NaN,0):null}function JV(t){return new sa(t>>16&255,t>>8&255,t&255,1)}function G4(t,e,r,n){return n<=0&&(t=e=r=NaN),new sa(t,e,r,n)}function mA(t){return t instanceof vh||(t=vl(t)),t?(t=t.rgb(),new sa(t.r,t.g,t.b,t.opacity)):new sa}function wp(t,e,r,n){return arguments.length===1?mA(t):new sa(t,e,r,n??1)}function sa(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function eU(){return`#${ed(this.r)}${ed(this.g)}${ed(this.b)}`}function Dwe(){return`#${ed(this.r)}${ed(this.g)}${ed(this.b)}${ed((isNaN(this.opacity)?1:this.opacity)*255)}`}function tU(){let t=U4(this.opacity);return`${t===1?"rgb(":"rgba("}${td(this.r)}, ${td(this.g)}, ${td(this.b)}${t===1?")":`, ${t})`}`}function U4(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function td(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ed(t){return t=td(t),(t<16?"0":"")+t.toString(16)}function rU(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new yl(t,e,r,n)}function iU(t){if(t instanceof yl)return new yl(t.h,t.s,t.l,t.opacity);if(t instanceof vh||(t=vl(t)),!t)return new yl;if(t instanceof yl)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),a=Math.max(e,r,n),s=NaN,l=a-i,u=(a+i)/2;return l?(e===a?s=(r-n)/l+(r0&&u<1?0:s,new yl(s,l,u,t.opacity)}function aU(t,e,r,n){return arguments.length===1?iU(t):new yl(t,e,r,n??1)}function yl(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function nU(t){return t=(t||0)%360,t<0?t+360:t}function $4(t){return Math.max(0,Math.min(1,t||0))}function pA(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}var py,V4,bp,my,ac,wwe,Twe,kwe,Ewe,Swe,Cwe,Awe,KV,gA=M(()=>{"use strict";dA();o(vh,"Color");py=.7,V4=1/py,bp="\\s*([+-]?\\d+)\\s*",my="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ac="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",wwe=/^#([0-9a-f]{3,8})$/,Twe=new RegExp(`^rgb\\(${bp},${bp},${bp}\\)$`),kwe=new RegExp(`^rgb\\(${ac},${ac},${ac}\\)$`),Ewe=new RegExp(`^rgba\\(${bp},${bp},${bp},${my}\\)$`),Swe=new RegExp(`^rgba\\(${ac},${ac},${ac},${my}\\)$`),Cwe=new RegExp(`^hsl\\(${my},${ac},${ac}\\)$`),Awe=new RegExp(`^hsla\\(${my},${ac},${ac},${my}\\)$`),KV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};yh(vh,vl,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:QV,formatHex:QV,formatHex8:_we,formatHsl:Lwe,formatRgb:ZV,toString:ZV});o(QV,"color_formatHex");o(_we,"color_formatHex8");o(Lwe,"color_formatHsl");o(ZV,"color_formatRgb");o(vl,"color");o(JV,"rgbn");o(G4,"rgba");o(mA,"rgbConvert");o(wp,"rgb");o(sa,"Rgb");yh(sa,wp,xp(vh,{brighter(t){return t=t==null?V4:Math.pow(V4,t),new sa(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?py:Math.pow(py,t),new sa(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new sa(td(this.r),td(this.g),td(this.b),U4(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:eU,formatHex:eU,formatHex8:Dwe,formatRgb:tU,toString:tU}));o(eU,"rgb_formatHex");o(Dwe,"rgb_formatHex8");o(tU,"rgb_formatRgb");o(U4,"clampa");o(td,"clampi");o(ed,"hex");o(rU,"hsla");o(iU,"hslConvert");o(aU,"hsl");o(yl,"Hsl");yh(yl,aU,xp(vh,{brighter(t){return t=t==null?V4:Math.pow(V4,t),new yl(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?py:Math.pow(py,t),new yl(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new sa(pA(t>=240?t-240:t+120,i,n),pA(t,i,n),pA(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new yl(nU(this.h),$4(this.s),$4(this.l),U4(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=U4(this.opacity);return`${t===1?"hsl(":"hsla("}${nU(this.h)}, ${$4(this.s)*100}%, ${$4(this.l)*100}%${t===1?")":`, ${t})`}`}}));o(nU,"clamph");o($4,"clampt");o(pA,"hsl2rgb")});var sU,oU,lU=M(()=>{"use strict";sU=Math.PI/180,oU=180/Math.PI});function pU(t){if(t instanceof sc)return new sc(t.l,t.a,t.b,t.opacity);if(t instanceof cu)return mU(t);t instanceof sa||(t=mA(t));var e=bA(t.r),r=bA(t.g),n=bA(t.b),i=yA((.2225045*e+.7168786*r+.0606169*n)/uU),a,s;return e===r&&r===n?a=s=i:(a=yA((.4360747*e+.3850649*r+.1430804*n)/cU),s=yA((.0139322*e+.0971045*r+.7141733*n)/hU)),new sc(116*i-16,500*(a-i),200*(i-s),t.opacity)}function wA(t,e,r,n){return arguments.length===1?pU(t):new sc(t,e,r,n??1)}function sc(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function yA(t){return t>Nwe?Math.pow(t,1/3):t/dU+fU}function vA(t){return t>Tp?t*t*t:dU*(t-fU)}function xA(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function bA(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Rwe(t){if(t instanceof cu)return new cu(t.h,t.c,t.l,t.opacity);if(t instanceof sc||(t=pU(t)),t.a===0&&t.b===0)return new cu(NaN,0{"use strict";dA();gA();lU();H4=18,cU=.96422,uU=1,hU=.82521,fU=4/29,Tp=6/29,dU=3*Tp*Tp,Nwe=Tp*Tp*Tp;o(pU,"labConvert");o(wA,"lab");o(sc,"Lab");yh(sc,wA,xp(vh,{brighter(t){return new sc(this.l+H4*(t??1),this.a,this.b,this.opacity)},darker(t){return new sc(this.l-H4*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=cU*vA(e),t=uU*vA(t),r=hU*vA(r),new sa(xA(3.1338561*e-1.6168667*t-.4906146*r),xA(-.9787684*e+1.9161415*t+.033454*r),xA(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));o(yA,"xyz2lab");o(vA,"lab2xyz");o(xA,"lrgb2rgb");o(bA,"rgb2lrgb");o(Rwe,"hclConvert");o(gy,"hcl");o(cu,"Hcl");o(mU,"hcl2lab");yh(cu,gy,xp(vh,{brighter(t){return new cu(this.h,this.c,this.l+H4*(t??1),this.opacity)},darker(t){return new cu(this.h,this.c,this.l-H4*(t??1),this.opacity)},rgb(){return mU(this).rgb()}}))});var kp=M(()=>{"use strict";gA();gU()});function TA(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function kA(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],a=t[n+1],s=n>0?t[n-1]:2*i-a,l=n{"use strict";o(TA,"basis");o(kA,"default")});function SA(t){var e=t.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*e),i=t[(n+e-1)%e],a=t[n%e],s=t[(n+1)%e],l=t[(n+2)%e];return TA((r-n/e)*e,i,a,s,l)}}var yU=M(()=>{"use strict";EA();o(SA,"default")});var Ep,CA=M(()=>{"use strict";Ep=o(t=>()=>t,"default")});function vU(t,e){return function(r){return t+r*e}}function Mwe(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function xU(t,e){var r=e-t;return r?vU(t,r>180||r<-180?r-360*Math.round(r/360):r):Ep(isNaN(t)?e:t)}function bU(t){return(t=+t)==1?uu:function(e,r){return r-e?Mwe(e,r,t):Ep(isNaN(e)?r:e)}}function uu(t,e){var r=e-t;return r?vU(t,r):Ep(isNaN(t)?e:t)}var AA=M(()=>{"use strict";CA();o(vU,"linear");o(Mwe,"exponential");o(xU,"hue");o(bU,"gamma");o(uu,"nogamma")});function wU(t){return function(e){var r=e.length,n=new Array(r),i=new Array(r),a=new Array(r),s,l;for(s=0;s{"use strict";kp();EA();yU();AA();rd=o(function t(e){var r=bU(e);function n(i,a){var s=r((i=wp(i)).r,(a=wp(a)).r),l=r(i.g,a.g),u=r(i.b,a.b),h=uu(i.opacity,a.opacity);return function(f){return i.r=s(f),i.g=l(f),i.b=u(f),i.opacity=h(f),i+""}}return o(n,"rgb"),n.gamma=t,n},"rgbGamma")(1);o(wU,"rgbSpline");Iwe=wU(kA),Owe=wU(SA)});function LA(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(a){for(i=0;i{"use strict";o(LA,"default");o(TU,"isNumberArray")});function EU(t,e){var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s;for(s=0;s{"use strict";W4();o(EU,"genericArray")});function DA(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}var CU=M(()=>{"use strict";o(DA,"default")});function Ki(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}var yy=M(()=>{"use strict";o(Ki,"default")});function NA(t,e){var r={},n={},i;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(i in e)i in t?r[i]=xh(t[i],e[i]):n[i]=e[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var AU=M(()=>{"use strict";W4();o(NA,"default")});function Pwe(t){return function(){return t}}function Bwe(t){return function(e){return t(e)+""}}function Sp(t,e){var r=MA.lastIndex=RA.lastIndex=0,n,i,a,s=-1,l=[],u=[];for(t=t+"",e=e+"";(n=MA.exec(t))&&(i=RA.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),l[s]?l[s]+=a:l[++s]=a),(n=n[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Ki(n,i)})),r=RA.lastIndex;return r{"use strict";yy();MA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,RA=new RegExp(MA.source,"g");o(Pwe,"zero");o(Bwe,"one");o(Sp,"default")});function xh(t,e){var r=typeof e,n;return e==null||r==="boolean"?Ep(e):(r==="number"?Ki:r==="string"?(n=vl(e))?(e=n,rd):Sp:e instanceof vl?rd:e instanceof Date?DA:TU(e)?LA:Array.isArray(e)?EU:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?NA:Ki)(t,e)}var W4=M(()=>{"use strict";kp();_A();SU();CU();yy();AU();IA();CA();kU();o(xh,"default")});function Y4(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var _U=M(()=>{"use strict";o(Y4,"default")});function X4(t,e,r,n,i,a){var s,l,u;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(u=t*r+e*n)&&(r-=t*u,n-=e*u),(l=Math.sqrt(r*r+n*n))&&(r/=l,n/=l,u/=l),t*n{"use strict";LU=180/Math.PI,q4={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};o(X4,"default")});function NU(t){let e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?q4:X4(e.a,e.b,e.c,e.d,e.e,e.f)}function RU(t){return t==null?q4:(j4||(j4=document.createElementNS("http://www.w3.org/2000/svg","g")),j4.setAttribute("transform",t),(t=j4.transform.baseVal.consolidate())?(t=t.matrix,X4(t.a,t.b,t.c,t.d,t.e,t.f)):q4)}var j4,MU=M(()=>{"use strict";DU();o(NU,"parseCss");o(RU,"parseSvg")});function IU(t,e,r,n){function i(h){return h.length?h.pop()+" ":""}o(i,"pop");function a(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push("translate(",null,e,null,r);g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d||p)&&m.push("translate("+d+e+p+r)}o(a,"translate");function s(h,f,d,p){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),p.push({i:d.push(i(d)+"rotate(",null,n)-2,x:Ki(h,f)})):f&&d.push(i(d)+"rotate("+f+n)}o(s,"rotate");function l(h,f,d,p){h!==f?p.push({i:d.push(i(d)+"skewX(",null,n)-2,x:Ki(h,f)}):f&&d.push(i(d)+"skewX("+f+n)}o(l,"skewX");function u(h,f,d,p,m,g){if(h!==d||f!==p){var y=m.push(i(m)+"scale(",null,",",null,")");g.push({i:y-4,x:Ki(h,d)},{i:y-2,x:Ki(f,p)})}else(d!==1||p!==1)&&m.push(i(m)+"scale("+d+","+p+")")}return o(u,"scale"),function(h,f){var d=[],p=[];return h=t(h),f=t(f),a(h.translateX,h.translateY,f.translateX,f.translateY,d,p),s(h.rotate,f.rotate,d,p),l(h.skewX,f.skewX,d,p),u(h.scaleX,h.scaleY,f.scaleX,f.scaleY,d,p),h=f=null,function(m){for(var g=-1,y=p.length,v;++g{"use strict";yy();MU();o(IU,"interpolateTransform");OA=IU(NU,"px, ","px)","deg)"),PA=IU(RU,", ",")",")")});function PU(t){return function(e,r){var n=t((e=gy(e)).h,(r=gy(r)).h),i=uu(e.c,r.c),a=uu(e.l,r.l),s=uu(e.opacity,r.opacity);return function(l){return e.h=n(l),e.c=i(l),e.l=a(l),e.opacity=s(l),e+""}}}var BA,Fwe,BU=M(()=>{"use strict";kp();AA();o(PU,"hcl");BA=PU(xU),Fwe=PU(uu)});var Cp=M(()=>{"use strict";W4();yy();_U();IA();OU();_A();BU()});function ky(){return nd||(GU(zwe),nd=wy.now()+Z4)}function zwe(){nd=0}function Ty(){this._call=this._time=this._next=null}function J4(t,e,r){var n=new Ty;return n.restart(t,e,r),n}function $U(){ky(),++Ap;for(var t=K4,e;t;)(e=nd-t._time)>=0&&t._call.call(void 0,e),t=t._next;--Ap}function FU(){nd=(Q4=wy.now())+Z4,Ap=xy=0;try{$U()}finally{Ap=0,$we(),nd=0}}function Gwe(){var t=wy.now(),e=t-Q4;e>zU&&(Z4-=e,Q4=t)}function $we(){for(var t,e=K4,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:K4=r);by=t,FA(n)}function FA(t){if(!Ap){xy&&(xy=clearTimeout(xy));var e=t-nd;e>24?(t<1/0&&(xy=setTimeout(FU,t-wy.now()-Z4)),vy&&(vy=clearInterval(vy))):(vy||(Q4=wy.now(),vy=setInterval(Gwe,zU)),Ap=1,GU(FU))}}var Ap,xy,vy,zU,K4,by,Q4,nd,Z4,wy,GU,zA=M(()=>{"use strict";Ap=0,xy=0,vy=0,zU=1e3,Q4=0,nd=0,Z4=0,wy=typeof performance=="object"&&performance.now?performance:Date,GU=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};o(ky,"now");o(zwe,"clearNow");o(Ty,"Timer");Ty.prototype=J4.prototype={constructor:Ty,restart:o(function(t,e,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?ky():+r)+(e==null?0:+e),!this._next&&by!==this&&(by?by._next=this:K4=this,by=this),this._call=t,this._time=r,FA()},"restart"),stop:o(function(){this._call&&(this._call=null,this._time=1/0,FA())},"stop")};o(J4,"timer");o($U,"timerFlush");o(FU,"wake");o(Gwe,"poke");o($we,"nap");o(FA,"sleep")});function Ey(t,e,r){var n=new Ty;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var VU=M(()=>{"use strict";zA();o(Ey,"default")});var e3=M(()=>{"use strict";zA();VU()});function hu(t,e,r,n,i,a){var s=t.__transition;if(!s)t.__transition={};else if(r in s)return;Hwe(t,r,{name:e,index:n,group:i,on:Vwe,tween:Uwe,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:WU})}function Cy(t,e){var r=Oi(t,e);if(r.state>WU)throw new Error("too late; already scheduled");return r}function oa(t,e){var r=Oi(t,e);if(r.state>t3)throw new Error("too late; already running");return r}function Oi(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function Hwe(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=J4(a,0,r.time);function a(h){r.state=UU,r.timer.restart(s,r.delay,r.time),r.delay<=h&&s(h-r.delay)}o(a,"schedule");function s(h){var f,d,p,m;if(r.state!==UU)return u();for(f in n)if(m=n[f],m.name===r.name){if(m.state===t3)return Ey(s);m.state===HU?(m.state=Sy,m.timer.stop(),m.on.call("interrupt",t,t.__data__,m.index,m.group),delete n[f]):+f{"use strict";b7();e3();Vwe=x7("start","end","cancel","interrupt"),Uwe=[],WU=0,UU=1,r3=2,t3=3,HU=4,n3=5,Sy=6;o(hu,"default");o(Cy,"init");o(oa,"set");o(Oi,"get");o(Hwe,"create")});function Ay(t,e){var r=t.__transition,n,i,a=!0,s;if(r){e=e==null?null:e+"";for(s in r){if((n=r[s]).name!==e){a=!1;continue}i=n.state>r3&&n.state{"use strict";ys();o(Ay,"default")});function GA(t){return this.each(function(){Ay(this,t)})}var qU=M(()=>{"use strict";YU();o(GA,"default")});function Wwe(t,e){var r,n;return function(){var i=oa(this,t),a=i.tween;if(a!==r){n=r=a;for(var s=0,l=n.length;s{"use strict";ys();o(Wwe,"tweenRemove");o(Ywe,"tweenFunction");o($A,"default");o(_p,"tweenValue")});function Ly(t,e){var r;return(typeof e=="number"?Ki:e instanceof vl?rd:(r=vl(e))?(e=r,rd):Sp)(t,e)}var VA=M(()=>{"use strict";kp();Cp();o(Ly,"default")});function qwe(t){return function(){this.removeAttribute(t)}}function Xwe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function jwe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttribute(t);return s===i?null:s===n?a:a=e(n=s,r)}}function Kwe(t,e,r){var n,i=r+"",a;return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===n?a:a=e(n=s,r)}}function Qwe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttribute(t):(s=this.getAttribute(t),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function Zwe(t,e,r){var n,i,a;return function(){var s,l=r(this),u;return l==null?void this.removeAttributeNS(t.space,t.local):(s=this.getAttributeNS(t.space,t.local),u=l+"",s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l)))}}function UA(t,e){var r=ic(t),n=r==="transform"?PA:Ly;return this.attrTween(t,typeof e=="function"?(r.local?Zwe:Qwe)(r,n,_p(this,"attr."+t,e)):e==null?(r.local?Xwe:qwe)(r):(r.local?Kwe:jwe)(r,n,e))}var XU=M(()=>{"use strict";Cp();gl();_y();VA();o(qwe,"attrRemove");o(Xwe,"attrRemoveNS");o(jwe,"attrConstant");o(Kwe,"attrConstantNS");o(Qwe,"attrFunction");o(Zwe,"attrFunctionNS");o(UA,"default")});function Jwe(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function eTe(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function tTe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&eTe(t,a)),r}return o(i,"tween"),i._value=e,i}function rTe(t,e){var r,n;function i(){var a=e.apply(this,arguments);return a!==n&&(r=(n=a)&&Jwe(t,a)),r}return o(i,"tween"),i._value=e,i}function HA(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;var n=ic(t);return this.tween(r,(n.local?tTe:rTe)(n,e))}var jU=M(()=>{"use strict";gl();o(Jwe,"attrInterpolate");o(eTe,"attrInterpolateNS");o(tTe,"attrTweenNS");o(rTe,"attrTween");o(HA,"default")});function nTe(t,e){return function(){Cy(this,t).delay=+e.apply(this,arguments)}}function iTe(t,e){return e=+e,function(){Cy(this,t).delay=e}}function WA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?nTe:iTe)(e,t)):Oi(this.node(),e).delay}var KU=M(()=>{"use strict";ys();o(nTe,"delayFunction");o(iTe,"delayConstant");o(WA,"default")});function aTe(t,e){return function(){oa(this,t).duration=+e.apply(this,arguments)}}function sTe(t,e){return e=+e,function(){oa(this,t).duration=e}}function YA(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?aTe:sTe)(e,t)):Oi(this.node(),e).duration}var QU=M(()=>{"use strict";ys();o(aTe,"durationFunction");o(sTe,"durationConstant");o(YA,"default")});function oTe(t,e){if(typeof e!="function")throw new Error;return function(){oa(this,t).ease=e}}function qA(t){var e=this._id;return arguments.length?this.each(oTe(e,t)):Oi(this.node(),e).ease}var ZU=M(()=>{"use strict";ys();o(oTe,"easeConstant");o(qA,"default")});function lTe(t,e){return function(){var r=e.apply(this,arguments);if(typeof r!="function")throw new Error;oa(this,t).ease=r}}function XA(t){if(typeof t!="function")throw new Error;return this.each(lTe(this._id,t))}var JU=M(()=>{"use strict";ys();o(lTe,"easeVarying");o(XA,"default")});function jA(t){typeof t!="function"&&(t=vp(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{"use strict";gl();id();o(jA,"default")});function KA(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,a=Math.min(n,i),s=new Array(n),l=0;l{"use strict";id();o(KA,"default")});function cTe(t){return(t+"").trim().split(/^|\s+/).every(function(e){var r=e.indexOf(".");return r>=0&&(e=e.slice(0,r)),!e||e==="start"})}function uTe(t,e,r){var n,i,a=cTe(e)?Cy:oa;return function(){var s=a(this,t),l=s.on;l!==n&&(i=(n=l).copy()).on(e,r),s.on=i}}function QA(t,e){var r=this._id;return arguments.length<2?Oi(this.node(),r).on.on(t):this.each(uTe(r,t,e))}var rH=M(()=>{"use strict";ys();o(cTe,"start");o(uTe,"onFunction");o(QA,"default")});function hTe(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function ZA(){return this.on("end.remove",hTe(this._id))}var nH=M(()=>{"use strict";o(hTe,"removeFunction");o(ZA,"default")});function JA(t){var e=this._name,r=this._id;typeof t!="function"&&(t=mh(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{"use strict";gl();id();ys();o(JA,"default")});function e8(t){var e=this._name,r=this._id;typeof t!="function"&&(t=yp(t));for(var n=this._groups,i=n.length,a=[],s=[],l=0;l{"use strict";gl();id();ys();o(e8,"default")});function t8(){return new fTe(this._groups,this._parents)}var fTe,sH=M(()=>{"use strict";gl();fTe=lu.prototype.constructor;o(t8,"default")});function dTe(t,e){var r,n,i;return function(){var a=gh(this,t),s=(this.style.removeProperty(t),gh(this,t));return a===s?null:a===r&&s===n?i:i=e(r=a,n=s)}}function oH(t){return function(){this.style.removeProperty(t)}}function pTe(t,e,r){var n,i=r+"",a;return function(){var s=gh(this,t);return s===i?null:s===n?a:a=e(n=s,r)}}function mTe(t,e,r){var n,i,a;return function(){var s=gh(this,t),l=r(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(t),gh(this,t))),s===u?null:s===n&&u===i?a:(i=u,a=e(n=s,l))}}function gTe(t,e){var r,n,i,a="style."+e,s="end."+a,l;return function(){var u=oa(this,t),h=u.on,f=u.value[a]==null?l||(l=oH(e)):void 0;(h!==r||i!==f)&&(n=(r=h).copy()).on(s,i=f),u.on=n}}function r8(t,e,r){var n=(t+="")=="transform"?OA:Ly;return e==null?this.styleTween(t,dTe(t,n)).on("end.style."+t,oH(t)):typeof e=="function"?this.styleTween(t,mTe(t,n,_p(this,"style."+t,e))).each(gTe(this._id,t)):this.styleTween(t,pTe(t,n,e),r).on("end.style."+t,null)}var lH=M(()=>{"use strict";Cp();gl();ys();_y();VA();o(dTe,"styleNull");o(oH,"styleRemove");o(pTe,"styleConstant");o(mTe,"styleFunction");o(gTe,"styleMaybeRemove");o(r8,"default")});function yTe(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function vTe(t,e,r){var n,i;function a(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&yTe(t,s,r)),n}return o(a,"tween"),a._value=e,a}function n8(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,vTe(t,e,r??""))}var cH=M(()=>{"use strict";o(yTe,"styleInterpolate");o(vTe,"styleTween");o(n8,"default")});function xTe(t){return function(){this.textContent=t}}function bTe(t){return function(){var e=t(this);this.textContent=e??""}}function i8(t){return this.tween("text",typeof t=="function"?bTe(_p(this,"text",t)):xTe(t==null?"":t+""))}var uH=M(()=>{"use strict";_y();o(xTe,"textConstant");o(bTe,"textFunction");o(i8,"default")});function wTe(t){return function(e){this.textContent=t.call(this,e)}}function TTe(t){var e,r;function n(){var i=t.apply(this,arguments);return i!==r&&(e=(r=i)&&wTe(i)),e}return o(n,"tween"),n._value=t,n}function a8(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,TTe(t))}var hH=M(()=>{"use strict";o(wTe,"textInterpolate");o(TTe,"textTween");o(a8,"default")});function s8(){for(var t=this._name,e=this._id,r=i3(),n=this._groups,i=n.length,a=0;a{"use strict";id();ys();o(s8,"default")});function o8(){var t,e,r=this,n=r._id,i=r.size();return new Promise(function(a,s){var l={value:s},u={value:o(function(){--i===0&&a()},"value")};r.each(function(){var h=oa(this,n),f=h.on;f!==t&&(e=(t=f).copy(),e._.cancel.push(l),e._.interrupt.push(l),e._.end.push(u)),h.on=e}),i===0&&a()})}var dH=M(()=>{"use strict";ys();o(o8,"default")});function ja(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function pH(t){return lu().transition(t)}function i3(){return++kTe}var kTe,fu,id=M(()=>{"use strict";gl();XU();jU();KU();QU();ZU();JU();eH();tH();rH();nH();iH();aH();sH();lH();cH();uH();hH();fH();_y();dH();kTe=0;o(ja,"Transition");o(pH,"transition");o(i3,"newId");fu=lu.prototype;ja.prototype=pH.prototype={constructor:ja,select:JA,selectAll:e8,selectChild:fu.selectChild,selectChildren:fu.selectChildren,filter:jA,merge:KA,selection:t8,transition:s8,call:fu.call,nodes:fu.nodes,node:fu.node,size:fu.size,empty:fu.empty,each:fu.each,on:QA,attr:UA,attrTween:HA,style:r8,styleTween:n8,text:i8,textTween:a8,remove:ZA,tween:$A,delay:WA,duration:YA,ease:qA,easeVarying:XA,end:o8,[Symbol.iterator]:fu[Symbol.iterator]}});function a3(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var mH=M(()=>{"use strict";o(a3,"cubicInOut")});var l8=M(()=>{"use strict";mH()});function STe(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function c8(t){var e,r;t instanceof ja?(e=t._id,t=t._name):(e=i3(),(r=ETe).time=ky(),t=t==null?null:t+"");for(var n=this._groups,i=n.length,a=0;a{"use strict";id();ys();l8();e3();ETe={time:null,delay:0,duration:250,ease:a3};o(STe,"inherit");o(c8,"default")});var yH=M(()=>{"use strict";gl();qU();gH();lu.prototype.interrupt=GA;lu.prototype.transition=c8});var s3=M(()=>{"use strict";yH()});var vH=M(()=>{"use strict"});var xH=M(()=>{"use strict"});var bH=M(()=>{"use strict"});function wH(t){return[+t[0],+t[1]]}function CTe(t){return[wH(t[0]),wH(t[1])]}function u8(t){return{type:t}}var t1t,r1t,n1t,i1t,a1t,s1t,TH=M(()=>{"use strict";s3();vH();xH();bH();({abs:t1t,max:r1t,min:n1t}=Math);o(wH,"number1");o(CTe,"number2");i1t={name:"x",handles:["w","e"].map(u8),input:o(function(t,e){return t==null?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),output:o(function(t){return t&&[t[0][0],t[1][0]]},"output")},a1t={name:"y",handles:["n","s"].map(u8),input:o(function(t,e){return t==null?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),output:o(function(t){return t&&[t[0][1],t[1][1]]},"output")},s1t={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(u8),input:o(function(t){return t==null?null:CTe(t)},"input"),output:o(function(t){return t},"output")};o(u8,"type")});var kH=M(()=>{"use strict";TH()});function EH(t){this._+=t[0];for(let e=1,r=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return EH;let r=10**e;return function(n){this._+=n[0];for(let i=1,a=n.length;i{"use strict";h8=Math.PI,f8=2*h8,ad=1e-6,ATe=f8-ad;o(EH,"append");o(_Te,"appendRound");sd=class{static{o(this,"Path")}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?EH:_Te(e)}moveTo(e,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,r){this._append`L${this._x1=+e},${this._y1=+r}`}quadraticCurveTo(e,r,n,i){this._append`Q${+e},${+r},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(e,r,n,i,a,s){this._append`C${+e},${+r},${+n},${+i},${this._x1=+a},${this._y1=+s}`}arcTo(e,r,n,i,a){if(e=+e,r=+r,n=+n,i=+i,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,l=this._y1,u=n-e,h=i-r,f=s-e,d=l-r,p=f*f+d*d;if(this._x1===null)this._append`M${this._x1=e},${this._y1=r}`;else if(p>ad)if(!(Math.abs(d*u-h*f)>ad)||!a)this._append`L${this._x1=e},${this._y1=r}`;else{let m=n-s,g=i-l,y=u*u+h*h,v=m*m+g*g,x=Math.sqrt(y),b=Math.sqrt(p),w=a*Math.tan((h8-Math.acos((y+p-v)/(2*x*b)))/2),_=w/b,T=w/x;Math.abs(_-1)>ad&&this._append`L${e+_*f},${r+_*d}`,this._append`A${a},${a},0,0,${+(d*m>f*g)},${this._x1=e+T*u},${this._y1=r+T*h}`}}arc(e,r,n,i,a,s){if(e=+e,r=+r,n=+n,s=!!s,n<0)throw new Error(`negative radius: ${n}`);let l=n*Math.cos(i),u=n*Math.sin(i),h=e+l,f=r+u,d=1^s,p=s?i-a:a-i;this._x1===null?this._append`M${h},${f}`:(Math.abs(this._x1-h)>ad||Math.abs(this._y1-f)>ad)&&this._append`L${h},${f}`,n&&(p<0&&(p=p%f8+f8),p>ATe?this._append`A${n},${n},0,1,${d},${e-l},${r-u}A${n},${n},0,1,${d},${this._x1=h},${this._y1=f}`:p>ad&&this._append`A${n},${n},0,${+(p>=h8)},${d},${this._x1=e+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(e,r,n,i){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}};o(SH,"path");SH.prototype=sd.prototype});var d8=M(()=>{"use strict";CH()});var AH=M(()=>{"use strict"});var _H=M(()=>{"use strict"});var LH=M(()=>{"use strict"});var DH=M(()=>{"use strict"});var NH=M(()=>{"use strict"});var RH=M(()=>{"use strict"});var MH=M(()=>{"use strict"});function p8(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function od(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}var Dy=M(()=>{"use strict";o(p8,"default");o(od,"formatDecimalParts")});function xl(t){return t=od(Math.abs(t)),t?t[1]:NaN}var Ny=M(()=>{"use strict";Dy();o(xl,"default")});function m8(t,e){return function(r,n){for(var i=r.length,a=[],s=0,l=t[0],u=0;i>0&&l>0&&(u+l+1>n&&(l=Math.max(1,n-u)),a.push(r.substring(i-=l,i+l)),!((u+=l+1)>n));)l=t[s=(s+1)%t.length];return a.reverse().join(e)}}var IH=M(()=>{"use strict";o(m8,"default")});function g8(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var OH=M(()=>{"use strict";o(g8,"default")});function bh(t){if(!(e=LTe.exec(t)))throw new Error("invalid format: "+t);var e;return new o3({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function o3(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}var LTe,y8=M(()=>{"use strict";LTe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;o(bh,"formatSpecifier");bh.prototype=o3.prototype;o(o3,"FormatSpecifier");o3.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type}});function v8(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var PH=M(()=>{"use strict";o(v8,"default")});function b8(t,e){var r=od(t,e);if(!r)return t+"";var n=r[0],i=r[1],a=i-(x8=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=n.length;return a===s?n:a>s?n+new Array(a-s+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+od(t,Math.max(0,e+a-1))[0]}var x8,w8=M(()=>{"use strict";Dy();o(b8,"default")});function l3(t,e){var r=od(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}var BH=M(()=>{"use strict";Dy();o(l3,"default")});var T8,FH=M(()=>{"use strict";Dy();w8();BH();T8={"%":o((t,e)=>(t*100).toFixed(e),"%"),b:o(t=>Math.round(t).toString(2),"b"),c:o(t=>t+"","c"),d:p8,e:o((t,e)=>t.toExponential(e),"e"),f:o((t,e)=>t.toFixed(e),"f"),g:o((t,e)=>t.toPrecision(e),"g"),o:o(t=>Math.round(t).toString(8),"o"),p:o((t,e)=>l3(t*100,e),"p"),r:l3,s:b8,X:o(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:o(t=>Math.round(t).toString(16),"x")}});function c3(t){return t}var zH=M(()=>{"use strict";o(c3,"default")});function k8(t){var e=t.grouping===void 0||t.thousands===void 0?c3:m8(GH.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?c3:g8(GH.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"\u2212":t.minus+"",u=t.nan===void 0?"NaN":t.nan+"";function h(d){d=bh(d);var p=d.fill,m=d.align,g=d.sign,y=d.symbol,v=d.zero,x=d.width,b=d.comma,w=d.precision,_=d.trim,T=d.type;T==="n"?(b=!0,T="g"):T8[T]||(w===void 0&&(w=12),_=!0,T="g"),(v||p==="0"&&m==="=")&&(v=!0,p="0",m="=");var E=y==="$"?r:y==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",L=y==="$"?n:/[%p]/.test(T)?s:"",C=T8[T],A=/[defgprs%]/.test(T);w=w===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function I(D){var k=E,R=L,S,O,N;if(T==="c")R=C(D)+R,D="";else{D=+D;var P=D<0||1/D<0;if(D=isNaN(D)?u:C(Math.abs(D),w),_&&(D=v8(D)),P&&+D==0&&g!=="+"&&(P=!1),k=(P?g==="("?g:l:g==="-"||g==="("?"":g)+k,R=(T==="s"?$H[8+x8/3]:"")+R+(P&&g==="("?")":""),A){for(S=-1,O=D.length;++SN||N>57){R=(N===46?i+D.slice(S+1):D.slice(S))+R,D=D.slice(0,S);break}}}b&&!v&&(D=e(D,1/0));var F=k.length+D.length+R.length,B=F>1)+k+D+R+B.slice(F);break;default:D=B+k+D+R;break}return a(D)}return o(I,"format"),I.toString=function(){return d+""},I}o(h,"newFormat");function f(d,p){var m=h((d=bh(d),d.type="f",d)),g=Math.max(-8,Math.min(8,Math.floor(xl(p)/3)))*3,y=Math.pow(10,-g),v=$H[8+g/3];return function(x){return m(y*x)+v}}return o(f,"formatPrefix"),{format:h,formatPrefix:f}}var GH,$H,VH=M(()=>{"use strict";Ny();IH();OH();y8();PH();FH();w8();zH();GH=Array.prototype.map,$H=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];o(k8,"default")});function E8(t){return u3=k8(t),h3=u3.format,f3=u3.formatPrefix,u3}var u3,h3,f3,UH=M(()=>{"use strict";VH();E8({thousands:",",grouping:[3],currency:["$",""]});o(E8,"defaultLocale")});function d3(t){return Math.max(0,-xl(Math.abs(t)))}var HH=M(()=>{"use strict";Ny();o(d3,"default")});function p3(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(xl(e)/3)))*3-xl(Math.abs(t)))}var WH=M(()=>{"use strict";Ny();o(p3,"default")});function m3(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,xl(e)-xl(t))+1}var YH=M(()=>{"use strict";Ny();o(m3,"default")});var S8=M(()=>{"use strict";UH();y8();HH();WH();YH()});var qH=M(()=>{"use strict"});var XH=M(()=>{"use strict"});var jH=M(()=>{"use strict"});var KH=M(()=>{"use strict"});function wh(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}var Ry=M(()=>{"use strict";o(wh,"initRange")});function du(){var t=new mp,e=[],r=[],n=C8;function i(a){let s=t.get(a);if(s===void 0){if(n!==C8)return n;t.set(a,s=e.push(a)-1)}return r[s%r.length]}return o(i,"scale"),i.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new mp;for(let s of a)t.has(s)||t.set(s,e.push(s)-1);return i},i.range=function(a){return arguments.length?(r=Array.from(a),i):r.slice()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return du(e,r).unknown(n)},wh.apply(i,arguments),i}var C8,A8=M(()=>{"use strict";ph();Ry();C8=Symbol("implicit");o(du,"ordinal")});function Lp(){var t=du().unknown(void 0),e=t.domain,r=t.range,n=0,i=1,a,s,l=!1,u=0,h=0,f=.5;delete t.unknown;function d(){var p=e().length,m=i{"use strict";ph();Ry();A8();o(Lp,"band")});function _8(t){return function(){return t}}var ZH=M(()=>{"use strict";o(_8,"constants")});function L8(t){return+t}var JH=M(()=>{"use strict";o(L8,"number")});function Dp(t){return t}function D8(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:_8(isNaN(e)?NaN:.5)}function DTe(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function NTe(t,e,r){var n=t[0],i=t[1],a=e[0],s=e[1];return i2?RTe:NTe,u=h=null,d}o(f,"rescale");function d(p){return p==null||isNaN(p=+p)?a:(u||(u=l(t.map(n),e,r)))(n(s(p)))}return o(d,"scale"),d.invert=function(p){return s(i((h||(h=l(e,t.map(n),Ki)))(p)))},d.domain=function(p){return arguments.length?(t=Array.from(p,L8),f()):t.slice()},d.range=function(p){return arguments.length?(e=Array.from(p),f()):e.slice()},d.rangeRound=function(p){return e=Array.from(p),r=Y4,f()},d.clamp=function(p){return arguments.length?(s=p?!0:Dp,f()):s!==Dp},d.interpolate=function(p){return arguments.length?(r=p,f()):r},d.unknown=function(p){return arguments.length?(a=p,d):a},function(p,m){return n=p,i=m,f()}}function My(){return MTe()(Dp,Dp)}var eW,N8=M(()=>{"use strict";ph();Cp();ZH();JH();eW=[0,1];o(Dp,"identity");o(D8,"normalize");o(DTe,"clamper");o(NTe,"bimap");o(RTe,"polymap");o(g3,"copy");o(MTe,"transformer");o(My,"continuous")});function R8(t,e,r,n){var i=gp(t,e,r),a;switch(n=bh(n??",f"),n.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(a=p3(i,s))&&(n.precision=a),f3(n,s)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=m3(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=d3(i))&&(n.precision=a-(n.type==="%")*2);break}}return h3(n)}var tW=M(()=>{"use strict";ph();S8();o(R8,"tickFormat")});function ITe(t){var e=t.domain;return t.ticks=function(r){var n=e();return L4(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return R8(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,a=n.length-1,s=n[i],l=n[a],u,h,f=10;for(l0;){if(h=ly(s,l,r),h===u)return n[i]=s,n[a]=l,e(n);if(h>0)s=Math.floor(s/h)*h,l=Math.ceil(l/h)*h;else if(h<0)s=Math.ceil(s*h)/h,l=Math.floor(l*h)/h;else break;u=h}return t},t}function bl(){var t=My();return t.copy=function(){return g3(t,bl())},wh.apply(t,arguments),ITe(t)}var rW=M(()=>{"use strict";ph();N8();Ry();tW();o(ITe,"linearish");o(bl,"linear")});function M8(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],a=t[n],s;return a{"use strict";o(M8,"nice")});function gn(t,e,r,n){function i(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o(i,"interval"),i.floor=a=>(t(a=new Date(+a)),a),i.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),i.round=a=>{let s=i(a),l=i.ceil(a);return a-s(e(a=new Date(+a),s==null?1:Math.floor(s)),a),i.range=(a,s,l)=>{let u=[];if(a=i.ceil(a),l=l==null?1:Math.floor(l),!(a0))return u;let h;do u.push(h=new Date(+a)),e(a,l),t(a);while(hgn(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;e(s,-1),!a(s););else for(;--l>=0;)for(;e(s,1),!a(s););}),r&&(i.count=(a,s)=>(I8.setTime(+a),O8.setTime(+s),t(I8),t(O8),Math.floor(r(I8,O8))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?s=>n(s)%a===0:s=>i.count(0,s)%a===0):i)),i}var I8,O8,pu=M(()=>{"use strict";I8=new Date,O8=new Date;o(gn,"timeInterval")});var oc,iW,P8=M(()=>{"use strict";pu();oc=gn(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);oc.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?gn(e=>{e.setTime(Math.floor(e/t)*t)},(e,r)=>{e.setTime(+e+r*t)},(e,r)=>(r-e)/t):oc);iW=oc.range});var Xs,aW,B8=M(()=>{"use strict";pu();Xs=gn(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),aW=Xs.range});var mu,OTe,y3,PTe,F8=M(()=>{"use strict";pu();mu=gn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),OTe=mu.range,y3=gn(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),PTe=y3.range});var gu,BTe,v3,FTe,z8=M(()=>{"use strict";pu();gu=gn(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),BTe=gu.range,v3=gn(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),FTe=v3.range});var Lo,zTe,Oy,GTe,x3,$Te,G8=M(()=>{"use strict";pu();Lo=gn(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),zTe=Lo.range,Oy=gn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),GTe=Oy.range,x3=gn(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),$Te=x3.range});function ud(t){return gn(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,r)=>{e.setDate(e.getDate()+r*7)},(e,r)=>(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}function hd(t){return gn(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCDate(e.getUTCDate()+r*7)},(e,r)=>(r-e)/6048e5)}var wl,Th,b3,w3,cc,T3,k3,oW,VTe,UTe,HTe,WTe,YTe,qTe,fd,Np,lW,cW,kh,uW,hW,fW,XTe,jTe,KTe,QTe,ZTe,JTe,$8=M(()=>{"use strict";pu();o(ud,"timeWeekday");wl=ud(0),Th=ud(1),b3=ud(2),w3=ud(3),cc=ud(4),T3=ud(5),k3=ud(6),oW=wl.range,VTe=Th.range,UTe=b3.range,HTe=w3.range,WTe=cc.range,YTe=T3.range,qTe=k3.range;o(hd,"utcWeekday");fd=hd(0),Np=hd(1),lW=hd(2),cW=hd(3),kh=hd(4),uW=hd(5),hW=hd(6),fW=fd.range,XTe=Np.range,jTe=lW.range,KTe=cW.range,QTe=kh.range,ZTe=uW.range,JTe=hW.range});var yu,eke,E3,tke,V8=M(()=>{"use strict";pu();yu=gn(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),eke=yu.range,E3=gn(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),tke=E3.range});var js,rke,Tl,nke,U8=M(()=>{"use strict";pu();js=gn(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());js.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:gn(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,r)=>{e.setFullYear(e.getFullYear()+r*t)});rke=js.range,Tl=gn(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Tl.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:gn(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,r)=>{e.setUTCFullYear(e.getUTCFullYear()+r*t)});nke=Tl.range});function pW(t,e,r,n,i,a){let s=[[Xs,1,1e3],[Xs,5,5*1e3],[Xs,15,15*1e3],[Xs,30,30*1e3],[a,1,6e4],[a,5,5*6e4],[a,15,15*6e4],[a,30,30*6e4],[i,1,36e5],[i,3,3*36e5],[i,6,6*36e5],[i,12,12*36e5],[n,1,864e5],[n,2,2*864e5],[r,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function l(h,f,d){let p=fv).right(s,p);if(m===s.length)return t.every(gp(h/31536e6,f/31536e6,d));if(m===0)return oc.every(Math.max(gp(h,f,d),1));let[g,y]=s[p/s[m-1][2]{"use strict";ph();P8();B8();F8();z8();G8();$8();V8();U8();o(pW,"ticker");[ake,ske]=pW(Tl,E3,fd,x3,v3,y3),[H8,W8]=pW(js,yu,wl,Lo,gu,mu)});var S3=M(()=>{"use strict";P8();B8();F8();z8();G8();$8();V8();U8();mW()});function Y8(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function q8(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Py(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function X8(t){var e=t.dateTime,r=t.date,n=t.time,i=t.periods,a=t.days,s=t.shortDays,l=t.months,u=t.shortMonths,h=By(i),f=Fy(i),d=By(a),p=Fy(a),m=By(s),g=Fy(s),y=By(l),v=Fy(l),x=By(u),b=Fy(u),w={a:P,A:F,b:B,B:$,c:null,d:wW,e:wW,f:Lke,g:zke,G:$ke,H:Cke,I:Ake,j:_ke,L:CW,m:Dke,M:Nke,p:z,q:W,Q:EW,s:SW,S:Rke,u:Mke,U:Ike,V:Oke,w:Pke,W:Bke,x:null,X:null,y:Fke,Y:Gke,Z:Vke,"%":kW},_={a:j,A:K,b:ie,B:Q,c:null,d:TW,e:TW,f:Yke,g:rEe,G:iEe,H:Uke,I:Hke,j:Wke,L:_W,m:qke,M:Xke,p:ee,q:J,Q:EW,s:SW,S:jke,u:Kke,U:Qke,V:Zke,w:Jke,W:eEe,x:null,X:null,y:tEe,Y:nEe,Z:aEe,"%":kW},T={a:I,A:D,b:k,B:R,c:S,d:xW,e:xW,f:Tke,g:vW,G:yW,H:bW,I:bW,j:vke,L:wke,m:yke,M:xke,p:A,q:gke,Q:Eke,s:Ske,S:bke,u:hke,U:fke,V:dke,w:uke,W:pke,x:O,X:N,y:vW,Y:yW,Z:mke,"%":kke};w.x=E(r,w),w.X=E(n,w),w.c=E(e,w),_.x=E(r,_),_.X=E(n,_),_.c=E(e,_);function E(H,q){return function(Z){var ae=[],ue=-1,ce=0,te=H.length,De,oe,ke;for(Z instanceof Date||(Z=new Date(+Z));++ue53)return null;"w"in ae||(ae.w=1),"Z"in ae?(ce=q8(Py(ae.y,0,1)),te=ce.getUTCDay(),ce=te>4||te===0?Np.ceil(ce):Np(ce),ce=Oy.offset(ce,(ae.V-1)*7),ae.y=ce.getUTCFullYear(),ae.m=ce.getUTCMonth(),ae.d=ce.getUTCDate()+(ae.w+6)%7):(ce=Y8(Py(ae.y,0,1)),te=ce.getDay(),ce=te>4||te===0?Th.ceil(ce):Th(ce),ce=Lo.offset(ce,(ae.V-1)*7),ae.y=ce.getFullYear(),ae.m=ce.getMonth(),ae.d=ce.getDate()+(ae.w+6)%7)}else("W"in ae||"U"in ae)&&("w"in ae||(ae.w="u"in ae?ae.u%7:"W"in ae?1:0),te="Z"in ae?q8(Py(ae.y,0,1)).getUTCDay():Y8(Py(ae.y,0,1)).getDay(),ae.m=0,ae.d="W"in ae?(ae.w+6)%7+ae.W*7-(te+5)%7:ae.w+ae.U*7-(te+6)%7);return"Z"in ae?(ae.H+=ae.Z/100|0,ae.M+=ae.Z%100,q8(ae)):Y8(ae)}}o(L,"newParse");function C(H,q,Z,ae){for(var ue=0,ce=q.length,te=Z.length,De,oe;ue=te)return-1;if(De=q.charCodeAt(ue++),De===37){if(De=q.charAt(ue++),oe=T[De in gW?q.charAt(ue++):De],!oe||(ae=oe(H,Z,ae))<0)return-1}else if(De!=Z.charCodeAt(ae++))return-1}return ae}o(C,"parseSpecifier");function A(H,q,Z){var ae=h.exec(q.slice(Z));return ae?(H.p=f.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(A,"parsePeriod");function I(H,q,Z){var ae=m.exec(q.slice(Z));return ae?(H.w=g.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(I,"parseShortWeekday");function D(H,q,Z){var ae=d.exec(q.slice(Z));return ae?(H.w=p.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(D,"parseWeekday");function k(H,q,Z){var ae=x.exec(q.slice(Z));return ae?(H.m=b.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(k,"parseShortMonth");function R(H,q,Z){var ae=y.exec(q.slice(Z));return ae?(H.m=v.get(ae[0].toLowerCase()),Z+ae[0].length):-1}o(R,"parseMonth");function S(H,q,Z){return C(H,e,q,Z)}o(S,"parseLocaleDateTime");function O(H,q,Z){return C(H,r,q,Z)}o(O,"parseLocaleDate");function N(H,q,Z){return C(H,n,q,Z)}o(N,"parseLocaleTime");function P(H){return s[H.getDay()]}o(P,"formatShortWeekday");function F(H){return a[H.getDay()]}o(F,"formatWeekday");function B(H){return u[H.getMonth()]}o(B,"formatShortMonth");function $(H){return l[H.getMonth()]}o($,"formatMonth");function z(H){return i[+(H.getHours()>=12)]}o(z,"formatPeriod");function W(H){return 1+~~(H.getMonth()/3)}o(W,"formatQuarter");function j(H){return s[H.getUTCDay()]}o(j,"formatUTCShortWeekday");function K(H){return a[H.getUTCDay()]}o(K,"formatUTCWeekday");function ie(H){return u[H.getUTCMonth()]}o(ie,"formatUTCShortMonth");function Q(H){return l[H.getUTCMonth()]}o(Q,"formatUTCMonth");function ee(H){return i[+(H.getUTCHours()>=12)]}o(ee,"formatUTCPeriod");function J(H){return 1+~~(H.getUTCMonth()/3)}return o(J,"formatUTCQuarter"),{format:o(function(H){var q=E(H+="",w);return q.toString=function(){return H},q},"format"),parse:o(function(H){var q=L(H+="",!1);return q.toString=function(){return H},q},"parse"),utcFormat:o(function(H){var q=E(H+="",_);return q.toString=function(){return H},q},"utcFormat"),utcParse:o(function(H){var q=L(H+="",!0);return q.toString=function(){return H},q},"utcParse")}}function Hr(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a[e.toLowerCase(),r]))}function uke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function hke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function fke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function dke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function pke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function yW(t,e,r){var n=Qi.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function vW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function mke(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function gke(t,e,r){var n=Qi.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function yke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function xW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function vke(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function bW(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function xke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function bke(t,e,r){var n=Qi.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function wke(t,e,r){var n=Qi.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Tke(t,e,r){var n=Qi.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function kke(t,e,r){var n=oke.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Eke(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Ske(t,e,r){var n=Qi.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function wW(t,e){return Hr(t.getDate(),e,2)}function Cke(t,e){return Hr(t.getHours(),e,2)}function Ake(t,e){return Hr(t.getHours()%12||12,e,2)}function _ke(t,e){return Hr(1+Lo.count(js(t),t),e,3)}function CW(t,e){return Hr(t.getMilliseconds(),e,3)}function Lke(t,e){return CW(t,e)+"000"}function Dke(t,e){return Hr(t.getMonth()+1,e,2)}function Nke(t,e){return Hr(t.getMinutes(),e,2)}function Rke(t,e){return Hr(t.getSeconds(),e,2)}function Mke(t){var e=t.getDay();return e===0?7:e}function Ike(t,e){return Hr(wl.count(js(t)-1,t),e,2)}function AW(t){var e=t.getDay();return e>=4||e===0?cc(t):cc.ceil(t)}function Oke(t,e){return t=AW(t),Hr(cc.count(js(t),t)+(js(t).getDay()===4),e,2)}function Pke(t){return t.getDay()}function Bke(t,e){return Hr(Th.count(js(t)-1,t),e,2)}function Fke(t,e){return Hr(t.getFullYear()%100,e,2)}function zke(t,e){return t=AW(t),Hr(t.getFullYear()%100,e,2)}function Gke(t,e){return Hr(t.getFullYear()%1e4,e,4)}function $ke(t,e){var r=t.getDay();return t=r>=4||r===0?cc(t):cc.ceil(t),Hr(t.getFullYear()%1e4,e,4)}function Vke(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Hr(e/60|0,"0",2)+Hr(e%60,"0",2)}function TW(t,e){return Hr(t.getUTCDate(),e,2)}function Uke(t,e){return Hr(t.getUTCHours(),e,2)}function Hke(t,e){return Hr(t.getUTCHours()%12||12,e,2)}function Wke(t,e){return Hr(1+Oy.count(Tl(t),t),e,3)}function _W(t,e){return Hr(t.getUTCMilliseconds(),e,3)}function Yke(t,e){return _W(t,e)+"000"}function qke(t,e){return Hr(t.getUTCMonth()+1,e,2)}function Xke(t,e){return Hr(t.getUTCMinutes(),e,2)}function jke(t,e){return Hr(t.getUTCSeconds(),e,2)}function Kke(t){var e=t.getUTCDay();return e===0?7:e}function Qke(t,e){return Hr(fd.count(Tl(t)-1,t),e,2)}function LW(t){var e=t.getUTCDay();return e>=4||e===0?kh(t):kh.ceil(t)}function Zke(t,e){return t=LW(t),Hr(kh.count(Tl(t),t)+(Tl(t).getUTCDay()===4),e,2)}function Jke(t){return t.getUTCDay()}function eEe(t,e){return Hr(Np.count(Tl(t)-1,t),e,2)}function tEe(t,e){return Hr(t.getUTCFullYear()%100,e,2)}function rEe(t,e){return t=LW(t),Hr(t.getUTCFullYear()%100,e,2)}function nEe(t,e){return Hr(t.getUTCFullYear()%1e4,e,4)}function iEe(t,e){var r=t.getUTCDay();return t=r>=4||r===0?kh(t):kh.ceil(t),Hr(t.getUTCFullYear()%1e4,e,4)}function aEe(){return"+0000"}function kW(){return"%"}function EW(t){return+t}function SW(t){return Math.floor(+t/1e3)}var gW,Qi,oke,lke,DW=M(()=>{"use strict";S3();o(Y8,"localDate");o(q8,"utcDate");o(Py,"newDate");o(X8,"formatLocale");gW={"-":"",_:" ",0:"0"},Qi=/^\s*\d+/,oke=/^%/,lke=/[\\^$*+?|[\]().{}]/g;o(Hr,"pad");o(cke,"requote");o(By,"formatRe");o(Fy,"formatLookup");o(uke,"parseWeekdayNumberSunday");o(hke,"parseWeekdayNumberMonday");o(fke,"parseWeekNumberSunday");o(dke,"parseWeekNumberISO");o(pke,"parseWeekNumberMonday");o(yW,"parseFullYear");o(vW,"parseYear");o(mke,"parseZone");o(gke,"parseQuarter");o(yke,"parseMonthNumber");o(xW,"parseDayOfMonth");o(vke,"parseDayOfYear");o(bW,"parseHour24");o(xke,"parseMinutes");o(bke,"parseSeconds");o(wke,"parseMilliseconds");o(Tke,"parseMicroseconds");o(kke,"parseLiteralPercent");o(Eke,"parseUnixTimestamp");o(Ske,"parseUnixTimestampSeconds");o(wW,"formatDayOfMonth");o(Cke,"formatHour24");o(Ake,"formatHour12");o(_ke,"formatDayOfYear");o(CW,"formatMilliseconds");o(Lke,"formatMicroseconds");o(Dke,"formatMonthNumber");o(Nke,"formatMinutes");o(Rke,"formatSeconds");o(Mke,"formatWeekdayNumberMonday");o(Ike,"formatWeekNumberSunday");o(AW,"dISO");o(Oke,"formatWeekNumberISO");o(Pke,"formatWeekdayNumberSunday");o(Bke,"formatWeekNumberMonday");o(Fke,"formatYear");o(zke,"formatYearISO");o(Gke,"formatFullYear");o($ke,"formatFullYearISO");o(Vke,"formatZone");o(TW,"formatUTCDayOfMonth");o(Uke,"formatUTCHour24");o(Hke,"formatUTCHour12");o(Wke,"formatUTCDayOfYear");o(_W,"formatUTCMilliseconds");o(Yke,"formatUTCMicroseconds");o(qke,"formatUTCMonthNumber");o(Xke,"formatUTCMinutes");o(jke,"formatUTCSeconds");o(Kke,"formatUTCWeekdayNumberMonday");o(Qke,"formatUTCWeekNumberSunday");o(LW,"UTCdISO");o(Zke,"formatUTCWeekNumberISO");o(Jke,"formatUTCWeekdayNumberSunday");o(eEe,"formatUTCWeekNumberMonday");o(tEe,"formatUTCYear");o(rEe,"formatUTCYearISO");o(nEe,"formatUTCFullYear");o(iEe,"formatUTCFullYearISO");o(aEe,"formatUTCZone");o(kW,"formatLiteralPercent");o(EW,"formatUnixTimestamp");o(SW,"formatUnixTimestampSeconds")});function j8(t){return Rp=X8(t),dd=Rp.format,NW=Rp.parse,RW=Rp.utcFormat,MW=Rp.utcParse,Rp}var Rp,dd,NW,RW,MW,IW=M(()=>{"use strict";DW();j8({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});o(j8,"defaultLocale")});var K8=M(()=>{"use strict";IW()});function sEe(t){return new Date(t)}function oEe(t){return t instanceof Date?+t:+new Date(+t)}function OW(t,e,r,n,i,a,s,l,u,h){var f=My(),d=f.invert,p=f.domain,m=h(".%L"),g=h(":%S"),y=h("%I:%M"),v=h("%I %p"),x=h("%a %d"),b=h("%b %d"),w=h("%B"),_=h("%Y");function T(E){return(u(E){"use strict";S3();K8();N8();Ry();nW();o(sEe,"date");o(oEe,"number");o(OW,"calendar");o(C3,"time")});var BW=M(()=>{"use strict";QH();rW();A8();PW()});function Q8(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{"use strict";o(Q8,"default")});var Z8,zW=M(()=>{"use strict";FW();Z8=Q8("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")});var GW=M(()=>{"use strict";zW()});function Pn(t){return o(function(){return t},"constant")}var A3=M(()=>{"use strict";o(Pn,"default")});function VW(t){return t>1?0:t<-1?Mp:Math.acos(t)}function e_(t){return t>=1?zy:t<=-1?-zy:Math.asin(t)}var J8,la,Eh,$W,_3,kl,pd,Zi,Mp,zy,Ip,L3=M(()=>{"use strict";J8=Math.abs,la=Math.atan2,Eh=Math.cos,$W=Math.max,_3=Math.min,kl=Math.sin,pd=Math.sqrt,Zi=1e-12,Mp=Math.PI,zy=Mp/2,Ip=2*Mp;o(VW,"acos");o(e_,"asin")});function D3(t){let e=3;return t.digits=function(r){if(!arguments.length)return e;if(r==null)e=null;else{let n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);e=n}return t},()=>new sd(e)}var t_=M(()=>{"use strict";d8();o(D3,"withPath")});function lEe(t){return t.innerRadius}function cEe(t){return t.outerRadius}function uEe(t){return t.startAngle}function hEe(t){return t.endAngle}function fEe(t){return t&&t.padAngle}function dEe(t,e,r,n,i,a,s,l){var u=r-t,h=n-e,f=s-i,d=l-a,p=d*u-f*h;if(!(p*pS*S+O*O&&(C=I,A=D),{cx:C,cy:A,x01:-f,y01:-d,x11:C*(i/T-1),y11:A*(i/T-1)}}function El(){var t=lEe,e=cEe,r=Pn(0),n=null,i=uEe,a=hEe,s=fEe,l=null,u=D3(h);function h(){var f,d,p=+t.apply(this,arguments),m=+e.apply(this,arguments),g=i.apply(this,arguments)-zy,y=a.apply(this,arguments)-zy,v=J8(y-g),x=y>g;if(l||(l=f=u()),mZi))l.moveTo(0,0);else if(v>Ip-Zi)l.moveTo(m*Eh(g),m*kl(g)),l.arc(0,0,m,g,y,!x),p>Zi&&(l.moveTo(p*Eh(y),p*kl(y)),l.arc(0,0,p,y,g,x));else{var b=g,w=y,_=g,T=y,E=v,L=v,C=s.apply(this,arguments)/2,A=C>Zi&&(n?+n.apply(this,arguments):pd(p*p+m*m)),I=_3(J8(m-p)/2,+r.apply(this,arguments)),D=I,k=I,R,S;if(A>Zi){var O=e_(A/p*kl(C)),N=e_(A/m*kl(C));(E-=O*2)>Zi?(O*=x?1:-1,_+=O,T-=O):(E=0,_=T=(g+y)/2),(L-=N*2)>Zi?(N*=x?1:-1,b+=N,w-=N):(L=0,b=w=(g+y)/2)}var P=m*Eh(b),F=m*kl(b),B=p*Eh(T),$=p*kl(T);if(I>Zi){var z=m*Eh(w),W=m*kl(w),j=p*Eh(_),K=p*kl(_),ie;if(vZi?k>Zi?(R=N3(j,K,P,F,m,k,x),S=N3(z,W,B,$,m,k,x),l.moveTo(R.cx+R.x01,R.cy+R.y01),kZi)||!(E>Zi)?l.lineTo(B,$):D>Zi?(R=N3(B,$,z,W,p,-D,x),S=N3(P,F,j,K,p,-D,x),l.lineTo(R.cx+R.x01,R.cy+R.y01),D{"use strict";A3();L3();t_();o(lEe,"arcInnerRadius");o(cEe,"arcOuterRadius");o(uEe,"arcStartAngle");o(hEe,"arcEndAngle");o(fEe,"arcPadAngle");o(dEe,"intersect");o(N3,"cornerTangents");o(El,"default")});function Gy(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}var O2t,r_=M(()=>{"use strict";O2t=Array.prototype.slice;o(Gy,"default")});function HW(t){this._context=t}function Op(t){return new HW(t)}var n_=M(()=>{"use strict";o(HW,"Linear");HW.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}},"point")};o(Op,"default")});function WW(t){return t[0]}function YW(t){return t[1]}var qW=M(()=>{"use strict";o(WW,"x");o(YW,"y")});function Ka(t,e){var r=Pn(!0),n=null,i=Op,a=null,s=D3(l);t=typeof t=="function"?t:t===void 0?WW:Pn(t),e=typeof e=="function"?e:e===void 0?YW:Pn(e);function l(u){var h,f=(u=Gy(u)).length,d,p=!1,m;for(n==null&&(a=i(m=s())),h=0;h<=f;++h)!(h{"use strict";r_();A3();n_();t_();qW();o(Ka,"default")});function i_(t,e){return et?1:e>=t?0:NaN}var jW=M(()=>{"use strict";o(i_,"default")});function a_(t){return t}var KW=M(()=>{"use strict";o(a_,"default")});function R3(){var t=a_,e=i_,r=null,n=Pn(0),i=Pn(Ip),a=Pn(0);function s(l){var u,h=(l=Gy(l)).length,f,d,p=0,m=new Array(h),g=new Array(h),y=+n.apply(this,arguments),v=Math.min(Ip,Math.max(-Ip,i.apply(this,arguments)-y)),x,b=Math.min(Math.abs(v)/h,a.apply(this,arguments)),w=b*(v<0?-1:1),_;for(u=0;u0&&(p+=_);for(e!=null?m.sort(function(T,E){return e(g[T],g[E])}):r!=null&&m.sort(function(T,E){return r(l[T],l[E])}),u=0,d=p?(v-h*w)/p:0;u0?_*d:0)+w,g[f]={data:l[f],index:u,value:_,startAngle:y,endAngle:x,padAngle:b};return g}return o(s,"pie"),s.value=function(l){return arguments.length?(t=typeof l=="function"?l:Pn(+l),s):t},s.sortValues=function(l){return arguments.length?(e=l,r=null,s):e},s.sort=function(l){return arguments.length?(r=l,e=null,s):r},s.startAngle=function(l){return arguments.length?(n=typeof l=="function"?l:Pn(+l),s):n},s.endAngle=function(l){return arguments.length?(i=typeof l=="function"?l:Pn(+l),s):i},s.padAngle=function(l){return arguments.length?(a=typeof l=="function"?l:Pn(+l),s):a},s}var QW=M(()=>{"use strict";r_();A3();jW();KW();L3();o(R3,"default")});function s_(t){return new M3(t,!0)}function o_(t){return new M3(t,!1)}var M3,ZW=M(()=>{"use strict";M3=class{static{o(this,"Bump")}constructor(e,r){this._context=e,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,r){switch(e=+e,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,r,e,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,e,this._y0,e,r);break}}this._x0=e,this._y0=r}};o(s_,"bumpX");o(o_,"bumpY")});function Ks(){}var $y=M(()=>{"use strict";o(Ks,"default")});function Pp(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function Vy(t){this._context=t}function Do(t){return new Vy(t)}var Uy=M(()=>{"use strict";o(Pp,"point");o(Vy,"Basis");Vy.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 3:Pp(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(Do,"default")});function JW(t){this._context=t}function I3(t){return new JW(t)}var eY=M(()=>{"use strict";$y();Uy();o(JW,"BasisClosed");JW.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(I3,"default")});function tY(t){this._context=t}function O3(t){return new tY(t)}var rY=M(()=>{"use strict";Uy();o(tY,"BasisOpen");tY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Pp(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")};o(O3,"default")});function nY(t,e){this._basis=new Vy(t),this._beta=e}var l_,iY=M(()=>{"use strict";Uy();o(nY,"Bundle");nY.prototype={lineStart:o(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n=t[0],i=e[0],a=t[r]-n,s=e[r]-i,l=-1,u;++l<=r;)u=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(n+u*a),this._beta*e[l]+(1-this._beta)*(i+u*s));this._x=this._y=null,this._basis.lineEnd()},"lineEnd"),point:o(function(t,e){this._x.push(+t),this._y.push(+e)},"point")};l_=o(function t(e){function r(n){return e===1?new Vy(n):new nY(n,e)}return o(r,"bundle"),r.beta=function(n){return t(+n)},r},"custom")(.85)});function Bp(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function P3(t,e){this._context=t,this._k=(1-e)/6}var c_,Hy=M(()=>{"use strict";o(Bp,"point");o(P3,"Cardinal");P3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Bp(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};c_=o(function t(e){function r(n){return new P3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function B3(t,e){this._context=t,this._k=(1-e)/6}var u_,h_=M(()=>{"use strict";$y();Hy();o(B3,"CardinalClosed");B3.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};u_=o(function t(e){function r(n){return new B3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function F3(t,e){this._context=t,this._k=(1-e)/6}var f_,d_=M(()=>{"use strict";Hy();o(F3,"CardinalOpen");F3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bp(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};f_=o(function t(e){function r(n){return new F3(n,e)}return o(r,"cardinal"),r.tension=function(n){return t(+n)},r},"custom")(0)});function Wy(t,e,r){var n=t._x1,i=t._y1,a=t._x2,s=t._y2;if(t._l01_a>Zi){var l=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,u=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*l-t._x0*t._l12_2a+t._x2*t._l01_2a)/u,i=(i*l-t._y0*t._l12_2a+t._y2*t._l01_2a)/u}if(t._l23_a>Zi){var h=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*h+t._x1*t._l23_2a-e*t._l12_2a)/f,s=(s*h+t._y1*t._l23_2a-r*t._l12_2a)/f}t._context.bezierCurveTo(n,i,a,s,t._x2,t._y2)}function aY(t,e){this._context=t,this._alpha=e}var p_,z3=M(()=>{"use strict";L3();Hy();o(Wy,"point");o(aY,"CatmullRom");aY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};p_=o(function t(e){function r(n){return e?new aY(n,e):new P3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function sY(t,e){this._context=t,this._alpha=e}var m_,oY=M(()=>{"use strict";h_();$y();z3();o(sY,"CatmullRomClosed");sY.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};m_=o(function t(e){function r(n){return e?new sY(n,e):new B3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function lY(t,e){this._context=t,this._alpha=e}var g_,cY=M(()=>{"use strict";d_();z3();o(lY,"CatmullRomOpen");lY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},"lineStart"),lineEnd:o(function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Wy(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")};g_=o(function t(e){function r(n){return e?new lY(n,e):new F3(n,0)}return o(r,"catmullRom"),r.alpha=function(n){return t(+n)},r},"custom")(.5)});function uY(t){this._context=t}function G3(t){return new uY(t)}var hY=M(()=>{"use strict";$y();o(uY,"LinearClosed");uY.prototype={areaStart:Ks,areaEnd:Ks,lineStart:o(function(){this._point=0},"lineStart"),lineEnd:o(function(){this._point&&this._context.closePath()},"lineEnd"),point:o(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")};o(G3,"default")});function fY(t){return t<0?-1:1}function dY(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),s=(r-t._y1)/(i||n<0&&-0),l=(a*i+s*n)/(n+i);return(fY(a)+fY(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(l))||0}function pY(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function y_(t,e,r){var n=t._x0,i=t._y0,a=t._x1,s=t._y1,l=(a-n)/3;t._context.bezierCurveTo(n+l,i+l*e,a-l,s-l*r,a,s)}function $3(t){this._context=t}function mY(t){this._context=new gY(t)}function gY(t){this._context=t}function v_(t){return new $3(t)}function x_(t){return new mY(t)}var yY=M(()=>{"use strict";o(fY,"sign");o(dY,"slope3");o(pY,"slope2");o(y_,"point");o($3,"MonotoneX");$3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:o(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:y_(this,this._t0,pY(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:o(function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,y_(this,pY(this,r=dY(this,t,e)),r);break;default:y_(this,this._t0,r=dY(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")};o(mY,"MonotoneY");(mY.prototype=Object.create($3.prototype)).point=function(t,e){$3.prototype.point.call(this,e,t)};o(gY,"ReflectContext");gY.prototype={moveTo:o(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:o(function(){this._context.closePath()},"closePath"),lineTo:o(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")};o(v_,"monotoneX");o(x_,"monotoneY")});function xY(t){this._context=t}function vY(t){var e,r=t.length-1,n,i=new Array(r),a=new Array(r),s=new Array(r);for(i[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(s[e]-i[e+1])/a[e];for(a[r-1]=(t[r]+i[r-1])/2,e=0;e{"use strict";o(xY,"Natural");xY.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:o(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=vY(t),i=vY(e),a=0,s=1;s{"use strict";o(U3,"Step");U3.prototype={areaStart:o(function(){this._line=0},"areaStart"),areaEnd:o(function(){this._line=NaN},"areaEnd"),lineStart:o(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:o(function(){0=0&&(this._t=1-this._t,this._line=1-this._line)},"lineEnd"),point:o(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e},"point")};o(H3,"default");o(b_,"stepBefore");o(w_,"stepAfter")});var TY=M(()=>{"use strict";UW();XW();QW();eY();rY();Uy();ZW();iY();h_();d_();Hy();oY();cY();z3();hY();n_();yY();bY();wY()});var kY=M(()=>{"use strict"});var EY=M(()=>{"use strict"});function Sh(t,e,r){this.k=t,this.x=e,this.y=r}function k_(t){for(;!t.__zoom;)if(!(t=t.parentNode))return T_;return t.__zoom}var T_,E_=M(()=>{"use strict";o(Sh,"Transform");Sh.prototype={constructor:Sh,scale:o(function(t){return t===1?this:new Sh(this.k*t,this.x,this.y)},"scale"),translate:o(function(t,e){return t===0&e===0?this:new Sh(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:o(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:o(function(t){return t*this.k+this.x},"applyX"),applyY:o(function(t){return t*this.k+this.y},"applyY"),invert:o(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:o(function(t){return(t-this.x)/this.k},"invertX"),invertY:o(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:o(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:o(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:o(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")};T_=new Sh(1,0,0);k_.prototype=Sh.prototype;o(k_,"transform")});var SY=M(()=>{"use strict"});var CY=M(()=>{"use strict";s3();kY();EY();E_();SY()});var AY=M(()=>{"use strict";CY();E_()});var mr=M(()=>{"use strict";ph();iV();kH();AH();kp();_H();LH();b7();jV();DH();l8();NH();MH();S8();qH();XH();Cp();d8();jH();RH();KH();BW();GW();gl();TY();S3();K8();e3();s3();AY()});var _Y=Ni(Ji=>{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.BLANK_URL=Ji.relativeFirstCharacters=Ji.whitespaceEscapeCharsRegex=Ji.urlSchemeRegex=Ji.ctrlCharactersRegex=Ji.htmlCtrlEntityRegex=Ji.htmlEntitiesRegex=Ji.invalidProtocolRegex=void 0;Ji.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;Ji.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;Ji.htmlCtrlEntityRegex=/&(newline|tab);/gi;Ji.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;Ji.urlSchemeRegex=/^.+(:|:)/gim;Ji.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;Ji.relativeFirstCharacters=[".","/"];Ji.BLANK_URL="about:blank"});var Fp=Ni(W3=>{"use strict";Object.defineProperty(W3,"__esModule",{value:!0});W3.sanitizeUrl=void 0;var Sa=_Y();function pEe(t){return Sa.relativeFirstCharacters.indexOf(t[0])>-1}o(pEe,"isRelativeUrlWithoutProtocol");function mEe(t){var e=t.replace(Sa.ctrlCharactersRegex,"");return e.replace(Sa.htmlEntitiesRegex,function(r,n){return String.fromCharCode(n)})}o(mEe,"decodeHtmlCharacters");function gEe(t){return URL.canParse(t)}o(gEe,"isValidUrl");function LY(t){try{return decodeURIComponent(t)}catch{return t}}o(LY,"decodeURI");function yEe(t){if(!t)return Sa.BLANK_URL;var e,r=LY(t.trim());do r=mEe(r).replace(Sa.htmlCtrlEntityRegex,"").replace(Sa.ctrlCharactersRegex,"").replace(Sa.whitespaceEscapeCharsRegex,"").trim(),r=LY(r),e=r.match(Sa.ctrlCharactersRegex)||r.match(Sa.htmlEntitiesRegex)||r.match(Sa.htmlCtrlEntityRegex)||r.match(Sa.whitespaceEscapeCharsRegex);while(e&&e.length>0);var n=r;if(!n)return Sa.BLANK_URL;if(pEe(n))return n;var i=n.trimStart(),a=i.match(Sa.urlSchemeRegex);if(!a)return n;var s=a[0].toLowerCase().trim();if(Sa.invalidProtocolRegex.test(s))return Sa.BLANK_URL;var l=i.replace(/\\/g,"/");if(s==="mailto:"||s.includes("://"))return l;if(s==="http:"||s==="https:"){if(!gEe(l))return Sa.BLANK_URL;var u=new URL(l);return u.protocol=u.protocol.toLowerCase(),u.hostname=u.hostname.toLowerCase(),u.toString()}return l}o(yEe,"sanitizeUrl");W3.sanitizeUrl=yEe});var S_,md,Y3,DY,NY,RY,Sl,Yy,qy=M(()=>{"use strict";S_=ka(Fp(),1);fr();md=o((t,e)=>{let r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),e.attrs!==void 0)for(let n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),Y3=o((t,e)=>{let r={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"};md(t,r).lower()},"drawBackgroundRect"),DY=o((t,e)=>{let r=e.text.replace(jf," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),NY=o((t,e,r,n)=>{let i=t.append("image");i.attr("x",e),i.attr("y",r);let a=(0,S_.sanitizeUrl)(n);i.attr("xlink:href",a)},"drawImage"),RY=o((t,e,r,n)=>{let i=t.append("use");i.attr("x",e),i.attr("y",r);let a=(0,S_.sanitizeUrl)(n);i.attr("xlink:href",`#${a}`)},"drawEmbeddedImage"),Sl=o(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),Yy=o(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")});var MY,C_,IY,vEe,xEe,bEe,wEe,TEe,kEe,EEe,SEe,CEe,AEe,_Ee,LEe,vu,Cl,OY=M(()=>{"use strict";fr();qy();MY=ka(Fp(),1),C_=o(function(t,e){return md(t,e)},"drawRect"),IY=o(function(t,e,r,n,i,a){let s=t.append("image");s.attr("width",e),s.attr("height",r),s.attr("x",n),s.attr("y",i);let l=a.startsWith("data:image/png;base64")?a:(0,MY.sanitizeUrl)(a);s.attr("xlink:href",l)},"drawImage"),vEe=o((t,e,r)=>{let n=t.append("g"),i=0;for(let a of e){let s=a.textColor?a.textColor:"#444444",l=a.lineColor?a.lineColor:"#444444",u=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,f="";if(i===0){let p=n.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",l),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)"),i=-1}else{let p=n.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+f+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+f+"#arrowend)")}let d=r.messageFont();vu(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:s},d),a.techn&&a.techn.text!==""&&(d=r.messageFont(),vu(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+u,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:s,"font-style":"italic"},d))}},"drawRels"),xEe=o(function(t,e,r){let n=t.append("g"),i=e.bgColor?e.bgColor:"none",a=e.borderColor?e.borderColor:"#444444",s=e.fontColor?e.fontColor:"black",l={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(l={"stroke-width":1});let u={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:l};C_(n,u);let h=r.boundaryFont();h.fontWeight="bold",h.fontSize=h.fontSize+2,h.fontColor=s,vu(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},h),e.type&&e.type.text!==""&&(h=r.boundaryFont(),h.fontColor=s,vu(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},h)),e.descr&&e.descr.text!==""&&(h=r.boundaryFont(),h.fontSize=h.fontSize-2,h.fontColor=s,vu(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},h))},"drawBoundary"),bEe=o(function(t,e,r){let n=e.bgColor?e.bgColor:r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor?e.borderColor:r[e.typeC4Shape.text+"_border_color"],a=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let l=t.append("g");l.attr("class","person-man");let u=Sl();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":u.x=e.x,u.y=e.y,u.fill=n,u.width=e.width,u.height=e.height,u.stroke=i,u.rx=2.5,u.ry=2.5,u.attrs={"stroke-width":.5},C_(l,u);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":l.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),l.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2));break}let h=LEe(r,e.typeC4Shape.text);switch(l.append("text").attr("fill",a).attr("font-family",h.fontFamily).attr("font-size",h.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":IY(l,48,48,e.x+e.width/2-24,e.y+e.image.Y,s);break}let f=r[e.typeC4Shape.text+"Font"]();return f.fontWeight="bold",f.fontSize=f.fontSize+2,f.fontColor=a,vu(r)(e.label.text,l,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},f),f=r[e.typeC4Shape.text+"Font"](),f.fontColor=a,e.techn&&e.techn?.text!==""?vu(r)(e.techn.text,l,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},f):e.type&&e.type.text!==""&&vu(r)(e.type.text,l,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},f),e.descr&&e.descr.text!==""&&(f=r.personFont(),f.fontColor=a,vu(r)(e.descr.text,l,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},f)),e.height},"drawC4Shape"),wEe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),TEe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),kEe=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),EEe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),SEe=o(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),CEe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),AEe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),_Ee=o(function(t){let r=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);r.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),r.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),LEe=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),vu=function(){function t(i,a,s,l,u,h,f){let d=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("text-anchor","middle").text(i);n(d,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d){let{fontSize:p,fontFamily:m,fontWeight:g}=d,y=i.split(je.lineBreakRegex);for(let v=0;v{"use strict";DEe=typeof global=="object"&&global&&global.Object===Object&&global,X3=DEe});var NEe,REe,ai,No=M(()=>{"use strict";A_();NEe=typeof self=="object"&&self&&self.Object===Object&&self,REe=X3||NEe||Function("return this")(),ai=REe});var MEe,ea,gd=M(()=>{"use strict";No();MEe=ai.Symbol,ea=MEe});function PEe(t){var e=IEe.call(t,Xy),r=t[Xy];try{t[Xy]=void 0;var n=!0}catch{}var i=OEe.call(t);return n&&(e?t[Xy]=r:delete t[Xy]),i}var PY,IEe,OEe,Xy,BY,FY=M(()=>{"use strict";gd();PY=Object.prototype,IEe=PY.hasOwnProperty,OEe=PY.toString,Xy=ea?ea.toStringTag:void 0;o(PEe,"getRawTag");BY=PEe});function zEe(t){return FEe.call(t)}var BEe,FEe,zY,GY=M(()=>{"use strict";BEe=Object.prototype,FEe=BEe.toString;o(zEe,"objectToString");zY=zEe});function VEe(t){return t==null?t===void 0?$Ee:GEe:$Y&&$Y in Object(t)?BY(t):zY(t)}var GEe,$Ee,$Y,ca,xu=M(()=>{"use strict";gd();FY();GY();GEe="[object Null]",$Ee="[object Undefined]",$Y=ea?ea.toStringTag:void 0;o(VEe,"baseGetTag");ca=VEe});function UEe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var yn,Qs=M(()=>{"use strict";o(UEe,"isObject");yn=UEe});function XEe(t){if(!yn(t))return!1;var e=ca(t);return e==WEe||e==YEe||e==HEe||e==qEe}var HEe,WEe,YEe,qEe,Ei,jy=M(()=>{"use strict";xu();Qs();HEe="[object AsyncFunction]",WEe="[object Function]",YEe="[object GeneratorFunction]",qEe="[object Proxy]";o(XEe,"isFunction");Ei=XEe});var jEe,j3,VY=M(()=>{"use strict";No();jEe=ai["__core-js_shared__"],j3=jEe});function KEe(t){return!!UY&&UY in t}var UY,HY,WY=M(()=>{"use strict";VY();UY=function(){var t=/[^.]+$/.exec(j3&&j3.keys&&j3.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();o(KEe,"isMasked");HY=KEe});function JEe(t){if(t!=null){try{return ZEe.call(t)}catch{}try{return t+""}catch{}}return""}var QEe,ZEe,bu,__=M(()=>{"use strict";QEe=Function.prototype,ZEe=QEe.toString;o(JEe,"toSource");bu=JEe});function o6e(t){if(!yn(t)||HY(t))return!1;var e=Ei(t)?s6e:t6e;return e.test(bu(t))}var e6e,t6e,r6e,n6e,i6e,a6e,s6e,YY,qY=M(()=>{"use strict";jy();WY();Qs();__();e6e=/[\\^$.*+?()[\]{}|]/g,t6e=/^\[object .+?Constructor\]$/,r6e=Function.prototype,n6e=Object.prototype,i6e=r6e.toString,a6e=n6e.hasOwnProperty,s6e=RegExp("^"+i6e.call(a6e).replace(e6e,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");o(o6e,"baseIsNative");YY=o6e});function l6e(t,e){return t?.[e]}var XY,jY=M(()=>{"use strict";o(l6e,"getValue");XY=l6e});function c6e(t,e){var r=XY(t,e);return YY(r)?r:void 0}var vs,Ch=M(()=>{"use strict";qY();jY();o(c6e,"getNative");vs=c6e});var u6e,wu,Ky=M(()=>{"use strict";Ch();u6e=vs(Object,"create"),wu=u6e});function h6e(){this.__data__=wu?wu(null):{},this.size=0}var KY,QY=M(()=>{"use strict";Ky();o(h6e,"hashClear");KY=h6e});function f6e(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var ZY,JY=M(()=>{"use strict";o(f6e,"hashDelete");ZY=f6e});function g6e(t){var e=this.__data__;if(wu){var r=e[t];return r===d6e?void 0:r}return m6e.call(e,t)?e[t]:void 0}var d6e,p6e,m6e,eq,tq=M(()=>{"use strict";Ky();d6e="__lodash_hash_undefined__",p6e=Object.prototype,m6e=p6e.hasOwnProperty;o(g6e,"hashGet");eq=g6e});function x6e(t){var e=this.__data__;return wu?e[t]!==void 0:v6e.call(e,t)}var y6e,v6e,rq,nq=M(()=>{"use strict";Ky();y6e=Object.prototype,v6e=y6e.hasOwnProperty;o(x6e,"hashHas");rq=x6e});function w6e(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=wu&&e===void 0?b6e:e,this}var b6e,iq,aq=M(()=>{"use strict";Ky();b6e="__lodash_hash_undefined__";o(w6e,"hashSet");iq=w6e});function zp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";QY();JY();tq();nq();aq();o(zp,"Hash");zp.prototype.clear=KY;zp.prototype.delete=ZY;zp.prototype.get=eq;zp.prototype.has=rq;zp.prototype.set=iq;L_=zp});function T6e(){this.__data__=[],this.size=0}var oq,lq=M(()=>{"use strict";o(T6e,"listCacheClear");oq=T6e});function k6e(t,e){return t===e||t!==t&&e!==e}var Ro,yd=M(()=>{"use strict";o(k6e,"eq");Ro=k6e});function E6e(t,e){for(var r=t.length;r--;)if(Ro(t[r][0],e))return r;return-1}var Ah,Qy=M(()=>{"use strict";yd();o(E6e,"assocIndexOf");Ah=E6e});function A6e(t){var e=this.__data__,r=Ah(e,t);if(r<0)return!1;var n=e.length-1;return r==n?e.pop():C6e.call(e,r,1),--this.size,!0}var S6e,C6e,cq,uq=M(()=>{"use strict";Qy();S6e=Array.prototype,C6e=S6e.splice;o(A6e,"listCacheDelete");cq=A6e});function _6e(t){var e=this.__data__,r=Ah(e,t);return r<0?void 0:e[r][1]}var hq,fq=M(()=>{"use strict";Qy();o(_6e,"listCacheGet");hq=_6e});function L6e(t){return Ah(this.__data__,t)>-1}var dq,pq=M(()=>{"use strict";Qy();o(L6e,"listCacheHas");dq=L6e});function D6e(t,e){var r=this.__data__,n=Ah(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var mq,gq=M(()=>{"use strict";Qy();o(D6e,"listCacheSet");mq=D6e});function Gp(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";lq();uq();fq();pq();gq();o(Gp,"ListCache");Gp.prototype.clear=oq;Gp.prototype.delete=cq;Gp.prototype.get=hq;Gp.prototype.has=dq;Gp.prototype.set=mq;_h=Gp});var N6e,Lh,K3=M(()=>{"use strict";Ch();No();N6e=vs(ai,"Map"),Lh=N6e});function R6e(){this.size=0,this.__data__={hash:new L_,map:new(Lh||_h),string:new L_}}var yq,vq=M(()=>{"use strict";sq();Zy();K3();o(R6e,"mapCacheClear");yq=R6e});function M6e(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var xq,bq=M(()=>{"use strict";o(M6e,"isKeyable");xq=M6e});function I6e(t,e){var r=t.__data__;return xq(e)?r[typeof e=="string"?"string":"hash"]:r.map}var Dh,Jy=M(()=>{"use strict";bq();o(I6e,"getMapData");Dh=I6e});function O6e(t){var e=Dh(this,t).delete(t);return this.size-=e?1:0,e}var wq,Tq=M(()=>{"use strict";Jy();o(O6e,"mapCacheDelete");wq=O6e});function P6e(t){return Dh(this,t).get(t)}var kq,Eq=M(()=>{"use strict";Jy();o(P6e,"mapCacheGet");kq=P6e});function B6e(t){return Dh(this,t).has(t)}var Sq,Cq=M(()=>{"use strict";Jy();o(B6e,"mapCacheHas");Sq=B6e});function F6e(t,e){var r=Dh(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var Aq,_q=M(()=>{"use strict";Jy();o(F6e,"mapCacheSet");Aq=F6e});function $p(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{"use strict";vq();Tq();Eq();Cq();_q();o($p,"MapCache");$p.prototype.clear=yq;$p.prototype.delete=wq;$p.prototype.get=kq;$p.prototype.has=Sq;$p.prototype.set=Aq;vd=$p});function D_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(z6e);var r=o(function(){var n=arguments,i=e?e.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var s=t.apply(this,n);return r.cache=a.set(i,s)||a,s},"memoized");return r.cache=new(D_.Cache||vd),r}var z6e,Vp,N_=M(()=>{"use strict";Q3();z6e="Expected a function";o(D_,"memoize");D_.Cache=vd;Vp=D_});function G6e(){this.__data__=new _h,this.size=0}var Lq,Dq=M(()=>{"use strict";Zy();o(G6e,"stackClear");Lq=G6e});function $6e(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}var Nq,Rq=M(()=>{"use strict";o($6e,"stackDelete");Nq=$6e});function V6e(t){return this.__data__.get(t)}var Mq,Iq=M(()=>{"use strict";o(V6e,"stackGet");Mq=V6e});function U6e(t){return this.__data__.has(t)}var Oq,Pq=M(()=>{"use strict";o(U6e,"stackHas");Oq=U6e});function W6e(t,e){var r=this.__data__;if(r instanceof _h){var n=r.__data__;if(!Lh||n.length{"use strict";Zy();K3();Q3();H6e=200;o(W6e,"stackSet");Bq=W6e});function Up(t){var e=this.__data__=new _h(t);this.size=e.size}var uc,ev=M(()=>{"use strict";Zy();Dq();Rq();Iq();Pq();Fq();o(Up,"Stack");Up.prototype.clear=Lq;Up.prototype.delete=Nq;Up.prototype.get=Mq;Up.prototype.has=Oq;Up.prototype.set=Bq;uc=Up});var Y6e,Hp,R_=M(()=>{"use strict";Ch();Y6e=function(){try{var t=vs(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Hp=Y6e});function q6e(t,e,r){e=="__proto__"&&Hp?Hp(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var hc,Wp=M(()=>{"use strict";R_();o(q6e,"baseAssignValue");hc=q6e});function X6e(t,e,r){(r!==void 0&&!Ro(t[e],r)||r===void 0&&!(e in t))&&hc(t,e,r)}var tv,M_=M(()=>{"use strict";Wp();yd();o(X6e,"assignMergeValue");tv=X6e});function j6e(t){return function(e,r,n){for(var i=-1,a=Object(e),s=n(e),l=s.length;l--;){var u=s[t?l:++i];if(r(a[u],u,a)===!1)break}return e}}var zq,Gq=M(()=>{"use strict";o(j6e,"createBaseFor");zq=j6e});var K6e,Yp,Z3=M(()=>{"use strict";Gq();K6e=zq(),Yp=K6e});function Z6e(t,e){if(e)return t.slice();var r=t.length,n=Uq?Uq(r):new t.constructor(r);return t.copy(n),n}var Hq,$q,Q6e,Vq,Uq,J3,I_=M(()=>{"use strict";No();Hq=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$q=Hq&&typeof module=="object"&&module&&!module.nodeType&&module,Q6e=$q&&$q.exports===Hq,Vq=Q6e?ai.Buffer:void 0,Uq=Vq?Vq.allocUnsafe:void 0;o(Z6e,"cloneBuffer");J3=Z6e});var J6e,qp,O_=M(()=>{"use strict";No();J6e=ai.Uint8Array,qp=J6e});function eSe(t){var e=new t.constructor(t.byteLength);return new qp(e).set(new qp(t)),e}var Xp,e5=M(()=>{"use strict";O_();o(eSe,"cloneArrayBuffer");Xp=eSe});function tSe(t,e){var r=e?Xp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}var t5,P_=M(()=>{"use strict";e5();o(tSe,"cloneTypedArray");t5=tSe});function rSe(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r{"use strict";o(rSe,"copyArray");r5=rSe});var Wq,nSe,Yq,qq=M(()=>{"use strict";Qs();Wq=Object.create,nSe=function(){function t(){}return o(t,"object"),function(e){if(!yn(e))return{};if(Wq)return Wq(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}(),Yq=nSe});function iSe(t,e){return function(r){return t(e(r))}}var n5,F_=M(()=>{"use strict";o(iSe,"overArg");n5=iSe});var aSe,jp,i5=M(()=>{"use strict";F_();aSe=n5(Object.getPrototypeOf,Object),jp=aSe});function oSe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||sSe;return t===r}var sSe,fc,Kp=M(()=>{"use strict";sSe=Object.prototype;o(oSe,"isPrototype");fc=oSe});function lSe(t){return typeof t.constructor=="function"&&!fc(t)?Yq(jp(t)):{}}var a5,z_=M(()=>{"use strict";qq();i5();Kp();o(lSe,"initCloneObject");a5=lSe});function cSe(t){return t!=null&&typeof t=="object"}var Zn,Mo=M(()=>{"use strict";o(cSe,"isObjectLike");Zn=cSe});function hSe(t){return Zn(t)&&ca(t)==uSe}var uSe,G_,Xq=M(()=>{"use strict";xu();Mo();uSe="[object Arguments]";o(hSe,"baseIsArguments");G_=hSe});var jq,fSe,dSe,pSe,Al,Qp=M(()=>{"use strict";Xq();Mo();jq=Object.prototype,fSe=jq.hasOwnProperty,dSe=jq.propertyIsEnumerable,pSe=G_(function(){return arguments}())?G_:function(t){return Zn(t)&&fSe.call(t,"callee")&&!dSe.call(t,"callee")},Al=pSe});var mSe,Mt,Vn=M(()=>{"use strict";mSe=Array.isArray,Mt=mSe});function ySe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=gSe}var gSe,Zp,s5=M(()=>{"use strict";gSe=9007199254740991;o(ySe,"isLength");Zp=ySe});function vSe(t){return t!=null&&Zp(t.length)&&!Ei(t)}var si,Io=M(()=>{"use strict";jy();s5();o(vSe,"isArrayLike");si=vSe});function xSe(t){return Zn(t)&&si(t)}var xd,o5=M(()=>{"use strict";Io();Mo();o(xSe,"isArrayLikeObject");xd=xSe});function bSe(){return!1}var Kq,Qq=M(()=>{"use strict";o(bSe,"stubFalse");Kq=bSe});var eX,Zq,wSe,Jq,TSe,kSe,_l,Jp=M(()=>{"use strict";No();Qq();eX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Zq=eX&&typeof module=="object"&&module&&!module.nodeType&&module,wSe=Zq&&Zq.exports===eX,Jq=wSe?ai.Buffer:void 0,TSe=Jq?Jq.isBuffer:void 0,kSe=TSe||Kq,_l=kSe});function LSe(t){if(!Zn(t)||ca(t)!=ESe)return!1;var e=jp(t);if(e===null)return!0;var r=ASe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&tX.call(r)==_Se}var ESe,SSe,CSe,tX,ASe,_Se,rX,nX=M(()=>{"use strict";xu();i5();Mo();ESe="[object Object]",SSe=Function.prototype,CSe=Object.prototype,tX=SSe.toString,ASe=CSe.hasOwnProperty,_Se=tX.call(Object);o(LSe,"isPlainObject");rX=LSe});function eCe(t){return Zn(t)&&Zp(t.length)&&!!Bn[ca(t)]}var DSe,NSe,RSe,MSe,ISe,OSe,PSe,BSe,FSe,zSe,GSe,$Se,VSe,USe,HSe,WSe,YSe,qSe,XSe,jSe,KSe,QSe,ZSe,JSe,Bn,iX,aX=M(()=>{"use strict";xu();s5();Mo();DSe="[object Arguments]",NSe="[object Array]",RSe="[object Boolean]",MSe="[object Date]",ISe="[object Error]",OSe="[object Function]",PSe="[object Map]",BSe="[object Number]",FSe="[object Object]",zSe="[object RegExp]",GSe="[object Set]",$Se="[object String]",VSe="[object WeakMap]",USe="[object ArrayBuffer]",HSe="[object DataView]",WSe="[object Float32Array]",YSe="[object Float64Array]",qSe="[object Int8Array]",XSe="[object Int16Array]",jSe="[object Int32Array]",KSe="[object Uint8Array]",QSe="[object Uint8ClampedArray]",ZSe="[object Uint16Array]",JSe="[object Uint32Array]",Bn={};Bn[WSe]=Bn[YSe]=Bn[qSe]=Bn[XSe]=Bn[jSe]=Bn[KSe]=Bn[QSe]=Bn[ZSe]=Bn[JSe]=!0;Bn[DSe]=Bn[NSe]=Bn[USe]=Bn[RSe]=Bn[HSe]=Bn[MSe]=Bn[ISe]=Bn[OSe]=Bn[PSe]=Bn[BSe]=Bn[FSe]=Bn[zSe]=Bn[GSe]=Bn[$Se]=Bn[VSe]=!1;o(eCe,"baseIsTypedArray");iX=eCe});function tCe(t){return function(e){return t(e)}}var Oo,bd=M(()=>{"use strict";o(tCe,"baseUnary");Oo=tCe});var sX,rv,rCe,$_,nCe,Po,nv=M(()=>{"use strict";A_();sX=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rv=sX&&typeof module=="object"&&module&&!module.nodeType&&module,rCe=rv&&rv.exports===sX,$_=rCe&&X3.process,nCe=function(){try{var t=rv&&rv.require&&rv.require("util").types;return t||$_&&$_.binding&&$_.binding("util")}catch{}}(),Po=nCe});var oX,iCe,Nh,iv=M(()=>{"use strict";aX();bd();nv();oX=Po&&Po.isTypedArray,iCe=oX?Oo(oX):iX,Nh=iCe});function aCe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var av,V_=M(()=>{"use strict";o(aCe,"safeGet");av=aCe});function lCe(t,e,r){var n=t[e];(!(oCe.call(t,e)&&Ro(n,r))||r===void 0&&!(e in t))&&hc(t,e,r)}var sCe,oCe,dc,em=M(()=>{"use strict";Wp();yd();sCe=Object.prototype,oCe=sCe.hasOwnProperty;o(lCe,"assignValue");dc=lCe});function cCe(t,e,r,n){var i=!r;r||(r={});for(var a=-1,s=e.length;++a{"use strict";em();Wp();o(cCe,"copyObject");Bo=cCe});function uCe(t,e){for(var r=-1,n=Array(t);++r{"use strict";o(uCe,"baseTimes");lX=uCe});function dCe(t,e){var r=typeof t;return e=e??hCe,!!e&&(r=="number"||r!="symbol"&&fCe.test(t))&&t>-1&&t%1==0&&t{"use strict";hCe=9007199254740991,fCe=/^(?:0|[1-9]\d*)$/;o(dCe,"isIndex");Rh=dCe});function gCe(t,e){var r=Mt(t),n=!r&&Al(t),i=!r&&!n&&_l(t),a=!r&&!n&&!i&&Nh(t),s=r||n||i||a,l=s?lX(t.length,String):[],u=l.length;for(var h in t)(e||mCe.call(t,h))&&!(s&&(h=="length"||i&&(h=="offset"||h=="parent")||a&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Rh(h,u)))&&l.push(h);return l}var pCe,mCe,l5,U_=M(()=>{"use strict";cX();Qp();Vn();Jp();sv();iv();pCe=Object.prototype,mCe=pCe.hasOwnProperty;o(gCe,"arrayLikeKeys");l5=gCe});function yCe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}var uX,hX=M(()=>{"use strict";o(yCe,"nativeKeysIn");uX=yCe});function bCe(t){if(!yn(t))return uX(t);var e=fc(t),r=[];for(var n in t)n=="constructor"&&(e||!xCe.call(t,n))||r.push(n);return r}var vCe,xCe,fX,dX=M(()=>{"use strict";Qs();Kp();hX();vCe=Object.prototype,xCe=vCe.hasOwnProperty;o(bCe,"baseKeysIn");fX=bCe});function wCe(t){return si(t)?l5(t,!0):fX(t)}var xs,Mh=M(()=>{"use strict";U_();dX();Io();o(wCe,"keysIn");xs=wCe});function TCe(t){return Bo(t,xs(t))}var pX,mX=M(()=>{"use strict";wd();Mh();o(TCe,"toPlainObject");pX=TCe});function kCe(t,e,r,n,i,a,s){var l=av(t,r),u=av(e,r),h=s.get(u);if(h){tv(t,r,h);return}var f=a?a(l,u,r+"",t,e,s):void 0,d=f===void 0;if(d){var p=Mt(u),m=!p&&_l(u),g=!p&&!m&&Nh(u);f=u,p||m||g?Mt(l)?f=l:xd(l)?f=r5(l):m?(d=!1,f=J3(u,!0)):g?(d=!1,f=t5(u,!0)):f=[]:rX(u)||Al(u)?(f=l,Al(l)?f=pX(l):(!yn(l)||Ei(l))&&(f=a5(u))):d=!1}d&&(s.set(u,f),i(f,u,n,a,s),s.delete(u)),tv(t,r,f)}var gX,yX=M(()=>{"use strict";M_();I_();P_();B_();z_();Qp();Vn();o5();Jp();jy();Qs();nX();iv();V_();mX();o(kCe,"baseMergeDeep");gX=kCe});function vX(t,e,r,n,i){t!==e&&Yp(e,function(a,s){if(i||(i=new uc),yn(a))gX(t,e,s,r,vX,n,i);else{var l=n?n(av(t,s),a,s+"",t,e,i):void 0;l===void 0&&(l=a),tv(t,s,l)}},xs)}var xX,bX=M(()=>{"use strict";ev();M_();Z3();yX();Qs();Mh();V_();o(vX,"baseMerge");xX=vX});function ECe(t){return t}var ta,Tu=M(()=>{"use strict";o(ECe,"identity");ta=ECe});function SCe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var wX,TX=M(()=>{"use strict";o(SCe,"apply");wX=SCe});function CCe(t,e,r){return e=kX(e===void 0?t.length-1:e,0),function(){for(var n=arguments,i=-1,a=kX(n.length-e,0),s=Array(a);++i{"use strict";TX();kX=Math.max;o(CCe,"overRest");c5=CCe});function ACe(t){return function(){return t}}var bs,W_=M(()=>{"use strict";o(ACe,"constant");bs=ACe});var _Ce,EX,SX=M(()=>{"use strict";W_();R_();Tu();_Ce=Hp?function(t,e){return Hp(t,"toString",{configurable:!0,enumerable:!1,value:bs(e),writable:!0})}:ta,EX=_Ce});function RCe(t){var e=0,r=0;return function(){var n=NCe(),i=DCe-(n-r);if(r=n,i>0){if(++e>=LCe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}var LCe,DCe,NCe,CX,AX=M(()=>{"use strict";LCe=800,DCe=16,NCe=Date.now;o(RCe,"shortOut");CX=RCe});var MCe,u5,Y_=M(()=>{"use strict";SX();AX();MCe=CX(EX),u5=MCe});function ICe(t,e){return u5(c5(t,e,ta),t+"")}var pc,tm=M(()=>{"use strict";Tu();H_();Y_();o(ICe,"baseRest");pc=ICe});function OCe(t,e,r){if(!yn(r))return!1;var n=typeof e;return(n=="number"?si(r)&&Rh(e,r.length):n=="string"&&e in r)?Ro(r[e],t):!1}var Zs,Td=M(()=>{"use strict";yd();Io();sv();Qs();o(OCe,"isIterateeCall");Zs=OCe});function PCe(t){return pc(function(e,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=t.length>3&&typeof a=="function"?(i--,a):void 0,s&&Zs(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),e=Object(e);++n{"use strict";tm();Td();o(PCe,"createAssigner");h5=PCe});var BCe,Ih,X_=M(()=>{"use strict";bX();q_();BCe=h5(function(t,e,r){xX(t,e,r)}),Ih=BCe});function Q_(t,e){if(!t)return e;let r=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return FCe[r]??e}function VCe(t,e){let r=t.trim();if(r)return e.securityLevel!=="loose"?(0,DX.sanitizeUrl)(r):r}function MX(t,e){return!t||!e?0:Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function HCe(t){let e,r=0;t.forEach(i=>{r+=MX(i,e),e=i});let n=r/2;return Z_(t,n)}function WCe(t){return t.length===1?t[0]:HCe(t)}function qCe(t,e,r){let n=structuredClone(r);Y.info("our points",n),e!=="start_left"&&e!=="start_right"&&n.reverse();let i=25+t,a=Z_(n,i),s=10+t*.5,l=Math.atan2(n[0].y-a.y,n[0].x-a.x),u={x:0,y:0};return e==="start_left"?(u.x=Math.sin(l+Math.PI)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l+Math.PI)*s+(n[0].y+a.y)/2):e==="end_right"?(u.x=Math.sin(l-Math.PI)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l-Math.PI)*s+(n[0].y+a.y)/2-5):e==="end_left"?(u.x=Math.sin(l)*s+(n[0].x+a.x)/2-5,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2-5):(u.x=Math.sin(l)*s+(n[0].x+a.x)/2,u.y=-Math.cos(l)*s+(n[0].y+a.y)/2),u}function J_(t){let e="",r="";for(let n of t)n!==void 0&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function XCe(t){let e="",r="0123456789abcdef",n=r.length;for(let i=0;i{"use strict";DX=ka(Fp(),1);mr();fr();KS();ht();$f();ip();N_();X_();Pb();K_="\u200B",FCe={curveBasis:Do,curveBasisClosed:I3,curveBasisOpen:O3,curveBumpX:s_,curveBumpY:o_,curveBundle:l_,curveCardinalClosed:u_,curveCardinalOpen:f_,curveCardinal:c_,curveCatmullRomClosed:m_,curveCatmullRomOpen:g_,curveCatmullRom:p_,curveLinear:Op,curveLinearClosed:G3,curveMonotoneX:v_,curveMonotoneY:x_,curveNatural:V3,curveStep:H3,curveStepAfter:w_,curveStepBefore:b_},zCe=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,GCe=o(function(t,e){let r=NX(t,/(?:init\b)|(?:initialize\b)/),n={};if(Array.isArray(r)){let s=r.map(l=>l.args);op(s),n=Gn(n,[...s])}else n=r.args;if(!n)return;let i=np(t,e),a="config";return n[a]!==void 0&&(i==="flowchart-v2"&&(i="flowchart"),n[i]=n[a],delete n[a]),n},"detectInit"),NX=o(function(t,e=null){try{let r=new RegExp(`[%]{2}(?![{]${zCe.source})(?=[}][%]{2}).* +`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),Y.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let n,i=[];for(;(n=zf.exec(t))!==null;)if(n.index===zf.lastIndex&&zf.lastIndex++,n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e)){let a=n[1]?n[1]:n[2],s=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null;i.push({type:a,args:s})}return i.length===0?{type:t,args:null}:i.length===1?i[0]:i}catch(r){return Y.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),RX=o(function(t){return t.replace(zf,"")},"removeDirectives"),$Ce=o(function(t,e){for(let[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray");o(Q_,"interpolateToCurve");o(VCe,"formatUrl");UCe=o((t,...e)=>{let r=t.split("."),n=r.length-1,i=r[n],a=window;for(let s=0;s{let r=Math.pow(10,e);return Math.round(t*r)/r},"roundNumber"),Z_=o((t,e)=>{let r,n=e;for(let i of t){if(r){let a=MX(i,r);if(a=1)return{x:i.x,y:i.y};if(s>0&&s<1)return{x:_X((1-s)*r.x+s*i.x,5),y:_X((1-s)*r.y+s*i.y,5)}}}r=i}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),YCe=o((t,e,r)=>{Y.info(`our points ${JSON.stringify(e)}`),e[0]!==r&&(e=e.reverse());let i=Z_(e,25),a=t?10:5,s=Math.atan2(e[0].y-i.y,e[0].x-i.x),l={x:0,y:0};return l.x=Math.sin(s)*a+(e[0].x+i.x)/2,l.y=-Math.cos(s)*a+(e[0].y+i.y)/2,l},"calcCardinalityPosition");o(qCe,"calcTerminalLabelPosition");o(J_,"getStylesFromArray");LX=0,e9=o(()=>(LX++,"id-"+Math.random().toString(36).substr(2,12)+"-"+LX),"generateId");o(XCe,"makeRandomHex");t9=o(t=>XCe(t.length),"random"),jCe=o(function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},"getTextObj"),KCe=o(function(t,e){let r=e.text.replace(je.lineBreakRegex," "),[,n]=Fo(e.fontSize),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.style("text-anchor",e.anchor),i.style("font-family",e.fontFamily),i.style("font-size",n),i.style("font-weight",e.fontWeight),i.attr("fill",e.fill),e.class!==void 0&&i.attr("class",e.class);let a=i.append("tspan");return a.attr("x",e.x+e.textMargin*2),a.attr("fill",e.fill),a.text(r),i},"drawSimpleText"),r9=Vp((t,e,r)=>{if(!t||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},r),je.lineBreakRegex.test(t)))return t;let n=t.split(" ").filter(Boolean),i=[],a="";return n.forEach((s,l)=>{let u=Js(`${s} `,r),h=Js(a,r);if(u>e){let{hyphenatedStrings:p,remainingWord:m}=QCe(s,e,"-",r);i.push(a,...p),a=m}else h+u>=e?(i.push(a),a=s):a=[a,s].filter(Boolean).join(" ");l+1===n.length&&i.push(a)}),i.filter(s=>s!=="").join(r.joinWith)},(t,e,r)=>`${t}${e}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),QCe=Vp((t,e,r="-",n)=>{n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},n);let i=[...t],a=[],s="";return i.forEach((l,u)=>{let h=`${s}${l}`;if(Js(h,n)>=e){let d=u+1,p=i.length===d,m=`${h}${r}`;a.push(p?h:m),s=""}else s=h}),{hyphenatedStrings:a,remainingWord:s}},(t,e,r="-",n)=>`${t}${e}${r}${n.fontSize}${n.fontWeight}${n.fontFamily}`);o(d5,"calculateTextHeight");o(Js,"calculateTextWidth");n9=Vp((t,e)=>{let{fontSize:r=12,fontFamily:n="Arial",fontWeight:i=400}=e;if(!t)return{width:0,height:0};let[,a]=Fo(r),s=["sans-serif",n],l=t.split(je.lineBreakRegex),u=[],h=ze("body");if(!h.remove)return{width:0,height:0,lineHeight:0};let f=h.append("svg");for(let p of s){let m=0,g={width:0,height:0,lineHeight:0};for(let y of l){let v=jCe();v.text=y||K_;let x=KCe(f,v).style("font-size",a).style("font-weight",i).style("font-family",p),b=(x._groups||x)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");g.width=Math.round(Math.max(g.width,b.width)),m=Math.round(b.height),g.height+=m,g.lineHeight=Math.round(Math.max(g.lineHeight,m))}u.push(g)}f.remove();let d=isNaN(u[1].height)||isNaN(u[1].width)||isNaN(u[1].lineHeight)||u[0].height>u[1].height&&u[0].width>u[1].width&&u[0].lineHeight>u[1].lineHeight?0:1;return u[d]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`),j_=class{constructor(e=!1,r){this.count=0;this.count=r?r.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{o(this,"InitIDGenerator")}},ZCe=o(function(t){return f5=f5||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),f5.innerHTML=t,unescape(f5.textContent)},"entityDecode");o(i9,"isDetailedError");JCe=o((t,e,r,n)=>{if(!n)return;let i=t.node()?.getBBox();i&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),Fo=o(t=>{if(typeof t=="number")return[t,t+"px"];let e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},"parseFontSize");o(ws,"cleanAndMerge");Ut={assignWithDepth:Gn,wrapLabel:r9,calculateTextHeight:d5,calculateTextWidth:Js,calculateTextDimensions:n9,cleanAndMerge:ws,detectInit:GCe,detectDirective:NX,isSubstringInArray:$Ce,interpolateToCurve:Q_,calcLabelPosition:WCe,calcCardinalityPosition:YCe,calcTerminalLabelPosition:qCe,formatUrl:VCe,getStylesFromArray:J_,generateId:e9,random:t9,runFunc:UCe,entityDecode:ZCe,insertTitle:JCe,parseFontSize:Fo,InitIDGenerator:j_},IX=o(function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(r){return r.substring(0,r.length-1)}),e=e.replace(/#\w+;/g,function(r){let n=r.substring(1,r.length-1);return/^\+?\d+$/.test(n)?"\uFB02\xB0\xB0"+n+"\xB6\xDF":"\uFB02\xB0"+n+"\xB6\xDF"}),e},"encodeEntities"),Ca=o(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),p5=o((t,e,{counter:r=0,prefix:n,suffix:i})=>`${n?`${n}_`:""}${t}_${e}_${r}${i?`_${i}`:""}`,"getEdgeId");o(Fn,"handleUndefinedAttr")});function Ll(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=r9(e[t].text,i,n),e[t].textLines=e[t].text.split(je.lineBreakRegex).length,e[t].width=i,e[t].height=d5(e[t].text,n);else{let a=e[t].text.split(je.lineBreakRegex);e[t].textLines=a.length;let s=0;e[t].height=0,e[t].width=0;for(let l of a)e[t].width=Math.max(Js(l,n),e[t].width),s=d5(l,n),e[t].height=e[t].height+s}}function zX(t,e,r,n,i){let a=new v5(i);a.data.widthLimit=r.data.widthLimit/Math.min(a9,n.length);for(let[s,l]of n.entries()){let u=0;l.image={width:0,height:0,Y:0},l.sprite&&(l.image.width=48,l.image.height=48,l.image.Y=u,u=l.image.Y+l.image.height);let h=l.wrap&&Gt.wrap,f=m5(Gt);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",l,h,f,a.data.widthLimit),l.label.Y=u+8,u=l.label.Y+l.label.height,l.type&&l.type.text!==""){l.type.text="["+l.type.text+"]";let g=m5(Gt);Ll("type",l,h,g,a.data.widthLimit),l.type.Y=u+5,u=l.type.Y+l.type.height}if(l.descr&&l.descr.text!==""){let g=m5(Gt);g.fontSize=g.fontSize-2,Ll("descr",l,h,g,a.data.widthLimit),l.descr.Y=u+20,u=l.descr.Y+l.descr.height}if(s==0||s%a9===0){let g=r.data.startx+Gt.diagramMarginX,y=r.data.stopy+Gt.diagramMarginY+u;a.setData(g,g,y,y)}else{let g=a.data.stopx!==a.data.startx?a.data.stopx+Gt.diagramMarginX:a.data.startx,y=a.data.starty;a.setData(g,g,y,y)}a.name=l.alias;let d=i.db.getC4ShapeArray(l.alias),p=i.db.getC4ShapeKeys(l.alias);p.length>0&&FX(a,t,d,p),e=l.alias;let m=i.db.getBoundarys(e);m.length>0&&zX(t,e,a,m,i),l.alias!=="global"&&BX(t,l,a),r.data.stopy=Math.max(a.data.stopy+Gt.c4ShapeMargin,r.data.stopy),r.data.stopx=Math.max(a.data.stopx+Gt.c4ShapeMargin,r.data.stopx),g5=Math.max(g5,r.data.stopx),y5=Math.max(y5,r.data.stopy)}}var g5,y5,PX,a9,Gt,v5,s9,ov,m5,e7e,BX,FX,Ts,OX,t7e,r7e,n7e,o9,GX=M(()=>{"use strict";mr();OY();ht();PS();fr();l7();Vt();ip();hr();ni();g5=0,y5=0,PX=4,a9=2;I1.yy=oy;Gt={},v5=class{static{o(this,"Bounds")}constructor(e){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,s9(e.db.getConfig())}setData(e,r,n,i){this.nextData.startx=this.data.startx=e,this.nextData.stopx=this.data.stopx=r,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(e,r,n,i){e[r]===void 0?e[r]=n:e[r]=i(n,e[r])}insert(e){this.nextData.cnt=this.nextData.cnt+1;let r=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+e.margin:this.nextData.stopx+e.margin*2,n=r+e.width,i=this.nextData.starty+e.margin*2,a=i+e.height;(r>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>PX)&&(r=this.nextData.startx+e.margin+Gt.nextLinePaddingX,i=this.nextData.stopy+e.margin*2,this.nextData.stopx=n=r+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+e.height,this.nextData.cnt=1),e.x=r,e.y=i,this.updateVal(this.data,"startx",r,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",r,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},s9(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},s9=o(function(t){Gn(Gt,t),t.fontFamily&&(Gt.personFontFamily=Gt.systemFontFamily=Gt.messageFontFamily=t.fontFamily),t.fontSize&&(Gt.personFontSize=Gt.systemFontSize=Gt.messageFontSize=t.fontSize),t.fontWeight&&(Gt.personFontWeight=Gt.systemFontWeight=Gt.messageFontWeight=t.fontWeight)},"setConf"),ov=o((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),m5=o(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),e7e=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont");o(Ll,"calcC4ShapeTextWH");BX=o(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=Gt.c4ShapeMargin-35;let n=e.wrap&&Gt.wrap,i=m5(Gt);i.fontSize=i.fontSize+2,i.fontWeight="bold";let a=Js(e.label.text,i);Ll("label",e,n,i,a),Cl.drawBoundary(t,e,Gt)},"drawBoundary"),FX=o(function(t,e,r,n){let i=0;for(let a of n){i=0;let s=r[a],l=ov(Gt,s.typeC4Shape.text);switch(l.fontSize=l.fontSize-2,s.typeC4Shape.width=Js("\xAB"+s.typeC4Shape.text+"\xBB",l),s.typeC4Shape.height=l.fontSize+2,s.typeC4Shape.Y=Gt.c4ShapePadding,i=s.typeC4Shape.Y+s.typeC4Shape.height-4,s.image={width:0,height:0,Y:0},s.typeC4Shape.text){case"person":case"external_person":s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height;break}s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let u=s.wrap&&Gt.wrap,h=Gt.width-Gt.c4ShapePadding*2,f=ov(Gt,s.typeC4Shape.text);if(f.fontSize=f.fontSize+2,f.fontWeight="bold",Ll("label",s,u,f,h),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&s.type.text!==""){s.type.text="["+s.type.text+"]";let m=ov(Gt,s.typeC4Shape.text);Ll("type",s,u,m,h),s.type.Y=i+5,i=s.type.Y+s.type.height}else if(s.techn&&s.techn.text!==""){s.techn.text="["+s.techn.text+"]";let m=ov(Gt,s.techn.text);Ll("techn",s,u,m,h),s.techn.Y=i+5,i=s.techn.Y+s.techn.height}let d=i,p=s.label.width;if(s.descr&&s.descr.text!==""){let m=ov(Gt,s.typeC4Shape.text);Ll("descr",s,u,m,h),s.descr.Y=i+20,i=s.descr.Y+s.descr.height,p=Math.max(s.label.width,s.descr.width),d=i-s.descr.textLines*5}p=p+Gt.c4ShapePadding,s.width=Math.max(s.width||Gt.width,p,Gt.width),s.height=Math.max(s.height||Gt.height,d,Gt.height),s.margin=s.margin||Gt.c4ShapeMargin,t.insert(s),Cl.drawC4Shape(e,s,Gt)}t.bumpLastMargin(Gt.c4ShapeMargin)},"drawC4ShapeArray"),Ts=class{static{o(this,"Point")}constructor(e,r){this.x=e,this.y=r}},OX=o(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,l=n+t.height/2,u=Math.abs(r-i),h=Math.abs(n-a),f=h/u,d=t.height/t.width,p=null;return n==a&&ri?p=new Ts(r,l):r==i&&na&&(p=new Ts(s,n)),r>i&&n=f?p=new Ts(r,l+f*t.width/2):p=new Ts(s-u/h*t.height/2,n+t.height):r=f?p=new Ts(r+t.width,l+f*t.width/2):p=new Ts(s+u/h*t.height/2,n+t.height):ra?d>=f?p=new Ts(r+t.width,l-f*t.width/2):p=new Ts(s+t.height/2*u/h,n):r>i&&n>a&&(d>=f?p=new Ts(r,l-t.width/2*f):p=new Ts(s-t.height/2*u/h,n)),p},"getIntersectPoint"),t7e=o(function(t,e){let r={x:0,y:0};r.x=e.x+e.width/2,r.y=e.y+e.height/2;let n=OX(t,r);r.x=t.x+t.width/2,r.y=t.y+t.height/2;let i=OX(e,r);return{startPoint:n,endPoint:i}},"getIntersectPoints"),r7e=o(function(t,e,r,n){let i=0;for(let a of e){i=i+1;let s=a.wrap&&Gt.wrap,l=e7e(Gt);n.db.getC4Type()==="C4Dynamic"&&(a.label.text=i+": "+a.label.text);let h=Js(a.label.text,l);Ll("label",a,s,l,h),a.techn&&a.techn.text!==""&&(h=Js(a.techn.text,l),Ll("techn",a,s,l,h)),a.descr&&a.descr.text!==""&&(h=Js(a.descr.text,l),Ll("descr",a,s,l,h));let f=r(a.from),d=r(a.to),p=t7e(f,d);a.startPoint=p.startPoint,a.endPoint=p.endPoint}Cl.drawRels(t,e,Gt)},"drawRels");o(zX,"drawInsideBoundary");n7e=o(function(t,e,r,n){Gt=de().c4;let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let s=i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body"),l=n.db;n.db.setWrap(Gt.wrap),PX=l.getC4ShapeInRow(),a9=l.getC4BoundaryInRow(),Y.debug(`C:${JSON.stringify(Gt,null,2)}`);let u=i==="sandbox"?s.select(`[id="${e}"]`):ze(`[id="${e}"]`);Cl.insertComputerIcon(u),Cl.insertDatabaseIcon(u),Cl.insertClockIcon(u);let h=new v5(n);h.setData(Gt.diagramMarginX,Gt.diagramMarginX,Gt.diagramMarginY,Gt.diagramMarginY),h.data.widthLimit=screen.availWidth,g5=Gt.diagramMarginX,y5=Gt.diagramMarginY;let f=n.db.getTitle(),d=n.db.getBoundarys("");zX(u,"",h,d,n),Cl.insertArrowHead(u),Cl.insertArrowEnd(u),Cl.insertArrowCrossHead(u),Cl.insertArrowFilledHead(u),r7e(u,n.db.getRels(),n.db.getC4Shape,n),h.data.stopx=g5,h.data.stopy=y5;let p=h.data,g=p.stopy-p.starty+2*Gt.diagramMarginY,v=p.stopx-p.startx+2*Gt.diagramMarginX;f&&u.append("text").text(f).attr("x",(p.stopx-p.startx)/2-4*Gt.diagramMarginX).attr("y",p.starty+Gt.diagramMarginY),Zr(u,g,v,Gt.useMaxWidth);let x=f?60:0;u.attr("viewBox",p.startx-Gt.diagramMarginX+" -"+(Gt.diagramMarginY+x)+" "+v+" "+(g+x)),Y.debug("models:",p)},"draw"),o9={drawPersonOrSystemArray:FX,drawBoundary:BX,setConf:s9,draw:n7e}});var i7e,$X,VX=M(()=>{"use strict";i7e=o(t=>`.person { + stroke: ${t.personBorder}; + fill: ${t.personBkg}; + } +`,"getStyles"),$X=i7e});var UX={};vr(UX,{diagram:()=>a7e});var a7e,HX=M(()=>{"use strict";PS();l7();GX();VX();a7e={parser:QF,db:oy,renderer:o9,styles:$X,init:o(({c4:t,wrap:e})=>{o9.setConf(t),oy.setWrap(e)},"init")}});function u9(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function ZX(t){Ed=t}function eo(t,e){if(e){if(JX.test(t))return t.replace(c7e,qX)}else if(ej.test(t))return t.replace(u7e,qX);return t}function d7e(t){return t.replace(f7e,(e,r)=>(r=r.toLowerCase(),r==="colon"?":":r.charAt(0)==="#"?r.charAt(1)==="x"?String.fromCharCode(parseInt(r.substring(2),16)):String.fromCharCode(+r.substring(1)):""))}function fn(t,e){let r=typeof t=="string"?t:t.source;e=e||"";let n={replace:o((i,a)=>{let s=typeof a=="string"?a:a.source;return s=s.replace(p7e,"$1"),r=r.replace(i,s),n},"replace"),getRegex:o(()=>new RegExp(r,e),"getRegex")};return n}function XX(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}function jX(t,e){let r=t.replace(/\|/g,(a,s,l)=>{let u=!1,h=s;for(;--h>=0&&l[h]==="\\";)u=!u;return u?"|":" |"}),n=r.split(/ \|/),i=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length{let a=i.match(/^\s+/);if(a===null)return i;let[s]=a;return s.length>=n.length?i.slice(n.length):i}).join(` +`)}function en(t,e){return kd.parse(t,e)}var Ed,JX,c7e,ej,u7e,h7e,qX,f7e,p7e,uv,nm,y7e,v7e,x7e,fv,b7e,tj,rj,h9,w7e,f9,T7e,k7e,w5,d9,E7e,nj,S7e,p9,QX,C7e,A7e,ij,_7e,aj,L7e,dv,D7e,N7e,R7e,M7e,I7e,O7e,P7e,B7e,F7e,b5,z7e,sj,oj,G7e,m9,$7e,l9,V7e,x5,cv,ku,im,hv,Eu,rm,c9,kd,u6t,h6t,f6t,d6t,p6t,m6t,g6t,lj=M(()=>{"use strict";o(u9,"_getDefaults");Ed=u9();o(ZX,"changeDefaults");JX=/[&<>"']/,c7e=new RegExp(JX.source,"g"),ej=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,u7e=new RegExp(ej.source,"g"),h7e={"&":"&","<":"<",">":">",'"':""","'":"'"},qX=o(t=>h7e[t],"getEscapeReplacement");o(eo,"escape$1");f7e=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;o(d7e,"unescape");p7e=/(^|[^\[])\^/g;o(fn,"edit");o(XX,"cleanUrl");uv={exec:o(()=>null,"exec")};o(jX,"splitCells");o(lv,"rtrim");o(m7e,"findClosingBracket");o(KX,"outputLink");o(g7e,"indentCodeCompensation");nm=class{static{o(this,"_Tokenizer")}options;rules;lexer;constructor(e){this.options=e||Ed}space(e){let r=this.rules.block.newline.exec(e);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(e){let r=this.rules.block.code.exec(e);if(r){let n=r[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?n:lv(n,` +`)}}}fences(e){let r=this.rules.block.fences.exec(e);if(r){let n=r[0],i=g7e(n,r[3]||"");return{type:"code",raw:n,lang:r[2]?r[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):r[2],text:i}}}heading(e){let r=this.rules.block.heading.exec(e);if(r){let n=r[2].trim();if(/#$/.test(n)){let i=lv(n,"#");(this.options.pedantic||!i||/ $/.test(i))&&(n=i.trim())}return{type:"heading",raw:r[0],depth:r[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let r=this.rules.block.hr.exec(e);if(r)return{type:"hr",raw:lv(r[0],` +`)}}blockquote(e){let r=this.rules.block.blockquote.exec(e);if(r){let n=lv(r[0],` +`).split(` +`),i="",a="",s=[];for(;n.length>0;){let l=!1,u=[],h;for(h=0;h/.test(n[h]))u.push(n[h]),l=!0;else if(!l)u.push(n[h]);else break;n=n.slice(h);let f=u.join(` +`),d=f.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");i=i?`${i} +${f}`:f,a=a?`${a} +${d}`:d;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(d,s,!0),this.lexer.state.top=p,n.length===0)break;let m=s[s.length-1];if(m?.type==="code")break;if(m?.type==="blockquote"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.blockquote(y);s[s.length-1]=v,i=i.substring(0,i.length-g.raw.length)+v.raw,a=a.substring(0,a.length-g.text.length)+v.text;break}else if(m?.type==="list"){let g=m,y=g.raw+` +`+n.join(` +`),v=this.list(y);s[s.length-1]=v,i=i.substring(0,i.length-m.raw.length)+v.raw,a=a.substring(0,a.length-g.raw.length)+v.raw,n=y.substring(s[s.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(e){let r=this.rules.block.list.exec(e);if(r){let n=r[1].trim(),i=n.length>1,a={type:"list",raw:"",ordered:i,start:i?+n.slice(0,-1):"",loose:!1,items:[]};n=i?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=i?n:"[*+-]");let s=new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),l=!1;for(;e;){let u=!1,h="",f="";if(!(r=s.exec(e))||this.rules.block.hr.test(e))break;h=r[0],e=e.substring(h.length);let d=r[2].split(` +`,1)[0].replace(/^\t+/,x=>" ".repeat(3*x.length)),p=e.split(` +`,1)[0],m=!d.trim(),g=0;if(this.options.pedantic?(g=2,f=d.trimStart()):m?g=r[1].length+1:(g=r[2].search(/[^ ]/),g=g>4?1:g,f=d.slice(g),g+=r[1].length),m&&/^ *$/.test(p)&&(h+=p+` +`,e=e.substring(p.length+1),u=!0),!u){let x=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),b=new RegExp(`^ {0,${Math.min(3,g-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),w=new RegExp(`^ {0,${Math.min(3,g-1)}}(?:\`\`\`|~~~)`),_=new RegExp(`^ {0,${Math.min(3,g-1)}}#`);for(;e;){let T=e.split(` +`,1)[0];if(p=T,this.options.pedantic&&(p=p.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),w.test(p)||_.test(p)||x.test(p)||b.test(e))break;if(p.search(/[^ ]/)>=g||!p.trim())f+=` +`+p.slice(g);else{if(m||d.search(/[^ ]/)>=4||w.test(d)||_.test(d)||b.test(d))break;f+=` +`+p}!m&&!p.trim()&&(m=!0),h+=T+` +`,e=e.substring(T.length+1),d=p.slice(g)}}a.loose||(l?a.loose=!0:/\n *\n *$/.test(h)&&(l=!0));let y=null,v;this.options.gfm&&(y=/^\[[ xX]\] /.exec(f),y&&(v=y[0]!=="[ ] ",f=f.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:h,task:!!y,checked:v,loose:!1,text:f,tokens:[]}),a.raw+=h}a.items[a.items.length-1].raw=a.items[a.items.length-1].raw.trimEnd(),a.items[a.items.length-1].text=a.items[a.items.length-1].text.trimEnd(),a.raw=a.raw.trimEnd();for(let u=0;ud.type==="space"),f=h.length>0&&h.some(d=>/\n.*\n/.test(d.raw));a.loose=f}if(a.loose)for(let u=0;u$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=r[3]?r[3].substring(1,r[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):r[3];return{type:"def",tag:n,raw:r[0],href:i,title:a}}}table(e){let r=this.rules.block.table.exec(e);if(!r||!/[:|]/.test(r[2]))return;let n=jX(r[1]),i=r[2].replace(/^\||\| *$/g,"").split("|"),a=r[3]&&r[3].trim()?r[3].replace(/\n[ \t]*$/,"").split(` +`):[],s={type:"table",raw:r[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let l of i)/^ *-+: *$/.test(l)?s.align.push("right"):/^ *:-+: *$/.test(l)?s.align.push("center"):/^ *:-+ *$/.test(l)?s.align.push("left"):s.align.push(null);for(let l=0;l({text:u,tokens:this.lexer.inline(u),header:!1,align:s.align[h]})));return s}}lheading(e){let r=this.rules.block.lheading.exec(e);if(r)return{type:"heading",raw:r[0],depth:r[2].charAt(0)==="="?1:2,text:r[1],tokens:this.lexer.inline(r[1])}}paragraph(e){let r=this.rules.block.paragraph.exec(e);if(r){let n=r[1].charAt(r[1].length-1)===` +`?r[1].slice(0,-1):r[1];return{type:"paragraph",raw:r[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let r=this.rules.block.text.exec(e);if(r)return{type:"text",raw:r[0],text:r[0],tokens:this.lexer.inline(r[0])}}escape(e){let r=this.rules.inline.escape.exec(e);if(r)return{type:"escape",raw:r[0],text:eo(r[1])}}tag(e){let r=this.rules.inline.tag.exec(e);if(r)return!this.lexer.state.inLink&&/^
/i.test(r[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:r[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:r[0]}}link(e){let r=this.rules.inline.link.exec(e);if(r){let n=r[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;let s=lv(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=m7e(r[2],"()");if(s>-1){let u=(r[0].indexOf("!")===0?5:4)+r[1].length+s;r[2]=r[2].substring(0,s),r[0]=r[0].substring(0,u).trim(),r[3]=""}}let i=r[2],a="";if(this.options.pedantic){let s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i);s&&(i=s[1],a=s[3])}else a=r[3]?r[3].slice(1,-1):"";return i=i.trim(),/^$/.test(n)?i=i.slice(1):i=i.slice(1,-1)),KX(r,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer)}}reflink(e,r){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let i=(n[2]||n[1]).replace(/\s+/g," "),a=r[i.toLowerCase()];if(!a){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return KX(n,a,n[0],this.lexer)}}emStrong(e,r,n=""){let i=this.rules.inline.emStrongLDelim.exec(e);if(!i||i[3]&&n.match(/[\p{L}\p{N}]/u))return;if(!(i[1]||i[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let s=[...i[0]].length-1,l,u,h=s,f=0,d=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,r=r.slice(-1*e.length+s);(i=d.exec(r))!=null;){if(l=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!l)continue;if(u=[...l].length,i[3]||i[4]){h+=u;continue}else if((i[5]||i[6])&&s%3&&!((s+u)%3)){f+=u;continue}if(h-=u,h>0)continue;u=Math.min(u,u+h+f);let p=[...i[0]][0].length,m=e.slice(0,s+i.index+p+u);if(Math.min(s,u)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let g=m.slice(2,-2);return{type:"strong",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let r=this.rules.inline.code.exec(e);if(r){let n=r[2].replace(/\n/g," "),i=/[^ ]/.test(n),a=/^ /.test(n)&&/ $/.test(n);return i&&a&&(n=n.substring(1,n.length-1)),n=eo(n,!0),{type:"codespan",raw:r[0],text:n}}}br(e){let r=this.rules.inline.br.exec(e);if(r)return{type:"br",raw:r[0]}}del(e){let r=this.rules.inline.del.exec(e);if(r)return{type:"del",raw:r[0],text:r[2],tokens:this.lexer.inlineTokens(r[2])}}autolink(e){let r=this.rules.inline.autolink.exec(e);if(r){let n,i;return r[2]==="@"?(n=eo(r[1]),i="mailto:"+n):(n=eo(r[1]),i=n),{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let r;if(r=this.rules.inline.url.exec(e)){let n,i;if(r[2]==="@")n=eo(r[0]),i="mailto:"+n;else{let a;do a=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"";while(a!==r[0]);n=eo(r[0]),r[1]==="www."?i="http://"+r[0]:i=r[0]}return{type:"link",raw:r[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let r=this.rules.inline.text.exec(e);if(r){let n;return this.lexer.state.inRawBlock?n=r[0]:n=eo(r[0]),{type:"text",raw:r[0],text:n}}}},y7e=/^(?: *(?:\n|$))+/,v7e=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,x7e=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,fv=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,b7e=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,tj=/(?:[*+-]|\d{1,9}[.)])/,rj=fn(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,tj).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),h9=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,w7e=/^[^\n]+/,f9=/(?!\s*\])(?:\\.|[^\[\]\\])+/,T7e=fn(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",f9).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),k7e=fn(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,tj).getRegex(),w5="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",d9=/|$))/,E7e=fn("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",d9).replace("tag",w5).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),nj=fn(h9).replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex(),S7e=fn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",nj).getRegex(),p9={blockquote:S7e,code:v7e,def:T7e,fences:x7e,heading:b7e,hr:fv,html:E7e,lheading:rj,list:k7e,newline:y7e,paragraph:nj,table:uv,text:w7e},QX=fn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex(),C7e={...p9,table:QX,paragraph:fn(h9).replace("hr",fv).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",QX).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",w5).getRegex()},A7e={...p9,html:fn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",d9).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:uv,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:fn(h9).replace("hr",fv).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",rj).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},ij=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,_7e=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,aj=/^( {2,}|\\)\n(?!\s*$)/,L7e=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,R7e=fn(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,dv).getRegex(),M7e=fn("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,dv).getRegex(),I7e=fn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,dv).getRegex(),O7e=fn(/\\([punct])/,"gu").replace(/punct/g,dv).getRegex(),P7e=fn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),B7e=fn(d9).replace("(?:-->|$)","-->").getRegex(),F7e=fn("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",B7e).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),b5=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,z7e=fn(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",b5).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),sj=fn(/^!?\[(label)\]\[(ref)\]/).replace("label",b5).replace("ref",f9).getRegex(),oj=fn(/^!?\[(ref)\](?:\[\])?/).replace("ref",f9).getRegex(),G7e=fn("reflink|nolink(?!\\()","g").replace("reflink",sj).replace("nolink",oj).getRegex(),m9={_backpedal:uv,anyPunctuation:O7e,autolink:P7e,blockSkip:N7e,br:aj,code:_7e,del:uv,emStrongLDelim:R7e,emStrongRDelimAst:M7e,emStrongRDelimUnd:I7e,escape:ij,link:z7e,nolink:oj,punctuation:D7e,reflink:sj,reflinkSearch:G7e,tag:F7e,text:L7e,url:uv},$7e={...m9,link:fn(/^!?\[(label)\]\((.*?)\)/).replace("label",b5).getRegex(),reflink:fn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",b5).getRegex()},l9={...m9,escape:fn(ij).replace("])","~|])").getRegex(),url:fn(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\u+" ".repeat(h.length));let i,a,s;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(l=>(i=l.call({lexer:this},e,r))?(e=e.substring(i.raw.length),r.push(i),!0):!1))){if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length),i.raw.length===1&&r.length>0?r[r.length-1].raw+=` +`:r.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+=` +`+i.raw,a.text+=` +`+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title});continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),r.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),r.push(i);continue}if(s=e,this.options.extensions&&this.options.extensions.startBlock){let l=1/0,u=e.slice(1),h;this.options.extensions.startBlock.forEach(f=>{h=f.call({lexer:this},u),typeof h=="number"&&h>=0&&(l=Math.min(l,h))}),l<1/0&&l>=0&&(s=e.substring(0,l+1))}if(this.state.top&&(i=this.tokenizer.paragraph(s))){a=r[r.length-1],n&&a?.type==="paragraph"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i),n=s.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length),a=r[r.length-1],a&&a.type==="text"?(a.raw+=` +`+i.raw,a.text+=` +`+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):r.push(i);continue}if(e){let l="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(l);break}else throw new Error(l)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){let n,i,a,s=e,l,u,h;if(this.tokens.links){let f=Object.keys(this.tokens.links);if(f.length>0)for(;(l=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)f.includes(l[0].slice(l[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(l=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,l.index)+"["+"a".repeat(l[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(l=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,l.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(u||(h=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(f=>(n=f.call({lexer:this},e,r))?(e=e.substring(n.raw.length),r.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),i=r[r.length-1],i&&n.type==="text"&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(n=this.tokenizer.emStrong(e,s,h)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),r.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),r.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),r.push(n);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline){let f=1/0,d=e.slice(1),p;this.options.extensions.startInline.forEach(m=>{p=m.call({lexer:this},d),typeof p=="number"&&p>=0&&(f=Math.min(f,p))}),f<1/0&&f>=0&&(a=e.substring(0,f+1))}if(n=this.tokenizer.inlineText(a)){e=e.substring(n.raw.length),n.raw.slice(-1)!=="_"&&(h=n.raw.slice(-1)),u=!0,i=r[r.length-1],i&&i.type==="text"?(i.raw+=n.raw,i.text+=n.text):r.push(n);continue}if(e){let f="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(f);break}else throw new Error(f)}}return r}},im=class{static{o(this,"_Renderer")}options;parser;constructor(e){this.options=e||Ed}space(e){return""}code({text:e,lang:r,escaped:n}){let i=(r||"").match(/^\S*/)?.[0],a=e.replace(/\n$/,"")+` +`;return i?'
'+(n?a:eo(a,!0))+`
+`:"
"+(n?a:eo(a,!0))+`
+`}blockquote({tokens:e}){return`
+${this.parser.parse(e)}
+`}html({text:e}){return e}heading({tokens:e,depth:r}){return`${this.parser.parseInline(e)} +`}hr(e){return`
+`}list(e){let r=e.ordered,n=e.start,i="";for(let l=0;l +`+i+" +`}listitem(e){let r="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&e.tokens[0].type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" "}):r+=n+" "}return r+=this.parser.parse(e.tokens,!!e.loose),`
  • ${r}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

    +`}table(e){let r="",n="";for(let a=0;a${i}`),` + +`+r+` +`+i+`
    +`}tablerow({text:e}){return` +${e} +`}tablecell(e){let r=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+r+` +`}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${e}`}br(e){return"
    "}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:r,tokens:n}){let i=this.parser.parseInline(n),a=XX(e);if(a===null)return i;e=a;let s='
    ",s}image({href:e,title:r,text:n}){let i=XX(e);if(i===null)return n;e=i;let a=`${n}{let l=a[s].flat(1/0);n=n.concat(this.walkTokens(l,r))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,r)))}}return n}use(...e){let r=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){let s=r.renderers[a.name];s?r.renderers[a.name]=function(...l){let u=a.renderer.apply(this,l);return u===!1&&(u=s.apply(this,l)),u}:r.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=r[a.level];s?s.unshift(a.tokenizer):r[a.level]=[a.tokenizer],a.start&&(a.level==="block"?r.startBlock?r.startBlock.push(a.start):r.startBlock=[a.start]:a.level==="inline"&&(r.startInline?r.startInline.push(a.start):r.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(r.childTokens[a.name]=a.childTokens)}),i.extensions=r),n.renderer){let a=this.defaults.renderer||new im(this.defaults);for(let s in n.renderer){if(!(s in a))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let l=s,u=n.renderer[l];n.useNewRenderer||(u=this.#t(u,l,a));let h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d||""}}i.renderer=a}if(n.tokenizer){let a=this.defaults.tokenizer||new nm(this.defaults);for(let s in n.tokenizer){if(!(s in a))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let l=s,u=n.tokenizer[l],h=a[l];a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.tokenizer=a}if(n.hooks){let a=this.defaults.hooks||new rm;for(let s in n.hooks){if(!(s in a))throw new Error(`hook '${s}' does not exist`);if(s==="options")continue;let l=s,u=n.hooks[l],h=a[l];rm.passThroughHooks.has(s)?a[l]=f=>{if(this.defaults.async)return Promise.resolve(u.call(a,f)).then(p=>h.call(a,p));let d=u.call(a,f);return h.call(a,d)}:a[l]=(...f)=>{let d=u.apply(a,f);return d===!1&&(d=h.apply(a,f)),d}}i.hooks=a}if(n.walkTokens){let a=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(l){let u=[];return u.push(s.call(this,l)),a&&(u=u.concat(a.call(this,l))),u}}this.defaults={...this.defaults,...i}}),this}#t(e,r,n){switch(r){case"heading":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,n.parser.parseInline(i.tokens),i.depth,d7e(n.parser.parseInline(i.tokens,n.parser.textRenderer)))};case"code":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.lang,!!i.escaped)};case"table":return function(i){if(!i.type||i.type!==r)return e.apply(this,arguments);let a="",s="";for(let u=0;u0&&f.tokens[0].type==="paragraph"?(f.tokens[0].text=g+" "+f.tokens[0].text,f.tokens[0].tokens&&f.tokens[0].tokens.length>0&&f.tokens[0].tokens[0].type==="text"&&(f.tokens[0].tokens[0].text=g+" "+f.tokens[0].tokens[0].text)):f.tokens.unshift({type:"text",text:g+" "}):m+=g+" "}m+=this.parser.parse(f.tokens,l),u+=this.listitem({type:"list_item",raw:m,text:m,task:p,checked:!!d,loose:l,tokens:f.tokens})}return e.call(this,u,a,s)};case"html":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text,i.block)};case"paragraph":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"escape":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"link":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,this.parser.parseInline(i.tokens))};case"image":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.href,i.title,i.text)};case"strong":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"em":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"codespan":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)};case"del":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,this.parser.parseInline(i.tokens))};case"text":return function(i){return!i.type||i.type!==r?e.apply(this,arguments):e.call(this,i.text)}}return e}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,r){return ku.lex(e,r??this.defaults)}parser(e,r){return Eu.parse(e,r??this.defaults)}#e(e,r){return(n,i)=>{let a={...i},s={...this.defaults,...a};this.defaults.async===!0&&a.async===!1&&(s.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),s.async=!0);let l=this.#r(!!s.silent,!!s.async);if(typeof n>"u"||n===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof n!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(n)+", string expected"));if(s.hooks&&(s.hooks.options=s),s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(n):n).then(u=>e(u,s)).then(u=>s.hooks?s.hooks.processAllTokens(u):u).then(u=>s.walkTokens?Promise.all(this.walkTokens(u,s.walkTokens)).then(()=>u):u).then(u=>r(u,s)).then(u=>s.hooks?s.hooks.postprocess(u):u).catch(l);try{s.hooks&&(n=s.hooks.preprocess(n));let u=e(n,s);s.hooks&&(u=s.hooks.processAllTokens(u)),s.walkTokens&&this.walkTokens(u,s.walkTokens);let h=r(u,s);return s.hooks&&(h=s.hooks.postprocess(h)),h}catch(u){return l(u)}}}#r(e,r){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let i="

    An error occurred:

    "+eo(n.message+"",!0)+"
    ";return r?Promise.resolve(i):i}if(r)return Promise.reject(n);throw n}}},kd=new c9;o(en,"marked");en.options=en.setOptions=function(t){return kd.setOptions(t),en.defaults=kd.defaults,ZX(en.defaults),en};en.getDefaults=u9;en.defaults=Ed;en.use=function(...t){return kd.use(...t),en.defaults=kd.defaults,ZX(en.defaults),en};en.walkTokens=function(t,e){return kd.walkTokens(t,e)};en.parseInline=kd.parseInline;en.Parser=Eu;en.parser=Eu.parse;en.Renderer=im;en.TextRenderer=hv;en.Lexer=ku;en.lexer=ku.lex;en.Tokenizer=nm;en.Hooks=rm;en.parse=en;u6t=en.options,h6t=en.setOptions,f6t=en.use,d6t=en.walkTokens,p6t=en.parseInline,m6t=Eu.parse,g6t=ku.lex});function U7e(t,{markdownAutoWrap:e}){let n=t.replace(//g,` +`).replace(/\n{2,}/g,` +`),i=Ib(n);return e===!1?i.replace(/ /g," "):i}function cj(t,e={}){let r=U7e(t,e),n=en.lexer(r),i=[[]],a=0;function s(l,u="normal"){l.type==="text"?l.text.split(` +`).forEach((f,d)=>{d!==0&&(a++,i.push([])),f.split(" ").forEach(p=>{p=p.replace(/'/g,"'"),p&&i[a].push({content:p,type:u})})}):l.type==="strong"||l.type==="em"?l.tokens.forEach(h=>{s(h,l.type)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}return o(s,"processNode"),n.forEach(l=>{l.type==="paragraph"?l.tokens?.forEach(u=>{s(u)}):l.type==="html"&&i[a].push({content:l.text,type:"normal"})}),i}function uj(t,{markdownAutoWrap:e}={}){let r=en.lexer(t);function n(i){return i.type==="text"?e===!1?i.text.replace(/\n */g,"
    ").replace(/ /g," "):i.text.replace(/\n */g,"
    "):i.type==="strong"?`${i.tokens?.map(n).join("")}`:i.type==="em"?`${i.tokens?.map(n).join("")}`:i.type==="paragraph"?`

    ${i.tokens?.map(n).join("")}

    `:i.type==="space"?"":i.type==="html"?`${i.text}`:i.type==="escape"?i.text:`Unsupported markdown: ${i.type}`}return o(n,"output"),r.map(n).join("")}var hj=M(()=>{"use strict";lj();MS();o(U7e,"preprocessMarkdown");o(cj,"markdownToLines");o(uj,"markdownToHTML")});function H7e(t){return Intl.Segmenter?[...new Intl.Segmenter().segment(t)].map(e=>e.segment):[...t]}function W7e(t,e){let r=H7e(e.content);return fj(t,[],r,e.type)}function fj(t,e,r,n){if(r.length===0)return[{content:e.join(""),type:n},{content:"",type:n}];let[i,...a]=r,s=[...e,i];return t([{content:s.join(""),type:n}])?fj(t,s,a,n):(e.length===0&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}])}function dj(t,e){if(t.some(({content:r})=>r.includes(` +`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return g9(t,e)}function g9(t,e,r=[],n=[]){if(t.length===0)return n.length>0&&r.push(n),r.length>0?r:[];let i="";t[0].content===" "&&(i=" ",t.shift());let a=t.shift()??{content:" ",type:"normal"},s=[...n];if(i!==""&&s.push({content:i,type:"normal"}),s.push(a),e(s))return g9(t,e,r,s);if(n.length>0)r.push(n),t.unshift(a);else if(a.content){let[l,u]=W7e(e,a);r.push([l]),u.content&&t.unshift(u)}return g9(t,e,r)}var pj=M(()=>{"use strict";o(H7e,"splitTextToChars");o(W7e,"splitWordToFitWidth");o(fj,"splitWordToFitWidthRecursion");o(dj,"splitLineToFitWidth");o(g9,"splitLineToFitWidthRecursion")});function mj(t,e){e&&t.attr("style",e)}async function Y7e(t,e,r,n,i=!1){let a=t.append("foreignObject");a.attr("width",`${10*r}px`),a.attr("height",`${10*r}px`);let s=a.append("xhtml:div"),l=e.label;e.label&&pi(e.label)&&(l=await hh(e.label.replace(je.lineBreakRegex,` +`),de()));let u=e.isNode?"nodeLabel":"edgeLabel",h=s.append("span");h.html(l),mj(h,e.labelStyle),h.attr("class",`${u} ${n}`),mj(s,e.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",r+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&s.attr("class","labelBkg");let f=s.node().getBoundingClientRect();return f.width===r&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",r+"px"),f=s.node().getBoundingClientRect()),a.node()}function y9(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function q7e(t,e,r){let n=t.append("text"),i=y9(n,1,e);v9(i,r);let a=i.node().getComputedTextLength();return n.remove(),a}function gj(t,e,r){let n=t.append("text"),i=y9(n,1,e);v9(i,[{content:r,type:"normal"}]);let a=i.node()?.getBoundingClientRect();return a&&n.remove(),a}function X7e(t,e,r,n=!1){let a=e.append("g"),s=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1"),u=0;for(let h of r){let f=o(p=>q7e(a,1.1,p)<=t,"checkWidth"),d=f(h)?[h]:dj(h,f);for(let p of d){let m=y9(l,u,1.1);v9(m,p),u++}}if(n){let h=l.node().getBBox(),f=2;return s.attr("x",h.x-f).attr("y",h.y-f).attr("width",h.width+2*f).attr("height",h.height+2*f),a.node()}else return l.node()}function v9(t,e){t.text(""),e.forEach((r,n)=>{let i=t.append("tspan").attr("font-style",r.type==="em"?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight",r.type==="strong"?"bold":"normal");n===0?i.text(r.content):i.text(" "+r.content)})}function x9(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,e=>``)}var Si,Dl=M(()=>{"use strict";Vt();fr();mr();ht();hj();hr();pj();o(mj,"applyStyle");o(Y7e,"addHtmlSpan");o(y9,"createTspan");o(q7e,"computeWidthOfText");o(gj,"computeDimensionOfText");o(X7e,"createFormattedText");o(v9,"updateTextContentAndStyles");o(x9,"replaceIconSubstring");Si=o(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},h)=>{if(Y.debug("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",u),a){let f=uj(e,h),d=x9(Ca(f)),p=e.replace(/\\\\/g,"\\"),m={isNode:s,label:pi(e)?p:d,labelStyle:r.replace("fill:","color:")};return await Y7e(t,m,l,i,u)}else{let f=e.replace(//g,"
    "),d=cj(f.replace("
    ","
    "),h),p=X7e(l,t,d,e?u:!1);if(s){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ze(p).attr("style",m)}else{let m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");ze(p).select("rect").attr("style",m.replace(/background:/g,"fill:"));let g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ze(p).select("text").attr("style",g)}return p}},"createText")});function Wt(t){let e=t.map((r,n)=>`${n===0?"M":"L"}${r.x},${r.y}`);return e.push("Z"),e.join(" ")}function zo(t,e,r,n,i,a){let s=[],u=r-t,h=n-e,f=u/a,d=2*Math.PI/f,p=e+h/2;for(let m=0;m<=50;m++){let g=m/50,y=t+g*u,v=p+i*Math.sin(d*(y-t));s.push({x:y,y:v})}return s}function k5(t,e,r,n,i,a){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;d{"use strict";Dl();Vt();mr();hs();fr();hr();ot=o(async(t,e,r)=>{let n,i=e.useHtmlLabels||xr(de()?.htmlLabels);r?n=r:n="node default";let a=t.insert("g").attr("class",n).attr("id",e.domId||e.id),s=a.insert("g").attr("class","label").attr("style",Fn(e.labelStyle)),l;e.label===void 0?l="":l=typeof e.label=="string"?e.label:e.label[0];let u=await Si(s,Tr(Ca(l),de()),{useHtmlLabels:i,width:e.width||de().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img}),h=u.getBBox(),f=(e?.padding??0)/2;if(i){let d=u.children[0],p=ze(u),m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=de().fontSize?de().fontSize:window.getComputedStyle(document.body).fontSize,w=5,[_=ur.fontSize]=Fo(b),T=_*w+"px";y.style.minWidth=T,y.style.maxWidth=T}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}return i?s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"):s.attr("transform","translate(0, "+-h.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:h,halfPadding:f,label:s}},"labelHelper"),T5=o(async(t,e,r)=>{let n=r.useHtmlLabels||xr(de()?.flowchart?.htmlLabels),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await Si(i,Tr(Ca(e),de()),{useHtmlLabels:n,width:r.width||de()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),l=r.padding/2;if(xr(de()?.flowchart?.htmlLabels)){let u=a.children[0],h=ze(a);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}return n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:l,label:i}},"insertLabel"),Qe=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds"),lt=o((t,e)=>(t.look==="handDrawn"?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses");o(Wt,"createPathFromPoints");o(zo,"generateFullSineWavePoints");o(k5,"generateCirclePoints")});function j7e(t,e){return t.intersect(e)}var yj,vj=M(()=>{"use strict";o(j7e,"intersectNode");yj=j7e});function K7e(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(K7e,"intersectEllipse");E5=K7e});function Q7e(t,e,r){return E5(t,e,e,r)}var xj,bj=M(()=>{"use strict";b9();o(Q7e,"intersectCircle");xj=Q7e});function Z7e(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&wj(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&wj(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function wj(t,e){return t*e>0}var Tj,kj=M(()=>{"use strict";o(Z7e,"intersectLine");o(wj,"sameSign");Tj=Z7e});function J7e(t,e,r){let n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(f){s=Math.min(s,f.x),l=Math.min(l,f.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));let u=n-t.width/2-s,h=i-t.height/2-l;for(let f=0;f1&&a.sort(function(f,d){let p=f.x-r.x,m=f.y-r.y,g=Math.sqrt(p*p+m*m),y=d.x-r.x,v=d.y-r.y,x=Math.sqrt(y*y+v*v);return g{"use strict";kj();o(J7e,"intersectPolygon");Ej=J7e});var eAe,Oh,w9=M(()=>{"use strict";eAe=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Oh=eAe});var qe,qt=M(()=>{"use strict";vj();bj();b9();Sj();w9();qe={node:yj,circle:xj,ellipse:E5,polygon:Ej,rect:Oh}});var Cj,mc,tAe,et,Ze,Xt=M(()=>{"use strict";Vt();Cj=o(t=>{let{handDrawnSeed:e}=de();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),mc=o(t=>{let e=tAe([...t.cssCompiledStyles||[],...t.cssStyles||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),tAe=o(t=>{let e=new Map;return t.forEach(r=>{let[n,i]=r.split(":");e.set(n.trim(),i?.trim())}),e},"styles2Map"),et=o(t=>{let{stylesArray:e}=mc(t),r=[],n=[],i=[],a=[];return e.forEach(s=>{let l=s[0];l==="color"||l==="font-size"||l==="font-family"||l==="font-weight"||l==="font-style"||l==="text-decoration"||l==="text-align"||l==="text-transform"||l==="line-height"||l==="letter-spacing"||l==="word-spacing"||l==="text-shadow"||l==="text-overflow"||l==="white-space"||l==="word-wrap"||l==="word-break"||l==="overflow-wrap"||l==="hyphens"?r.push(s.join(":")+" !important"):(n.push(s.join(":")+" !important"),l.includes("stroke")&&i.push(s.join(":")+" !important"),l==="fill"&&a.push(s.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),Ze=o((t,e)=>{let{themeVariables:r,handDrawnSeed:n}=de(),{nodeBorder:i,mainBkg:a}=r,{stylesMap:s}=mc(t);return Object.assign({roughness:.7,fill:s.get("fill")||a,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||i,seed:n,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e)},"userNodeOverrides")});function T9(t,e,r){if(t&&t.length){let[n,i]=e,a=Math.PI/180*r,s=Math.cos(a),l=Math.sin(a);for(let u of t){let[h,f]=u;u[0]=(h-n)*s-(f-i)*l+n,u[1]=(h-n)*l+(f-i)*s+i}}}function rAe(t,e){return t[0]===e[0]&&t[1]===e[1]}function nAe(t,e,r,n=1){let i=r,a=Math.max(e,.1),s=t[0]&&t[0][0]&&typeof t[0][0]=="number"?[t]:t,l=[0,0];if(i)for(let h of s)T9(h,l,i);let u=function(h,f,d){let p=[];for(let b of h){let w=[...b];rAe(w[0],w[w.length-1])||w.push([w[0][0],w[0][1]]),w.length>2&&p.push(w)}let m=[];f=Math.max(f,.1);let g=[];for(let b of p)for(let w=0;wb.yminw.ymin?1:b.xw.x?1:b.ymax===w.ymax?0:(b.ymax-w.ymax)/Math.abs(b.ymax-w.ymax)),!g.length)return m;let y=[],v=g[0].ymin,x=0;for(;y.length||g.length;){if(g.length){let b=-1;for(let w=0;wv);w++)b=w;g.splice(0,b+1).forEach(w=>{y.push({s:v,edge:w})})}if(y=y.filter(b=>!(b.edge.ymax<=v)),y.sort((b,w)=>b.edge.x===w.edge.x?0:(b.edge.x-w.edge.x)/Math.abs(b.edge.x-w.edge.x)),(d!==1||x%f==0)&&y.length>1)for(let b=0;b=y.length)break;let _=y[b].edge,T=y[w].edge;m.push([[Math.round(_.x),v],[Math.round(T.x),v]])}v+=d,y.forEach(b=>{b.edge.x=b.edge.x+d*b.edge.islope}),x++}return m}(s,a,n);if(i){for(let h of s)T9(h,l,-i);(function(h,f,d){let p=[];h.forEach(m=>p.push(...m)),T9(p,f,d)})(u,l,-i)}return u}function yv(t,e){var r;let n=e.hachureAngle+90,i=e.hachureGap;i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1));let a=1;return e.roughness>=1&&(((r=e.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(a=i),nAe(t,i,n,a||1)}function M5(t){let e=t[0],r=t[1];return Math.sqrt(Math.pow(e[0]-r[0],2)+Math.pow(e[1]-r[1],2))}function E9(t,e){return t.type===e}function F9(t){let e=[],r=function(s){let l=new Array;for(;s!=="";)if(s.match(/^([ \t\r\n,]+)/))s=s.substr(RegExp.$1.length);else if(s.match(/^([aAcChHlLmMqQsStTvVzZ])/))l[l.length]={type:iAe,text:RegExp.$1},s=s.substr(RegExp.$1.length);else{if(!s.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];l[l.length]={type:k9,text:`${parseFloat(RegExp.$1)}`},s=s.substr(RegExp.$1.length)}return l[l.length]={type:Aj,text:""},l}(t),n="BOD",i=0,a=r[i];for(;!E9(a,Aj);){let s=0,l=[];if(n==="BOD"){if(a.text!=="M"&&a.text!=="m")return F9("M0,0"+t);i++,s=S5[a.text],n=a.text}else E9(a,k9)?s=S5[n]:(i++,s=S5[a.text],n=a.text);if(!(i+sf%2?h+r:h+e);a.push({key:"C",data:u}),e=u[4],r=u[5];break}case"Q":a.push({key:"Q",data:[...l]}),e=l[2],r=l[3];break;case"q":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"Q",data:u}),e=u[2],r=u[3];break}case"A":a.push({key:"A",data:[...l]}),e=l[5],r=l[6];break;case"a":e+=l[5],r+=l[6],a.push({key:"A",data:[l[0],l[1],l[2],l[3],l[4],e,r]});break;case"H":a.push({key:"H",data:[...l]}),e=l[0];break;case"h":e+=l[0],a.push({key:"H",data:[e]});break;case"V":a.push({key:"V",data:[...l]}),r=l[0];break;case"v":r+=l[0],a.push({key:"V",data:[r]});break;case"S":a.push({key:"S",data:[...l]}),e=l[2],r=l[3];break;case"s":{let u=l.map((h,f)=>f%2?h+r:h+e);a.push({key:"S",data:u}),e=u[2],r=u[3];break}case"T":a.push({key:"T",data:[...l]}),e=l[0],r=l[1];break;case"t":e+=l[0],r+=l[1],a.push({key:"T",data:[e,r]});break;case"Z":case"z":a.push({key:"Z",data:[]}),e=n,r=i}return a}function Pj(t){let e=[],r="",n=0,i=0,a=0,s=0,l=0,u=0;for(let{key:h,data:f}of t){switch(h){case"M":e.push({key:"M",data:[...f]}),[n,i]=f,[a,s]=f;break;case"C":e.push({key:"C",data:[...f]}),n=f[4],i=f[5],l=f[2],u=f[3];break;case"L":e.push({key:"L",data:[...f]}),[n,i]=f;break;case"H":n=f[0],e.push({key:"L",data:[n,i]});break;case"V":i=f[0],e.push({key:"L",data:[n,i]});break;case"S":{let d=0,p=0;r==="C"||r==="S"?(d=n+(n-l),p=i+(i-u)):(d=n,p=i),e.push({key:"C",data:[d,p,...f]}),l=f[0],u=f[1],n=f[2],i=f[3];break}case"T":{let[d,p]=f,m=0,g=0;r==="Q"||r==="T"?(m=n+(n-l),g=i+(i-u)):(m=n,g=i);let y=n+2*(m-n)/3,v=i+2*(g-i)/3,x=d+2*(m-d)/3,b=p+2*(g-p)/3;e.push({key:"C",data:[y,v,x,b,d,p]}),l=m,u=g,n=d,i=p;break}case"Q":{let[d,p,m,g]=f,y=n+2*(d-n)/3,v=i+2*(p-i)/3,x=m+2*(d-m)/3,b=g+2*(p-g)/3;e.push({key:"C",data:[y,v,x,b,m,g]}),l=d,u=p,n=m,i=g;break}case"A":{let d=Math.abs(f[0]),p=Math.abs(f[1]),m=f[2],g=f[3],y=f[4],v=f[5],x=f[6];d===0||p===0?(e.push({key:"C",data:[n,i,v,x,v,x]}),n=v,i=x):(n!==v||i!==x)&&(Bj(n,i,v,x,d,p,m,g,y).forEach(function(b){e.push({key:"C",data:b})}),n=v,i=x);break}case"Z":e.push({key:"Z",data:[]}),n=a,i=s}r=h}return e}function pv(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function Bj(t,e,r,n,i,a,s,l,u,h){let f=(d=s,Math.PI*d/180);var d;let p=[],m=0,g=0,y=0,v=0;if(h)[m,g,y,v]=h;else{[t,e]=pv(t,e,-f),[r,n]=pv(r,n,-f);let R=(t-r)/2,S=(e-n)/2,O=R*R/(i*i)+S*S/(a*a);O>1&&(O=Math.sqrt(O),i*=O,a*=O);let N=i*i,P=a*a,F=N*P-N*S*S-P*R*R,B=N*S*S+P*R*R,$=(l===u?-1:1)*Math.sqrt(Math.abs(F/B));y=$*i*S/a+(t+r)/2,v=$*-a*R/i+(e+n)/2,m=Math.asin(parseFloat(((e-v)/a).toFixed(9))),g=Math.asin(parseFloat(((n-v)/a).toFixed(9))),tg&&(m-=2*Math.PI),!u&&g>m&&(g-=2*Math.PI)}let x=g-m;if(Math.abs(x)>120*Math.PI/180){let R=g,S=r,O=n;g=u&&g>m?m+120*Math.PI/180*1:m+120*Math.PI/180*-1,p=Bj(r=y+i*Math.cos(g),n=v+a*Math.sin(g),S,O,i,a,s,0,u,[g,R,y,v])}x=g-m;let b=Math.cos(m),w=Math.sin(m),_=Math.cos(g),T=Math.sin(g),E=Math.tan(x/4),L=4/3*i*E,C=4/3*a*E,A=[t,e],I=[t+L*w,e-C*b],D=[r+L*T,n-C*_],k=[r,n];if(I[0]=2*A[0]-I[0],I[1]=2*A[1]-I[1],h)return[I,D,k].concat(p);{p=[I,D,k].concat(p);let R=[];for(let S=0;S2){let i=[];for(let a=0;a2*Math.PI&&(m=0,g=2*Math.PI);let y=2*Math.PI/u.curveStepCount,v=Math.min(y/2,(g-m)/2),x=Mj(v,h,f,d,p,m,g,1,u);if(!u.disableMultiStroke){let b=Mj(v,h,f,d,p,m,g,1.5,u);x.push(...b)}return s&&(l?x.push(...Ph(h,f,h+d*Math.cos(m),f+p*Math.sin(m),u),...Ph(h,f,h+d*Math.cos(g),f+p*Math.sin(g),u)):x.push({op:"lineTo",data:[h,f]},{op:"lineTo",data:[h+d*Math.cos(m),f+p*Math.sin(m)]})),{type:"path",ops:x}}function Dj(t,e){let r=Pj(Oj(F9(t))),n=[],i=[0,0],a=[0,0];for(let{key:s,data:l}of r)switch(s){case"M":a=[l[0],l[1]],i=[l[0],l[1]];break;case"L":n.push(...Ph(a[0],a[1],l[0],l[1],e)),a=[l[0],l[1]];break;case"C":{let[u,h,f,d,p,m]=l;n.push(...oAe(u,h,f,d,p,m,a,e)),a=[p,m];break}case"Z":n.push(...Ph(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function S9(t,e){let r=[];for(let n of t)if(n.length){let i=e.maxRandomnessOffset||0,a=n.length;if(a>2){r.push({op:"move",data:[n[0][0]+nr(i,e),n[0][1]+nr(i,e)]});for(let s=1;s500?.4:-.0016668*u+1.233334;let f=i.maxRandomnessOffset||0;f*f*100>l&&(f=u/10);let d=f/2,p=.2+.2*Gj(i),m=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;m=nr(m,i,h),g=nr(g,i,h);let y=[],v=o(()=>nr(d,i,h),"M"),x=o(()=>nr(f,i,h),"k"),b=i.preserveVertices;return a&&(s?y.push({op:"move",data:[t+(b?0:v()),e+(b?0:v())]}):y.push({op:"move",data:[t+(b?0:nr(f,i,h)),e+(b?0:nr(f,i,h))]})),s?y.push({op:"bcurveTo",data:[m+t+(r-t)*p+v(),g+e+(n-e)*p+v(),m+t+2*(r-t)*p+v(),g+e+2*(n-e)*p+v(),r+(b?0:v()),n+(b?0:v())]}):y.push({op:"bcurveTo",data:[m+t+(r-t)*p+x(),g+e+(n-e)*p+x(),m+t+2*(r-t)*p+x(),g+e+2*(n-e)*p+x(),r+(b?0:x()),n+(b?0:x())]}),y}function C5(t,e,r){if(!t.length)return[];let n=[];n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]),n.push([t[0][0]+nr(e,r),t[0][1]+nr(e,r)]);for(let i=1;i3){let a=[],s=1-r.curveTightness;i.push({op:"move",data:[t[1][0],t[1][1]]});for(let l=1;l+21&&i.push(l)):i.push(l),i.push(t[e+3])}else{let u=t[e+0],h=t[e+1],f=t[e+2],d=t[e+3],p=Sd(u,h,.5),m=Sd(h,f,.5),g=Sd(f,d,.5),y=Sd(p,m,.5),v=Sd(m,g,.5),x=Sd(y,v,.5);O9([u,p,y,x],0,r,i),O9([x,v,g,d],0,r,i)}var a,s;return i}function cAe(t,e){return R5(t,0,t.length,e)}function R5(t,e,r,n,i){let a=i||[],s=t[e],l=t[r-1],u=0,h=1;for(let f=e+1;fu&&(u=d,h=f)}return Math.sqrt(u)>n?(R5(t,e,h+1,n,a),R5(t,h,r,n,a)):(a.length||a.push(s),a.push(l)),a}function C9(t,e=.15,r){let n=[],i=(t.length-1)/3;for(let a=0;a0?R5(n,0,n.length,r):n}var gv,A9,_9,L9,D9,N9,ks,R9,iAe,k9,Aj,S5,aAe,to,sm,P9,A5,B9,Ke,jt=M(()=>{"use strict";o(T9,"t");o(rAe,"e");o(nAe,"s");o(yv,"n");gv=class{static{o(this,"o")}constructor(e){this.helper=e}fillPolygons(e,r){return this._fillPolygons(e,r)}_fillPolygons(e,r){let n=yv(e,r);return{type:"fillSketch",ops:this.renderLines(n,r)}}renderLines(e,r){let n=[];for(let i of e)n.push(...this.helper.doubleLineOps(i[0][0],i[0][1],i[1][0],i[1][1],r));return n}};o(M5,"a");A9=class extends gv{static{o(this,"h")}fillPolygons(e,r){let n=r.hachureGap;n<0&&(n=4*r.strokeWidth),n=Math.max(n,.1);let i=yv(e,Object.assign({},r,{hachureGap:n})),a=Math.PI/180*r.hachureAngle,s=[],l=.5*n*Math.cos(a),u=.5*n*Math.sin(a);for(let[h,f]of i)M5([h,f])&&s.push([[h[0]-l,h[1]+u],[...f]],[[h[0]+l,h[1]-u],[...f]]);return{type:"fillSketch",ops:this.renderLines(s,r)}}},_9=class extends gv{static{o(this,"r")}fillPolygons(e,r){let n=this._fillPolygons(e,r),i=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),a=this._fillPolygons(e,i);return n.ops=n.ops.concat(a.ops),n}},L9=class{static{o(this,"i")}constructor(e){this.helper=e}fillPolygons(e,r){let n=yv(e,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(n,r)}dotsOnLines(e,r){let n=[],i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);let a=r.fillWeight;a<0&&(a=r.strokeWidth/2);let s=i/4;for(let l of e){let u=M5(l),h=u/i,f=Math.ceil(h)-1,d=u-f*i,p=(l[0][0]+l[1][0])/2-i/4,m=Math.min(l[0][1],l[1][1]);for(let g=0;g{let l=M5(s),u=Math.floor(l/(n+i)),h=(l+i-u*(n+i))/2,f=s[0],d=s[1];f[0]>d[0]&&(f=s[1],d=s[0]);let p=Math.atan((d[1]-f[1])/(d[0]-f[0]));for(let m=0;m{let s=M5(a),l=Math.round(s/(2*r)),u=a[0],h=a[1];u[0]>h[0]&&(u=a[1],h=a[0]);let f=Math.atan((h[1]-u[1])/(h[0]-u[0]));for(let d=0;d2*Math.PI&&(L=0,C=2*Math.PI);let A=(C-L)/b.curveStepCount,I=[];for(let D=L;D<=C;D+=A)I.push([w+T*Math.cos(D),_+E*Math.sin(D)]);return I.push([w+T*Math.cos(C),_+E*Math.sin(C)]),I.push([w,_]),am([I],b)}(e,r,n,i,a,s,h));return h.stroke!==to&&f.push(d),this._d("arc",f,h)}curve(e,r){let n=this._o(r),i=[],a=_j(e,n);if(n.fill&&n.fill!==to)if(n.fillStyle==="solid"){let s=_j(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(s.ops)})}else{let s=[],l=e;if(l.length){let u=typeof l[0][0]=="number"?[l]:l;for(let h of u)h.length<3?s.push(...h):h.length===3?s.push(...C9(Ij([h[0],h[0],h[1],h[2]]),10,(1+n.roughness)/2)):s.push(...C9(Ij(h),10,(1+n.roughness)/2))}s.length&&i.push(am([s],n))}return n.stroke!==to&&i.push(a),this._d("curve",i,n)}polygon(e,r){let n=this._o(r),i=[],a=_5(e,!0,n);return n.fill&&(n.fillStyle==="solid"?i.push(S9([e],n)):i.push(am([e],n))),n.stroke!==to&&i.push(a),this._d("polygon",i,n)}path(e,r){let n=this._o(r),i=[];if(!e)return this._d("path",i,n);e=(e||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");let a=n.fill&&n.fill!=="transparent"&&n.fill!==to,s=n.stroke!==to,l=!!(n.simplification&&n.simplification<1),u=function(f,d,p){let m=Pj(Oj(F9(f))),g=[],y=[],v=[0,0],x=[],b=o(()=>{x.length>=4&&y.push(...C9(x,d)),x=[]},"i"),w=o(()=>{b(),y.length&&(g.push(y),y=[])},"c");for(let{key:T,data:E}of m)switch(T){case"M":w(),v=[E[0],E[1]],y.push(v);break;case"L":b(),y.push([E[0],E[1]]);break;case"C":if(!x.length){let L=y.length?y[y.length-1]:v;x.push([L[0],L[1]])}x.push([E[0],E[1]]),x.push([E[2],E[3]]),x.push([E[4],E[5]]);break;case"Z":b(),y.push([v[0],v[1]])}if(w(),!p)return g;let _=[];for(let T of g){let E=cAe(T,p);E.length&&_.push(E)}return _}(e,1,l?4-4*(n.simplification||1):(1+n.roughness)/2),h=Dj(e,n);if(a)if(n.fillStyle==="solid")if(u.length===1){let f=Dj(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));i.push({type:"fillPath",ops:this._mergedShape(f.ops)})}else i.push(S9(u,n));else i.push(am(u,n));return s&&(l?u.forEach(f=>{i.push(_5(f,!1,n))}):i.push(h)),this._d("path",i,n)}opsToPath(e,r){let n="";for(let i of e.ops){let a=typeof r=="number"&&r>=0?i.data.map(s=>+s.toFixed(r)):i.data;switch(i.op){case"move":n+=`M${a[0]} ${a[1]} `;break;case"bcurveTo":n+=`C${a[0]} ${a[1]}, ${a[2]} ${a[3]}, ${a[4]} ${a[5]} `;break;case"lineTo":n+=`L${a[0]} ${a[1]} `}}return n.trim()}toPaths(e){let r=e.sets||[],n=e.options||this.defaultOptions,i=[];for(let a of r){let s=null;switch(a.type){case"path":s={d:this.opsToPath(a),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:to};break;case"fillPath":s={d:this.opsToPath(a),stroke:to,strokeWidth:0,fill:n.fill||to};break;case"fillSketch":s=this.fillSketch(a,n)}s&&i.push(s)}return i}fillSketch(e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),{d:this.opsToPath(e),stroke:r.fill||to,strokeWidth:n,fill:to}}_mergedShape(e){return e.filter((r,n)=>n===0||r.op!=="move")}},P9=class{static{o(this,"st")}constructor(e,r){this.canvas=e,this.ctx=this.canvas.getContext("2d"),this.gen=new sm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.ctx,a=e.options.fixedDecimalPlaceDigits;for(let s of r)switch(s.type){case"path":i.save(),i.strokeStyle=n.stroke==="none"?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,s,a),i.restore();break;case"fillPath":{i.save(),i.fillStyle=n.fill||"";let l=e.shape==="curve"||e.shape==="polygon"||e.shape==="path"?"evenodd":"nonzero";this._drawToContext(i,s,a,l),i.restore();break}case"fillSketch":this.fillSketch(i,s,n)}}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||"",e.lineWidth=i,this._drawToContext(e,r,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,r,n,i="nonzero"){e.beginPath();for(let a of r.ops){let s=typeof n=="number"&&n>=0?a.data.map(l=>+l.toFixed(n)):a.data;switch(a.op){case"move":e.moveTo(s[0],s[1]);break;case"bcurveTo":e.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5]);break;case"lineTo":e.lineTo(s[0],s[1])}}r.type==="fillPath"?e.fill(i):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s),s}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s),s}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s),s}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a),a}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n),n}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n),n}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h),h}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n),n}path(e,r){let n=this.gen.path(e,r);return this.draw(n),n}},A5="http://www.w3.org/2000/svg",B9=class{static{o(this,"ot")}constructor(e,r){this.svg=e,this.gen=new sm(r)}draw(e){let r=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(A5,"g"),s=e.options.fixedDecimalPlaceDigits;for(let l of r){let u=null;switch(l.type){case"path":u=i.createElementNS(A5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke",n.stroke),u.setAttribute("stroke-width",n.strokeWidth+""),u.setAttribute("fill","none"),n.strokeLineDash&&u.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&u.setAttribute("stroke-dashoffset",`${n.strokeLineDashOffset}`);break;case"fillPath":u=i.createElementNS(A5,"path"),u.setAttribute("d",this.opsToPath(l,s)),u.setAttribute("stroke","none"),u.setAttribute("stroke-width","0"),u.setAttribute("fill",n.fill||""),e.shape!=="curve"&&e.shape!=="polygon"||u.setAttribute("fill-rule","evenodd");break;case"fillSketch":u=this.fillSketch(i,l,n)}u&&a.appendChild(u)}return a}fillSketch(e,r,n){let i=n.fillWeight;i<0&&(i=n.strokeWidth/2);let a=e.createElementNS(A5,"path");return a.setAttribute("d",this.opsToPath(r,n.fixedDecimalPlaceDigits)),a.setAttribute("stroke",n.fill||""),a.setAttribute("stroke-width",i+""),a.setAttribute("fill","none"),n.fillLineDash&&a.setAttribute("stroke-dasharray",n.fillLineDash.join(" ").trim()),n.fillLineDashOffset&&a.setAttribute("stroke-dashoffset",`${n.fillLineDashOffset}`),a}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,r){return this.gen.opsToPath(e,r)}line(e,r,n,i,a){let s=this.gen.line(e,r,n,i,a);return this.draw(s)}rectangle(e,r,n,i,a){let s=this.gen.rectangle(e,r,n,i,a);return this.draw(s)}ellipse(e,r,n,i,a){let s=this.gen.ellipse(e,r,n,i,a);return this.draw(s)}circle(e,r,n,i){let a=this.gen.circle(e,r,n,i);return this.draw(a)}linearPath(e,r){let n=this.gen.linearPath(e,r);return this.draw(n)}polygon(e,r){let n=this.gen.polygon(e,r);return this.draw(n)}arc(e,r,n,i,a,s,l=!1,u){let h=this.gen.arc(e,r,n,i,a,s,l,u);return this.draw(h)}curve(e,r){let n=this.gen.curve(e,r);return this.draw(n)}path(e,r){let n=this.gen.path(e,r);return this.draw(n)}},Ke={canvas:o((t,e)=>new P9(t,e),"canvas"),svg:o((t,e)=>new B9(t,e),"svg"),generator:o(t=>new sm(t),"generator"),newSeed:o(()=>sm.newSeed(),"newSeed")}});function $j(t,e){let{labelStyles:r}=et(e);e.labelStyle=r;let n=lt(e),i=n;n||(i="anchor");let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=1,{cssStyles:l}=e,u=Ke.svg(a),h=Ze(e,{fill:"black",stroke:"none",fillStyle:"solid"});e.look!=="handDrawn"&&(h.roughness=0);let f=u.circle(0,0,s*2,h),d=a.insert(()=>f,":first-child");return d.attr("class","anchor").attr("style",Fn(l)),Qe(e,d),e.intersect=function(p){return Y.info("Circle intersect",e,s,p),qe.circle(e,s,p)},a}var Vj=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o($j,"anchor")});function Uj(t,e,r,n,i,a,s){let u=(t+r)/2,h=(e+n)/2,f=Math.atan2(n-e,r-t),d=(r-t)/2,p=(n-e)/2,m=d/i,g=p/a,y=Math.sqrt(m**2+g**2);if(y>1)throw new Error("The given radii are too small to create an arc between the points.");let v=Math.sqrt(1-y**2),x=u+v*a*Math.sin(f)*(s?-1:1),b=h-v*i*Math.cos(f)*(s?-1:1),w=Math.atan2((e-b)/a,(t-x)/i),T=Math.atan2((n-b)/a,(r-x)/i)-w;s&&T<0&&(T+=2*Math.PI),!s&&T>0&&(T-=2*Math.PI);let E=[];for(let L=0;L<20;L++){let C=L/19,A=w+C*T,I=x+i*Math.cos(A),D=b+a*Math.sin(A);E.push({x:I,y:D})}return E}async function Hj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding+20,l=a.height+e.padding,u=l/2,h=u/(2.5+l/50),{cssStyles:f}=e,d=[{x:s/2,y:-l/2},{x:-s/2,y:-l/2},...Uj(-s/2,-l/2,-s/2,l/2,h,u,!1),{x:s/2,y:l/2},...Uj(s/2,l/2,s/2,-l/2,h,u,!0)],p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Wt(d),y=p.path(g,m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${h/2}, 0)`),Qe(e,v),e.intersect=function(x){return qe.polygon(e,d,x)},i}var Wj=M(()=>{"use strict";Ft();qt();Xt();jt();o(Uj,"generateArcPoints");o(Hj,"bowTieRect")});function Aa(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var Su=M(()=>{"use strict";o(Aa,"insertPolygonShape")});async function Yj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.height+e.padding,l=12,u=a.width+e.padding+l,h=0,f=u,d=-s,p=0,m=[{x:h+l,y:d},{x:f,y:d},{x:f,y:p},{x:h,y:p},{x:h,y:d+l},{x:h+l,y:d}],g,{cssStyles:y}=e;if(e.look==="handDrawn"){let v=Ke.svg(i),x=Ze(e,{}),b=Wt(m),w=v.path(b,x);g=i.insert(()=>w,":first-child").attr("transform",`translate(${-u/2}, ${s/2})`),y&&g.attr("style",y)}else g=Aa(i,u,s,m);return n&&g.attr("style",n),Qe(e,g),e.intersect=function(v){return qe.polygon(e,m,v)},i}var qj=M(()=>{"use strict";Ft();qt();Xt();jt();Su();Ft();o(Yj,"card")});function Xj(t,e){let{nodeStyles:r}=et(e);e.label="";let n=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:i}=e,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],l=Ke.svg(n),u=Ze(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=Wt(s),f=l.path(h,u),d=n.insert(()=>f,":first-child");return i&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",i),r&&e.look!=="handDrawn"&&d.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(p){return qe.polygon(e,s,p)},n}var jj=M(()=>{"use strict";qt();jt();Xt();Ft();o(Xj,"choice")});async function Kj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await ot(t,e,lt(e)),l=a.width/2+s,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Ke.svg(i),d=Ze(e,{}),p=f.circle(0,0,l*2,d);u=i.insert(()=>p,":first-child"),u.attr("class","basic label-container").attr("style",Fn(h))}else u=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",n).attr("r",l).attr("cx",0).attr("cy",0);return Qe(e,u),e.intersect=function(f){return Y.info("Circle intersect",e,l,f),qe.circle(e,l,f)},i}var Qj=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o(Kj,"circle")});function uAe(t){let e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),n=t*2,i={x:n/2*e,y:n/2*r},a={x:-(n/2)*e,y:n/2*r},s={x:-(n/2)*e,y:-(n/2)*r},l={x:n/2*e,y:-(n/2)*r};return`M ${a.x},${a.y} L ${l.x},${l.y} + M ${i.x},${i.y} L ${s.x},${s.y}`}function Zj(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),{cssStyles:s}=e,l=Ke.svg(i),u=Ze(e,{});e.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");let h=l.circle(0,0,a*2,u),f=uAe(a),d=l.path(f,u),p=i.insert(()=>h,":first-child");return p.insert(()=>d),s&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",s),n&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",n),Qe(e,p),e.intersect=function(m){return Y.info("crossedCircle intersect",e,{radius:a,point:m}),qe.circle(e,a,m)},i}var Jj=M(()=>{"use strict";ht();Ft();Xt();jt();qt();o(uAe,"createLine");o(Zj,"crossedCircle")});function Bh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dw,":first-child").attr("stroke-opacity",0),_.insert(()=>x,":first-child"),_.attr("class","text"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(${h}, 0)`),s.attr("transform",`translate(${-l/2+h-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,p,T)},i}var tK=M(()=>{"use strict";Ft();qt();Xt();jt();o(Bh,"generateCirclePoints");o(eK,"curlyBraceLeft")});function Fh(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dw,":first-child").attr("stroke-opacity",0),_.insert(()=>x,":first-child"),_.attr("class","text"),f&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(${-h}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,p,T)},i}var nK=M(()=>{"use strict";Ft();qt();Xt();jt();o(Fh,"generateCirclePoints");o(rK,"curlyBraceRight")});function _a(t,e,r,n=100,i=0,a=180){let s=[],l=i*Math.PI/180,f=(a*Math.PI/180-l)/(n-1);for(let d=0;dL,":first-child").attr("stroke-opacity",0),C.insert(()=>b,":first-child"),C.insert(()=>T,":first-child"),C.attr("class","text"),f&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",f),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(${h-h/4}, 0)`),s.attr("transform",`translate(${-l/2+(e.padding??0)/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,C),e.intersect=function(A){return qe.polygon(e,m,A)},i}var aK=M(()=>{"use strict";Ft();qt();Xt();jt();o(_a,"generateCirclePoints");o(iK,"curlyBraces")});async function sK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=80,l=20,u=Math.max(s,(a.width+(e.padding??0)*2)*1.25,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=u,y=h,v=g-f,x=y/4,b=[{x:v,y:0},{x,y:0},{x:0,y:y/2},{x,y},{x:v,y},...k5(-v,-y/2,f,50,270,90)],w=Wt(b),_=p.path(w,m),T=i.insert(()=>_,":first-child");return T.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&T.selectChildren("path").attr("style",n),T.attr("transform",`translate(${-u/2}, ${-h/2})`),Qe(e,T),e.intersect=function(E){return qe.polygon(e,b,E)},i}var oK=M(()=>{"use strict";Ft();qt();Xt();jt();o(sK,"curvedTrapezoid")});async function lK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+e.padding,e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+e.padding,e.height??0),d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ke.svg(i),g=fAe(0,0,l,f,u,h),y=dAe(0,h,l,f,u,h),v=m.path(g,Ze(e,{})),x=m.path(y,Ze(e,{fill:"none"}));d=i.insert(()=>x,":first-child"),d=i.insert(()=>v,":first-child"),d.attr("class","basic label-container"),p&&d.attr("style",p)}else{let m=hAe(0,0,l,f,u,h);d=i.insert("path",":first-child").attr("d",m).attr("class","basic label-container").attr("style",Fn(p)).attr("style",n)}return d.attr("label-offset-y",h),d.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,d),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+(e.padding??0)/1.5-(a.y-(a.top??0))})`),e.intersect=function(m){let g=qe.rect(e,m),y=g.x-(e.x??0);if(u!=0&&(Math.abs(y)<(e.width??0)/2||Math.abs(y)==(e.width??0)/2&&Math.abs(g.y-(e.y??0))>(e.height??0)/2-h)){let v=h*h*(1-y*y/(u*u));v>0&&(v=Math.sqrt(v)),v=h-v,m.y-(e.y??0)>0&&(v=-v),g.y+=v}return g},i}var hAe,fAe,dAe,cK=M(()=>{"use strict";Ft();qt();Xt();jt();hr();hAe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createCylinderPathD"),fAe=o((t,e,r,n,i,a)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`].join(" "),"createOuterCylinderPathD"),dAe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(lK,"cylinder")});async function uK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=a.width+e.padding,u=a.height+e.padding,h=u*.2,f=-l/2,d=-u/2-h/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d+h},{x:-f,y:d+h},{x:-f,y:-d},{x:f,y:-d},{x:f,y:d},{x:-f,y:d},{x:-f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${f+(e.padding??0)/2-(a.x-(a.left??0))}, ${d+h+(e.padding??0)/2-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.rect(e,b)},i}var hK=M(()=>{"use strict";Ft();qt();Xt();jt();o(uK,"dividedRectangle")});async function fK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,halfPadding:s}=await ot(t,e,lt(e)),u=a.width/2+s+5,h=a.width/2+s,f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{roughness:.2,strokeWidth:2.5}),g=Ze(e,{roughness:.2,strokeWidth:1.5}),y=p.circle(0,0,u*2,m),v=p.circle(0,0,h*2,g);f=i.insert("g",":first-child"),f.attr("class",Fn(e.cssClasses)).attr("style",Fn(d)),f.node()?.appendChild(y),f.node()?.appendChild(v)}else{f=i.insert("g",":first-child");let p=f.insert("circle",":first-child"),m=f.insert("circle");f.attr("class","basic label-container").attr("style",n),p.attr("class","outer-circle").attr("style",n).attr("r",u).attr("cx",0).attr("cy",0),m.attr("class","inner-circle").attr("style",n).attr("r",h).attr("cx",0).attr("cy",0)}return Qe(e,f),e.intersect=function(p){return Y.info("DoubleCircle intersect",e,u,p),qe.circle(e,u,p)},i}var dK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();hr();o(fK,"doublecircle")});function pK(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),s=7,{cssStyles:l}=e,u=Ke.svg(a),{nodeBorder:h}=r,f=Ze(e,{fillStyle:"solid"});e.look!=="handDrawn"&&(f.roughness=0);let d=u.circle(0,0,s*2,f),p=a.insert(()=>d,":first-child");return p.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",l),i&&e.look!=="handDrawn"&&p.selectAll("path").attr("style",i),Qe(e,p),e.intersect=function(m){return Y.info("filledCircle intersect",e,{radius:s,point:m}),qe.circle(e,s,m)},a}var mK=M(()=>{"use strict";jt();ht();qt();Xt();Ft();o(pK,"filledCircle")});async function gK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=a.width+(e.padding??0),u=l+a.height,h=l+a.height,f=[{x:0,y:-u},{x:h,y:-u},{x:h/2,y:0}],{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=Wt(f),y=p.path(g,m),v=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`);return d&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),e.width=l,e.height=u,Qe(e,v),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-u/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(x){return Y.info("Triangle intersect",e,f,x),qe.polygon(e,f,x)},i}var yK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Ft();o(gK,"flippedTriangle")});function vK(t,e,{dir:r,config:{state:n,themeVariables:i}}){let{nodeStyles:a}=et(e);e.label="";let s=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:l}=e,u=Math.max(70,e?.width??0),h=Math.max(10,e?.height??0);r==="LR"&&(u=Math.max(10,e?.width??0),h=Math.max(70,e?.height??0));let f=-1*u/2,d=-1*h/2,p=Ke.svg(s),m=Ze(e,{stroke:i.lineColor,fill:i.lineColor});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=p.rectangle(f,d,u,h,m),y=s.insert(()=>g,":first-child");l&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",l),a&&e.look!=="handDrawn"&&y.selectAll("path").attr("style",a),Qe(e,y);let v=n?.padding??0;return e.width&&e.height&&(e.width+=v/2||0,e.height+=v/2||0),e.intersect=function(x){return qe.rect(e,x)},s}var xK=M(()=>{"use strict";jt();qt();Xt();Ft();o(vK,"forkJoin")});async function bK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let i=80,a=50,{shapeSvg:s,bbox:l}=await ot(t,e,lt(e)),u=Math.max(i,l.width+(e.padding??0)*2,e?.width??0),h=Math.max(a,l.height+(e.padding??0)*2,e?.height??0),f=h/2,{cssStyles:d}=e,p=Ke.svg(s),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-u/2,y:-h/2},{x:u/2-f,y:-h/2},...k5(-u/2+f,0,f,50,90,270),{x:u/2-f,y:h/2},{x:-u/2,y:h/2}],y=Wt(g),v=p.path(y,m),x=s.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),Qe(e,x),e.intersect=function(b){return Y.info("Pill intersect",e,{radius:f,point:b}),qe.polygon(e,g,b)},s}var wK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();o(bK,"halfRoundedRectangle")});async function TK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=4,l=a.height+e.padding,u=l/s,h=a.width+2*u+e.padding,f=[{x:u,y:0},{x:h-u,y:0},{x:h,y:-l/2},{x:h-u,y:-l},{x:u,y:-l},{x:0,y:-l/2}],d,{cssStyles:p}=e;if(e.look==="handDrawn"){let m=Ke.svg(i),g=Ze(e,{}),y=pAe(0,0,h,l,u),v=m.path(y,g);d=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${l/2})`),p&&d.attr("style",p)}else d=Aa(i,h,l,f);return n&&d.attr("style",n),e.width=h,e.height=l,Qe(e,d),e.intersect=function(m){return qe.polygon(e,f,m)},i}var pAe,kK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();pAe=o((t,e,r,n,i)=>[`M${t+i},${e}`,`L${t+r-i},${e}`,`L${t+r},${e-n/2}`,`L${t+r-i},${e-n}`,`L${t+i},${e-n}`,`L${t},${e-n/2}`,"Z"].join(" "),"createHexagonPathD");o(TK,"hexagon")});async function EK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.label="",e.labelStyle=r;let{shapeSvg:i}=await ot(t,e,lt(e)),a=Math.max(30,e?.width??0),s=Math.max(30,e?.height??0),{cssStyles:l}=e,u=Ke.svg(i),h=Ze(e,{});e.look!=="handDrawn"&&(h.roughness=0,h.fillStyle="solid");let f=[{x:0,y:0},{x:a,y:0},{x:0,y:s},{x:a,y:s}],d=Wt(f),p=u.path(d,h),m=i.insert(()=>p,":first-child");return m.attr("class","basic label-container"),l&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",l),n&&e.look!=="handDrawn"&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-a/2}, ${-s/2})`),Qe(e,m),e.intersect=function(g){return Y.info("Pill intersect",e,{points:f}),qe.polygon(e,f,g)},i}var SK=M(()=>{"use strict";ht();Ft();qt();Xt();jt();o(EK,"hourglass")});async function CK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ot(t,e,"icon-shape default"),p=e.pos==="t",m=l,g=l,{nodeBorder:y}=r,{stylesMap:v}=mc(e),x=-g/2,b=-m/2,w=e.label?8:0,_=Ke.svg(h),T=Ze(e,{stroke:"none",fill:"none"});e.look!=="handDrawn"&&(T.roughness=0,T.fillStyle="solid");let E=_.rectangle(x,b,g,m,T),L=Math.max(g,f.width),C=m+f.height+w,A=_.rectangle(-L/2,-C/2,L,C,{...T,fill:"transparent",stroke:"none"}),I=h.insert(()=>E,":first-child"),D=h.insert(()=>A);if(e.icon){let k=h.append("g");k.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let R=k.node().getBBox(),S=R.width,O=R.height,N=R.x,P=R.y;k.attr("transform",`translate(${-S/2-N},${p?f.height/2+w/2-O/2-P:-f.height/2-w/2-O/2-P})`),k.attr("style",`color: ${v.get("stroke")??y};`)}return d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${p?-C/2:C/2-f.height})`),I.attr("transform",`translate(0,${p?f.height/2+w/2:-f.height/2-w/2})`),Qe(e,D),e.intersect=function(k){if(Y.info("iconSquare intersect",e,k),!e.label)return qe.rect(e,k);let R=e.x??0,S=e.y??0,O=e.height??0,N=[];return p?N=[{x:R-f.width/2,y:S-O/2},{x:R+f.width/2,y:S-O/2},{x:R+f.width/2,y:S-O/2+f.height+w},{x:R+g/2,y:S-O/2+f.height+w},{x:R+g/2,y:S+O/2},{x:R-g/2,y:S+O/2},{x:R-g/2,y:S-O/2+f.height+w},{x:R-f.width/2,y:S-O/2+f.height+w}]:N=[{x:R-g/2,y:S-O/2},{x:R+g/2,y:S-O/2},{x:R+g/2,y:S-O/2+m},{x:R+f.width/2,y:S-O/2+m},{x:R+f.width/2/2,y:S+O/2},{x:R-f.width/2,y:S+O/2},{x:R-f.width/2,y:S-O/2+m},{x:R-g/2,y:S-O/2+m}],qe.polygon(e,N,k)},h}var AK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();Ft();o(CK,"icon")});async function _K(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,label:d}=await ot(t,e,"icon-shape default"),p=20,m=e.label?8:0,g=e.pos==="t",{nodeBorder:y,mainBkg:v}=r,{stylesMap:x}=mc(e),b=Ke.svg(h),w=Ze(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let _=x.get("fill");w.stroke=_??v;let T=h.append("g");e.icon&&T.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let E=T.node().getBBox(),L=E.width,C=E.height,A=E.x,I=E.y,D=Math.max(L,C)*Math.SQRT2+p*2,k=b.circle(0,0,D,w),R=Math.max(D,f.width),S=D+f.height+m,O=b.rectangle(-R/2,-S/2,R,S,{...w,fill:"transparent",stroke:"none"}),N=h.insert(()=>k,":first-child"),P=h.insert(()=>O);return T.attr("transform",`translate(${-L/2-A},${g?f.height/2+m/2-C/2-I:-f.height/2-m/2-C/2-I})`),T.attr("style",`color: ${x.get("stroke")??y};`),d.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-S/2:S/2-f.height})`),N.attr("transform",`translate(0,${g?f.height/2+m/2:-f.height/2-m/2})`),Qe(e,P),e.intersect=function(F){return Y.info("iconSquare intersect",e,F),qe.rect(e,F)},h}var LK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();Ft();o(_K,"iconCircle")});var La,zh=M(()=>{"use strict";La=o((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function DK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ot(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,_=-g/2,T=e.label?8:0,E=Ke.svg(h),L=Ze(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let C=b.get("fill");L.stroke=C??x;let A=E.path(La(w,_,y,g,5),L),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...L,fill:"transparent",stroke:"none"}),R=h.insert(()=>A,":first-child").attr("class","icon-shape2"),S=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,F=N.height,B=N.x,$=N.y;O.attr("transform",`translate(${-P/2-B},${m?f.height/2+T/2-F/2-$:-f.height/2-T/2-F/2-$})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qe(e,S),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return qe.rect(e,O);let N=e.x??0,P=e.y??0,F=e.height??0,B=[];return m?B=[{x:N-f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2+f.height+T},{x:N+y/2,y:P-F/2+f.height+T},{x:N+y/2,y:P+F/2},{x:N-y/2,y:P+F/2},{x:N-y/2,y:P-F/2+f.height+T},{x:N-f.width/2,y:P-F/2+f.height+T}]:B=[{x:N-y/2,y:P-F/2},{x:N+y/2,y:P-F/2},{x:N+y/2,y:P-F/2+g},{x:N+f.width/2,y:P-F/2+g},{x:N+f.width/2/2,y:P+F/2},{x:N-f.width/2,y:P+F/2},{x:N-f.width/2,y:P-F/2+g},{x:N-y/2,y:P-F/2+g}],qe.polygon(e,B,O)},h}var NK=M(()=>{"use strict";jt();ht();Kc();qt();Xt();zh();Ft();o(DK,"iconRounded")});async function RK(t,e,{config:{themeVariables:r,flowchart:n}}){let{labelStyles:i}=et(e);e.labelStyle=i;let a=e.assetHeight??48,s=e.assetWidth??48,l=Math.max(a,s),u=n?.wrappingWidth;e.width=Math.max(l,u??0);let{shapeSvg:h,bbox:f,halfPadding:d,label:p}=await ot(t,e,"icon-shape default"),m=e.pos==="t",g=l+d*2,y=l+d*2,{nodeBorder:v,mainBkg:x}=r,{stylesMap:b}=mc(e),w=-y/2,_=-g/2,T=e.label?8:0,E=Ke.svg(h),L=Ze(e,{});e.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");let C=b.get("fill");L.stroke=C??x;let A=E.path(La(w,_,y,g,.1),L),I=Math.max(y,f.width),D=g+f.height+T,k=E.rectangle(-I/2,-D/2,I,D,{...L,fill:"transparent",stroke:"none"}),R=h.insert(()=>A,":first-child"),S=h.insert(()=>k);if(e.icon){let O=h.append("g");O.html(`${await wo(e.icon,{height:l,width:l,fallbackPrefix:""})}`);let N=O.node().getBBox(),P=N.width,F=N.height,B=N.x,$=N.y;O.attr("transform",`translate(${-P/2-B},${m?f.height/2+T/2-F/2-$:-f.height/2-T/2-F/2-$})`),O.attr("style",`color: ${b.get("stroke")??v};`)}return p.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${m?-D/2:D/2-f.height})`),R.attr("transform",`translate(0,${m?f.height/2+T/2:-f.height/2-T/2})`),Qe(e,S),e.intersect=function(O){if(Y.info("iconSquare intersect",e,O),!e.label)return qe.rect(e,O);let N=e.x??0,P=e.y??0,F=e.height??0,B=[];return m?B=[{x:N-f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2},{x:N+f.width/2,y:P-F/2+f.height+T},{x:N+y/2,y:P-F/2+f.height+T},{x:N+y/2,y:P+F/2},{x:N-y/2,y:P+F/2},{x:N-y/2,y:P-F/2+f.height+T},{x:N-f.width/2,y:P-F/2+f.height+T}]:B=[{x:N-y/2,y:P-F/2},{x:N+y/2,y:P-F/2},{x:N+y/2,y:P-F/2+g},{x:N+f.width/2,y:P-F/2+g},{x:N+f.width/2/2,y:P+F/2},{x:N-f.width/2,y:P+F/2},{x:N-f.width/2,y:P-F/2+g},{x:N-y/2,y:P-F/2+g}],qe.polygon(e,B,O)},h}var MK=M(()=>{"use strict";jt();ht();Kc();qt();zh();Xt();Ft();o(RK,"iconSquare")});async function IK(t,e,{config:{flowchart:r}}){let n=new Image;n.src=e?.img??"",await n.decode();let i=Number(n.naturalWidth.toString().replace("px","")),a=Number(n.naturalHeight.toString().replace("px",""));e.imageAspectRatio=i/a;let{labelStyles:s}=et(e);e.labelStyle=s;let l=r?.wrappingWidth;e.defaultWidth=r?.wrappingWidth;let u=Math.max(e.label?l??0:0,e?.assetWidth??i),h=e.constraint==="on"&&e?.assetHeight?e.assetHeight*e.imageAspectRatio:u,f=e.constraint==="on"?h/e.imageAspectRatio:e?.assetHeight??a;e.width=Math.max(h,l??0);let{shapeSvg:d,bbox:p,label:m}=await ot(t,e,"image-shape default"),g=e.pos==="t",y=-h/2,v=-f/2,x=e.label?8:0,b=Ke.svg(d),w=Ze(e,{});e.look!=="handDrawn"&&(w.roughness=0,w.fillStyle="solid");let _=b.rectangle(y,v,h,f,w),T=Math.max(h,p.width),E=f+p.height+x,L=b.rectangle(-T/2,-E/2,T,E,{...w,fill:"none",stroke:"none"}),C=d.insert(()=>_,":first-child"),A=d.insert(()=>L);if(e.img){let I=d.append("image");I.attr("href",e.img),I.attr("width",h),I.attr("height",f),I.attr("preserveAspectRatio","none"),I.attr("transform",`translate(${-h/2},${g?E/2-f:-E/2})`)}return m.attr("transform",`translate(${-p.width/2-(p.x-(p.left??0))},${g?-f/2-p.height/2-x/2:f/2-p.height/2+x/2})`),C.attr("transform",`translate(0,${g?p.height/2+x/2:-p.height/2-x/2})`),Qe(e,A),e.intersect=function(I){if(Y.info("iconSquare intersect",e,I),!e.label)return qe.rect(e,I);let D=e.x??0,k=e.y??0,R=e.height??0,S=[];return g?S=[{x:D-p.width/2,y:k-R/2},{x:D+p.width/2,y:k-R/2},{x:D+p.width/2,y:k-R/2+p.height+x},{x:D+h/2,y:k-R/2+p.height+x},{x:D+h/2,y:k+R/2},{x:D-h/2,y:k+R/2},{x:D-h/2,y:k-R/2+p.height+x},{x:D-p.width/2,y:k-R/2+p.height+x}]:S=[{x:D-h/2,y:k-R/2},{x:D+h/2,y:k-R/2},{x:D+h/2,y:k-R/2+f},{x:D+p.width/2,y:k-R/2+f},{x:D+p.width/2/2,y:k+R/2},{x:D-p.width/2,y:k+R/2},{x:D-p.width/2,y:k-R/2+f},{x:D-h/2,y:k-R/2+f}],qe.polygon(e,S,I)},d}var OK=M(()=>{"use strict";jt();ht();qt();Xt();Ft();o(IK,"imageSquare")});async function PK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=[{x:0,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:-3*l/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var BK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(PK,"inv_trapezoid")});async function Cd(t,e,r){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n;let{shapeSvg:a,bbox:s}=await ot(t,e,lt(e)),l=Math.max(s.width+r.labelPaddingX*2,e?.width||0),u=Math.max(s.height+r.labelPaddingY*2,e?.height||0),h=-l/2,f=-u/2,d,{rx:p,ry:m}=e,{cssStyles:g}=e;if(r?.rx&&r.ry&&(p=r.rx,m=r.ry),e.look==="handDrawn"){let y=Ke.svg(a),v=Ze(e,{}),x=p||m?y.path(La(h,f,l,u,p||0),v):y.rectangle(h,f,l,u,v);d=a.insert(()=>x,":first-child"),d.attr("class","basic label-container").attr("style",Fn(g))}else d=a.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",i).attr("rx",Fn(p)).attr("ry",Fn(m)).attr("x",h).attr("y",f).attr("width",l).attr("height",u);return Qe(e,d),e.intersect=function(y){return qe.rect(e,y)},a}var vv=M(()=>{"use strict";Ft();qt();zh();Xt();jt();hr();o(Cd,"drawRect")});async function FK(t,e){let{shapeSvg:r,bbox:n,label:i}=await ot(t,e,"label"),a=r.insert("rect",":first-child");return a.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),i.attr("transform",`translate(${-(n.width/2)-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Qe(e,a),e.intersect=function(u){return qe.rect(e,u)},r}var zK=M(()=>{"use strict";vv();Ft();qt();o(FK,"labelRect")});async function GK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:0,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:-(3*l)/6,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var $K=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(GK,"lean_left")});async function VK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),u=[{x:-3*l/6,y:0},{x:s,y:0},{x:s+3*l/6,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var UK=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(VK,"lean_right")});function HK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",lt(e)).attr("id",e.domId??e.id),{cssStyles:a}=e,s=Math.max(35,e?.width??0),l=Math.max(35,e?.height??0),u=7,h=[{x:s,y:0},{x:0,y:l+u/2},{x:s-2*u,y:l+u/2},{x:0,y:2*l},{x:s,y:l-u/2},{x:2*u,y:l-u/2}],f=Ke.svg(i),d=Ze(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=Wt(h),m=f.path(p,d),g=i.insert(()=>m,":first-child");return a&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",a),n&&e.look!=="handDrawn"&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(-${s/2},${-l})`),Qe(e,g),e.intersect=function(y){return Y.info("lightningBolt intersect",e,y),qe.polygon(e,h,y)},i}var WK=M(()=>{"use strict";ht();Ft();Xt();jt();qt();Ft();o(HK,"lightningBolt")});async function YK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0),e.width??0),u=l/2,h=u/(2.5+l/50),f=Math.max(a.height+h+(e.padding??0),e.height??0),d=f*.1,p,{cssStyles:m}=e;if(e.look==="handDrawn"){let g=Ke.svg(i),y=gAe(0,0,l,f,u,h,d),v=yAe(0,h,l,f,u,h),x=Ze(e,{}),b=g.path(y,x),w=g.path(v,x);i.insert(()=>w,":first-child").attr("class","line"),p=i.insert(()=>b,":first-child"),p.attr("class","basic label-container"),m&&p.attr("style",m)}else{let g=mAe(0,0,l,f,u,h,d);p=i.insert("path",":first-child").attr("d",g).attr("class","basic label-container").attr("style",Fn(m)).attr("style",n)}return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(f/2+h)})`),Qe(e,p),s.attr("transform",`translate(${-(a.width/2)-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),e.intersect=function(g){let y=qe.rect(e,g),v=y.x-(e.x??0);if(u!=0&&(Math.abs(v)<(e.width??0)/2||Math.abs(v)==(e.width??0)/2&&Math.abs(y.y-(e.y??0))>(e.height??0)/2-h)){let x=h*h*(1-v*v/(u*u));x>0&&(x=Math.sqrt(x)),x=h-x,g.y-(e.y??0)>0&&(x=-x),y.y+=x}return y},i}var mAe,gAe,yAe,qK=M(()=>{"use strict";Ft();qt();Xt();jt();hr();mAe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),gAe=o((t,e,r,n,i,a,s)=>[`M${t},${e+a}`,`M${t+r},${e+a}`,`a${i},${a} 0,0,0 ${-r},0`,`l0,${n}`,`a${i},${a} 0,0,0 ${r},0`,`l0,${-n}`,`M${t},${e+a+s}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),yAe=o((t,e,r,n,i,a)=>[`M${t-r/2},${-n/2}`,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD");o(YK,"linedCylinder")});async function XK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:-l/2-l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:f/2},...zo(-l/2-l/2*.1,f/2,l/2+l/2*.1,f/2,h,.8),{x:l/2+l/2*.1,y:-f/2},{x:-l/2-l/2*.1,y:-f/2},{x:-l/2,y:-f/2},{x:-l/2,y:f/2*1.1},{x:-l/2,y:-f/2}],y=p.polygon(g.map(x=>[x.x,x.y]),m),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)+l/2*.1/2-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,v),e.intersect=function(x){return qe.polygon(e,g,x)},i}var jK=M(()=>{"use strict";Ft();qt();jt();Xt();o(XK,"linedWaveEdgedRect")});async function KK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:f-h,y:d+h},{x:f-h,y:d+u+h},{x:f+l-h,y:d+u+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d+u-h},{x:f+l+h,y:d+u-h},{x:f+l+h,y:d-h},{x:f+h,y:d-h},{x:f+h,y:d},{x:f,y:d},{x:f,y:d+h}],v=[{x:f,y:d+h},{x:f+l-h,y:d+h},{x:f+l-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d},{x:f,y:d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Wt(y),b=m.path(x,g),w=Wt(v),_=m.path(w,{...g,fill:"none"}),T=i.insert(()=>_,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)-h-(a.x-(a.left??0))}, ${-(a.height/2)+h-(a.y-(a.top??0))})`),Qe(e,T),e.intersect=function(E){return qe.polygon(e,y,E)},i}var QK=M(()=>{"use strict";Ft();Xt();jt();qt();o(KK,"multiRect")});async function ZK(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=u+h,d=-l/2,p=-f/2,m=5,{cssStyles:g}=e,y=zo(d-m,p+f+m,d+l-m,p+f+m,h,.8),v=y?.[y.length-1],x=[{x:d-m,y:p+m},{x:d-m,y:p+f+m},...y,{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:v.y-2*m},{x:d+l+m,y:v.y-2*m},{x:d+l+m,y:p-m},{x:d+m,y:p-m},{x:d+m,y:p},{x:d,y:p},{x:d,y:p+m}],b=[{x:d,y:p+m},{x:d+l-m,y:p+m},{x:d+l-m,y:v.y-m},{x:d+l,y:v.y-m},{x:d+l,y:p},{x:d,y:p}],w=Ke.svg(i),_=Ze(e,{});e.look!=="handDrawn"&&(_.roughness=0,_.fillStyle="solid");let T=Wt(x),E=w.path(T,_),L=Wt(b),C=w.path(L,_),A=i.insert(()=>E,":first-child");return A.insert(()=>C),A.attr("class","basic label-container"),g&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",g),n&&e.look!=="handDrawn"&&A.selectAll("path").attr("style",n),A.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-(a.width/2)-m-(a.x-(a.left??0))}, ${-(a.height/2)+m-h/2-(a.y-(a.top??0))})`),Qe(e,A),e.intersect=function(I){return qe.polygon(e,x,I)},i}var JK=M(()=>{"use strict";Ft();qt();jt();Xt();o(ZK,"multiWaveEdgedRectangle")});async function eQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n,e.useHtmlLabels||Sr().flowchart?.htmlLabels!==!1||(e.centerLabel=!0);let{shapeSvg:s,bbox:l}=await ot(t,e,lt(e)),u=Math.max(l.width+(e.padding??0)*2,e?.width??0),h=Math.max(l.height+(e.padding??0)*2,e?.height??0),f=-u/2,d=-h/2,{cssStyles:p}=e,m=Ke.svg(s),g=Ze(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=m.rectangle(f,d,u,h,g),v=s.insert(()=>y,":first-child");return v.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",p),i&&e.look!=="handDrawn"&&v.selectAll("path").attr("style",i),Qe(e,v),e.intersect=function(x){return qe.rect(e,x)},s}var tQ=M(()=>{"use strict";jt();qt();Xt();Ft();Ua();o(eQ,"note")});async function rQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding,l=a.height+e.padding,u=s+l,h=[{x:u/2,y:0},{x:u,y:-u/2},{x:u/2,y:-u},{x:0,y:-u/2}],f,{cssStyles:d}=e;if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{}),g=vAe(0,0,u),y=p.path(g,m);f=i.insert(()=>y,":first-child").attr("transform",`translate(${-u/2}, ${u/2})`),d&&f.attr("style",d)}else f=Aa(i,u,u,h);return n&&f.attr("style",n),Qe(e,f),e.intersect=function(p){return Y.debug(`APA12 Intersect called SPLIT +point:`,p,` +node: +`,e,` +res:`,qe.polygon(e,h,p)),qe.polygon(e,h,p)},i}var vAe,nQ=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Su();vAe=o((t,e,r)=>[`M${t+r/2},${e}`,`L${t+r},${e-r/2}`,`L${t+r/2},${e-r}`,`L${t},${e-r/2}`,"Z"].join(" "),"createDecisionBoxPathD");o(rQ,"question")});async function iQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0),e?.width??0),u=Math.max(a.height+(e.padding??0),e?.height??0),h=-l/2,f=-u/2,d=f/2,p=[{x:h+d,y:f},{x:h,y:0},{x:h+d,y:-f},{x:-h,y:-f},{x:-h,y:f}],{cssStyles:m}=e,g=Ke.svg(i),y=Ze(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=Wt(p),x=g.path(v,y),b=i.insert(()=>x,":first-child");return b.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),b.attr("transform",`translate(${-d/2},0)`),s.attr("transform",`translate(${-d/2-a.width/2-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(w){return qe.polygon(e,p,w)},i}var aQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(iQ,"rect_left_inv_arrow")});function xAe(t,e){e&&t.attr("style",e)}async function bAe(t){let e=ze(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label;t.label&&pi(t.label)&&(n=await hh(t.label.replace(je.lineBreakRegex,` +`),de()));let i=t.isNode?"nodeLabel":"edgeLabel";return r.html('"+n+""),xAe(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var wAe,gc,I5=M(()=>{"use strict";mr();ht();Vt();fr();hr();o(xAe,"applyStyle");o(bAe,"addHtmlLabel");wAe=o(async(t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),xr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),Y.info("vertexText"+i);let a={isNode:n,label:Ca(i).replace(/fa[blrs]?:fa-[\w-]+/g,l=>``),labelStyle:e&&e.replace("fill:","color:")};return await bAe(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),gc=wAe});async function sQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let i;e.cssClasses?i="node "+e.cssClasses:i="node default";let a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),s=a.insert("g"),l=a.insert("g").attr("class","label").attr("style",n),u=e.description,h=e.label,f=l.node().appendChild(await gc(h,e.labelStyle,!0,!0)),d={width:0,height:0};if(xr(de()?.flowchart?.htmlLabels)){let C=f.children[0],A=ze(f);d=C.getBoundingClientRect(),A.attr("width",d.width),A.attr("height",d.height)}Y.info("Text 2",u);let p=u||[],m=f.getBBox(),g=l.node().appendChild(await gc(p.join?p.join("
    "):p,e.labelStyle,!0,!0)),y=g.children[0],v=ze(g);d=y.getBoundingClientRect(),v.attr("width",d.width),v.attr("height",d.height);let x=(e.padding||0)/2;ze(g).attr("transform","translate( "+(d.width>m.width?0:(m.width-d.width)/2)+", "+(m.height+x+5)+")"),ze(f).attr("transform","translate( "+(d.width(Y.debug("Rough node insert CXC",I),D),":first-child"),E=a.insert(()=>(Y.debug("Rough node insert CXC",I),I),":first-child")}else E=s.insert("rect",":first-child"),L=s.insert("line"),E.attr("class","outer title-state").attr("style",n).attr("x",-d.width/2-x).attr("y",-d.height/2-x).attr("width",d.width+(e.padding||0)).attr("height",d.height+(e.padding||0)),L.attr("class","divider").attr("x1",-d.width/2-x).attr("x2",d.width/2+x).attr("y1",-d.height/2-x+m.height+x).attr("y2",-d.height/2-x+m.height+x);return Qe(e,E),e.intersect=function(C){return qe.rect(e,C)},a}var oQ=M(()=>{"use strict";mr();fr();Ft();I5();qt();Xt();jt();Vt();zh();ht();o(sQ,"rectWithTitle")});async function lQ(t,e){let r={rx:5,ry:5,classes:"",labelPaddingX:(e?.padding||0)*1,labelPaddingY:(e?.padding||0)*1};return Cd(t,e,r)}var cQ=M(()=>{"use strict";vv();o(lQ,"roundedRect")});async function uQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=e?.padding??0,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=-a.width/2-l,d=-a.height/2-l,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=[{x:f,y:d},{x:f+u+8,y:d},{x:f+u+8,y:d+h},{x:f-8,y:d+h},{x:f-8,y:d},{x:f,y:d},{x:f,y:d+h}],v=m.polygon(y.map(b=>[b.x,b.y]),g),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container").attr("style",Fn(p)),n&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),p&&e.look!=="handDrawn"&&x.selectAll("path").attr("style",n),s.attr("transform",`translate(${-u/2+4+(e.padding??0)-(a.x-(a.left??0))},${-h/2+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.rect(e,b)},i}var hQ=M(()=>{"use strict";Ft();qt();Xt();jt();hr();o(uQ,"shadedProcess")});async function fQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=-l/2,f=-u/2,{cssStyles:d}=e,p=Ke.svg(i),m=Ze(e,{});e.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");let g=[{x:h,y:f},{x:h,y:f+u},{x:h+l,y:f+u},{x:h+l,y:f-u/2}],y=Wt(g),v=p.path(y,m),x=i.insert(()=>v,":first-child");return x.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",d),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),x.attr("transform",`translate(0, ${u/4})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))}, ${-u/4+(e.padding??0)-(a.y-(a.top??0))})`),Qe(e,x),e.intersect=function(b){return qe.polygon(e,g,b)},i}var dQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(fQ,"slopedRect")});async function pQ(t,e){let r={rx:0,ry:0,classes:"",labelPaddingX:(e?.padding||0)*2,labelPaddingY:(e?.padding||0)*1};return Cd(t,e,r)}var mQ=M(()=>{"use strict";vv();o(pQ,"squareRect")});async function gQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.height+e.padding,l=a.width+s/4+e.padding,u,{cssStyles:h}=e;if(e.look==="handDrawn"){let f=Ke.svg(i),d=Ze(e,{}),p=La(-l/2,-s/2,l,s,s/2),m=f.path(p,d);u=i.insert(()=>m,":first-child"),u.attr("class","basic label-container").attr("style",Fn(h))}else u=i.insert("rect",":first-child"),u.attr("class","basic label-container").attr("style",n).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return Qe(e,u),e.intersect=function(f){return qe.rect(e,f)},i}var yQ=M(()=>{"use strict";Ft();qt();Xt();jt();zh();hr();o(gQ,"stadium")});async function vQ(t,e){return Cd(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var xQ=M(()=>{"use strict";vv();o(vQ,"state")});function bQ(t,e,{config:{themeVariables:r}}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n;let{cssStyles:a}=e,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),f=Ke.svg(h),d=Ze(e,{});e.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");let p=f.circle(0,0,14,{...d,stroke:s,strokeWidth:2}),m=l??u,g=f.circle(0,0,5,{...d,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),y=h.insert(()=>p,":first-child");return y.insert(()=>g),a&&y.selectAll("path").attr("style",a),i&&y.selectAll("path").attr("style",i),Qe(e,y),e.intersect=function(v){return qe.circle(e,7,v)},h}var wQ=M(()=>{"use strict";jt();qt();Xt();Ft();o(bQ,"stateEnd")});function TQ(t,e,{config:{themeVariables:r}}){let{lineColor:n}=r,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if(e.look==="handDrawn"){let l=Ke.svg(i).circle(0,0,14,Cj(n));a=i.insert(()=>l),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=i.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return Qe(e,a),e.intersect=function(s){return qe.circle(e,7,s)},i}var kQ=M(()=>{"use strict";jt();qt();Xt();Ft();o(TQ,"stateStart")});async function EQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=(e?.padding||0)/2,l=a.width+e.padding,u=a.height+e.padding,h=-a.width/2-s,f=-a.height/2-s,d=[{x:0,y:0},{x:l,y:0},{x:l,y:-u},{x:0,y:-u},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-u},{x:-8,y:-u},{x:-8,y:0}];if(e.look==="handDrawn"){let p=Ke.svg(i),m=Ze(e,{}),g=p.rectangle(h-8,f,l+16,u,m),y=p.line(h,f,h,f+u,m),v=p.line(h+l,f,h+l,f+u,m);i.insert(()=>y,":first-child"),i.insert(()=>v,":first-child");let x=i.insert(()=>g,":first-child"),{cssStyles:b}=e;x.attr("class","basic label-container").attr("style",Fn(b)),Qe(e,x)}else{let p=Aa(i,l,u,d);n&&p.attr("style",n),Qe(e,p)}return e.intersect=function(p){return qe.polygon(e,d,p)},i}var SQ=M(()=>{"use strict";Ft();qt();Xt();jt();Su();hr();o(EQ,"subroutine")});async function CQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+(e.padding??0)*2,e?.width??0),l=Math.max(a.height+(e.padding??0)*2,e?.height??0),u=-s/2,h=-l/2,f=.2*l,d=.2*l,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:u-f/2,y:h},{x:u+s+f/2,y:h},{x:u+s+f/2,y:h+l},{x:u-f/2,y:h+l}],v=[{x:u+s-f/2,y:h+l},{x:u+s+f/2,y:h+l},{x:u+s+f/2,y:h+l-d}];e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=Wt(y),b=m.path(x,g),w=Wt(v),_=m.path(w,{...g,fillStyle:"solid"}),T=i.insert(()=>_,":first-child");return T.insert(()=>b,":first-child"),T.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qe(e,T),e.intersect=function(E){return qe.polygon(e,y,E)},i}var AQ=M(()=>{"use strict";Ft();Xt();jt();qt();o(CQ,"taggedRect")});async function _Q(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/4,f=.2*l,d=.2*u,p=u+h,{cssStyles:m}=e,g=Ke.svg(i),y=Ze(e,{});e.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");let v=[{x:-l/2-l/2*.1,y:p/2},...zo(-l/2-l/2*.1,p/2,l/2+l/2*.1,p/2,h,.8),{x:l/2+l/2*.1,y:-p/2},{x:-l/2-l/2*.1,y:-p/2}],x=-l/2+l/2*.1,b=-p/2-d*.4,w=[{x:x+l-f,y:(b+u)*1.4},{x:x+l,y:b+u-d},{x:x+l,y:(b+u)*.9},...zo(x+l,(b+u)*1.3,x+l-f,(b+u)*1.5,-u*.03,.5)],_=Wt(v),T=g.path(_,y),E=Wt(w),L=g.path(E,{...y,fillStyle:"solid"}),C=i.insert(()=>L,":first-child");return C.insert(()=>T,":first-child"),C.attr("class","basic label-container"),m&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",m),n&&e.look!=="handDrawn"&&C.selectAll("path").attr("style",n),C.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h/2-(a.y-(a.top??0))})`),Qe(e,C),e.intersect=function(A){return qe.polygon(e,v,A)},i}var LQ=M(()=>{"use strict";Ft();qt();jt();Xt();o(_Q,"taggedWaveEdgedRectangle")});async function DQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=Math.max(a.width+e.padding,e?.width||0),l=Math.max(a.height+e.padding,e?.height||0),u=-s/2,h=-l/2,f=i.insert("rect",":first-child");return f.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",u).attr("y",h).attr("width",s).attr("height",l),Qe(e,f),e.intersect=function(d){return qe.rect(e,d)},i}var NQ=M(()=>{"use strict";Ft();qt();Xt();o(DQ,"text")});async function RQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s,halfPadding:l}=await ot(t,e,lt(e)),u=e.look==="neo"?l*2:l,h=a.height+u,f=h/2,d=f/(2.5+h/50),p=a.width+d+u,{cssStyles:m}=e,g;if(e.look==="handDrawn"){let y=Ke.svg(i),v=kAe(0,0,p,h,d,f),x=EAe(0,0,p,h,d,f),b=y.path(v,Ze(e,{})),w=y.path(x,Ze(e,{fill:"none"}));g=i.insert(()=>w,":first-child"),g=i.insert(()=>b,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{let y=TAe(0,0,p,h,d,f);g=i.insert("path",":first-child").attr("d",y).attr("class","basic label-container").attr("style",Fn(m)).attr("style",n),g.attr("class","basic label-container"),m&&g.selectAll("path").attr("style",m),n&&g.selectAll("path").attr("style",n)}return g.attr("label-offset-x",d),g.attr("transform",`translate(${-p/2}, ${h/2} )`),s.attr("transform",`translate(${-(a.width/2)-d-(a.x-(a.left??0))}, ${-(a.height/2)-(a.y-(a.top??0))})`),Qe(e,g),e.intersect=function(y){let v=qe.rect(e,y),x=v.y-(e.y??0);if(f!=0&&(Math.abs(x)<(e.height??0)/2||Math.abs(x)==(e.height??0)/2&&Math.abs(v.x-(e.x??0))>(e.width??0)/2-d)){let b=d*d*(1-x*x/(f*f));b!=0&&(b=Math.sqrt(Math.abs(b))),b=d-b,y.x-(e.x??0)>0&&(b=-b),v.x+=b}return v},i}var TAe,kAe,EAe,MQ=M(()=>{"use strict";Ft();Xt();jt();qt();hr();TAe=o((t,e,r,n,i,a)=>`M${t},${e} + a${i},${a} 0,0,1 0,${-n} + l${r},0 + a${i},${a} 0,0,1 0,${n} + M${r},${-n} + a${i},${a} 0,0,0 0,${n} + l${-r},0`,"createCylinderPathD"),kAe=o((t,e,r,n,i,a)=>[`M${t},${e}`,`M${t+r},${e}`,`a${i},${a} 0,0,0 0,${-n}`,`l${-r},0`,`a${i},${a} 0,0,0 0,${n}`,`l${r},0`].join(" "),"createOuterCylinderPathD"),EAe=o((t,e,r,n,i,a)=>[`M${t+r/2},${-n/2}`,`a${i},${a} 0,0,0 0,${n}`].join(" "),"createInnerCylinderPathD");o(RQ,"tiltedCylinder")});async function IQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=a.width+e.padding,l=a.height+e.padding,u=[{x:-3*l/6,y:0},{x:s+3*l/6,y:0},{x:s,y:-l},{x:0,y:-l}],h,{cssStyles:f}=e;if(e.look==="handDrawn"){let d=Ke.svg(i),p=Ze(e,{}),m=Wt(u),g=d.path(m,p);h=i.insert(()=>g,":first-child").attr("transform",`translate(${-s/2}, ${l/2})`),f&&h.attr("style",f)}else h=Aa(i,s,l,u);return n&&h.attr("style",n),e.width=s,e.height=l,Qe(e,h),e.intersect=function(d){return qe.polygon(e,u,d)},i}var OQ=M(()=>{"use strict";Ft();qt();Xt();jt();Su();o(IQ,"trapezoid")});async function PQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=60,l=20,u=Math.max(s,a.width+(e.padding??0)*2,e?.width??0),h=Math.max(l,a.height+(e.padding??0)*2,e?.height??0),{cssStyles:f}=e,d=Ke.svg(i),p=Ze(e,{});e.look!=="handDrawn"&&(p.roughness=0,p.fillStyle="solid");let m=[{x:-u/2*.8,y:-h/2},{x:u/2*.8,y:-h/2},{x:u/2,y:-h/2*.6},{x:u/2,y:h/2},{x:-u/2,y:h/2},{x:-u/2,y:-h/2*.6}],g=Wt(m),y=d.path(g,p),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),f&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",f),n&&e.look!=="handDrawn"&&v.selectChildren("path").attr("style",n),Qe(e,v),e.intersect=function(x){return qe.polygon(e,m,x)},i}var BQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(PQ,"trapezoidalPentagon")});async function FQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=xr(de().flowchart?.htmlLabels),u=a.width+(e.padding??0),h=u+a.height,f=u+a.height,d=[{x:0,y:0},{x:f,y:0},{x:f/2,y:-h}],{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=Wt(d),v=m.path(y,g),x=i.insert(()=>v,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return p&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",p),n&&e.look!=="handDrawn"&&x.selectChildren("path").attr("style",n),e.width=u,e.height=h,Qe(e,x),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${h/2-(a.height+(e.padding??0)/(l?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(b){return Y.info("Triangle intersect",e,d,b),qe.polygon(e,d,b)},i}var zQ=M(()=>{"use strict";ht();Ft();qt();Xt();jt();Ft();fr();Vt();o(FQ,"triangle")});async function GQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=u/8,f=u+h,{cssStyles:d}=e,m=70-l,g=m>0?m/2:0,y=Ke.svg(i),v=Ze(e,{});e.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");let x=[{x:-l/2-g,y:f/2},...zo(-l/2-g,f/2,l/2+g,f/2,h,.8),{x:l/2+g,y:-f/2},{x:-l/2-g,y:-f/2}],b=Wt(x),w=y.path(b,v),_=i.insert(()=>w,":first-child");return _.attr("class","basic label-container"),d&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",d),n&&e.look!=="handDrawn"&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(0,${-h/2})`),s.attr("transform",`translate(${-l/2+(e.padding??0)-(a.x-(a.left??0))},${-u/2+(e.padding??0)-h-(a.y-(a.top??0))})`),Qe(e,_),e.intersect=function(T){return qe.polygon(e,x,T)},i}var $Q=M(()=>{"use strict";Ft();qt();jt();Xt();o(GQ,"waveEdgedRectangle")});async function VQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await ot(t,e,lt(e)),s=100,l=50,u=Math.max(a.width+(e.padding??0)*2,e?.width??0),h=Math.max(a.height+(e.padding??0)*2,e?.height??0),f=u/h,d=u,p=h;d>p*f?p=d/f:d=p*f,d=Math.max(d,s),p=Math.max(p,l);let m=Math.min(p*.2,p/4),g=p+m*2,{cssStyles:y}=e,v=Ke.svg(i),x=Ze(e,{});e.look!=="handDrawn"&&(x.roughness=0,x.fillStyle="solid");let b=[{x:-d/2,y:g/2},...zo(-d/2,g/2,d/2,g/2,m,1),{x:d/2,y:-g/2},...zo(d/2,-g/2,-d/2,-g/2,m,-1)],w=Wt(b),_=v.path(w,x),T=i.insert(()=>_,":first-child");return T.attr("class","basic label-container"),y&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",y),n&&e.look!=="handDrawn"&&T.selectAll("path").attr("style",n),Qe(e,T),e.intersect=function(E){return qe.polygon(e,b,E)},i}var UQ=M(()=>{"use strict";Ft();qt();Xt();jt();o(VQ,"waveRectangle")});async function HQ(t,e){let{labelStyles:r,nodeStyles:n}=et(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await ot(t,e,lt(e)),l=Math.max(a.width+(e.padding??0)*2,e?.width??0),u=Math.max(a.height+(e.padding??0)*2,e?.height??0),h=5,f=-l/2,d=-u/2,{cssStyles:p}=e,m=Ke.svg(i),g=Ze(e,{}),y=[{x:f-h,y:d-h},{x:f-h,y:d+u},{x:f+l,y:d+u},{x:f+l,y:d-h}],v=`M${f-h},${d-h} L${f+l},${d-h} L${f+l},${d+u} L${f-h},${d+u} L${f-h},${d-h} + M${f-h},${d} L${f+l},${d} + M${f},${d-h} L${f},${d+u}`;e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let x=m.path(v,g),b=i.insert(()=>x,":first-child");return b.attr("transform",`translate(${h/2}, ${h/2})`),b.attr("class","basic label-container"),p&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",p),n&&e.look!=="handDrawn"&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-(a.width/2)+h/2-(a.x-(a.left??0))}, ${-(a.height/2)+h/2-(a.y-(a.top??0))})`),Qe(e,b),e.intersect=function(w){return qe.polygon(e,y,w)},i}var WQ=M(()=>{"use strict";Ft();Xt();jt();qt();o(HQ,"windowPane")});async function YQ(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",lt(e)).attr("id",e.domId||e.id),l=null,u=null,h=null,f=null,d=0,p=0,m=0;if(l=s.insert("g").attr("class","annotation-group text"),e.annotations.length>0){let b=e.annotations[0];await O5(l,{text:`\xAB${b}\xBB`},0),d=l.node().getBBox().height}u=s.insert("g").attr("class","label-group text"),await O5(u,e,0,["font-weight: bolder"]);let g=u.node().getBBox();p=g.height,h=s.insert("g").attr("class","members-group text");let y=0;for(let b of e.members){let w=await O5(h,b,y,[b.parseClassifier()]);y+=w+a}m=h.node().getBBox().height,m<=0&&(m=i/2),f=s.insert("g").attr("class","methods-group text");let v=0;for(let b of e.methods){let w=await O5(f,b,v,[b.parseClassifier()]);v+=w+a}let x=s.node().getBBox();if(l!==null){let b=l.node().getBBox();l.attr("transform",`translate(${-b.width/2})`)}return u.attr("transform",`translate(${-g.width/2}, ${d})`),x=s.node().getBBox(),h.attr("transform",`translate(0, ${d+p+i*2})`),x=s.node().getBBox(),f.attr("transform",`translate(0, ${d+p+(m?m+i*4:i*2)})`),x=s.node().getBBox(),{shapeSvg:s,bbox:x}}async function O5(t,e,r,n=[]){let i=t.insert("g").attr("class","label").attr("style",n.join("; ")),a=Sr(),s="useHtmlLabels"in e?e.useHtmlLabels:xr(a.htmlLabels)??!0,l="";"text"in e?l=e.text:l=e.label,!s&&l.startsWith("\\")&&(l=l.substring(1)),pi(l)&&(s=!0);let u=await Si(i,i7(Ca(l)),{width:Js(l,a)+50,classes:"markdown-node-label",useHtmlLabels:s},a),h,f=1;if(s){let d=u.children[0],p=ze(u);f=d.innerHTML.split("
    ").length,d.innerHTML.includes("")&&(f+=d.innerHTML.split("").length-1);let m=d.getElementsByTagName("img");if(m){let g=l.replace(/]*>/g,"").trim()==="";await Promise.all([...m].map(y=>new Promise(v=>{function x(){if(y.style.display="flex",y.style.flexDirection="column",g){let b=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,_=parseInt(b,10)*5+"px";y.style.minWidth=_,y.style.maxWidth=_}else y.style.width="100%";v(y)}o(x,"setupImage"),setTimeout(()=>{y.complete&&x()}),y.addEventListener("error",x),y.addEventListener("load",x)})))}h=d.getBoundingClientRect(),p.attr("width",h.width),p.attr("height",h.height)}else{n.includes("font-weight: bolder")&&ze(u).selectAll("tspan").attr("font-weight",""),f=u.children.length;let d=u.children[0];(u.textContent===""||u.textContent.includes(">"))&&(d.textContent=l[0]+l.substring(1).replaceAll(">",">").replaceAll("<","<").trim(),l[1]===" "&&(d.textContent=d.textContent[0]+" "+d.textContent.substring(1))),d.textContent==="undefined"&&(d.textContent=""),h=u.getBBox()}return i.attr("transform","translate(0,"+(-h.height/(2*f)+r)+")"),h.height}var qQ=M(()=>{"use strict";mr();Ua();Ft();hr();Vt();Dl();fr();o(YQ,"textHelper");o(O5,"addText")});async function XQ(t,e){let r=de(),n=r.class.padding??12,i=n,a=e.useHtmlLabels??xr(r.htmlLabels)??!0,s=e;s.annotations=s.annotations??[],s.members=s.members??[],s.methods=s.methods??[];let{shapeSvg:l,bbox:u}=await YQ(t,e,r,a,i),{labelStyles:h,nodeStyles:f}=et(e);e.labelStyle=h,e.cssStyles=s.styles||"";let d=s.styles?.join(";")||f||"";e.cssStyles||(e.cssStyles=d.replaceAll("!important","").split(";"));let p=s.members.length===0&&s.methods.length===0&&!r.class?.hideEmptyMembersBox,m=Ke.svg(l),g=Ze(e,{});e.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");let y=u.width,v=u.height;s.members.length===0&&s.methods.length===0?v+=i:s.members.length>0&&s.methods.length===0&&(v+=i*2);let x=-y/2,b=-v/2,w=m.rectangle(x-n,b-n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0),y+2*n,v+2*n+(p?n*2:s.members.length===0&&s.methods.length===0?-n:0),g),_=l.insert(()=>w,":first-child");_.attr("class","basic label-container");let T=_.node().getBBox();l.selectAll(".text").each((A,I,D)=>{let k=ze(D[I]),R=k.attr("transform"),S=0;if(R){let F=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(R);F&&(S=parseFloat(F[2]))}let O=S+b+n-(p?n:s.members.length===0&&s.methods.length===0?-n/2:0);a||(O-=4);let N=x;(k.attr("class").includes("label-group")||k.attr("class").includes("annotation-group"))&&(N=-k.node()?.getBBox().width/2||0,l.selectAll("text").each(function(P,F,B){window.getComputedStyle(B[F]).textAnchor==="middle"&&(N=0)})),k.attr("transform",`translate(${N}, ${O})`)});let E=l.select(".annotation-group").node().getBBox().height-(p?n/2:0)||0,L=l.select(".label-group").node().getBBox().height-(p?n/2:0)||0,C=l.select(".members-group").node().getBBox().height-(p?n/2:0)||0;if(s.members.length>0||s.methods.length>0||p){let A=m.line(T.x,E+L+b+n,T.x+T.width,E+L+b+n,g);l.insert(()=>A).attr("class","divider").attr("style",d)}if(p||s.members.length>0||s.methods.length>0){let A=m.line(T.x,E+L+C+b+i*2+n,T.x+T.width,E+L+C+b+n+i*2,g);l.insert(()=>A).attr("class","divider").attr("style",d)}if(s.look!=="handDrawn"&&l.selectAll("path").attr("style",d),_.select(":nth-child(2)").attr("style",d),l.selectAll(".divider").select("path").attr("style",d),e.labelStyle?l.selectAll("span").attr("style",e.labelStyle):l.selectAll("span").attr("style",d),!a){let A=RegExp(/color\s*:\s*([^;]*)/),I=A.exec(d);if(I){let D=I[0].replace("color","fill");l.selectAll("tspan").attr("style",D)}else if(h){let D=A.exec(h);if(D){let k=D[0].replace("color","fill");l.selectAll("tspan").attr("style",k)}}}return Qe(e,_),e.intersect=function(A){return qe.rect(e,A)},l}var jQ=M(()=>{"use strict";Ft();Vt();mr();jt();Xt();qt();qQ();fr();o(XQ,"classBox")});async function KQ(t,e,{config:r}){let{labelStyles:n,nodeStyles:i}=et(e);e.labelStyle=n||"";let a=10,s=e.width;e.width=(e.width??200)-10;let{shapeSvg:l,bbox:u,label:h}=await ot(t,e,lt(e)),f=e.padding||10,d="",p;"ticket"in e&&e.ticket&&r?.kanban?.ticketBaseUrl&&(d=r?.kanban?.ticketBaseUrl.replace("#TICKET#",e.ticket),p=l.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",d).attr("target","_blank"));let m={useHtmlLabels:e.useHtmlLabels,labelStyle:e.labelStyle||"",width:e.width,img:e.img,padding:e.padding||8,centerLabel:!1},g,y;p?{label:g,bbox:y}=await T5(p,"ticket"in e&&e.ticket||"",m):{label:g,bbox:y}=await T5(l,"ticket"in e&&e.ticket||"",m);let{label:v,bbox:x}=await T5(l,"assigned"in e&&e.assigned||"",m);e.width=s;let b=10,w=e?.width||0,_=Math.max(y.height,x.height)/2,T=Math.max(u.height+b*2,e?.height||0)+_,E=-w/2,L=-T/2;h.attr("transform","translate("+(f-w/2)+", "+(-_-u.height/2)+")"),g.attr("transform","translate("+(f-w/2)+", "+(-_+u.height/2)+")"),v.attr("transform","translate("+(f+w/2-x.width-2*a)+", "+(-_+u.height/2)+")");let C,{rx:A,ry:I}=e,{cssStyles:D}=e;if(e.look==="handDrawn"){let k=Ke.svg(l),R=Ze(e,{}),S=A||I?k.path(La(E,L,w,T,A||0),R):k.rectangle(E,L,w,T,R);C=l.insert(()=>S,":first-child"),C.attr("class","basic label-container").attr("style",D||null)}else{C=l.insert("rect",":first-child"),C.attr("class","basic label-container __APA__").attr("style",i).attr("rx",A??5).attr("ry",I??5).attr("x",E).attr("y",L).attr("width",w).attr("height",T);let k="priority"in e&&e.priority;if(k){let R=l.append("line"),S=E+2,O=L+Math.floor((A??0)/2),N=L+T-Math.floor((A??0)/2);R.attr("x1",S).attr("y1",O).attr("x2",S).attr("y2",N).attr("stroke-width","4").attr("stroke",SAe(k))}}return Qe(e,C),e.height=T,e.intersect=function(k){return qe.rect(e,k)},l}var SAe,QQ=M(()=>{"use strict";Ft();qt();zh();Xt();jt();SAe=o(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority");o(KQ,"kanbanItem")});function ZQ(t){return t in z9}var CAe,AAe,z9,G9=M(()=>{"use strict";Vj();Wj();qj();jj();Qj();Jj();tK();nK();aK();oK();cK();hK();dK();mK();yK();xK();wK();kK();SK();AK();LK();NK();MK();OK();BK();zK();$K();UK();WK();qK();jK();QK();JK();tQ();nQ();aQ();oQ();cQ();hQ();dQ();mQ();yQ();xQ();wQ();kQ();SQ();AQ();LQ();NQ();MQ();OQ();BQ();zQ();$Q();UQ();WQ();jQ();QQ();CAe=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:pQ},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:lQ},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:gQ},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:EQ},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:lK},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:Kj},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:rQ},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:TK},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:VK},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:GK},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:IQ},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:PK},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:fK},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:DQ},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Yj},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:uQ},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:TQ},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:bQ},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:vK},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:EK},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:eK},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:rK},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:iK},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:HK},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:GQ},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:bK},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:RQ},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:YK},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:sK},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:uK},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:FQ},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:HQ},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:pK},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:PQ},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:gK},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:fQ},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:ZK},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:KK},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Hj},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Zj},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:_Q},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:CQ},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:VQ},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:iQ},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:XK}],AAe=o(()=>{let e=[...Object.entries({state:vQ,choice:Xj,note:eQ,rectWithTitle:sQ,labelRect:FK,iconSquare:RK,iconCircle:_K,icon:CK,iconRounded:DK,imageSquare:IK,anchor:$j,kanbanItem:KQ,classBox:XQ}),...CAe.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(i=>[i,r.handler]))];return Object.fromEntries(e)},"generateShapeMap"),z9=AAe();o(ZQ,"isValidShape")});function pZ(t){return typeof t>"u"||t===null}function _Ae(t){return typeof t=="object"&&t!==null}function LAe(t){return Array.isArray(t)?t:pZ(t)?[]:[t]}function DAe(t,e){var r,n,i,a;if(e)for(a=Object.keys(e),r=0,n=a.length;rl&&(a=" ... ",e=n-l+a.length),r-n>l&&(s=" ...",r=n+l-s.length),{str:a+t.slice(e,r).replace(/\t/g,"\u2192")+s,pos:n-e+a.length}}function V9(t,e){return Pi.repeat(" ",e-t.length)+t}function zAe(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var r=/\r?\n|\r|\0/g,n=[0],i=[],a,s=-1;a=r.exec(t.buffer);)i.push(a.index),n.push(a.index+a[0].length),t.position<=a.index&&s<0&&(s=n.length-2);s<0&&(s=n.length-1);var l="",u,h,f=Math.min(t.line+e.linesAfter,i.length).toString().length,d=e.maxLength-(e.indent+f+3);for(u=1;u<=e.linesBefore&&!(s-u<0);u++)h=$9(t.buffer,n[s-u],i[s-u],t.position-(n[s]-n[s-u]),d),l=Pi.repeat(" ",e.indent)+V9((t.line-u+1).toString(),f)+" | "+h.str+` +`+l;for(h=$9(t.buffer,n[s],i[s],t.position,d),l+=Pi.repeat(" ",e.indent)+V9((t.line+1).toString(),f)+" | "+h.str+` +`,l+=Pi.repeat("-",e.indent+f+3+h.pos)+`^ +`,u=1;u<=e.linesAfter&&!(s+u>=i.length);u++)h=$9(t.buffer,n[s+u],i[s+u],t.position-(n[s]-n[s+u]),d),l+=Pi.repeat(" ",e.indent)+V9((t.line+u+1).toString(),f)+" | "+h.str+` +`;return l.replace(/\n$/,"")}function UAe(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(n){e[String(n)]=r})}),e}function HAe(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if($Ae.indexOf(r)===-1)throw new Es('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=UAe(e.styleAliases||null),VAe.indexOf(this.kind)===-1)throw new Es('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}function JQ(t,e){var r=[];return t[e].forEach(function(n){var i=r.length;r.forEach(function(a,s){a.tag===n.tag&&a.kind===n.kind&&a.multi===n.multi&&(i=s)}),r[i]=n}),r}function WAe(){var t={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,r;function n(i){i.multi?(t.multi[i.kind].push(i),t.multi.fallback.push(i)):t[i.kind][i.tag]=t.fallback[i.tag]=i}for(o(n,"collectType"),e=0,r=arguments.length;e=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:r*parseFloat(e,10)}function g8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Pi.isNegativeZero(t))return"-0.0";return r=t.toString(10),m8e.test(r)?r.replace("e",".e"):r}function y8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||Pi.isNegativeZero(t))}function b8e(t){return t===null?!1:yZ.exec(t)!==null||vZ.exec(t)!==null}function w8e(t){var e,r,n,i,a,s,l,u=0,h=null,f,d,p;if(e=yZ.exec(t),e===null&&(e=vZ.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],n=+e[2]-1,i=+e[3],!e[4])return new Date(Date.UTC(r,n,i));if(a=+e[4],s=+e[5],l=+e[6],e[7]){for(u=e[7].slice(0,3);u.length<3;)u+="0";u=+u}return e[9]&&(f=+e[10],d=+(e[11]||0),h=(f*60+d)*6e4,e[9]==="-"&&(h=-h)),p=new Date(Date.UTC(r,n,i,a,s,l,u)),h&&p.setTime(p.getTime()-h),p}function T8e(t){return t.toISOString()}function E8e(t){return t==="<<"||t===null}function C8e(t){if(t===null)return!1;var e,r,n=0,i=t.length,a=j9;for(r=0;r64)){if(e<0)return!1;n+=6}return n%8===0}function A8e(t){var e,r,n=t.replace(/[\r\n=]/g,""),i=n.length,a=j9,s=0,l=[];for(e=0;e>16&255),l.push(s>>8&255),l.push(s&255)),s=s<<6|a.indexOf(n.charAt(e));return r=i%4*6,r===0?(l.push(s>>16&255),l.push(s>>8&255),l.push(s&255)):r===18?(l.push(s>>10&255),l.push(s>>2&255)):r===12&&l.push(s>>4&255),new Uint8Array(l)}function _8e(t){var e="",r=0,n,i,a=t.length,s=j9;for(n=0;n>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]),r=(r<<8)+t[n];return i=a%3,i===0?(e+=s[r>>18&63],e+=s[r>>12&63],e+=s[r>>6&63],e+=s[r&63]):i===2?(e+=s[r>>10&63],e+=s[r>>4&63],e+=s[r<<2&63],e+=s[64]):i===1&&(e+=s[r>>2&63],e+=s[r<<4&63],e+=s[64],e+=s[64]),e}function L8e(t){return Object.prototype.toString.call(t)==="[object Uint8Array]"}function M8e(t){if(t===null)return!0;var e=[],r,n,i,a,s,l=t;for(r=0,n=l.length;r>10)+55296,(t-65536&1023)+56320)}function Z8e(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||xZ,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function CZ(t,e){var r={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return r.snippet=GAe(r),new Es(e,r)}function Qt(t,e){throw CZ(t,e)}function F5(t,e){t.onWarning&&t.onWarning.call(null,CZ(t,e))}function Gh(t,e,r,n){var i,a,s,l;if(e1&&(t.result+=Pi.repeat(` +`,e-1))}function J8e(t,e,r){var n,i,a,s,l,u,h,f,d=t.kind,p=t.result,m;if(m=t.input.charCodeAt(t.position),Ss(m)||lm(m)||m===35||m===38||m===42||m===33||m===124||m===62||m===39||m===34||m===37||m===64||m===96||(m===63||m===45)&&(i=t.input.charCodeAt(t.position+1),Ss(i)||r&&lm(i)))return!1;for(t.kind="scalar",t.result="",a=s=t.position,l=!1;m!==0;){if(m===58){if(i=t.input.charCodeAt(t.position+1),Ss(i)||r&&lm(i))break}else if(m===35){if(n=t.input.charCodeAt(t.position-1),Ss(n))break}else{if(t.position===t.lineStart&&$5(t)||r&&lm(m))break;if(yc(m))if(u=t.line,h=t.lineStart,f=t.lineIndent,Ci(t,!1,-1),t.lineIndent>=e){l=!0,m=t.input.charCodeAt(t.position);continue}else{t.position=s,t.line=u,t.lineStart=h,t.lineIndent=f;break}}l&&(Gh(t,a,s,!1),Q9(t,t.line-u),a=s=t.position,l=!1),_d(m)||(s=t.position+1),m=t.input.charCodeAt(++t.position)}return Gh(t,a,s,!1),t.result?!0:(t.kind=d,t.result=p,!1)}function e_e(t,e){var r,n,i;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Gh(t,n,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)n=t.position,t.position++,i=t.position;else return!0;else yc(r)?(Gh(t,n,i,!0),Q9(t,Ci(t,!1,e)),n=i=t.position):t.position===t.lineStart&&$5(t)?Qt(t,"unexpected end of the document within a single quoted scalar"):(t.position++,i=t.position);Qt(t,"unexpected end of the stream within a single quoted scalar")}function t_e(t,e){var r,n,i,a,s,l;if(l=t.input.charCodeAt(t.position),l!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=n=t.position;(l=t.input.charCodeAt(t.position))!==0;){if(l===34)return Gh(t,r,t.position,!0),t.position++,!0;if(l===92){if(Gh(t,r,t.position,!0),l=t.input.charCodeAt(++t.position),yc(l))Ci(t,!1,e);else if(l<256&&EZ[l])t.result+=SZ[l],t.position++;else if((s=j8e(l))>0){for(i=s,a=0;i>0;i--)l=t.input.charCodeAt(++t.position),(s=X8e(l))>=0?a=(a<<4)+s:Qt(t,"expected hexadecimal character");t.result+=Q8e(a),t.position++}else Qt(t,"unknown escape sequence");r=n=t.position}else yc(l)?(Gh(t,r,n,!0),Q9(t,Ci(t,!1,e)),r=n=t.position):t.position===t.lineStart&&$5(t)?Qt(t,"unexpected end of the document within a double quoted scalar"):(t.position++,n=t.position)}Qt(t,"unexpected end of the stream within a double quoted scalar")}function r_e(t,e){var r=!0,n,i,a,s=t.tag,l,u=t.anchor,h,f,d,p,m,g=Object.create(null),y,v,x,b;if(b=t.input.charCodeAt(t.position),b===91)f=93,m=!1,l=[];else if(b===123)f=125,m=!0,l={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=l),b=t.input.charCodeAt(++t.position);b!==0;){if(Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===f)return t.position++,t.tag=s,t.anchor=u,t.kind=m?"mapping":"sequence",t.result=l,!0;r?b===44&&Qt(t,"expected the node content, but found ','"):Qt(t,"missed comma between flow collection entries"),v=y=x=null,d=p=!1,b===63&&(h=t.input.charCodeAt(t.position+1),Ss(h)&&(d=p=!0,t.position++,Ci(t,!0,e))),n=t.line,i=t.lineStart,a=t.position,um(t,e,P5,!1,!0),v=t.tag,y=t.result,Ci(t,!0,e),b=t.input.charCodeAt(t.position),(p||t.line===n)&&b===58&&(d=!0,b=t.input.charCodeAt(++t.position),Ci(t,!0,e),um(t,e,P5,!1,!0),x=t.result),m?cm(t,l,g,v,y,x,n,i,a):d?l.push(cm(t,null,g,v,y,x,n,i,a)):l.push(y),Ci(t,!0,e),b=t.input.charCodeAt(t.position),b===44?(r=!0,b=t.input.charCodeAt(++t.position)):r=!1}Qt(t,"unexpected end of the stream within a flow collection")}function n_e(t,e){var r,n,i=U9,a=!1,s=!1,l=e,u=0,h=!1,f,d;if(d=t.input.charCodeAt(t.position),d===124)n=!1;else if(d===62)n=!0;else return!1;for(t.kind="scalar",t.result="";d!==0;)if(d=t.input.charCodeAt(++t.position),d===43||d===45)U9===i?i=d===43?eZ:H8e:Qt(t,"repeat of a chomping mode identifier");else if((f=K8e(d))>=0)f===0?Qt(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Qt(t,"repeat of an indentation width identifier"):(l=e+f-1,s=!0);else break;if(_d(d)){do d=t.input.charCodeAt(++t.position);while(_d(d));if(d===35)do d=t.input.charCodeAt(++t.position);while(!yc(d)&&d!==0)}for(;d!==0;){for(K9(t),t.lineIndent=0,d=t.input.charCodeAt(t.position);(!s||t.lineIndentl&&(l=t.lineIndent),yc(d)){u++;continue}if(t.lineIndente)&&u!==0)Qt(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(v&&(s=t.line,l=t.lineStart,u=t.position),um(t,e,B5,!0,i)&&(v?g=t.result:y=t.result),v||(cm(t,d,p,m,g,y,s,l,u),m=g=y=null),Ci(t,!0,-1),b=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&b!==0)Qt(t,"bad indentation of a mapping entry");else if(t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndente?u=1:t.lineIndent===e?u=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),d=0,p=t.implicitTypes.length;d"),t.result!==null&&g.kind!==t.kind&&Qt(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+g.kind+'", not "'+t.kind+'"'),g.resolve(t.result,t.tag)?(t.result=g.construct(t.result,t.tag),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qt(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||f}function l_e(t){var e=t.position,r,n,i,a=!1,s;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);(s=t.input.charCodeAt(t.position))!==0&&(Ci(t,!0,-1),s=t.input.charCodeAt(t.position),!(t.lineIndent>0||s!==37));){for(a=!0,s=t.input.charCodeAt(++t.position),r=t.position;s!==0&&!Ss(s);)s=t.input.charCodeAt(++t.position);for(n=t.input.slice(r,t.position),i=[],n.length<1&&Qt(t,"directive name must not be less than one character in length");s!==0;){for(;_d(s);)s=t.input.charCodeAt(++t.position);if(s===35){do s=t.input.charCodeAt(++t.position);while(s!==0&&!yc(s));break}if(yc(s))break;for(r=t.position;s!==0&&!Ss(s);)s=t.input.charCodeAt(++t.position);i.push(t.input.slice(r,t.position))}s!==0&&K9(t),$h.call(nZ,n)?nZ[n](t,n,i):F5(t,'unknown document directive "'+n+'"')}if(Ci(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Ci(t,!0,-1)):a&&Qt(t,"directives end mark is expected"),um(t,t.lineIndent-1,B5,!1,!0),Ci(t,!0,-1),t.checkLineBreaks&&Y8e.test(t.input.slice(e,t.position))&&F5(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&$5(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Ci(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var n=AZ(t,r);if(typeof e!="function")return n;for(var i=0,a=n.length;i=55296&&r<=56319&&e+1=56320&&n<=57343)?(r-55296)*1024+n-56320+65536:r}function PZ(t){var e=/^\n* /;return e.test(t)}function F_e(t,e,r,n,i,a,s,l){var u,h=0,f=null,d=!1,p=!1,m=n!==-1,g=-1,y=P_e(xv(t,0))&&B_e(xv(t,t.length-1));if(e||s)for(u=0;u=65536?u+=2:u++){if(h=xv(t,u),!kv(h))return om;y=y&&lZ(h,f,l),f=h}else{for(u=0;u=65536?u+=2:u++){if(h=xv(t,u),h===wv)d=!0,m&&(p=p||u-g-1>n&&t[g+1]!==" ",g=u);else if(!kv(h))return om;y=y&&lZ(h,f,l),f=h}p=p||m&&u-g-1>n&&t[g+1]!==" "}return!d&&!p?y&&!s&&!i(t)?BZ:a===Tv?om:q9:r>9&&PZ(t)?om:s?a===Tv?om:q9:p?zZ:FZ}function z_e(t,e,r,n,i){t.dump=function(){if(e.length===0)return t.quotingType===Tv?'""':"''";if(!t.noCompatMode&&(L_e.indexOf(e)!==-1||D_e.test(e)))return t.quotingType===Tv?'"'+e+'"':"'"+e+"'";var a=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),l=n||t.flowLevel>-1&&r>=t.flowLevel;function u(h){return O_e(t,h)}switch(o(u,"testAmbiguity"),F_e(e,l,t.indent,s,u,t.quotingType,t.forceQuotes&&!n,i)){case BZ:return e;case q9:return"'"+e.replace(/'/g,"''")+"'";case FZ:return"|"+cZ(e,t.indent)+uZ(sZ(e,a));case zZ:return">"+cZ(e,t.indent)+uZ(sZ(G_e(e,s),a));case om:return'"'+$_e(e)+'"';default:throw new Es("impossible error: invalid scalar style")}}()}function cZ(t,e){var r=PZ(t)?String(e):"",n=t[t.length-1]===` +`,i=n&&(t[t.length-2]===` +`||t===` +`),a=i?"+":n?"":"-";return r+a+` +`}function uZ(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function G_e(t,e){for(var r=/(\n+)([^\n]*)/g,n=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,hZ(t.slice(0,h),e)}(),i=t[0]===` +`||t[0]===" ",a,s;s=r.exec(t);){var l=s[1],u=s[2];a=u[0]===" ",n+=l+(!i&&!a&&u!==""?` +`:"")+hZ(u,e),i=a}return n}function hZ(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,n,i=0,a,s=0,l=0,u="";n=r.exec(t);)l=n.index,l-i>e&&(a=s>i?s:l,u+=` +`+t.slice(i,a),i=a+1),s=l;return u+=` +`,t.length-i>e&&s>i?u+=t.slice(i,s)+` +`+t.slice(s+1):u+=t.slice(i),u.slice(1)}function $_e(t){for(var e="",r=0,n,i=0;i=65536?i+=2:i++)r=xv(t,i),n=Na[r],!n&&kv(r)?(e+=t[i],r>=65536&&(e+=t[i+1])):e+=n||R_e(r);return e}function V_e(t,e,r){var n="",i=t.tag,a,s,l;for(a=0,s=r.length;a"u"&&Cu(t,e,null,!1,!1))&&(n!==""&&(n+=","+(t.condenseFlow?"":" ")),n+=t.dump);t.tag=i,t.dump="["+n+"]"}function fZ(t,e,r,n){var i="",a=t.tag,s,l,u;for(s=0,l=r.length;s"u"&&Cu(t,e+1,null,!0,!0,!1,!0))&&((!n||i!=="")&&(i+=Y9(t,e)),t.dump&&wv===t.dump.charCodeAt(0)?i+="-":i+="- ",i+=t.dump);t.tag=a,t.dump=i||"[]"}function U_e(t,e,r){var n="",i=t.tag,a=Object.keys(r),s,l,u,h,f;for(s=0,l=a.length;s1024&&(f+="? "),f+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),Cu(t,e,h,!1,!1)&&(f+=t.dump,n+=f));t.tag=i,t.dump="{"+n+"}"}function H_e(t,e,r,n){var i="",a=t.tag,s=Object.keys(r),l,u,h,f,d,p;if(t.sortKeys===!0)s.sort();else if(typeof t.sortKeys=="function")s.sort(t.sortKeys);else if(t.sortKeys)throw new Es("sortKeys must be a boolean or a function");for(l=0,u=s.length;l1024,d&&(t.dump&&wv===t.dump.charCodeAt(0)?p+="?":p+="? "),p+=t.dump,d&&(p+=Y9(t,e)),Cu(t,e+1,f,!0,d)&&(t.dump&&wv===t.dump.charCodeAt(0)?p+=":":p+=": ",p+=t.dump,i+=p));t.tag=a,t.dump=i||"{}"}function dZ(t,e,r){var n,i,a,s,l,u;for(i=r?t.explicitTypes:t.implicitTypes,a=0,s=i.length;a tag resolver accepts not "'+u+'" style');t.dump=n}return!0}return!1}function Cu(t,e,r,n,i,a,s){t.tag=null,t.dump=r,dZ(t,r,!1)||dZ(t,r,!0);var l=LZ.call(t.dump),u=n,h;n&&(n=t.flowLevel<0||t.flowLevel>e);var f=l==="[object Object]"||l==="[object Array]",d,p;if(f&&(d=t.duplicates.indexOf(r),p=d!==-1),(t.tag!==null&&t.tag!=="?"||p||t.indent!==2&&e>0)&&(i=!1),p&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(f&&p&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),l==="[object Object]")n&&Object.keys(t.dump).length!==0?(H_e(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(U_e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object Array]")n&&t.dump.length!==0?(t.noArrayIndent&&!s&&e>0?fZ(t,e-1,t.dump,i):fZ(t,e,t.dump,i),p&&(t.dump="&ref_"+d+t.dump)):(V_e(t,e,t.dump),p&&(t.dump="&ref_"+d+" "+t.dump));else if(l==="[object String]")t.tag!=="?"&&z_e(t,t.dump,e,a,u);else{if(l==="[object Undefined]")return!1;if(t.skipInvalid)return!1;throw new Es("unacceptable kind of an object to dump "+l)}t.tag!==null&&t.tag!=="?"&&(h=encodeURI(t.tag[0]==="!"?t.tag.slice(1):t.tag).replace(/!/g,"%21"),t.tag[0]==="!"?h="!"+h:h.slice(0,18)==="tag:yaml.org,2002:"?h="!!"+h.slice(18):h="!<"+h+">",t.dump=h+" "+t.dump)}return!0}function W_e(t,e){var r=[],n=[],i,a;for(X9(t,r,n),i=0,a=n.length;i{"use strict";o(pZ,"isNothing");o(_Ae,"isObject");o(LAe,"toArray");o(DAe,"extend");o(NAe,"repeat");o(RAe,"isNegativeZero");MAe=pZ,IAe=_Ae,OAe=LAe,PAe=NAe,BAe=RAe,FAe=DAe,Pi={isNothing:MAe,isObject:IAe,toArray:OAe,repeat:PAe,isNegativeZero:BAe,extend:FAe};o(mZ,"formatError");o(bv,"YAMLException$1");bv.prototype=Object.create(Error.prototype);bv.prototype.constructor=bv;bv.prototype.toString=o(function(e){return this.name+": "+mZ(this,e)},"toString");Es=bv;o($9,"getLine");o(V9,"padStart");o(zAe,"makeSnippet");GAe=zAe,$Ae=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],VAe=["scalar","sequence","mapping"];o(UAe,"compileStyleAliases");o(HAe,"Type$1");Da=HAe;o(JQ,"compileList");o(WAe,"compileMap");o(H9,"Schema$1");H9.prototype.extend=o(function(e){var r=[],n=[];if(e instanceof Da)n.push(e);else if(Array.isArray(e))n=n.concat(e);else if(e&&(Array.isArray(e.implicit)||Array.isArray(e.explicit)))e.implicit&&(r=r.concat(e.implicit)),e.explicit&&(n=n.concat(e.explicit));else throw new Es("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");r.forEach(function(a){if(!(a instanceof Da))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(a.loadKind&&a.loadKind!=="scalar")throw new Es("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(a.multi)throw new Es("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),n.forEach(function(a){if(!(a instanceof Da))throw new Es("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var i=Object.create(H9.prototype);return i.implicit=(this.implicit||[]).concat(r),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=JQ(i,"implicit"),i.compiledExplicit=JQ(i,"explicit"),i.compiledTypeMap=WAe(i.compiledImplicit,i.compiledExplicit),i},"extend");YAe=H9,qAe=new Da("tag:yaml.org,2002:str",{kind:"scalar",construct:o(function(t){return t!==null?t:""},"construct")}),XAe=new Da("tag:yaml.org,2002:seq",{kind:"sequence",construct:o(function(t){return t!==null?t:[]},"construct")}),jAe=new Da("tag:yaml.org,2002:map",{kind:"mapping",construct:o(function(t){return t!==null?t:{}},"construct")}),KAe=new YAe({explicit:[qAe,XAe,jAe]});o(QAe,"resolveYamlNull");o(ZAe,"constructYamlNull");o(JAe,"isNull");e8e=new Da("tag:yaml.org,2002:null",{kind:"scalar",resolve:QAe,construct:ZAe,predicate:JAe,represent:{canonical:o(function(){return"~"},"canonical"),lowercase:o(function(){return"null"},"lowercase"),uppercase:o(function(){return"NULL"},"uppercase"),camelcase:o(function(){return"Null"},"camelcase"),empty:o(function(){return""},"empty")},defaultStyle:"lowercase"});o(t8e,"resolveYamlBoolean");o(r8e,"constructYamlBoolean");o(n8e,"isBoolean");i8e=new Da("tag:yaml.org,2002:bool",{kind:"scalar",resolve:t8e,construct:r8e,predicate:n8e,represent:{lowercase:o(function(t){return t?"true":"false"},"lowercase"),uppercase:o(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:o(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"});o(a8e,"isHexCode");o(s8e,"isOctCode");o(o8e,"isDecCode");o(l8e,"resolveYamlInteger");o(c8e,"constructYamlInteger");o(u8e,"isInteger");h8e=new Da("tag:yaml.org,2002:int",{kind:"scalar",resolve:l8e,construct:c8e,predicate:u8e,represent:{binary:o(function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:o(function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:o(function(t){return t.toString(10)},"decimal"),hexadecimal:o(function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),f8e=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");o(d8e,"resolveYamlFloat");o(p8e,"constructYamlFloat");m8e=/^[-+]?[0-9]+e/;o(g8e,"representYamlFloat");o(y8e,"isFloat");v8e=new Da("tag:yaml.org,2002:float",{kind:"scalar",resolve:d8e,construct:p8e,predicate:y8e,represent:g8e,defaultStyle:"lowercase"}),gZ=KAe.extend({implicit:[e8e,i8e,h8e,v8e]}),x8e=gZ,yZ=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),vZ=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");o(b8e,"resolveYamlTimestamp");o(w8e,"constructYamlTimestamp");o(T8e,"representYamlTimestamp");k8e=new Da("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:b8e,construct:w8e,instanceOf:Date,represent:T8e});o(E8e,"resolveYamlMerge");S8e=new Da("tag:yaml.org,2002:merge",{kind:"scalar",resolve:E8e}),j9=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;o(C8e,"resolveYamlBinary");o(A8e,"constructYamlBinary");o(_8e,"representYamlBinary");o(L8e,"isBinary");D8e=new Da("tag:yaml.org,2002:binary",{kind:"scalar",resolve:C8e,construct:A8e,predicate:L8e,represent:_8e}),N8e=Object.prototype.hasOwnProperty,R8e=Object.prototype.toString;o(M8e,"resolveYamlOmap");o(I8e,"constructYamlOmap");O8e=new Da("tag:yaml.org,2002:omap",{kind:"sequence",resolve:M8e,construct:I8e}),P8e=Object.prototype.toString;o(B8e,"resolveYamlPairs");o(F8e,"constructYamlPairs");z8e=new Da("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:B8e,construct:F8e}),G8e=Object.prototype.hasOwnProperty;o($8e,"resolveYamlSet");o(V8e,"constructYamlSet");U8e=new Da("tag:yaml.org,2002:set",{kind:"mapping",resolve:$8e,construct:V8e}),xZ=x8e.extend({implicit:[k8e,S8e],explicit:[D8e,O8e,z8e,U8e]}),$h=Object.prototype.hasOwnProperty,P5=1,bZ=2,wZ=3,B5=4,U9=1,H8e=2,eZ=3,W8e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Y8e=/[\x85\u2028\u2029]/,q8e=/[,\[\]\{\}]/,TZ=/^(?:!|!!|![a-z\-]+!)$/i,kZ=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;o(tZ,"_class");o(yc,"is_EOL");o(_d,"is_WHITE_SPACE");o(Ss,"is_WS_OR_EOL");o(lm,"is_FLOW_INDICATOR");o(X8e,"fromHexCode");o(j8e,"escapedHexLen");o(K8e,"fromDecimalCode");o(rZ,"simpleEscapeSequence");o(Q8e,"charFromCodepoint");EZ=new Array(256),SZ=new Array(256);for(Ad=0;Ad<256;Ad++)EZ[Ad]=rZ(Ad)?1:0,SZ[Ad]=rZ(Ad);o(Z8e,"State$1");o(CZ,"generateError");o(Qt,"throwError");o(F5,"throwWarning");nZ={YAML:o(function(e,r,n){var i,a,s;e.version!==null&&Qt(e,"duplication of %YAML directive"),n.length!==1&&Qt(e,"YAML directive accepts exactly one argument"),i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),i===null&&Qt(e,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),s=parseInt(i[2],10),a!==1&&Qt(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&F5(e,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:o(function(e,r,n){var i,a;n.length!==2&&Qt(e,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],TZ.test(i)||Qt(e,"ill-formed tag handle (first argument) of the TAG directive"),$h.call(e.tagMap,i)&&Qt(e,'there is a previously declared suffix for "'+i+'" tag handle'),kZ.test(a)||Qt(e,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Qt(e,"tag prefix is malformed: "+a)}e.tagMap[i]=a},"handleTagDirective")};o(Gh,"captureSegment");o(iZ,"mergeMappings");o(cm,"storeMappingPair");o(K9,"readLineBreak");o(Ci,"skipSeparationSpace");o($5,"testDocumentSeparator");o(Q9,"writeFoldedLines");o(J8e,"readPlainScalar");o(e_e,"readSingleQuotedScalar");o(t_e,"readDoubleQuotedScalar");o(r_e,"readFlowCollection");o(n_e,"readBlockScalar");o(aZ,"readBlockSequence");o(i_e,"readBlockMapping");o(a_e,"readTagProperty");o(s_e,"readAnchorProperty");o(o_e,"readAlias");o(um,"composeNode");o(l_e,"readDocument");o(AZ,"loadDocuments");o(c_e,"loadAll$1");o(u_e,"load$1");h_e=c_e,f_e=u_e,_Z={loadAll:h_e,load:f_e},LZ=Object.prototype.toString,DZ=Object.prototype.hasOwnProperty,Z9=65279,d_e=9,wv=10,p_e=13,m_e=32,g_e=33,y_e=34,W9=35,v_e=37,x_e=38,b_e=39,w_e=42,NZ=44,T_e=45,z5=58,k_e=61,E_e=62,S_e=63,C_e=64,RZ=91,MZ=93,A_e=96,IZ=123,__e=124,OZ=125,Na={};Na[0]="\\0";Na[7]="\\a";Na[8]="\\b";Na[9]="\\t";Na[10]="\\n";Na[11]="\\v";Na[12]="\\f";Na[13]="\\r";Na[27]="\\e";Na[34]='\\"';Na[92]="\\\\";Na[133]="\\N";Na[160]="\\_";Na[8232]="\\L";Na[8233]="\\P";L_e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],D_e=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;o(N_e,"compileStyleMap");o(R_e,"encodeHex");M_e=1,Tv=2;o(I_e,"State");o(sZ,"indentString");o(Y9,"generateNextLine");o(O_e,"testImplicitResolving");o(G5,"isWhitespace");o(kv,"isPrintable");o(oZ,"isNsCharOrWhitespace");o(lZ,"isPlainSafe");o(P_e,"isPlainSafeFirst");o(B_e,"isPlainSafeLast");o(xv,"codePointAt");o(PZ,"needIndentIndicator");BZ=1,q9=2,FZ=3,zZ=4,om=5;o(F_e,"chooseScalarStyle");o(z_e,"writeScalar");o(cZ,"blockHeader");o(uZ,"dropEndingNewline");o(G_e,"foldString");o(hZ,"foldLine");o($_e,"escapeString");o(V_e,"writeFlowSequence");o(fZ,"writeBlockSequence");o(U_e,"writeFlowMapping");o(H_e,"writeBlockMapping");o(dZ,"detectType");o(Cu,"writeNode");o(W_e,"getDuplicateReferences");o(X9,"inspectNode");o(Y_e,"dump$1");q_e=Y_e,X_e={dump:q_e};o(J9,"renamed");hm=gZ,fm=_Z.load,uNt=_Z.loadAll,hNt=X_e.dump,fNt=J9("safeLoad","load"),dNt=J9("safeLoadAll","loadAll"),pNt=J9("safeDump","dump")});function rL(t){let e=[];for(let r of t){let n=Sv.get(r);n?.styles&&(e=[...e,...n.styles??[]].map(i=>i.trim())),n?.textStyles&&(e=[...e,...n.textStyles??[]].map(i=>i.trim()))}return e}var j_e,GZ,dm,Vh,Cs,Sv,Au,nL,iL,U5,tL,Go,H5,W5,Y5,q5,K_e,Q_e,Z_e,J_e,e9e,t9e,r9e,aL,n9e,i9e,a9e,$Z,s9e,o9e,sL,VZ,UZ,l9e,HZ,c9e,u9e,h9e,f9e,d9e,Ev,WZ,YZ,p9e,m9e,qZ,g9e,y9e,v9e,x9e,b9e,XZ,jZ,w9e,T9e,k9e,E9e,S9e,C9e,X5,oL=M(()=>{"use strict";mr();hr();Vt();fr();G9();ht();V5();ki();j_e="flowchart-",GZ=0,dm=de(),Vh=new Map,Cs=[],Sv=new Map,Au=[],nL=new Map,iL=new Map,U5=0,tL=!0,W5=[],Y5=o(t=>je.sanitizeText(t,dm),"sanitizeText"),q5=o(function(t){for(let e of Vh.values())if(e.id===t)return e.domId;return t},"lookUpDomId"),K_e=o(function(t,e,r,n,i,a,s={},l){if(!t||t.trim().length===0)return;let u,h=Vh.get(t);if(h===void 0&&(h={id:t,labelType:"text",domId:j_e+t+"-"+GZ,styles:[],classes:[]},Vh.set(t,h)),GZ++,e!==void 0?(dm=de(),u=Y5(e.text.trim()),h.labelType=e.type,u.startsWith('"')&&u.endsWith('"')&&(u=u.substring(1,u.length-1)),h.text=u):h.text===void 0&&(h.text=t),r!==void 0&&(h.type=r),n?.forEach(function(f){h.styles.push(f)}),i?.forEach(function(f){h.classes.push(f)}),a!==void 0&&(h.dir=a),h.props===void 0?h.props=s:s!==void 0&&Object.assign(h.props,s),l!==void 0){let f;l.includes(` +`)?f=l+` +`:f=`{ +`+l+` +}`;let d=fm(f,{schema:hm});if(d.shape){if(d.shape!==d.shape.toLowerCase()||d.shape.includes("_"))throw new Error(`No such shape: ${d.shape}. Shape names should be lowercase.`);if(!ZQ(d.shape))throw new Error(`No such shape: ${d.shape}.`);h.type=d?.shape}d?.label&&(h.text=d?.label),d?.icon&&(h.icon=d?.icon,!d.label?.trim()&&h.text===t&&(h.text="")),d?.form&&(h.form=d?.form),d?.pos&&(h.pos=d?.pos),d?.img&&(h.img=d?.img,!d.label?.trim()&&h.text===t&&(h.text="")),d?.constraint&&(h.constraint=d.constraint),d.w&&(h.assetWidth=Number(d.w)),d.h&&(h.assetHeight=Number(d.h))}},"addVertex"),Q_e=o(function(t,e,r){let a={start:t,end:e,type:void 0,text:"",labelType:"text"};Y.info("abc78 Got edge...",a);let s=r.text;if(s!==void 0&&(a.text=Y5(s.text.trim()),a.text.startsWith('"')&&a.text.endsWith('"')&&(a.text=a.text.substring(1,a.text.length-1)),a.labelType=s.type),r!==void 0&&(a.type=r.type,a.stroke=r.stroke,a.length=r.length>10?10:r.length),Cs.length<(dm.maxEdges??500))Y.info("Pushing edge..."),Cs.push(a);else throw new Error(`Edge limit exceeded. ${Cs.length} edges found, but the limit is ${dm.maxEdges}. + +Initialize mermaid with maxEdges set to a higher number to allow more edges. +You cannot set this config via configuration inside the diagram as it is a secure config. +You have to call mermaid.initialize.`)},"addSingleLink"),Z_e=o(function(t,e,r){Y.info("addLink",t,e,r);for(let n of t)for(let i of e)Q_e(n,i,r)},"addLink"),J_e=o(function(t,e){t.forEach(function(r){r==="default"?Cs.defaultInterpolate=e:Cs[r].interpolate=e})},"updateLinkInterpolate"),e9e=o(function(t,e){t.forEach(function(r){if(typeof r=="number"&&r>=Cs.length)throw new Error(`The index ${r} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${Cs.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);r==="default"?Cs.defaultStyle=e:(Cs[r].style=e,(Cs[r]?.style?.length??0)>0&&!Cs[r]?.style?.some(n=>n?.startsWith("fill"))&&Cs[r]?.style?.push("fill:none"))})},"updateLink"),t9e=o(function(t,e){t.split(",").forEach(function(r){let n=Sv.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},Sv.set(r,n)),e?.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)})})},"addClass"),r9e=o(function(t){Go=t,/.*/.exec(Go)&&(Go="LR"),/.*v/.exec(Go)&&(Go="TB"),Go==="TD"&&(Go="TB")},"setDirection"),aL=o(function(t,e){for(let r of t.split(",")){let n=Vh.get(r);n&&n.classes.push(e);let i=nL.get(r);i&&i.classes.push(e)}},"setClass"),n9e=o(function(t,e){if(e!==void 0){e=Y5(e);for(let r of t.split(","))iL.set(H5==="gen-1"?q5(r):r,e)}},"setTooltip"),i9e=o(function(t,e,r){let n=q5(t);if(de().securityLevel!=="loose"||e===void 0)return;let i=[];if(typeof r=="string"){i=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),ze(this).classed("hover",!1)})},"setupToolTips");W5.push(HZ);c9e=o(function(t="gen-1"){Vh=new Map,Sv=new Map,Cs=[],W5=[HZ],Au=[],nL=new Map,U5=0,iL=new Map,tL=!0,H5=t,dm=de(),_r()},"clear"),u9e=o(t=>{H5=t||"gen-2"},"setGen"),h9e=o(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),f9e=o(function(t,e,r){let n=t.text.trim(),i=r.text;t===r&&/\s/.exec(r.text)&&(n=void 0);function a(h){let f={boolean:{},number:{},string:{}},d=[],p;return{nodeList:h.filter(function(g){let y=typeof g;return g.stmt&&g.stmt==="dir"?(p=g.value,!1):g.trim()===""?!1:y in f?f[y].hasOwnProperty(g)?!1:f[y][g]=!0:d.includes(g)?!1:d.push(g)}),dir:p}}o(a,"uniq");let{nodeList:s,dir:l}=a(e.flat());if(H5==="gen-1")for(let h=0;h2e3)return{result:!1,count:0};if(WZ[Ev]=e,Au[e].id===t)return{result:!0,count:0};let n=0,i=1;for(;n=0){let s=YZ(t,a);if(s.result)return{result:!0,count:i+s.count};i=i+s.count}n=n+1}return{result:!1,count:i}},"indexNodes2"),p9e=o(function(t){return WZ[t]},"getDepthFirstPos"),m9e=o(function(){Ev=-1,Au.length>0&&YZ("none",Au.length-1)},"indexNodes"),qZ=o(function(){return Au},"getSubGraphs"),g9e=o(()=>tL?(tL=!1,!0):!1,"firstGraph"),y9e=o(t=>{let e=t.trim(),r="arrow_open";switch(e[0]){case"<":r="arrow_point",e=e.slice(1);break;case"x":r="arrow_cross",e=e.slice(1);break;case"o":r="arrow_circle",e=e.slice(1);break}let n="normal";return e.includes("=")&&(n="thick"),e.includes(".")&&(n="dotted"),{type:r,stroke:n}},"destructStartLink"),v9e=o((t,e)=>{let r=e.length,n=0;for(let i=0;i{let e=t.trim(),r=e.slice(0,-1),n="arrow_open";switch(e.slice(-1)){case"x":n="arrow_cross",e.startsWith("x")&&(n="double_"+n,r=r.slice(1));break;case">":n="arrow_point",e.startsWith("<")&&(n="double_"+n,r=r.slice(1));break;case"o":n="arrow_circle",e.startsWith("o")&&(n="double_"+n,r=r.slice(1));break}let i="normal",a=r.length-1;r.startsWith("=")&&(i="thick"),r.startsWith("~")&&(i="invisible");let s=v9e(".",r);return s&&(i="dotted",a=s),{type:n,stroke:i,length:a}},"destructEndLink"),b9e=o((t,e)=>{let r=x9e(t),n;if(e){if(n=y9e(e),n.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(n.type==="arrow_open")n.type=r.type;else{if(n.type!==r.type)return{type:"INVALID",stroke:"INVALID"};n.type="double_"+n.type}return n.type==="double_arrow"&&(n.type="double_arrow_point"),n.length=r.length,n}return r},"destructLink"),XZ=o((t,e)=>{for(let r of t)if(r.nodes.includes(e))return!0;return!1},"exists"),jZ=o((t,e)=>{let r=[];return t.nodes.forEach((n,i)=>{XZ(e,n)||r.push(t.nodes[i])}),{nodes:r}},"makeUniq"),w9e={firstGraph:g9e},T9e=o(t=>{if(t.img)return"imageSquare";if(t.icon)return t.form==="circle"?"iconCircle":t.form==="square"?"iconSquare":t.form==="rounded"?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}},"getTypeFromVertex"),k9e=o((t,e)=>t.find(r=>r.id===e),"findNode"),E9e=o(t=>{let e="none",r="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":r=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":e=t.replace("double_",""),r=e;break}return{arrowTypeStart:e,arrowTypeEnd:r}},"destructEdgeType"),S9e=o((t,e,r,n,i,a)=>{let s=r.get(t.id),l=n.get(t.id)??!1,u=k9e(e,t.id);if(u)u.cssStyles=t.styles,u.cssCompiledStyles=rL(t.classes),u.cssClasses=t.classes.join(" ");else{let h={id:t.id,label:t.text,labelStyle:"",parentId:s,padding:i.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:rL(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:a,link:t.link,linkTarget:t.linkTarget,tooltip:$Z(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint};l?e.push({...h,isGroup:!0,shape:"rect"}):e.push({...h,isGroup:!1,shape:T9e(t)})}},"addNodeFromVertex");o(rL,"getCompiledStyles");C9e=o(()=>{let t=de(),e=[],r=[],n=qZ(),i=new Map,a=new Map;for(let u=n.length-1;u>=0;u--){let h=n[u];h.nodes.length>0&&a.set(h.id,!0);for(let f of h.nodes)i.set(f,h.id)}for(let u=n.length-1;u>=0;u--){let h=n[u];e.push({id:h.id,label:h.title,labelStyle:"",parentId:i.get(h.id),padding:8,cssCompiledStyles:rL(h.classes),cssClasses:h.classes.join(" "),shape:"rect",dir:h.dir,isGroup:!0,look:t.look})}VZ().forEach(u=>{S9e(u,e,i,a,t,t.look||"classic")});let l=UZ();return l.forEach((u,h)=>{let{arrowTypeStart:f,arrowTypeEnd:d}=E9e(u.type),p=[...l.defaultStyle??[]];u.style&&p.push(...u.style);let m={id:p5(u.start,u.end,{counter:h,prefix:"L"}),start:u.start,end:u.end,type:u.type??"normal",label:u.text,labelpos:"c",thickness:u.stroke,minlen:u.length,classes:u?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:u?.stroke==="invisible"?"none":f,arrowTypeEnd:u?.stroke==="invisible"?"none":d,arrowheadStyle:"fill: #333",labelStyle:p,style:p,pattern:u.stroke,look:t.look};r.push(m)}),{nodes:e,edges:r,other:{},config:t}},"getData"),X5={defaultConfig:o(()=>S4.flowchart,"defaultConfig"),setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,getData:C9e,setAccDescription:Br,addVertex:K_e,lookUpDomId:q5,addLink:Z_e,updateLinkInterpolate:J_e,updateLink:e9e,addClass:t9e,setDirection:r9e,setClass:aL,setTooltip:n9e,getTooltip:$Z,setClickEvent:s9e,setLink:a9e,bindFunctions:o9e,getDirection:sL,getVertices:VZ,getEdges:UZ,getClasses:l9e,clear:c9e,setGen:u9e,defaultStyle:h9e,addSubGraph:f9e,getDepthFirstPos:p9e,indexNodes:m9e,getSubGraphs:qZ,destructLink:b9e,lex:w9e,exists:XZ,makeUniq:jZ,setDiagramTitle:ln,getDiagramTitle:Jr}});var pm,j5=M(()=>{"use strict";mr();pm=o((t,e)=>{let r;return e==="sandbox"&&(r=ze("#i"+t)),(e==="sandbox"?ze(r.nodes()[0].contentDocument.body):ze("body")).select(`[id="${t}"]`)},"getDiagramElement")});var _u,Cv=M(()=>{"use strict";_u=o(({flowchart:t})=>{let e=t?.subGraphTitleMargin?.top??0,r=t?.subGraphTitleMargin?.bottom??0,n=e+r;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:n}},"getSubGraphTitleMargins")});var KZ,A9e,_9e,L9e,D9e,N9e,R9e,QZ,mm,ZZ,K5=M(()=>{"use strict";Vt();fr();ht();Cv();mr();jt();Dl();w9();I5();zh();Xt();KZ=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=et(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=xr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Si(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0}),y=g.getBBox();if(xr(r.flowchart.htmlLabels)){let L=g.children[0],C=ze(g);y=L.getBoundingClientRect(),C.attr("width",y.width),C.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let _;if(e.look==="handDrawn"){let L=Ke.svg(d),C=Ze(e,{roughness:.7,fill:a,stroke:s,fillWeight:3,seed:i}),A=L.path(La(b,w,v,x,0),C);_=d.insert(()=>(Y.debug("Rough node insert CXC",A),A),":first-child"),_.select("path:nth-child(2)").attr("style",h.join(";")),_.select("path").attr("style",f.join(";").replace("fill","stroke"))}else _=d.insert("rect",":first-child"),_.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=_u(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let L=m.select("span");L&&L.attr("style",l)}let E=_.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(L){return Oh(e,L)},{cluster:d,labelBBox:y}},"rect"),A9e=o((t,e)=>{let r=t.insert("g").attr("class","note-cluster").attr("id",e.id),n=r.insert("rect",":first-child"),i=0*e.padding,a=i/2;n.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-a).attr("y",e.y-e.height/2-a).attr("width",e.width+i).attr("height",e.height+i).attr("fill","none");let s=n.node().getBBox();return e.width=s.width,e.height=s.height,e.intersect=function(l){return Oh(e,l)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),_9e=o(async(t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{altBackground:a,compositeBackground:s,compositeTitleBackground:l,nodeBorder:u}=n,h=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-id",e.id).attr("data-look",e.look),f=h.insert("g",":first-child"),d=h.insert("g").attr("class","cluster-label"),p=h.append("rect"),m=d.node().appendChild(await gc(e.label,e.labelStyle,void 0,!0)),g=m.getBBox();if(xr(r.flowchart.htmlLabels)){let A=m.children[0],I=ze(m);g=A.getBoundingClientRect(),I.attr("width",g.width),I.attr("height",g.height)}let y=0*e.padding,v=y/2,x=(e.width<=g.width+e.padding?g.width+e.padding:e.width)+y;e.width<=g.width+e.padding?e.diff=(x-e.width)/2-e.padding:e.diff=-e.padding;let b=e.height+y,w=e.height+y-g.height-6,_=e.x-x/2,T=e.y-b/2;e.width=x;let E=e.y-e.height/2-v+g.height+2,L;if(e.look==="handDrawn"){let A=e.cssClasses.includes("statediagram-cluster-alt"),I=Ke.svg(h),D=e.rx||e.ry?I.path(La(_,T,x,b,10),{roughness:.7,fill:l,fillStyle:"solid",stroke:u,seed:i}):I.rectangle(_,T,x,b,{seed:i});L=h.insert(()=>D,":first-child");let k=I.rectangle(_,E,x,w,{fill:A?a:s,fillStyle:A?"hachure":"solid",stroke:u,seed:i});L=h.insert(()=>D,":first-child"),p=h.insert(()=>k)}else L=f.insert("rect",":first-child"),L.attr("class","outer").attr("x",_).attr("y",T).attr("width",x).attr("height",b).attr("data-look",e.look),p.attr("class","inner").attr("x",_).attr("y",E).attr("width",x).attr("height",w);d.attr("transform",`translate(${e.x-g.width/2}, ${T+1-(xr(r.flowchart.htmlLabels)?0:3)})`);let C=L.node().getBBox();return e.height=C.height,e.offsetX=0,e.offsetY=g.height-e.padding/2,e.labelBBox=g,e.intersect=function(A){return Oh(e,A)},{cluster:h,labelBBox:g}},"roundedWithTitle"),L9e=o(async(t,e)=>{Y.info("Creating subgraph rect for ",e.id,e);let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{clusterBkg:a,clusterBorder:s}=n,{labelStyles:l,nodeStyles:u,borderStyles:h,backgroundStyles:f}=et(e),d=t.insert("g").attr("class","cluster "+e.cssClasses).attr("id",e.id).attr("data-look",e.look),p=xr(r.flowchart.htmlLabels),m=d.insert("g").attr("class","cluster-label "),g=await Si(m,e.label,{style:e.labelStyle,useHtmlLabels:p,isNode:!0,width:e.width}),y=g.getBBox();if(xr(r.flowchart.htmlLabels)){let L=g.children[0],C=ze(g);y=L.getBoundingClientRect(),C.attr("width",y.width),C.attr("height",y.height)}let v=e.width<=y.width+e.padding?y.width+e.padding:e.width;e.width<=y.width+e.padding?e.diff=(v-e.width)/2-e.padding:e.diff=-e.padding;let x=e.height,b=e.x-v/2,w=e.y-x/2;Y.trace("Data ",e,JSON.stringify(e));let _;if(e.look==="handDrawn"){let L=Ke.svg(d),C=Ze(e,{roughness:.7,fill:a,stroke:s,fillWeight:4,seed:i}),A=L.path(La(b,w,v,x,e.rx),C);_=d.insert(()=>(Y.debug("Rough node insert CXC",A),A),":first-child"),_.select("path:nth-child(2)").attr("style",h.join(";")),_.select("path").attr("style",f.join(";").replace("fill","stroke"))}else _=d.insert("rect",":first-child"),_.attr("style",u).attr("rx",e.rx).attr("ry",e.ry).attr("x",b).attr("y",w).attr("width",v).attr("height",x);let{subGraphTitleTopMargin:T}=_u(r);if(m.attr("transform",`translate(${e.x-y.width/2}, ${e.y-e.height/2+T})`),l){let L=m.select("span");L&&L.attr("style",l)}let E=_.node().getBBox();return e.offsetX=0,e.width=E.width,e.height=E.height,e.offsetY=y.height-e.padding/2,e.intersect=function(L){return Oh(e,L)},{cluster:d,labelBBox:y}},"kanbanSection"),D9e=o((t,e)=>{let r=de(),{themeVariables:n,handDrawnSeed:i}=r,{nodeBorder:a}=n,s=t.insert("g").attr("class",e.cssClasses).attr("id",e.id).attr("data-look",e.look),l=s.insert("g",":first-child"),u=0*e.padding,h=e.width+u;e.diff=-e.padding;let f=e.height+u,d=e.x-h/2,p=e.y-f/2;e.width=h;let m;if(e.look==="handDrawn"){let v=Ke.svg(s).rectangle(d,p,h,f,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:a,seed:i});m=s.insert(()=>v,":first-child")}else m=l.insert("rect",":first-child"),m.attr("class","divider").attr("x",d).attr("y",p).attr("width",h).attr("height",f).attr("data-look",e.look);let g=m.node().getBBox();return e.height=g.height,e.offsetX=0,e.offsetY=0,e.intersect=function(y){return Oh(e,y)},{cluster:s,labelBBox:{}}},"divider"),N9e=KZ,R9e={rect:KZ,squareRect:N9e,roundedWithTitle:_9e,noteGroup:A9e,divider:D9e,kanbanSection:L9e},QZ=new Map,mm=o(async(t,e)=>{let r=e.shape||"rect",n=await R9e[r](t,e);return QZ.set(e.id,n),n},"insertCluster"),ZZ=o(()=>{QZ=new Map},"clear")});function Q5(t,e){if(t===void 0||e===void 0)return{angle:0,deltaX:0,deltaY:0};t=Un(t),e=Un(e);let[r,n]=[t.x,t.y],[i,a]=[e.x,e.y],s=i-r,l=a-n;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}var $o,Un,Z5,lL=M(()=>{"use strict";$o={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};o(Q5,"calculateDeltaAndAngle");Un=o(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),Z5=o(t=>({x:o(function(e,r,n){let i=0,a=Un(n[0]).x=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaX:g}=Q5(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.cos(m)*(g>=0?1:-1)}let s=Math.abs(Un(e).x-Un(n[n.length-1]).x),l=Math.abs(Un(e).y-Un(n[n.length-1]).y),u=Math.abs(Un(e).x-Un(n[0]).x),h=Math.abs(Un(e).y-Un(n[0]).y),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s0&&l0&&h=0?1:-1)}else if(r===n.length-1&&Object.hasOwn($o,t.arrowTypeEnd)){let{angle:m,deltaY:g}=Q5(n[n.length-1],n[n.length-2]);i=$o[t.arrowTypeEnd]*Math.abs(Math.sin(m))*(g>=0?1:-1)}let s=Math.abs(Un(e).y-Un(n[n.length-1]).y),l=Math.abs(Un(e).x-Un(n[n.length-1]).x),u=Math.abs(Un(e).y-Un(n[0]).y),h=Math.abs(Un(e).x-Un(n[0]).x),f=$o[t.arrowTypeStart],d=$o[t.arrowTypeEnd],p=1;if(s0&&l0&&h{"use strict";ht();eJ=o((t,e,r,n,i)=>{e.arrowTypeStart&&JZ(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&JZ(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),M9e={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},JZ=o((t,e,r,n,i,a)=>{let s=M9e[r];if(!s){Y.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function J5(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}function P9e(t){let e=[],r=[];for(let n=1;n5&&Math.abs(a.y-i.y)>5||i.y===a.y&&a.x===s.x&&Math.abs(a.x-i.x)>5&&Math.abs(a.y-s.y)>5)&&(e.push(a),r.push(n))}return{cornerPoints:e,cornerPointPositions:r}}var ew,ua,iJ,Av,tw,rw,I9e,O9e,rJ,nJ,B9e,nw,cL=M(()=>{"use strict";Vt();fr();ht();Dl();hr();lL();Cv();mr();jt();I5();tJ();ew=new Map,ua=new Map,iJ=o(()=>{ew.clear(),ua.clear()},"clear"),Av=o(t=>t?t.reduce((r,n)=>r+";"+n,""):"","getLabelStyles"),tw=o(async(t,e)=>{let r=xr(de().flowchart.htmlLabels),n=await Si(t,e.label,{style:Av(e.labelStyle),useHtmlLabels:r,addSvgBackground:!0,isNode:!1});Y.info("abc82",e,e.labelType);let i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let s=n.getBBox();if(r){let u=n.children[0],h=ze(n);s=u.getBoundingClientRect(),h.attr("width",s.width),h.attr("height",s.height)}a.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),ew.set(e.id,i),e.width=s.width,e.height=s.height;let l;if(e.startLabelLeft){let u=await gc(e.startLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).startLeft=h,J5(l,e.startLabelLeft)}if(e.startLabelRight){let u=await gc(e.startLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=h.node().appendChild(u),f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).startRight=h,J5(l,e.startLabelRight)}if(e.endLabelLeft){let u=await gc(e.endLabelLeft,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).endLeft=h,J5(l,e.endLabelLeft)}if(e.endLabelRight){let u=await gc(e.endLabelRight,Av(e.labelStyle)),h=t.insert("g").attr("class","edgeTerminals"),f=h.insert("g").attr("class","inner");l=f.node().appendChild(u);let d=u.getBBox();f.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),h.node().appendChild(u),ua.get(e.id)||ua.set(e.id,{}),ua.get(e.id).endRight=h,J5(l,e.endLabelRight)}return n},"insertEdgeLabel");o(J5,"setTerminalWidth");rw=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,ew.get(t.id),e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=_u(n);if(t.label){let a=ew.get(t.id),s=t.x,l=t.y;if(r){let u=Ut.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=ua.get(t.id).startLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=ua.get(t.id).startRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=ua.get(t.id).endLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=ua.get(t.id).endRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),I9e=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),O9e=o((t,e,r)=>{Y.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{Y.warn("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(Y.info("abc88 checking point",a,e),!I9e(e,a)&&!i){let s=O9e(e,n,a);Y.debug("abc88 inside",a,n,s),Y.debug("abc88 intersection",s,e);let l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)?Y.warn("abc88 no intersect",s,r):r.push(s),i=!0}else Y.warn("abc88 outside",a,n),n=a,i||r.push(a)}),Y.debug("returning points",r),r},"cutPathAtIntersect");o(P9e,"extractCornerPoints");nJ=o(function(t,e,r){let n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),s=r/a;return{x:e.x-s*n,y:e.y-s*i}},"findAdjacentPoint"),B9e=o(function(t){let{cornerPointPositions:e}=P9e(t),r=[];for(let n=0;n10&&Math.abs(a.y-i.y)>=10){Y.debug("Corner point fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));let m=5;s.x===l.x?p={x:h<0?l.x-m+d:l.x+m-d,y:f<0?l.y-d:l.y+d}:p={x:h<0?l.x-d:l.x+d,y:f<0?l.y-m+d:l.y+m-d}}else Y.debug("Corner point skipping fixing",Math.abs(a.x-i.x),Math.abs(a.y-i.y));r.push(p,u)}else r.push(t[n]);return r},"fixCorners"),nw=o(function(t,e,r,n,i,a,s){let{handDrawnSeed:l}=de(),u=e.points,h=!1,f=i;var d=a;d.intersect&&f.intersect&&(u=u.slice(1,e.points.length-1),u.unshift(f.intersect(u[0])),Y.debug("Last point APA12",e.start,"-->",e.end,u[u.length-1],d,d.intersect(u[u.length-1])),u.push(d.intersect(u[u.length-1]))),e.toCluster&&(Y.info("to cluster abc88",r.get(e.toCluster)),u=rJ(e.points,r.get(e.toCluster).node),h=!0),e.fromCluster&&(Y.debug("from cluster abc88",r.get(e.fromCluster),JSON.stringify(u,null,2)),u=rJ(u.reverse(),r.get(e.fromCluster).node).reverse(),h=!0);let p=u.filter(L=>!Number.isNaN(L.y));p=B9e(p);let m=Do;e.curve&&(m=e.curve);let{x:g,y}=Z5(e),v=Ka().x(g).y(y).curve(m),x;switch(e.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-invisible";break;default:x="edge-thickness-normal"}switch(e.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break;default:x+=" edge-pattern-solid"}let b,w=v(p),_=Array.isArray(e.style)?e.style:[e.style];if(e.look==="handDrawn"){let L=Ke.svg(t);Object.assign([],p);let C=L.path(w,{roughness:.3,seed:l});x+=" transition",b=ze(C).select("path").attr("id",e.id).attr("class"," "+x+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((I,D)=>I+";"+D,""):"");let A=b.attr("d");b.attr("d",A),t.node().appendChild(b.node())}else b=t.append("path").attr("d",w).attr("id",e.id).attr("class"," "+x+(e.classes?" "+e.classes:"")).attr("style",_?_.reduce((L,C)=>L+";"+C,""):"");let T="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(T=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,T=T.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),Y.info("arrowTypeStart",e.arrowTypeStart),Y.info("arrowTypeEnd",e.arrowTypeEnd),eJ(b,e,T,s,n);let E={};return h&&(E.updatedPath=u),E.originalPath=e.points,E},"insertEdge")});var F9e,z9e,G9e,$9e,V9e,U9e,H9e,W9e,Y9e,q9e,X9e,iw,uL=M(()=>{"use strict";ht();F9e=o((t,e,r,n)=>{e.forEach(i=>{X9e[i](t,r,n)})},"insertMarkers"),z9e=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),G9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),$9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),V9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),U9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),H9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),W9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),Y9e=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),q9e=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),X9e={extension:z9e,composition:G9e,aggregation:$9e,dependency:V9e,lollipop:U9e,point:H9e,circle:W9e,cross:Y9e,barb:q9e},iw=F9e});async function gm(t,e,r){let n,i;e.shape==="rect"&&(e.rx&&e.ry?e.shape="roundedRect":e.shape="squareRect");let a=e.shape?z9[e.shape]:void 0;if(!a)throw new Error(`No such shape: ${e.shape}. Please check your syntax.`);if(e.link){let s;r.config.securityLevel==="sandbox"?s="_top":e.linkTarget&&(s=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",s??null),i=await a(n,e,r)}else i=await a(t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),aw.set(e.id,n),e.haveCallback&&n.attr("class",n.attr("class")+" clickable"),n}var aw,aJ,sJ,_v,sw=M(()=>{"use strict";ht();G9();aw=new Map;o(gm,"insertNode");aJ=o((t,e)=>{aw.set(e.id,t)},"setNodeElem"),sJ=o(()=>{aw.clear()},"clear"),_v=o(t=>{let e=aw.get(t.id);Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});var oJ,lJ=M(()=>{"use strict";Ua();fr();ht();K5();cL();uL();sw();Ft();hr();oJ={common:je,getConfig:Sr,insertCluster:mm,insertEdge:nw,insertEdgeLabel:tw,insertMarkers:iw,insertNode:gm,interpolateToCurve:Q_,labelHelper:ot,log:Y,positionEdgeLabel:rw}});function K9e(t){return typeof t=="symbol"||Zn(t)&&ca(t)==j9e}var j9e,ro,Ld=M(()=>{"use strict";xu();Mo();j9e="[object Symbol]";o(K9e,"isSymbol");ro=K9e});function Q9e(t,e){for(var r=-1,n=t==null?0:t.length,i=Array(n);++r{"use strict";o(Q9e,"arrayMap");As=Q9e});function hJ(t){if(typeof t=="string")return t;if(Mt(t))return As(t,hJ)+"";if(ro(t))return uJ?uJ.call(t):"";var e=t+"";return e=="0"&&1/t==-Z9e?"-0":e}var Z9e,cJ,uJ,fJ,dJ=M(()=>{"use strict";gd();Dd();Vn();Ld();Z9e=1/0,cJ=ea?ea.prototype:void 0,uJ=cJ?cJ.toString:void 0;o(hJ,"baseToString");fJ=hJ});function eLe(t){for(var e=t.length;e--&&J9e.test(t.charAt(e)););return e}var J9e,pJ,mJ=M(()=>{"use strict";J9e=/\s/;o(eLe,"trimmedEndIndex");pJ=eLe});function rLe(t){return t&&t.slice(0,pJ(t)+1).replace(tLe,"")}var tLe,gJ,yJ=M(()=>{"use strict";mJ();tLe=/^\s+/;o(rLe,"baseTrim");gJ=rLe});function oLe(t){if(typeof t=="number")return t;if(ro(t))return vJ;if(yn(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=yn(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=gJ(t);var r=iLe.test(t);return r||aLe.test(t)?sLe(t.slice(2),r?2:8):nLe.test(t)?vJ:+t}var vJ,nLe,iLe,aLe,sLe,xJ,bJ=M(()=>{"use strict";yJ();Qs();Ld();vJ=NaN,nLe=/^[-+]0x[0-9a-f]+$/i,iLe=/^0b[01]+$/i,aLe=/^0o[0-7]+$/i,sLe=parseInt;o(oLe,"toNumber");xJ=oLe});function cLe(t){if(!t)return t===0?t:0;if(t=xJ(t),t===wJ||t===-wJ){var e=t<0?-1:1;return e*lLe}return t===t?t:0}var wJ,lLe,ym,hL=M(()=>{"use strict";bJ();wJ=1/0,lLe=17976931348623157e292;o(cLe,"toFinite");ym=cLe});function uLe(t){var e=ym(t),r=e%1;return e===e?r?e-r:e:0}var vc,vm=M(()=>{"use strict";hL();o(uLe,"toInteger");vc=uLe});var hLe,ow,TJ=M(()=>{"use strict";Ch();No();hLe=vs(ai,"WeakMap"),ow=hLe});function fLe(){}var Jn,fL=M(()=>{"use strict";o(fLe,"noop");Jn=fLe});function dLe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(dLe,"arrayEach");lw=dLe});function pLe(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{"use strict";o(pLe,"baseFindIndex");cw=pLe});function mLe(t){return t!==t}var kJ,EJ=M(()=>{"use strict";o(mLe,"baseIsNaN");kJ=mLe});function gLe(t,e,r){for(var n=r-1,i=t.length;++n{"use strict";o(gLe,"strictIndexOf");SJ=gLe});function yLe(t,e,r){return e===e?SJ(t,e,r):cw(t,kJ,r)}var xm,uw=M(()=>{"use strict";pL();EJ();CJ();o(yLe,"baseIndexOf");xm=yLe});function vLe(t,e){var r=t==null?0:t.length;return!!r&&xm(t,e,0)>-1}var hw,mL=M(()=>{"use strict";uw();o(vLe,"arrayIncludes");hw=vLe});var xLe,AJ,_J=M(()=>{"use strict";F_();xLe=n5(Object.keys,Object),AJ=xLe});function TLe(t){if(!fc(t))return AJ(t);var e=[];for(var r in Object(t))wLe.call(t,r)&&r!="constructor"&&e.push(r);return e}var bLe,wLe,bm,fw=M(()=>{"use strict";Kp();_J();bLe=Object.prototype,wLe=bLe.hasOwnProperty;o(TLe,"baseKeys");bm=TLe});function kLe(t){return si(t)?l5(t):bm(t)}var zr,xc=M(()=>{"use strict";U_();fw();Io();o(kLe,"keys");zr=kLe});var ELe,SLe,CLe,ha,LJ=M(()=>{"use strict";em();wd();q_();Io();Kp();xc();ELe=Object.prototype,SLe=ELe.hasOwnProperty,CLe=h5(function(t,e){if(fc(e)||si(e)){Bo(e,zr(e),t);return}for(var r in e)SLe.call(e,r)&&dc(t,r,e[r])}),ha=CLe});function LLe(t,e){if(Mt(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||ro(t)?!0:_Le.test(t)||!ALe.test(t)||e!=null&&t in Object(e)}var ALe,_Le,wm,dw=M(()=>{"use strict";Vn();Ld();ALe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_Le=/^\w*$/;o(LLe,"isKey");wm=LLe});function NLe(t){var e=Vp(t,function(n){return r.size===DLe&&r.clear(),n}),r=e.cache;return e}var DLe,DJ,NJ=M(()=>{"use strict";N_();DLe=500;o(NLe,"memoizeCapped");DJ=NLe});var RLe,MLe,ILe,RJ,MJ=M(()=>{"use strict";NJ();RLe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,MLe=/\\(\\)?/g,ILe=DJ(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(RLe,function(r,n,i,a){e.push(i?a.replace(MLe,"$1"):n||r)}),e}),RJ=ILe});function OLe(t){return t==null?"":fJ(t)}var pw,gL=M(()=>{"use strict";dJ();o(OLe,"toString");pw=OLe});function PLe(t,e){return Mt(t)?t:wm(t,e)?[t]:RJ(pw(t))}var Uh,Lv=M(()=>{"use strict";Vn();dw();MJ();gL();o(PLe,"castPath");Uh=PLe});function FLe(t){if(typeof t=="string"||ro(t))return t;var e=t+"";return e=="0"&&1/t==-BLe?"-0":e}var BLe,bc,Tm=M(()=>{"use strict";Ld();BLe=1/0;o(FLe,"toKey");bc=FLe});function zLe(t,e){e=Uh(e,t);for(var r=0,n=e.length;t!=null&&r{"use strict";Lv();Tm();o(zLe,"baseGet");Hh=zLe});function GLe(t,e,r){var n=t==null?void 0:Hh(t,e);return n===void 0?r:n}var IJ,OJ=M(()=>{"use strict";Dv();o(GLe,"get");IJ=GLe});function $Le(t,e){for(var r=-1,n=e.length,i=t.length;++r{"use strict";o($Le,"arrayPush");km=$Le});function VLe(t){return Mt(t)||Al(t)||!!(PJ&&t&&t[PJ])}var PJ,BJ,FJ=M(()=>{"use strict";gd();Qp();Vn();PJ=ea?ea.isConcatSpreadable:void 0;o(VLe,"isFlattenable");BJ=VLe});function zJ(t,e,r,n,i){var a=-1,s=t.length;for(r||(r=BJ),i||(i=[]);++a0&&r(l)?e>1?zJ(l,e-1,r,n,i):km(i,l):n||(i[i.length]=l)}return i}var wc,Em=M(()=>{"use strict";mw();FJ();o(zJ,"baseFlatten");wc=zJ});function ULe(t){var e=t==null?0:t.length;return e?wc(t,1):[]}var Wr,gw=M(()=>{"use strict";Em();o(ULe,"flatten");Wr=ULe});function HLe(t){return u5(c5(t,void 0,Wr),t+"")}var GJ,$J=M(()=>{"use strict";gw();H_();Y_();o(HLe,"flatRest");GJ=HLe});function WLe(t,e,r){var n=-1,i=t.length;e<0&&(e=-e>i?0:i+e),r=r>i?i:r,r<0&&(r+=i),i=e>r?0:r-e>>>0,e>>>=0;for(var a=Array(i);++n{"use strict";o(WLe,"baseSlice");yw=WLe});function eDe(t){return JLe.test(t)}var YLe,qLe,XLe,jLe,KLe,QLe,ZLe,JLe,VJ,UJ=M(()=>{"use strict";YLe="\\ud800-\\udfff",qLe="\\u0300-\\u036f",XLe="\\ufe20-\\ufe2f",jLe="\\u20d0-\\u20ff",KLe=qLe+XLe+jLe,QLe="\\ufe0e\\ufe0f",ZLe="\\u200d",JLe=RegExp("["+ZLe+YLe+KLe+QLe+"]");o(eDe,"hasUnicode");VJ=eDe});function tDe(t,e,r,n){var i=-1,a=t==null?0:t.length;for(n&&a&&(r=t[++i]);++i{"use strict";o(tDe,"arrayReduce");HJ=tDe});function rDe(t,e){return t&&Bo(e,zr(e),t)}var YJ,qJ=M(()=>{"use strict";wd();xc();o(rDe,"baseAssign");YJ=rDe});function nDe(t,e){return t&&Bo(e,xs(e),t)}var XJ,jJ=M(()=>{"use strict";wd();Mh();o(nDe,"baseAssignIn");XJ=nDe});function iDe(t,e){for(var r=-1,n=t==null?0:t.length,i=0,a=[];++r{"use strict";o(iDe,"arrayFilter");Sm=iDe});function aDe(){return[]}var xw,vL=M(()=>{"use strict";o(aDe,"stubArray");xw=aDe});var sDe,oDe,KJ,lDe,Cm,bw=M(()=>{"use strict";vw();vL();sDe=Object.prototype,oDe=sDe.propertyIsEnumerable,KJ=Object.getOwnPropertySymbols,lDe=KJ?function(t){return t==null?[]:(t=Object(t),Sm(KJ(t),function(e){return oDe.call(t,e)}))}:xw,Cm=lDe});function cDe(t,e){return Bo(t,Cm(t),e)}var QJ,ZJ=M(()=>{"use strict";wd();bw();o(cDe,"copySymbols");QJ=cDe});var uDe,hDe,ww,xL=M(()=>{"use strict";mw();i5();bw();vL();uDe=Object.getOwnPropertySymbols,hDe=uDe?function(t){for(var e=[];t;)km(e,Cm(t)),t=jp(t);return e}:xw,ww=hDe});function fDe(t,e){return Bo(t,ww(t),e)}var JJ,eee=M(()=>{"use strict";wd();xL();o(fDe,"copySymbolsIn");JJ=fDe});function dDe(t,e,r){var n=e(t);return Mt(t)?n:km(n,r(t))}var Tw,bL=M(()=>{"use strict";mw();Vn();o(dDe,"baseGetAllKeys");Tw=dDe});function pDe(t){return Tw(t,zr,Cm)}var Nv,wL=M(()=>{"use strict";bL();bw();xc();o(pDe,"getAllKeys");Nv=pDe});function mDe(t){return Tw(t,xs,ww)}var kw,TL=M(()=>{"use strict";bL();xL();Mh();o(mDe,"getAllKeysIn");kw=mDe});var gDe,Ew,tee=M(()=>{"use strict";Ch();No();gDe=vs(ai,"DataView"),Ew=gDe});var yDe,Sw,ree=M(()=>{"use strict";Ch();No();yDe=vs(ai,"Promise"),Sw=yDe});var vDe,Wh,kL=M(()=>{"use strict";Ch();No();vDe=vs(ai,"Set"),Wh=vDe});var nee,xDe,iee,aee,see,oee,bDe,wDe,TDe,kDe,EDe,Nd,no,Rd=M(()=>{"use strict";tee();K3();ree();kL();TJ();xu();__();nee="[object Map]",xDe="[object Object]",iee="[object Promise]",aee="[object Set]",see="[object WeakMap]",oee="[object DataView]",bDe=bu(Ew),wDe=bu(Lh),TDe=bu(Sw),kDe=bu(Wh),EDe=bu(ow),Nd=ca;(Ew&&Nd(new Ew(new ArrayBuffer(1)))!=oee||Lh&&Nd(new Lh)!=nee||Sw&&Nd(Sw.resolve())!=iee||Wh&&Nd(new Wh)!=aee||ow&&Nd(new ow)!=see)&&(Nd=o(function(t){var e=ca(t),r=e==xDe?t.constructor:void 0,n=r?bu(r):"";if(n)switch(n){case bDe:return oee;case wDe:return nee;case TDe:return iee;case kDe:return aee;case EDe:return see}return e},"getTag"));no=Nd});function ADe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&CDe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var SDe,CDe,lee,cee=M(()=>{"use strict";SDe=Object.prototype,CDe=SDe.hasOwnProperty;o(ADe,"initCloneArray");lee=ADe});function _De(t,e){var r=e?Xp(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}var uee,hee=M(()=>{"use strict";e5();o(_De,"cloneDataView");uee=_De});function DDe(t){var e=new t.constructor(t.source,LDe.exec(t));return e.lastIndex=t.lastIndex,e}var LDe,fee,dee=M(()=>{"use strict";LDe=/\w*$/;o(DDe,"cloneRegExp");fee=DDe});function NDe(t){return mee?Object(mee.call(t)):{}}var pee,mee,gee,yee=M(()=>{"use strict";gd();pee=ea?ea.prototype:void 0,mee=pee?pee.valueOf:void 0;o(NDe,"cloneSymbol");gee=NDe});function QDe(t,e,r){var n=t.constructor;switch(e){case GDe:return Xp(t);case RDe:case MDe:return new n(+t);case $De:return uee(t,r);case VDe:case UDe:case HDe:case WDe:case YDe:case qDe:case XDe:case jDe:case KDe:return t5(t,r);case IDe:return new n;case ODe:case FDe:return new n(t);case PDe:return fee(t);case BDe:return new n;case zDe:return gee(t)}}var RDe,MDe,IDe,ODe,PDe,BDe,FDe,zDe,GDe,$De,VDe,UDe,HDe,WDe,YDe,qDe,XDe,jDe,KDe,vee,xee=M(()=>{"use strict";e5();hee();dee();yee();P_();RDe="[object Boolean]",MDe="[object Date]",IDe="[object Map]",ODe="[object Number]",PDe="[object RegExp]",BDe="[object Set]",FDe="[object String]",zDe="[object Symbol]",GDe="[object ArrayBuffer]",$De="[object DataView]",VDe="[object Float32Array]",UDe="[object Float64Array]",HDe="[object Int8Array]",WDe="[object Int16Array]",YDe="[object Int32Array]",qDe="[object Uint8Array]",XDe="[object Uint8ClampedArray]",jDe="[object Uint16Array]",KDe="[object Uint32Array]";o(QDe,"initCloneByTag");vee=QDe});function JDe(t){return Zn(t)&&no(t)==ZDe}var ZDe,bee,wee=M(()=>{"use strict";Rd();Mo();ZDe="[object Map]";o(JDe,"baseIsMap");bee=JDe});var Tee,eNe,kee,Eee=M(()=>{"use strict";wee();bd();nv();Tee=Po&&Po.isMap,eNe=Tee?Oo(Tee):bee,kee=eNe});function rNe(t){return Zn(t)&&no(t)==tNe}var tNe,See,Cee=M(()=>{"use strict";Rd();Mo();tNe="[object Set]";o(rNe,"baseIsSet");See=rNe});var Aee,nNe,_ee,Lee=M(()=>{"use strict";Cee();bd();nv();Aee=Po&&Po.isSet,nNe=Aee?Oo(Aee):See,_ee=nNe});function Cw(t,e,r,n,i,a){var s,l=e&iNe,u=e&aNe,h=e&sNe;if(r&&(s=i?r(t,n,i,a):r(t)),s!==void 0)return s;if(!yn(t))return t;var f=Mt(t);if(f){if(s=lee(t),!l)return r5(t,s)}else{var d=no(t),p=d==Nee||d==hNe;if(_l(t))return J3(t,l);if(d==Ree||d==Dee||p&&!i){if(s=u||p?{}:a5(t),!l)return u?JJ(t,XJ(s,t)):QJ(t,YJ(s,t))}else{if(!Sn[d])return i?t:{};s=vee(t,d,l)}}a||(a=new uc);var m=a.get(t);if(m)return m;a.set(t,s),_ee(t)?t.forEach(function(v){s.add(Cw(v,e,r,v,t,a))}):kee(t)&&t.forEach(function(v,x){s.set(x,Cw(v,e,r,x,t,a))});var g=h?u?kw:Nv:u?xs:zr,y=f?void 0:g(t);return lw(y||t,function(v,x){y&&(x=v,v=t[x]),dc(s,x,Cw(v,e,r,x,t,a))}),s}var iNe,aNe,sNe,Dee,oNe,lNe,cNe,uNe,Nee,hNe,fNe,dNe,Ree,pNe,mNe,gNe,yNe,vNe,xNe,bNe,wNe,TNe,kNe,ENe,SNe,CNe,ANe,_Ne,LNe,Sn,Aw,EL=M(()=>{"use strict";ev();dL();em();qJ();jJ();I_();B_();ZJ();eee();wL();TL();Rd();cee();xee();z_();Vn();Jp();Eee();Qs();Lee();xc();Mh();iNe=1,aNe=2,sNe=4,Dee="[object Arguments]",oNe="[object Array]",lNe="[object Boolean]",cNe="[object Date]",uNe="[object Error]",Nee="[object Function]",hNe="[object GeneratorFunction]",fNe="[object Map]",dNe="[object Number]",Ree="[object Object]",pNe="[object RegExp]",mNe="[object Set]",gNe="[object String]",yNe="[object Symbol]",vNe="[object WeakMap]",xNe="[object ArrayBuffer]",bNe="[object DataView]",wNe="[object Float32Array]",TNe="[object Float64Array]",kNe="[object Int8Array]",ENe="[object Int16Array]",SNe="[object Int32Array]",CNe="[object Uint8Array]",ANe="[object Uint8ClampedArray]",_Ne="[object Uint16Array]",LNe="[object Uint32Array]",Sn={};Sn[Dee]=Sn[oNe]=Sn[xNe]=Sn[bNe]=Sn[lNe]=Sn[cNe]=Sn[wNe]=Sn[TNe]=Sn[kNe]=Sn[ENe]=Sn[SNe]=Sn[fNe]=Sn[dNe]=Sn[Ree]=Sn[pNe]=Sn[mNe]=Sn[gNe]=Sn[yNe]=Sn[CNe]=Sn[ANe]=Sn[_Ne]=Sn[LNe]=!0;Sn[uNe]=Sn[Nee]=Sn[vNe]=!1;o(Cw,"baseClone");Aw=Cw});function NNe(t){return Aw(t,DNe)}var DNe,rn,SL=M(()=>{"use strict";EL();DNe=4;o(NNe,"clone");rn=NNe});function INe(t){return Aw(t,RNe|MNe)}var RNe,MNe,CL,Mee=M(()=>{"use strict";EL();RNe=1,MNe=4;o(INe,"cloneDeep");CL=INe});function ONe(t){for(var e=-1,r=t==null?0:t.length,n=0,i=[];++e{"use strict";o(ONe,"compact");Tc=ONe});function BNe(t){return this.__data__.set(t,PNe),this}var PNe,Oee,Pee=M(()=>{"use strict";PNe="__lodash_hash_undefined__";o(BNe,"setCacheAdd");Oee=BNe});function FNe(t){return this.__data__.has(t)}var Bee,Fee=M(()=>{"use strict";o(FNe,"setCacheHas");Bee=FNe});function _w(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new vd;++e{"use strict";Q3();Pee();Fee();o(_w,"SetCache");_w.prototype.add=_w.prototype.push=Oee;_w.prototype.has=Bee;Am=_w});function zNe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(zNe,"arraySome");Dw=zNe});function GNe(t,e){return t.has(e)}var _m,Nw=M(()=>{"use strict";o(GNe,"cacheHas");_m=GNe});function UNe(t,e,r,n,i,a){var s=r&$Ne,l=t.length,u=e.length;if(l!=u&&!(s&&u>l))return!1;var h=a.get(t),f=a.get(e);if(h&&f)return h==e&&f==t;var d=-1,p=!0,m=r&VNe?new Am:void 0;for(a.set(t,e),a.set(e,t);++d{"use strict";Lw();AL();Nw();$Ne=1,VNe=2;o(UNe,"equalArrays");Rw=UNe});function HNe(t){var e=-1,r=Array(t.size);return t.forEach(function(n,i){r[++e]=[i,n]}),r}var zee,Gee=M(()=>{"use strict";o(HNe,"mapToArray");zee=HNe});function WNe(t){var e=-1,r=Array(t.size);return t.forEach(function(n){r[++e]=n}),r}var Lm,Mw=M(()=>{"use strict";o(WNe,"setToArray");Lm=WNe});function aRe(t,e,r,n,i,a,s){switch(r){case iRe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case nRe:return!(t.byteLength!=e.byteLength||!a(new qp(t),new qp(e)));case XNe:case jNe:case ZNe:return Ro(+t,+e);case KNe:return t.name==e.name&&t.message==e.message;case JNe:case tRe:return t==e+"";case QNe:var l=zee;case eRe:var u=n&YNe;if(l||(l=Lm),t.size!=e.size&&!u)return!1;var h=s.get(t);if(h)return h==e;n|=qNe,s.set(t,e);var f=Rw(l(t),l(e),n,i,a,s);return s.delete(t),f;case rRe:if(LL)return LL.call(t)==LL.call(e)}return!1}var YNe,qNe,XNe,jNe,KNe,QNe,ZNe,JNe,eRe,tRe,rRe,nRe,iRe,$ee,LL,Vee,Uee=M(()=>{"use strict";gd();O_();yd();_L();Gee();Mw();YNe=1,qNe=2,XNe="[object Boolean]",jNe="[object Date]",KNe="[object Error]",QNe="[object Map]",ZNe="[object Number]",JNe="[object RegExp]",eRe="[object Set]",tRe="[object String]",rRe="[object Symbol]",nRe="[object ArrayBuffer]",iRe="[object DataView]",$ee=ea?ea.prototype:void 0,LL=$ee?$ee.valueOf:void 0;o(aRe,"equalByTag");Vee=aRe});function cRe(t,e,r,n,i,a){var s=r&sRe,l=Nv(t),u=l.length,h=Nv(e),f=h.length;if(u!=f&&!s)return!1;for(var d=u;d--;){var p=l[d];if(!(s?p in e:lRe.call(e,p)))return!1}var m=a.get(t),g=a.get(e);if(m&&g)return m==e&&g==t;var y=!0;a.set(t,e),a.set(e,t);for(var v=s;++d{"use strict";wL();sRe=1,oRe=Object.prototype,lRe=oRe.hasOwnProperty;o(cRe,"equalObjects");Hee=cRe});function fRe(t,e,r,n,i,a){var s=Mt(t),l=Mt(e),u=s?qee:no(t),h=l?qee:no(e);u=u==Yee?Iw:u,h=h==Yee?Iw:h;var f=u==Iw,d=h==Iw,p=u==h;if(p&&_l(t)){if(!_l(e))return!1;s=!0,f=!1}if(p&&!f)return a||(a=new uc),s||Nh(t)?Rw(t,e,r,n,i,a):Vee(t,e,u,r,n,i,a);if(!(r&uRe)){var m=f&&Xee.call(t,"__wrapped__"),g=d&&Xee.call(e,"__wrapped__");if(m||g){var y=m?t.value():t,v=g?e.value():e;return a||(a=new uc),i(y,v,r,n,a)}}return p?(a||(a=new uc),Hee(t,e,r,n,i,a)):!1}var uRe,Yee,qee,Iw,hRe,Xee,jee,Kee=M(()=>{"use strict";ev();_L();Uee();Wee();Rd();Vn();Jp();iv();uRe=1,Yee="[object Arguments]",qee="[object Array]",Iw="[object Object]",hRe=Object.prototype,Xee=hRe.hasOwnProperty;o(fRe,"baseIsEqualDeep");jee=fRe});function Qee(t,e,r,n,i){return t===e?!0:t==null||e==null||!Zn(t)&&!Zn(e)?t!==t&&e!==e:jee(t,e,r,n,Qee,i)}var Ow,DL=M(()=>{"use strict";Kee();Mo();o(Qee,"baseIsEqual");Ow=Qee});function mRe(t,e,r,n){var i=r.length,a=i,s=!n;if(t==null)return!a;for(t=Object(t);i--;){var l=r[i];if(s&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i{"use strict";ev();DL();dRe=1,pRe=2;o(mRe,"baseIsMatch");Zee=mRe});function gRe(t){return t===t&&!yn(t)}var Pw,NL=M(()=>{"use strict";Qs();o(gRe,"isStrictComparable");Pw=gRe});function yRe(t){for(var e=zr(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Pw(i)]}return e}var ete,tte=M(()=>{"use strict";NL();xc();o(yRe,"getMatchData");ete=yRe});function vRe(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}var Bw,RL=M(()=>{"use strict";o(vRe,"matchesStrictComparable");Bw=vRe});function xRe(t){var e=ete(t);return e.length==1&&e[0][2]?Bw(e[0][0],e[0][1]):function(r){return r===t||Zee(r,t,e)}}var rte,nte=M(()=>{"use strict";Jee();tte();RL();o(xRe,"baseMatches");rte=xRe});function bRe(t,e){return t!=null&&e in Object(t)}var ite,ate=M(()=>{"use strict";o(bRe,"baseHasIn");ite=bRe});function wRe(t,e,r){e=Uh(e,t);for(var n=-1,i=e.length,a=!1;++n{"use strict";Lv();Qp();Vn();sv();s5();Tm();o(wRe,"hasPath");Fw=wRe});function TRe(t,e){return t!=null&&Fw(t,e,ite)}var zw,IL=M(()=>{"use strict";ate();ML();o(TRe,"hasIn");zw=TRe});function SRe(t,e){return wm(t)&&Pw(e)?Bw(bc(t),e):function(r){var n=IJ(r,t);return n===void 0&&n===e?zw(r,t):Ow(e,n,kRe|ERe)}}var kRe,ERe,ste,ote=M(()=>{"use strict";DL();OJ();IL();dw();NL();RL();Tm();kRe=1,ERe=2;o(SRe,"baseMatchesProperty");ste=SRe});function CRe(t){return function(e){return e?.[t]}}var Gw,OL=M(()=>{"use strict";o(CRe,"baseProperty");Gw=CRe});function ARe(t){return function(e){return Hh(e,t)}}var lte,cte=M(()=>{"use strict";Dv();o(ARe,"basePropertyDeep");lte=ARe});function _Re(t){return wm(t)?Gw(bc(t)):lte(t)}var ute,hte=M(()=>{"use strict";OL();cte();dw();Tm();o(_Re,"property");ute=_Re});function LRe(t){return typeof t=="function"?t:t==null?ta:typeof t=="object"?Mt(t)?ste(t[0],t[1]):rte(t):ute(t)}var dn,Qa=M(()=>{"use strict";nte();ote();Tu();Vn();hte();o(LRe,"baseIteratee");dn=LRe});function DRe(t,e,r,n){for(var i=-1,a=t==null?0:t.length;++i{"use strict";o(DRe,"arrayAggregator");fte=DRe});function NRe(t,e){return t&&Yp(t,e,zr)}var Dm,$w=M(()=>{"use strict";Z3();xc();o(NRe,"baseForOwn");Dm=NRe});function RRe(t,e){return function(r,n){if(r==null)return r;if(!si(r))return t(r,n);for(var i=r.length,a=e?i:-1,s=Object(r);(e?a--:++a{"use strict";Io();o(RRe,"createBaseEach");pte=RRe});var MRe,_s,Yh=M(()=>{"use strict";$w();mte();MRe=pte(Dm),_s=MRe});function IRe(t,e,r,n){return _s(t,function(i,a,s){e(n,i,r(i),s)}),n}var gte,yte=M(()=>{"use strict";Yh();o(IRe,"baseAggregator");gte=IRe});function ORe(t,e){return function(r,n){var i=Mt(r)?fte:gte,a=e?e():{};return i(r,t,dn(n,2),a)}}var vte,xte=M(()=>{"use strict";dte();yte();Qa();Vn();o(ORe,"createAggregator");vte=ORe});var PRe,Vw,bte=M(()=>{"use strict";No();PRe=o(function(){return ai.Date.now()},"now"),Vw=PRe});var wte,BRe,FRe,qh,Tte=M(()=>{"use strict";tm();yd();Td();Mh();wte=Object.prototype,BRe=wte.hasOwnProperty,FRe=pc(function(t,e){t=Object(t);var r=-1,n=e.length,i=n>2?e[2]:void 0;for(i&&Zs(e[0],e[1],i)&&(n=1);++r{"use strict";o(zRe,"arrayIncludesWith");Uw=zRe});function $Re(t,e,r,n){var i=-1,a=hw,s=!0,l=t.length,u=[],h=e.length;if(!l)return u;r&&(e=As(e,Oo(r))),n?(a=Uw,s=!1):e.length>=GRe&&(a=_m,s=!1,e=new Am(e));e:for(;++i{"use strict";Lw();mL();PL();Dd();bd();Nw();GRe=200;o($Re,"baseDifference");kte=$Re});var VRe,Xh,Ste=M(()=>{"use strict";Ete();Em();tm();o5();VRe=pc(function(t,e){return xd(t)?kte(t,wc(e,1,xd,!0)):[]}),Xh=VRe});function URe(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}var fa,Cte=M(()=>{"use strict";o(URe,"last");fa=URe});function HRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),yw(t,e<0?0:e,n)):[]}var mi,Ate=M(()=>{"use strict";yL();vm();o(HRe,"drop");mi=HRe});function WRe(t,e,r){var n=t==null?0:t.length;return n?(e=r||e===void 0?1:vc(e),e=n-e,yw(t,0,e<0?0:e)):[]}var Lu,_te=M(()=>{"use strict";yL();vm();o(WRe,"dropRight");Lu=WRe});function YRe(t){return typeof t=="function"?t:ta}var Nm,Hw=M(()=>{"use strict";Tu();o(YRe,"castFunction");Nm=YRe});function qRe(t,e){var r=Mt(t)?lw:_s;return r(t,Nm(e))}var Ce,Ww=M(()=>{"use strict";dL();Yh();Hw();Vn();o(qRe,"forEach");Ce=qRe});var Lte=M(()=>{"use strict";Ww()});function XRe(t,e){for(var r=-1,n=t==null?0:t.length;++r{"use strict";o(XRe,"arrayEvery");Dte=XRe});function jRe(t,e){var r=!0;return _s(t,function(n,i,a){return r=!!e(n,i,a),r}),r}var Rte,Mte=M(()=>{"use strict";Yh();o(jRe,"baseEvery");Rte=jRe});function KRe(t,e,r){var n=Mt(t)?Dte:Rte;return r&&Zs(t,e,r)&&(e=void 0),n(t,dn(e,3))}var Ra,Ite=M(()=>{"use strict";Nte();Mte();Qa();Vn();Td();o(KRe,"every");Ra=KRe});function QRe(t,e){var r=[];return _s(t,function(n,i,a){e(n,i,a)&&r.push(n)}),r}var Yw,BL=M(()=>{"use strict";Yh();o(QRe,"baseFilter");Yw=QRe});function ZRe(t,e){var r=Mt(t)?Sm:Yw;return r(t,dn(e,3))}var Yr,FL=M(()=>{"use strict";vw();BL();Qa();Vn();o(ZRe,"filter");Yr=ZRe});function JRe(t){return function(e,r,n){var i=Object(e);if(!si(e)){var a=dn(r,3);e=zr(e),r=o(function(l){return a(i[l],l,i)},"predicate")}var s=t(e,r,n);return s>-1?i[a?e[s]:s]:void 0}}var Ote,Pte=M(()=>{"use strict";Qa();Io();xc();o(JRe,"createFind");Ote=JRe});function tMe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=eMe(n+i,0)),cw(t,dn(e,3),i)}var eMe,Bte,Fte=M(()=>{"use strict";pL();Qa();vm();eMe=Math.max;o(tMe,"findIndex");Bte=tMe});var rMe,Za,zte=M(()=>{"use strict";Pte();Fte();rMe=Ote(Bte),Za=rMe});function nMe(t){return t&&t.length?t[0]:void 0}var ra,Gte=M(()=>{"use strict";o(nMe,"head");ra=nMe});var $te=M(()=>{"use strict";Gte()});function iMe(t,e){var r=-1,n=si(t)?Array(t.length):[];return _s(t,function(i,a,s){n[++r]=e(i,a,s)}),n}var qw,zL=M(()=>{"use strict";Yh();Io();o(iMe,"baseMap");qw=iMe});function aMe(t,e){var r=Mt(t)?As:qw;return r(t,dn(e,3))}var Je,Rm=M(()=>{"use strict";Dd();Qa();zL();Vn();o(aMe,"map");Je=aMe});function sMe(t,e){return wc(Je(t,e),1)}var da,GL=M(()=>{"use strict";Em();Rm();o(sMe,"flatMap");da=sMe});function oMe(t,e){return t==null?t:Yp(t,Nm(e),xs)}var $L,Vte=M(()=>{"use strict";Z3();Hw();Mh();o(oMe,"forIn");$L=oMe});function lMe(t,e){return t&&Dm(t,Nm(e))}var VL,Ute=M(()=>{"use strict";$w();Hw();o(lMe,"forOwn");VL=lMe});var cMe,uMe,hMe,UL,Hte=M(()=>{"use strict";Wp();xte();cMe=Object.prototype,uMe=cMe.hasOwnProperty,hMe=vte(function(t,e,r){uMe.call(t,r)?t[r].push(e):hc(t,r,[e])}),UL=hMe});function fMe(t,e){return t>e}var Wte,Yte=M(()=>{"use strict";o(fMe,"baseGt");Wte=fMe});function mMe(t,e){return t!=null&&pMe.call(t,e)}var dMe,pMe,qte,Xte=M(()=>{"use strict";dMe=Object.prototype,pMe=dMe.hasOwnProperty;o(mMe,"baseHas");qte=mMe});function gMe(t,e){return t!=null&&Fw(t,e,qte)}var It,jte=M(()=>{"use strict";Xte();ML();o(gMe,"has");It=gMe});function vMe(t){return typeof t=="string"||!Mt(t)&&Zn(t)&&ca(t)==yMe}var yMe,gi,Xw=M(()=>{"use strict";xu();Vn();Mo();yMe="[object String]";o(vMe,"isString");gi=vMe});function xMe(t,e){return As(e,function(r){return t[r]})}var Kte,Qte=M(()=>{"use strict";Dd();o(xMe,"baseValues");Kte=xMe});function bMe(t){return t==null?[]:Kte(t,zr(t))}var br,HL=M(()=>{"use strict";Qte();xc();o(bMe,"values");br=bMe});function TMe(t,e,r,n){t=si(t)?t:br(t),r=r&&!n?vc(r):0;var i=t.length;return r<0&&(r=wMe(i+r,0)),gi(t)?r<=i&&t.indexOf(e,r)>-1:!!i&&xm(t,e,r)>-1}var wMe,Hn,Zte=M(()=>{"use strict";uw();Io();Xw();vm();HL();wMe=Math.max;o(TMe,"includes");Hn=TMe});function EMe(t,e,r){var n=t==null?0:t.length;if(!n)return-1;var i=r==null?0:vc(r);return i<0&&(i=kMe(n+i,0)),xm(t,e,i)}var kMe,jw,Jte=M(()=>{"use strict";uw();vm();kMe=Math.max;o(EMe,"indexOf");jw=EMe});function LMe(t){if(t==null)return!0;if(si(t)&&(Mt(t)||typeof t=="string"||typeof t.splice=="function"||_l(t)||Nh(t)||Al(t)))return!t.length;var e=no(t);if(e==SMe||e==CMe)return!t.size;if(fc(t))return!bm(t).length;for(var r in t)if(_Me.call(t,r))return!1;return!0}var SMe,CMe,AMe,_Me,cr,Kw=M(()=>{"use strict";fw();Rd();Qp();Vn();Io();Jp();Kp();iv();SMe="[object Map]",CMe="[object Set]",AMe=Object.prototype,_Me=AMe.hasOwnProperty;o(LMe,"isEmpty");cr=LMe});function NMe(t){return Zn(t)&&ca(t)==DMe}var DMe,ere,tre=M(()=>{"use strict";xu();Mo();DMe="[object RegExp]";o(NMe,"baseIsRegExp");ere=NMe});var rre,RMe,Vo,nre=M(()=>{"use strict";tre();bd();nv();rre=Po&&Po.isRegExp,RMe=rre?Oo(rre):ere,Vo=RMe});function MMe(t){return t===void 0}var dr,ire=M(()=>{"use strict";o(MMe,"isUndefined");dr=MMe});function IMe(t,e){return t{"use strict";o(IMe,"baseLt");Qw=IMe});function OMe(t,e){var r={};return e=dn(e,3),Dm(t,function(n,i,a){hc(r,i,e(n,i,a))}),r}var Md,are=M(()=>{"use strict";Wp();$w();Qa();o(OMe,"mapValues");Md=OMe});function PMe(t,e,r){for(var n=-1,i=t.length;++n{"use strict";Ld();o(PMe,"baseExtremum");Mm=PMe});function BMe(t){return t&&t.length?Mm(t,ta,Wte):void 0}var Ls,sre=M(()=>{"use strict";Zw();Yte();Tu();o(BMe,"max");Ls=BMe});function FMe(t){return t&&t.length?Mm(t,ta,Qw):void 0}var Nl,YL=M(()=>{"use strict";Zw();WL();Tu();o(FMe,"min");Nl=FMe});function zMe(t,e){return t&&t.length?Mm(t,dn(e,2),Qw):void 0}var Id,ore=M(()=>{"use strict";Zw();Qa();WL();o(zMe,"minBy");Id=zMe});function $Me(t){if(typeof t!="function")throw new TypeError(GMe);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}var GMe,lre,cre=M(()=>{"use strict";GMe="Expected a function";o($Me,"negate");lre=$Me});function VMe(t,e,r,n){if(!yn(t))return t;e=Uh(e,t);for(var i=-1,a=e.length,s=a-1,l=t;l!=null&&++i{"use strict";em();Lv();sv();Qs();Tm();o(VMe,"baseSet");ure=VMe});function UMe(t,e,r){for(var n=-1,i=e.length,a={};++n{"use strict";Dv();hre();Lv();o(UMe,"basePickBy");Jw=UMe});function HMe(t,e){if(t==null)return{};var r=As(kw(t),function(n){return[n]});return e=dn(e),Jw(t,r,function(n,i){return e(n,i[0])})}var Ds,fre=M(()=>{"use strict";Dd();Qa();qL();TL();o(HMe,"pickBy");Ds=HMe});function WMe(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var dre,pre=M(()=>{"use strict";o(WMe,"baseSortBy");dre=WMe});function YMe(t,e){if(t!==e){var r=t!==void 0,n=t===null,i=t===t,a=ro(t),s=e!==void 0,l=e===null,u=e===e,h=ro(e);if(!l&&!h&&!a&&t>e||a&&s&&u&&!l&&!h||n&&s&&u||!r&&u||!i)return 1;if(!n&&!a&&!h&&t{"use strict";Ld();o(YMe,"compareAscending");mre=YMe});function qMe(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,l=r.length;++n=l)return u;var h=r[n];return u*(h=="desc"?-1:1)}}return t.index-e.index}var yre,vre=M(()=>{"use strict";gre();o(qMe,"compareMultiple");yre=qMe});function XMe(t,e,r){e.length?e=As(e,function(a){return Mt(a)?function(s){return Hh(s,a.length===1?a[0]:a)}:a}):e=[ta];var n=-1;e=As(e,Oo(dn));var i=qw(t,function(a,s,l){var u=As(e,function(h){return h(a)});return{criteria:u,index:++n,value:a}});return dre(i,function(a,s){return yre(a,s,r)})}var xre,bre=M(()=>{"use strict";Dd();Dv();Qa();zL();pre();bd();vre();Tu();Vn();o(XMe,"baseOrderBy");xre=XMe});var jMe,wre,Tre=M(()=>{"use strict";OL();jMe=Gw("length"),wre=jMe});function oIe(t){for(var e=kre.lastIndex=0;kre.test(t);)++e;return e}var Ere,KMe,QMe,ZMe,JMe,eIe,tIe,XL,jL,rIe,Sre,Cre,Are,nIe,_re,Lre,iIe,aIe,sIe,kre,Dre,Nre=M(()=>{"use strict";Ere="\\ud800-\\udfff",KMe="\\u0300-\\u036f",QMe="\\ufe20-\\ufe2f",ZMe="\\u20d0-\\u20ff",JMe=KMe+QMe+ZMe,eIe="\\ufe0e\\ufe0f",tIe="["+Ere+"]",XL="["+JMe+"]",jL="\\ud83c[\\udffb-\\udfff]",rIe="(?:"+XL+"|"+jL+")",Sre="[^"+Ere+"]",Cre="(?:\\ud83c[\\udde6-\\uddff]){2}",Are="[\\ud800-\\udbff][\\udc00-\\udfff]",nIe="\\u200d",_re=rIe+"?",Lre="["+eIe+"]?",iIe="(?:"+nIe+"(?:"+[Sre,Cre,Are].join("|")+")"+Lre+_re+")*",aIe=Lre+_re+iIe,sIe="(?:"+[Sre+XL+"?",XL,Cre,Are,tIe].join("|")+")",kre=RegExp(jL+"(?="+jL+")|"+sIe+aIe,"g");o(oIe,"unicodeSize");Dre=oIe});function lIe(t){return VJ(t)?Dre(t):wre(t)}var Rre,Mre=M(()=>{"use strict";Tre();UJ();Nre();o(lIe,"stringSize");Rre=lIe});function cIe(t,e){return Jw(t,e,function(r,n){return zw(t,n)})}var Ire,Ore=M(()=>{"use strict";qL();IL();o(cIe,"basePick");Ire=cIe});var uIe,Od,Pre=M(()=>{"use strict";Ore();$J();uIe=GJ(function(t,e){return t==null?{}:Ire(t,e)}),Od=uIe});function dIe(t,e,r,n){for(var i=-1,a=fIe(hIe((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var hIe,fIe,Bre,Fre=M(()=>{"use strict";hIe=Math.ceil,fIe=Math.max;o(dIe,"baseRange");Bre=dIe});function pIe(t){return function(e,r,n){return n&&typeof n!="number"&&Zs(e,r,n)&&(r=n=void 0),e=ym(e),r===void 0?(r=e,e=0):r=ym(r),n=n===void 0?e{"use strict";Fre();Td();hL();o(pIe,"createRange");zre=pIe});var mIe,Uo,$re=M(()=>{"use strict";Gre();mIe=zre(),Uo=mIe});function gIe(t,e,r,n,i){return i(t,function(a,s,l){r=n?(n=!1,a):e(r,a,s,l)}),r}var Vre,Ure=M(()=>{"use strict";o(gIe,"baseReduce");Vre=gIe});function yIe(t,e,r){var n=Mt(t)?HJ:Vre,i=arguments.length<3;return n(t,dn(e,4),r,i,_s)}var qr,KL=M(()=>{"use strict";WJ();Yh();Qa();Ure();Vn();o(yIe,"reduce");qr=yIe});function vIe(t,e){var r=Mt(t)?Sm:Yw;return r(t,lre(dn(e,3)))}var jh,Hre=M(()=>{"use strict";vw();BL();Qa();Vn();cre();o(vIe,"reject");jh=vIe});function wIe(t){if(t==null)return 0;if(si(t))return gi(t)?Rre(t):t.length;var e=no(t);return e==xIe||e==bIe?t.size:bm(t).length}var xIe,bIe,QL,Wre=M(()=>{"use strict";fw();Rd();Io();Xw();Mre();xIe="[object Map]",bIe="[object Set]";o(wIe,"size");QL=wIe});function TIe(t,e){var r;return _s(t,function(n,i,a){return r=e(n,i,a),!r}),!!r}var Yre,qre=M(()=>{"use strict";Yh();o(TIe,"baseSome");Yre=TIe});function kIe(t,e,r){var n=Mt(t)?Dw:Yre;return r&&Zs(t,e,r)&&(e=void 0),n(t,dn(e,3))}var Rv,Xre=M(()=>{"use strict";AL();Qa();qre();Vn();Td();o(kIe,"some");Rv=kIe});var EIe,kc,jre=M(()=>{"use strict";Em();bre();tm();Td();EIe=pc(function(t,e){if(t==null)return[];var r=e.length;return r>1&&Zs(t,e[0],e[1])?e=[]:r>2&&Zs(e[0],e[1],e[2])&&(e=[e[0]]),xre(t,wc(e,1),[])}),kc=EIe});var SIe,CIe,Kre,Qre=M(()=>{"use strict";kL();fL();Mw();SIe=1/0,CIe=Wh&&1/Lm(new Wh([,-0]))[1]==SIe?function(t){return new Wh(t)}:Jn,Kre=CIe});function _Ie(t,e,r){var n=-1,i=hw,a=t.length,s=!0,l=[],u=l;if(r)s=!1,i=Uw;else if(a>=AIe){var h=e?null:Kre(t);if(h)return Lm(h);s=!1,i=_m,u=new Am}else u=e?[]:l;e:for(;++n{"use strict";Lw();mL();PL();Nw();Qre();Mw();AIe=200;o(_Ie,"baseUniq");Im=_Ie});var LIe,ZL,Zre=M(()=>{"use strict";Em();tm();eT();o5();LIe=pc(function(t){return Im(wc(t,1,xd,!0))}),ZL=LIe});function DIe(t){return t&&t.length?Im(t):[]}var Om,Jre=M(()=>{"use strict";eT();o(DIe,"uniq");Om=DIe});function NIe(t,e){return t&&t.length?Im(t,dn(e,2)):[]}var ene,tne=M(()=>{"use strict";Qa();eT();o(NIe,"uniqBy");ene=NIe});function MIe(t){var e=++RIe;return pw(t)+e}var RIe,Pd,rne=M(()=>{"use strict";gL();RIe=0;o(MIe,"uniqueId");Pd=MIe});function IIe(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{"use strict";o(IIe,"baseZipObject");nne=IIe});function OIe(t,e){return nne(t||[],e||[],dc)}var tT,ane=M(()=>{"use strict";em();ine();o(OIe,"zipObject");tT=OIe});var Ht=M(()=>{"use strict";LJ();SL();Mee();Iee();W_();Tte();Ste();Ate();_te();Lte();Ite();FL();zte();$te();GL();gw();Ww();Vte();Ute();Hte();jte();Tu();Zte();Jte();Vn();Kw();jy();Qs();nre();Xw();ire();xc();Cte();Rm();are();sre();X_();YL();ore();fL();bte();Pre();fre();$re();KL();Hre();Wre();Xre();jre();Zre();Jre();rne();HL();ane();});function one(t,e){t[e]?t[e]++:t[e]=1}function lne(t,e){--t[e]||delete t[e]}function Mv(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}return i+sne+a+sne+(dr(n)?PIe:n)}function BIe(t,e,r,n){var i=""+e,a=""+r;if(!t&&i>a){var s=i;i=a,a=s}var l={v:i,w:a};return n&&(l.name=n),l}function JL(t,e){return Mv(t,e.v,e.w,e.name)}var PIe,Bd,sne,Mr,rT=M(()=>{"use strict";Ht();PIe="\0",Bd="\0",sne="",Mr=class{static{o(this,"Graph")}constructor(e={}){this._isDirected=Object.prototype.hasOwnProperty.call(e,"directed")?e.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(e,"multigraph")?e.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=bs(void 0),this._defaultEdgeLabelFn=bs(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[Bd]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return Ei(e)||(e=bs(e)),this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return zr(this._nodes)}sources(){var e=this;return Yr(this.nodes(),function(r){return cr(e._in[r])})}sinks(){var e=this;return Yr(this.nodes(),function(r){return cr(e._out[r])})}setNodes(e,r){var n=arguments,i=this;return Ce(e,function(a){n.length>1?i.setNode(a,r):i.setNode(a)}),this}setNode(e,r){return Object.prototype.hasOwnProperty.call(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=r),this):(this._nodes[e]=arguments.length>1?r:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=Bd,this._children[e]={},this._children[Bd][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return Object.prototype.hasOwnProperty.call(this._nodes,e)}removeNode(e){if(Object.prototype.hasOwnProperty.call(this._nodes,e)){var r=o(n=>this.removeEdge(this._edgeObjs[n]),"removeEdge");delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],Ce(this.children(e),n=>{this.setParent(n)}),delete this._children[e]),Ce(zr(this._in[e]),r),delete this._in[e],delete this._preds[e],Ce(zr(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(dr(r))r=Bd;else{r+="";for(var n=r;!dr(n);n=this.parent(n))if(n===e)throw new Error("Setting "+r+" as parent of "+e+" would create a cycle");this.setNode(r)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=r,this._children[r][e]=!0,this}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}parent(e){if(this._isCompound){var r=this._parent[e];if(r!==Bd)return r}}children(e){if(dr(e)&&(e=Bd),this._isCompound){var r=this._children[e];if(r)return zr(r)}else{if(e===Bd)return this.nodes();if(this.hasNode(e))return[]}}predecessors(e){var r=this._preds[e];if(r)return zr(r)}successors(e){var r=this._sucs[e];if(r)return zr(r)}neighbors(e){var r=this.predecessors(e);if(r)return ZL(r,this.successors(e))}isLeaf(e){var r;return this.isDirected()?r=this.successors(e):r=this.neighbors(e),r.length===0}filterNodes(e){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var n=this;Ce(this._nodes,function(s,l){e(l)&&r.setNode(l,s)}),Ce(this._edgeObjs,function(s){r.hasNode(s.v)&&r.hasNode(s.w)&&r.setEdge(s,n.edge(s))});var i={};function a(s){var l=n.parent(s);return l===void 0||r.hasNode(l)?(i[s]=l,l):l in i?i[l]:a(l)}return o(a,"findParent"),this._isCompound&&Ce(r.nodes(),function(s){r.setParent(s,a(s))}),r}setDefaultEdgeLabel(e){return Ei(e)||(e=bs(e)),this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return br(this._edgeObjs)}setPath(e,r){var n=this,i=arguments;return qr(e,function(a,s){return i.length>1?n.setEdge(a,s,r):n.setEdge(a,s),s}),this}setEdge(){var e,r,n,i,a=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,r=s.w,n=s.name,arguments.length===2&&(i=arguments[1],a=!0)):(e=s,r=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),e=""+e,r=""+r,dr(n)||(n=""+n);var l=Mv(this._isDirected,e,r,n);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,l))return a&&(this._edgeLabels[l]=i),this;if(!dr(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(r),this._edgeLabels[l]=a?i:this._defaultEdgeLabelFn(e,r,n);var u=BIe(this._isDirected,e,r,n);return e=u.v,r=u.w,Object.freeze(u),this._edgeObjs[l]=u,one(this._preds[r],e),one(this._sucs[e],r),this._in[r][l]=u,this._out[e][l]=u,this._edgeCount++,this}edge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return this._edgeLabels[i]}hasEdge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n);return Object.prototype.hasOwnProperty.call(this._edgeLabels,i)}removeEdge(e,r,n){var i=arguments.length===1?JL(this._isDirected,arguments[0]):Mv(this._isDirected,e,r,n),a=this._edgeObjs[i];return a&&(e=a.v,r=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],lne(this._preds[r],e),lne(this._sucs[e],r),delete this._in[r][i],delete this._out[e][i],this._edgeCount--),this}inEdges(e,r){var n=this._in[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.v===r}):i}}outEdges(e,r){var n=this._out[e];if(n){var i=br(n);return r?Yr(i,function(a){return a.w===r}):i}}nodeEdges(e,r){var n=this.inEdges(e,r);if(n)return n.concat(this.outEdges(e,r))}};Mr.prototype._nodeCount=0;Mr.prototype._edgeCount=0;o(one,"incrementOrInitEntry");o(lne,"decrementOrRemoveEntry");o(Mv,"edgeArgsToId");o(BIe,"edgeArgsToObj");o(JL,"edgeObjToId")});var Ns=M(()=>{"use strict";rT()});function cne(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function FIe(t,e){if(t!=="_next"&&t!=="_prev")return e}var nT,une=M(()=>{"use strict";nT=class{static{o(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,r=e._prev;if(r!==e)return cne(r),r}enqueue(e){var r=this._sentinel;e._prev&&e._next&&cne(e),e._next=r._next,r._next._prev=e,r._next=e,e._prev=r}toString(){for(var e=[],r=this._sentinel,n=r._prev;n!==r;)e.push(JSON.stringify(n,FIe)),n=n._prev;return"["+e.join(", ")+"]"}};o(cne,"unlink");o(FIe,"filterOutLinks")});function hne(t,e){if(t.nodeCount()<=1)return[];var r=$Ie(t,e||zIe),n=GIe(r.graph,r.buckets,r.zeroIdx);return Wr(Je(n,function(i){return t.outEdges(i.v,i.w)}))}function GIe(t,e,r){for(var n=[],i=e[e.length-1],a=e[0],s;t.nodeCount();){for(;s=a.dequeue();)eD(t,e,r,s);for(;s=i.dequeue();)eD(t,e,r,s);if(t.nodeCount()){for(var l=e.length-2;l>0;--l)if(s=e[l].dequeue(),s){n=n.concat(eD(t,e,r,s,!0));break}}}return n}function eD(t,e,r,n,i){var a=i?[]:void 0;return Ce(t.inEdges(n.v),function(s){var l=t.edge(s),u=t.node(s.v);i&&a.push({v:s.v,w:s.w}),u.out-=l,tD(e,r,u)}),Ce(t.outEdges(n.v),function(s){var l=t.edge(s),u=s.w,h=t.node(u);h.in-=l,tD(e,r,h)}),t.removeNode(n.v),a}function $Ie(t,e){var r=new Mr,n=0,i=0;Ce(t.nodes(),function(l){r.setNode(l,{v:l,in:0,out:0})}),Ce(t.edges(),function(l){var u=r.edge(l.v,l.w)||0,h=e(l),f=u+h;r.setEdge(l.v,l.w,f),i=Math.max(i,r.node(l.v).out+=h),n=Math.max(n,r.node(l.w).in+=h)});var a=Uo(i+n+3).map(function(){return new nT}),s=n+1;return Ce(r.nodes(),function(l){tD(a,s,r.node(l))}),{graph:r,buckets:a,zeroIdx:s}}function tD(t,e,r){r.out?r.in?t[r.out-r.in+e].enqueue(r):t[t.length-1].enqueue(r):t[0].enqueue(r)}var zIe,fne=M(()=>{"use strict";Ht();Ns();une();zIe=bs(1);o(hne,"greedyFAS");o(GIe,"doGreedyFAS");o(eD,"removeNode");o($Ie,"buildState");o(tD,"assignBucket")});function dne(t){var e=t.graph().acyclicer==="greedy"?hne(t,r(t)):VIe(t);Ce(e,function(n){var i=t.edge(n);t.removeEdge(n),i.forwardName=n.name,i.reversed=!0,t.setEdge(n.w,n.v,i,Pd("rev"))});function r(n){return function(i){return n.edge(i).weight}}o(r,"weightFn")}function VIe(t){var e=[],r={},n={};function i(a){Object.prototype.hasOwnProperty.call(n,a)||(n[a]=!0,r[a]=!0,Ce(t.outEdges(a),function(s){Object.prototype.hasOwnProperty.call(r,s.w)?e.push(s):i(s.w)}),delete r[a])}return o(i,"dfs"),Ce(t.nodes(),i),e}function pne(t){Ce(t.edges(),function(e){var r=t.edge(e);if(r.reversed){t.removeEdge(e);var n=r.forwardName;delete r.reversed,delete r.forwardName,t.setEdge(e.w,e.v,r,n)}})}var rD=M(()=>{"use strict";Ht();fne();o(dne,"run");o(VIe,"dfsFAS");o(pne,"undo")});function Ec(t,e,r,n){var i;do i=Pd(n);while(t.hasNode(i));return r.dummy=e,t.setNode(i,r),i}function gne(t){var e=new Mr().setGraph(t.graph());return Ce(t.nodes(),function(r){e.setNode(r,t.node(r))}),Ce(t.edges(),function(r){var n=e.edge(r.v,r.w)||{weight:0,minlen:1},i=t.edge(r);e.setEdge(r.v,r.w,{weight:n.weight+i.weight,minlen:Math.max(n.minlen,i.minlen)})}),e}function iT(t){var e=new Mr({multigraph:t.isMultigraph()}).setGraph(t.graph());return Ce(t.nodes(),function(r){t.children(r).length||e.setNode(r,t.node(r))}),Ce(t.edges(),function(r){e.setEdge(r,t.edge(r))}),e}function nD(t,e){var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2;if(!i&&!a)throw new Error("Not possible to find intersection inside of the rectangle");var u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=l*i/a,h=l):(i<0&&(s=-s),u=s,h=s*a/i),{x:r+u,y:n+h}}function Kh(t){var e=Je(Uo(aD(t)+1),function(){return[]});return Ce(t.nodes(),function(r){var n=t.node(r),i=n.rank;dr(i)||(e[i][n.order]=r)}),e}function yne(t){var e=Nl(Je(t.nodes(),function(r){return t.node(r).rank}));Ce(t.nodes(),function(r){var n=t.node(r);It(n,"rank")&&(n.rank-=e)})}function vne(t){var e=Nl(Je(t.nodes(),function(a){return t.node(a).rank})),r=[];Ce(t.nodes(),function(a){var s=t.node(a).rank-e;r[s]||(r[s]=[]),r[s].push(a)});var n=0,i=t.graph().nodeRankFactor;Ce(r,function(a,s){dr(a)&&s%i!==0?--n:n&&Ce(a,function(l){t.node(l).rank+=n})})}function iD(t,e,r,n){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=n),Ec(t,"border",i,e)}function aD(t){return Ls(Je(t.nodes(),function(e){var r=t.node(e).rank;if(!dr(r))return r}))}function xne(t,e){var r={lhs:[],rhs:[]};return Ce(t,function(n){e(n)?r.lhs.push(n):r.rhs.push(n)}),r}function bne(t,e){var r=Vw();try{return e()}finally{console.log(t+" time: "+(Vw()-r)+"ms")}}function wne(t,e){return e()}var Sc=M(()=>{"use strict";Ht();Ns();o(Ec,"addDummyNode");o(gne,"simplify");o(iT,"asNonCompoundGraph");o(nD,"intersectRect");o(Kh,"buildLayerMatrix");o(yne,"normalizeRanks");o(vne,"removeEmptyRanks");o(iD,"addBorderNode");o(aD,"maxRank");o(xne,"partition");o(bne,"time");o(wne,"notime")});function kne(t){function e(r){var n=t.children(r),i=t.node(r);if(n.length&&Ce(n,e),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,s=i.maxRank+1;a{"use strict";Ht();Sc();o(kne,"addBorderSegments");o(Tne,"addBorderNode")});function Cne(t){var e=t.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&_ne(t)}function Ane(t){var e=t.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&UIe(t),(e==="lr"||e==="rl")&&(HIe(t),_ne(t))}function _ne(t){Ce(t.nodes(),function(e){Sne(t.node(e))}),Ce(t.edges(),function(e){Sne(t.edge(e))})}function Sne(t){var e=t.width;t.width=t.height,t.height=e}function UIe(t){Ce(t.nodes(),function(e){sD(t.node(e))}),Ce(t.edges(),function(e){var r=t.edge(e);Ce(r.points,sD),Object.prototype.hasOwnProperty.call(r,"y")&&sD(r)})}function sD(t){t.y=-t.y}function HIe(t){Ce(t.nodes(),function(e){oD(t.node(e))}),Ce(t.edges(),function(e){var r=t.edge(e);Ce(r.points,oD),Object.prototype.hasOwnProperty.call(r,"x")&&oD(r)})}function oD(t){var e=t.x;t.x=t.y,t.y=e}var Lne=M(()=>{"use strict";Ht();o(Cne,"adjust");o(Ane,"undo");o(_ne,"swapWidthHeight");o(Sne,"swapWidthHeightOne");o(UIe,"reverseY");o(sD,"reverseYOne");o(HIe,"swapXY");o(oD,"swapXYOne")});function Dne(t){t.graph().dummyChains=[],Ce(t.edges(),function(e){YIe(t,e)})}function YIe(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,l=t.edge(e),u=l.labelRank;if(a!==n+1){t.removeEdge(e);var h=void 0,f,d;for(d=0,++n;n{"use strict";Ht();Sc();o(Dne,"run");o(YIe,"normalizeEdge");o(Nne,"undo")});function Iv(t){var e={};function r(n){var i=t.node(n);if(Object.prototype.hasOwnProperty.call(e,n))return i.rank;e[n]=!0;var a=Nl(Je(t.outEdges(n),function(s){return r(s.w)-t.edge(s).minlen}));return(a===Number.POSITIVE_INFINITY||a===void 0||a===null)&&(a=0),i.rank=a}o(r,"dfs"),Ce(t.sources(),r)}function Fd(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var aT=M(()=>{"use strict";Ht();o(Iv,"longestPath");o(Fd,"slack")});function sT(t){var e=new Mr({directed:!1}),r=t.nodes()[0],n=t.nodeCount();e.setNode(r,{});for(var i,a;qIe(e,t){"use strict";Ht();Ns();aT();o(sT,"feasibleTree");o(qIe,"tightTree");o(XIe,"findMinSlackEdge");o(jIe,"shiftRanks")});var Mne=M(()=>{"use strict"});var uD=M(()=>{"use strict"});var $Yt,hD=M(()=>{"use strict";Ht();uD();$Yt=bs(1)});var Ine=M(()=>{"use strict";hD()});var fD=M(()=>{"use strict"});var One=M(()=>{"use strict";fD()});var ZYt,Pne=M(()=>{"use strict";Ht();ZYt=bs(1)});function dD(t){var e={},r={},n=[];function i(a){if(Object.prototype.hasOwnProperty.call(r,a))throw new Ov;Object.prototype.hasOwnProperty.call(e,a)||(r[a]=!0,e[a]=!0,Ce(t.predecessors(a),i),delete r[a],n.push(a))}if(o(i,"visit"),Ce(t.sinks(),i),QL(e)!==t.nodeCount())throw new Ov;return n}function Ov(){}var pD=M(()=>{"use strict";Ht();dD.CycleException=Ov;o(dD,"topsort");o(Ov,"CycleException");Ov.prototype=new Error});var Bne=M(()=>{"use strict";pD()});function oT(t,e,r){Mt(e)||(e=[e]);var n=(t.isDirected()?t.successors:t.neighbors).bind(t),i=[],a={};return Ce(e,function(s){if(!t.hasNode(s))throw new Error("Graph does not have node: "+s);Fne(t,s,r==="post",a,n,i)}),i}function Fne(t,e,r,n,i,a){Object.prototype.hasOwnProperty.call(n,e)||(n[e]=!0,r||a.push(e),Ce(i(e),function(s){Fne(t,s,r,n,i,a)}),r&&a.push(e))}var mD=M(()=>{"use strict";Ht();o(oT,"dfs");o(Fne,"doDfs")});function gD(t,e){return oT(t,e,"post")}var zne=M(()=>{"use strict";mD();o(gD,"postorder")});function yD(t,e){return oT(t,e,"pre")}var Gne=M(()=>{"use strict";mD();o(yD,"preorder")});var $ne=M(()=>{"use strict";uD();rT()});var Vne=M(()=>{"use strict";Mne();hD();Ine();One();Pne();Bne();zne();Gne();$ne();fD();pD()});function Zh(t){t=gne(t),Iv(t);var e=sT(t);xD(e),vD(e,t);for(var r,n;r=Yne(e);)n=qne(e,t,r),Xne(e,t,r,n)}function vD(t,e){var r=gD(t,t.nodes());r=r.slice(0,r.length-1),Ce(r,function(n){eOe(t,e,n)})}function eOe(t,e,r){var n=t.node(r),i=n.parent;t.edge(r,i).cutvalue=Hne(t,e,r)}function Hne(t,e,r){var n=t.node(r),i=n.parent,a=!0,s=e.edge(r,i),l=0;return s||(a=!1,s=e.edge(i,r)),l=s.weight,Ce(e.nodeEdges(r),function(u){var h=u.v===r,f=h?u.w:u.v;if(f!==i){var d=h===a,p=e.edge(u).weight;if(l+=d?p:-p,rOe(t,r,f)){var m=t.edge(r,f).cutvalue;l+=d?-m:m}}}),l}function xD(t,e){arguments.length<2&&(e=t.nodes()[0]),Wne(t,{},1,e)}function Wne(t,e,r,n,i){var a=r,s=t.node(n);return e[n]=!0,Ce(t.neighbors(n),function(l){Object.prototype.hasOwnProperty.call(e,l)||(r=Wne(t,e,r,l,n))}),s.low=a,s.lim=r++,i?s.parent=i:delete s.parent,r}function Yne(t){return Za(t.edges(),function(e){return t.edge(e).cutvalue<0})}function qne(t,e,r){var n=r.v,i=r.w;e.hasEdge(n,i)||(n=r.w,i=r.v);var a=t.node(n),s=t.node(i),l=a,u=!1;a.lim>s.lim&&(l=s,u=!0);var h=Yr(e.edges(),function(f){return u===Une(t,t.node(f.v),l)&&u!==Une(t,t.node(f.w),l)});return Id(h,function(f){return Fd(e,f)})}function Xne(t,e,r,n){var i=r.v,a=r.w;t.removeEdge(i,a),t.setEdge(n.v,n.w,{}),xD(t),vD(t,e),tOe(t,e)}function tOe(t,e){var r=Za(t.nodes(),function(i){return!e.node(i).parent}),n=yD(t,r);n=n.slice(1),Ce(n,function(i){var a=t.node(i).parent,s=e.edge(i,a),l=!1;s||(s=e.edge(a,i),l=!0),e.node(i).rank=e.node(a).rank+(l?s.minlen:-s.minlen)})}function rOe(t,e,r){return t.hasEdge(e,r)}function Une(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var jne=M(()=>{"use strict";Ht();Vne();Sc();cD();aT();Zh.initLowLimValues=xD;Zh.initCutValues=vD;Zh.calcCutValue=Hne;Zh.leaveEdge=Yne;Zh.enterEdge=qne;Zh.exchangeEdges=Xne;o(Zh,"networkSimplex");o(vD,"initCutValues");o(eOe,"assignCutValue");o(Hne,"calcCutValue");o(xD,"initLowLimValues");o(Wne,"dfsAssignLowLim");o(Yne,"leaveEdge");o(qne,"enterEdge");o(Xne,"exchangeEdges");o(tOe,"updateRanks");o(rOe,"isTreeEdge");o(Une,"isDescendant")});function bD(t){switch(t.graph().ranker){case"network-simplex":Kne(t);break;case"tight-tree":iOe(t);break;case"longest-path":nOe(t);break;default:Kne(t)}}function iOe(t){Iv(t),sT(t)}function Kne(t){Zh(t)}var nOe,wD=M(()=>{"use strict";cD();jne();aT();o(bD,"rank");nOe=Iv;o(iOe,"tightTreeRanker");o(Kne,"networkSimplexRanker")});function Qne(t){var e=Ec(t,"root",{},"_root"),r=aOe(t),n=Ls(br(r))-1,i=2*n+1;t.graph().nestingRoot=e,Ce(t.edges(),function(s){t.edge(s).minlen*=i});var a=sOe(t)+1;Ce(t.children(),function(s){Zne(t,e,i,a,n,r,s)}),t.graph().nodeRankFactor=i}function Zne(t,e,r,n,i,a,s){var l=t.children(s);if(!l.length){s!==e&&t.setEdge(e,s,{weight:0,minlen:r});return}var u=iD(t,"_bt"),h=iD(t,"_bb"),f=t.node(s);t.setParent(u,s),f.borderTop=u,t.setParent(h,s),f.borderBottom=h,Ce(l,function(d){Zne(t,e,r,n,i,a,d);var p=t.node(d),m=p.borderTop?p.borderTop:d,g=p.borderBottom?p.borderBottom:d,y=p.borderTop?n:2*n,v=m!==g?1:i-a[s]+1;t.setEdge(u,m,{weight:y,minlen:v,nestingEdge:!0}),t.setEdge(g,h,{weight:y,minlen:v,nestingEdge:!0})}),t.parent(s)||t.setEdge(e,u,{weight:0,minlen:i+a[s]})}function aOe(t){var e={};function r(n,i){var a=t.children(n);a&&a.length&&Ce(a,function(s){r(s,i+1)}),e[n]=i}return o(r,"dfs"),Ce(t.children(),function(n){r(n,1)}),e}function sOe(t){return qr(t.edges(),function(e,r){return e+t.edge(r).weight},0)}function Jne(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,Ce(t.edges(),function(r){var n=t.edge(r);n.nestingEdge&&t.removeEdge(r)})}var eie=M(()=>{"use strict";Ht();Sc();o(Qne,"run");o(Zne,"dfs");o(aOe,"treeDepths");o(sOe,"sumWeights");o(Jne,"cleanup")});function tie(t,e,r){var n={},i;Ce(r,function(a){for(var s=t.parent(a),l,u;s;){if(l=t.parent(s),l?(u=n[l],n[l]=s):(u=i,i=s),u&&u!==s){e.setEdge(u,s);return}s=l}})}var rie=M(()=>{"use strict";Ht();o(tie,"addSubgraphConstraints")});function nie(t,e,r){var n=lOe(t),i=new Mr({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(function(a){return t.node(a)});return Ce(t.nodes(),function(a){var s=t.node(a),l=t.parent(a);(s.rank===e||s.minRank<=e&&e<=s.maxRank)&&(i.setNode(a),i.setParent(a,l||n),Ce(t[r](a),function(u){var h=u.v===a?u.w:u.v,f=i.edge(h,a),d=dr(f)?0:f.weight;i.setEdge(h,a,{weight:t.edge(u).weight+d})}),Object.prototype.hasOwnProperty.call(s,"minRank")&&i.setNode(a,{borderLeft:s.borderLeft[e],borderRight:s.borderRight[e]}))}),i}function lOe(t){for(var e;t.hasNode(e=Pd("_root")););return e}var iie=M(()=>{"use strict";Ht();Ns();o(nie,"buildLayerGraph");o(lOe,"createRootNode")});function aie(t,e){for(var r=0,n=1;n0;)f%2&&(d+=l[f+1]),f=f-1>>1,l[f]+=h.weight;u+=h.weight*d})),u}var sie=M(()=>{"use strict";Ht();o(aie,"crossCount");o(cOe,"twoLayerCrossCount")});function oie(t){var e={},r=Yr(t.nodes(),function(l){return!t.children(l).length}),n=Ls(Je(r,function(l){return t.node(l).rank})),i=Je(Uo(n+1),function(){return[]});function a(l){if(!It(e,l)){e[l]=!0;var u=t.node(l);i[u.rank].push(l),Ce(t.successors(l),a)}}o(a,"dfs");var s=kc(r,function(l){return t.node(l).rank});return Ce(s,a),i}var lie=M(()=>{"use strict";Ht();o(oie,"initOrder")});function cie(t,e){return Je(e,function(r){var n=t.inEdges(r);if(n.length){var i=qr(n,function(a,s){var l=t.edge(s),u=t.node(s.v);return{sum:a.sum+l.weight*u.order,weight:a.weight+l.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}var uie=M(()=>{"use strict";Ht();o(cie,"barycenter")});function hie(t,e){var r={};Ce(t,function(i,a){var s=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:a};dr(i.barycenter)||(s.barycenter=i.barycenter,s.weight=i.weight)}),Ce(e.edges(),function(i){var a=r[i.v],s=r[i.w];!dr(a)&&!dr(s)&&(s.indegree++,a.out.push(r[i.w]))});var n=Yr(r,function(i){return!i.indegree});return uOe(n)}function uOe(t){var e=[];function r(a){return function(s){s.merged||(dr(s.barycenter)||dr(a.barycenter)||s.barycenter>=a.barycenter)&&hOe(a,s)}}o(r,"handleIn");function n(a){return function(s){s.in.push(a),--s.indegree===0&&t.push(s)}}for(o(n,"handleOut");t.length;){var i=t.pop();e.push(i),Ce(i.in.reverse(),r(i)),Ce(i.out,n(i))}return Je(Yr(e,function(a){return!a.merged}),function(a){return Od(a,["vs","i","barycenter","weight"])})}function hOe(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var fie=M(()=>{"use strict";Ht();o(hie,"resolveConflicts");o(uOe,"doResolveConflicts");o(hOe,"mergeEntries")});function pie(t,e){var r=xne(t,function(f){return Object.prototype.hasOwnProperty.call(f,"barycenter")}),n=r.lhs,i=kc(r.rhs,function(f){return-f.i}),a=[],s=0,l=0,u=0;n.sort(fOe(!!e)),u=die(a,i,u),Ce(n,function(f){u+=f.vs.length,a.push(f.vs),s+=f.barycenter*f.weight,l+=f.weight,u=die(a,i,u)});var h={vs:Wr(a)};return l&&(h.barycenter=s/l,h.weight=l),h}function die(t,e,r){for(var n;e.length&&(n=fa(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function fOe(t){return function(e,r){return e.barycenterr.barycenter?1:t?r.i-e.i:e.i-r.i}}var mie=M(()=>{"use strict";Ht();Sc();o(pie,"sort");o(die,"consumeUnsortable");o(fOe,"compareWithBias")});function TD(t,e,r,n){var i=t.children(e),a=t.node(e),s=a?a.borderLeft:void 0,l=a?a.borderRight:void 0,u={};s&&(i=Yr(i,function(g){return g!==s&&g!==l}));var h=cie(t,i);Ce(h,function(g){if(t.children(g.v).length){var y=TD(t,g.v,r,n);u[g.v]=y,Object.prototype.hasOwnProperty.call(y,"barycenter")&&pOe(g,y)}});var f=hie(h,r);dOe(f,u);var d=pie(f,n);if(s&&(d.vs=Wr([s,d.vs,l]),t.predecessors(s).length)){var p=t.node(t.predecessors(s)[0]),m=t.node(t.predecessors(l)[0]);Object.prototype.hasOwnProperty.call(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+p.order+m.order)/(d.weight+2),d.weight+=2}return d}function dOe(t,e){Ce(t,function(r){r.vs=Wr(r.vs.map(function(n){return e[n]?e[n].vs:n}))})}function pOe(t,e){dr(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var gie=M(()=>{"use strict";Ht();uie();fie();mie();o(TD,"sortSubgraph");o(dOe,"expandSubgraphs");o(pOe,"mergeBarycenters")});function xie(t){var e=aD(t),r=yie(t,Uo(1,e+1),"inEdges"),n=yie(t,Uo(e-1,-1,-1),"outEdges"),i=oie(t);vie(t,i);for(var a=Number.POSITIVE_INFINITY,s,l=0,u=0;u<4;++l,++u){mOe(l%2?r:n,l%4>=2),i=Kh(t);var h=aie(t,i);h{"use strict";Ht();Ns();Sc();rie();iie();sie();lie();gie();o(xie,"order");o(yie,"buildLayerGraphs");o(mOe,"sweepLayerGraphs");o(vie,"assignOrder")});function wie(t){var e=yOe(t);Ce(t.graph().dummyChains,function(r){for(var n=t.node(r),i=n.edgeObj,a=gOe(t,e,i.v,i.w),s=a.path,l=a.lca,u=0,h=s[u],f=!0;r!==i.w;){if(n=t.node(r),f){for(;(h=s[u])!==l&&t.node(h).maxRanks||l>e[u].lim));for(h=u,u=n;(u=t.parent(u))!==h;)a.push(u);return{path:i.concat(a.reverse()),lca:h}}function yOe(t){var e={},r=0;function n(i){var a=r;Ce(t.children(i),n),e[i]={low:a,lim:r++}}return o(n,"dfs"),Ce(t.children(),n),e}var Tie=M(()=>{"use strict";Ht();o(wie,"parentDummyChains");o(gOe,"findPath");o(yOe,"postorder")});function vOe(t,e){var r={};function n(i,a){var s=0,l=0,u=i.length,h=fa(a);return Ce(a,function(f,d){var p=bOe(t,f),m=p?t.node(p).order:u;(p||f===h)&&(Ce(a.slice(l,d+1),function(g){Ce(t.predecessors(g),function(y){var v=t.node(y),x=v.order;(xh)&&kie(r,p,f)})})}o(n,"scan");function i(a,s){var l=-1,u,h=0;return Ce(s,function(f,d){if(t.node(f).dummy==="border"){var p=t.predecessors(f);p.length&&(u=t.node(p[0]).order,n(s,h,d,l,u),h=d,l=u)}n(s,h,s.length,u,a.length)}),s}return o(i,"visitLayer"),qr(e,i),r}function bOe(t,e){if(t.node(e).dummy)return Za(t.predecessors(e),function(r){return t.node(r).dummy})}function kie(t,e,r){if(e>r){var n=e;e=r,r=n}var i=t[e];i||(t[e]=i={}),i[r]=!0}function wOe(t,e,r){if(e>r){var n=e;e=r,r=n}return!!t[e]&&Object.prototype.hasOwnProperty.call(t[e],r)}function TOe(t,e,r,n){var i={},a={},s={};return Ce(e,function(l){Ce(l,function(u,h){i[u]=u,a[u]=u,s[u]=h})}),Ce(e,function(l){var u=-1;Ce(l,function(h){var f=n(h);if(f.length){f=kc(f,function(y){return s[y]});for(var d=(f.length-1)/2,p=Math.floor(d),m=Math.ceil(d);p<=m;++p){var g=f[p];a[h]===h&&u{"use strict";Ht();Ns();Sc();o(vOe,"findType1Conflicts");o(xOe,"findType2Conflicts");o(bOe,"findOtherInnerSegmentNode");o(kie,"addConflict");o(wOe,"hasConflict");o(TOe,"verticalAlignment");o(kOe,"horizontalCompaction");o(EOe,"buildBlockGraph");o(SOe,"findSmallestWidthAlignment");o(COe,"alignCoordinates");o(AOe,"balance");o(Eie,"positionX");o(_Oe,"sep");o(LOe,"width")});function Cie(t){t=iT(t),DOe(t),VL(Eie(t),function(e,r){t.node(r).x=e})}function DOe(t){var e=Kh(t),r=t.graph().ranksep,n=0;Ce(e,function(i){var a=Ls(Je(i,function(s){return t.node(s).height}));Ce(i,function(s){t.node(s).y=n+a/2}),n+=a+r})}var Aie=M(()=>{"use strict";Ht();Sc();Sie();o(Cie,"position");o(DOe,"positionY")});function Du(t,e){var r=e&&e.debugTiming?bne:wne;r("layout",()=>{var n=r(" buildLayoutGraph",()=>$Oe(t));r(" runLayout",()=>NOe(n,r)),r(" updateInputGraph",()=>ROe(t,n))})}function NOe(t,e){e(" makeSpaceForEdgeLabels",()=>VOe(t)),e(" removeSelfEdges",()=>QOe(t)),e(" acyclic",()=>dne(t)),e(" nestingGraph.run",()=>Qne(t)),e(" rank",()=>bD(iT(t))),e(" injectEdgeLabelProxies",()=>UOe(t)),e(" removeEmptyRanks",()=>vne(t)),e(" nestingGraph.cleanup",()=>Jne(t)),e(" normalizeRanks",()=>yne(t)),e(" assignRankMinMax",()=>HOe(t)),e(" removeEdgeLabelProxies",()=>WOe(t)),e(" normalize.run",()=>Dne(t)),e(" parentDummyChains",()=>wie(t)),e(" addBorderSegments",()=>kne(t)),e(" order",()=>xie(t)),e(" insertSelfEdges",()=>ZOe(t)),e(" adjustCoordinateSystem",()=>Cne(t)),e(" position",()=>Cie(t)),e(" positionSelfEdges",()=>JOe(t)),e(" removeBorderNodes",()=>KOe(t)),e(" normalize.undo",()=>Nne(t)),e(" fixupEdgeLabelCoords",()=>XOe(t)),e(" undoCoordinateSystem",()=>Ane(t)),e(" translateGraph",()=>YOe(t)),e(" assignNodeIntersects",()=>qOe(t)),e(" reversePoints",()=>jOe(t)),e(" acyclic.undo",()=>pne(t))}function ROe(t,e){Ce(t.nodes(),function(r){var n=t.node(r),i=e.node(r);n&&(n.x=i.x,n.y=i.y,e.children(r).length&&(n.width=i.width,n.height=i.height))}),Ce(t.edges(),function(r){var n=t.edge(r),i=e.edge(r);n.points=i.points,Object.prototype.hasOwnProperty.call(i,"x")&&(n.x=i.x,n.y=i.y)}),t.graph().width=e.graph().width,t.graph().height=e.graph().height}function $Oe(t){var e=new Mr({multigraph:!0,compound:!0}),r=ED(t.graph());return e.setGraph(Ih({},IOe,kD(r,MOe),Od(r,OOe))),Ce(t.nodes(),function(n){var i=ED(t.node(n));e.setNode(n,qh(kD(i,POe),BOe)),e.setParent(n,t.parent(n))}),Ce(t.edges(),function(n){var i=ED(t.edge(n));e.setEdge(n,Ih({},zOe,kD(i,FOe),Od(i,GOe)))}),e}function VOe(t){var e=t.graph();e.ranksep/=2,Ce(t.edges(),function(r){var n=t.edge(r);n.minlen*=2,n.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?n.width+=n.labeloffset:n.height+=n.labeloffset)})}function UOe(t){Ce(t.edges(),function(e){var r=t.edge(e);if(r.width&&r.height){var n=t.node(e.v),i=t.node(e.w),a={rank:(i.rank-n.rank)/2+n.rank,e};Ec(t,"edge-proxy",a,"_ep")}})}function HOe(t){var e=0;Ce(t.nodes(),function(r){var n=t.node(r);n.borderTop&&(n.minRank=t.node(n.borderTop).rank,n.maxRank=t.node(n.borderBottom).rank,e=Ls(e,n.maxRank))}),t.graph().maxRank=e}function WOe(t){Ce(t.nodes(),function(e){var r=t.node(e);r.dummy==="edge-proxy"&&(t.edge(r.e).labelRank=r.rank,t.removeNode(e))})}function YOe(t){var e=Number.POSITIVE_INFINITY,r=0,n=Number.POSITIVE_INFINITY,i=0,a=t.graph(),s=a.marginx||0,l=a.marginy||0;function u(h){var f=h.x,d=h.y,p=h.width,m=h.height;e=Math.min(e,f-p/2),r=Math.max(r,f+p/2),n=Math.min(n,d-m/2),i=Math.max(i,d+m/2)}o(u,"getExtremes"),Ce(t.nodes(),function(h){u(t.node(h))}),Ce(t.edges(),function(h){var f=t.edge(h);Object.prototype.hasOwnProperty.call(f,"x")&&u(f)}),e-=s,n-=l,Ce(t.nodes(),function(h){var f=t.node(h);f.x-=e,f.y-=n}),Ce(t.edges(),function(h){var f=t.edge(h);Ce(f.points,function(d){d.x-=e,d.y-=n}),Object.prototype.hasOwnProperty.call(f,"x")&&(f.x-=e),Object.prototype.hasOwnProperty.call(f,"y")&&(f.y-=n)}),a.width=r-e+s,a.height=i-n+l}function qOe(t){Ce(t.edges(),function(e){var r=t.edge(e),n=t.node(e.v),i=t.node(e.w),a,s;r.points?(a=r.points[0],s=r.points[r.points.length-1]):(r.points=[],a=i,s=n),r.points.unshift(nD(n,a)),r.points.push(nD(i,s))})}function XOe(t){Ce(t.edges(),function(e){var r=t.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch((r.labelpos==="l"||r.labelpos==="r")&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset;break}})}function jOe(t){Ce(t.edges(),function(e){var r=t.edge(e);r.reversed&&r.points.reverse()})}function KOe(t){Ce(t.nodes(),function(e){if(t.children(e).length){var r=t.node(e),n=t.node(r.borderTop),i=t.node(r.borderBottom),a=t.node(fa(r.borderLeft)),s=t.node(fa(r.borderRight));r.width=Math.abs(s.x-a.x),r.height=Math.abs(i.y-n.y),r.x=a.x+r.width/2,r.y=n.y+r.height/2}}),Ce(t.nodes(),function(e){t.node(e).dummy==="border"&&t.removeNode(e)})}function QOe(t){Ce(t.edges(),function(e){if(e.v===e.w){var r=t.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e,label:t.edge(e)}),t.removeEdge(e)}})}function ZOe(t){var e=Kh(t);Ce(e,function(r){var n=0;Ce(r,function(i,a){var s=t.node(i);s.order=a+n,Ce(s.selfEdges,function(l){Ec(t,"selfedge",{width:l.label.width,height:l.label.height,rank:s.rank,order:a+ ++n,e:l.e,label:l.label},"_se")}),delete s.selfEdges})})}function JOe(t){Ce(t.nodes(),function(e){var r=t.node(e);if(r.dummy==="selfedge"){var n=t.node(r.e.v),i=n.x+n.width/2,a=n.y,s=r.x-i,l=n.height/2;t.setEdge(r.e,r.label),t.removeNode(e),r.label.points=[{x:i+2*s/3,y:a-l},{x:i+5*s/6,y:a-l},{x:i+s,y:a},{x:i+5*s/6,y:a+l},{x:i+2*s/3,y:a+l}],r.label.x=r.x,r.label.y=r.y}})}function kD(t,e){return Md(Od(t,e),Number)}function ED(t){var e={};return Ce(t,function(r,n){e[n.toLowerCase()]=r}),e}var MOe,IOe,OOe,POe,BOe,FOe,zOe,GOe,_ie=M(()=>{"use strict";Ht();Ns();Ene();Lne();rD();lD();wD();eie();bie();Tie();Aie();Sc();o(Du,"layout");o(NOe,"runLayout");o(ROe,"updateInputGraph");MOe=["nodesep","edgesep","ranksep","marginx","marginy"],IOe={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},OOe=["acyclicer","ranker","rankdir","align"],POe=["width","height"],BOe={width:0,height:0},FOe=["minlen","weight","width","height","labeloffset"],zOe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},GOe=["labelpos"];o($Oe,"buildLayoutGraph");o(VOe,"makeSpaceForEdgeLabels");o(UOe,"injectEdgeLabelProxies");o(HOe,"assignRankMinMax");o(WOe,"removeEdgeLabelProxies");o(YOe,"translateGraph");o(qOe,"assignNodeIntersects");o(XOe,"fixupEdgeLabelCoords");o(jOe,"reversePointsForReversedEdges");o(KOe,"removeBorderNodes");o(QOe,"removeSelfEdges");o(ZOe,"insertSelfEdges");o(JOe,"positionSelfEdges");o(kD,"selectNumberAttrs");o(ED,"canonicalize")});var Pv=M(()=>{"use strict";rD();_ie();lD();wD()});function Ho(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:ePe(t),edges:tPe(t)};return dr(t.graph())||(e.value=rn(t.graph())),e}function ePe(t){return Je(t.nodes(),function(e){var r=t.node(e),n=t.parent(e),i={v:e};return dr(r)||(i.value=r),dr(n)||(i.parent=n),i})}function tPe(t){return Je(t.edges(),function(e){var r=t.edge(e),n={v:e.v,w:e.w};return dr(e.name)||(n.name=e.name),dr(r)||(n.value=r),n})}var SD=M(()=>{"use strict";Ht();rT();o(Ho,"write");o(ePe,"writeNodes");o(tPe,"writeEdges")});var wr,zd,Nie,Rie,lT,rPe,Mie,Iie,nPe,Bm,Die,Oie,Pie,Bie,Fie,zie=M(()=>{"use strict";ht();Ns();SD();wr=new Map,zd=new Map,Nie=new Map,Rie=o(()=>{zd.clear(),Nie.clear(),wr.clear()},"clear"),lT=o((t,e)=>{let r=zd.get(e)||[];return Y.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),rPe=o((t,e)=>{let r=zd.get(e)||[];return Y.info("Descendants of ",e," is ",r),Y.info("Edge is ",t),t.v===e||t.w===e?!1:r?r.includes(t.v)||lT(t.v,e)||lT(t.w,e)||r.includes(t.w):(Y.debug("Tilt, ",e,",not in descendants"),!1)},"edgeInCluster"),Mie=o((t,e,r,n)=>{Y.warn("Copying children of ",t,"root",n,"data",e.node(t),n);let i=e.children(t)||[];t!==n&&i.push(t),Y.warn("Copying (nodes) clusterId",t,"nodes",i),i.forEach(a=>{if(e.children(a).length>0)Mie(a,e,r,n);else{let s=e.node(a);Y.info("cp ",a," to ",n," with parent ",t),r.setNode(a,s),n!==e.parent(a)&&(Y.warn("Setting parent",a,e.parent(a)),r.setParent(a,e.parent(a))),t!==n&&a!==t?(Y.debug("Setting parent",a,t),r.setParent(a,t)):(Y.info("In copy ",t,"root",n,"data",e.node(t),n),Y.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==n,"node!==clusterId",a!==t));let l=e.edges(a);Y.debug("Copying Edges",l),l.forEach(u=>{Y.info("Edge",u);let h=e.edge(u.v,u.w,u.name);Y.info("Edge data",h,n);try{rPe(u,n)?(Y.info("Copying as ",u.v,u.w,h,u.name),r.setEdge(u.v,u.w,h,u.name),Y.info("newGraph edges ",r.edges(),r.edge(r.edges()[0]))):Y.info("Skipping copy of edge ",u.v,"-->",u.w," rootId: ",n," clusterId:",t)}catch(f){Y.error(f)}})}Y.debug("Removing node",a),e.removeNode(a)})},"copy"),Iie=o((t,e)=>{let r=e.children(t),n=[...r];for(let i of r)Nie.set(i,t),n=[...n,...Iie(i,e)];return n},"extractDescendants"),nPe=o((t,e,r)=>{let n=t.edges().filter(u=>u.v===e||u.w===e),i=t.edges().filter(u=>u.v===r||u.w===r),a=n.map(u=>({v:u.v===e?r:u.v,w:u.w===e?e:u.w})),s=i.map(u=>({v:u.v,w:u.w}));return a.filter(u=>s.some(h=>u.v===h.v&&u.w===h.w))},"findCommonEdges"),Bm=o((t,e,r)=>{let n=e.children(t);if(Y.trace("Searching children of id ",t,n),n.length<1)return t;let i;for(let a of n){let s=Bm(a,e,r),l=nPe(e,r,s);if(s)if(l.length>0)i=s;else return s}return i},"findNonClusterChild"),Die=o(t=>!wr.has(t)||!wr.get(t).externalConnections?t:wr.has(t)?wr.get(t).id:t,"getAnchorId"),Oie=o((t,e)=>{if(!t||e>10){Y.debug("Opting out, no graph ");return}else Y.debug("Opting in, graph ");t.nodes().forEach(function(r){t.children(r).length>0&&(Y.warn("Cluster identified",r," Replacement id in edges: ",Bm(r,t,r)),zd.set(r,Iie(r,t)),wr.set(r,{id:Bm(r,t,r),clusterData:t.node(r)}))}),t.nodes().forEach(function(r){let n=t.children(r),i=t.edges();n.length>0?(Y.debug("Cluster identified",r,zd),i.forEach(a=>{let s=lT(a.v,r),l=lT(a.w,r);s^l&&(Y.warn("Edge: ",a," leaves cluster ",r),Y.warn("Descendants of XXX ",r,": ",zd.get(r)),wr.get(r).externalConnections=!0)})):Y.debug("Not a cluster ",r,zd)});for(let r of wr.keys()){let n=wr.get(r).id,i=t.parent(n);i!==r&&wr.has(i)&&!wr.get(i).externalConnections&&(wr.get(r).id=i)}t.edges().forEach(function(r){let n=t.edge(r);Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(r)),Y.warn("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(t.edge(r)));let i=r.v,a=r.w;if(Y.warn("Fix XXX",wr,"ids:",r.v,r.w,"Translating: ",wr.get(r.v)," --- ",wr.get(r.w)),wr.get(r.v)||wr.get(r.w)){if(Y.warn("Fixing and trying - removing XXX",r.v,r.w,r.name),i=Die(r.v),a=Die(r.w),t.removeEdge(r.v,r.w,r.name),i!==r.v){let s=t.parent(i);wr.get(s).externalConnections=!0,n.fromCluster=r.v}if(a!==r.w){let s=t.parent(a);wr.get(s).externalConnections=!0,n.toCluster=r.w}Y.warn("Fix Replacing with XXX",i,a,r.name),t.setEdge(i,a,n,r.name)}}),Y.warn("Adjusted Graph",Ho(t)),Pie(t,0),Y.trace(wr)},"adjustClustersAndEdges"),Pie=o((t,e)=>{if(Y.warn("extractor - ",e,Ho(t),t.children("D")),e>10){Y.error("Bailing out");return}let r=t.nodes(),n=!1;for(let i of r){let a=t.children(i);n=n||a.length>0}if(!n){Y.debug("Done, no node has children",t.nodes());return}Y.debug("Nodes = ",r,e);for(let i of r)if(Y.debug("Extracting node",i,wr,wr.has(i)&&!wr.get(i).externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),!wr.has(i))Y.debug("Not a cluster",i,e);else if(!wr.get(i).externalConnections&&t.children(i)&&t.children(i).length>0){Y.warn("Cluster without external connections, without a parent and with children",i,e);let s=t.graph().rankdir==="TB"?"LR":"TB";wr.get(i)?.clusterData?.dir&&(s=wr.get(i).clusterData.dir,Y.warn("Fixing dir",wr.get(i).clusterData.dir,s));let l=new Mr({multigraph:!0,compound:!0}).setGraph({rankdir:s,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Y.warn("Old graph before copy",Ho(t)),Mie(i,t,l,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:wr.get(i).clusterData,label:wr.get(i).label,graph:l}),Y.warn("New graph after copy node: (",i,")",Ho(l)),Y.debug("Old graph after copy",Ho(t))}else Y.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!wr.get(i).externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),Y.debug(wr);r=t.nodes(),Y.warn("New list of nodes",r);for(let i of r){let a=t.node(i);Y.warn(" Now next level",i,a),a?.clusterNode&&Pie(a.graph,e+1)}},"extractor"),Bie=o((t,e)=>{if(e.length===0)return[];let r=Object.assign([],e);return e.forEach(n=>{let i=t.children(n),a=Bie(t,i);r=[...r,...a]}),r},"sorter"),Fie=o(t=>Bie(t,t.children()),"sortNodesByHierarchy")});var $ie={};vr($ie,{render:()=>iPe});var Gie,iPe,Vie=M(()=>{"use strict";Pv();SD();Ns();uL();Ft();zie();sw();K5();cL();ht();Cv();Vt();Gie=o(async(t,e,r,n,i,a)=>{Y.warn("Graph in recursive render:XAX",Ho(e),i);let s=e.graph().rankdir;Y.trace("Dir in recursive render - dir:",s);let l=t.insert("g").attr("class","root");e.nodes()?Y.info("Recursive render XXX",e.nodes()):Y.info("No nodes found for",e),e.edges().length>0&&Y.info("Recursive edges",e.edge(e.edges()[0]));let u=l.insert("g").attr("class","clusters"),h=l.insert("g").attr("class","edgePaths"),f=l.insert("g").attr("class","edgeLabels"),d=l.insert("g").attr("class","nodes");await Promise.all(e.nodes().map(async function(y){let v=e.node(y);if(i!==void 0){let x=JSON.parse(JSON.stringify(i.clusterData));Y.trace(`Setting data for parent cluster XXX + Node.id = `,y,` + data=`,x.height,` +Parent cluster`,i.height),e.setNode(i.id,x),e.parent(y)||(Y.trace("Setting parent",y,i.id),e.setParent(y,i.id,x))}if(Y.info("(Insert) Node XXX"+y+": "+JSON.stringify(e.node(y))),v?.clusterNode){Y.info("Cluster identified XBX",y,v.width,e.node(y));let{ranksep:x,nodesep:b}=e.graph();v.graph.setGraph({...v.graph.graph(),ranksep:x+25,nodesep:b});let w=await Gie(d,v.graph,r,n,e.node(y),a),_=w.elem;Qe(v,_),v.diff=w.diff||0,Y.info("New compound node after recursive render XAX",y,"width",v.width,"height",v.height),aJ(_,v)}else e.children(y).length>0?(Y.trace("Cluster - the non recursive path XBX",y,v.id,v,v.width,"Graph:",e),Y.trace(Bm(v.id,e)),wr.set(v.id,{id:Bm(v.id,e),node:v})):(Y.trace("Node - the non recursive path XAX",y,d,e.node(y),s),await gm(d,e.node(y),{config:a,dir:s}))})),await o(async()=>{let y=e.edges().map(async function(v){let x=e.edge(v.v,v.w,v.name);Y.info("Edge "+v.v+" -> "+v.w+": "+JSON.stringify(v)),Y.info("Edge "+v.v+" -> "+v.w+": ",v," ",JSON.stringify(e.edge(v))),Y.info("Fix",wr,"ids:",v.v,v.w,"Translating: ",wr.get(v.v),wr.get(v.w)),await tw(f,x)});await Promise.all(y)},"processEdges")(),Y.info("Graph before layout:",JSON.stringify(Ho(e))),Y.info("############################################# XXX"),Y.info("### Layout ### XXX"),Y.info("############################################# XXX"),Du(e),Y.info("Graph after layout:",JSON.stringify(Ho(e)));let m=0,{subGraphTitleTotalMargin:g}=_u(a);return await Promise.all(Fie(e).map(async function(y){let v=e.node(y);if(Y.info("Position XBX => "+y+": ("+v.x,","+v.y,") width: ",v.width," height: ",v.height),v?.clusterNode)v.y+=g,Y.info("A tainted cluster node XBX1",y,v.id,v.width,v.height,v.x,v.y,e.parent(y)),wr.get(v.id).node=v,_v(v);else if(e.children(y).length>0){Y.info("A pure cluster node XBX1",y,v.id,v.x,v.y,v.width,v.height,e.parent(y)),v.height+=g,e.node(v.parentId);let x=v?.padding/2||0,b=v?.labelBBox?.height||0,w=b-x||0;Y.debug("OffsetY",w,"labelHeight",b,"halfPadding",x),await mm(u,v),wr.get(v.id).node=v}else{let x=e.node(v.parentId);v.y+=g/2,Y.info("A regular node XBX1 - using the padding",v.id,"parent",v.parentId,v.width,v.height,v.x,v.y,"offsetY",v.offsetY,"parent",x,x?.offsetY,v),_v(v)}})),e.edges().forEach(function(y){let v=e.edge(y);Y.info("Edge "+y.v+" -> "+y.w+": "+JSON.stringify(v),v),v.points.forEach(_=>_.y+=g/2);let x=e.node(y.v);var b=e.node(y.w);let w=nw(h,v,wr,r,x,b,n);rw(v,w)}),e.nodes().forEach(function(y){let v=e.node(y);Y.info(y,v.type,v.diff),v.isGroup&&(m=v.diff)}),Y.warn("Returning from recursive render XAX",l,m),{elem:l,diff:m}},"recursiveRender"),iPe=o(async(t,e)=>{let r=new Mr({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=e.select("g");iw(n,t.markers,t.type,t.diagramId),sJ(),iJ(),ZZ(),Rie(),t.nodes.forEach(a=>{r.setNode(a.id,{...a}),a.parentId&&r.setParent(a.id,a.parentId)}),Y.debug("Edges:",t.edges),t.edges.forEach(a=>{if(a.start===a.end){let s=a.start,l=s+"---"+s+"---1",u=s+"---"+s+"---2",h=r.node(s);r.setNode(l,{domId:l,id:l,parentId:h.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),r.setParent(l,h.parentId),r.setNode(u,{domId:u,id:u,parentId:h.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),r.setParent(u,h.parentId);let f=structuredClone(a),d=structuredClone(a),p=structuredClone(a);f.label="",f.arrowTypeEnd="none",f.id=s+"-cyclic-special-1",d.arrowTypeEnd="none",d.id=s+"-cyclic-special-mid",p.label="",h.isGroup&&(f.fromCluster=s,p.toCluster=s),p.id=s+"-cyclic-special-2",r.setEdge(s,l,f,s+"-cyclic-special-0"),r.setEdge(l,u,d,s+"-cyclic-special-1"),r.setEdge(u,s,p,s+"-cyc{"use strict";lJ();ht();Bv={},CD=o(t=>{for(let e of t)Bv[e.name]=e},"registerLayoutLoaders"),aPe=o(()=>{CD([{name:"dagre",loader:o(async()=>await Promise.resolve().then(()=>(Vie(),$ie)),"loader")}])},"registerDefaultLayoutLoaders");aPe();Fm=o(async(t,e)=>{if(!(t.layoutAlgorithm in Bv))throw new Error(`Unknown layout algorithm: ${t.layoutAlgorithm}`);let r=Bv[t.layoutAlgorithm];return(await r.loader()).render(t,e,oJ,{algorithm:r.algorithm})},"render"),cT=o((t="",{fallback:e="dagre"}={})=>{if(t in Bv)return t;if(e in Bv)return Y.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")});var zm,sPe,oPe,uT=M(()=>{"use strict";ni();ht();zm=o((t,e,r,n)=>{t.attr("class",r);let{width:i,height:a,x:s,y:l}=sPe(t,e);Zr(t,a,i,n);let u=oPe(s,l,i,a,e);t.attr("viewBox",u),Y.debug(`viewBox configured: ${u} with padding: ${e}`)},"setupViewPortForSVG"),sPe=o((t,e)=>{let r=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:r.width+e*2,height:r.height+e*2,x:r.x,y:r.y}},"calculateDimensionsWithPadding"),oPe=o((t,e,r,n,i)=>`${t-i} ${e-i} ${r} ${n}`,"createViewBox")});var lPe,cPe,Uie,Hie=M(()=>{"use strict";mr();Vt();ht();j5();Fv();uT();hr();oL();lPe=o(function(t,e){return e.db.getClasses()},"getClasses"),cPe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=de(),l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?l.nodes()[0].contentDocument:document;Y.debug("Before getData: ");let h=n.db.getData();Y.debug("Data: ",h);let f=pm(e,i),d=sL();h.type=n.type,h.layoutAlgorithm=cT(s),h.layoutAlgorithm==="dagre"&&s==="elk"&&Y.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,Y.debug("REF1:",h),await Fm(h,f);let p=h.config.flowchart?.diagramPadding??8;Ut.insertTitle(f,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),zm(f,p,"flowchart",a?.useMaxWidth||!1);for(let m of h.nodes){let g=ze(`#${e} [id="${m.id}"]`);if(!g||!m.link)continue;let y=u.createElementNS("http://www.w3.org/2000/svg","a");y.setAttributeNS("http://www.w3.org/2000/svg","class",m.cssClasses),y.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),i==="sandbox"?y.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):m.linkTarget&&y.setAttributeNS("http://www.w3.org/2000/svg","target",m.linkTarget);let v=g.insert(function(){return y},":first-child"),x=g.select(".label-container");x&&v.append(function(){return x.node()});let b=g.select(".label");b&&v.append(function(){return b.node()})}},"draw"),Uie={getClasses:lPe,draw:cPe}});var AD,Wie,Yie=M(()=>{"use strict";AD=function(){var t=o(function(kn,_t,St,bt){for(St=St||{},bt=kn.length;bt--;St[kn[bt]]=_t);return St},"o"),e=[1,4],r=[1,3],n=[1,5],i=[1,8,9,10,11,27,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],a=[2,2],s=[1,13],l=[1,14],u=[1,15],h=[1,16],f=[1,23],d=[1,25],p=[1,26],m=[1,27],g=[1,49],y=[1,48],v=[1,29],x=[1,30],b=[1,31],w=[1,32],_=[1,33],T=[1,44],E=[1,46],L=[1,42],C=[1,47],A=[1,43],I=[1,50],D=[1,45],k=[1,51],R=[1,52],S=[1,34],O=[1,35],N=[1,36],P=[1,37],F=[1,57],B=[1,8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],$=[1,61],z=[1,60],W=[1,62],j=[8,9,11,75,77],K=[1,77],ie=[1,90],Q=[1,95],ee=[1,94],J=[1,91],H=[1,87],q=[1,93],Z=[1,89],ae=[1,96],ue=[1,92],ce=[1,97],te=[1,88],De=[8,9,10,11,40,75,77],oe=[8,9,10,11,40,46,75,77],ke=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,88,101,104,105,108,110,113,114,115],Fe=[8,9,11,44,60,75,77,88,101,104,105,108,110,113,114,115],Be=[44,60,88,101,104,105,108,110,113,114,115],Ve=[1,123],Ge=[1,122],He=[1,130],xe=[1,144],X=[1,145],fe=[1,146],he=[1,147],ge=[1,132],ne=[1,134],ye=[1,138],U=[1,139],Te=[1,140],se=[1,141],Ee=[1,142],Ae=[1,143],Pe=[1,148],Me=[1,149],me=[1,128],We=[1,129],Re=[1,136],tt=[1,131],gt=[1,135],Et=[1,133],vt=[8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],Ye=[1,151],Tt=[1,153],$e=[8,9,11],rt=[8,9,10,11,14,44,60,88,104,105,108,110,113,114,115],ft=[1,173],kt=[1,169],er=[1,170],dt=[1,174],Xe=[1,171],ct=[1,172],Lt=[77,115,118],Rt=[8,9,10,11,12,14,27,29,32,44,60,75,83,84,85,86,87,88,89,104,108,110,113,114,115],zt=[10,105],Xn=[31,49,51,53,55,57,62,64,66,67,69,71,115,116,117],or=[1,242],hn=[1,240],Tn=[1,244],Ur=[1,238],ri=[1,239],Mn=[1,241],yt=[1,243],Se=[1,245],at=[1,263],At=[8,9,11,105],pr=[8,9,10,11,60,83,104,105,108,109,110,111],In={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,edgeTextToken:78,STR:79,MD_STR:80,textToken:81,keywords:82,STYLE:83,LINKSTYLE:84,CLASSDEF:85,CLASS:86,CLICK:87,DOWN:88,UP:89,textNoTagsToken:90,stylesOpt:91,"idString[vertex]":92,"idString[class]":93,CALLBACKNAME:94,CALLBACKARGS:95,HREF:96,LINK_TARGET:97,"STR[link]":98,"STR[tooltip]":99,alphaNum:100,DEFAULT:101,numList:102,INTERPOLATE:103,NUM:104,COMMA:105,style:106,styleComponent:107,NODE_STRING:108,UNIT:109,BRKT:110,PCT:111,idStringToken:112,MINUS:113,MULT:114,UNICODE_TEXT:115,TEXT:116,TAGSTART:117,EDGE_TEXT:118,alphaNumToken:119,direction_tb:120,direction_bt:121,direction_rl:122,direction_lr:123,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",79:"STR",80:"MD_STR",83:"STYLE",84:"LINKSTYLE",85:"CLASSDEF",86:"CLASS",87:"CLICK",88:"DOWN",89:"UP",92:"idString[vertex]",93:"idString[class]",94:"CALLBACKNAME",95:"CALLBACKARGS",96:"HREF",97:"LINK_TARGET",98:"STR[link]",99:"STR[tooltip]",101:"DEFAULT",103:"INTERPOLATE",104:"NUM",105:"COMMA",108:"NODE_STRING",109:"UNIT",110:"BRKT",111:"PCT",113:"MINUS",114:"MULT",115:"UNICODE_TEXT",116:"TEXT",117:"TAGSTART",118:"EDGE_TEXT",120:"direction_tb",121:"direction_bt",122:"direction_rl",123:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[76,1],[76,2],[76,1],[76,1],[72,1],[73,3],[30,1],[30,2],[30,1],[30,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[102,1],[102,3],[91,1],[91,3],[106,1],[106,2],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[81,1],[81,1],[81,1],[81,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[78,1],[78,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[47,1],[47,2],[100,1],[100,2],[33,1],[33,1],[33,1],[33,1]],performAction:o(function(_t,St,bt,Ue,Kt,pe,bi){var be=pe.length-1;switch(Kt){case 2:this.$=[];break;case 3:(!Array.isArray(pe[be])||pe[be].length>0)&&pe[be-1].push(pe[be]),this.$=pe[be-1];break;case 4:case 181:this.$=pe[be];break;case 11:Ue.setDirection("TB"),this.$="TB";break;case 12:Ue.setDirection(pe[be-1]),this.$=pe[be-1];break;case 27:this.$=pe[be-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=Ue.addSubGraph(pe[be-6],pe[be-1],pe[be-4]);break;case 34:this.$=Ue.addSubGraph(pe[be-3],pe[be-1],pe[be-3]);break;case 35:this.$=Ue.addSubGraph(void 0,pe[be-1],void 0);break;case 37:this.$=pe[be].trim(),Ue.setAccTitle(this.$);break;case 38:case 39:this.$=pe[be].trim(),Ue.setAccDescription(this.$);break;case 43:this.$=pe[be-1]+pe[be];break;case 44:this.$=pe[be];break;case 45:Ue.addVertex(pe[be-1][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be]),Ue.addLink(pe[be-3].stmt,pe[be-1],pe[be-2]),this.$={stmt:pe[be-1],nodes:pe[be-1].concat(pe[be-3].nodes)};break;case 46:Ue.addLink(pe[be-2].stmt,pe[be],pe[be-1]),this.$={stmt:pe[be],nodes:pe[be].concat(pe[be-2].nodes)};break;case 47:Ue.addLink(pe[be-3].stmt,pe[be-1],pe[be-2]),this.$={stmt:pe[be-1],nodes:pe[be-1].concat(pe[be-3].nodes)};break;case 48:this.$={stmt:pe[be-1],nodes:pe[be-1]};break;case 49:Ue.addVertex(pe[be-1][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be]),this.$={stmt:pe[be-1],nodes:pe[be-1],shapeData:pe[be]};break;case 50:this.$={stmt:pe[be],nodes:pe[be]};break;case 51:this.$=[pe[be]];break;case 52:Ue.addVertex(pe[be-5][0],void 0,void 0,void 0,void 0,void 0,void 0,pe[be-4]),this.$=pe[be-5].concat(pe[be]);break;case 53:this.$=pe[be-4].concat(pe[be]);break;case 54:this.$=pe[be];break;case 55:this.$=pe[be-2],Ue.setClass(pe[be-2],pe[be]);break;case 56:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"square");break;case 57:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"doublecircle");break;case 58:this.$=pe[be-5],Ue.addVertex(pe[be-5],pe[be-2],"circle");break;case 59:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"ellipse");break;case 60:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"stadium");break;case 61:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"subroutine");break;case 62:this.$=pe[be-7],Ue.addVertex(pe[be-7],pe[be-1],"rect",void 0,void 0,void 0,Object.fromEntries([[pe[be-5],pe[be-3]]]));break;case 63:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"cylinder");break;case 64:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"round");break;case 65:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"diamond");break;case 66:this.$=pe[be-5],Ue.addVertex(pe[be-5],pe[be-2],"hexagon");break;case 67:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"odd");break;case 68:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"trapezoid");break;case 69:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"inv_trapezoid");break;case 70:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"lean_right");break;case 71:this.$=pe[be-3],Ue.addVertex(pe[be-3],pe[be-1],"lean_left");break;case 72:this.$=pe[be],Ue.addVertex(pe[be]);break;case 73:pe[be-1].text=pe[be],this.$=pe[be-1];break;case 74:case 75:pe[be-2].text=pe[be-1],this.$=pe[be-2];break;case 76:this.$=pe[be];break;case 77:var vo=Ue.destructLink(pe[be],pe[be-2]);this.$={type:vo.type,stroke:vo.stroke,length:vo.length,text:pe[be-1]};break;case 78:this.$={text:pe[be],type:"text"};break;case 79:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 80:this.$={text:pe[be],type:"string"};break;case 81:this.$={text:pe[be],type:"markdown"};break;case 82:var vo=Ue.destructLink(pe[be]);this.$={type:vo.type,stroke:vo.stroke,length:vo.length};break;case 83:this.$=pe[be-1];break;case 84:this.$={text:pe[be],type:"text"};break;case 85:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 86:this.$={text:pe[be],type:"string"};break;case 87:case 102:this.$={text:pe[be],type:"markdown"};break;case 99:this.$={text:pe[be],type:"text"};break;case 100:this.$={text:pe[be-1].text+""+pe[be],type:pe[be-1].type};break;case 101:this.$={text:pe[be],type:"text"};break;case 103:this.$=pe[be-4],Ue.addClass(pe[be-2],pe[be]);break;case 104:this.$=pe[be-4],Ue.setClass(pe[be-2],pe[be]);break;case 105:case 113:this.$=pe[be-1],Ue.setClickEvent(pe[be-1],pe[be]);break;case 106:case 114:this.$=pe[be-3],Ue.setClickEvent(pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-3],pe[be]);break;case 107:this.$=pe[be-2],Ue.setClickEvent(pe[be-2],pe[be-1],pe[be]);break;case 108:this.$=pe[be-4],Ue.setClickEvent(pe[be-4],pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-4],pe[be]);break;case 109:this.$=pe[be-2],Ue.setLink(pe[be-2],pe[be]);break;case 110:this.$=pe[be-4],Ue.setLink(pe[be-4],pe[be-2]),Ue.setTooltip(pe[be-4],pe[be]);break;case 111:this.$=pe[be-4],Ue.setLink(pe[be-4],pe[be-2],pe[be]);break;case 112:this.$=pe[be-6],Ue.setLink(pe[be-6],pe[be-4],pe[be]),Ue.setTooltip(pe[be-6],pe[be-2]);break;case 115:this.$=pe[be-1],Ue.setLink(pe[be-1],pe[be]);break;case 116:this.$=pe[be-3],Ue.setLink(pe[be-3],pe[be-2]),Ue.setTooltip(pe[be-3],pe[be]);break;case 117:this.$=pe[be-3],Ue.setLink(pe[be-3],pe[be-2],pe[be]);break;case 118:this.$=pe[be-5],Ue.setLink(pe[be-5],pe[be-4],pe[be]),Ue.setTooltip(pe[be-5],pe[be-2]);break;case 119:this.$=pe[be-4],Ue.addVertex(pe[be-2],void 0,void 0,pe[be]);break;case 120:this.$=pe[be-4],Ue.updateLink([pe[be-2]],pe[be]);break;case 121:this.$=pe[be-4],Ue.updateLink(pe[be-2],pe[be]);break;case 122:this.$=pe[be-8],Ue.updateLinkInterpolate([pe[be-6]],pe[be-2]),Ue.updateLink([pe[be-6]],pe[be]);break;case 123:this.$=pe[be-8],Ue.updateLinkInterpolate(pe[be-6],pe[be-2]),Ue.updateLink(pe[be-6],pe[be]);break;case 124:this.$=pe[be-6],Ue.updateLinkInterpolate([pe[be-4]],pe[be]);break;case 125:this.$=pe[be-6],Ue.updateLinkInterpolate(pe[be-4],pe[be]);break;case 126:case 128:this.$=[pe[be]];break;case 127:case 129:pe[be-2].push(pe[be]),this.$=pe[be-2];break;case 131:this.$=pe[be-1]+pe[be];break;case 179:this.$=pe[be];break;case 180:this.$=pe[be-1]+""+pe[be];break;case 182:this.$=pe[be-1]+""+pe[be];break;case 183:this.$={stmt:"dir",value:"TB"};break;case 184:this.$={stmt:"dir",value:"BT"};break;case 185:this.$={stmt:"dir",value:"RL"};break;case 186:this.$={stmt:"dir",value:"LR"};break}},"anonymous"),table:[{3:1,4:2,9:e,10:r,12:n},{1:[3]},t(i,a,{5:6}),{4:7,9:e,10:r,12:n},{4:8,9:e,10:r,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),{8:[1,54],9:[1,55],10:F,15:53,18:56},t(B,[2,3]),t(B,[2,4]),t(B,[2,5]),t(B,[2,6]),t(B,[2,7]),t(B,[2,8]),{8:$,9:z,11:W,21:58,41:59,72:63,75:[1,64],77:[1,65]},{8:$,9:z,11:W,21:66},{8:$,9:z,11:W,21:67},{8:$,9:z,11:W,21:68},{8:$,9:z,11:W,21:69},{8:$,9:z,11:W,21:70},{8:$,9:z,10:[1,71],11:W,21:72},t(B,[2,36]),{35:[1,73]},{37:[1,74]},t(B,[2,39]),t(j,[2,50],{18:75,39:76,10:F,40:K}),{10:[1,78]},{10:[1,79]},{10:[1,80]},{10:[1,81]},{14:ie,44:Q,60:ee,79:[1,85],88:J,94:[1,82],96:[1,83],100:84,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},t(B,[2,183]),t(B,[2,184]),t(B,[2,185]),t(B,[2,186]),t(De,[2,51]),t(De,[2,54],{46:[1,98]}),t(oe,[2,72],{112:111,29:[1,99],44:g,48:[1,100],50:[1,101],52:[1,102],54:[1,103],56:[1,104],58:[1,105],60:y,63:[1,106],65:[1,107],67:[1,108],68:[1,109],70:[1,110],88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),t(ke,[2,179]),t(ke,[2,140]),t(ke,[2,141]),t(ke,[2,142]),t(ke,[2,143]),t(ke,[2,144]),t(ke,[2,145]),t(ke,[2,146]),t(ke,[2,147]),t(ke,[2,148]),t(ke,[2,149]),t(ke,[2,150]),t(i,[2,12]),t(i,[2,18]),t(i,[2,19]),{9:[1,112]},t(Fe,[2,26],{18:113,10:F}),t(B,[2,27]),{42:114,43:38,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t(B,[2,40]),t(B,[2,41]),t(B,[2,42]),t(Be,[2,76],{73:115,62:[1,117],74:[1,116]}),{76:118,78:119,79:[1,120],80:[1,121],115:Ve,118:Ge},t([44,60,62,74,88,101,104,105,108,110,113,114,115],[2,82]),t(B,[2,28]),t(B,[2,29]),t(B,[2,30]),t(B,[2,31]),t(B,[2,32]),{10:He,12:xe,14:X,27:fe,28:124,32:he,44:ge,60:ne,75:ye,79:[1,126],80:[1,127],82:137,83:U,84:Te,85:se,86:Ee,87:Ae,88:Pe,89:Me,90:125,104:me,108:We,110:Re,113:tt,114:gt,115:Et},t(vt,a,{5:150}),t(B,[2,37]),t(B,[2,38]),t(j,[2,48],{44:Ye}),t(j,[2,49],{18:152,10:F,40:Tt}),t(De,[2,44]),{44:g,47:154,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{101:[1,155],102:156,104:[1,157]},{44:g,47:158,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{44:g,47:159,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,105],{10:[1,160],95:[1,161]}),{79:[1,162]},t($e,[2,113],{119:164,10:[1,163],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,115],{10:[1,165]}),t(rt,[2,181]),t(rt,[2,168]),t(rt,[2,169]),t(rt,[2,170]),t(rt,[2,171]),t(rt,[2,172]),t(rt,[2,173]),t(rt,[2,174]),t(rt,[2,175]),t(rt,[2,176]),t(rt,[2,177]),t(rt,[2,178]),{44:g,47:166,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{30:167,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:175,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:177,50:[1,176],67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:178,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:179,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:180,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{108:[1,181]},{30:182,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:183,65:[1,184],67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:185,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:186,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{30:187,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(ke,[2,180]),t(i,[2,20]),t(Fe,[2,25]),t(j,[2,46],{39:188,18:189,10:F,40:K}),t(Be,[2,73],{10:[1,190]}),{10:[1,191]},{30:192,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{77:[1,193],78:194,115:Ve,118:Ge},t(Lt,[2,78]),t(Lt,[2,80]),t(Lt,[2,81]),t(Lt,[2,166]),t(Lt,[2,167]),{8:$,9:z,10:He,11:W,12:xe,14:X,21:196,27:fe,29:[1,195],32:he,44:ge,60:ne,75:ye,82:137,83:U,84:Te,85:se,86:Ee,87:Ae,88:Pe,89:Me,90:197,104:me,108:We,110:Re,113:tt,114:gt,115:Et},t(Rt,[2,99]),t(Rt,[2,101]),t(Rt,[2,102]),t(Rt,[2,155]),t(Rt,[2,156]),t(Rt,[2,157]),t(Rt,[2,158]),t(Rt,[2,159]),t(Rt,[2,160]),t(Rt,[2,161]),t(Rt,[2,162]),t(Rt,[2,163]),t(Rt,[2,164]),t(Rt,[2,165]),t(Rt,[2,88]),t(Rt,[2,89]),t(Rt,[2,90]),t(Rt,[2,91]),t(Rt,[2,92]),t(Rt,[2,93]),t(Rt,[2,94]),t(Rt,[2,95]),t(Rt,[2,96]),t(Rt,[2,97]),t(Rt,[2,98]),{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,198],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},{10:F,18:199},{44:[1,200]},t(De,[2,43]),{10:[1,201],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{10:[1,202]},{10:[1,203],105:[1,204]},t(zt,[2,126]),{10:[1,205],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{10:[1,206],44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:111,113:D,114:k,115:R},{79:[1,207]},t($e,[2,107],{10:[1,208]}),t($e,[2,109],{10:[1,209]}),{79:[1,210]},t(rt,[2,182]),{79:[1,211],97:[1,212]},t(De,[2,55],{112:111,44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),{31:[1,213],67:ft,81:214,115:dt,116:Xe,117:ct},t(Xn,[2,84]),t(Xn,[2,86]),t(Xn,[2,87]),t(Xn,[2,151]),t(Xn,[2,152]),t(Xn,[2,153]),t(Xn,[2,154]),{49:[1,215],67:ft,81:214,115:dt,116:Xe,117:ct},{30:216,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{51:[1,217],67:ft,81:214,115:dt,116:Xe,117:ct},{53:[1,218],67:ft,81:214,115:dt,116:Xe,117:ct},{55:[1,219],67:ft,81:214,115:dt,116:Xe,117:ct},{57:[1,220],67:ft,81:214,115:dt,116:Xe,117:ct},{60:[1,221]},{64:[1,222],67:ft,81:214,115:dt,116:Xe,117:ct},{66:[1,223],67:ft,81:214,115:dt,116:Xe,117:ct},{30:224,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},{31:[1,225],67:ft,81:214,115:dt,116:Xe,117:ct},{67:ft,69:[1,226],71:[1,227],81:214,115:dt,116:Xe,117:ct},{67:ft,69:[1,229],71:[1,228],81:214,115:dt,116:Xe,117:ct},t(j,[2,45],{18:152,10:F,40:Tt}),t(j,[2,47],{44:Ye}),t(Be,[2,75]),t(Be,[2,74]),{62:[1,230],67:ft,81:214,115:dt,116:Xe,117:ct},t(Be,[2,77]),t(Lt,[2,79]),{30:231,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(vt,a,{5:232}),t(Rt,[2,100]),t(B,[2,35]),{43:233,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},{10:F,18:234},{10:or,60:hn,83:Tn,91:235,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:246,103:[1,247],104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:248,103:[1,249],104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{104:[1,250]},{10:or,60:hn,83:Tn,91:251,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{44:g,47:252,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,106]),{79:[1,253]},{79:[1,254],97:[1,255]},t($e,[2,114]),t($e,[2,116],{10:[1,256]}),t($e,[2,117]),t(oe,[2,56]),t(Xn,[2,85]),t(oe,[2,57]),{51:[1,257],67:ft,81:214,115:dt,116:Xe,117:ct},t(oe,[2,64]),t(oe,[2,59]),t(oe,[2,60]),t(oe,[2,61]),{108:[1,258]},t(oe,[2,63]),t(oe,[2,65]),{66:[1,259],67:ft,81:214,115:dt,116:Xe,117:ct},t(oe,[2,67]),t(oe,[2,68]),t(oe,[2,70]),t(oe,[2,69]),t(oe,[2,71]),t([10,44,60,88,101,104,105,108,110,113,114,115],[2,83]),{31:[1,260],67:ft,81:214,115:dt,116:Xe,117:ct},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,261],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},t(De,[2,53]),{43:262,44:g,45:39,47:40,60:y,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R},t($e,[2,119],{105:at}),t(At,[2,128],{107:264,10:or,60:hn,83:Tn,104:Ur,108:ri,109:Mn,110:yt,111:Se}),t(pr,[2,130]),t(pr,[2,132]),t(pr,[2,133]),t(pr,[2,134]),t(pr,[2,135]),t(pr,[2,136]),t(pr,[2,137]),t(pr,[2,138]),t(pr,[2,139]),t($e,[2,120],{105:at}),{10:[1,265]},t($e,[2,121],{105:at}),{10:[1,266]},t(zt,[2,127]),t($e,[2,103],{105:at}),t($e,[2,104],{112:111,44:g,60:y,88:T,101:E,104:L,105:C,108:A,110:I,113:D,114:k,115:R}),t($e,[2,108]),t($e,[2,110],{10:[1,267]}),t($e,[2,111]),{97:[1,268]},{51:[1,269]},{62:[1,270]},{66:[1,271]},{8:$,9:z,11:W,21:272},t(B,[2,34]),t(De,[2,52]),{10:or,60:hn,83:Tn,104:Ur,106:273,107:237,108:ri,109:Mn,110:yt,111:Se},t(pr,[2,131]),{14:ie,44:Q,60:ee,88:J,100:274,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},{14:ie,44:Q,60:ee,88:J,100:275,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te,119:86},{97:[1,276]},t($e,[2,118]),t(oe,[2,58]),{30:277,67:ft,79:kt,80:er,81:168,115:dt,116:Xe,117:ct},t(oe,[2,66]),t(vt,a,{5:278}),t(At,[2,129],{107:264,10:or,60:hn,83:Tn,104:Ur,108:ri,109:Mn,110:yt,111:Se}),t($e,[2,124],{119:164,10:[1,279],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,125],{119:164,10:[1,280],14:ie,44:Q,60:ee,88:J,104:H,105:q,108:Z,110:ae,113:ue,114:ce,115:te}),t($e,[2,112]),{31:[1,281],67:ft,81:214,115:dt,116:Xe,117:ct},{6:11,7:12,8:s,9:l,10:u,11:h,20:17,22:18,23:19,24:20,25:21,26:22,27:f,32:[1,282],33:24,34:d,36:p,38:m,42:28,43:38,44:g,45:39,47:40,60:y,83:v,84:x,85:b,86:w,87:_,88:T,101:E,104:L,105:C,108:A,110:I,112:41,113:D,114:k,115:R,120:S,121:O,122:N,123:P},{10:or,60:hn,83:Tn,91:283,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},{10:or,60:hn,83:Tn,91:284,104:Ur,106:236,107:237,108:ri,109:Mn,110:yt,111:Se},t(oe,[2,62]),t(B,[2,33]),t($e,[2,122],{105:at}),t($e,[2,123],{105:at})],defaultActions:{},parseError:o(function(_t,St){if(St.recoverable)this.trace(_t);else{var bt=new Error(_t);throw bt.hash=St,bt}},"parseError"),parse:o(function(_t){var St=this,bt=[0],Ue=[],Kt=[null],pe=[],bi=this.table,be="",vo=0,bF=0,wF=0,axe=2,TF=1,sxe=pe.slice.call(arguments,1),ji=Object.create(this.lexer),Pf={yy:{}};for(var gS in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gS)&&(Pf.yy[gS]=this.yy[gS]);ji.setInput(_t,Pf.yy),Pf.yy.lexer=ji,Pf.yy.parser=this,typeof ji.yylloc>"u"&&(ji.yylloc={});var yS=ji.yylloc;pe.push(yS);var oxe=ji.options&&ji.options.ranges;typeof Pf.yy.parseError=="function"?this.parseError=Pf.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Sat(Vs){bt.length=bt.length-2*Vs,Kt.length=Kt.length-Vs,pe.length=pe.length-Vs}o(Sat,"popStack");function lxe(){var Vs;return Vs=Ue.pop()||ji.lex()||TF,typeof Vs!="number"&&(Vs instanceof Array&&(Ue=Vs,Vs=Ue.pop()),Vs=St.symbols_[Vs]||Vs),Vs}o(lxe,"lex");for(var Va,vS,Bf,xo,Cat,xS,Q0={},Eb,Xc,kF,Sb;;){if(Bf=bt[bt.length-1],this.defaultActions[Bf]?xo=this.defaultActions[Bf]:((Va===null||typeof Va>"u")&&(Va=lxe()),xo=bi[Bf]&&bi[Bf][Va]),typeof xo>"u"||!xo.length||!xo[0]){var bS="";Sb=[];for(Eb in bi[Bf])this.terminals_[Eb]&&Eb>axe&&Sb.push("'"+this.terminals_[Eb]+"'");ji.showPosition?bS="Parse error on line "+(vo+1)+`: +`+ji.showPosition()+` +Expecting `+Sb.join(", ")+", got '"+(this.terminals_[Va]||Va)+"'":bS="Parse error on line "+(vo+1)+": Unexpected "+(Va==TF?"end of input":"'"+(this.terminals_[Va]||Va)+"'"),this.parseError(bS,{text:ji.match,token:this.terminals_[Va]||Va,line:ji.yylineno,loc:yS,expected:Sb})}if(xo[0]instanceof Array&&xo.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Bf+", token: "+Va);switch(xo[0]){case 1:bt.push(Va),Kt.push(ji.yytext),pe.push(ji.yylloc),bt.push(xo[1]),Va=null,vS?(Va=vS,vS=null):(bF=ji.yyleng,be=ji.yytext,vo=ji.yylineno,yS=ji.yylloc,wF>0&&wF--);break;case 2:if(Xc=this.productions_[xo[1]][1],Q0.$=Kt[Kt.length-Xc],Q0._$={first_line:pe[pe.length-(Xc||1)].first_line,last_line:pe[pe.length-1].last_line,first_column:pe[pe.length-(Xc||1)].first_column,last_column:pe[pe.length-1].last_column},oxe&&(Q0._$.range=[pe[pe.length-(Xc||1)].range[0],pe[pe.length-1].range[1]]),xS=this.performAction.apply(Q0,[be,bF,vo,Pf.yy,xo[1],Kt,pe].concat(sxe)),typeof xS<"u")return xS;Xc&&(bt=bt.slice(0,-1*Xc*2),Kt=Kt.slice(0,-1*Xc),pe=pe.slice(0,-1*Xc)),bt.push(this.productions_[xo[1]][0]),Kt.push(Q0.$),pe.push(Q0._$),kF=bi[bt[bt.length-2]][bt[bt.length-1]],bt.push(kF);break;case 3:return!0}}return!0},"parse")},On=function(){var kn={EOF:1,parseError:o(function(St,bt){if(this.yy.parser)this.yy.parser.parseError(St,bt);else throw new Error(St)},"parseError"),setInput:o(function(_t,St){return this.yy=St||this.yy||{},this._input=_t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _t=this._input[0];this.yytext+=_t,this.yyleng++,this.offset++,this.match+=_t,this.matched+=_t;var St=_t.match(/(?:\r\n?|\n).*/g);return St?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_t},"input"),unput:o(function(_t){var St=_t.length,bt=_t.split(/(?:\r\n?|\n)/g);this._input=_t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-St),this.offset-=St;var Ue=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),bt.length-1&&(this.yylineno-=bt.length-1);var Kt=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:bt?(bt.length===Ue.length?this.yylloc.first_column:0)+Ue[Ue.length-bt.length].length-bt[0].length:this.yylloc.first_column-St},this.options.ranges&&(this.yylloc.range=[Kt[0],Kt[0]+this.yyleng-St]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_t){this.unput(this.match.slice(_t))},"less"),pastInput:o(function(){var _t=this.matched.substr(0,this.matched.length-this.match.length);return(_t.length>20?"...":"")+_t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _t=this.match;return _t.length<20&&(_t+=this._input.substr(0,20-_t.length)),(_t.substr(0,20)+(_t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _t=this.pastInput(),St=new Array(_t.length+1).join("-");return _t+this.upcomingInput()+` +`+St+"^"},"showPosition"),test_match:o(function(_t,St){var bt,Ue,Kt;if(this.options.backtrack_lexer&&(Kt={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Kt.yylloc.range=this.yylloc.range.slice(0))),Ue=_t[0].match(/(?:\r\n?|\n).*/g),Ue&&(this.yylineno+=Ue.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ue?Ue[Ue.length-1].length-Ue[Ue.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_t[0].length},this.yytext+=_t[0],this.match+=_t[0],this.matches=_t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_t[0].length),this.matched+=_t[0],bt=this.performAction.call(this,this.yy,this,St,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),bt)return bt;if(this._backtrack){for(var pe in Kt)this[pe]=Kt[pe];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _t,St,bt,Ue;this._more||(this.yytext="",this.match="");for(var Kt=this._currentRules(),pe=0;peSt[0].length)){if(St=bt,Ue=pe,this.options.backtrack_lexer){if(_t=this.test_match(bt,Kt[pe]),_t!==!1)return _t;if(this._backtrack){St=!1;continue}else return!1}else if(!this.options.flex)break}return St?(_t=this.test_match(St,Kt[Ue]),_t!==!1?_t:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var St=this.next();return St||this.lex()},"lex"),begin:o(function(St){this.conditionStack.push(St)},"begin"),popState:o(function(){var St=this.conditionStack.length-1;return St>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(St){return St=this.conditionStack.length-1-Math.abs(St||0),St>=0?this.conditionStack[St]:"INITIAL"},"topState"),pushState:o(function(St){this.begin(St)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(St,bt,Ue,Kt){var pe=Kt;switch(Ue){case 0:return this.begin("acc_title"),34;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),36;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.pushState("shapeData"),bt.yytext="",40;break;case 8:return this.pushState("shapeDataStr"),40;break;case 9:return this.popState(),40;break;case 10:let bi=/\n\s*/g;return bt.yytext=bt.yytext.replace(bi,"
    "),40;break;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 94;case 17:this.popState();break;case 18:return 95;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 83;case 26:return 101;case 27:return 84;case 28:return 103;case 29:return 85;case 30:return 86;case 31:return 96;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 87;case 35:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 36:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 37:return St.lex.firstGraph()&&this.begin("dir"),12;break;case 38:return 27;case 39:return 32;case 40:return 97;case 41:return 97;case 42:return 97;case 43:return 97;case 44:return this.popState(),13;break;case 45:return this.popState(),14;break;case 46:return this.popState(),14;break;case 47:return this.popState(),14;break;case 48:return this.popState(),14;break;case 49:return this.popState(),14;break;case 50:return this.popState(),14;break;case 51:return this.popState(),14;break;case 52:return this.popState(),14;break;case 53:return this.popState(),14;break;case 54:return this.popState(),14;break;case 55:return 120;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 104;case 60:return 110;case 61:return 46;case 62:return 60;case 63:return 44;case 64:return 8;case 65:return 105;case 66:return 114;case 67:return this.popState(),77;break;case 68:return this.pushState("edgeText"),75;break;case 69:return 118;case 70:return this.popState(),77;break;case 71:return this.pushState("thickEdgeText"),75;break;case 72:return 118;case 73:return this.popState(),77;break;case 74:return this.pushState("dottedEdgeText"),75;break;case 75:return 118;case 76:return 77;case 77:return this.popState(),53;break;case 78:return"TEXT";case 79:return this.pushState("ellipseText"),52;break;case 80:return this.popState(),55;break;case 81:return this.pushState("text"),54;break;case 82:return this.popState(),57;break;case 83:return this.pushState("text"),56;break;case 84:return 58;case 85:return this.pushState("text"),67;break;case 86:return this.popState(),64;break;case 87:return this.pushState("text"),63;break;case 88:return this.popState(),49;break;case 89:return this.pushState("text"),48;break;case 90:return this.popState(),69;break;case 91:return this.popState(),71;break;case 92:return 116;case 93:return this.pushState("trapText"),68;break;case 94:return this.pushState("trapText"),70;break;case 95:return 117;case 96:return 67;case 97:return 89;case 98:return"SEP";case 99:return 88;case 100:return 114;case 101:return 110;case 102:return 44;case 103:return 108;case 104:return 113;case 105:return 115;case 106:return this.popState(),62;break;case 107:return this.pushState("text"),62;break;case 108:return this.popState(),51;break;case 109:return this.pushState("text"),50;break;case 110:return this.popState(),31;break;case 111:return this.pushState("text"),29;break;case 112:return this.popState(),66;break;case 113:return this.pushState("text"),65;break;case 114:return"TEXT";case 115:return"QUOTE";case 116:return 9;case 117:return 10;case 118:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeData:{rules:[8,11,12,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackargs:{rules:[17,18,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackname:{rules:[14,15,16,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},href:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},click:{rules:[21,24,33,34,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dottedEdgeText:{rules:[21,24,73,75,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},thickEdgeText:{rules:[21,24,70,72,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},edgeText:{rules:[21,24,67,69,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},trapText:{rules:[21,24,76,79,81,83,87,89,90,91,92,93,94,107,109,111,113],inclusive:!1},ellipseText:{rules:[21,24,76,77,78,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},text:{rules:[21,24,76,79,80,81,82,83,86,87,88,89,93,94,106,107,108,109,110,111,112,113,114],inclusive:!1},vertex:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr:{rules:[3,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_title:{rules:[1,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},md_string:{rules:[19,20,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},string:{rules:[21,22,23,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,76,79,81,83,84,85,87,89,93,94,95,96,97,98,99,100,101,102,103,104,105,107,109,111,113,115,116,117,118],inclusive:!0}}};return kn}();In.lexer=On;function Ir(){this.yy={}}return o(Ir,"Parser"),Ir.prototype=In,In.Parser=Ir,new Ir}();AD.parser=AD;Wie=AD});var uPe,hPe,qie,Xie=M(()=>{"use strict";To();uPe=o((t,e)=>{let r=z1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Hs(n,i,a,e)},"fade"),hPe=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span { + color: ${t.titleColor}; + } + .cluster-label span p { + background-color: transparent; + } + + .label text,span { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .katex path { + fill: #000; + stroke: #000; + stroke-width: 1px; + } + + .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + + .root .anchor path { + fill: ${t.lineColor} !important; + stroke-width: 0; + stroke: ${t.lineColor}; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${uPe(t.edgeLabelBackground,.5)}; + // background-color: + } + + .cluster rect { + fill: ${t.clusterBkg}; + stroke: ${t.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + + rect.text { + fill: none; + stroke-width: 0; + } + + .icon-shape, .image-shape { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + padding: 2px; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } +`,"getStyles"),qie=hPe});var hT={};vr(hT,{diagram:()=>fPe});var fPe,fT=M(()=>{"use strict";Vt();oL();Hie();Yie();Xie();fPe={parser:Wie,db:X5,renderer:Uie,styles:qie,init:o(t=>{t.flowchart||(t.flowchart={}),t.layout&&n7({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,n7({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),X5.clear(),X5.setGen("gen-2")},"init")}});var _D,Jie,eae=M(()=>{"use strict";_D=function(){var t=o(function(C,A,I,D){for(I=I||{},D=C.length;D--;I[C[D]]=A);return I},"o"),e=[6,8,10,20,22,24,26,27,28],r=[1,10],n=[1,11],i=[1,12],a=[1,13],s=[1,14],l=[1,15],u=[1,21],h=[1,22],f=[1,23],d=[1,24],p=[1,25],m=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],g=[1,34],y=[27,28,46,47],v=[41,42,43,44,45],x=[17,34],b=[1,54],w=[1,53],_=[17,34,36,38],T={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:o(function(A,I,D,k,R,S,O){var N=S.length-1;switch(R){case 1:break;case 2:this.$=[];break;case 3:S[N-1].push(S[N]),this.$=S[N-1];break;case 4:case 5:this.$=S[N];break;case 6:case 7:this.$=[];break;case 8:k.addEntity(S[N-4]),k.addEntity(S[N-2]),k.addRelationship(S[N-4],S[N],S[N-2],S[N-3]);break;case 9:k.addEntity(S[N-3]),k.addAttributes(S[N-3],S[N-1]);break;case 10:k.addEntity(S[N-2]);break;case 11:k.addEntity(S[N]);break;case 12:k.addEntity(S[N-6],S[N-4]),k.addAttributes(S[N-6],S[N-1]);break;case 13:k.addEntity(S[N-5],S[N-3]);break;case 14:k.addEntity(S[N-3],S[N-1]);break;case 15:case 16:this.$=S[N].trim(),k.setAccTitle(this.$);break;case 17:case 18:this.$=S[N].trim(),k.setAccDescription(this.$);break;case 19:case 43:this.$=S[N];break;case 20:case 41:case 42:this.$=S[N].replace(/"/g,"");break;case 21:case 29:this.$=[S[N]];break;case 22:S[N].push(S[N-1]),this.$=S[N];break;case 23:this.$={attributeType:S[N-1],attributeName:S[N]};break;case 24:this.$={attributeType:S[N-2],attributeName:S[N-1],attributeKeyTypeList:S[N]};break;case 25:this.$={attributeType:S[N-2],attributeName:S[N-1],attributeComment:S[N]};break;case 26:this.$={attributeType:S[N-3],attributeName:S[N-2],attributeKeyTypeList:S[N-1],attributeComment:S[N]};break;case 27:case 28:case 31:this.$=S[N];break;case 30:S[N-2].push(S[N]),this.$=S[N-2];break;case 32:this.$=S[N].replace(/"/g,"");break;case 33:this.$={cardA:S[N],relType:S[N-1],cardB:S[N-2]};break;case 34:this.$=k.Cardinality.ZERO_OR_ONE;break;case 35:this.$=k.Cardinality.ZERO_OR_MORE;break;case 36:this.$=k.Cardinality.ONE_OR_MORE;break;case 37:this.$=k.Cardinality.ONLY_ONE;break;case 38:this.$=k.Cardinality.MD_PARENT;break;case 39:this.$=k.Identification.NON_IDENTIFYING;break;case 40:this.$=k.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:n,24:i,26:a,27:s,28:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:u,42:h,43:f,44:d,45:p}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(m,[2,19]),t(m,[2,20]),t(e,[2,4]),{11:29,27:s,28:l},{16:30,17:[1,31],29:32,30:33,34:g},{11:35,27:s,28:l},{40:36,46:[1,37],47:[1,38]},t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),t(y,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:g},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:u,42:h,43:f,44:d,45:p},t(v,[2,39]),t(v,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(x,[2,23],{32:50,33:51,35:52,37:b,38:w}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(x,[2,24],{33:56,36:[1,57],38:w}),t(x,[2,25]),t(_,[2,29]),t(x,[2,32]),t(_,[2,31]),{16:58,17:[1,59],29:32,30:33,34:g},t(x,[2,26]),{35:60,37:b},{17:[1,61]},t(e,[2,13]),t(_,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:o(function(A,I){if(I.recoverable)this.trace(A);else{var D=new Error(A);throw D.hash=I,D}},"parseError"),parse:o(function(A){var I=this,D=[0],k=[],R=[null],S=[],O=this.table,N="",P=0,F=0,B=0,$=2,z=1,W=S.slice.call(arguments,1),j=Object.create(this.lexer),K={yy:{}};for(var ie in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ie)&&(K.yy[ie]=this.yy[ie]);j.setInput(A,K.yy),K.yy.lexer=j,K.yy.parser=this,typeof j.yylloc>"u"&&(j.yylloc={});var Q=j.yylloc;S.push(Q);var ee=j.options&&j.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function J(Ge){D.length=D.length-2*Ge,R.length=R.length-Ge,S.length=S.length-Ge}o(J,"popStack");function H(){var Ge;return Ge=k.pop()||j.lex()||z,typeof Ge!="number"&&(Ge instanceof Array&&(k=Ge,Ge=k.pop()),Ge=I.symbols_[Ge]||Ge),Ge}o(H,"lex");for(var q,Z,ae,ue,ce,te,De={},oe,ke,Fe,Be;;){if(ae=D[D.length-1],this.defaultActions[ae]?ue=this.defaultActions[ae]:((q===null||typeof q>"u")&&(q=H()),ue=O[ae]&&O[ae][q]),typeof ue>"u"||!ue.length||!ue[0]){var Ve="";Be=[];for(oe in O[ae])this.terminals_[oe]&&oe>$&&Be.push("'"+this.terminals_[oe]+"'");j.showPosition?Ve="Parse error on line "+(P+1)+`: +`+j.showPosition()+` +Expecting `+Be.join(", ")+", got '"+(this.terminals_[q]||q)+"'":Ve="Parse error on line "+(P+1)+": Unexpected "+(q==z?"end of input":"'"+(this.terminals_[q]||q)+"'"),this.parseError(Ve,{text:j.match,token:this.terminals_[q]||q,line:j.yylineno,loc:Q,expected:Be})}if(ue[0]instanceof Array&&ue.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ae+", token: "+q);switch(ue[0]){case 1:D.push(q),R.push(j.yytext),S.push(j.yylloc),D.push(ue[1]),q=null,Z?(q=Z,Z=null):(F=j.yyleng,N=j.yytext,P=j.yylineno,Q=j.yylloc,B>0&&B--);break;case 2:if(ke=this.productions_[ue[1]][1],De.$=R[R.length-ke],De._$={first_line:S[S.length-(ke||1)].first_line,last_line:S[S.length-1].last_line,first_column:S[S.length-(ke||1)].first_column,last_column:S[S.length-1].last_column},ee&&(De._$.range=[S[S.length-(ke||1)].range[0],S[S.length-1].range[1]]),te=this.performAction.apply(De,[N,F,P,K.yy,ue[1],R,S].concat(W)),typeof te<"u")return te;ke&&(D=D.slice(0,-1*ke*2),R=R.slice(0,-1*ke),S=S.slice(0,-1*ke)),D.push(this.productions_[ue[1]][0]),R.push(De.$),S.push(De._$),Fe=O[D[D.length-2]][D[D.length-1]],D.push(Fe);break;case 3:return!0}}return!0},"parse")},E=function(){var C={EOF:1,parseError:o(function(I,D){if(this.yy.parser)this.yy.parser.parseError(I,D);else throw new Error(I)},"parseError"),setInput:o(function(A,I){return this.yy=I||this.yy||{},this._input=A,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var A=this._input[0];this.yytext+=A,this.yyleng++,this.offset++,this.match+=A,this.matched+=A;var I=A.match(/(?:\r\n?|\n).*/g);return I?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),A},"input"),unput:o(function(A){var I=A.length,D=A.split(/(?:\r\n?|\n)/g);this._input=A+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-I),this.offset-=I;var k=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),D.length-1&&(this.yylineno-=D.length-1);var R=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:D?(D.length===k.length?this.yylloc.first_column:0)+k[k.length-D.length].length-D[0].length:this.yylloc.first_column-I},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-I]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(A){this.unput(this.match.slice(A))},"less"),pastInput:o(function(){var A=this.matched.substr(0,this.matched.length-this.match.length);return(A.length>20?"...":"")+A.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var A=this.match;return A.length<20&&(A+=this._input.substr(0,20-A.length)),(A.substr(0,20)+(A.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var A=this.pastInput(),I=new Array(A.length+1).join("-");return A+this.upcomingInput()+` +`+I+"^"},"showPosition"),test_match:o(function(A,I){var D,k,R;if(this.options.backtrack_lexer&&(R={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(R.yylloc.range=this.yylloc.range.slice(0))),k=A[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+A[0].length},this.yytext+=A[0],this.match+=A[0],this.matches=A,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(A[0].length),this.matched+=A[0],D=this.performAction.call(this,this.yy,this,I,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),D)return D;if(this._backtrack){for(var S in R)this[S]=R[S];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var A,I,D,k;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),S=0;SI[0].length)){if(I=D,k=S,this.options.backtrack_lexer){if(A=this.test_match(D,R[S]),A!==!1)return A;if(this._backtrack){I=!1;continue}else return!1}else if(!this.options.flex)break}return I?(A=this.test_match(I,R[k]),A!==!1?A:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var I=this.next();return I||this.lex()},"lex"),begin:o(function(I){this.conditionStack.push(I)},"begin"),popState:o(function(){var I=this.conditionStack.length-1;return I>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(I){return I=this.conditionStack.length-1-Math.abs(I||0),I>=0?this.conditionStack[I]:"INITIAL"},"topState"),pushState:o(function(I){this.begin(I)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(I,D,k,R){var S=R;switch(k){case 0:return this.begin("acc_title"),22;break;case 1:return this.popState(),"acc_title_value";break;case 2:return this.begin("acc_descr"),24;break;case 3:return this.popState(),"acc_descr_value";break;case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 10;case 8:break;case 9:return 8;case 10:return 28;case 11:return 48;case 12:return 4;case 13:return this.begin("block"),15;break;case 14:return 36;case 15:break;case 16:return 37;case 17:return 34;case 18:return 34;case 19:return 38;case 20:break;case 21:return this.popState(),17;break;case 22:return D.yytext[0];case 23:return 18;case 24:return 19;case 25:return 41;case 26:return 43;case 27:return 43;case 28:return 43;case 29:return 41;case 30:return 41;case 31:return 42;case 32:return 42;case 33:return 42;case 34:return 42;case 35:return 42;case 36:return 43;case 37:return 42;case 38:return 43;case 39:return 44;case 40:return 44;case 41:return 44;case 42:return 44;case 43:return 41;case 44:return 42;case 45:return 43;case 46:return 45;case 47:return 46;case 48:return 47;case 49:return 47;case 50:return 46;case 51:return 46;case 52:return 46;case 53:return 27;case 54:return D.yytext[0];case 55:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[\*A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[14,15,16,17,18,19,20,21,22],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],inclusive:!0}}};return C}();T.lexer=E;function L(){this.yy={}}return o(L,"Parser"),L.prototype=T,T.Parser=L,new L}();_D.parser=_D;Jie=_D});var Gd,LD,xPe,bPe,tae,wPe,TPe,kPe,EPe,SPe,rae,nae=M(()=>{"use strict";ht();Vt();ki();Gd=new Map,LD=[],xPe={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},bPe={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},tae=o(function(t,e=void 0){return Gd.has(t)?!Gd.get(t).alias&&e&&(Gd.get(t).alias=e,Y.info(`Add alias '${e}' to entity '${t}'`)):(Gd.set(t,{attributes:[],alias:e}),Y.info("Added new entity :",t)),Gd.get(t)},"addEntity"),wPe=o(()=>Gd,"getEntities"),TPe=o(function(t,e){let r=tae(t),n;for(n=e.length-1;n>=0;n--)r.attributes.push(e[n]),Y.debug("Added attribute ",e[n].attributeName)},"addAttributes"),kPe=o(function(t,e,r,n){let i={entityA:t,roleA:e,entityB:r,relSpec:n};LD.push(i),Y.debug("Added new relationship :",i)},"addRelationship"),EPe=o(()=>LD,"getRelationships"),SPe=o(function(){Gd=new Map,LD=[],_r()},"clear"),rae={Cardinality:xPe,Identification:bPe,getConfig:o(()=>de().er,"getConfig"),addEntity:tae,addAttributes:TPe,getEntities:wPe,addRelationship:kPe,getRelationships:EPe,clear:SPe,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,setDiagramTitle:ln,getDiagramTitle:Jr}});var Rl,CPe,Wo,iae=M(()=>{"use strict";Rl={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},CPe=o(function(t,e){let r;t.append("defs").append("marker").attr("id",Rl.MD_PARENT_START).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Rl.MD_PARENT_END).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",Rl.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",Rl.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",Rl.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",Rl.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),r=t.append("defs").append("marker").attr("id",Rl.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),r.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"insertMarkers"),Wo={ERMarkers:Rl,insertMarkers:CPe}});var aae,sae=M(()=>{"use strict";aae=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function APe(t){return typeof t=="string"&&aae.test(t)}var oae,lae=M(()=>{"use strict";sae();o(APe,"validate");oae=APe});function cae(t,e=0){return pa[t[e+0]]+pa[t[e+1]]+pa[t[e+2]]+pa[t[e+3]]+"-"+pa[t[e+4]]+pa[t[e+5]]+"-"+pa[t[e+6]]+pa[t[e+7]]+"-"+pa[t[e+8]]+pa[t[e+9]]+"-"+pa[t[e+10]]+pa[t[e+11]]+pa[t[e+12]]+pa[t[e+13]]+pa[t[e+14]]+pa[t[e+15]]}var pa,uae=M(()=>{"use strict";pa=[];for(let t=0;t<256;++t)pa.push((t+256).toString(16).slice(1));o(cae,"unsafeStringify")});function _Pe(t){if(!oae(t))throw TypeError("Invalid UUID");let e,r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}var hae,fae=M(()=>{"use strict";lae();o(_Pe,"parse");hae=_Pe});function LPe(t){t=unescape(encodeURIComponent(t));let e=[];for(let r=0;r{"use strict";uae();fae();o(LPe,"stringToBytes");DPe="6ba7b810-9dad-11d1-80b4-00c04fd430c8",NPe="6ba7b811-9dad-11d1-80b4-00c04fd430c8";o(DD,"v35")});function RPe(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function ND(t,e){return t<>>32-e}function MPe(t){let e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){let s=unescape(encodeURIComponent(t));t=[];for(let l=0;l>>0;p=d,d=f,f=ND(h,30)>>>0,h=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+h>>>0,r[2]=r[2]+f>>>0,r[3]=r[3]+d>>>0,r[4]=r[4]+p>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}var pae,mae=M(()=>{"use strict";o(RPe,"f");o(ND,"ROTL");o(MPe,"sha1");pae=MPe});var IPe,RD,gae=M(()=>{"use strict";dae();mae();IPe=DD("v5",80,pae),RD=IPe});var yae=M(()=>{"use strict";gae()});function HPe(t="",e=""){let r=t.replace(OPe,"");return`${xae(e)}${xae(r)}${RD(t,UPe)}`}function xae(t=""){return t.length>0?`${t}-`:""}var OPe,Bi,zv,PPe,BPe,FPe,zPe,bae,GPe,vae,$Pe,VPe,UPe,wae,Tae=M(()=>{"use strict";Ns();mr();Pv();Vt();ht();hr();iae();ni();fr();yae();OPe=/[^\dA-Za-z](\W)*/g,Bi={},zv=new Map,PPe=o(function(t){let e=Object.keys(t);for(let r of e)Bi[r]=t[r]},"setConf"),BPe=o((t,e,r)=>{let n=Bi.entityPadding/3,i=Bi.entityPadding/3,a=Bi.fontSize*.85,s=e.node().getBBox(),l=[],u=!1,h=!1,f=0,d=0,p=0,m=0,g=s.height+n*2,y=1;r.forEach(w=>{w.attributeKeyTypeList!==void 0&&w.attributeKeyTypeList.length>0&&(u=!0),w.attributeComment!==void 0&&(h=!0)}),r.forEach(w=>{let _=`${e.node().id}-attr-${y}`,T=0,E=ou(w.attributeType),L=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(E),C=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeName),A={};A.tn=L,A.nn=C;let I=L.node().getBBox(),D=C.node().getBBox();if(f=Math.max(f,I.width),d=Math.max(d,D.width),T=Math.max(I.height,D.height),u){let k=w.attributeKeyTypeList!==void 0?w.attributeKeyTypeList.join(","):"",R=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(k);A.kn=R;let S=R.node().getBBox();p=Math.max(p,S.width),T=Math.max(T,S.height)}if(h){let k=t.append("text").classed("er entityLabel",!0).attr("id",`${_}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",de().fontFamily).style("font-size",a+"px").text(w.attributeComment||"");A.cn=k;let R=k.node().getBBox();m=Math.max(m,R.width),T=Math.max(T,R.height)}A.height=T,l.push(A),g+=T+n*2,y+=1});let v=4;u&&(v+=2),h&&(v+=2);let x=f+d+p+m,b={width:Math.max(Bi.minEntityWidth,Math.max(s.width+Bi.entityPadding*2,x+i*v)),height:r.length>0?g:Math.max(Bi.minEntityHeight,s.height+Bi.entityPadding*2)};if(r.length>0){let w=Math.max(0,(b.width-x-i*v)/(v/2));e.attr("transform","translate("+b.width/2+","+(n+s.height/2)+")");let _=s.height+n*2,T="attributeBoxOdd";l.forEach(E=>{let L=_+n+E.height/2;E.tn.attr("transform","translate("+i+","+L+")");let C=t.insert("rect","#"+E.tn.node().id).classed(`er ${T}`,!0).attr("x",0).attr("y",_).attr("width",f+i*2+w).attr("height",E.height+n*2),A=parseFloat(C.attr("x"))+parseFloat(C.attr("width"));E.nn.attr("transform","translate("+(A+i)+","+L+")");let I=t.insert("rect","#"+E.nn.node().id).classed(`er ${T}`,!0).attr("x",A).attr("y",_).attr("width",d+i*2+w).attr("height",E.height+n*2),D=parseFloat(I.attr("x"))+parseFloat(I.attr("width"));if(u){E.kn.attr("transform","translate("+(D+i)+","+L+")");let k=t.insert("rect","#"+E.kn.node().id).classed(`er ${T}`,!0).attr("x",D).attr("y",_).attr("width",p+i*2+w).attr("height",E.height+n*2);D=parseFloat(k.attr("x"))+parseFloat(k.attr("width"))}h&&(E.cn.attr("transform","translate("+(D+i)+","+L+")"),t.insert("rect","#"+E.cn.node().id).classed(`er ${T}`,"true").attr("x",D).attr("y",_).attr("width",m+i*2+w).attr("height",E.height+n*2)),_+=E.height+n*2,T=T==="attributeBoxOdd"?"attributeBoxEven":"attributeBoxOdd"})}else b.height=Math.max(Bi.minEntityHeight,g),e.attr("transform","translate("+b.width/2+","+b.height/2+")");return b},"drawAttributes"),FPe=o(function(t,e,r){let n=[...e.keys()],i;return n.forEach(function(a){let s=HPe(a,"entity");zv.set(a,s);let l=t.append("g").attr("id",s);i=i===void 0?s:i;let u="text-"+s,h=l.append("text").classed("er entityLabel",!0).attr("id",u).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",de().fontFamily).style("font-size",Bi.fontSize+"px").text(e.get(a).alias??a),{width:f,height:d}=BPe(l,h,e.get(a).attributes),m=l.insert("rect","#"+u).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",f).attr("height",d).node().getBBox();r.setNode(s,{width:m.width,height:m.height,shape:"rect",id:s})}),i},"drawEntities"),zPe=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )")})},"adjustEntities"),bae=o(function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},"getEdgeName"),GPe=o(function(t,e){return t.forEach(function(r){e.setEdge(zv.get(r.entityA),zv.get(r.entityB),{relationship:r},bae(r))}),t},"addRelationships"),vae=0,$Pe=o(function(t,e,r,n,i){vae++;let a=r.edge(zv.get(e.entityA),zv.get(e.entityB),bae(e)),s=Ka().x(function(y){return y.x}).y(function(y){return y.y}).curve(Do),l=t.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",s(a.points)).style("stroke",Bi.stroke).style("fill","none");e.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&l.attr("stroke-dasharray","8,8");let u="";switch(Bi.arrowMarkerAbsolute&&(u=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,u=u.replace(/\(/g,"\\("),u=u.replace(/\)/g,"\\)")),e.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_END+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_END+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_END+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_END+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-end","url("+u+"#"+Wo.ERMarkers.MD_PARENT_END+")");break}switch(e.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_ONE_START+")");break;case i.db.Cardinality.ZERO_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ZERO_OR_MORE_START+")");break;case i.db.Cardinality.ONE_OR_MORE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONE_OR_MORE_START+")");break;case i.db.Cardinality.ONLY_ONE:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.ONLY_ONE_START+")");break;case i.db.Cardinality.MD_PARENT:l.attr("marker-start","url("+u+"#"+Wo.ERMarkers.MD_PARENT_START+")");break}let h=l.node().getTotalLength(),f=l.node().getPointAtLength(h*.5),d="rel"+vae,p=e.roleA.split(/
    /g),m=t.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",f.x).attr("y",f.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",de().fontFamily).style("font-size",Bi.fontSize+"px");if(p.length==1)m.text(e.roleA);else{let y=-(p.length-1)*.5;p.forEach((v,x)=>{m.append("tspan").attr("x",f.x).attr("dy",`${x===0?y:1}em`).text(v)})}let g=m.node().getBBox();t.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",f.x-g.width/2).attr("y",f.y-g.height/2).attr("width",g.width).attr("height",g.height)},"drawRelationshipFromLayout"),VPe=o(function(t,e,r,n){Bi=de().er,Y.info("Drawing ER diagram");let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let l=(i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body")).select(`[id='${e}']`);Wo.insertMarkers(l,Bi);let u;u=new Mr({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:Bi.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}});let h=FPe(l,n.db.getEntities(),u),f=GPe(n.db.getRelationships(),u);Du(u),zPe(l,u),f.forEach(function(y){$Pe(l,y,u,h,n)});let d=Bi.diagramPadding;Ut.insertTitle(l,"entityTitleText",Bi.titleTopMargin,n.db.getDiagramTitle());let p=l.node().getBBox(),m=p.width+d*2,g=p.height+d*2;Zr(l,g,m,Bi.useMaxWidth),l.attr("viewBox",`${p.x-d} ${p.y-d} ${m} ${g}`)},"draw"),UPe="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";o(HPe,"generateId");o(xae,"strWithHyphen");wae={setConf:PPe,draw:VPe}});var WPe,kae,Eae=M(()=>{"use strict";WPe=o(t=>` + .entityBox { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxOdd { + fill: ${t.attributeBackgroundColorOdd}; + stroke: ${t.nodeBorder}; + } + + .attributeBoxEven { + fill: ${t.attributeBackgroundColorEven}; + stroke: ${t.nodeBorder}; + } + + .relationshipLabelBox { + fill: ${t.tertiaryColor}; + opacity: 0.7; + background-color: ${t.tertiaryColor}; + rect { + opacity: 0.5; + } + } + + .relationshipLine { + stroke: ${t.lineColor}; + } + + .entityTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } + #MD_PARENT_START { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + #MD_PARENT_END { + fill: #f5f5f5 !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; + } + +`,"getStyles"),kae=WPe});var Sae={};vr(Sae,{diagram:()=>YPe});var YPe,Cae=M(()=>{"use strict";eae();nae();Tae();Eae();YPe={parser:Jie,db:rae,renderer:wae,styles:kae}});function ei(t){return typeof t=="object"&&t!==null&&typeof t.$type=="string"}function ma(t){return typeof t=="object"&&t!==null&&typeof t.$refText=="string"}function MD(t){return typeof t=="object"&&t!==null&&typeof t.name=="string"&&typeof t.type=="string"&&typeof t.path=="string"}function Vd(t){return typeof t=="object"&&t!==null&&ei(t.container)&&ma(t.reference)&&typeof t.message=="string"}function io(t){return typeof t=="object"&&t!==null&&Array.isArray(t.content)}function Jh(t){return typeof t=="object"&&t!==null&&typeof t.tokenType=="object"}function Gv(t){return io(t)&&typeof t.fullText=="string"}var $d,Yo=M(()=>{"use strict";o(ei,"isAstNode");o(ma,"isReference");o(MD,"isAstNodeDescription");o(Vd,"isLinkingError");$d=class{static{o(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,r){return ei(e)&&this.isSubtype(e.$type,r)}isSubtype(e,r){if(e===r)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});let i=n[r];if(i!==void 0)return i;{let a=this.computeIsSubtype(e,r);return n[r]=a,a}}getAllSubTypes(e){let r=this.allSubtypes[e];if(r)return r;{let n=this.getAllTypes(),i=[];for(let a of n)this.isSubtype(a,e)&&i.push(a);return this.allSubtypes[e]=i,i}}};o(io,"isCompositeCstNode");o(Jh,"isLeafCstNode");o(Gv,"isRootCstNode")});function KPe(t){return typeof t=="string"?t:typeof t>"u"?"undefined":typeof t.toString=="function"?t.toString():Object.prototype.toString.call(t)}function dT(t){return!!t&&typeof t[Symbol.iterator]=="function"}function tn(...t){if(t.length===1){let e=t[0];if(e instanceof ao)return e;if(dT(e))return new ao(()=>e[Symbol.iterator](),r=>r.next());if(typeof e.length=="number")return new ao(()=>({index:0}),r=>r.index1?new ao(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){let r=e.iterator.next();if(!r.done)return r;e.iterator=void 0}if(e.array){if(e.arrIndex{"use strict";ao=class t{static{o(this,"StreamImpl")}constructor(e,r){this.startFn=e,this.nextFn=r}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)r++,n=e.next();return r}toArray(){let e=[],r=this.iterator(),n;do n=r.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,r){let n=this.map(i=>[e?e(i):i,r?r(i):i]);return new Map(n)}toString(){return this.join()}concat(e){let r=e[Symbol.iterator]();return new t(()=>({first:this.startFn(),firstDone:!1}),n=>{let i;if(!n.firstDone){do if(i=this.nextFn(n.first),!i.done)return i;while(!i.done);n.firstDone=!0}do if(i=r.next(),!i.done)return i;while(!i.done);return Ja})}join(e=","){let r=this.iterator(),n="",i,a=!1;do i=r.next(),i.done||(a&&(n+=e),n+=KPe(i.value)),a=!0;while(!i.done);return n}indexOf(e,r=0){let n=this.iterator(),i=0,a=n.next();for(;!a.done;){if(i>=r&&a.value===e)return i;a=n.next(),i++}return-1}every(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(!e(n.value))return!1;n=r.next()}return!0}some(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return!0;n=r.next()}return!1}forEach(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;)e(i.value,n),i=r.next(),n++}map(e){return new t(this.startFn,r=>{let{done:n,value:i}=this.nextFn(r);return n?Ja:{done:!1,value:e(i)}})}filter(e){return new t(this.startFn,r=>{let n;do if(n=this.nextFn(r),!n.done&&e(n.value))return n;while(!n.done);return Ja})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,r){let n=this.iterator(),i=r,a=n.next();for(;!a.done;)i===void 0?i=a.value:i=e(i,a.value),a=n.next();return i}reduceRight(e,r){return this.recursiveReduce(this.iterator(),e,r)}recursiveReduce(e,r,n){let i=e.next();if(i.done)return n;let a=this.recursiveReduce(e,r,n);return a===void 0?i.value:r(a,i.value)}find(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(e(n.value))return n.value;n=r.next()}}findIndex(e){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(e(i.value))return n;i=r.next(),n++}return-1}includes(e){let r=this.iterator(),n=r.next();for(;!n.done;){if(n.value===e)return!0;n=r.next()}return!1}flatMap(e){return new t(()=>({this:this.startFn()}),r=>{do{if(r.iterator){let a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}let{done:n,value:i}=this.nextFn(r.this);if(!n){let a=e(i);if(dT(a))r.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}}while(r.iterator);return Ja})}flat(e){if(e===void 0&&(e=1),e<=0)return this;let r=e>1?this.flat(e-1):this;return new t(()=>({this:r.startFn()}),n=>{do{if(n.iterator){let s=n.iterator.next();if(s.done)n.iterator=void 0;else return s}let{done:i,value:a}=r.nextFn(n.this);if(!i)if(dT(a))n.iterator=a[Symbol.iterator]();else return{done:!1,value:a}}while(n.iterator);return Ja})}head(){let r=this.iterator().next();if(!r.done)return r.value}tail(e=1){return new t(()=>{let r=this.startFn();for(let n=0;n({size:0,state:this.startFn()}),r=>(r.size++,r.size>e?Ja:this.nextFn(r.state)))}distinct(e){let r=new Set;return this.filter(n=>{let i=e?e(n):n;return r.has(i)?!1:(r.add(i),!0)})}exclude(e,r){let n=new Set;for(let i of e){let a=r?r(i):i;n.add(a)}return this.filter(i=>{let a=r?r(i):i;return!n.has(a)})}};o(KPe,"toString");o(dT,"isIterable");$v=new ao(()=>{},()=>Ja),Ja=Object.freeze({done:!0,value:void 0});o(tn,"stream");Cc=class extends ao{static{o(this,"TreeStreamImpl")}constructor(e,r,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[r(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(r(s.value)[Symbol.iterator]()),s}return Ja})}iterator(){let e={state:this.startFn(),next:o(()=>this.nextFn(e.state),"next"),prune:o(()=>{e.state.pruned=!0},"prune"),[Symbol.iterator]:()=>e};return e}};(function(t){function e(a){return a.reduce((s,l)=>s+l,0)}o(e,"sum"),t.sum=e;function r(a){return a.reduce((s,l)=>s*l,0)}o(r,"product"),t.product=r;function n(a){return a.reduce((s,l)=>Math.min(s,l))}o(n,"min"),t.min=n;function i(a){return a.reduce((s,l)=>Math.max(s,l))}o(i,"max"),t.max=i})(Gm||(Gm={}))});var mT={};vr(mT,{DefaultNameRegexp:()=>pT,RangeComparison:()=>Nu,compareRange:()=>Dae,findCommentNode:()=>BD,findDeclarationNodeAtOffset:()=>ZPe,findLeafNodeAtOffset:()=>FD,findLeafNodeBeforeOffset:()=>Nae,flattenCst:()=>QPe,getInteriorNodes:()=>tBe,getNextNode:()=>JPe,getPreviousNode:()=>Mae,getStartlineNode:()=>eBe,inRange:()=>PD,isChildNode:()=>OD,isCommentNode:()=>ID,streamCst:()=>Ud,toDocumentSegment:()=>Hd,tokenToRange:()=>$m});function Ud(t){return new Cc(t,e=>io(e)?e.content:[],{includeRoot:!0})}function QPe(t){return Ud(t).filter(Jh)}function OD(t,e){for(;t.container;)if(t=t.container,t===e)return!0;return!1}function $m(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function Hd(t){if(!t)return;let{offset:e,end:r,range:n}=t;return{range:n,offset:e,end:r,length:r-e}}function Dae(t,e){if(t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>e.end.character)return Nu.After;let r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,n=t.end.lineNu.After}function ZPe(t,e,r=pT){if(t){if(e>0){let n=e-t.offset,i=t.text.charAt(n);r.test(i)||e--}return FD(t,e)}}function BD(t,e){if(t){let r=Mae(t,!0);if(r&&ID(r,e))return r;if(Gv(t)){let n=t.content.findIndex(i=>!i.hidden);for(let i=n-1;i>=0;i--){let a=t.content[i];if(ID(a,e))return a}}}}function ID(t,e){return Jh(t)&&e.includes(t.tokenType.name)}function FD(t,e){if(Jh(t))return t;if(io(t)){let r=Rae(t,e,!1);if(r)return FD(r,e)}}function Nae(t,e){if(Jh(t))return t;if(io(t)){let r=Rae(t,e,!0);if(r)return Nae(r,e)}}function Rae(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){let s=Math.floor((n+i)/2),l=t.content[s];if(l.offset<=e&&l.end>e)return l;l.end<=e?(a=r?l:void 0,n=s+1):i=s-1}return a}function Mae(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t);for(;n>0;){n--;let i=r.content[n];if(e||!i.hidden)return i}t=r}}function JPe(t,e=!0){for(;t.container;){let r=t.container,n=r.content.indexOf(t),i=r.content.length-1;for(;n{"use strict";Yo();Rs();o(Ud,"streamCst");o(QPe,"flattenCst");o(OD,"isChildNode");o($m,"tokenToRange");o(Hd,"toDocumentSegment");(function(t){t[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside"})(Nu||(Nu={}));o(Dae,"compareRange");o(PD,"inRange");pT=/^[\w\p{L}]$/u;o(ZPe,"findDeclarationNodeAtOffset");o(BD,"findCommentNode");o(ID,"isCommentNode");o(FD,"findLeafNodeAtOffset");o(Nae,"findLeafNodeBeforeOffset");o(Rae,"binarySearch");o(Mae,"getPreviousNode");o(JPe,"getNextNode");o(eBe,"getStartlineNode");o(tBe,"getInteriorNodes");o(rBe,"getCommonParent");o(Lae,"getParentChain")});function ef(t){throw new Error("Error! The input value was not handled.")}var Wd,gT=M(()=>{"use strict";Wd=class extends Error{static{o(this,"ErrorWithLocation")}constructor(e,r){super(e?`${r} at ${e.range.start.line}:${e.range.start.character}`:r)}};o(ef,"assertUnreachable")});var Yv={};vr(Yv,{AbstractElement:()=>GD,AbstractRule:()=>Vv,AbstractType:()=>Uv,Action:()=>pN,Alternatives:()=>mN,ArrayLiteral:()=>$D,ArrayType:()=>VD,Assignment:()=>gN,BooleanLiteral:()=>HD,CharacterRange:()=>yN,Condition:()=>yT,Conjunction:()=>YD,CrossReference:()=>xN,Disjunction:()=>XD,EndOfFile:()=>bN,Grammar:()=>KD,GrammarImport:()=>Oae,Group:()=>TN,InferredType:()=>QD,Interface:()=>ZD,Keyword:()=>kN,LangiumGrammarAstReflection:()=>Vm,LangiumGrammarTerminals:()=>nBe,NamedArgument:()=>Pae,NegatedToken:()=>EN,Negation:()=>JD,NumberLiteral:()=>tN,Parameter:()=>rN,ParameterReference:()=>nN,ParserRule:()=>aN,ReferenceType:()=>sN,RegexToken:()=>CN,ReturnType:()=>Bae,RuleCall:()=>_N,SimpleType:()=>cN,StringLiteral:()=>uN,TerminalAlternatives:()=>LN,TerminalGroup:()=>NN,TerminalRule:()=>xT,TerminalRuleCall:()=>MN,Type:()=>hN,TypeAttribute:()=>Fae,TypeDefinition:()=>zD,UnionType:()=>fN,UnorderedGroup:()=>IN,UntilToken:()=>ON,ValueLiteral:()=>vT,Wildcard:()=>BN,isAbstractElement:()=>Hv,isAbstractRule:()=>iBe,isAbstractType:()=>aBe,isAction:()=>Ru,isAlternatives:()=>kT,isArrayLiteral:()=>uBe,isArrayType:()=>UD,isAssignment:()=>Il,isBooleanLiteral:()=>WD,isCharacterRange:()=>vN,isCondition:()=>sBe,isConjunction:()=>qD,isCrossReference:()=>Yd,isDisjunction:()=>jD,isEndOfFile:()=>wN,isFeatureName:()=>oBe,isGrammar:()=>hBe,isGrammarImport:()=>fBe,isGroup:()=>tf,isInferredType:()=>bT,isInterface:()=>wT,isKeyword:()=>Xo,isNamedArgument:()=>dBe,isNegatedToken:()=>SN,isNegation:()=>eN,isNumberLiteral:()=>pBe,isParameter:()=>mBe,isParameterReference:()=>iN,isParserRule:()=>Ma,isPrimitiveType:()=>Iae,isReferenceType:()=>oN,isRegexToken:()=>AN,isReturnType:()=>lN,isRuleCall:()=>Ol,isSimpleType:()=>TT,isStringLiteral:()=>gBe,isTerminalAlternatives:()=>DN,isTerminalGroup:()=>RN,isTerminalRule:()=>qo,isTerminalRuleCall:()=>ET,isType:()=>Wv,isTypeAttribute:()=>yBe,isTypeDefinition:()=>lBe,isUnionType:()=>dN,isUnorderedGroup:()=>ST,isUntilToken:()=>PN,isValueLiteral:()=>cBe,isWildcard:()=>FN,reflection:()=>lr});function iBe(t){return lr.isInstance(t,Vv)}function aBe(t){return lr.isInstance(t,Uv)}function sBe(t){return lr.isInstance(t,yT)}function oBe(t){return Iae(t)||t==="current"||t==="entry"||t==="extends"||t==="false"||t==="fragment"||t==="grammar"||t==="hidden"||t==="import"||t==="interface"||t==="returns"||t==="terminal"||t==="true"||t==="type"||t==="infer"||t==="infers"||t==="with"||typeof t=="string"&&/\^?[_a-zA-Z][\w_]*/.test(t)}function Iae(t){return t==="string"||t==="number"||t==="boolean"||t==="Date"||t==="bigint"}function lBe(t){return lr.isInstance(t,zD)}function cBe(t){return lr.isInstance(t,vT)}function Hv(t){return lr.isInstance(t,GD)}function uBe(t){return lr.isInstance(t,$D)}function UD(t){return lr.isInstance(t,VD)}function WD(t){return lr.isInstance(t,HD)}function qD(t){return lr.isInstance(t,YD)}function jD(t){return lr.isInstance(t,XD)}function hBe(t){return lr.isInstance(t,KD)}function fBe(t){return lr.isInstance(t,Oae)}function bT(t){return lr.isInstance(t,QD)}function wT(t){return lr.isInstance(t,ZD)}function dBe(t){return lr.isInstance(t,Pae)}function eN(t){return lr.isInstance(t,JD)}function pBe(t){return lr.isInstance(t,tN)}function mBe(t){return lr.isInstance(t,rN)}function iN(t){return lr.isInstance(t,nN)}function Ma(t){return lr.isInstance(t,aN)}function oN(t){return lr.isInstance(t,sN)}function lN(t){return lr.isInstance(t,Bae)}function TT(t){return lr.isInstance(t,cN)}function gBe(t){return lr.isInstance(t,uN)}function qo(t){return lr.isInstance(t,xT)}function Wv(t){return lr.isInstance(t,hN)}function yBe(t){return lr.isInstance(t,Fae)}function dN(t){return lr.isInstance(t,fN)}function Ru(t){return lr.isInstance(t,pN)}function kT(t){return lr.isInstance(t,mN)}function Il(t){return lr.isInstance(t,gN)}function vN(t){return lr.isInstance(t,yN)}function Yd(t){return lr.isInstance(t,xN)}function wN(t){return lr.isInstance(t,bN)}function tf(t){return lr.isInstance(t,TN)}function Xo(t){return lr.isInstance(t,kN)}function SN(t){return lr.isInstance(t,EN)}function AN(t){return lr.isInstance(t,CN)}function Ol(t){return lr.isInstance(t,_N)}function DN(t){return lr.isInstance(t,LN)}function RN(t){return lr.isInstance(t,NN)}function ET(t){return lr.isInstance(t,MN)}function ST(t){return lr.isInstance(t,IN)}function PN(t){return lr.isInstance(t,ON)}function FN(t){return lr.isInstance(t,BN)}var nBe,Vv,Uv,yT,zD,vT,GD,$D,VD,HD,YD,XD,KD,Oae,QD,ZD,Pae,JD,tN,rN,nN,aN,sN,Bae,cN,uN,xT,hN,Fae,fN,pN,mN,gN,yN,xN,bN,TN,kN,EN,CN,_N,LN,NN,MN,IN,ON,BN,Vm,lr,Ac=M(()=>{"use strict";Yo();nBe={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},Vv="AbstractRule";o(iBe,"isAbstractRule");Uv="AbstractType";o(aBe,"isAbstractType");yT="Condition";o(sBe,"isCondition");o(oBe,"isFeatureName");o(Iae,"isPrimitiveType");zD="TypeDefinition";o(lBe,"isTypeDefinition");vT="ValueLiteral";o(cBe,"isValueLiteral");GD="AbstractElement";o(Hv,"isAbstractElement");$D="ArrayLiteral";o(uBe,"isArrayLiteral");VD="ArrayType";o(UD,"isArrayType");HD="BooleanLiteral";o(WD,"isBooleanLiteral");YD="Conjunction";o(qD,"isConjunction");XD="Disjunction";o(jD,"isDisjunction");KD="Grammar";o(hBe,"isGrammar");Oae="GrammarImport";o(fBe,"isGrammarImport");QD="InferredType";o(bT,"isInferredType");ZD="Interface";o(wT,"isInterface");Pae="NamedArgument";o(dBe,"isNamedArgument");JD="Negation";o(eN,"isNegation");tN="NumberLiteral";o(pBe,"isNumberLiteral");rN="Parameter";o(mBe,"isParameter");nN="ParameterReference";o(iN,"isParameterReference");aN="ParserRule";o(Ma,"isParserRule");sN="ReferenceType";o(oN,"isReferenceType");Bae="ReturnType";o(lN,"isReturnType");cN="SimpleType";o(TT,"isSimpleType");uN="StringLiteral";o(gBe,"isStringLiteral");xT="TerminalRule";o(qo,"isTerminalRule");hN="Type";o(Wv,"isType");Fae="TypeAttribute";o(yBe,"isTypeAttribute");fN="UnionType";o(dN,"isUnionType");pN="Action";o(Ru,"isAction");mN="Alternatives";o(kT,"isAlternatives");gN="Assignment";o(Il,"isAssignment");yN="CharacterRange";o(vN,"isCharacterRange");xN="CrossReference";o(Yd,"isCrossReference");bN="EndOfFile";o(wN,"isEndOfFile");TN="Group";o(tf,"isGroup");kN="Keyword";o(Xo,"isKeyword");EN="NegatedToken";o(SN,"isNegatedToken");CN="RegexToken";o(AN,"isRegexToken");_N="RuleCall";o(Ol,"isRuleCall");LN="TerminalAlternatives";o(DN,"isTerminalAlternatives");NN="TerminalGroup";o(RN,"isTerminalGroup");MN="TerminalRuleCall";o(ET,"isTerminalRuleCall");IN="UnorderedGroup";o(ST,"isUnorderedGroup");ON="UntilToken";o(PN,"isUntilToken");BN="Wildcard";o(FN,"isWildcard");Vm=class extends $d{static{o(this,"LangiumGrammarAstReflection")}getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(e,r){switch(e){case pN:case mN:case gN:case yN:case xN:case bN:case TN:case kN:case EN:case CN:case _N:case LN:case NN:case MN:case IN:case ON:case BN:return this.isSubtype(GD,r);case $D:case tN:case uN:return this.isSubtype(vT,r);case VD:case sN:case cN:case fN:return this.isSubtype(zD,r);case HD:return this.isSubtype(yT,r)||this.isSubtype(vT,r);case YD:case XD:case JD:case nN:return this.isSubtype(yT,r);case QD:case ZD:case hN:return this.isSubtype(Uv,r);case aN:return this.isSubtype(Vv,r)||this.isSubtype(Uv,r);case xT:return this.isSubtype(Vv,r);default:return!1}}getReferenceType(e){let r=`${e.container.$type}:${e.property}`;switch(r){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return Uv;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return Vv;case"Grammar:usedGrammars":return KD;case"NamedArgument:parameter":case"ParameterReference:parameter":return rN;case"TerminalRuleCall:rule":return xT;default:throw new Error(`${r} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}},lr=new Vm});var AT={};vr(AT,{assignMandatoryProperties:()=>$N,copyAstNode:()=>GN,findLocalReferences:()=>xBe,findRootNode:()=>zae,getContainerOfType:()=>qd,getDocument:()=>Fi,hasContainerOfType:()=>vBe,linkContentToContainer:()=>CT,streamAllContents:()=>_c,streamAst:()=>jo,streamContents:()=>qv,streamReferences:()=>Um});function CT(t){for(let[e,r]of Object.entries(t))e.startsWith("$")||(Array.isArray(r)?r.forEach((n,i)=>{ei(n)&&(n.$container=t,n.$containerProperty=e,n.$containerIndex=i)}):ei(r)&&(r.$container=t,r.$containerProperty=e))}function qd(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function vBe(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Fi(t){let r=zae(t).$document;if(!r)throw new Error("AST node has no document.");return r}function zae(t){for(;t.$container;)t=t.$container;return t}function qv(t,e){if(!t)throw new Error("Node must be an AstNode.");let r=e?.range;return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),n=>{for(;n.keyIndexqv(r,e))}function jo(t,e){if(t){if(e?.range&&!zN(t,e.range))return new Cc(t,()=>[])}else throw new Error("Root node must be an AstNode.");return new Cc(t,r=>qv(r,e),{includeRoot:!0})}function zN(t,e){var r;if(!e)return!0;let n=(r=t.$cstNode)===null||r===void 0?void 0:r.range;return n?PD(n,e):!1}function Um(t){return new ao(()=>({keys:Object.keys(t),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex{Um(n).forEach(i=>{i.reference.ref===t&&r.push(i.reference)})}),tn(r)}function $N(t,e){let r=t.getTypeMetaData(e.$type),n=e;for(let i of r.properties)i.defaultValue!==void 0&&n[i.name]===void 0&&(n[i.name]=Gae(i.defaultValue))}function Gae(t){return Array.isArray(t)?[...t.map(Gae)]:t}function GN(t,e){let r={$type:t.$type};for(let[n,i]of Object.entries(t))if(!n.startsWith("$"))if(ei(i))r[n]=GN(i,e);else if(ma(i))r[n]=e(r,n,i.$refNode,i.$refText);else if(Array.isArray(i)){let a=[];for(let s of i)ei(s)?a.push(GN(s,e)):ma(s)?a.push(e(r,n,s.$refNode,s.$refText)):a.push(s);r[n]=a}else r[n]=i;return CT(r),r}var es=M(()=>{"use strict";Yo();Rs();Ml();o(CT,"linkContentToContainer");o(qd,"getContainerOfType");o(vBe,"hasContainerOfType");o(Fi,"getDocument");o(zae,"findRootNode");o(qv,"streamContents");o(_c,"streamAllContents");o(jo,"streamAst");o(zN,"isAstNodeInRange");o(Um,"streamReferences");o(xBe,"findLocalReferences");o($N,"assignMandatoryProperties");o(Gae,"copyDefaultValue");o(GN,"copyAstNode")});function ar(t){return t.charCodeAt(0)}function _T(t,e){Array.isArray(t)?t.forEach(function(r){e.push(r)}):e.push(t)}function Hm(t,e){if(t[e]===!0)throw"duplicate flag "+e;let r=t[e];t[e]=!0}function Xd(t){if(t===void 0)throw Error("Internal Error - Should never get here!");return!0}function Xv(){throw Error("Internal Error - Should never get here!")}function VN(t){return t.type==="Character"}var UN=M(()=>{"use strict";o(ar,"cc");o(_T,"insertToSet");o(Hm,"addFlag");o(Xd,"ASSERT_EXISTS");o(Xv,"ASSERT_NEVER_REACH_HERE");o(VN,"isCharacter")});var jv,Kv,HN,$ae=M(()=>{"use strict";UN();jv=[];for(let t=ar("0");t<=ar("9");t++)jv.push(t);Kv=[ar("_")].concat(jv);for(let t=ar("a");t<=ar("z");t++)Kv.push(t);for(let t=ar("A");t<=ar("Z");t++)Kv.push(t);HN=[ar(" "),ar("\f"),ar(` +`),ar("\r"),ar(" "),ar("\v"),ar(" "),ar("\xA0"),ar("\u1680"),ar("\u2000"),ar("\u2001"),ar("\u2002"),ar("\u2003"),ar("\u2004"),ar("\u2005"),ar("\u2006"),ar("\u2007"),ar("\u2008"),ar("\u2009"),ar("\u200A"),ar("\u2028"),ar("\u2029"),ar("\u202F"),ar("\u205F"),ar("\u3000"),ar("\uFEFF")]});var bBe,LT,wBe,jd,Vae=M(()=>{"use strict";UN();$ae();bBe=/[0-9a-fA-F]/,LT=/[0-9]/,wBe=/[1-9]/,jd=class{static{o(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let r=this.disjunction();this.consumeChar("/");let n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Hm(n,"global");break;case"i":Hm(n,"ignoreCase");break;case"m":Hm(n,"multiLine");break;case"u":Hm(n,"unicode");break;case"y":Hm(n,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:r,loc:this.loc(0)}}disjunction(){let e=[],r=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(r)}}alternative(){let e=[],r=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(r)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let r;switch(this.popChar()){case"=":r="Lookahead";break;case"!":r="NegativeLookahead";break}Xd(r);let n=this.disjunction();return this.consumeChar(")"),{type:r,value:n,loc:this.loc(e)}}return Xv()}quantifier(e=!1){let r,n=this.idx;switch(this.popChar()){case"*":r={atLeast:0,atMost:1/0};break;case"+":r={atLeast:1,atMost:1/0};break;case"?":r={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":r={atLeast:i,atMost:i};break;case",":let a;this.isDigit()?(a=this.integerIncludingZero(),r={atLeast:i,atMost:a}):r={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&r===void 0)return;Xd(r);break}if(!(e===!0&&r===void 0)&&Xd(r))return this.peekChar(0)==="?"?(this.consumeChar("?"),r.greedy=!1):r.greedy=!0,r.type="Quantifier",r.loc=this.loc(n),r}atom(){let e,r=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Xd(e)?(e.loc=this.loc(r),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):Xv()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[ar(` +`),ar("\r"),ar("\u2028"),ar("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,r=!1;switch(this.popChar()){case"d":e=jv;break;case"D":e=jv,r=!0;break;case"s":e=HN;break;case"S":e=HN,r=!0;break;case"w":e=Kv;break;case"W":e=Kv,r=!0;break}return Xd(e)?{type:"Set",value:e,complement:r}:Xv()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=ar("\f");break;case"n":e=ar(` +`);break;case"r":e=ar("\r");break;case"t":e=ar(" ");break;case"v":e=ar("\v");break}return Xd(e)?{type:"Character",value:e}:Xv()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:ar("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let e=this.popChar();return{type:"Character",value:ar(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let e=this.popChar();return{type:"Character",value:ar(e)}}}characterClass(){let e=[],r=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),r=!0);this.isClassAtom();){let n=this.classAtom(),i=n.type==="Character";if(VN(n)&&this.isRangeDash()){this.consumeChar("-");let a=this.classAtom(),s=a.type==="Character";if(VN(a)){if(a.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}});var Lc,Uae=M(()=>{"use strict";Lc=class{static{o(this,"BaseRegExpVisitor")}visitChildren(e){for(let r in e){let n=e[r];e.hasOwnProperty(r)&&(n.type!==void 0?this.visit(n):Array.isArray(n)&&n.forEach(i=>{this.visit(i)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e);break}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}});var Qv=M(()=>{"use strict";Vae();Uae()});var NT={};vr(NT,{NEWLINE_REGEXP:()=>YN,escapeRegExp:()=>Qd,getCaseInsensitivePattern:()=>XN,getTerminalParts:()=>TBe,isMultilineComment:()=>qN,isWhitespace:()=>DT,partialMatches:()=>jN,partialRegExp:()=>Wae});function TBe(t){try{typeof t!="string"&&(t=t.source),t=`/${t}/`;let e=Hae.pattern(t),r=[];for(let n of e.value.value)Kd.reset(t),Kd.visit(n),r.push({start:Kd.startRegexp,end:Kd.endRegex});return r}catch{return[]}}function qN(t){try{return typeof t=="string"&&(t=new RegExp(t)),t=t.toString(),Kd.reset(t),Kd.visit(Hae.pattern(t)),Kd.multiline}catch{return!1}}function DT(t){return(typeof t=="string"?new RegExp(t):t).test(" ")}function Qd(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function XN(t){return Array.prototype.map.call(t,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:Qd(e)).join("")}function jN(t,e){let r=Wae(t),n=e.match(r);return!!n&&n[0].length>0}function Wae(t){typeof t=="string"&&(t=new RegExp(t));let e=t,r=t.source,n=0;function i(){let a="",s;function l(h){a+=r.substr(n,h),n+=h}o(l,"appendRaw");function u(h){a+="(?:"+r.substr(n,h)+"|$)",n+=h}for(o(u,"appendOptional");n",n)-n+1);break;default:u(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=n,s=s.exec(r)||[],u(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":l(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=n,s=s.exec(r),s?l(s[0].length):u(1);break;case"(":if(r[n+1]==="?")switch(r[n+2]){case":":a+="(?:",n+=3,a+=i()+"|$)";break;case"=":a+="(?=",n+=3,a+=i()+")";break;case"!":s=n,n+=3,i(),a+=r.substr(s,n-s);break;case"<":switch(r[n+3]){case"=":case"!":s=n,n+=4,i(),a+=r.substr(s,n-s);break;default:l(r.indexOf(">",n)-n+1),a+=i()+"|$)";break}break}else l(1),a+=i()+"|$)";break;case")":return++n,a;default:u(1);break}return a}return o(i,"process"),new RegExp(i(),t.flags)}var YN,Hae,WN,Kd,Wm=M(()=>{"use strict";Qv();YN=/\r?\n/gm,Hae=new jd,WN=class extends Lc{static{o(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){let r=String.fromCharCode(e.value);if(!this.multiline&&r===` +`&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=Qd(r);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitSet(e){if(!this.multiline){let r=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(r);this.multiline=!!` +`.match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitChildren(e){e.type==="Group"&&e.quantifier||super.visitChildren(e)}},Kd=new WN;o(TBe,"getTerminalParts");o(qN,"isMultilineComment");o(DT,"isWhitespace");o(Qd,"escapeRegExp");o(XN,"getCaseInsensitivePattern");o(jN,"partialMatches");o(Wae,"partialRegExp")});var MT={};vr(MT,{findAssignment:()=>iR,findNameAssignment:()=>RT,findNodeForKeyword:()=>rR,findNodeForProperty:()=>Jv,findNodesForKeyword:()=>kBe,findNodesForKeywordInternal:()=>nR,findNodesForProperty:()=>eR,getActionAtElement:()=>Kae,getActionType:()=>Zae,getAllReachableRules:()=>Zv,getCrossReferenceTerminal:()=>ZN,getEntryRule:()=>Yae,getExplicitRuleType:()=>aR,getHiddenRules:()=>qae,getRuleType:()=>sR,getTypeName:()=>Zd,isArrayCardinality:()=>SBe,isArrayOperator:()=>CBe,isCommentTerminal:()=>JN,isDataType:()=>ABe,isDataTypeRule:()=>e2,isOptionalCardinality:()=>EBe,terminalRegex:()=>Ym});function Yae(t){return t.rules.find(e=>Ma(e)&&e.entry)}function qae(t){return t.rules.filter(e=>qo(e)&&e.hidden)}function Zv(t,e){let r=new Set,n=Yae(t);if(!n)return new Set(t.rules);let i=[n].concat(qae(t));for(let s of i)Xae(s,r,e);let a=new Set;for(let s of t.rules)(r.has(s.name)||qo(s)&&s.hidden)&&a.add(s);return a}function Xae(t,e,r){e.add(t.name),_c(t).forEach(n=>{if(Ol(n)||r&&ET(n)){let i=n.rule.ref;i&&!e.has(i.name)&&Xae(i,e,r)}})}function ZN(t){if(t.terminal)return t.terminal;if(t.type.ref){let e=RT(t.type.ref);return e?.terminal}}function JN(t){return t.hidden&&!Ym(t).test(" ")}function eR(t,e){return!t||!e?[]:tR(t,e,t.astNode,!0)}function Jv(t,e,r){if(!t||!e)return;let n=tR(t,e,t.astNode,!0);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function tR(t,e,r,n){if(!n){let i=qd(t.grammarSource,Il);if(i&&i.feature===e)return[t]}return io(t)&&t.astNode===r?t.content.flatMap(i=>tR(i,e,r,!1)):[]}function kBe(t,e){return t?nR(t,e,t?.astNode):[]}function rR(t,e,r){if(!t)return;let n=nR(t,e,t?.astNode);if(n.length!==0)return r!==void 0?r=Math.max(0,Math.min(r,n.length-1)):r=0,n[r]}function nR(t,e,r){if(t.astNode!==r)return[];if(Xo(t.grammarSource)&&t.grammarSource.value===e)return[t];let n=Ud(t).iterator(),i,a=[];do if(i=n.next(),!i.done){let s=i.value;s.astNode===r?Xo(s.grammarSource)&&s.grammarSource.value===e&&a.push(s):n.prune()}while(!i.done);return a}function iR(t){var e;let r=t.astNode;for(;r===((e=t.container)===null||e===void 0?void 0:e.astNode);){let n=qd(t.grammarSource,Il);if(n)return n;t=t.container}}function RT(t){let e=t;return bT(e)&&(Ru(e.$container)?e=e.$container.$container:Ma(e.$container)?e=e.$container:ef(e.$container)),jae(t,e,new Map)}function jae(t,e,r){var n;function i(a,s){let l;return qd(a,Il)||(l=jae(s,s,r)),r.set(t,l),l}if(o(i,"go"),r.has(t))return r.get(t);r.set(t,void 0);for(let a of _c(e)){if(Il(a)&&a.feature.toLowerCase()==="name")return r.set(t,a),a;if(Ol(a)&&Ma(a.rule.ref))return i(a,a.rule.ref);if(TT(a)&&(!((n=a.typeRef)===null||n===void 0)&&n.ref))return i(a,a.typeRef.ref)}}function Kae(t){let e=t.$container;if(tf(e)){let r=e.elements,n=r.indexOf(t);for(let i=n-1;i>=0;i--){let a=r[i];if(Ru(a))return a;{let s=_c(r[i]).find(Ru);if(s)return s}}}if(Hv(e))return Kae(e)}function EBe(t,e){return t==="?"||t==="*"||tf(e)&&!!e.guardCondition}function SBe(t){return t==="*"||t==="+"}function CBe(t){return t==="+="}function e2(t){return Qae(t,new Set)}function Qae(t,e){if(e.has(t))return!0;e.add(t);for(let r of _c(t))if(Ol(r)){if(!r.rule.ref||Ma(r.rule.ref)&&!Qae(r.rule.ref,e))return!1}else{if(Il(r))return!1;if(Ru(r))return!1}return!!t.definition}function ABe(t){return QN(t.type,new Set)}function QN(t,e){if(e.has(t))return!0;if(e.add(t),UD(t))return!1;if(oN(t))return!1;if(dN(t))return t.types.every(r=>QN(r,e));if(TT(t)){if(t.primitiveType!==void 0)return!0;if(t.stringType!==void 0)return!0;if(t.typeRef!==void 0){let r=t.typeRef.ref;return Wv(r)?QN(r.type,e):!1}else return!1}else return!1}function aR(t){if(t.inferredType)return t.inferredType.name;if(t.dataType)return t.dataType;if(t.returnType){let e=t.returnType.ref;if(e){if(Ma(e))return e.name;if(wT(e)||Wv(e))return e.name}}}function Zd(t){var e;if(Ma(t))return e2(t)?t.name:(e=aR(t))!==null&&e!==void 0?e:t.name;if(wT(t)||Wv(t)||lN(t))return t.name;if(Ru(t)){let r=Zae(t);if(r)return r}else if(bT(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function Zae(t){var e;if(t.inferredType)return t.inferredType.name;if(!((e=t.type)===null||e===void 0)&&e.ref)return Zd(t.type.ref)}function sR(t){var e,r,n;return qo(t)?(r=(e=t.type)===null||e===void 0?void 0:e.name)!==null&&r!==void 0?r:"string":e2(t)?t.name:(n=aR(t))!==null&&n!==void 0?n:t.name}function Ym(t){let e={s:!1,i:!1,u:!1},r=qm(t.definition,e),n=Object.entries(e).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(r,n)}function qm(t,e){if(DN(t))return _Be(t);if(RN(t))return LBe(t);if(vN(t))return RBe(t);if(ET(t)){let r=t.rule.ref;if(!r)throw new Error("Missing rule reference.");return Mu(qm(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead})}else{if(SN(t))return NBe(t);if(PN(t))return DBe(t);if(AN(t)){let r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),i=t.regex.substring(r+1);return e&&(e.i=i.includes("i"),e.s=i.includes("s"),e.u=i.includes("u")),Mu(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}else{if(FN(t))return Mu(oR,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error(`Invalid terminal element: ${t?.$type}`)}}}function _Be(t){return Mu(t.elements.map(e=>qm(e)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function LBe(t){return Mu(t.elements.map(e=>qm(e)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function DBe(t){return Mu(`${oR}*?${qm(t.terminal)}`,{cardinality:t.cardinality,lookahead:t.lookahead})}function NBe(t){return Mu(`(?!${qm(t.terminal)})${oR}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function RBe(t){return t.right?Mu(`[${KN(t.left)}-${KN(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):Mu(KN(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function KN(t){return Qd(t.value)}function Mu(t,e){var r;return(e.wrap!==!1||e.lookahead)&&(t=`(${(r=e.lookahead)!==null&&r!==void 0?r:""}${t})`),e.cardinality?`${t}${e.cardinality}`:t}var oR,Pl=M(()=>{"use strict";gT();Ac();Yo();es();Ml();Wm();o(Yae,"getEntryRule");o(qae,"getHiddenRules");o(Zv,"getAllReachableRules");o(Xae,"ruleDfs");o(ZN,"getCrossReferenceTerminal");o(JN,"isCommentTerminal");o(eR,"findNodesForProperty");o(Jv,"findNodeForProperty");o(tR,"findNodesForPropertyInternal");o(kBe,"findNodesForKeyword");o(rR,"findNodeForKeyword");o(nR,"findNodesForKeywordInternal");o(iR,"findAssignment");o(RT,"findNameAssignment");o(jae,"findNameAssignmentInternal");o(Kae,"getActionAtElement");o(EBe,"isOptionalCardinality");o(SBe,"isArrayCardinality");o(CBe,"isArrayOperator");o(e2,"isDataTypeRule");o(Qae,"isDataTypeRuleInternal");o(ABe,"isDataType");o(QN,"isDataTypeInternal");o(aR,"getExplicitRuleType");o(Zd,"getTypeName");o(Zae,"getActionType");o(sR,"getRuleType");o(Ym,"terminalRegex");oR=/[\s\S]/.source;o(qm,"abstractElementToRegex");o(_Be,"terminalAlternativesToRegex");o(LBe,"terminalGroupToRegex");o(DBe,"untilTokenToRegex");o(NBe,"negateTokenToRegex");o(RBe,"characterRangeToRegex");o(KN,"keywordToRegex");o(Mu,"withCardinality")});function lR(t){let e=[],r=t.Grammar;for(let n of r.rules)qo(n)&&JN(n)&&qN(Ym(n))&&e.push(n.name);return{multilineCommentRules:e,nameRegexp:pT}}var cR=M(()=>{"use strict";Ml();Pl();Wm();Ac();o(lR,"createGrammarConfig")});var uR=M(()=>{"use strict"});function Xm(t){console&&console.error&&console.error(`Error: ${t}`)}function t2(t){console&&console.warn&&console.warn(`Warning: ${t}`)}var Jae=M(()=>{"use strict";o(Xm,"PRINT_ERROR");o(t2,"PRINT_WARNING")});function r2(t){let e=new Date().getTime(),r=t();return{time:new Date().getTime()-e,value:r}}var ese=M(()=>{"use strict";o(r2,"timer")});function n2(t){function e(){}o(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return o(n,"fakeAccess"),n(),n(),t;(0,eval)(t)}var tse=M(()=>{"use strict";o(n2,"toFastProperties")});var jm=M(()=>{"use strict";Jae();ese();tse()});function MBe(t){return IBe(t)?t.LABEL:t.name}function IBe(t){return gi(t.LABEL)&&t.LABEL!==""}function IT(t){return Je(t,Km)}function Km(t){function e(r){return Je(r,Km)}if(o(e,"convertDefinition"),t instanceof nn){let r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return gi(t.label)&&(r.label=t.label),r}else{if(t instanceof Cn)return{type:"Alternative",definition:e(t.definition)};if(t instanceof an)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof An)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof _n)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Km(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof vn)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Km(new kr({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Lr)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof xn)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof kr){let r={type:"Terminal",name:t.terminalType.name,label:MBe(t.terminalType),idx:t.idx};gi(t.label)&&(r.terminalLabel=t.label);let n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(r.pattern=Vo(n)?n.source:n),r}else{if(t instanceof ts)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}var so,nn,ts,Cn,an,An,_n,Lr,vn,xn,kr,OT=M(()=>{"use strict";Ht();o(MBe,"tokenLabel");o(IBe,"hasTokenLabel");so=class{static{o(this,"AbstractProduction")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),Ce(this.definition,r=>{r.accept(e)})}},nn=class extends so{static{o(this,"NonTerminal")}constructor(e){super([]),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}set definition(e){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(e){e.visit(this)}},ts=class extends so{static{o(this,"Rule")}constructor(e){super(e.definition),this.orgText="",ha(this,Ds(e,r=>r!==void 0))}},Cn=class extends so{static{o(this,"Alternative")}constructor(e){super(e.definition),this.ignoreAmbiguities=!1,ha(this,Ds(e,r=>r!==void 0))}},an=class extends so{static{o(this,"Option")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},An=class extends so{static{o(this,"RepetitionMandatory")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},_n=class extends so{static{o(this,"RepetitionMandatoryWithSeparator")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},Lr=class extends so{static{o(this,"Repetition")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},vn=class extends so{static{o(this,"RepetitionWithSeparator")}constructor(e){super(e.definition),this.idx=1,ha(this,Ds(e,r=>r!==void 0))}},xn=class extends so{static{o(this,"Alternation")}get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,ha(this,Ds(e,r=>r!==void 0))}},kr=class{static{o(this,"Terminal")}constructor(e){this.idx=1,ha(this,Ds(e,r=>r!==void 0))}accept(e){e.visit(this)}};o(IT,"serializeGrammar");o(Km,"serializeProduction")});var rs,rse=M(()=>{"use strict";OT();rs=class{static{o(this,"GAstVisitor")}visit(e){let r=e;switch(r.constructor){case nn:return this.visitNonTerminal(r);case Cn:return this.visitAlternative(r);case an:return this.visitOption(r);case An:return this.visitRepetitionMandatory(r);case _n:return this.visitRepetitionMandatoryWithSeparator(r);case vn:return this.visitRepetitionWithSeparator(r);case Lr:return this.visitRepetition(r);case xn:return this.visitAlternation(r);case kr:return this.visitTerminal(r);case ts:return this.visitRule(r);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}});function hR(t){return t instanceof Cn||t instanceof an||t instanceof Lr||t instanceof An||t instanceof _n||t instanceof vn||t instanceof kr||t instanceof ts}function Jd(t,e=[]){return t instanceof an||t instanceof Lr||t instanceof vn?!0:t instanceof xn?Rv(t.definition,n=>Jd(n,e)):t instanceof nn&&Hn(e,t)?!1:t instanceof so?(t instanceof nn&&e.push(t),Ra(t.definition,n=>Jd(n,e))):!1}function fR(t){return t instanceof xn}function Ms(t){if(t instanceof nn)return"SUBRULE";if(t instanceof an)return"OPTION";if(t instanceof xn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof vn)return"MANY_SEP";if(t instanceof Lr)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}var nse=M(()=>{"use strict";Ht();OT();o(hR,"isSequenceProd");o(Jd,"isOptionalProd");o(fR,"isBranchingProd");o(Ms,"getProductionDslName")});var ns=M(()=>{"use strict";OT();rse();nse()});function ise(t,e,r){return[new an({definition:[new kr({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Iu,PT=M(()=>{"use strict";Ht();ns();Iu=class{static{o(this,"RestWalker")}walk(e,r=[]){Ce(e.definition,(n,i)=>{let a=mi(e.definition,i+1);if(n instanceof nn)this.walkProdRef(n,a,r);else if(n instanceof kr)this.walkTerminal(n,a,r);else if(n instanceof Cn)this.walkFlat(n,a,r);else if(n instanceof an)this.walkOption(n,a,r);else if(n instanceof An)this.walkAtLeastOne(n,a,r);else if(n instanceof _n)this.walkAtLeastOneSep(n,a,r);else if(n instanceof vn)this.walkManySep(n,a,r);else if(n instanceof Lr)this.walkMany(n,a,r);else if(n instanceof xn)this.walkOr(n,a,r);else throw Error("non exhaustive match")})}walkTerminal(e,r,n){}walkProdRef(e,r,n){}walkFlat(e,r,n){let i=r.concat(n);this.walk(e,i)}walkOption(e,r,n){let i=r.concat(n);this.walk(e,i)}walkAtLeastOne(e,r,n){let i=[new an({definition:e.definition})].concat(r,n);this.walk(e,i)}walkAtLeastOneSep(e,r,n){let i=ise(e,r,n);this.walk(e,i)}walkMany(e,r,n){let i=[new an({definition:e.definition})].concat(r,n);this.walk(e,i)}walkManySep(e,r,n){let i=ise(e,r,n);this.walk(e,i)}walkOr(e,r,n){let i=r.concat(n);Ce(e.definition,a=>{let s=new Cn({definition:[a]});this.walk(s,i)})}};o(ise,"restForRepetitionWithSeparator")});function e0(t){if(t instanceof nn)return e0(t.referencedRule);if(t instanceof kr)return BBe(t);if(hR(t))return OBe(t);if(fR(t))return PBe(t);throw Error("non exhaustive match")}function OBe(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=Jd(a),e=e.concat(e0(a)),n=n+1,i=r.length>n;return Om(e)}function PBe(t){let e=Je(t.definition,r=>e0(r));return Om(Wr(e))}function BBe(t){return[t.terminalType]}var dR=M(()=>{"use strict";Ht();ns();o(e0,"first");o(OBe,"firstForSequence");o(PBe,"firstForBranching");o(BBe,"firstForTerminal")});var BT,pR=M(()=>{"use strict";BT="_~IN~_"});function ase(t){let e={};return Ce(t,r=>{let n=new mR(r).startWalking();ha(e,n)}),e}function FBe(t,e){return t.name+e+BT}var mR,sse=M(()=>{"use strict";PT();dR();Ht();pR();ns();mR=class extends Iu{static{o(this,"ResyncFollowsWalker")}constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,r,n){}walkProdRef(e,r,n){let i=FBe(e.referencedRule,e.idx)+this.topProd.name,a=r.concat(n),s=new Cn({definition:a}),l=e0(s);this.follows[i]=l}};o(ase,"computeAllProdsFollows");o(FBe,"buildBetweenProdsFollowPrefix")});function Qm(t){let e=t.toString();if(FT.hasOwnProperty(e))return FT[e];{let r=zBe.pattern(e);return FT[e]=r,r}}function ose(){FT={}}var FT,zBe,zT=M(()=>{"use strict";Qv();FT={},zBe=new jd;o(Qm,"getRegExpAst");o(ose,"clearRegExpParserCache")});function use(t,e=!1){try{let r=Qm(t);return gR(r.value,{},r.flags.ignoreCase)}catch(r){if(r.message===cse)e&&t2(`${i2} Unable to optimize: < ${t.toString()} > + Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Xm(`${i2} + Failed parsing: < ${t.toString()} > + Using the @chevrotain/regexp-to-ast library + Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function gR(t,e,r){switch(t.type){case"Disjunction":for(let i=0;i{if(typeof u=="number")GT(u,e,r);else{let h=u;if(r===!0)for(let f=h.from;f<=h.to;f++)GT(f,e,r);else{for(let f=h.from;f<=h.to&&f=Zm){let f=h.from>=Zm?h.from:Zm,d=h.to,p=Dc(f),m=Dc(d);for(let g=p;g<=m;g++)e[g]=g}}}});break;case"Group":gR(s.value,e,r);break;default:throw Error("Non Exhaustive Match")}let l=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&yR(s)===!1||s.type!=="Group"&&l===!1)break}break;default:throw Error("non exhaustive match!")}return br(e)}function GT(t,e,r){let n=Dc(t);e[n]=n,r===!0&&GBe(t,e)}function GBe(t,e){let r=String.fromCharCode(t),n=r.toUpperCase();if(n!==r){let i=Dc(n.charCodeAt(0));e[i]=i}else{let i=r.toLowerCase();if(i!==r){let a=Dc(i.charCodeAt(0));e[a]=a}}}function lse(t,e){return Za(t.value,r=>{if(typeof r=="number")return Hn(e,r);{let n=r;return Za(e,i=>n.from<=i&&i<=n.to)!==void 0}})}function yR(t){let e=t.quantifier;return e&&e.atLeast===0?!0:t.value?Mt(t.value)?Ra(t.value,yR):yR(t.value):!1}function $T(t,e){if(e instanceof RegExp){let r=Qm(e),n=new vR(t);return n.visit(r),n.found}else return Za(e,r=>Hn(t,r.charCodeAt(0)))!==void 0}var cse,i2,vR,hse=M(()=>{"use strict";Qv();Ht();jm();zT();xR();cse="Complement Sets are not supported for first char optimization",i2=`Unable to use "first char" lexer optimizations: +`;o(use,"getOptimizedStartCodesIndices");o(gR,"firstCharOptimizedIndices");o(GT,"addOptimizedIdxToResult");o(GBe,"handleIgnoreCase");o(lse,"findCode");o(yR,"isWholeOptional");vR=class extends Lc{static{o(this,"CharCodeFinder")}constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(this.found!==!0){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return}super.visitChildren(e)}}visitCharacter(e){Hn(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?lse(e,this.targetCharCodes)===void 0&&(this.found=!0):lse(e,this.targetCharCodes)!==void 0&&(this.found=!0)}};o($T,"canMatchCharCode")});function pse(t,e){e=qh(e,{useSticky:wR,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:o((b,w)=>w(),"tracer")});let r=e.tracer;r("initCharCodeToOptimizedIndexMap",()=>{iFe()});let n;r("Reject Lexer.NA",()=>{n=jh(t,b=>b[t0]===oi.NA)});let i=!1,a;r("Transform Patterns",()=>{i=!1,a=Je(n,b=>{let w=b[t0];if(Vo(w)){let _=w.source;return _.length===1&&_!=="^"&&_!=="$"&&_!=="."&&!w.ignoreCase?_:_.length===2&&_[0]==="\\"&&!Hn(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],_[1])?_[1]:e.useSticky?dse(w):fse(w)}else{if(Ei(w))return i=!0,{exec:w};if(typeof w=="object")return i=!0,w;if(typeof w=="string"){if(w.length===1)return w;{let _=w.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(_);return e.useSticky?dse(T):fse(T)}}else throw Error("non exhaustive match")}})});let s,l,u,h,f;r("misc mapping",()=>{s=Je(n,b=>b.tokenTypeIdx),l=Je(n,b=>{let w=b.GROUP;if(w!==oi.SKIPPED){if(gi(w))return w;if(dr(w))return!1;throw Error("non exhaustive match")}}),u=Je(n,b=>{let w=b.LONGER_ALT;if(w)return Mt(w)?Je(w,T=>jw(n,T)):[jw(n,w)]}),h=Je(n,b=>b.PUSH_MODE),f=Je(n,b=>It(b,"POP_MODE"))});let d;r("Line Terminator Handling",()=>{let b=Tse(e.lineTerminatorCharacters);d=Je(n,w=>!1),e.positionTracking!=="onlyOffset"&&(d=Je(n,w=>It(w,"LINE_BREAKS")?!!w.LINE_BREAKS:wse(w,b)===!1&&$T(b,w.PATTERN)))});let p,m,g,y;r("Misc Mapping #2",()=>{p=Je(n,xse),m=Je(a,rFe),g=qr(n,(b,w)=>{let _=w.GROUP;return gi(_)&&_!==oi.SKIPPED&&(b[_]=[]),b},{}),y=Je(a,(b,w)=>({pattern:a[w],longerAlt:u[w],canLineTerminator:d[w],isCustom:p[w],short:m[w],group:l[w],push:h[w],pop:f[w],tokenTypeIdx:s[w],tokenType:n[w]}))});let v=!0,x=[];return e.safeMode||r("First Char Optimization",()=>{x=qr(n,(b,w,_)=>{if(typeof w.PATTERN=="string"){let T=w.PATTERN.charCodeAt(0),E=Dc(T);bR(b,E,y[_])}else if(Mt(w.START_CHARS_HINT)){let T;Ce(w.START_CHARS_HINT,E=>{let L=typeof E=="string"?E.charCodeAt(0):E,C=Dc(L);T!==C&&(T=C,bR(b,C,y[_]))})}else if(Vo(w.PATTERN))if(w.PATTERN.unicode)v=!1,e.ensureOptimizations&&Xm(`${i2} Unable to analyze < ${w.PATTERN.toString()} > pattern. + The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=use(w.PATTERN,e.ensureOptimizations);cr(T)&&(v=!1),Ce(T,E=>{bR(b,E,y[_])})}else e.ensureOptimizations&&Xm(`${i2} TokenType: <${w.name}> is using a custom token pattern without providing parameter. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),v=!1;return b},[])}),{emptyGroups:g,patternIdxToConfig:y,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:v}}function mse(t,e){let r=[],n=VBe(t);r=r.concat(n.errors);let i=UBe(n.valid),a=i.valid;return r=r.concat(i.errors),r=r.concat($Be(a)),r=r.concat(QBe(a)),r=r.concat(ZBe(a,e)),r=r.concat(JBe(a)),r}function $Be(t){let e=[],r=Yr(t,n=>Vo(n[t0]));return e=e.concat(WBe(r)),e=e.concat(XBe(r)),e=e.concat(jBe(r)),e=e.concat(KBe(r)),e=e.concat(YBe(r)),e}function VBe(t){let e=Yr(t,i=>!It(i,t0)),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:Wn.MISSING_PATTERN,tokenTypes:[i]})),n=Xh(t,e);return{errors:r,valid:n}}function UBe(t){let e=Yr(t,i=>{let a=i[t0];return!Vo(a)&&!Ei(a)&&!It(a,"exec")&&!gi(a)}),r=Je(e,i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Wn.INVALID_PATTERN,tokenTypes:[i]})),n=Xh(t,e);return{errors:r,valid:n}}function WBe(t){class e extends Lc{static{o(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Qm(a),l=new e;return l.visit(s),l.found}catch{return HBe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Wn.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function YBe(t){let e=Yr(t,n=>n.PATTERN.test(""));return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' must not match an empty string",type:Wn.EMPTY_MATCH_PATTERN,tokenTypes:[n]}))}function XBe(t){class e extends Lc{static{o(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(a){this.found=!0}}let r=Yr(t,i=>{let a=i.PATTERN;try{let s=Qm(a),l=new e;return l.visit(s),l.found}catch{return qBe.test(a.source)}});return Je(r,i=>({message:`Unexpected RegExp Anchor Error: + Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Wn.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function jBe(t){let e=Yr(t,n=>{let i=n[t0];return i instanceof RegExp&&(i.multiline||i.global)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Wn.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[n]}))}function KBe(t){let e=[],r=Je(t,a=>qr(t,(s,l)=>(a.PATTERN.source===l.PATTERN.source&&!Hn(e,l)&&l.PATTERN!==oi.NA&&(e.push(l),s.push(l)),s),[]));r=Tc(r);let n=Yr(r,a=>a.length>1);return Je(n,a=>{let s=Je(a,u=>u.name);return{message:`The same RegExp pattern ->${ra(a).PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:Wn.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}})}function QBe(t){let e=Yr(t,n=>{if(!It(n,"GROUP"))return!1;let i=n.GROUP;return i!==oi.SKIPPED&&i!==oi.NA&&!gi(i)});return Je(e,n=>({message:"Token Type: ->"+n.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Wn.INVALID_GROUP_TYPE_FOUND,tokenTypes:[n]}))}function ZBe(t,e){let r=Yr(t,i=>i.PUSH_MODE!==void 0&&!Hn(e,i.PUSH_MODE));return Je(r,i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:Wn.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function JBe(t){let e=[],r=qr(t,(n,i,a)=>{let s=i.PATTERN;return s===oi.NA||(gi(s)?n.push({str:s,idx:a,tokenType:i}):Vo(s)&&tFe(s)&&n.push({str:s.source,idx:a,tokenType:i})),n},[]);return Ce(t,(n,i)=>{Ce(r,({str:a,idx:s,tokenType:l})=>{if(i${l.name}<- can never be matched. +Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:Wn.UNREACHABLE_PATTERN,tokenTypes:[n,l]})}})}),e}function eFe(t,e){if(Vo(e)){let r=e.exec(t);return r!==null&&r.index===0}else{if(Ei(e))return e(t,0,[],{});if(It(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function tFe(t){return Za([".","\\","[","]","|","^","$","(",")","?","*","+","{"],r=>t.source.indexOf(r)!==-1)===void 0}function fse(t){let e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function dse(t){let e=t.ignoreCase?"iy":"y";return new RegExp(`${t.source}`,e)}function gse(t,e,r){let n=[];return It(t,Jm)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+Jm+`> property in its definition +`,type:Wn.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),It(t,VT)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+VT+`> property in its definition +`,type:Wn.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),It(t,VT)&&It(t,Jm)&&!It(t.modes,t.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${Jm}: <${t.defaultMode}>which does not exist +`,type:Wn.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),It(t,VT)&&Ce(t.modes,(i,a)=>{Ce(i,(s,l)=>{if(dr(s))n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${a}> at index: <${l}> +`,type:Wn.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if(It(s,"LONGER_ALT")){let u=Mt(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT];Ce(u,h=>{!dr(h)&&!Hn(i,h)&&n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${h.name}> on token <${s.name}> outside of mode <${a}> +`,type:Wn.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),n}function yse(t,e,r){let n=[],i=!1,a=Tc(Wr(br(t.modes))),s=jh(a,u=>u[t0]===oi.NA),l=Tse(r);return e&&Ce(s,u=>{let h=wse(u,l);if(h!==!1){let d={message:nFe(u,h),type:h.issue,tokenType:u};n.push(d)}else It(u,"LINE_BREAKS")?u.LINE_BREAKS===!0&&(i=!0):$T(l,u.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Wn.NO_LINE_BREAKS_FLAGS}),n}function vse(t){let e={},r=zr(t);return Ce(r,n=>{let i=t[n];if(Mt(i))e[n]=[];else throw Error("non exhaustive match")}),e}function xse(t){let e=t.PATTERN;if(Vo(e))return!1;if(Ei(e))return!0;if(It(e,"exec"))return!0;if(gi(e))return!1;throw Error("non exhaustive match")}function rFe(t){return gi(t)&&t.length===1?t.charCodeAt(0):!1}function wse(t,e){if(It(t,"LINE_BREAKS"))return!1;if(Vo(t.PATTERN)){try{$T(e,t.PATTERN)}catch(r){return{issue:Wn.IDENTIFY_TERMINATOR,errMsg:r.message}}return!1}else{if(gi(t.PATTERN))return!1;if(xse(t))return{issue:Wn.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function nFe(t,e){if(e.issue===Wn.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. + The problem is in the <${t.name}> Token Type + Root cause: ${e.errMsg}. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Wn.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. + The problem is in the <${t.name}> Token Type + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Tse(t){return Je(t,r=>gi(r)?r.charCodeAt(0):r)}function bR(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}function Dc(t){return t255?255+~~(t/255):t}}var t0,Jm,VT,wR,HBe,qBe,bse,Zm,UT,xR=M(()=>{"use strict";Qv();a2();Ht();jm();hse();zT();t0="PATTERN",Jm="defaultMode",VT="modes",wR=typeof new RegExp("(?:)").sticky=="boolean";o(pse,"analyzeTokenTypes");o(mse,"validatePatterns");o($Be,"validateRegExpPattern");o(VBe,"findMissingPatterns");o(UBe,"findInvalidPatterns");HBe=/[^\\][$]/;o(WBe,"findEndOfInputAnchor");o(YBe,"findEmptyMatchRegExps");qBe=/[^\\[][\^]|^\^/;o(XBe,"findStartOfInputAnchor");o(jBe,"findUnsupportedFlags");o(KBe,"findDuplicatePatterns");o(QBe,"findInvalidGroupType");o(ZBe,"findModesThatDoNotExist");o(JBe,"findUnreachablePatterns");o(eFe,"testTokenType");o(tFe,"noMetaChar");o(fse,"addStartOfInput");o(dse,"addStickyFlag");o(gse,"performRuntimeChecks");o(yse,"performWarningRuntimeChecks");o(vse,"cloneEmptyGroups");o(xse,"isCustomPattern");o(rFe,"isShortPattern");bse={test:o(function(t){let e=t.length;for(let r=this.lastIndex;r{r.isParent=r.categoryMatches.length>0})}function aFe(t){let e=rn(t),r=t,n=!0;for(;n;){r=Tc(Wr(Je(r,a=>a.CATEGORIES)));let i=Xh(r,e);e=e.concat(i),cr(i)?n=!1:r=i}return e}function sFe(t){Ce(t,e=>{TR(e)||(Sse[kse]=e,e.tokenTypeIdx=kse++),Ese(e)&&!Mt(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ese(e)||(e.CATEGORIES=[]),cFe(e)||(e.categoryMatches=[]),uFe(e)||(e.categoryMatchesMap={})})}function oFe(t){Ce(t,e=>{e.categoryMatches=[],Ce(e.categoryMatchesMap,(r,n)=>{e.categoryMatches.push(Sse[n].tokenTypeIdx)})})}function lFe(t){Ce(t,e=>{Cse([],e)})}function Cse(t,e){Ce(t,r=>{e.categoryMatchesMap[r.tokenTypeIdx]=!0}),Ce(e.CATEGORIES,r=>{let n=t.concat(e);Hn(n,r)||Cse(n,r)})}function TR(t){return It(t,"tokenTypeIdx")}function Ese(t){return It(t,"CATEGORIES")}function cFe(t){return It(t,"categoryMatches")}function uFe(t){return It(t,"categoryMatchesMap")}function Ase(t){return It(t,"tokenTypeIdx")}var kse,Sse,r0=M(()=>{"use strict";Ht();o(Ou,"tokenStructuredMatcher");o(eg,"tokenStructuredMatcherNoCategories");kse=1,Sse={};o(Pu,"augmentTokenTypes");o(aFe,"expandCategories");o(sFe,"assignTokenDefaultProps");o(oFe,"assignCategoriesTokensProp");o(lFe,"assignCategoriesMapProp");o(Cse,"singleAssignCategoriesToksMap");o(TR,"hasShortKeyProperty");o(Ese,"hasCategoriesProperty");o(cFe,"hasExtendingTokensTypesProperty");o(uFe,"hasExtendingTokensTypesMapProperty");o(Ase,"isTokenType")});var kR,ER=M(()=>{"use strict";kR={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}});var Wn,s2,oi,a2=M(()=>{"use strict";xR();Ht();jm();r0();ER();zT();(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(Wn||(Wn={}));s2={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:kR,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(s2);oi=class{static{o(this,"Lexer")}constructor(e,r=s2){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,a)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${i}>`);let{time:l,value:u}=r2(a),h=l>10?console.warn:console.log;return this.traceInitIndent time: ${l}ms`),this.traceInitIndent--,u}else return a()},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=ha({},s2,r);let n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,a=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===s2.lineTerminatorsPattern)this.config.lineTerminatorsPattern=bse;else if(this.config.lineTerminatorCharacters===s2.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Mt(e)?i={modes:{defaultMode:rn(e)},defaultMode:Jm}:(a=!1,i=rn(e))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(gse(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(yse(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Ce(i.modes,(l,u)=>{i.modes[u]=jh(l,h=>dr(h))});let s=zr(i.modes);if(Ce(i.modes,(l,u)=>{this.TRACE_INIT(`Mode: <${u}> processing`,()=>{if(this.modes.push(u),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(mse(l,s))}),cr(this.lexerDefinitionErrors)){Pu(l);let h;this.TRACE_INIT("analyzeTokenTypes",()=>{h=pse(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[u]=h.patternIdxToConfig,this.charCodeToPatternIdxToConfig[u]=h.charCodeToPatternIdxToConfig,this.emptyGroups=ha({},this.emptyGroups,h.emptyGroups),this.hasCustom=h.hasCustom||this.hasCustom,this.canModeBeOptimized[u]=h.canBeOptimized}})}),this.defaultMode=i.defaultMode,!cr(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){let u=Je(this.lexerDefinitionErrors,h=>h.message).join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+u)}Ce(this.lexerDefinitionWarning,l=>{t2(l.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(wR?(this.chopInput=ta,this.match=this.matchWithTest):(this.updateLastIndex=Jn,this.match=this.matchWithExec),a&&(this.handleModes=Jn),this.trackStartLines===!1&&(this.computeNewColumn=ta),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=Jn),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let l=qr(this.canModeBeOptimized,(u,h,f)=>(h===!1&&u.push(f),u),[]);if(r.ensureOptimizations&&!cr(l))throw Error(`Lexer Modes: < ${l.join(", ")} > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{ose()}),this.TRACE_INIT("toFastProperties",()=>{n2(this)})})}tokenize(e,r=this.defaultMode){if(!cr(this.lexerDefinitionErrors)){let i=Je(this.lexerDefinitionErrors,a=>a.message).join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+i)}return this.tokenizeInternal(e,r)}tokenizeInternal(e,r){let n,i,a,s,l,u,h,f,d,p,m,g,y,v,x,b,w=e,_=w.length,T=0,E=0,L=this.hasCustom?0:Math.floor(e.length/10),C=new Array(L),A=[],I=this.trackStartLines?1:void 0,D=this.trackStartLines?1:void 0,k=vse(this.emptyGroups),R=this.trackStartLines,S=this.config.lineTerminatorsPattern,O=0,N=[],P=[],F=[],B=[];Object.freeze(B);let $;function z(){return N}o(z,"getPossiblePatternsSlow");function W(ee){let J=Dc(ee),H=P[J];return H===void 0?B:H}o(W,"getPossiblePatternsOptimized");let j=o(ee=>{if(F.length===1&&ee.tokenType.PUSH_MODE===void 0){let J=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(ee);A.push({offset:ee.startOffset,line:ee.startLine,column:ee.startColumn,length:ee.image.length,message:J})}else{F.pop();let J=fa(F);N=this.patternIdxToConfig[J],P=this.charCodeToPatternIdxToConfig[J],O=N.length;let H=this.canModeBeOptimized[J]&&this.config.safeMode===!1;P&&H?$=W:$=z}},"pop_mode");function K(ee){F.push(ee),P=this.charCodeToPatternIdxToConfig[ee],N=this.patternIdxToConfig[ee],O=N.length,O=N.length;let J=this.canModeBeOptimized[ee]&&this.config.safeMode===!1;P&&J?$=W:$=z}o(K,"push_mode"),K.call(this,r);let ie,Q=this.config.recoveryEnabled;for(;T<_;){u=null;let ee=w.charCodeAt(T),J=$(ee),H=J.length;for(n=0;nu.length){u=s,h=f,ie=ue;break}}}break}}if(u!==null){if(d=u.length,p=ie.group,p!==void 0&&(m=ie.tokenTypeIdx,g=this.createTokenInstance(u,T,m,ie.tokenType,I,D,d),this.handlePayload(g,h),p===!1?E=this.addToken(C,E,g):k[p].push(g)),e=this.chopInput(e,d),T=T+d,D=this.computeNewColumn(D,d),R===!0&&ie.canLineTerminator===!0){let q=0,Z,ae;S.lastIndex=0;do Z=S.test(u),Z===!0&&(ae=S.lastIndex-1,q++);while(Z===!0);q!==0&&(I=I+q,D=d-ae,this.updateTokenEndLineColumnLocation(g,p,ae,q,I,D,d))}this.handleModes(ie,j,K,g)}else{let q=T,Z=I,ae=D,ue=Q===!1;for(;ue===!1&&T<_;)for(e=this.chopInput(e,1),T++,i=0;i{"use strict";Ht();a2();r0();o(Bu,"tokenLabel");o(SR,"hasTokenLabel");hFe="parent",_se="categories",Lse="label",Dse="group",Nse="push_mode",Rse="pop_mode",Mse="longer_alt",Ise="line_breaks",Ose="start_chars_hint";o(HT,"createToken");o(fFe,"createTokenInternal");oo=HT({name:"EOF",pattern:oi.NA});Pu([oo]);o(n0,"createTokenInstance");o(o2,"tokenMatcher")});var Fu,Pse,Bl,tg=M(()=>{"use strict";i0();Ht();ns();Fu={buildMismatchTokenMessage({expected:t,actual:e,previous:r,ruleName:n}){return`Expecting ${SR(t)?`--> ${Bu(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t,ruleName:e}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,previous:r,customUserDescription:n,ruleName:i}){let a="Expecting: ",l=` +but found: '`+ra(e).image+"'";if(n)return a+n+l;{let u=qr(t,(p,m)=>p.concat(m),[]),h=Je(u,p=>`[${Je(p,m=>Bu(m)).join(", ")}]`),d=`one of these possible Token sequences: +${Je(h,(p,m)=>` ${m+1}. ${p}`).join(` +`)}`;return a+d+l}},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r,ruleName:n}){let i="Expecting: ",s=` +but found: '`+ra(e).image+"'";if(r)return i+r+s;{let u=`expecting at least one iteration which starts with one of these possible Token sequences:: + <${Je(t,h=>`[${Je(h,f=>Bu(f)).join(",")}]`).join(" ,")}>`;return i+u+s}}};Object.freeze(Fu);Pse={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+t.name+"<-"}},Bl={buildDuplicateFoundError(t,e){function r(f){return f instanceof kr?f.terminalType.name:f instanceof nn?f.nonTerminalName:""}o(r,"getExtraProductionArgument");let n=t.name,i=ra(e),a=i.idx,s=Ms(i),l=r(i),u=a>0,h=`->${s}${u?a:""}<- ${l?`with argument: ->${l}<-`:""} + appears more than once (${e.length} times) in the top level rule: ->${n}<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return h=h.replace(/[ \t]+/g," "),h=h.replace(/\s\s+/g,` +`),h},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. +The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. +To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){let e=Je(t.prefixPath,i=>Bu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix +in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`},buildAlternationAmbiguityError(t){let e=Je(t.prefixPath,i=>Bu(i)).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n},buildEmptyRepetitionError(t){let e=Ms(t.repetition);return t.repetition.idx!==0&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. +This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. +Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: + inside <${t.topLevelRule.name}> Rule. + has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){let e=t.topLevelRule.name,r=Je(t.leftRecursionPath,a=>a.name),n=`${e} --> ${r.concat([e]).join(" --> ")}`;return`Left Recursion found in grammar. +rule: <${e}> can be invoked from itself (directly or indirectly) +without consuming any Tokens. The grammar path that causes this is: + ${n} + To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){let e;return t.topLevelRule instanceof ts?e=t.topLevelRule.name:e=t.topLevelRule,`Duplicate definition, rule: ->${e}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function Bse(t,e){let r=new CR(t,e);return r.resolveRefs(),r.errors}var CR,Fse=M(()=>{"use strict";Is();Ht();ns();o(Bse,"resolveGrammar");CR=class extends rs{static{o(this,"GastRefResolverVisitor")}constructor(e,r){super(),this.nameToTopRule=e,this.errMsgProvider=r,this.errors=[]}resolveRefs(){Ce(br(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){let r=this.nameToTopRule[e.nonTerminalName];if(r)e.referencedRule=r;else{let n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:n,type:zi.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}});function XT(t,e,r=[]){r=rn(r);let n=[],i=0;function a(l){return l.concat(mi(t,i+1))}o(a,"remainingPathWith");function s(l){let u=XT(a(l),e,r);return n.concat(u)}for(o(s,"getAlternativesForProd");r.length{cr(u.definition)===!1&&(n=s(u.definition))}),n;if(l instanceof kr)r.push(l.terminalType);else throw Error("non exhaustive match")}i++}return n.push({partialPath:r,suffixDef:mi(t,i)}),n}function jT(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",l=!1,u=e.length,h=u-n-1,f=[],d=[];for(d.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!cr(d);){let p=d.pop();if(p===s){l&&fa(d).idx<=h&&d.pop();continue}let m=p.def,g=p.idx,y=p.ruleStack,v=p.occurrenceStack;if(cr(m))continue;let x=m[0];if(x===i){let b={idx:g,def:mi(m),ruleStack:Lu(y),occurrenceStack:Lu(v)};d.push(b)}else if(x instanceof kr)if(g=0;b--){let w=x.definition[b],_={idx:g,def:w.definition.concat(mi(m)),ruleStack:y,occurrenceStack:v};d.push(_),d.push(s)}else if(x instanceof Cn)d.push({idx:g,def:x.definition.concat(mi(m)),ruleStack:y,occurrenceStack:v});else if(x instanceof ts)d.push(dFe(x,g,y,v));else throw Error("non exhaustive match")}return f}function dFe(t,e,r,n){let i=rn(r);i.push(t.name);let a=rn(n);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var AR,WT,rg,YT,l2,qT,c2,u2=M(()=>{"use strict";Ht();dR();PT();ns();AR=class extends Iu{static{o(this,"AbstractNextPossibleTokensWalker")}constructor(e,r){super(),this.topProd=e,this.path=r,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=rn(this.path.ruleStack).reverse(),this.occurrenceStack=rn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,r=[]){this.found||super.walk(e,r)}walkProdRef(e,r,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){let i=r.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,i)}}updateExpectedNext(){cr(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},WT=class extends AR{static{o(this,"NextAfterTokenWalker")}constructor(e,r){super(e,r),this.path=r,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,r,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){let i=r.concat(n),a=new Cn({definition:i});this.possibleTokTypes=e0(a),this.found=!0}}},rg=class extends Iu{static{o(this,"AbstractNextTerminalAfterProductionWalker")}constructor(e,r){super(),this.topRule=e,this.occurrence=r,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},YT=class extends rg{static{o(this,"NextTerminalAfterManyWalker")}walkMany(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(e,r,n)}},l2=class extends rg{static{o(this,"NextTerminalAfterManySepWalker")}walkManySep(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(e,r,n)}},qT=class extends rg{static{o(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(e,r,n)}},c2=class extends rg{static{o(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(e,r,n){if(e.idx===this.occurrence){let i=ra(r.concat(n));this.result.isEndOfRule=i===void 0,i instanceof kr&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(e,r,n)}};o(XT,"possiblePathsFrom");o(jT,"nextPossibleTokensAfter");o(dFe,"expandTopLevelRule")});function h2(t){if(t instanceof an||t==="Option")return Yn.OPTION;if(t instanceof Lr||t==="Repetition")return Yn.REPETITION;if(t instanceof An||t==="RepetitionMandatory")return Yn.REPETITION_MANDATORY;if(t instanceof _n||t==="RepetitionMandatoryWithSeparator")return Yn.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof vn||t==="RepetitionWithSeparator")return Yn.REPETITION_WITH_SEPARATOR;if(t instanceof xn||t==="Alternation")return Yn.ALTERNATION;throw Error("non exhaustive match")}function QT(t){let{occurrence:e,rule:r,prodType:n,maxLookahead:i}=t,a=h2(n);return a===Yn.ALTERNATION?ng(e,r,i):ig(e,r,a,i)}function Gse(t,e,r,n,i,a){let s=ng(t,e,r),l=Yse(s)?eg:Ou;return a(s,n,l,i)}function $se(t,e,r,n,i,a){let s=ig(t,e,i,r),l=Yse(s)?eg:Ou;return a(s[0],l,n)}function Vse(t,e,r,n){let i=t.length,a=Ra(t,s=>Ra(s,l=>l.length===1));if(e)return function(s){let l=Je(s,u=>u.GATE);for(let u=0;uWr(u)),l=qr(s,(u,h,f)=>(Ce(h,d=>{It(u,d.tokenTypeIdx)||(u[d.tokenTypeIdx]=f),Ce(d.categoryMatches,p=>{It(u,p)||(u[p]=f)})}),u),{});return function(){let u=this.LA(1);return l[u.tokenTypeIdx]}}else return function(){for(let s=0;sa.length===1),i=t.length;if(n&&!r){let a=Wr(t);if(a.length===1&&cr(a[0].categoryMatches)){let l=a[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===l}}else{let s=qr(a,(l,u,h)=>(l[u.tokenTypeIdx]=!0,Ce(u.categoryMatches,f=>{l[f]=!0}),l),[]);return function(){let l=this.LA(1);return s[l.tokenTypeIdx]===!0}}}else return function(){e:for(let a=0;aXT([s],1)),n=zse(r.length),i=Je(r,s=>{let l={};return Ce(s,u=>{let h=_R(u.partialPath);Ce(h,f=>{l[f]=!0})}),l}),a=r;for(let s=1;s<=e;s++){let l=a;a=zse(l.length);for(let u=0;u{let x=_R(v.partialPath);Ce(x,b=>{i[u][b]=!0})})}}}}return n}function ng(t,e,r,n){let i=new KT(t,Yn.ALTERNATION,n);return e.accept(i),Hse(i.result,r)}function ig(t,e,r,n){let i=new KT(t,r);e.accept(i);let a=i.result,l=new LR(e,t,r).startWalking(),u=new Cn({definition:a}),h=new Cn({definition:l});return Hse([u,h],n)}function ZT(t,e){e:for(let r=0;r{let i=e[n];return r===i||i.categoryMatchesMap[r.tokenTypeIdx]})}function Yse(t){return Ra(t,e=>Ra(e,r=>Ra(r,n=>cr(n.categoryMatches))))}var Yn,LR,KT,ag=M(()=>{"use strict";Ht();u2();PT();r0();ns();(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(Yn||(Yn={}));o(h2,"getProdType");o(QT,"getLookaheadPaths");o(Gse,"buildLookaheadFuncForOr");o($se,"buildLookaheadFuncForOptionalProd");o(Vse,"buildAlternativesLookAheadFunc");o(Use,"buildSingleAlternativeLookaheadFunction");LR=class extends Iu{static{o(this,"RestDefinitionFinderWalker")}constructor(e,r,n){super(),this.topProd=e,this.targetOccurrence=r,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,r,n,i){return e.idx===this.targetOccurrence&&this.targetProdType===r?(this.restDef=n.concat(i),!0):!1}walkOption(e,r,n){this.checkIsTarget(e,Yn.OPTION,r,n)||super.walkOption(e,r,n)}walkAtLeastOne(e,r,n){this.checkIsTarget(e,Yn.REPETITION_MANDATORY,r,n)||super.walkOption(e,r,n)}walkAtLeastOneSep(e,r,n){this.checkIsTarget(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}walkMany(e,r,n){this.checkIsTarget(e,Yn.REPETITION,r,n)||super.walkOption(e,r,n)}walkManySep(e,r,n){this.checkIsTarget(e,Yn.REPETITION_WITH_SEPARATOR,r,n)||super.walkOption(e,r,n)}},KT=class extends rs{static{o(this,"InsideDefinitionFinderVisitor")}constructor(e,r,n){super(),this.targetOccurrence=e,this.targetProdType=r,this.targetRef=n,this.result=[]}checkIsTarget(e,r){e.idx===this.targetOccurrence&&this.targetProdType===r&&(this.targetRef===void 0||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Yn.OPTION)}visitRepetition(e){this.checkIsTarget(e,Yn.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Yn.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Yn.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Yn.ALTERNATION)}};o(zse,"initializeArrayOfArrays");o(_R,"pathToHashKeys");o(pFe,"isUniquePrefixHash");o(Hse,"lookAheadSequenceFromAlternatives");o(ng,"getLookaheadPathsForOr");o(ig,"getLookaheadPathsForOptionalProd");o(ZT,"containsPath");o(Wse,"isStrictPrefixOfPath");o(Yse,"areTokenCategoriesNotUsed")});function qse(t){let e=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName});return Je(e,r=>Object.assign({type:zi.CUSTOM_LOOKAHEAD_VALIDATION},r))}function Xse(t,e,r,n){let i=da(t,u=>mFe(u,r)),a=wFe(t,e,r),s=da(t,u=>vFe(u,r)),l=da(t,u=>yFe(u,t,n,r));return i.concat(a,s,l)}function mFe(t,e){let r=new DR;t.accept(r);let n=r.allProductions,i=UL(n,gFe),a=Ds(i,l=>l.length>1);return Je(br(a),l=>{let u=ra(l),h=e.buildDuplicateFoundError(t,l),f=Ms(u),d={message:h,type:zi.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:f,occurrence:u.idx},p=jse(u);return p&&(d.parameter=p),d})}function gFe(t){return`${Ms(t)}_#_${t.idx}_#_${jse(t)}`}function jse(t){return t instanceof kr?t.terminalType.name:t instanceof nn?t.nonTerminalName:""}function yFe(t,e,r,n){let i=[];if(qr(e,(s,l)=>l.name===t.name?s+1:s,0)>1){let s=n.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});i.push({message:s,type:zi.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function Kse(t,e,r){let n=[],i;return Hn(e,t)||(i=`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:zi.INVALID_RULE_OVERRIDE,ruleName:t})),n}function RR(t,e,r,n=[]){let i=[],a=JT(e.definition);if(cr(a))return[];{let s=t.name;Hn(a,t)&&i.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:n}),type:zi.LEFT_RECURSION,ruleName:s});let u=Xh(a,n.concat([t])),h=da(u,f=>{let d=rn(n);return d.push(f),RR(t,f,r,d)});return i.concat(h)}}function JT(t){let e=[];if(cr(t))return e;let r=ra(t);if(r instanceof nn)e.push(r.referencedRule);else if(r instanceof Cn||r instanceof an||r instanceof An||r instanceof _n||r instanceof vn||r instanceof Lr)e=e.concat(JT(r.definition));else if(r instanceof xn)e=Wr(Je(r.definition,a=>JT(a.definition)));else if(!(r instanceof kr))throw Error("non exhaustive match");let n=Jd(r),i=t.length>1;if(n&&i){let a=mi(t);return e.concat(JT(a))}else return e}function Qse(t,e){let r=new f2;t.accept(r);let n=r.alternations;return da(n,a=>{let s=Lu(a.definition);return da(s,(l,u)=>{let h=jT([l],[],Ou,1);return cr(h)?[{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:a,emptyChoiceIdx:u}),type:zi.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:a.idx,alternative:u+1}]:[]})})}function Zse(t,e,r){let n=new f2;t.accept(n);let i=n.alternations;return i=jh(i,s=>s.ignoreAmbiguities===!0),da(i,s=>{let l=s.idx,u=s.maxLookahead||e,h=ng(l,t,u,s),f=xFe(h,s,t,r),d=bFe(h,s,t,r);return f.concat(d)})}function vFe(t,e){let r=new f2;t.accept(r);let n=r.alternations;return da(n,a=>a.definition.length>255?[{message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:a}),type:zi.TOO_MANY_ALTS,ruleName:t.name,occurrence:a.idx}]:[])}function Jse(t,e,r){let n=[];return Ce(t,i=>{let a=new NR;i.accept(a);let s=a.allProductions;Ce(s,l=>{let u=h2(l),h=l.maxLookahead||e,f=l.idx,p=ig(f,i,u,h)[0];if(cr(Wr(p))){let m=r.buildEmptyRepetitionError({topLevelRule:i,repetition:l});n.push({message:m,type:zi.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),n}function xFe(t,e,r,n){let i=[],a=qr(t,(l,u,h)=>(e.definition[h].ignoreAmbiguities===!0||Ce(u,f=>{let d=[h];Ce(t,(p,m)=>{h!==m&&ZT(p,f)&&e.definition[m].ignoreAmbiguities!==!0&&d.push(m)}),d.length>1&&!ZT(i,f)&&(i.push(f),l.push({alts:d,path:f}))}),l),[]);return Je(a,l=>{let u=Je(l.alts,f=>f+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:u,prefixPath:l.path}),type:zi.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:l.alts}})}function bFe(t,e,r,n){let i=qr(t,(s,l,u)=>{let h=Je(l,f=>({idx:u,path:f}));return s.concat(h)},[]);return Tc(da(i,s=>{if(e.definition[s.idx].ignoreAmbiguities===!0)return[];let u=s.idx,h=s.path,f=Yr(i,p=>e.definition[p.idx].ignoreAmbiguities!==!0&&p.idx{let m=[p.idx+1,u+1],g=e.idx===0?"":e.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:m,prefixPath:p.path}),type:zi.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:g,alternatives:m}})}))}function wFe(t,e,r){let n=[],i=Je(e,a=>a.name);return Ce(t,a=>{let s=a.name;if(Hn(i,s)){let l=r.buildNamespaceConflictError(a);n.push({message:l,type:zi.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),n}var DR,f2,NR,d2=M(()=>{"use strict";Ht();Is();ns();ag();u2();r0();o(qse,"validateLookahead");o(Xse,"validateGrammar");o(mFe,"validateDuplicateProductions");o(gFe,"identifyProductionForDuplicates");o(jse,"getExtraProductionArgument");DR=class extends rs{static{o(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}};o(yFe,"validateRuleDoesNotAlreadyExist");o(Kse,"validateRuleIsOverridden");o(RR,"validateNoLeftRecursion");o(JT,"getFirstNoneTerminal");f2=class extends rs{static{o(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}};o(Qse,"validateEmptyOrAlternative");o(Zse,"validateAmbiguousAlternationAlternatives");NR=class extends rs{static{o(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}};o(vFe,"validateTooManyAlts");o(Jse,"validateSomeNonEmptyLookaheadPath");o(xFe,"checkAlternativesAmbiguities");o(bFe,"checkPrefixAlternativesAmbiguities");o(wFe,"checkTerminalAndNoneTerminalsNameSpace")});function eoe(t){let e=qh(t,{errMsgProvider:Pse}),r={};return Ce(t.rules,n=>{r[n.name]=n}),Bse(r,e.errMsgProvider)}function toe(t){return t=qh(t,{errMsgProvider:Bl}),Xse(t.rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var roe=M(()=>{"use strict";Ht();Fse();d2();tg();o(eoe,"resolveGrammar");o(toe,"validateGrammar")});function rf(t){return Hn(ooe,t.name)}var noe,ioe,aoe,soe,ooe,sg,a0,p2,m2,g2,og=M(()=>{"use strict";Ht();noe="MismatchedTokenException",ioe="NoViableAltException",aoe="EarlyExitException",soe="NotAllInputParsedException",ooe=[noe,ioe,aoe,soe];Object.freeze(ooe);o(rf,"isRecognitionException");sg=class extends Error{static{o(this,"RecognitionException")}constructor(e,r){super(e),this.token=r,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},a0=class extends sg{static{o(this,"MismatchedTokenException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=noe}},p2=class extends sg{static{o(this,"NoViableAltException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=ioe}},m2=class extends sg{static{o(this,"NotAllInputParsedException")}constructor(e,r){super(e,r),this.name=soe}},g2=class extends sg{static{o(this,"EarlyExitException")}constructor(e,r,n){super(e,r),this.previousToken=n,this.name=aoe}}});function TFe(t,e,r,n,i,a,s){let l=this.getKeyForAutomaticLookahead(n,i),u=this.firstAfterRepMap[l];if(u===void 0){let p=this.getCurrRuleFullName(),m=this.getGAstProductions()[p];u=new a(m,i).startWalking(),this.firstAfterRepMap[l]=u}let h=u.token,f=u.occurrence,d=u.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=oo,f=1),!(h===void 0||f===void 0)&&this.shouldInRepetitionRecoveryBeTried(h,f,s)&&this.tryInRepetitionRecovery(t,e,r,h)}var MR,OR,IR,ek,PR=M(()=>{"use strict";i0();Ht();og();pR();Is();MR={},OR="InRuleRecoveryException",IR=class extends Error{static{o(this,"InRuleRecoveryException")}constructor(e){super(e),this.name=OR}},ek=class{static{o(this,"Recoverable")}initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=It(e,"recoveryEnabled")?e.recoveryEnabled:is.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=TFe)}getTokenToInsert(e){let r=n0(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,r,n,i){let a=this.findReSyncTokenType(),s=this.exportLexerState(),l=[],u=!1,h=this.LA(1),f=this.LA(1),d=o(()=>{let p=this.LA(0),m=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:h,previous:p,ruleName:this.getCurrRuleFullName()}),g=new a0(m,h,this.LA(0));g.resyncedTokens=Lu(l),this.SAVE_ERROR(g)},"generateErrorMessage");for(;!u;)if(this.tokenMatcher(f,i)){d();return}else if(n.call(this)){d(),e.apply(this,r);return}else this.tokenMatcher(f,a)?u=!0:(f=this.SKIP_TOKEN(),this.addToResyncTokens(f,l));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,r,n){return!(n===!1||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))}getFollowsForInRuleRecovery(e,r){let n=this.getCurrentGrammarPath(e,r);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){let n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new IR("sad sad panda")}canPerformInRuleRecovery(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,r){if(!this.canTokenTypeBeInsertedInRecovery(e)||cr(r))return!1;let n=this.LA(1);return Za(r,a=>this.tokenMatcher(n,a))!==void 0}canRecoverWithSingleTokenDeletion(e){return this.canTokenTypeBeDeletedInRecovery(e)?this.tokenMatcher(this.LA(2),e):!1}isInCurrentRuleReSyncSet(e){let r=this.getCurrFollowKey(),n=this.getFollowSetFromFollowKey(r);return Hn(n,e)}findReSyncTokenType(){let e=this.flattenFollowSet(),r=this.LA(1),n=2;for(;;){let i=Za(e,a=>o2(r,a));if(i!==void 0)return i;r=this.LA(n),n++}}getCurrFollowKey(){if(this.RULE_STACK.length===1)return MR;let e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){let e=this.RULE_STACK,r=this.RULE_OCCURRENCE_STACK;return Je(e,(n,i)=>i===0?MR:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:r[i],inRule:this.shortRuleNameToFullName(e[i-1])})}flattenFollowSet(){let e=Je(this.buildFullFollowKeyStack(),r=>this.getFollowSetFromFollowKey(r));return Wr(e)}getFollowSetFromFollowKey(e){if(e===MR)return[oo];let r=e.ruleName+e.idxInCallingRule+BT+e.inRule;return this.resyncFollows[r]}addToResyncTokens(e,r){return this.tokenMatcher(e,oo)||r.push(e),r}reSyncTo(e){let r=[],n=this.LA(1);for(;this.tokenMatcher(n,e)===!1;)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,r);return Lu(r)}attemptInRepetitionRecovery(e,r,n,i,a,s,l){}getCurrentGrammarPath(e,r){let n=this.getHumanReadableRuleStack(),i=rn(this.RULE_OCCURRENCE_STACK);return{ruleStack:n,occurrenceStack:i,lastTok:e,lastTokOccurrence:r}}getHumanReadableRuleStack(){return Je(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}};o(TFe,"attemptInRepetitionRecovery")});function tk(t,e,r){return r|e|t}var rk=M(()=>{"use strict";o(tk,"getKeyForAutomaticLookahead")});var zu,BR=M(()=>{"use strict";Ht();tg();Is();d2();ag();zu=class{static{o(this,"LLkLookaheadStrategy")}constructor(e){var r;this.maxLookahead=(r=e?.maxLookahead)!==null&&r!==void 0?r:is.maxLookahead}validate(e){let r=this.validateNoLeftRecursion(e.rules);if(cr(r)){let n=this.validateEmptyOrAlternatives(e.rules),i=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),a=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...r,...n,...i,...a]}return r}validateNoLeftRecursion(e){return da(e,r=>RR(r,r,Bl))}validateEmptyOrAlternatives(e){return da(e,r=>Qse(r,Bl))}validateAmbiguousAlternationAlternatives(e,r){return da(e,n=>Zse(n,r,Bl))}validateSomeNonEmptyLookaheadPath(e,r){return Jse(e,r,Bl)}buildLookaheadForAlternation(e){return Gse(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Vse)}buildLookaheadForOptional(e){return $se(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,h2(e.prodType),Use)}}});function kFe(t){nk.reset(),t.accept(nk);let e=nk.dslMethods;return nk.reset(),e}var ik,FR,nk,loe=M(()=>{"use strict";Ht();Is();rk();ns();BR();ik=class{static{o(this,"LooksAhead")}initLooksAhead(e){this.dynamicTokensEnabled=It(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:is.dynamicTokensEnabled,this.maxLookahead=It(e,"maxLookahead")?e.maxLookahead:is.maxLookahead,this.lookaheadStrategy=It(e,"lookaheadStrategy")?e.lookaheadStrategy:new zu({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){Ce(e,r=>{this.TRACE_INIT(`${r.name} Rule Lookahead`,()=>{let{alternation:n,repetition:i,option:a,repetitionMandatory:s,repetitionMandatoryWithSeparator:l,repetitionWithSeparator:u}=kFe(r);Ce(n,h=>{let f=h.idx===0?"":h.idx;this.TRACE_INIT(`${Ms(h)}${f}`,()=>{let d=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:h.idx,rule:r,maxLookahead:h.maxLookahead||this.maxLookahead,hasPredicates:h.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),p=tk(this.fullRuleNameToShort[r.name],256,h.idx);this.setLaFuncCache(p,d)})}),Ce(i,h=>{this.computeLookaheadFunc(r,h.idx,768,"Repetition",h.maxLookahead,Ms(h))}),Ce(a,h=>{this.computeLookaheadFunc(r,h.idx,512,"Option",h.maxLookahead,Ms(h))}),Ce(s,h=>{this.computeLookaheadFunc(r,h.idx,1024,"RepetitionMandatory",h.maxLookahead,Ms(h))}),Ce(l,h=>{this.computeLookaheadFunc(r,h.idx,1536,"RepetitionMandatoryWithSeparator",h.maxLookahead,Ms(h))}),Ce(u,h=>{this.computeLookaheadFunc(r,h.idx,1280,"RepetitionWithSeparator",h.maxLookahead,Ms(h))})})})}computeLookaheadFunc(e,r,n,i,a,s){this.TRACE_INIT(`${s}${r===0?"":r}`,()=>{let l=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:r,rule:e,maxLookahead:a||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i}),u=tk(this.fullRuleNameToShort[e.name],n,r);this.setLaFuncCache(u,l)})}getKeyForAutomaticLookahead(e,r){let n=this.getLastExplicitRuleShortName();return tk(n,e,r)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,r){this.lookAheadFuncsCache.set(e,r)}},FR=class extends rs{static{o(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}},nk=new FR;o(kFe,"collectMethods")});function $R(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";o($R,"setNodeLocationOnlyOffset");o(VR,"setNodeLocationFull");o(coe,"addTerminalToCst");o(uoe,"addNoneTerminalToCst")});function UR(t,e){Object.defineProperty(t,EFe,{enumerable:!1,configurable:!0,writable:!1,value:e})}var EFe,foe=M(()=>{"use strict";EFe="name";o(UR,"defineNameProp")});function SFe(t,e){let r=zr(t),n=r.length;for(let i=0;is.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>: + ${a.join(` + +`).replace(/\n/g,` + `)}`)}},"validateVisitor")};return r.prototype=n,r.prototype.constructor=r,r._RULE_NAMES=e,r}function poe(t,e,r){let n=o(function(){},"derivedConstructor");UR(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return Ce(e,a=>{i[a]=SFe}),n.prototype=i,n.prototype.constructor=n,n}function CFe(t,e){return AFe(t,e)}function AFe(t,e){let r=Yr(e,i=>Ei(t[i])===!1),n=Je(r,i=>({msg:`Missing visitor method: <${i}> on ${t.constructor.name} CST Visitor.`,type:HR.MISSING_METHOD,methodName:i}));return Tc(n)}var HR,moe=M(()=>{"use strict";Ht();foe();o(SFe,"defaultVisit");o(doe,"createBaseSemanticVisitorConstructor");o(poe,"createBaseVisitorConstructorWithDefaults");(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(HR||(HR={}));o(CFe,"validateVisitor");o(AFe,"validateMissingCstMethods")});var lk,goe=M(()=>{"use strict";hoe();Ht();moe();Is();lk=class{static{o(this,"TreeBuilder")}initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=It(e,"nodeLocationTracking")?e.nodeLocationTracking:is.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Jn,this.cstFinallyStateUpdate=Jn,this.cstPostTerminal=Jn,this.cstPostNonTerminal=Jn,this.cstPostRule=Jn;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=VR,this.setNodeLocationFromNode=VR,this.cstPostRule=Jn,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=$R,this.setNodeLocationFromNode=$R,this.cstPostRule=Jn,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Jn,this.setNodeLocationFromNode=Jn,this.cstPostRule=Jn,this.setInitialNodeLocation=Jn;else throw Error(`Invalid config option: "${e.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){let r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){let r={name:e,children:Object.create(null)};this.setInitialNodeLocation(r),this.CST_STACK.push(r)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?(n.endOffset=r.endOffset,n.endLine=r.endLine,n.endColumn=r.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){let r=this.LA(0),n=e.location;n.startOffset<=r.startOffset?n.endOffset=r.endOffset:n.startOffset=NaN}cstPostTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];coe(n,r,e),this.setNodeLocationFromToken(n.location,r)}cstPostNonTerminal(e,r){let n=this.CST_STACK[this.CST_STACK.length-1];uoe(n,r,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(dr(this.baseCstVisitorConstructor)){let e=doe(this.className,zr(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(dr(this.baseCstVisitorWithDefaultsConstructor)){let e=poe(this.className,zr(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){let e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){let e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}}});var ck,yoe=M(()=>{"use strict";Is();ck=class{static{o(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):lg}LA(e){let r=this.currIdx+e;return r<0||this.tokVectorLength<=r?lg:this.tokVector[r]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}});var uk,voe=M(()=>{"use strict";Ht();og();Is();tg();d2();ns();uk=class{static{o(this,"RecognizerApi")}ACTION(e){return e.call(this)}consume(e,r,n){return this.consumeInternal(r,e,n)}subrule(e,r,n){return this.subruleInternal(r,e,n)}option(e,r){return this.optionInternal(r,e)}or(e,r){return this.orInternal(r,e)}many(e,r){return this.manyInternal(e,r)}atLeastOne(e,r){return this.atLeastOneInternal(e,r)}CONSUME(e,r){return this.consumeInternal(e,0,r)}CONSUME1(e,r){return this.consumeInternal(e,1,r)}CONSUME2(e,r){return this.consumeInternal(e,2,r)}CONSUME3(e,r){return this.consumeInternal(e,3,r)}CONSUME4(e,r){return this.consumeInternal(e,4,r)}CONSUME5(e,r){return this.consumeInternal(e,5,r)}CONSUME6(e,r){return this.consumeInternal(e,6,r)}CONSUME7(e,r){return this.consumeInternal(e,7,r)}CONSUME8(e,r){return this.consumeInternal(e,8,r)}CONSUME9(e,r){return this.consumeInternal(e,9,r)}SUBRULE(e,r){return this.subruleInternal(e,0,r)}SUBRULE1(e,r){return this.subruleInternal(e,1,r)}SUBRULE2(e,r){return this.subruleInternal(e,2,r)}SUBRULE3(e,r){return this.subruleInternal(e,3,r)}SUBRULE4(e,r){return this.subruleInternal(e,4,r)}SUBRULE5(e,r){return this.subruleInternal(e,5,r)}SUBRULE6(e,r){return this.subruleInternal(e,6,r)}SUBRULE7(e,r){return this.subruleInternal(e,7,r)}SUBRULE8(e,r){return this.subruleInternal(e,8,r)}SUBRULE9(e,r){return this.subruleInternal(e,9,r)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,r,n=cg){if(Hn(this.definedRulesNames,e)){let s={message:Bl.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:zi.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);let i=this.defineRule(e,r,n);return this[e]=i,i}OVERRIDE_RULE(e,r,n=cg){let i=Kse(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let a=this.defineRule(e,r,n);return this[e]=a,a}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);let n=this.saveRecogState();try{return e.apply(this,r),!0}catch(i){if(rf(i))return!1;throw i}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return IT(br(this.gastProductionsCache))}}});var hk,xoe=M(()=>{"use strict";Ht();rk();og();ag();u2();Is();PR();i0();r0();hk=class{static{o(this,"RecognizerEngine")}initRecognizerEngine(e,r){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=eg,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},It(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if(Mt(e)){if(cr(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if(Mt(e))this.tokensMap=qr(e,(a,s)=>(a[s.name]=s,a),{});else if(It(e,"modes")&&Ra(Wr(br(e.modes)),Ase)){let a=Wr(br(e.modes)),s=Om(a);this.tokensMap=qr(s,(l,u)=>(l[u.name]=u,l),{})}else if(yn(e))this.tokensMap=rn(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=oo;let n=It(e,"modes")?Wr(br(e.modes)):br(e),i=Ra(n,a=>cr(a.categoryMatches));this.tokenMatcher=i?eg:Ou,Pu(br(this.tokensMap))}defineRule(e,r,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=It(n,"resyncEnabled")?n.resyncEnabled:cg.resyncEnabled,a=It(n,"recoveryValueFunc")?n.recoveryValueFunc:cg.recoveryValueFunc,s=this.ruleShortNameIdx<<12;this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s;let l;return this.outputCst===!0?l=o(function(...f){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):l=o(function(...f){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),r.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(l,{ruleName:e,originalGrammarAction:r})}invokeRuleCatch(e,r,n){let i=this.RULE_STACK.length===1,a=r&&!this.isBackTracking()&&this.recoveryEnabled;if(rf(e)){let s=e;if(a){let l=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(l))if(s.resyncedTokens=this.reSyncTo(l),this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];return u.recoveredNode=!0,u}else return n(e);else{if(this.outputCst){let u=this.CST_STACK[this.CST_STACK.length-1];u.recoveredNode=!0,s.partialCstResult=u}throw s}}else{if(i)return this.moveToTerminatedState(),n(e);throw s}}else throw e}optionInternal(e,r){let n=this.getKeyForAutomaticLookahead(512,r);return this.optionInternalLogic(e,r,n)}optionInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof e!="function"){a=e.DEF;let s=e.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=e;if(i.call(this)===!0)return a.call(this)}atLeastOneInternal(e,r){let n=this.getKeyForAutomaticLookahead(1024,e);return this.atLeastOneInternalLogic(e,r,n)}atLeastOneInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let s=r.GATE;if(s!==void 0){let l=i;i=o(()=>s.call(this)&&l.call(this),"lookAheadFunc")}}else a=r;if(i.call(this)===!0){let s=this.doSingleRepetition(a);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a)}else throw this.raiseEarlyExitException(e,Yn.REPETITION_MANDATORY,r.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,r],i,1024,e,qT)}atLeastOneSepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1536,e);this.atLeastOneSepFirstInternalLogic(e,r,n)}atLeastOneSepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,c2],l,1536,e,c2)}else throw this.raiseEarlyExitException(e,Yn.REPETITION_MANDATORY_WITH_SEPARATOR,r.ERR_MSG)}manyInternal(e,r){let n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,r,n)}manyInternalLogic(e,r,n){let i=this.getLaFuncFromCache(n),a;if(typeof r!="function"){a=r.DEF;let l=r.GATE;if(l!==void 0){let u=i;i=o(()=>l.call(this)&&u.call(this),"lookaheadFunction")}}else a=r;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(a);this.attemptInRepetitionRecovery(this.manyInternal,[e,r],i,768,e,YT,s)}manySepFirstInternal(e,r){let n=this.getKeyForAutomaticLookahead(1280,e);this.manySepFirstInternalLogic(e,r,n)}manySepFirstInternalLogic(e,r,n){let i=r.DEF,a=r.SEP;if(this.getLaFuncFromCache(n).call(this)===!0){i.call(this);let l=o(()=>this.tokenMatcher(this.LA(1),a),"separatorLookAheadFunc");for(;this.tokenMatcher(this.LA(1),a)===!0;)this.CONSUME(a),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,a,l,i,l2],l,1280,e,l2)}}repetitionSepSecondInternal(e,r,n,i,a){for(;n();)this.CONSUME(r),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,r,n,i,a],n,1536,e,a)}doSingleRepetition(e){let r=this.getLexerPosition();return e.call(this),this.getLexerPosition()>r}orInternal(e,r){let n=this.getKeyForAutomaticLookahead(256,r),i=Mt(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(r,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){let e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new m2(r,e))}}subruleInternal(e,r,n){let i;try{let a=n!==void 0?n.ARGS:void 0;return this.subruleIdx=r,i=e.apply(this,a),this.cstPostNonTerminal(i,n!==void 0&&n.LABEL!==void 0?n.LABEL:e.ruleName),i}catch(a){throw this.subruleInternalError(a,n,e.ruleName)}}subruleInternalError(e,r,n){throw rf(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,r,n){let i;try{let a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,n)}catch(a){i=this.consumeInternalRecovery(e,r,a)}return this.cstPostTerminal(n!==void 0&&n.LABEL!==void 0?n.LABEL:e.name,i),i}consumeInternalError(e,r,n){let i,a=this.LA(0);throw n!==void 0&&n.ERR_MSG?i=n.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new a0(i,r,a))}consumeInternalRecovery(e,r,n){if(this.recoveryEnabled&&n.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===OR?n:a}}else throw n}saveRecogState(){let e=this.errors,r=rn(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,r,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),oo)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}});var fk,boe=M(()=>{"use strict";og();Ht();ag();Is();fk=class{static{o(this,"ErrorHandler")}initErrorHandler(e){this._errors=[],this.errorMessageProvider=It(e,"errorMessageProvider")?e.errorMessageProvider:is.errorMessageProvider}SAVE_ERROR(e){if(rf(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:rn(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return rn(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,r,n){let i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],l=ig(e,a,r,this.maxLookahead)[0],u=[];for(let f=1;f<=this.maxLookahead;f++)u.push(this.LA(f));let h=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:l,actual:u,previous:this.LA(0),customUserDescription:n,ruleName:i});throw this.SAVE_ERROR(new g2(h,this.LA(1),this.LA(0)))}raiseNoAltException(e,r){let n=this.getCurrRuleFullName(),i=this.getGAstProductions()[n],a=ng(e,i,this.maxLookahead),s=[];for(let h=1;h<=this.maxLookahead;h++)s.push(this.LA(h));let l=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:s,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new p2(u,this.LA(1),l))}}});var dk,woe=M(()=>{"use strict";u2();Ht();dk=class{static{o(this,"ContentAssist")}initContentAssist(){}computeContentAssist(e,r){let n=this.gastProductionsCache[e];if(dr(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return jT([n],r,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){let r=ra(e.ruleStack),i=this.getGAstProductions()[r];return new WT(i,e).startWalking()}}});function v2(t,e,r,n=!1){mk(r);let i=fa(this.recordingProdStack),a=Ei(e)?e:e.DEF,s=new t({definition:[],idx:r});return n&&(s.separator=e.SEP),It(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(s),a.call(this),i.definition.push(s),this.recordingProdStack.pop(),gk}function DFe(t,e){mk(e);let r=fa(this.recordingProdStack),n=Mt(t)===!1,i=n===!1?t:t.DEF,a=new xn({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});It(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD);let s=Rv(i,l=>Ei(l.GATE));return a.hasPredicates=s,r.definition.push(a),Ce(i,l=>{let u=new Cn({definition:[]});a.definition.push(u),It(l,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:It(l,"GATE")&&(u.ignoreAmbiguities=!0),this.recordingProdStack.push(u),l.ALT.call(this),this.recordingProdStack.pop()}),gk}function Eoe(t){return t===0?"":`${t}`}function mk(t){if(t<0||t>koe){let e=new Error(`Invalid DSL Method idx value: <${t}> + Idx value must be a none negative value smaller than ${koe+1}`);throw e.KNOWN_RECORDER_ERROR=!0,e}}var gk,Toe,koe,Soe,Coe,LFe,pk,Aoe=M(()=>{"use strict";Ht();ns();a2();r0();i0();Is();rk();gk={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(gk);Toe=!0,koe=Math.pow(2,8)-1,Soe=HT({name:"RECORDING_PHASE_TOKEN",pattern:oi.NA});Pu([Soe]);Coe=n0(Soe,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Coe);LFe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},pk=class{static{o(this,"GastRecorder")}initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){let r=e>0?e:"";this[`CONSUME${r}`]=function(n,i){return this.consumeInternalRecord(n,e,i)},this[`SUBRULE${r}`]=function(n,i){return this.subruleInternalRecord(n,e,i)},this[`OPTION${r}`]=function(n){return this.optionInternalRecord(n,e)},this[`OR${r}`]=function(n){return this.orInternalRecord(n,e)},this[`MANY${r}`]=function(n){this.manyInternalRecord(e,n)},this[`MANY_SEP${r}`]=function(n){this.manySepFirstInternalRecord(e,n)},this[`AT_LEAST_ONE${r}`]=function(n){this.atLeastOneInternalRecord(e,n)},this[`AT_LEAST_ONE_SEP${r}`]=function(n){this.atLeastOneSepFirstInternalRecord(e,n)}}this.consume=function(e,r,n){return this.consumeInternalRecord(r,e,n)},this.subrule=function(e,r,n){return this.subruleInternalRecord(r,e,n)},this.option=function(e,r){return this.optionInternalRecord(r,e)},this.or=function(e,r){return this.orInternalRecord(r,e)},this.many=function(e,r){this.manyInternalRecord(e,r)},this.atLeastOne=function(e,r){this.atLeastOneInternalRecord(e,r)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let e=this;for(let r=0;r<10;r++){let n=r>0?r:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,r){return()=>!0}LA_RECORD(e){return lg}topLevelRuleRecord(e,r){try{let n=new ts({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),r.call(this),this.recordingProdStack.pop(),n}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}}optionInternalRecord(e,r){return v2.call(this,an,e,r)}atLeastOneInternalRecord(e,r){v2.call(this,An,r,e)}atLeastOneSepFirstInternalRecord(e,r){v2.call(this,_n,r,e,Toe)}manyInternalRecord(e,r){v2.call(this,Lr,r,e)}manySepFirstInternalRecord(e,r){v2.call(this,vn,r,e,Toe)}orInternalRecord(e,r){return DFe.call(this,e,r)}subruleInternalRecord(e,r,n){if(mk(r),!e||It(e,"ruleName")===!1){let l=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw l.KNOWN_RECORDER_ERROR=!0,l}let i=fa(this.recordingProdStack),a=e.ruleName,s=new nn({idx:r,nonTerminalName:a,label:n?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?LFe:gk}consumeInternalRecord(e,r,n){if(mk(r),!TR(e)){let s=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}> + inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=fa(this.recordingProdStack),a=new kr({idx:r,terminalType:e,label:n?.LABEL});return i.definition.push(a),Coe}};o(v2,"recordProd");o(DFe,"recordOrProd");o(Eoe,"getIdxSuffix");o(mk,"assertMethodIdxIsValid")});var yk,_oe=M(()=>{"use strict";Ht();jm();Is();yk=class{static{o(this,"PerformanceTracer")}initPerformanceTracer(e){if(It(e,"traceInitPerf")){let r=e.traceInitPerf,n=typeof r=="number";this.traceInitMaxIdent=n?r:1/0,this.traceInitPerf=n?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=is.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;let n=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <${e}>`);let{time:i,value:a}=r2(r),s=i>10?console.warn:console.log;return this.traceInitIndent time: ${i}ms`),this.traceInitIndent--,a}else return r()}}});function Loe(t,e){e.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(i=>{if(i==="constructor")return;let a=Object.getOwnPropertyDescriptor(n,i);a&&(a.get||a.set)?Object.defineProperty(t.prototype,i,a):t.prototype[i]=r.prototype[i]})})}var Doe=M(()=>{"use strict";o(Loe,"applyMixins")});function vk(t=void 0){return function(){return t}}var lg,is,cg,zi,x2,b2,Is=M(()=>{"use strict";Ht();jm();sse();i0();tg();roe();PR();loe();goe();yoe();voe();xoe();boe();woe();Aoe();_oe();Doe();d2();lg=n0(oo,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(lg);is=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Fu,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),cg=Object.freeze({recoveryValueFunc:o(()=>{},"recoveryValueFunc"),resyncEnabled:!0});(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(zi||(zi={}));o(vk,"EMPTY_ALT");x2=class t{static{o(this,"Parser")}static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let r=this.className;this.TRACE_INIT("toFastProps",()=>{n2(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),Ce(this.definedRulesNames,i=>{let s=this[i].originalGrammarAction,l;this.TRACE_INIT(`${i} Rule`,()=>{l=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=l})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=eoe({rules:br(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if(cr(n)&&this.skipValidations===!1){let i=toe({rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),errMsgProvider:Bl,grammarName:r}),a=qse({lookaheadStrategy:this.lookaheadStrategy,rules:br(this.gastProductionsCache),tokenTypes:br(this.tokensMap),grammarName:r});this.definitionErrors=this.definitionErrors.concat(i,a)}}),cr(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=ase(br(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,a;(a=(i=this.lookaheadStrategy).initialize)===null||a===void 0||a.call(i,{rules:br(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(br(this.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!cr(this.definitionErrors))throw e=Je(this.definitionErrors,i=>i.message),new Error(`Parser Definition Errors detected: + ${e.join(` +------------------------------- +`)}`)})}constructor(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;let n=this;if(n.initErrorHandler(r),n.initLexerAdapter(),n.initLooksAhead(r),n.initRecognizerEngine(e,r),n.initRecoverable(r),n.initTreeBuilder(r),n.initContentAssist(),n.initGastRecorder(r),n.initPerformanceTracer(r),It(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=It(r,"skipValidations")?r.skipValidations:is.skipValidations}};x2.DEFER_DEFINITION_ERRORS_HANDLING=!1;Loe(x2,[ek,ik,lk,ck,hk,uk,fk,dk,pk,yk]);b2=class extends x2{static{o(this,"EmbeddedActionsParser")}constructor(e,r=is){let n=rn(r);n.outputCst=!1,super(e,n)}}});var Noe=M(()=>{"use strict";ns()});var Roe=M(()=>{"use strict"});var Moe=M(()=>{"use strict";Noe();Roe()});var Ioe=M(()=>{"use strict";uR()});var s0=M(()=>{"use strict";uR();Is();a2();i0();ag();BR();tg();og();ER();ns();ns();Moe();Ioe()});function o0(t,e,r){return`${t.name}_${e}_${r}`}function Foe(t){let e={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};BFe(e,t);let r=t.length;for(let n=0;nzoe(t,e,s));return dg(t,e,n,r,...i)}function UFe(t,e,r){let n=na(t,e,r,{type:nf});af(t,n);let i=dg(t,e,n,r,l0(t,e,r));return HFe(t,e,r,i)}function l0(t,e,r){let n=Yr(Je(r.definition,i=>zoe(t,e,i)),i=>i!==void 0);return n.length===1?n[0]:n.length===0?void 0:YFe(t,n)}function Goe(t,e,r,n,i){let a=n.left,s=n.right,l=na(t,e,r,{type:PFe});af(t,l);let u=na(t,e,r,{type:Boe});return a.loopback=l,u.loopback=l,t.decisionMap[o0(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=l,Ai(s,l),i===void 0?(Ai(l,a),Ai(l,u)):(Ai(l,u),Ai(l,i.left),Ai(i.right,a)),{left:a,right:u}}function $oe(t,e,r,n,i){let a=n.left,s=n.right,l=na(t,e,r,{type:OFe});af(t,l);let u=na(t,e,r,{type:Boe}),h=na(t,e,r,{type:IFe});return l.loopback=h,u.loopback=h,Ai(l,a),Ai(l,u),Ai(s,h),i!==void 0?(Ai(h,u),Ai(h,i.left),Ai(i.right,a)):Ai(h,l),t.decisionMap[o0(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=l,{left:l,right:u}}function HFe(t,e,r,n){let i=n.left,a=n.right;return Ai(i,a),t.decisionMap[o0(e,"Option",r.idx)]=i,n}function af(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function dg(t,e,r,n,...i){let a=na(t,e,n,{type:MFe,start:r});r.end=a;for(let l of i)l!==void 0?(Ai(r,l.left),Ai(l.right,a)):Ai(r,a);let s={left:r,right:a};return t.decisionMap[o0(e,WFe(n),n.idx)]=r,s}function WFe(t){if(t instanceof xn)return"Alternation";if(t instanceof an)return"Option";if(t instanceof Lr)return"Repetition";if(t instanceof vn)return"RepetitionWithSeparator";if(t instanceof An)return"RepetitionMandatory";if(t instanceof _n)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function YFe(t,e){let r=e.length;for(let a=0;a{"use strict";Rm();FL();s0();o(o0,"buildATNKey");nf=1,RFe=2,Ooe=4,Poe=5,fg=7,MFe=8,IFe=9,OFe=10,PFe=11,Boe=12,w2=class{static{o(this,"AbstractTransition")}constructor(e){this.target=e}isEpsilon(){return!1}},ug=class extends w2{static{o(this,"AtomTransition")}constructor(e,r){super(e),this.tokenType=r}},T2=class extends w2{static{o(this,"EpsilonTransition")}constructor(e){super(e)}isEpsilon(){return!0}},hg=class extends w2{static{o(this,"RuleTransition")}constructor(e,r,n){super(e),this.rule=r,this.followState=n}isEpsilon(){return!0}};o(Foe,"createATN");o(BFe,"createRuleStartAndStopATNStates");o(zoe,"atom");o(FFe,"repetition");o(zFe,"repetitionSep");o(GFe,"repetitionMandatory");o($Fe,"repetitionMandatorySep");o(VFe,"alternation");o(UFe,"option");o(l0,"block");o(Goe,"plus");o($oe,"star");o(HFe,"optional");o(af,"defineDecisionState");o(dg,"makeAlts");o(WFe,"getProdType");o(YFe,"makeBlock");o(YR,"tokenRef");o(qFe,"ruleRef");o(XFe,"buildRuleHandle");o(Ai,"epsilon");o(na,"newState");o(qR,"addTransition");o(jFe,"removeState")});function XR(t,e=!0){return`${e?`a${t.alt}`:""}s${t.state.stateNumber}:${t.stack.map(r=>r.stateNumber.toString()).join("_")}`}var k2,pg,Uoe=M(()=>{"use strict";Rm();k2={},pg=class{static{o(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){let r=XR(e);r in this.map||(this.map[r]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return Je(this.configs,e=>e.alt)}get key(){let e="";for(let r in this.map)e+=r+":";return e}};o(XR,"getATNConfigKey")});function KFe(t,e){let r={};return n=>{let i=n.toString(),a=r[i];return a!==void 0||(a={atnStartState:t,decision:e,states:{}},r[i]=a),a}}function Woe(t,e=!0){let r=new Set;for(let n of t){let i=new Set;for(let a of n){if(a===void 0){if(e)break;return!1}let s=[a.tokenTypeIdx].concat(a.categoryMatches);for(let l of s)if(r.has(l)){if(!i.has(l))return!1}else r.add(l),i.add(l)}}return!0}function QFe(t){let e=t.decisionStates.length,r=Array(e);for(let n=0;nBu(i)).join(", "),r=t.production.idx===0?"":t.production.idx,n=`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${rze(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, +<${e}> may appears as a prefix path in all these alternatives. +`;return n=n+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,n}function rze(t){if(t instanceof nn)return"SUBRULE";if(t instanceof an)return"OPTION";if(t instanceof xn)return"OR";if(t instanceof An)return"AT_LEAST_ONE";if(t instanceof _n)return"AT_LEAST_ONE_SEP";if(t instanceof vn)return"MANY_SEP";if(t instanceof Lr)return"MANY";if(t instanceof kr)return"CONSUME";throw Error("non exhaustive match")}function nze(t,e,r){let n=da(e.configs.elements,a=>a.state.transitions),i=ene(n.filter(a=>a instanceof ug).map(a=>a.tokenType),a=>a.tokenTypeIdx);return{actualToken:r,possibleTokenTypes:i,tokenPath:t}}function ize(t,e){return t.edges[e.tokenTypeIdx]}function aze(t,e,r){let n=new pg,i=[];for(let s of t.elements){if(r.is(s.alt)===!1)continue;if(s.state.type===fg){i.push(s);continue}let l=s.state.transitions.length;for(let u=0;u0&&!uze(a))for(let s of i)a.add(s);return a}function sze(t,e){if(t instanceof ug&&o2(e,t.tokenType))return t.target}function oze(t,e){let r;for(let n of t.elements)if(e.is(n.alt)===!0){if(r===void 0)r=n.alt;else if(r!==n.alt)return}return r}function qoe(t){return{configs:t,edges:{},isAcceptState:!1,prediction:-1}}function Yoe(t,e,r,n){return n=Xoe(t,n),e.edges[r.tokenTypeIdx]=n,n}function Xoe(t,e){if(e===k2)return e;let r=e.configs.key,n=t.states[r];return n!==void 0?n:(e.configs.finalize(),t.states[r]=e,e)}function lze(t){let e=new pg,r=t.transitions.length;for(let n=0;n0){let i=[...t.stack],s={state:i.pop(),alt:t.alt,stack:i};bk(s,e)}else e.add(t);return}r.epsilonOnlyTransitions||e.add(t);let n=r.transitions.length;for(let i=0;i1)return!0;return!1}function mze(t){for(let e of Array.from(t.values()))if(Object.keys(e).length===1)return!0;return!1}var xk,Hoe,E2,joe=M(()=>{"use strict";s0();Voe();Uoe();YL();GL();tne();Rm();gw();Ww();Kw();KL();o(KFe,"createDFACache");xk=class{static{o(this,"PredicateSet")}constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,r){this.predicates[e]=r}toString(){let e="",r=this.predicates.length;for(let n=0;nconsole.log(n)}initialize(e){this.atn=Foe(e.rules),this.dfas=QFe(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){let{prodOccurrence:r,rule:n,hasPredicates:i,dynamicTokensEnabled:a}=e,s=this.dfas,l=this.logging,u=o0(n,"Alternation",r),f=this.atn.decisionMap[u].decision,d=Je(QT({maxLookahead:1,occurrence:r,prodType:"Alternation",rule:n}),p=>Je(p,m=>m[0]));if(Woe(d,!1)&&!a){let p=qr(d,(m,g,y)=>(Ce(g,v=>{v&&(m[v.tokenTypeIdx]=y,Ce(v.categoryMatches,x=>{m[x]=y}))}),m),{});return i?function(m){var g;let y=this.LA(1),v=p[y.tokenTypeIdx];if(m!==void 0&&v!==void 0){let x=(g=m[v])===null||g===void 0?void 0:g.GATE;if(x!==void 0&&x.call(this)===!1)return}return v}:function(){let m=this.LA(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new xk,g=p===void 0?0:p.length;for(let v=0;vJe(p,m=>m[0]));if(Woe(d)&&d[0][0]&&!a){let p=d[0],m=Wr(p);if(m.length===1&&cr(m[0].categoryMatches)){let y=m[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===y}}else{let g=qr(m,(y,v)=>(v!==void 0&&(y[v.tokenTypeIdx]=!0,Ce(v.categoryMatches,x=>{y[x]=!0})),y),{});return function(){let y=this.LA(1);return g[y.tokenTypeIdx]===!0}}}return function(){let p=jR.call(this,s,f,Hoe,l);return typeof p=="object"?!1:p===0}}};o(Woe,"isLL1Sequence");o(QFe,"initATNSimulator");o(jR,"adaptivePredict");o(ZFe,"performLookahead");o(JFe,"computeLookaheadTarget");o(eze,"reportLookaheadAmbiguity");o(tze,"buildAmbiguityError");o(rze,"getProductionDslName");o(nze,"buildAdaptivePredictError");o(ize,"getExistingTargetState");o(aze,"computeReachSet");o(sze,"getReachableTarget");o(oze,"getUniqueAlt");o(qoe,"newDFAState");o(Yoe,"addDFAEdge");o(Xoe,"addDFAState");o(lze,"computeStartState");o(bk,"closure");o(cze,"getEpsilonTarget");o(uze,"hasConfigInRuleStopState");o(hze,"allConfigsInRuleStopStates");o(fze,"hasConflictTerminatingPrediction");o(dze,"getConflictingAltSets");o(pze,"hasConflictingAltSet");o(mze,"hasStateAssociatedWithOneAlt")});var Koe=M(()=>{"use strict";joe()});var Qoe,KR,Zoe,wk,Xr,Dr,Tk,Joe,QR,ele,tle,rle,nle,ZR,ile,ale,sle,kk,mg,gg,JR,yg,ole,eM,tM,rM,nM,iM,lle,cle,aM,ule,sM,S2,hle,fle,dle,ple,mle,gle,yle,vle,Ek,xle,ble,wle,Tle,kle,Ele,Sle,Cle,Ale,_le,Lle,Sk,Dle,Nle,Rle,Mle,Ile,Ole,Ple,Ble,Fle,zle,Gle,$le,Vle,oM,lM,Ule,Hle,Wle,Yle,qle,Xle,jle,Kle,Qle,cM,Oe,uM=M(()=>{"use strict";(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(Qoe||(Qoe={}));(function(t){function e(r){return typeof r=="string"}o(e,"is"),t.is=e})(KR||(KR={}));(function(t){t.MIN_VALUE=-2147483648,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(Zoe||(Zoe={}));(function(t){t.MIN_VALUE=0,t.MAX_VALUE=2147483647;function e(r){return typeof r=="number"&&t.MIN_VALUE<=r&&r<=t.MAX_VALUE}o(e,"is"),t.is=e})(wk||(wk={}));(function(t){function e(n,i){return n===Number.MAX_VALUE&&(n=wk.MAX_VALUE),i===Number.MAX_VALUE&&(i=wk.MAX_VALUE),{line:n,character:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.uinteger(i.line)&&Oe.uinteger(i.character)}o(r,"is"),t.is=r})(Xr||(Xr={}));(function(t){function e(n,i,a,s){if(Oe.uinteger(n)&&Oe.uinteger(i)&&Oe.uinteger(a)&&Oe.uinteger(s))return{start:Xr.create(n,i),end:Xr.create(a,s)};if(Xr.is(n)&&Xr.is(i))return{start:n,end:i};throw new Error(`Range#create called with invalid arguments[${n}, ${i}, ${a}, ${s}]`)}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Xr.is(i.start)&&Xr.is(i.end)}o(r,"is"),t.is=r})(Dr||(Dr={}));(function(t){function e(n,i){return{uri:n,range:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&(Oe.string(i.uri)||Oe.undefined(i.uri))}o(r,"is"),t.is=r})(Tk||(Tk={}));(function(t){function e(n,i,a,s){return{targetUri:n,targetRange:i,targetSelectionRange:a,originSelectionRange:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.targetRange)&&Oe.string(i.targetUri)&&Dr.is(i.targetSelectionRange)&&(Dr.is(i.originSelectionRange)||Oe.undefined(i.originSelectionRange))}o(r,"is"),t.is=r})(Joe||(Joe={}));(function(t){function e(n,i,a,s){return{red:n,green:i,blue:a,alpha:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.numberRange(i.red,0,1)&&Oe.numberRange(i.green,0,1)&&Oe.numberRange(i.blue,0,1)&&Oe.numberRange(i.alpha,0,1)}o(r,"is"),t.is=r})(QR||(QR={}));(function(t){function e(n,i){return{range:n,color:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&QR.is(i.color)}o(r,"is"),t.is=r})(ele||(ele={}));(function(t){function e(n,i,a){return{label:n,textEdit:i,additionalTextEdits:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.string(i.label)&&(Oe.undefined(i.textEdit)||gg.is(i))&&(Oe.undefined(i.additionalTextEdits)||Oe.typedArray(i.additionalTextEdits,gg.is))}o(r,"is"),t.is=r})(tle||(tle={}));(function(t){t.Comment="comment",t.Imports="imports",t.Region="region"})(rle||(rle={}));(function(t){function e(n,i,a,s,l,u){let h={startLine:n,endLine:i};return Oe.defined(a)&&(h.startCharacter=a),Oe.defined(s)&&(h.endCharacter=s),Oe.defined(l)&&(h.kind=l),Oe.defined(u)&&(h.collapsedText=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.uinteger(i.startLine)&&Oe.uinteger(i.startLine)&&(Oe.undefined(i.startCharacter)||Oe.uinteger(i.startCharacter))&&(Oe.undefined(i.endCharacter)||Oe.uinteger(i.endCharacter))&&(Oe.undefined(i.kind)||Oe.string(i.kind))}o(r,"is"),t.is=r})(nle||(nle={}));(function(t){function e(n,i){return{location:n,message:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Tk.is(i.location)&&Oe.string(i.message)}o(r,"is"),t.is=r})(ZR||(ZR={}));(function(t){t.Error=1,t.Warning=2,t.Information=3,t.Hint=4})(ile||(ile={}));(function(t){t.Unnecessary=1,t.Deprecated=2})(ale||(ale={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&Oe.string(n.href)}o(e,"is"),t.is=e})(sle||(sle={}));(function(t){function e(n,i,a,s,l,u){let h={range:n,message:i};return Oe.defined(a)&&(h.severity=a),Oe.defined(s)&&(h.code=s),Oe.defined(l)&&(h.source=l),Oe.defined(u)&&(h.relatedInformation=u),h}o(e,"create"),t.create=e;function r(n){var i;let a=n;return Oe.defined(a)&&Dr.is(a.range)&&Oe.string(a.message)&&(Oe.number(a.severity)||Oe.undefined(a.severity))&&(Oe.integer(a.code)||Oe.string(a.code)||Oe.undefined(a.code))&&(Oe.undefined(a.codeDescription)||Oe.string((i=a.codeDescription)===null||i===void 0?void 0:i.href))&&(Oe.string(a.source)||Oe.undefined(a.source))&&(Oe.undefined(a.relatedInformation)||Oe.typedArray(a.relatedInformation,ZR.is))}o(r,"is"),t.is=r})(kk||(kk={}));(function(t){function e(n,i,...a){let s={title:n,command:i};return Oe.defined(a)&&a.length>0&&(s.arguments=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.title)&&Oe.string(i.command)}o(r,"is"),t.is=r})(mg||(mg={}));(function(t){function e(a,s){return{range:a,newText:s}}o(e,"replace"),t.replace=e;function r(a,s){return{range:{start:a,end:a},newText:s}}o(r,"insert"),t.insert=r;function n(a){return{range:a,newText:""}}o(n,"del"),t.del=n;function i(a){let s=a;return Oe.objectLiteral(s)&&Oe.string(s.newText)&&Dr.is(s.range)}o(i,"is"),t.is=i})(gg||(gg={}));(function(t){function e(n,i,a){let s={label:n};return i!==void 0&&(s.needsConfirmation=i),a!==void 0&&(s.description=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Oe.string(i.label)&&(Oe.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(Oe.string(i.description)||i.description===void 0)}o(r,"is"),t.is=r})(JR||(JR={}));(function(t){function e(r){let n=r;return Oe.string(n)}o(e,"is"),t.is=e})(yg||(yg={}));(function(t){function e(a,s,l){return{range:a,newText:s,annotationId:l}}o(e,"replace"),t.replace=e;function r(a,s,l){return{range:{start:a,end:a},newText:s,annotationId:l}}o(r,"insert"),t.insert=r;function n(a,s){return{range:a,newText:"",annotationId:s}}o(n,"del"),t.del=n;function i(a){let s=a;return gg.is(s)&&(JR.is(s.annotationId)||yg.is(s.annotationId))}o(i,"is"),t.is=i})(ole||(ole={}));(function(t){function e(n,i){return{textDocument:n,edits:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&aM.is(i.textDocument)&&Array.isArray(i.edits)}o(r,"is"),t.is=r})(eM||(eM={}));(function(t){function e(n,i,a){let s={kind:"create",uri:n};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="create"&&Oe.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||Oe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Oe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(tM||(tM={}));(function(t){function e(n,i,a,s){let l={kind:"rename",oldUri:n,newUri:i};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(l.options=a),s!==void 0&&(l.annotationId=s),l}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="rename"&&Oe.string(i.oldUri)&&Oe.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||Oe.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||Oe.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(rM||(rM={}));(function(t){function e(n,i,a){let s={kind:"delete",uri:n};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),a!==void 0&&(s.annotationId=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&i.kind==="delete"&&Oe.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||Oe.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||Oe.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||yg.is(i.annotationId))}o(r,"is"),t.is=r})(nM||(nM={}));(function(t){function e(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(i=>Oe.string(i.kind)?tM.is(i)||rM.is(i)||nM.is(i):eM.is(i)))}o(e,"is"),t.is=e})(iM||(iM={}));(function(t){function e(n){return{uri:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)}o(r,"is"),t.is=r})(lle||(lle={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&Oe.integer(i.version)}o(r,"is"),t.is=r})(cle||(cle={}));(function(t){function e(n,i){return{uri:n,version:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&(i.version===null||Oe.integer(i.version))}o(r,"is"),t.is=r})(aM||(aM={}));(function(t){function e(n,i,a,s){return{uri:n,languageId:i,version:a,text:s}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.string(i.uri)&&Oe.string(i.languageId)&&Oe.integer(i.version)&&Oe.string(i.text)}o(r,"is"),t.is=r})(ule||(ule={}));(function(t){t.PlainText="plaintext",t.Markdown="markdown";function e(r){let n=r;return n===t.PlainText||n===t.Markdown}o(e,"is"),t.is=e})(sM||(sM={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(r)&&sM.is(n.kind)&&Oe.string(n.value)}o(e,"is"),t.is=e})(S2||(S2={}));(function(t){t.Text=1,t.Method=2,t.Function=3,t.Constructor=4,t.Field=5,t.Variable=6,t.Class=7,t.Interface=8,t.Module=9,t.Property=10,t.Unit=11,t.Value=12,t.Enum=13,t.Keyword=14,t.Snippet=15,t.Color=16,t.File=17,t.Reference=18,t.Folder=19,t.EnumMember=20,t.Constant=21,t.Struct=22,t.Event=23,t.Operator=24,t.TypeParameter=25})(hle||(hle={}));(function(t){t.PlainText=1,t.Snippet=2})(fle||(fle={}));(function(t){t.Deprecated=1})(dle||(dle={}));(function(t){function e(n,i,a){return{newText:n,insert:i,replace:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.newText)&&Dr.is(i.insert)&&Dr.is(i.replace)}o(r,"is"),t.is=r})(ple||(ple={}));(function(t){t.asIs=1,t.adjustIndentation=2})(mle||(mle={}));(function(t){function e(r){let n=r;return n&&(Oe.string(n.detail)||n.detail===void 0)&&(Oe.string(n.description)||n.description===void 0)}o(e,"is"),t.is=e})(gle||(gle={}));(function(t){function e(r){return{label:r}}o(e,"create"),t.create=e})(yle||(yle={}));(function(t){function e(r,n){return{items:r||[],isIncomplete:!!n}}o(e,"create"),t.create=e})(vle||(vle={}));(function(t){function e(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}o(e,"fromPlainText"),t.fromPlainText=e;function r(n){let i=n;return Oe.string(i)||Oe.objectLiteral(i)&&Oe.string(i.language)&&Oe.string(i.value)}o(r,"is"),t.is=r})(Ek||(Ek={}));(function(t){function e(r){let n=r;return!!n&&Oe.objectLiteral(n)&&(S2.is(n.contents)||Ek.is(n.contents)||Oe.typedArray(n.contents,Ek.is))&&(r.range===void 0||Dr.is(r.range))}o(e,"is"),t.is=e})(xle||(xle={}));(function(t){function e(r,n){return n?{label:r,documentation:n}:{label:r}}o(e,"create"),t.create=e})(ble||(ble={}));(function(t){function e(r,n,...i){let a={label:r};return Oe.defined(n)&&(a.documentation=n),Oe.defined(i)?a.parameters=i:a.parameters=[],a}o(e,"create"),t.create=e})(wle||(wle={}));(function(t){t.Text=1,t.Read=2,t.Write=3})(Tle||(Tle={}));(function(t){function e(r,n){let i={range:r};return Oe.number(n)&&(i.kind=n),i}o(e,"create"),t.create=e})(kle||(kle={}));(function(t){t.File=1,t.Module=2,t.Namespace=3,t.Package=4,t.Class=5,t.Method=6,t.Property=7,t.Field=8,t.Constructor=9,t.Enum=10,t.Interface=11,t.Function=12,t.Variable=13,t.Constant=14,t.String=15,t.Number=16,t.Boolean=17,t.Array=18,t.Object=19,t.Key=20,t.Null=21,t.EnumMember=22,t.Struct=23,t.Event=24,t.Operator=25,t.TypeParameter=26})(Ele||(Ele={}));(function(t){t.Deprecated=1})(Sle||(Sle={}));(function(t){function e(r,n,i,a,s){let l={name:r,kind:n,location:{uri:a,range:i}};return s&&(l.containerName=s),l}o(e,"create"),t.create=e})(Cle||(Cle={}));(function(t){function e(r,n,i,a){return a!==void 0?{name:r,kind:n,location:{uri:i,range:a}}:{name:r,kind:n,location:{uri:i}}}o(e,"create"),t.create=e})(Ale||(Ale={}));(function(t){function e(n,i,a,s,l,u){let h={name:n,detail:i,kind:a,range:s,selectionRange:l};return u!==void 0&&(h.children=u),h}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.name)&&Oe.number(i.kind)&&Dr.is(i.range)&&Dr.is(i.selectionRange)&&(i.detail===void 0||Oe.string(i.detail))&&(i.deprecated===void 0||Oe.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}o(r,"is"),t.is=r})(_le||(_le={}));(function(t){t.Empty="",t.QuickFix="quickfix",t.Refactor="refactor",t.RefactorExtract="refactor.extract",t.RefactorInline="refactor.inline",t.RefactorRewrite="refactor.rewrite",t.Source="source",t.SourceOrganizeImports="source.organizeImports",t.SourceFixAll="source.fixAll"})(Lle||(Lle={}));(function(t){t.Invoked=1,t.Automatic=2})(Sk||(Sk={}));(function(t){function e(n,i,a){let s={diagnostics:n};return i!=null&&(s.only=i),a!=null&&(s.triggerKind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.typedArray(i.diagnostics,kk.is)&&(i.only===void 0||Oe.typedArray(i.only,Oe.string))&&(i.triggerKind===void 0||i.triggerKind===Sk.Invoked||i.triggerKind===Sk.Automatic)}o(r,"is"),t.is=r})(Dle||(Dle={}));(function(t){function e(n,i,a){let s={title:n},l=!0;return typeof i=="string"?(l=!1,s.kind=i):mg.is(i)?s.command=i:s.edit=i,l&&a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return i&&Oe.string(i.title)&&(i.diagnostics===void 0||Oe.typedArray(i.diagnostics,kk.is))&&(i.kind===void 0||Oe.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||mg.is(i.command))&&(i.isPreferred===void 0||Oe.boolean(i.isPreferred))&&(i.edit===void 0||iM.is(i.edit))}o(r,"is"),t.is=r})(Nle||(Nle={}));(function(t){function e(n,i){let a={range:n};return Oe.defined(i)&&(a.data=i),a}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(i.range)&&(Oe.undefined(i.command)||mg.is(i.command))}o(r,"is"),t.is=r})(Rle||(Rle={}));(function(t){function e(n,i){return{tabSize:n,insertSpaces:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Oe.uinteger(i.tabSize)&&Oe.boolean(i.insertSpaces)}o(r,"is"),t.is=r})(Mle||(Mle={}));(function(t){function e(n,i,a){return{range:n,target:i,data:a}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(i.range)&&(Oe.undefined(i.target)||Oe.string(i.target))}o(r,"is"),t.is=r})(Ile||(Ile={}));(function(t){function e(n,i){return{range:n,parent:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Dr.is(i.range)&&(i.parent===void 0||t.is(i.parent))}o(r,"is"),t.is=r})(Ole||(Ole={}));(function(t){t.namespace="namespace",t.type="type",t.class="class",t.enum="enum",t.interface="interface",t.struct="struct",t.typeParameter="typeParameter",t.parameter="parameter",t.variable="variable",t.property="property",t.enumMember="enumMember",t.event="event",t.function="function",t.method="method",t.macro="macro",t.keyword="keyword",t.modifier="modifier",t.comment="comment",t.string="string",t.number="number",t.regexp="regexp",t.operator="operator",t.decorator="decorator"})(Ple||(Ple={}));(function(t){t.declaration="declaration",t.definition="definition",t.readonly="readonly",t.static="static",t.deprecated="deprecated",t.abstract="abstract",t.async="async",t.modification="modification",t.documentation="documentation",t.defaultLibrary="defaultLibrary"})(Ble||(Ble={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}o(e,"is"),t.is=e})(Fle||(Fle={}));(function(t){function e(n,i){return{range:n,text:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Oe.string(i.text)}o(r,"is"),t.is=r})(zle||(zle={}));(function(t){function e(n,i,a){return{range:n,variableName:i,caseSensitiveLookup:a}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&Oe.boolean(i.caseSensitiveLookup)&&(Oe.string(i.variableName)||i.variableName===void 0)}o(r,"is"),t.is=r})(Gle||(Gle={}));(function(t){function e(n,i){return{range:n,expression:i}}o(e,"create"),t.create=e;function r(n){let i=n;return i!=null&&Dr.is(i.range)&&(Oe.string(i.expression)||i.expression===void 0)}o(r,"is"),t.is=r})($le||($le={}));(function(t){function e(n,i){return{frameId:n,stoppedLocation:i}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.defined(i)&&Dr.is(n.stoppedLocation)}o(r,"is"),t.is=r})(Vle||(Vle={}));(function(t){t.Type=1,t.Parameter=2;function e(r){return r===1||r===2}o(e,"is"),t.is=e})(oM||(oM={}));(function(t){function e(n){return{value:n}}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&(i.tooltip===void 0||Oe.string(i.tooltip)||S2.is(i.tooltip))&&(i.location===void 0||Tk.is(i.location))&&(i.command===void 0||mg.is(i.command))}o(r,"is"),t.is=r})(lM||(lM={}));(function(t){function e(n,i,a){let s={position:n,label:i};return a!==void 0&&(s.kind=a),s}o(e,"create"),t.create=e;function r(n){let i=n;return Oe.objectLiteral(i)&&Xr.is(i.position)&&(Oe.string(i.label)||Oe.typedArray(i.label,lM.is))&&(i.kind===void 0||oM.is(i.kind))&&i.textEdits===void 0||Oe.typedArray(i.textEdits,gg.is)&&(i.tooltip===void 0||Oe.string(i.tooltip)||S2.is(i.tooltip))&&(i.paddingLeft===void 0||Oe.boolean(i.paddingLeft))&&(i.paddingRight===void 0||Oe.boolean(i.paddingRight))}o(r,"is"),t.is=r})(Ule||(Ule={}));(function(t){function e(r){return{kind:"snippet",value:r}}o(e,"createSnippet"),t.createSnippet=e})(Hle||(Hle={}));(function(t){function e(r,n,i,a){return{insertText:r,filterText:n,range:i,command:a}}o(e,"create"),t.create=e})(Wle||(Wle={}));(function(t){function e(r){return{items:r}}o(e,"create"),t.create=e})(Yle||(Yle={}));(function(t){t.Invoked=0,t.Automatic=1})(qle||(qle={}));(function(t){function e(r,n){return{range:r,text:n}}o(e,"create"),t.create=e})(Xle||(Xle={}));(function(t){function e(r,n){return{triggerKind:r,selectedCompletionInfo:n}}o(e,"create"),t.create=e})(jle||(jle={}));(function(t){function e(r){let n=r;return Oe.objectLiteral(n)&&KR.is(n.uri)&&Oe.string(n.name)}o(e,"is"),t.is=e})(Kle||(Kle={}));(function(t){function e(a,s,l,u){return new cM(a,s,l,u)}o(e,"create"),t.create=e;function r(a){let s=a;return!!(Oe.defined(s)&&Oe.string(s.uri)&&(Oe.undefined(s.languageId)||Oe.string(s.languageId))&&Oe.uinteger(s.lineCount)&&Oe.func(s.getText)&&Oe.func(s.positionAt)&&Oe.func(s.offsetAt))}o(r,"is"),t.is=r;function n(a,s){let l=a.getText(),u=i(s,(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),h=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],p=a.offsetAt(d.range.start),m=a.offsetAt(d.range.end);if(m<=h)l=l.substring(0,p)+d.newText+l.substring(m,l.length);else throw new Error("Overlapping edit");h=p}return l}o(n,"applyEdits"),t.applyEdits=n;function i(a,s){if(a.length<=1)return a;let l=a.length/2|0,u=a.slice(0,l),h=a.slice(l);i(u,s),i(h,s);let f=0,d=0,p=0;for(;f0&&e.push(r.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let r=this.getLineOffsets(),n=0,i=r.length;if(i===0)return Xr.create(0,e);for(;ne?i=s:n=s+1}let a=n-1;return Xr.create(a,e-r[a])}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line],i=e.line+1"u"}o(n,"undefined"),t.undefined=n;function i(m){return m===!0||m===!1}o(i,"boolean"),t.boolean=i;function a(m){return e.call(m)==="[object String]"}o(a,"string"),t.string=a;function s(m){return e.call(m)==="[object Number]"}o(s,"number"),t.number=s;function l(m,g,y){return e.call(m)==="[object Number]"&&g<=m&&m<=y}o(l,"numberRange"),t.numberRange=l;function u(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}o(u,"integer"),t.integer=u;function h(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}o(h,"uinteger"),t.uinteger=h;function f(m){return e.call(m)==="[object Function]"}o(f,"func"),t.func=f;function d(m){return m!==null&&typeof m=="object"}o(d,"objectLiteral"),t.objectLiteral=d;function p(m,g){return Array.isArray(m)&&m.every(g)}o(p,"typedArray"),t.typedArray=p})(Oe||(Oe={}))});var C2,A2,c0,u0,hM,vg,Ck=M(()=>{"use strict";uM();Yo();Ml();C2=class{static{o(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(e){return this.rootNode=new vg(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){let r=new u0;return r.grammarSource=e,r.root=this.rootNode,this.current.content.push(r),this.nodeStack.push(r),r}buildLeafNode(e,r){let n=new c0(e.startOffset,e.image.length,$m(e),e.tokenType,!1);return n.grammarSource=r,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){let r=e.container;if(r){let n=r.content.indexOf(e);n>=0&&r.content.splice(n,1)}}construct(e){let r=this.current;typeof e.$type=="string"&&(this.current.astNode=e),e.$cstNode=r;let n=this.nodeStack.pop();n?.content.length===0&&this.removeNode(n)}addHiddenTokens(e){for(let r of e){let n=new c0(r.startOffset,r.image.length,$m(r),r.tokenType,!0);n.root=this.rootNode,this.addHiddenToken(this.rootNode,n)}}addHiddenToken(e,r){let{offset:n,end:i}=r;for(let a=0;al&&i=0;e--){let r=this.content[e];if(!r.hidden)return r}return this.content[this.content.length-1]}},hM=class t extends Array{static{o(this,"CstNodeContainer")}constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,t.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,r,...n){return this.addParents(n),super.splice(e,r,...n)}addParents(e){for(let r of e)r.container=this.parent}},vg=class extends u0{static{o(this,"RootCstNodeImpl")}get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}});function fM(t){return t.$type===Ak}var Ak,Zle,Jle,_2,L2,_k,xg,D2,gze,dM,N2=M(()=>{"use strict";s0();Koe();Ac();Pl();es();Ck();Ak=Symbol("Datatype");o(fM,"isDataTypeNode");Zle="\u200B",Jle=o(t=>t.endsWith(Zle)?t:t+Zle,"withRuleSuffix"),_2=class{static{o(this,"AbstractLangiumParser")}constructor(e){this._unorderedGroups=new Map,this.lexer=e.parser.Lexer;let r=this.lexer.definition;this.wrapper=new dM(r,Object.assign(Object.assign({},e.parser.ParserConfig),{errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,r){this.wrapper.wrapOr(e,r)}optional(e,r){this.wrapper.wrapOption(e,r)}many(e,r){this.wrapper.wrapMany(e,r)}atLeastOne(e,r){this.wrapper.wrapAtLeastOne(e,r)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},L2=class extends _2{static{o(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new C2,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,r){let n=e.fragment?void 0:e2(e)?Ak:Zd(e),i=this.wrapper.DEFINE_RULE(Jle(e.name),this.startImplementation(n,r).bind(this));return e.entry&&(this.mainRule=i),i}parse(e){this.nodeBuilder.buildRootNode(e);let r=this.lexer.tokenize(e);this.wrapper.input=r.tokens;let n=this.mainRule.call(this.wrapper,{});return this.nodeBuilder.addHiddenTokens(r.hidden),this.unorderedGroups.clear(),{value:n,lexerErrors:r.errors,parserErrors:this.wrapper.errors}}startImplementation(e,r){return n=>{if(!this.isRecording()){let a={$type:e};this.stack.push(a),e===Ak&&(a.value="")}let i;try{i=r(n)}catch{i=void 0}return!this.isRecording()&&i===void 0&&(i=this.construct()),i}}consume(e,r,n){let i=this.wrapper.wrapConsume(e,r);if(!this.isRecording()&&this.isValidToken(i)){let a=this.nodeBuilder.buildLeafNode(i,n),{assignment:s,isCrossRef:l}=this.getAssignment(n),u=this.current;if(s){let h=Xo(n)?i.image:this.converter.convert(i.image,a);this.assign(s.operator,s.feature,h,a,l)}else if(fM(u)){let h=i.image;Xo(n)||(h=this.converter.convert(h,a).toString()),u.value+=h}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&typeof e.endOffset=="number"&&!isNaN(e.endOffset)}subrule(e,r,n,i){let a;this.isRecording()||(a=this.nodeBuilder.buildCompositeNode(n));let s=this.wrapper.wrapSubrule(e,r,i);!this.isRecording()&&a&&a.length>0&&this.performSubruleAssignment(s,n,a)}performSubruleAssignment(e,r,n){let{assignment:i,isCrossRef:a}=this.getAssignment(r);if(i)this.assign(i.operator,i.feature,e,n,a);else if(!i){let s=this.current;if(fM(s))s.value+=e.toString();else if(typeof e=="object"&&e){let l=e.$type,u=this.assignWithoutOverride(e,s);l&&(u.$type=l);let h=u;this.stack.pop(),this.stack.push(h)}}}action(e,r){if(!this.isRecording()){let n=this.current;if(!n.$cstNode&&r.feature&&r.operator){n=this.construct(!1);let a=n.$cstNode.feature;this.nodeBuilder.buildCompositeNode(a)}let i={$type:e};this.stack.pop(),this.stack.push(i),r.feature&&r.operator&&this.assign(r.operator,r.feature,n,n.$cstNode,!1)}}construct(e=!0){if(this.isRecording())return;let r=this.current;return CT(r),this.nodeBuilder.construct(r),e&&this.stack.pop(),fM(r)?this.converter.convert(r.value,r.$cstNode):($N(this.astReflection,r),r)}getAssignment(e){if(!this.assignmentMap.has(e)){let r=qd(e,Il);this.assignmentMap.set(e,{assignment:r,isCrossRef:r?Yd(r.terminal):!1})}return this.assignmentMap.get(e)}assign(e,r,n,i,a){let s=this.current,l;switch(a&&typeof n=="string"?l=this.linker.buildReference(s,r,i,n):l=n,e){case"=":{s[r]=l;break}case"?=":{s[r]=!0;break}case"+=":Array.isArray(s[r])||(s[r]=[]),s[r].push(l)}}assignWithoutOverride(e,r){for(let[n,i]of Object.entries(r)){let a=e[n];a===void 0?e[n]=i:Array.isArray(a)&&Array.isArray(i)&&(i.push(...a),e[n]=i)}return e}get definitionErrors(){return this.wrapper.definitionErrors}},_k=class{static{o(this,"AbstractParserErrorMessageProvider")}buildMismatchTokenMessage(e){return Fu.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Fu.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Fu.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Fu.buildEarlyExitMessage(e)}},xg=class extends _k{static{o(this,"LangiumParserErrorMessageProvider")}buildMismatchTokenMessage({expected:e,actual:r}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${r.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}},D2=class extends _2{static{o(this,"LangiumCompletionParser")}constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();let r=this.lexer.tokenize(e);return this.tokens=r.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,r){let n=this.wrapper.DEFINE_RULE(Jle(e.name),this.startImplementation(r).bind(this));return e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return r=>{let n=this.keepStackSize();try{e(r)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,r,n){this.wrapper.wrapConsume(e,r),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,r,n,i){this.before(n),this.wrapper.wrapSubrule(e,r,i),this.after(n)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){let r=this.elementStack.lastIndexOf(e);r>=0&&this.elementStack.splice(r)}}get currIdx(){return this.wrapper.currIdx}},gze={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new xg},dM=class extends b2{static{o(this,"ChevrotainWrapper")}constructor(e,r){let n=r&&"maxLookahead"in r;super(e,Object.assign(Object.assign(Object.assign({},gze),{lookaheadStrategy:n?new zu({maxLookahead:r.maxLookahead}):new E2}),r))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,r){return this.RULE(e,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,r){return this.consume(e,r)}wrapSubrule(e,r,n){return this.subrule(e,r,{ARGS:[n]})}wrapOr(e,r){this.or(e,r)}wrapOption(e,r){this.option(e,r)}wrapMany(e,r){this.many(e,r)}wrapAtLeastOne(e,r){this.atLeastOne(e,r)}}});function Dk(t,e,r){return yze({parser:e,tokens:r,rules:new Map,ruleNames:new Map},t),e}function yze(t,e){let r=Zv(e,!1),n=tn(e.rules).filter(Ma).filter(i=>r.has(i));for(let i of n){let a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});a.rules.set(i.name,t.parser.rule(i,h0(a,i.definition)))}}function h0(t,e,r=!1){let n;if(Xo(e))n=Eze(t,e);else if(Ru(e))n=vze(t,e);else if(Il(e))n=h0(t,e.terminal);else if(Yd(e))n=ece(t,e);else if(Ol(e))n=xze(t,e);else if(kT(e))n=wze(t,e);else if(ST(e))n=Tze(t,e);else if(tf(e))n=kze(t,e);else if(wN(e)){let i=t.consume++;n=o(()=>t.parser.consume(i,oo,e),"method")}else throw new Wd(e.$cstNode,`Unexpected element type: ${e.$type}`);return tce(t,r?void 0:Lk(e),n,e.cardinality)}function vze(t,e){let r=Zd(e);return()=>t.parser.action(r,e)}function xze(t,e){let r=e.rule.ref;if(Ma(r)){let n=t.subrule++,i=e.arguments.length>0?bze(r,e.arguments):()=>({});return a=>t.parser.subrule(n,rce(t,r),e,i(a))}else if(qo(r)){let n=t.consume++,i=pM(t,r.name);return()=>t.parser.consume(n,i,e)}else if(r)ef(r);else throw new Wd(e.$cstNode,`Undefined rule type: ${e.$type}`)}function bze(t,e){let r=e.map(n=>Gu(n.value));return n=>{let i={};for(let a=0;ae(n)||r(n)}else if(qD(t)){let e=Gu(t.left),r=Gu(t.right);return n=>e(n)&&r(n)}else if(eN(t)){let e=Gu(t.value);return r=>!e(r)}else if(iN(t)){let e=t.parameter.ref.name;return r=>r!==void 0&&r[e]===!0}else if(WD(t)){let e=!!t.true;return()=>e}ef(t)}function wze(t,e){if(e.elements.length===1)return h0(t,e.elements[0]);{let r=[];for(let i of e.elements){let a={ALT:h0(t,i,!0)},s=Lk(i);s&&(a.GATE=Gu(s)),r.push(a)}let n=t.or++;return i=>t.parser.alternatives(n,r.map(a=>{let s={ALT:o(()=>a.ALT(i),"ALT")},l=a.GATE;return l&&(s.GATE=()=>l(i)),s}))}}function Tze(t,e){if(e.elements.length===1)return h0(t,e.elements[0]);let r=[];for(let l of e.elements){let u={ALT:h0(t,l,!0)},h=Lk(l);h&&(u.GATE=Gu(h)),r.push(u)}let n=t.or++,i=o((l,u)=>{let h=u.getRuleStack().join("-");return`uGroup_${l}_${h}`},"idFunc"),a=o(l=>t.parser.alternatives(n,r.map((u,h)=>{let f={ALT:o(()=>!0,"ALT")},d=t.parser;f.ALT=()=>{if(u.ALT(l),!d.isRecording()){let m=i(n,d);d.unorderedGroups.get(m)||d.unorderedGroups.set(m,[]);let g=d.unorderedGroups.get(m);typeof g?.[h]>"u"&&(g[h]=!0)}};let p=u.GATE;return p?f.GATE=()=>p(l):f.GATE=()=>{let m=d.unorderedGroups.get(i(n,d));return!m?.[h]},f})),"alternatives"),s=tce(t,Lk(e),a,"*");return l=>{s(l),t.parser.isRecording()||t.parser.unorderedGroups.delete(i(n,t.parser))}}function kze(t,e){let r=e.elements.map(n=>h0(t,n));return n=>r.forEach(i=>i(n))}function Lk(t){if(tf(t))return t.guardCondition}function ece(t,e,r=e.terminal){if(r)if(Ol(r)&&Ma(r.rule.ref)){let n=t.subrule++;return i=>t.parser.subrule(n,rce(t,r.rule.ref),e,i)}else if(Ol(r)&&qo(r.rule.ref)){let n=t.consume++,i=pM(t,r.rule.ref.name);return()=>t.parser.consume(n,i,e)}else if(Xo(r)){let n=t.consume++,i=pM(t,r.value);return()=>t.parser.consume(n,i,e)}else throw new Error("Could not build cross reference parser");else{if(!e.type.ref)throw new Error("Could not resolve reference to type: "+e.type.$refText);let n=RT(e.type.ref),i=n?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+Zd(e.type.ref));return ece(t,e,i)}}function Eze(t,e){let r=t.consume++,n=t.tokens[e.value];if(!n)throw new Error("Could not find token for keyword: "+e.value);return()=>t.parser.consume(r,n,e)}function tce(t,e,r,n){let i=e&&Gu(e);if(!n)if(i){let a=t.or++;return s=>t.parser.alternatives(a,[{ALT:o(()=>r(s),"ALT"),GATE:o(()=>i(s),"GATE")},{ALT:vk(),GATE:o(()=>!i(s),"GATE")}])}else return r;if(n==="*"){let a=t.many++;return s=>t.parser.many(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else if(n==="+"){let a=t.many++;if(i){let s=t.or++;return l=>t.parser.alternatives(s,[{ALT:o(()=>t.parser.atLeastOne(a,{DEF:o(()=>r(l),"DEF")}),"ALT"),GATE:o(()=>i(l),"GATE")},{ALT:vk(),GATE:o(()=>!i(l),"GATE")}])}else return s=>t.parser.atLeastOne(a,{DEF:o(()=>r(s),"DEF")})}else if(n==="?"){let a=t.optional++;return s=>t.parser.optional(a,{DEF:o(()=>r(s),"DEF"),GATE:i?()=>i(s):void 0})}else ef(n)}function rce(t,e){let r=Sze(t,e),n=t.rules.get(r);if(!n)throw new Error(`Rule "${r}" not found."`);return n}function Sze(t,e){if(Ma(e))return e.name;if(t.ruleNames.has(e))return t.ruleNames.get(e);{let r=e,n=r.$container,i=e.$type;for(;!Ma(n);)(tf(n)||kT(n)||ST(n))&&(i=n.elements.indexOf(r).toString()+":"+i),r=n,n=n.$container;return i=n.name+":"+i,t.ruleNames.set(e,i),i}}function pM(t,e){let r=t.tokens[e];if(!r)throw new Error(`Token "${e}" not found."`);return r}var mM=M(()=>{"use strict";s0();Ac();gT();Rs();Pl();o(Dk,"createParser");o(yze,"buildRules");o(h0,"buildElement");o(vze,"buildAction");o(xze,"buildRuleCall");o(bze,"buildRuleCallPredicate");o(Gu,"buildPredicate");o(wze,"buildAlternatives");o(Tze,"buildUnorderedGroup");o(kze,"buildGroup");o(Lk,"getGuardCondition");o(ece,"buildCrossReference");o(Eze,"buildKeyword");o(tce,"wrap");o(rce,"getRule");o(Sze,"getRuleName");o(pM,"getToken")});function gM(t){let e=t.Grammar,r=t.parser.Lexer,n=new D2(t);return Dk(e,n,r.definition),n.finalize(),n}var yM=M(()=>{"use strict";N2();mM();o(gM,"createCompletionParser")});function vM(t){let e=nce(t);return e.finalize(),e}function nce(t){let e=t.Grammar,r=t.parser.Lexer,n=new L2(t);return Dk(e,n,r.definition)}var xM=M(()=>{"use strict";N2();mM();o(vM,"createLangiumParser");o(nce,"prepareLangiumParser")});var f0,bM=M(()=>{"use strict";s0();Ac();es();Pl();Wm();Rs();f0=class{static{o(this,"DefaultTokenBuilder")}buildTokens(e,r){let n=tn(Zv(e,!1)),i=this.buildTerminalTokens(n),a=this.buildKeywordTokens(n,i,r);return i.forEach(s=>{let l=s.PATTERN;typeof l=="object"&&l&&"test"in l&&DT(l)?a.unshift(s):a.push(s)}),a}buildTerminalTokens(e){return e.filter(qo).filter(r=>!r.fragment).map(r=>this.buildTerminalToken(r)).toArray()}buildTerminalToken(e){let r=Ym(e),n=this.requiresCustomPattern(r)?this.regexPatternFunction(r):r,i={name:e.name,PATTERN:n,LINE_BREAKS:!0};return e.hidden&&(i.GROUP=DT(r)?oi.SKIPPED:"hidden"),i}requiresCustomPattern(e){return e.flags.includes("u")?!0:!!(e.source.includes("?<=")||e.source.includes("?(r.lastIndex=i,r.exec(n))}buildKeywordTokens(e,r,n){return e.filter(Ma).flatMap(i=>_c(i).filter(Xo)).distinct(i=>i.value).toArray().sort((i,a)=>a.value.length-i.value.length).map(i=>this.buildKeywordToken(i,r,!!n?.caseInsensitive))}buildKeywordToken(e,r,n){return{name:e.value,PATTERN:this.buildKeywordPattern(e,n),LONGER_ALT:this.findLongerAlt(e,r)}}buildKeywordPattern(e,r){return r?new RegExp(XN(e.value)):e.value}findLongerAlt(e,r){return r.reduce((n,i)=>{let a=i?.PATTERN;return a?.source&&jN("^"+a.source+"$",e.value)&&n.push(i),n},[])}}});var d0,Nc,wM=M(()=>{"use strict";Ac();Pl();d0=class{static{o(this,"DefaultValueConverter")}convert(e,r){let n=r.grammarSource;if(Yd(n)&&(n=ZN(n)),Ol(n)){let i=n.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,e,r)}return e}runConverter(e,r,n){var i;switch(e.name.toUpperCase()){case"INT":return Nc.convertInt(r);case"STRING":return Nc.convertString(r);case"ID":return Nc.convertID(r)}switch((i=sR(e))===null||i===void 0?void 0:i.toLowerCase()){case"number":return Nc.convertNumber(r);case"boolean":return Nc.convertBoolean(r);case"bigint":return Nc.convertBigint(r);case"date":return Nc.convertDate(r);default:return r}}};(function(t){function e(h){let f="";for(let d=1;d{"use strict";Object.defineProperty(EM,"__esModule",{value:!0});var TM;function kM(){if(TM===void 0)throw new Error("No runtime abstraction layer installed");return TM}o(kM,"RAL");(function(t){function e(r){if(r===void 0)throw new Error("No runtime abstraction layer provided");TM=r}o(e,"install"),t.install=e})(kM||(kM={}));EM.default=kM});var sce=Ni(Ia=>{"use strict";Object.defineProperty(Ia,"__esModule",{value:!0});Ia.stringArray=Ia.array=Ia.func=Ia.error=Ia.number=Ia.string=Ia.boolean=void 0;function Cze(t){return t===!0||t===!1}o(Cze,"boolean");Ia.boolean=Cze;function ice(t){return typeof t=="string"||t instanceof String}o(ice,"string");Ia.string=ice;function Aze(t){return typeof t=="number"||t instanceof Number}o(Aze,"number");Ia.number=Aze;function _ze(t){return t instanceof Error}o(_ze,"error");Ia.error=_ze;function Lze(t){return typeof t=="function"}o(Lze,"func");Ia.func=Lze;function ace(t){return Array.isArray(t)}o(ace,"array");Ia.array=ace;function Dze(t){return ace(t)&&t.every(e=>ice(e))}o(Dze,"stringArray");Ia.stringArray=Dze});var AM=Ni(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});bg.Emitter=bg.Event=void 0;var Nze=SM(),oce;(function(t){let e={dispose(){}};t.None=function(){return e}})(oce||(bg.Event=oce={}));var CM=class{static{o(this,"CallbackList")}add(e,r=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(r),Array.isArray(n)&&n.push({dispose:o(()=>this.remove(e,r),"dispose")})}remove(e,r=null){if(!this._callbacks)return;let n=!1;for(let i=0,a=this._callbacks.length;i{this._callbacks||(this._callbacks=new CM),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,r);let i={dispose:o(()=>{this._callbacks&&(this._callbacks.remove(e,r),i.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))},"dispose")};return Array.isArray(n)&&n.push(i),i}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};bg.Emitter=Nk;Nk._noop=function(){}});var lce=Ni(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.CancellationTokenSource=wg.CancellationToken=void 0;var Rze=SM(),Mze=sce(),_M=AM(),Rk;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:_M.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:_M.Event.None});function e(r){let n=r;return n&&(n===t.None||n===t.Cancelled||Mze.boolean(n.isCancellationRequested)&&!!n.onCancellationRequested)}o(e,"is"),t.is=e})(Rk||(wg.CancellationToken=Rk={}));var Ize=Object.freeze(function(t,e){let r=(0,Rze.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),Mk=class{static{o(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Ize:(this._emitter||(this._emitter=new _M.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},LM=class{static{o(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new Mk),this._token}cancel(){this._token?this._token.cancel():this._token=Rk.Cancelled}dispose(){this._token?this._token instanceof Mk&&this._token.dispose():this._token=Rk.None}};wg.CancellationTokenSource=LM});var Cr={};var Ko=M(()=>{"use strict";Er(Cr,ka(lce(),1))});function NM(){return new Promise(t=>{typeof setImmediate>"u"?setTimeout(t,0):setImmediate(t)})}function uce(){return DM=Date.now(),new Cr.CancellationTokenSource}function hce(t){cce=t}function sf(t){return t===Rc}async function Gi(t){if(t===Cr.CancellationToken.None)return;let e=Date.now();if(e-DM>=cce&&(DM=e,await NM()),t.isCancellationRequested)throw Rc}var DM,cce,Rc,as,Qo=M(()=>{"use strict";Ko();o(NM,"delayNextTick");DM=0,cce=10;o(uce,"startCancelableOperation");o(hce,"setInterruptionPeriod");Rc=Symbol("OperationCancelled");o(sf,"isOperationCancelled");o(Gi,"interruptAndCheck");as=class{static{o(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=n=>(e(n),this),this.reject=n=>(r(n),this)})}}});function RM(t,e){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),i=t.slice(r);RM(n,e),RM(i,e);let a=0,s=0,l=0;for(;ar.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function Oze(t){let e=pce(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Ik,Tg,mce=M(()=>{"use strict";Ik=class t{static{o(this,"FullTextDocument")}constructor(e,r,n,i){this._uri=e,this._languageId=r,this._version=n,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let r=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(r,n)}return this._content}update(e,r){for(let n of e)if(t.isIncremental(n)){let i=pce(n.range),a=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,a)+n.text+this._content.substring(s,this._content.length);let l=Math.max(i.start.line,0),u=Math.max(i.end.line,0),h=this._lineOffsets,f=fce(n.text,!1,a);if(u-l===f.length)for(let p=0,m=f.length;pe?i=s:n=s+1}let a=n-1;return e=this.ensureBeforeEOL(e,r[a]),{line:a,character:e-r[a]}}offsetAt(e){let r=this.getLineOffsets();if(e.line>=r.length)return this._content.length;if(e.line<0)return 0;let n=r[e.line];if(e.character<=0)return n;let i=e.line+1r&&dce(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range!==void 0&&(r.rangeLength===void 0||typeof r.rangeLength=="number")}static isFull(e){let r=e;return r!=null&&typeof r.text=="string"&&r.range===void 0&&r.rangeLength===void 0}};(function(t){function e(i,a,s,l){return new Ik(i,a,s,l)}o(e,"create"),t.create=e;function r(i,a,s){if(i instanceof Ik)return i.update(a,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}o(r,"update"),t.update=r;function n(i,a){let s=i.getText(),l=RM(a.map(Oze),(f,d)=>{let p=f.range.start.line-d.range.start.line;return p===0?f.range.start.character-d.range.start.character:p}),u=0,h=[];for(let f of l){let d=i.offsetAt(f.range.start);if(du&&h.push(s.substring(u,d)),f.newText.length&&h.push(f.newText),u=i.offsetAt(f.range.end)}return h.push(s.substr(u)),h.join("")}o(n,"applyEdits"),t.applyEdits=n})(Tg||(Tg={}));o(RM,"mergeSort");o(fce,"computeLineOffsets");o(dce,"isEOL");o(pce,"getWellformedRange");o(Oze,"getWellformedEdit")});var gce,Os,kg,MM=M(()=>{"use strict";(()=>{"use strict";var t={470:i=>{function a(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}o(a,"e");function s(u,h){for(var f,d="",p=0,m=-1,g=0,y=0;y<=u.length;++y){if(y2){var v=d.lastIndexOf("/");if(v!==d.length-1){v===-1?(d="",p=0):p=(d=d.slice(0,v)).length-1-d.lastIndexOf("/"),m=y,g=0;continue}}else if(d.length===2||d.length===1){d="",p=0,m=y,g=0;continue}}h&&(d.length>0?d+="/..":d="..",p=2)}else d.length>0?d+="/"+u.slice(m+1,y):d=u.slice(m+1,y),p=y-m-1;m=y,g=0}else f===46&&g!==-1?++g:g=-1}return d}o(s,"r");var l={resolve:o(function(){for(var u,h="",f=!1,d=arguments.length-1;d>=-1&&!f;d--){var p;d>=0?p=arguments[d]:(u===void 0&&(u=process.cwd()),p=u),a(p),p.length!==0&&(h=p+"/"+h,f=p.charCodeAt(0)===47)}return h=s(h,!f),f?h.length>0?"/"+h:"/":h.length>0?h:"."},"resolve"),normalize:o(function(u){if(a(u),u.length===0)return".";var h=u.charCodeAt(0)===47,f=u.charCodeAt(u.length-1)===47;return(u=s(u,!h)).length!==0||h||(u="."),u.length>0&&f&&(u+="/"),h?"/"+u:u},"normalize"),isAbsolute:o(function(u){return a(u),u.length>0&&u.charCodeAt(0)===47},"isAbsolute"),join:o(function(){if(arguments.length===0)return".";for(var u,h=0;h0&&(u===void 0?u=f:u+="/"+f)}return u===void 0?".":l.normalize(u)},"join"),relative:o(function(u,h){if(a(u),a(h),u===h||(u=l.resolve(u))===(h=l.resolve(h)))return"";for(var f=1;fy){if(h.charCodeAt(m+x)===47)return h.slice(m+x+1);if(x===0)return h.slice(m+x)}else p>y&&(u.charCodeAt(f+x)===47?v=x:x===0&&(v=0));break}var b=u.charCodeAt(f+x);if(b!==h.charCodeAt(m+x))break;b===47&&(v=x)}var w="";for(x=f+v+1;x<=d;++x)x!==d&&u.charCodeAt(x)!==47||(w.length===0?w+="..":w+="/..");return w.length>0?w+h.slice(m+v):(m+=v,h.charCodeAt(m)===47&&++m,h.slice(m))},"relative"),_makeLong:o(function(u){return u},"_makeLong"),dirname:o(function(u){if(a(u),u.length===0)return".";for(var h=u.charCodeAt(0),f=h===47,d=-1,p=!0,m=u.length-1;m>=1;--m)if((h=u.charCodeAt(m))===47){if(!p){d=m;break}}else p=!1;return d===-1?f?"/":".":f&&d===1?"//":u.slice(0,d)},"dirname"),basename:o(function(u,h){if(h!==void 0&&typeof h!="string")throw new TypeError('"ext" argument must be a string');a(u);var f,d=0,p=-1,m=!0;if(h!==void 0&&h.length>0&&h.length<=u.length){if(h.length===u.length&&h===u)return"";var g=h.length-1,y=-1;for(f=u.length-1;f>=0;--f){var v=u.charCodeAt(f);if(v===47){if(!m){d=f+1;break}}else y===-1&&(m=!1,y=f+1),g>=0&&(v===h.charCodeAt(g)?--g==-1&&(p=f):(g=-1,p=y))}return d===p?p=y:p===-1&&(p=u.length),u.slice(d,p)}for(f=u.length-1;f>=0;--f)if(u.charCodeAt(f)===47){if(!m){d=f+1;break}}else p===-1&&(m=!1,p=f+1);return p===-1?"":u.slice(d,p)},"basename"),extname:o(function(u){a(u);for(var h=-1,f=0,d=-1,p=!0,m=0,g=u.length-1;g>=0;--g){var y=u.charCodeAt(g);if(y!==47)d===-1&&(p=!1,d=g+1),y===46?h===-1?h=g:m!==1&&(m=1):h!==-1&&(m=-1);else if(!p){f=g+1;break}}return h===-1||d===-1||m===0||m===1&&h===d-1&&h===f+1?"":u.slice(h,d)},"extname"),format:o(function(u){if(u===null||typeof u!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof u);return function(h,f){var d=f.dir||f.root,p=f.base||(f.name||"")+(f.ext||"");return d?d===f.root?d+p:d+"/"+p:p}(0,u)},"format"),parse:o(function(u){a(u);var h={root:"",dir:"",base:"",ext:"",name:""};if(u.length===0)return h;var f,d=u.charCodeAt(0),p=d===47;p?(h.root="/",f=1):f=0;for(var m=-1,g=0,y=-1,v=!0,x=u.length-1,b=0;x>=f;--x)if((d=u.charCodeAt(x))!==47)y===-1&&(v=!1,y=x+1),d===46?m===-1?m=x:b!==1&&(b=1):m!==-1&&(b=-1);else if(!v){g=x+1;break}return m===-1||y===-1||b===0||b===1&&m===y-1&&m===g+1?y!==-1&&(h.base=h.name=g===0&&p?u.slice(1,y):u.slice(g,y)):(g===0&&p?(h.name=u.slice(1,m),h.base=u.slice(1,y)):(h.name=u.slice(g,m),h.base=u.slice(g,y)),h.ext=u.slice(m,y)),g>0?h.dir=u.slice(0,g-1):p&&(h.dir="/"),h},"parse"),sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function r(i){var a=e[i];if(a!==void 0)return a.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,r),s.exports}o(r,"r"),r.d=(i,a)=>{for(var s in a)r.o(a,s)&&!r.o(i,s)&&Object.defineProperty(i,s,{enumerable:!0,get:a[s]})},r.o=(i,a)=>Object.prototype.hasOwnProperty.call(i,a),r.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var n={};(()=>{let i;r.r(n),r.d(n,{URI:o(()=>p,"URI"),Utils:o(()=>I,"Utils")}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let a=/^\w[\w\d+.-]*$/,s=/^\//,l=/^\/\//;function u(D,k){if(!D.scheme&&k)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${D.authority}", path: "${D.path}", query: "${D.query}", fragment: "${D.fragment}"}`);if(D.scheme&&!a.test(D.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(D.path){if(D.authority){if(!s.test(D.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(D.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}o(u,"s");let h="",f="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class p{static{o(this,"f")}static isUri(k){return k instanceof p||!!k&&typeof k.authority=="string"&&typeof k.fragment=="string"&&typeof k.path=="string"&&typeof k.query=="string"&&typeof k.scheme=="string"&&typeof k.fsPath=="string"&&typeof k.with=="function"&&typeof k.toString=="function"}scheme;authority;path;query;fragment;constructor(k,R,S,O,N,P=!1){typeof k=="object"?(this.scheme=k.scheme||h,this.authority=k.authority||h,this.path=k.path||h,this.query=k.query||h,this.fragment=k.fragment||h):(this.scheme=function(F,B){return F||B?F:"file"}(k,P),this.authority=R||h,this.path=function(F,B){switch(F){case"https":case"http":case"file":B?B[0]!==f&&(B=f+B):B=f}return B}(this.scheme,S||h),this.query=O||h,this.fragment=N||h,u(this,P))}get fsPath(){return b(this,!1)}with(k){if(!k)return this;let{scheme:R,authority:S,path:O,query:N,fragment:P}=k;return R===void 0?R=this.scheme:R===null&&(R=h),S===void 0?S=this.authority:S===null&&(S=h),O===void 0?O=this.path:O===null&&(O=h),N===void 0?N=this.query:N===null&&(N=h),P===void 0?P=this.fragment:P===null&&(P=h),R===this.scheme&&S===this.authority&&O===this.path&&N===this.query&&P===this.fragment?this:new g(R,S,O,N,P)}static parse(k,R=!1){let S=d.exec(k);return S?new g(S[2]||h,E(S[4]||h),E(S[5]||h),E(S[7]||h),E(S[9]||h),R):new g(h,h,h,h,h)}static file(k){let R=h;if(i&&(k=k.replace(/\\/g,f)),k[0]===f&&k[1]===f){let S=k.indexOf(f,2);S===-1?(R=k.substring(2),k=f):(R=k.substring(2,S),k=k.substring(S)||f)}return new g("file",R,k,h,h)}static from(k){let R=new g(k.scheme,k.authority,k.path,k.query,k.fragment);return u(R,!0),R}toString(k=!1){return w(this,k)}toJSON(){return this}static revive(k){if(k){if(k instanceof p)return k;{let R=new g(k);return R._formatted=k.external,R._fsPath=k._sep===m?k.fsPath:null,R}}return k}}let m=i?1:void 0;class g extends p{static{o(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=b(this,!1)),this._fsPath}toString(k=!1){return k?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let k={$mid:1};return this._fsPath&&(k.fsPath=this._fsPath,k._sep=m),this._formatted&&(k.external=this._formatted),this.path&&(k.path=this.path),this.scheme&&(k.scheme=this.scheme),this.authority&&(k.authority=this.authority),this.query&&(k.query=this.query),this.fragment&&(k.fragment=this.fragment),k}}let y={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function v(D,k,R){let S,O=-1;for(let N=0;N=97&&P<=122||P>=65&&P<=90||P>=48&&P<=57||P===45||P===46||P===95||P===126||k&&P===47||R&&P===91||R&&P===93||R&&P===58)O!==-1&&(S+=encodeURIComponent(D.substring(O,N)),O=-1),S!==void 0&&(S+=D.charAt(N));else{S===void 0&&(S=D.substr(0,N));let F=y[P];F!==void 0?(O!==-1&&(S+=encodeURIComponent(D.substring(O,N)),O=-1),S+=F):O===-1&&(O=N)}}return O!==-1&&(S+=encodeURIComponent(D.substring(O))),S!==void 0?S:D}o(v,"d");function x(D){let k;for(let R=0;R1&&D.scheme==="file"?`//${D.authority}${D.path}`:D.path.charCodeAt(0)===47&&(D.path.charCodeAt(1)>=65&&D.path.charCodeAt(1)<=90||D.path.charCodeAt(1)>=97&&D.path.charCodeAt(1)<=122)&&D.path.charCodeAt(2)===58?k?D.path.substr(1):D.path[1].toLowerCase()+D.path.substr(2):D.path,i&&(R=R.replace(/\//g,"\\")),R}o(b,"m");function w(D,k){let R=k?x:v,S="",{scheme:O,authority:N,path:P,query:F,fragment:B}=D;if(O&&(S+=O,S+=":"),(N||O==="file")&&(S+=f,S+=f),N){let $=N.indexOf("@");if($!==-1){let z=N.substr(0,$);N=N.substr($+1),$=z.lastIndexOf(":"),$===-1?S+=R(z,!1,!1):(S+=R(z.substr(0,$),!1,!1),S+=":",S+=R(z.substr($+1),!1,!0)),S+="@"}N=N.toLowerCase(),$=N.lastIndexOf(":"),$===-1?S+=R(N,!1,!0):(S+=R(N.substr(0,$),!1,!0),S+=N.substr($))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){let $=P.charCodeAt(1);$>=65&&$<=90&&(P=`/${String.fromCharCode($+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){let $=P.charCodeAt(0);$>=65&&$<=90&&(P=`${String.fromCharCode($+32)}:${P.substr(2)}`)}S+=R(P,!0,!1)}return F&&(S+="?",S+=R(F,!1,!1)),B&&(S+="#",S+=k?B:v(B,!1,!1)),S}o(w,"y");function _(D){try{return decodeURIComponent(D)}catch{return D.length>3?D.substr(0,3)+_(D.substr(3)):D}}o(_,"v");let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(D){return D.match(T)?D.replace(T,k=>_(k)):D}o(E,"C");var L=r(470);let C=L.posix||L,A="/";var I;(function(D){D.joinPath=function(k,...R){return k.with({path:C.join(k.path,...R)})},D.resolvePath=function(k,...R){let S=k.path,O=!1;S[0]!==A&&(S=A+S,O=!0);let N=C.resolve(S,...R);return O&&N[0]===A&&!k.authority&&(N=N.substring(1)),k.with({path:N})},D.dirname=function(k){if(k.path.length===0||k.path===A)return k;let R=C.dirname(k.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),k.with({path:R})},D.basename=function(k){return C.basename(k.path)},D.extname=function(k){return C.extname(k.path)}})(I||(I={}))})(),gce=n})();({URI:Os,Utils:kg}=gce)});var ss,Mc=M(()=>{"use strict";MM();(function(t){t.basename=kg.basename,t.dirname=kg.dirname,t.extname=kg.extname,t.joinPath=kg.joinPath,t.resolvePath=kg.resolvePath;function e(n,i){return n?.toString()===i?.toString()}o(e,"equals"),t.equals=e;function r(n,i){let a=typeof n=="string"?n:n.path,s=typeof i=="string"?i:i.path,l=a.split("/").filter(p=>p.length>0),u=s.split("/").filter(p=>p.length>0),h=0;for(;h{"use strict";mce();Eg();Ko();Rs();Mc();(function(t){t[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated"})(bn||(bn={}));R2=class{static{o(this,"DefaultLangiumDocumentFactory")}constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,r=Cr.CancellationToken.None){let n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,r)}fromTextDocument(e,r,n){return r=r??Os.parse(e.uri),n?this.createAsync(r,e,n):this.create(r,e)}fromString(e,r,n){return n?this.createAsync(r,e,n):this.create(r,e)}fromModel(e,r){return this.create(r,{$model:e})}create(e,r){if(typeof r=="string"){let n=this.parse(e,r);return this.createLangiumDocument(n,e,void 0,r)}else if("$model"in r){let n={value:r.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}else{let n=this.parse(e,r.getText());return this.createLangiumDocument(n,e,r)}}async createAsync(e,r,n){if(typeof r=="string"){let i=await this.parseAsync(e,r,n);return this.createLangiumDocument(i,e,void 0,r)}else{let i=await this.parseAsync(e,r.getText(),n);return this.createLangiumDocument(i,e,r)}}createLangiumDocument(e,r,n,i){let a;if(n)a={parseResult:e,uri:r,state:bn.Parsed,references:[],textDocument:n};else{let s=this.createTextDocumentGetter(r,i);a={parseResult:e,uri:r,state:bn.Parsed,references:[],get textDocument(){return s()}}}return e.value.$document=a,a}async update(e,r){var n,i;let a=(n=e.parseResult.value.$cstNode)===null||n===void 0?void 0:n.root.fullText,s=(i=this.textDocuments)===null||i===void 0?void 0:i.get(e.uri.toString()),l=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{let u=this.createTextDocumentGetter(e.uri,l);Object.defineProperty(e,"textDocument",{get:u})}return a!==l&&(e.parseResult=await this.parseAsync(e.uri,l,r),e.parseResult.value.$document=e),e.state=bn.Parsed,e}parse(e,r){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(r)}parseAsync(e,r,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(r,n)}createTextDocumentGetter(e,r){let n=this.serviceRegistry,i;return()=>i??(i=Tg.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,r??""))}},M2=class{static{o(this,"DefaultLangiumDocuments")}constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory}get all(){return tn(this.documentMap.values())}addDocument(e){let r=e.uri.toString();if(this.documentMap.has(r))throw new Error(`A document with the URI '${r}' is already present.`);this.documentMap.set(r,e)}getDocument(e){let r=e.toString();return this.documentMap.get(r)}async getOrCreateDocument(e,r){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,r),this.addDocument(n),n)}createDocument(e,r,n){if(n)return this.langiumDocumentFactory.fromString(r,e,n).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(r,e);return this.addDocument(i),i}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=bn.Changed,n.precomputedScopes=void 0,n.references=[],n.diagnostics=void 0),n}deleteDocument(e){let r=e.toString(),n=this.documentMap.get(r);return n&&(n.state=bn.Changed,this.documentMap.delete(r)),n}}});var I2,IM=M(()=>{"use strict";Ko();Yo();es();Qo();Eg();I2=class{static{o(this,"DefaultLinker")}constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,r=Cr.CancellationToken.None){for(let n of jo(e.parseResult.value))await Gi(r),Um(n).forEach(i=>this.doLink(i,e))}doLink(e,r){let n=e.reference;if(n._ref===void 0)try{let i=this.getCandidate(e);if(Vd(i))n._ref=i;else if(n._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)){let a=this.loadAstNode(i);n._ref=a??this.createLinkingError(e,i)}}catch(i){n._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${n.$refText}': ${i}`})}r.references.push(n)}unlink(e){for(let r of e.references)delete r._ref,delete r._nodeDescription;e.references=[]}getCandidate(e){let n=this.scopeProvider.getScope(e).getElement(e.reference.$refText);return n??this.createLinkingError(e)}buildReference(e,r,n,i){let a=this,s={$refNode:n,$refText:i,get ref(){var l;if(ei(this._ref))return this._ref;if(MD(this._nodeDescription)){let u=a.loadAstNode(this._nodeDescription);this._ref=u??a.createLinkingError({reference:s,container:e,property:r},this._nodeDescription)}else if(this._ref===void 0){let u=a.getLinkedNode({reference:s,container:e,property:r});if(u.error&&Fi(e).state{"use strict";Pl();o(yce,"isNamed");O2=class{static{o(this,"DefaultNameProvider")}getName(e){if(yce(e))return e.name}getNameNode(e){return Jv(e.$cstNode,"name")}}});var P2,PM=M(()=>{"use strict";Pl();Yo();es();Ml();Rs();Mc();P2=class{static{o(this,"DefaultReferences")}constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){let r=iR(e),n=e.astNode;if(r&&n){let i=n[r.feature];if(ma(i))return i.ref;if(Array.isArray(i)){for(let a of i)if(ma(a)&&a.$refNode&&a.$refNode.offset<=e.offset&&a.$refNode.end>=e.end)return a.ref}}if(n){let i=this.nameProvider.getNameNode(n);if(i&&(i===e||OD(e,i)))return n}}}findDeclarationNode(e){let r=this.findDeclaration(e);if(r?.$cstNode){let n=this.nameProvider.getNameNode(r);return n??r.$cstNode}}findReferences(e,r){let n=[];if(r.includeDeclaration){let a=this.getReferenceToSelf(e);a&&n.push(a)}let i=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return r.documentUri&&(i=i.filter(a=>ss.equals(a.sourceUri,r.documentUri))),n.push(...i),tn(n)}getReferenceToSelf(e){let r=this.nameProvider.getNameNode(e);if(r){let n=Fi(e),i=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:i,targetUri:n.uri,targetPath:i,segment:Hd(r),local:!0}}}}});var Ic,p0,Sg=M(()=>{"use strict";Rs();Ic=class{static{o(this,"MultiMap")}constructor(e){if(this.map=new Map,e)for(let[r,n]of e)this.add(r,n)}get size(){return Gm.sum(tn(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,r){if(r===void 0)return this.map.delete(e);{let n=this.map.get(e);if(n){let i=n.indexOf(r);if(i>=0)return n.length===1?this.map.delete(e):n.splice(i,1),!0}return!1}}get(e){var r;return(r=this.map.get(e))!==null&&r!==void 0?r:[]}has(e,r){if(r===void 0)return this.map.has(e);{let n=this.map.get(e);return n?n.indexOf(r)>=0:!1}}add(e,r){return this.map.has(e)?this.map.get(e).push(r):this.map.set(e,[r]),this}addAll(e,r){return this.map.has(e)?this.map.get(e).push(...r):this.map.set(e,Array.from(r)),this}forEach(e){this.map.forEach((r,n)=>r.forEach(i=>e(i,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return tn(this.map.entries()).flatMap(([e,r])=>r.map(n=>[e,n]))}keys(){return tn(this.map.keys())}values(){return tn(this.map.values()).flat()}entriesGroupedByKey(){return tn(this.map.entries())}},p0=class{static{o(this,"BiMap")}get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(let[r,n]of e)this.set(r,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,r){return this.map.set(e,r),this.inverse.set(r,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){let r=this.map.get(e);return r!==void 0?(this.map.delete(e),this.inverse.delete(r),!0):!1}}});var B2,BM=M(()=>{"use strict";Ko();es();Sg();Qo();B2=class{static{o(this,"DefaultScopeComputation")}constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,r=Cr.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,r)}async computeExportsForNode(e,r,n=qv,i=Cr.CancellationToken.None){let a=[];this.exportNode(e,a,r);for(let s of n(e))await Gi(i),this.exportNode(s,a,r);return a}exportNode(e,r,n){let i=this.nameProvider.getName(e);i&&r.push(this.descriptions.createDescription(e,i,n))}async computeLocalScopes(e,r=Cr.CancellationToken.None){let n=e.parseResult.value,i=new Ic;for(let a of _c(n))await Gi(r),this.processNode(a,e,i);return i}processNode(e,r,n){let i=e.$container;if(i){let a=this.nameProvider.getName(e);a&&n.add(i,this.descriptions.createDescription(e,a,r))}}}});var Cg,F2,Pze,FM=M(()=>{"use strict";Rs();Cg=class{static{o(this,"StreamScope")}constructor(e,r,n){var i;this.elements=e,this.outerScope=r,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){let r=this.caseInsensitive?this.elements.find(n=>n.name.toLowerCase()===e.toLowerCase()):this.elements.find(n=>n.name===e);if(r)return r;if(this.outerScope)return this.outerScope.getElement(e)}},F2=class{static{o(this,"MapScope")}constructor(e,r,n){var i;this.elements=new Map,this.caseInsensitive=(i=n?.caseInsensitive)!==null&&i!==void 0?i:!1;for(let a of e){let s=this.caseInsensitive?a.name.toLowerCase():a.name;this.elements.set(s,a)}this.outerScope=r}getElement(e){let r=this.caseInsensitive?e.toLowerCase():e,n=this.elements.get(r);if(n)return n;if(this.outerScope)return this.outerScope.getElement(e)}getAllElements(){let e=tn(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}},Pze={getElement(){},getAllElements(){return $v}}});var Ag,z2,m0,Ok,_g,Pk=M(()=>{"use strict";Ag=class{static{o(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},z2=class extends Ag{static{o(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,r){this.throwIfDisposed(),this.cache.set(e,r)}get(e,r){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(r){let n=r();return this.cache.set(e,n),n}else return}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}},m0=class extends Ag{static{o(this,"ContextCache")}constructor(e){super(),this.cache=new Map,this.converter=e??(r=>r)}has(e,r){return this.throwIfDisposed(),this.cacheForContext(e).has(r)}set(e,r,n){this.throwIfDisposed(),this.cacheForContext(e).set(r,n)}get(e,r,n){this.throwIfDisposed();let i=this.cacheForContext(e);if(i.has(r))return i.get(r);if(n){let a=n();return i.set(r,a),a}else return}delete(e,r){return this.throwIfDisposed(),this.cacheForContext(e).delete(r)}clear(e){if(this.throwIfDisposed(),e){let r=this.converter(e);this.cache.delete(r)}else this.cache.clear()}cacheForContext(e){let r=this.converter(e),n=this.cache.get(r);return n||(n=new Map,this.cache.set(r,n)),n}},Ok=class extends m0{static{o(this,"DocumentCache")}constructor(e){super(r=>r.toString()),this.onDispose(e.workspace.DocumentBuilder.onUpdate((r,n)=>{let i=r.concat(n);for(let a of i)this.clear(a)}))}},_g=class extends z2{static{o(this,"WorkspaceCache")}constructor(e){super(),this.onDispose(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}});var G2,zM=M(()=>{"use strict";FM();es();Rs();Pk();G2=class{static{o(this,"DefaultScopeProvider")}constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new _g(e.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Fi(e.container).precomputedScopes;if(i){let s=e.container;do{let l=i.get(s);l.length>0&&r.push(tn(l).filter(u=>this.reflection.isSubtype(u.type,n))),s=s.$container}while(s)}let a=this.getGlobalScope(n,e);for(let s=r.length-1;s>=0;s--)a=this.createScope(r[s],a);return a}createScope(e,r,n){return new Cg(tn(e),r,n)}createScopeForNodes(e,r,n){let i=tn(e).map(a=>{let s=this.nameProvider.getName(a);if(s)return this.descriptions.createDescription(a,s)}).nonNullable();return new Cg(i,r,n)}getGlobalScope(e,r){return this.globalScopeCache.get(e,()=>new F2(this.indexManager.allElements(e)))}}});function GM(t){return typeof t.$comment=="string"}function vce(t){return typeof t=="object"&&!!t&&("$ref"in t||"$error"in t)}var $2,Bk=M(()=>{"use strict";MM();Yo();es();Pl();o(GM,"isAstNodeWithComment");o(vce,"isIntermediateReference");$2=class{static{o(this,"DefaultJsonSerializer")}constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,r={}){let n=r?.replacer,i=o((s,l)=>this.replacer(s,l,r),"defaultReplacer"),a=n?(s,l)=>n(s,l,i):i;try{return this.currentDocument=Fi(e),JSON.stringify(e,a,r?.space)}finally{this.currentDocument=void 0}}deserialize(e,r={}){let n=JSON.parse(e);return this.linkNode(n,n,r),n}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:l}){var u,h,f,d;if(!this.ignoreProperties.has(e))if(ma(r)){let p=r.ref,m=n?r.$refText:void 0;if(p){let g=Fi(p),y="";this.currentDocument&&this.currentDocument!==g&&(l?y=l(g.uri,r):y=g.uri.toString());let v=this.astNodeLocator.getAstNodePath(p);return{$ref:`${y}#${v}`,$refText:m}}else return{$error:(h=(u=r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"Could not resolve reference",$refText:m}}else if(ei(r)){let p;if(a&&(p=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),(!e||r.$document)&&p?.$textRegion&&(p.$textRegion.documentURI=(f=this.currentDocument)===null||f===void 0?void 0:f.uri.toString())),i&&!e&&(p??(p=Object.assign({},r)),p.$sourceText=(d=r.$cstNode)===null||d===void 0?void 0:d.text),s){p??(p=Object.assign({},r));let m=this.commentProvider.getComment(r);m&&(p.$comment=m.replace(/\r/g,""))}return p??r}else return r}addAstNodeRegionWithAssignmentsTo(e){let r=o(n=>({offset:n.offset,end:n.end,length:n.length,range:n.range}),"createDocumentSegment");if(e.$cstNode){let n=e.$textRegion=r(e.$cstNode),i=n.assignments={};return Object.keys(e).filter(a=>!a.startsWith("$")).forEach(a=>{let s=eR(e.$cstNode,a).map(r);s.length!==0&&(i[a]=s)}),e}}linkNode(e,r,n,i,a,s){for(let[u,h]of Object.entries(e))if(Array.isArray(h))for(let f=0;f{"use strict";Mc();V2=class{static{o(this,"DefaultServiceRegistry")}register(e){if(!this.singleton&&!this.map){this.singleton=e;return}if(!this.map&&(this.map={},this.singleton)){for(let r of this.singleton.LanguageMetaData.fileExtensions)this.map[r]=this.singleton;this.singleton=void 0}for(let r of e.LanguageMetaData.fileExtensions)this.map[r]!==void 0&&this.map[r]!==e&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${e.LanguageMetaData.languageId}'.`),this.map[r]=e}getServices(e){if(this.singleton!==void 0)return this.singleton;if(this.map===void 0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let r=ss.extname(e),n=this.map[r];if(!n)throw new Error(`The service registry contains no services for the extension '${r}'.`);return n}get all(){return this.singleton!==void 0?[this.singleton]:this.map!==void 0?Object.values(this.map):[]}}});function Fk(t){return{code:t}}var Lg,U2,H2=M(()=>{"use strict";Sg();Qo();Rs();o(Fk,"diagnosticData");(function(t){t.all=["fast","slow","built-in"]})(Lg||(Lg={}));U2=class{static{o(this,"ValidationRegistry")}constructor(e){this.entries=new Ic,this.reflection=e.shared.AstReflection}register(e,r=this,n="fast"){if(n==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(let[i,a]of Object.entries(e)){let s=a;if(Array.isArray(s))for(let l of s){let u={check:this.wrapValidationException(l,r),category:n};this.addEntry(i,u)}else if(typeof s=="function"){let l={check:this.wrapValidationException(s,r),category:n};this.addEntry(i,l)}}}wrapValidationException(e,r){return async(n,i,a)=>{try{await e.call(r,n,i,a)}catch(s){if(sf(s))throw s;console.error("An error occurred during validation:",s);let l=s instanceof Error?s.message:String(s);s instanceof Error&&s.stack&&console.error(s.stack),i("error","An error occurred during validation: "+l,{node:n})}}}addEntry(e,r){if(e==="AstNode"){this.entries.add("AstNode",r);return}for(let n of this.reflection.getAllSubTypes(e))this.entries.add(n,r)}getChecks(e,r){let n=tn(this.entries.get(e)).concat(this.entries.get("AstNode"));return r&&(n=n.filter(i=>r.includes(i.category))),n.map(i=>i.check)}}});function xce(t){if(t.range)return t.range;let e;return typeof t.property=="string"?e=Jv(t.node.$cstNode,t.property,t.index):typeof t.keyword=="string"&&(e=rR(t.node.$cstNode,t.keyword,t.index)),e??(e=t.node.$cstNode),e?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function zk(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}var W2,$u,VM=M(()=>{"use strict";Ko();Pl();es();Ml();Qo();H2();W2=class{static{o(this,"DefaultDocumentValidator")}constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,r={},n=Cr.CancellationToken.None){let i=e.parseResult,a=[];if(await Gi(n),(!r.categories||r.categories.includes("built-in"))&&(this.processLexingErrors(i,a,r),r.stopAfterLexingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.LexingError})||(this.processParsingErrors(i,a,r),r.stopAfterParsingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.ParsingError}))||(this.processLinkingErrors(e,a,r),r.stopAfterLinkingErrors&&a.some(s=>{var l;return((l=s.data)===null||l===void 0?void 0:l.code)===$u.LinkingError}))))return a;try{a.push(...await this.validateAst(i.value,r,n))}catch(s){if(sf(s))throw s;console.error("An error occurred during validation:",s)}return await Gi(n),a}processLexingErrors(e,r,n){for(let i of e.lexerErrors){let a={severity:zk("error"),range:{start:{line:i.line-1,character:i.column-1},end:{line:i.line-1,character:i.column+i.length-1}},message:i.message,data:Fk($u.LexingError),source:this.getSource()};r.push(a)}}processParsingErrors(e,r,n){for(let i of e.parserErrors){let a;if(isNaN(i.token.startOffset)){if("previousToken"in i){let s=i.previousToken;if(isNaN(s.startOffset)){let l={line:0,character:0};a={start:l,end:l}}else{let l={line:s.endLine-1,character:s.endColumn};a={start:l,end:l}}}}else a=$m(i.token);if(a){let s={severity:zk("error"),range:a,message:i.message,data:Fk($u.ParsingError),source:this.getSource()};r.push(s)}}}processLinkingErrors(e,r,n){for(let i of e.references){let a=i.error;if(a){let s={node:a.container,property:a.property,index:a.index,data:{code:$u.LinkingError,containerType:a.container.$type,property:a.property,refText:a.reference.$refText}};r.push(this.toDiagnostic("error",a.message,s))}}}async validateAst(e,r,n=Cr.CancellationToken.None){let i=[],a=o((s,l,u)=>{i.push(this.toDiagnostic(s,l,u))},"acceptor");return await Promise.all(jo(e).map(async s=>{await Gi(n);let l=this.validationRegistry.getChecks(s.$type,r.categories);for(let u of l)await u(s,a,n)})),i}toDiagnostic(e,r,n){return{message:r,range:xce(n),severity:zk(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};o(xce,"getDiagnosticRange");o(zk,"toDiagnosticSeverity");(function(t){t.LexingError="lexing-error",t.ParsingError="parsing-error",t.LinkingError="linking-error"})($u||($u={}))});var Y2,q2,UM=M(()=>{"use strict";Ko();Yo();es();Ml();Qo();Mc();Y2=class{static{o(this,"DefaultAstNodeDescriptionProvider")}constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,r,n=Fi(e)){r??(r=this.nameProvider.getName(e));let i=this.astNodeLocator.getAstNodePath(e);if(!r)throw new Error(`Node at path ${i} has no name.`);let a,s=o(()=>{var l;return a??(a=Hd((l=this.nameProvider.getNameNode(e))!==null&&l!==void 0?l:e.$cstNode))},"nameSegmentGetter");return{node:e,name:r,get nameSegment(){return s()},selectionSegment:Hd(e.$cstNode),type:e.$type,documentUri:n.uri,path:i}}},q2=class{static{o(this,"DefaultReferenceDescriptionProvider")}constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,r=Cr.CancellationToken.None){let n=[],i=e.parseResult.value;for(let a of jo(i))await Gi(r),Um(a).filter(s=>!Vd(s)).forEach(s=>{let l=this.createDescription(s);l&&n.push(l)});return n}createDescription(e){let r=e.reference.$nodeDescription,n=e.reference.$refNode;if(!r||!n)return;let i=Fi(e.container).uri;return{sourceUri:i,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:r.documentUri,targetPath:r.path,segment:Hd(n),local:ss.equals(r.documentUri,i)}}}});var X2,HM=M(()=>{"use strict";X2=class{static{o(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){let r=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return r+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:r}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return r!==void 0?e+this.indexSeparator+r:e}getAstNode(e,r){return r.split(this.segmentSeparator).reduce((i,a)=>{if(!i||a.length===0)return i;let s=a.indexOf(this.indexSeparator);if(s>0){let l=a.substring(0,s),u=parseInt(a.substring(s+1)),h=i[l];return h?.[u]}return i[a]},e)}}});var j2,WM=M(()=>{"use strict";Qo();j2=class{static{o(this,"DefaultConfigurationProvider")}constructor(e){this._ready=new as,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var r,n;this.workspaceConfig=(n=(r=e.capabilities.workspace)===null||r===void 0?void 0:r.configuration)!==null&&n!==void 0?n:!1}async initialized(e){if(this.workspaceConfig){if(e.register){let r=this.serviceRegistry.all;e.register({section:r.map(n=>this.toSectionName(n.LanguageMetaData.languageId))})}if(e.fetchConfiguration){let r=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(r);r.forEach((i,a)=>{this.updateSectionConfiguration(i.section,n[a])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(r=>{this.updateSectionConfiguration(r,e.settings[r])})}updateSectionConfiguration(e,r){this.settings[e]=r}async getConfiguration(e,r){await this.ready;let n=this.toSectionName(e);if(this.settings[n])return this.settings[n][r]}toSectionName(e){return`${e}`}}});var g0,YM=M(()=>{"use strict";(function(t){function e(r){return{dispose:o(async()=>await r(),"dispose")}}o(e,"create"),t.create=e})(g0||(g0={}))});var K2,qM=M(()=>{"use strict";Ko();YM();Sg();Qo();Rs();H2();Eg();K2=class{static{o(this,"DefaultDocumentBuilder")}constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Ic,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=bn.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,r={},n=Cr.CancellationToken.None){var i,a;for(let s of e){let l=s.uri.toString();if(s.state===bn.Validated){if(typeof r.validation=="boolean"&&r.validation)s.state=bn.IndexedReferences,s.diagnostics=void 0,this.buildState.delete(l);else if(typeof r.validation=="object"){let u=this.buildState.get(l),h=(i=u?.result)===null||i===void 0?void 0:i.validationChecks;if(h){let d=((a=r.validation.categories)!==null&&a!==void 0?a:Lg.all).filter(p=>!h.includes(p));d.length>0&&(this.buildState.set(l,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:d})},result:u.result}),s.state=bn.IndexedReferences)}}}else this.buildState.delete(l)}this.currentState=bn.Changed,await this.emitUpdate(e.map(s=>s.uri),[]),await this.buildDocuments(e,r,n)}async update(e,r,n=Cr.CancellationToken.None){this.currentState=bn.Changed;for(let s of r)this.langiumDocuments.deleteDocument(s),this.buildState.delete(s.toString()),this.indexManager.remove(s);for(let s of e){if(!this.langiumDocuments.invalidateDocument(s)){let u=this.langiumDocumentFactory.fromModel({$type:"INVALID"},s);u.state=bn.Changed,this.langiumDocuments.addDocument(u)}this.buildState.delete(s.toString())}let i=tn(e).concat(r).map(s=>s.toString()).toSet();this.langiumDocuments.all.filter(s=>!i.has(s.uri.toString())&&this.shouldRelink(s,i)).forEach(s=>{this.serviceRegistry.getServices(s.uri).references.Linker.unlink(s),s.state=Math.min(s.state,bn.ComputedScopes),s.diagnostics=void 0}),await this.emitUpdate(e,r),await Gi(n);let a=this.langiumDocuments.all.filter(s=>{var l;return s.staten(e,r)))}shouldRelink(e,r){return e.references.some(n=>n.error!==void 0)?!0:this.indexManager.isAffected(e,r)}onUpdate(e){return this.updateListeners.push(e),g0.create(()=>{let r=this.updateListeners.indexOf(e);r>=0&&this.updateListeners.splice(r,1)})}async buildDocuments(e,r,n){this.prepareBuild(e,r),await this.runCancelable(e,bn.Parsed,n,a=>this.langiumDocumentFactory.update(a,n)),await this.runCancelable(e,bn.IndexedContent,n,a=>this.indexManager.updateContent(a,n)),await this.runCancelable(e,bn.ComputedScopes,n,async a=>{let s=this.serviceRegistry.getServices(a.uri).references.ScopeComputation;a.precomputedScopes=await s.computeLocalScopes(a,n)}),await this.runCancelable(e,bn.Linked,n,a=>this.serviceRegistry.getServices(a.uri).references.Linker.link(a,n)),await this.runCancelable(e,bn.IndexedReferences,n,a=>this.indexManager.updateReferences(a,n));let i=e.filter(a=>this.shouldValidate(a));await this.runCancelable(i,bn.Validated,n,a=>this.validate(a,n));for(let a of e){let s=this.buildState.get(a.uri.toString());s&&(s.completed=!0)}}prepareBuild(e,r){for(let n of e){let i=n.uri.toString(),a=this.buildState.get(i);(!a||a.completed)&&this.buildState.set(i,{completed:!1,options:r,result:a?.result})}}async runCancelable(e,r,n,i){let a=e.filter(s=>s.state{this.buildPhaseListeners.delete(e,r)})}waitUntil(e,r,n){let i;if(r&&"path"in r?i=r:n=r,n??(n=Cr.CancellationToken.None),i){let a=this.langiumDocuments.getDocument(i);if(a&&a.state>e)return Promise.resolve(i)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(Rc):new Promise((a,s)=>{let l=this.onBuildPhase(e,()=>{if(l.dispose(),u.dispose(),i){let h=this.langiumDocuments.getDocument(i);a(h?.uri)}else a(void 0)}),u=n.onCancellationRequested(()=>{l.dispose(),u.dispose(),s(Rc)})})}async notifyBuildPhase(e,r,n){if(e.length===0)return;let i=this.buildPhaseListeners.get(r);for(let a of i)await Gi(n),await a(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,r){var n,i;let a=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,l=typeof s=="object"?s:void 0,u=await a.validateDocument(e,l,r);e.diagnostics?e.diagnostics.push(...u):e.diagnostics=u;let h=this.buildState.get(e.uri.toString());if(h){(n=h.result)!==null&&n!==void 0||(h.result={});let f=(i=l?.categories)!==null&&i!==void 0?i:Lg.all;h.result.validationChecks?h.result.validationChecks.push(...f):h.result.validationChecks=[...f]}}getBuildOptions(e){var r,n;return(n=(r=this.buildState.get(e.uri.toString()))===null||r===void 0?void 0:r.options)!==null&&n!==void 0?n:{}}}});var Q2,XM=M(()=>{"use strict";es();Pk();Ko();Rs();Mc();Q2=class{static{o(this,"DefaultIndexManager")}constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new m0,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,r){let n=Fi(e).uri,i=[];return this.referenceIndex.forEach(a=>{a.forEach(s=>{ss.equals(s.targetUri,n)&&s.targetPath===r&&i.push(s)})}),tn(i)}allElements(e,r){let n=tn(this.symbolIndex.keys());return r&&(n=n.filter(i=>!r||r.has(i))),n.map(i=>this.getFileDescriptions(i,e)).flat()}getFileDescriptions(e,r){var n;return r?this.symbolByTypeIndex.get(e,r,()=>{var a;return((a=this.symbolIndex.get(e))!==null&&a!==void 0?a:[]).filter(l=>this.astReflection.isSubtype(l.type,r))}):(n=this.symbolIndex.get(e))!==null&&n!==void 0?n:[]}remove(e){let r=e.toString();this.symbolIndex.delete(r),this.symbolByTypeIndex.clear(r),this.referenceIndex.delete(r)}async updateContent(e,r=Cr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,r),a=e.uri.toString();this.symbolIndex.set(a,i),this.symbolByTypeIndex.clear(a)}async updateReferences(e,r=Cr.CancellationToken.None){let i=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,r);this.referenceIndex.set(e.uri.toString(),i)}isAffected(e,r){let n=this.referenceIndex.get(e.uri.toString());return n?n.some(i=>!i.local&&r.has(i.targetUri.toString())):!1}}});var Z2,jM=M(()=>{"use strict";Ko();Qo();Mc();Z2=class{static{o(this,"DefaultWorkspaceManager")}constructor(e){this.initialBuildOptions={},this._ready=new as,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(e){var r;this.folders=(r=e.workspaceFolders)!==null&&r!==void 0?r:void 0}initialized(e){return this.mutex.write(r=>{var n;return this.initializeWorkspace((n=this.folders)!==null&&n!==void 0?n:[],r)})}async initializeWorkspace(e,r=Cr.CancellationToken.None){let n=await this.performStartup(e);await Gi(r),await this.documentBuilder.build(n,this.initialBuildOptions,r)}async performStartup(e){let r=this.serviceRegistry.all.flatMap(a=>a.LanguageMetaData.fileExtensions),n=[],i=o(a=>{n.push(a),this.langiumDocuments.hasDocument(a.uri)||this.langiumDocuments.addDocument(a)},"collector");return await this.loadAdditionalDocuments(e,i),await Promise.all(e.map(a=>[a,this.getRootFolder(a)]).map(async a=>this.traverseFolder(...a,r,i))),this._ready.resolve(),n}loadAdditionalDocuments(e,r){return Promise.resolve()}getRootFolder(e){return Os.parse(e.uri)}async traverseFolder(e,r,n,i){let a=await this.fileSystemProvider.readDirectory(r);await Promise.all(a.map(async s=>{if(this.includeEntry(e,s,n)){if(s.isDirectory)await this.traverseFolder(e,s.uri,n,i);else if(s.isFile){let l=await this.langiumDocuments.getOrCreateDocument(s.uri);i(l)}}}))}includeEntry(e,r,n){let i=ss.basename(r.uri);if(i.startsWith("."))return!1;if(r.isDirectory)return i!=="node_modules"&&i!=="out";if(r.isFile){let a=ss.extname(r.uri);return n.includes(a)}return!1}}});function bce(t){return Array.isArray(t)&&(t.length===0||"name"in t[0])}function QM(t){return t&&"modes"in t&&"defaultMode"in t}function KM(t){return!bce(t)&&!QM(t)}var J2,ZM=M(()=>{"use strict";s0();J2=class{static{o(this,"DefaultLexer")}constructor(e){let r=e.parser.TokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(r);let n=KM(r)?Object.values(r):r;this.chevrotainLexer=new oi(n,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(e){var r;let n=this.chevrotainLexer.tokenize(e);return{tokens:n.tokens,errors:n.errors,hidden:(r=n.groups.hidden)!==null&&r!==void 0?r:[]}}toTokenTypeDictionary(e){if(KM(e))return e;let r=QM(e)?Object.values(e.modes).flat():e,n={};return r.forEach(i=>n[i.name]=i),n}};o(bce,"isTokenTypeArray");o(QM,"isIMultiModeLexerDefinition");o(KM,"isTokenTypeDictionary")});function tI(t,e,r){let n,i;typeof t=="string"?(i=e,n=r):(i=t.range.start,n=e),i||(i=Xr.create(0,0));let a=kce(t),s=nI(n),l=Fze({lines:a,position:i,options:s});return Uze({index:0,tokens:l,position:i})}function rI(t,e){let r=nI(e),n=kce(t);if(n.length===0)return!1;let i=n[0],a=n[n.length-1],s=r.start,l=r.end;return!!s?.exec(i)&&!!l?.exec(a)}function kce(t){let e="";return typeof t=="string"?e=t:e=t.text,e.split(YN)}function Fze(t){var e,r,n;let i=[],a=t.position.line,s=t.position.character;for(let l=0;l=f.length){if(i.length>0){let m=Xr.create(a,s);i.push({type:"break",content:"",range:Dr.create(m,m)})}}else{wce.lastIndex=d;let m=wce.exec(f);if(m){let g=m[0],y=m[1],v=Xr.create(a,s+d),x=Xr.create(a,s+d+g.length);i.push({type:"tag",content:y,range:Dr.create(v,x)}),d+=g.length,d=eI(f,d)}if(d0&&i[i.length-1].type==="break"?i.slice(0,-1):i}function zze(t,e,r,n){let i=[];if(t.length===0){let a=Xr.create(r,n),s=Xr.create(r,n+e.length);i.push({type:"text",content:e,range:Dr.create(a,s)})}else{let a=0;for(let l of t){let u=l.index,h=e.substring(a,u);h.length>0&&i.push({type:"text",content:e.substring(a,u),range:Dr.create(Xr.create(r,a+n),Xr.create(r,u+n))});let f=h.length+1,d=l[1];if(i.push({type:"inline-tag",content:d,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+d.length+n))}),f+=d.length,l.length===4){f+=l[2].length;let p=l[3];i.push({type:"text",content:p,range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+p.length+n))})}else i.push({type:"text",content:"",range:Dr.create(Xr.create(r,a+f+n),Xr.create(r,a+f+n))});a=u+l[0].length}let s=e.substring(a);s.length>0&&i.push({type:"text",content:s,range:Dr.create(Xr.create(r,a+n),Xr.create(r,a+n+s.length))})}return i}function eI(t,e){let r=t.substring(e).match(Gze);return r?e+r.index:t.length}function Vze(t){let e=t.match($ze);if(e&&typeof e.index=="number")return e.index}function Uze(t){var e,r,n,i;let a=Xr.create(t.position.line,t.position.character);if(t.tokens.length===0)return new Gk([],Dr.create(a,a));let s=[];for(;t.index0){let u=eI(e,a);s=e.substring(u),e=e.substring(0,a)}return(t==="linkcode"||t==="link"&&r.link==="code")&&(s=`\`${s}\``),(i=(n=r.renderLink)===null||n===void 0?void 0:n.call(r,e,s))!==null&&i!==void 0?i:Xze(e,s)}}function Xze(t,e){try{return Os.parse(t,!0),`[${e}](${t})`}catch{return t}}function Tce(t){return t.endsWith(` +`)?` +`:` + +`}var wce,Bze,Gze,$ze,Gk,ex,tx,$k,iI=M(()=>{"use strict";uM();Wm();Mc();o(tI,"parseJSDoc");o(rI,"isJSDoc");o(kce,"getLines");wce=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,Bze=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;o(Fze,"tokenize");o(zze,"buildInlineTokens");Gze=/\S/,$ze=/\s*$/;o(eI,"skipWhitespace");o(Vze,"lastCharacter");o(Uze,"parseJSDocComment");o(Hze,"parseJSDocElement");o(Wze,"appendEmptyLine");o(Ece,"parseJSDocText");o(Yze,"parseJSDocInline");o(Sce,"parseJSDocTag");o(Cce,"parseJSDocLine");o(nI,"normalizeOptions");o(JM,"normalizeOption");Gk=class{static{o(this,"JSDocCommentImpl")}constructor(e,r){this.elements=e,this.range=r}getTag(e){return this.getAllTags().find(r=>r.name===e)}getTags(e){return this.getAllTags().filter(r=>r.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(let r of this.elements)if(e.length===0)e=r.toString();else{let n=r.toString();e+=Tce(e)+n}return e.trim()}toMarkdown(e){let r="";for(let n of this.elements)if(r.length===0)r=n.toMarkdown(e);else{let i=n.toMarkdown(e);r+=Tce(r)+i}return r.trim()}},ex=class{static{o(this,"JSDocTagImpl")}constructor(e,r,n,i){this.name=e,this.content=r,this.inline=n,this.range=i}toString(){let e=`@${this.name}`,r=this.content.toString();return this.content.inlines.length===1?e=`${e} ${r}`:this.content.inlines.length>1&&(e=`${e} +${r}`),this.inline?`{${e}}`:e}toMarkdown(e){var r,n;return(n=(r=e?.renderTag)===null||r===void 0?void 0:r.call(e,this))!==null&&n!==void 0?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){let r=this.content.toMarkdown(e);if(this.inline){let a=qze(this.name,r,e??{});if(typeof a=="string")return a}let n="";e?.tag==="italic"||e?.tag===void 0?n="*":e?.tag==="bold"?n="**":e?.tag==="bold-italic"&&(n="***");let i=`${n}@${this.name}${n}`;return this.content.inlines.length===1?i=`${i} \u2014 ${r}`:this.content.inlines.length>1&&(i=`${i} +${r}`),this.inline?`{${i}}`:i}};o(qze,"renderInlineTag");o(Xze,"renderLinkDefault");tx=class{static{o(this,"JSDocTextImpl")}constructor(e,r){this.inlines=e,this.range=r}toString(){let e="";for(let r=0;rn.range.start.line&&(e+=` +`)}return e}toMarkdown(e){let r="";for(let n=0;ni.range.start.line&&(r+=` +`)}return r}},$k=class{static{o(this,"JSDocLineImpl")}constructor(e,r){this.text=e,this.range=r}toString(){return this.text}toMarkdown(){return this.text}};o(Tce,"fillNewlines")});var rx,aI=M(()=>{"use strict";es();iI();rx=class{static{o(this,"JSDocDocumentationProvider")}constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){let r=this.commentProvider.getComment(e);if(r&&rI(r))return tI(r).toMarkdown({renderLink:o((i,a)=>this.documentationLinkRenderer(e,i,a),"renderLink"),renderTag:o(i=>this.documentationTagRenderer(e,i),"renderTag")})}documentationLinkRenderer(e,r,n){var i;let a=(i=this.findNameInPrecomputedScopes(e,r))!==null&&i!==void 0?i:this.findNameInGlobalScope(e,r);if(a&&a.nameSegment){let s=a.nameSegment.range.start.line+1,l=a.nameSegment.range.start.character+1,u=a.documentUri.with({fragment:`L${s},${l}`});return`[${n}](${u.toString()})`}else return}documentationTagRenderer(e,r){}findNameInPrecomputedScopes(e,r){let i=Fi(e).precomputedScopes;if(!i)return;let a=e;do{let l=i.get(a).find(u=>u.name===r);if(l)return l;a=a.$container}while(a)}findNameInGlobalScope(e,r){return this.indexManager.allElements().find(i=>i.name===r)}}});var nx,sI=M(()=>{"use strict";Bk();Ml();nx=class{static{o(this,"DefaultCommentProvider")}constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var r;return GM(e)?e.$comment:(r=BD(e.$cstNode,this.grammarConfig().multilineCommentRules))===null||r===void 0?void 0:r.text}}});var li={};var oI=M(()=>{"use strict";Er(li,ka(AM(),1))});var ix,lI,cI,uI=M(()=>{"use strict";Qo();oI();ix=class{static{o(this,"DefaultAsyncParser")}constructor(e){this.syncParser=e.parser.LangiumParser}parse(e){return Promise.resolve(this.syncParser.parse(e))}},lI=class{static{o(this,"AbstractThreadedAsyncParser")}constructor(e){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=e.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{if(this.queue.length>0){let r=this.queue.shift();r&&(e.lock(),r.resolve(e))}}),this.workerPool.push(e)}}async parse(e,r){let n=await this.acquireParserWorker(r),i=new as,a,s=r.onCancellationRequested(()=>{a=setTimeout(()=>{this.terminateWorker(n)},this.terminationDelay)});return n.parse(e).then(l=>{let u=this.hydrator.hydrate(l);i.resolve(u)}).catch(l=>{i.reject(l)}).finally(()=>{s.dispose(),clearTimeout(a)}),i.promise}terminateWorker(e){e.terminate();let r=this.workerPool.indexOf(e);r>=0&&this.workerPool.splice(r,1)}async acquireParserWorker(e){this.initializeWorkers();for(let n of this.workerPool)if(n.ready)return n.lock(),n;let r=new as;return e.onCancellationRequested(()=>{let n=this.queue.indexOf(r);n>=0&&this.queue.splice(n,1),r.reject(Rc)}),this.queue.push(r),r.promise}},cI=class{static{o(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(e,r,n,i){this.onReadyEmitter=new li.Emitter,this.deferred=new as,this._ready=!0,this._parsing=!1,this.sendMessage=e,this._terminate=i,r(a=>{let s=a;this.deferred.resolve(s),this.unlock()}),n(a=>{this.deferred.reject(a),this.unlock()})}terminate(){this.deferred.reject(Rc),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(e){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new as,this.sendMessage(e),this.deferred.promise}}});var ax,hI=M(()=>{"use strict";Ko();Qo();ax=class{static{o(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new Cr.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();let r=new Cr.CancellationTokenSource;return this.previousTokenSource=r,this.enqueue(this.writeQueue,e,r.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,r,n){let i=new as,a={action:r,deferred:i,cancellationToken:n??Cr.CancellationToken.None};return e.push(a),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else if(this.readQueue.length>0)e.push(...this.readQueue.splice(0,this.readQueue.length));else return;this.done=!1,await Promise.all(e.map(async({action:r,deferred:n,cancellationToken:i})=>{try{let a=await Promise.resolve().then(()=>r(i));n.resolve(a)}catch(a){sf(a)?n.resolve(void 0):n.reject(a)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}});var sx,fI=M(()=>{"use strict";Ck();Ac();Yo();es();Sg();Ml();sx=class{static{o(this,"DefaultHydrator")}constructor(e){this.grammarElementIdMap=new p0,this.tokenTypeIdMap=new p0,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors.map(r=>Object.assign({},r)),parserErrors:e.parserErrors.map(r=>Object.assign({},r)),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}createDehyrationContext(e){let r=new Map,n=new Map;for(let i of jo(e))r.set(i,{});if(e.$cstNode)for(let i of Ud(e.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode!==void 0&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,r));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ei(l)?s.push(this.dehydrateAstNode(l,r)):ma(l)?s.push(this.dehydrateReference(l,r)):s.push(l)}else ei(a)?n[i]=this.dehydrateAstNode(a,r):ma(a)?n[i]=this.dehydrateReference(a,r):a!==void 0&&(n[i]=a);return n}dehydrateReference(e,r){let n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=r.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,r){let n=r.cstNodes.get(e);return Gv(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=r.astNodes.get(e.astNode),io(e)?n.content=e.content.map(i=>this.dehydrateCstNode(i,r)):Jh(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){let r=e.value,n=this.createHydrationContext(r);return"$cstNode"in r&&this.hydrateCstNode(r.$cstNode,n),{lexerErrors:e.lexerErrors,parserErrors:e.parserErrors,value:this.hydrateAstNode(r,n)}}createHydrationContext(e){let r=new Map,n=new Map;for(let a of jo(e))r.set(a,{});let i;if(e.$cstNode)for(let a of Ud(e.$cstNode)){let s;"fullText"in a?(s=new vg(a.fullText),i=s):"content"in a?s=new u0:"tokenType"in a&&(s=this.hydrateCstLeafNode(a)),s&&(n.set(a,s),s.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(e,r){let n=r.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=r.cstNodes.get(e.$cstNode));for(let[i,a]of Object.entries(e))if(!i.startsWith("$"))if(Array.isArray(a)){let s=[];n[i]=s;for(let l of a)ei(l)?s.push(this.setParent(this.hydrateAstNode(l,r),n)):ma(l)?s.push(this.hydrateReference(l,n,i,r)):s.push(l)}else ei(a)?n[i]=this.setParent(this.hydrateAstNode(a,r),n):ma(a)?n[i]=this.hydrateReference(a,n,i,r):a!==void 0&&(n[i]=a);return n}setParent(e,r){return e.$container=r,e}hydrateReference(e,r,n,i){return this.linker.buildReference(r,n,i.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,r,n=0){let i=r.cstNodes.get(e);if(typeof e.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(e.grammarSource)),i.astNode=r.astNodes.get(e.astNode),io(i))for(let a of e.content){let s=this.hydrateCstNode(a,r,n++);i.content.push(s)}return i}hydrateCstLeafNode(e){let r=this.getTokenType(e.tokenType),n=e.offset,i=e.length,a=e.startLine,s=e.startColumn,l=e.endLine,u=e.endColumn,h=e.hidden;return new c0(n,i,{start:{line:a,character:s},end:{line:l,character:u}},r,h)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap();let r=this.grammarElementIdMap.getKey(e);if(r)return r;throw new Error("Invalid grammar element id: "+e)}createGrammarElementIdMap(){let e=0;for(let r of jo(this.grammar))Hv(r)&&this.grammarElementIdMap.set(r,e++)}}});function lo(t){return{documentation:{CommentProvider:o(e=>new nx(e),"CommentProvider"),DocumentationProvider:o(e=>new rx(e),"DocumentationProvider")},parser:{AsyncParser:o(e=>new ix(e),"AsyncParser"),GrammarConfig:o(e=>lR(e),"GrammarConfig"),LangiumParser:o(e=>vM(e),"LangiumParser"),CompletionParser:o(e=>gM(e),"CompletionParser"),ValueConverter:o(()=>new d0,"ValueConverter"),TokenBuilder:o(()=>new f0,"TokenBuilder"),Lexer:o(e=>new J2(e),"Lexer"),ParserErrorMessageProvider:o(()=>new xg,"ParserErrorMessageProvider")},workspace:{AstNodeLocator:o(()=>new X2,"AstNodeLocator"),AstNodeDescriptionProvider:o(e=>new Y2(e),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:o(e=>new q2(e),"ReferenceDescriptionProvider")},references:{Linker:o(e=>new I2(e),"Linker"),NameProvider:o(()=>new O2,"NameProvider"),ScopeProvider:o(e=>new G2(e),"ScopeProvider"),ScopeComputation:o(e=>new B2(e),"ScopeComputation"),References:o(e=>new P2(e),"References")},serializer:{Hydrator:o(e=>new sx(e),"Hydrator"),JsonSerializer:o(e=>new $2(e),"JsonSerializer")},validation:{DocumentValidator:o(e=>new W2(e),"DocumentValidator"),ValidationRegistry:o(e=>new U2(e),"ValidationRegistry")},shared:o(()=>t.shared,"shared")}}function co(t){return{ServiceRegistry:o(()=>new V2,"ServiceRegistry"),workspace:{LangiumDocuments:o(e=>new M2(e),"LangiumDocuments"),LangiumDocumentFactory:o(e=>new R2(e),"LangiumDocumentFactory"),DocumentBuilder:o(e=>new K2(e),"DocumentBuilder"),IndexManager:o(e=>new Q2(e),"IndexManager"),WorkspaceManager:o(e=>new Z2(e),"WorkspaceManager"),FileSystemProvider:o(e=>t.fileSystemProvider(e),"FileSystemProvider"),WorkspaceLock:o(()=>new ax,"WorkspaceLock"),ConfigurationProvider:o(e=>new j2(e),"ConfigurationProvider")}}}var dI=M(()=>{"use strict";cR();yM();xM();bM();wM();IM();OM();PM();BM();zM();Bk();$M();VM();H2();UM();HM();WM();qM();Eg();XM();jM();ZM();aI();sI();N2();uI();hI();fI();o(lo,"createDefaultCoreModule");o(co,"createDefaultSharedCoreModule")});function $i(t,e,r,n,i,a,s,l,u){let h=[t,e,r,n,i,a,s,l,u].reduce(Vk,{});return Dce(h)}function Lce(t){if(t&&t[mI])for(let e of Object.values(t))Lce(e);return t}function Dce(t,e){let r=new Proxy({},{deleteProperty:o(()=>!1,"deleteProperty"),get:o((n,i)=>_ce(n,i,t,e||r),"get"),getOwnPropertyDescriptor:o((n,i)=>(_ce(n,i,t,e||r),Object.getOwnPropertyDescriptor(n,i)),"getOwnPropertyDescriptor"),has:o((n,i)=>i in t,"has"),ownKeys:o(()=>[...Reflect.ownKeys(t),mI],"ownKeys")});return r[mI]=!0,r}function _ce(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===Ace)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return t[e]}else if(e in r){let i=r[e];t[e]=Ace;try{t[e]=typeof i=="function"?i(n):Dce(i,n)}catch(a){throw t[e]=a instanceof Error?a:void 0,a}return t[e]}else return}function Vk(t,e){if(e){for(let[r,n]of Object.entries(e))if(n!==void 0){let i=t[r];i!==null&&n!==null&&typeof i=="object"&&typeof n=="object"?t[r]=Vk(i,n):t[r]=n}}return t}var pI,mI,Ace,gI=M(()=>{"use strict";(function(t){t.merge=(e,r)=>Vk(Vk({},e),r)})(pI||(pI={}));o($i,"inject");mI=Symbol("isProxy");o(Lce,"eagerLoad");o(Dce,"_inject");Ace=Symbol();o(_ce,"_resolve");o(Vk,"_merge")});var Nce=M(()=>{"use strict"});var Rce=M(()=>{"use strict";sI();aI();iI()});var Mce=M(()=>{"use strict"});var Ice=M(()=>{"use strict";cR();Mce()});var Oce=M(()=>{"use strict"});var Pce=M(()=>{"use strict";uI();yM();Ck();xM();N2();ZM();Oce();bM();wM()});var Bce=M(()=>{"use strict";IM();OM();PM();FM();BM();zM()});var Fce=M(()=>{"use strict";fI();Bk()});var Uk,uo,yI=M(()=>{"use strict";Uk=class{static{o(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},uo={fileSystemProvider:o(()=>new Uk,"fileSystemProvider")}});function Qze(){let t=$i(co(uo),Kze),e=$i(lo({shared:t}),jze);return t.ServiceRegistry.register(e),e}function of(t){var e;let r=Qze(),n=r.serializer.JsonSerializer.deserialize(t);return r.shared.workspace.LangiumDocumentFactory.fromModel(n,Os.parse(`memory://${(e=n.name)!==null&&e!==void 0?e:"grammar"}.langium`)),n}var jze,Kze,zce=M(()=>{"use strict";dI();gI();Ac();yI();Mc();jze={Grammar:o(()=>{},"Grammar"),LanguageMetaData:o(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},Kze={AstReflection:o(()=>new Vm,"AstReflection")};o(Qze,"createMinimalGrammarServices");o(of,"loadGrammarFromJson")});var Gr={};vr(Gr,{AstUtils:()=>AT,BiMap:()=>p0,Cancellation:()=>Cr,ContextCache:()=>m0,CstUtils:()=>mT,DONE_RESULT:()=>Ja,Deferred:()=>as,Disposable:()=>g0,DisposableCache:()=>Ag,DocumentCache:()=>Ok,EMPTY_STREAM:()=>$v,ErrorWithLocation:()=>Wd,GrammarUtils:()=>MT,MultiMap:()=>Ic,OperationCancelled:()=>Rc,Reduction:()=>Gm,RegExpUtils:()=>NT,SimpleCache:()=>z2,StreamImpl:()=>ao,TreeStreamImpl:()=>Cc,URI:()=>Os,UriUtils:()=>ss,WorkspaceCache:()=>_g,assertUnreachable:()=>ef,delayNextTick:()=>NM,interruptAndCheck:()=>Gi,isOperationCancelled:()=>sf,loadGrammarFromJson:()=>of,setInterruptionPeriod:()=>hce,startCancelableOperation:()=>uce,stream:()=>tn});var Gce=M(()=>{"use strict";Pk();oI();Er(Gr,li);Sg();YM();gT();zce();Qo();Rs();Mc();es();Ko();Ml();Pl();Wm()});var $ce=M(()=>{"use strict";VM();H2()});var Vce=M(()=>{"use strict";UM();HM();WM();qM();Eg();yI();XM();hI();jM()});var ga={};vr(ga,{AbstractAstReflection:()=>$d,AbstractCstNode:()=>A2,AbstractLangiumParser:()=>_2,AbstractParserErrorMessageProvider:()=>_k,AbstractThreadedAsyncParser:()=>lI,AstUtils:()=>AT,BiMap:()=>p0,Cancellation:()=>Cr,CompositeCstNodeImpl:()=>u0,ContextCache:()=>m0,CstNodeBuilder:()=>C2,CstUtils:()=>mT,DONE_RESULT:()=>Ja,DatatypeSymbol:()=>Ak,DefaultAstNodeDescriptionProvider:()=>Y2,DefaultAstNodeLocator:()=>X2,DefaultAsyncParser:()=>ix,DefaultCommentProvider:()=>nx,DefaultConfigurationProvider:()=>j2,DefaultDocumentBuilder:()=>K2,DefaultDocumentValidator:()=>W2,DefaultHydrator:()=>sx,DefaultIndexManager:()=>Q2,DefaultJsonSerializer:()=>$2,DefaultLangiumDocumentFactory:()=>R2,DefaultLangiumDocuments:()=>M2,DefaultLexer:()=>J2,DefaultLinker:()=>I2,DefaultNameProvider:()=>O2,DefaultReferenceDescriptionProvider:()=>q2,DefaultReferences:()=>P2,DefaultScopeComputation:()=>B2,DefaultScopeProvider:()=>G2,DefaultServiceRegistry:()=>V2,DefaultTokenBuilder:()=>f0,DefaultValueConverter:()=>d0,DefaultWorkspaceLock:()=>ax,DefaultWorkspaceManager:()=>Z2,Deferred:()=>as,Disposable:()=>g0,DisposableCache:()=>Ag,DocumentCache:()=>Ok,DocumentState:()=>bn,DocumentValidator:()=>$u,EMPTY_SCOPE:()=>Pze,EMPTY_STREAM:()=>$v,EmptyFileSystem:()=>uo,EmptyFileSystemProvider:()=>Uk,ErrorWithLocation:()=>Wd,GrammarAST:()=>Yv,GrammarUtils:()=>MT,JSDocDocumentationProvider:()=>rx,LangiumCompletionParser:()=>D2,LangiumParser:()=>L2,LangiumParserErrorMessageProvider:()=>xg,LeafCstNodeImpl:()=>c0,MapScope:()=>F2,Module:()=>pI,MultiMap:()=>Ic,OperationCancelled:()=>Rc,ParserWorker:()=>cI,Reduction:()=>Gm,RegExpUtils:()=>NT,RootCstNodeImpl:()=>vg,SimpleCache:()=>z2,StreamImpl:()=>ao,StreamScope:()=>Cg,TextDocument:()=>Tg,TreeStreamImpl:()=>Cc,URI:()=>Os,UriUtils:()=>ss,ValidationCategory:()=>Lg,ValidationRegistry:()=>U2,ValueConverter:()=>Nc,WorkspaceCache:()=>_g,assertUnreachable:()=>ef,createCompletionParser:()=>gM,createDefaultCoreModule:()=>lo,createDefaultSharedCoreModule:()=>co,createGrammarConfig:()=>lR,createLangiumParser:()=>vM,delayNextTick:()=>NM,diagnosticData:()=>Fk,eagerLoad:()=>Lce,getDiagnosticRange:()=>xce,inject:()=>$i,interruptAndCheck:()=>Gi,isAstNode:()=>ei,isAstNodeDescription:()=>MD,isAstNodeWithComment:()=>GM,isCompositeCstNode:()=>io,isIMultiModeLexerDefinition:()=>QM,isJSDoc:()=>rI,isLeafCstNode:()=>Jh,isLinkingError:()=>Vd,isNamed:()=>yce,isOperationCancelled:()=>sf,isReference:()=>ma,isRootCstNode:()=>Gv,isTokenTypeArray:()=>bce,isTokenTypeDictionary:()=>KM,loadGrammarFromJson:()=>of,parseJSDoc:()=>tI,prepareLangiumParser:()=>nce,setInterruptionPeriod:()=>hce,startCancelableOperation:()=>uce,stream:()=>tn,toDiagnosticSeverity:()=>zk});var Oc=M(()=>{"use strict";dI();gI();$M();Nce();Yo();Rce();Ice();Pce();Bce();Fce();Gce();Er(ga,Gr);$ce();Vce();Ac()});function Kce(t){return Fl.isInstance(t,jce)}function Qce(t){return Fl.isInstance(t,vI)}function Zce(t){return Fl.isInstance(t,xI)}function Jce(t){return Fl.isInstance(t,tGe)}function eue(t){return Fl.isInstance(t,bI)}function rue(t){return Fl.isInstance(t,tue)}function nue(t){return Fl.isInstance(t,wI)}function aue(t){return Fl.isInstance(t,iue)}function oue(t){return Fl.isInstance(t,sue)}function cue(t){return Fl.isInstance(t,lue)}function hue(t){return Fl.isInstance(t,uue)}var Zze,Ot,Xce,jce,vI,Jze,eGe,xI,tGe,bI,tue,wI,iue,sue,lue,uue,rGe,fue,Fl,Uce,nGe,Hce,iGe,Wce,aGe,Yce,sGe,qce,oGe,lGe,cGe,uGe,hGe,fGe,zl,TI,kI,EI,SI,CI,dGe,pGe,mGe,gGe,Dg,y0,Zo,yGe,Jo=M(()=>{"use strict";Oc();Oc();Oc();Oc();Zze=Object.defineProperty,Ot=o((t,e)=>Zze(t,"name",{value:e,configurable:!0}),"__name"),Xce="Statement",jce="Architecture";o(Kce,"isArchitecture");Ot(Kce,"isArchitecture");vI="Branch";o(Qce,"isBranch");Ot(Qce,"isBranch");Jze="Checkout",eGe="CherryPicking",xI="Commit";o(Zce,"isCommit");Ot(Zce,"isCommit");tGe="Common";o(Jce,"isCommon");Ot(Jce,"isCommon");bI="GitGraph";o(eue,"isGitGraph");Ot(eue,"isGitGraph");tue="Info";o(rue,"isInfo");Ot(rue,"isInfo");wI="Merge";o(nue,"isMerge");Ot(nue,"isMerge");iue="Packet";o(aue,"isPacket");Ot(aue,"isPacket");sue="PacketBlock";o(oue,"isPacketBlock");Ot(oue,"isPacketBlock");lue="Pie";o(cue,"isPie");Ot(cue,"isPie");uue="PieSection";o(hue,"isPieSection");Ot(hue,"isPieSection");rGe="Direction",fue=class extends $d{static{o(this,"MermaidAstReflection")}static{Ot(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(t,e){switch(t){case vI:case Jze:case eGe:case xI:case wI:return this.isSubtype(Xce,e);case rGe:return this.isSubtype(bI,e);default:return!1}}getReferenceType(t){let e=`${t.container.$type}:${t.property}`;switch(e){default:throw new Error(`${e} is not a valid reference id.`)}}getTypeMetaData(t){switch(t){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:t,properties:[]}}}},Fl=new fue,nGe=Ot(()=>Uce??(Uce=of('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"InfoGrammar"),iGe=Ot(()=>Hce??(Hce=of(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`)),"PacketGrammar"),aGe=Ot(()=>Wce??(Wce=of('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"PieGrammar"),sGe=Ot(()=>Yce??(Yce=of('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),oGe=Ot(()=>qce??(qce=of(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`)),"GitGraphGrammar"),lGe={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},cGe={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},uGe={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},hGe={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},fGe={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1},zl={AstReflection:Ot(()=>new fue,"AstReflection")},TI={Grammar:Ot(()=>nGe(),"Grammar"),LanguageMetaData:Ot(()=>lGe,"LanguageMetaData"),parser:{}},kI={Grammar:Ot(()=>iGe(),"Grammar"),LanguageMetaData:Ot(()=>cGe,"LanguageMetaData"),parser:{}},EI={Grammar:Ot(()=>aGe(),"Grammar"),LanguageMetaData:Ot(()=>uGe,"LanguageMetaData"),parser:{}},SI={Grammar:Ot(()=>sGe(),"Grammar"),LanguageMetaData:Ot(()=>hGe,"LanguageMetaData"),parser:{}},CI={Grammar:Ot(()=>oGe(),"Grammar"),LanguageMetaData:Ot(()=>fGe,"LanguageMetaData"),parser:{}},dGe=/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,pGe=/accTitle[\t ]*:([^\n\r]*)/,mGe=/title([\t ][^\n\r]*|)/,gGe={ACC_DESCR:dGe,ACC_TITLE:pGe,TITLE:mGe},Dg=class extends d0{static{o(this,"AbstractMermaidValueConverter")}static{Ot(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){let n=this.runCommonConverter(t,e,r);return n===void 0&&(n=this.runCustomConverter(t,e,r)),n===void 0?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){let n=gGe[t.name];if(n===void 0)return;let i=n.exec(e);if(i!==null){if(i[1]!==void 0)return i[1].trim().replace(/[\t ]{2,}/gm," ");if(i[2]!==void 0)return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` +`)}}},y0=class extends Dg{static{o(this,"CommonValueConverter")}static{Ot(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},Zo=class extends f0{static{o(this,"AbstractMermaidTokenBuilder")}static{Ot(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){let n=super.buildKeywordTokens(t,e,r);return n.forEach(i=>{this.keywords.has(i.name)&&i.PATTERN!==void 0&&(i.PATTERN=new RegExp(i.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),n}},yGe=class extends Zo{static{o(this,"CommonTokenBuilder")}static{Ot(this,"CommonTokenBuilder")}}});function Wk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),CI,Hk);return e.ServiceRegistry.register(r),{shared:e,GitGraph:r}}var vGe,Hk,AI=M(()=>{"use strict";Jo();Oc();vGe=class extends Zo{static{o(this,"GitGraphTokenBuilder")}static{Ot(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},Hk={parser:{TokenBuilder:Ot(()=>new vGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(Wk,"createGitGraphServices");Ot(Wk,"createGitGraphServices")});function qk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),TI,Yk);return e.ServiceRegistry.register(r),{shared:e,Info:r}}var xGe,Yk,_I=M(()=>{"use strict";Jo();Oc();xGe=class extends Zo{static{o(this,"InfoTokenBuilder")}static{Ot(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},Yk={parser:{TokenBuilder:Ot(()=>new xGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(qk,"createInfoServices");Ot(qk,"createInfoServices")});function jk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),kI,Xk);return e.ServiceRegistry.register(r),{shared:e,Packet:r}}var bGe,Xk,LI=M(()=>{"use strict";Jo();Oc();bGe=class extends Zo{static{o(this,"PacketTokenBuilder")}static{Ot(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},Xk={parser:{TokenBuilder:Ot(()=>new bGe,"TokenBuilder"),ValueConverter:Ot(()=>new y0,"ValueConverter")}};o(jk,"createPacketServices");Ot(jk,"createPacketServices")});function Qk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),EI,Kk);return e.ServiceRegistry.register(r),{shared:e,Pie:r}}var wGe,TGe,Kk,DI=M(()=>{"use strict";Jo();Oc();wGe=class extends Zo{static{o(this,"PieTokenBuilder")}static{Ot(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},TGe=class extends Dg{static{o(this,"PieValueConverter")}static{Ot(this,"PieValueConverter")}runCustomConverter(t,e,r){if(t.name==="PIE_SECTION_LABEL")return e.replace(/"/g,"").trim()}},Kk={parser:{TokenBuilder:Ot(()=>new wGe,"TokenBuilder"),ValueConverter:Ot(()=>new TGe,"ValueConverter")}};o(Qk,"createPieServices");Ot(Qk,"createPieServices")});function Jk(t=uo){let e=$i(co(t),zl),r=$i(lo({shared:e}),SI,Zk);return e.ServiceRegistry.register(r),{shared:e,Architecture:r}}var kGe,EGe,Zk,NI=M(()=>{"use strict";Jo();Oc();kGe=class extends Zo{static{o(this,"ArchitectureTokenBuilder")}static{Ot(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},EGe=class extends Dg{static{o(this,"ArchitectureValueConverter")}static{Ot(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},Zk={parser:{TokenBuilder:Ot(()=>new kGe,"TokenBuilder"),ValueConverter:Ot(()=>new EGe,"ValueConverter")}};o(Jk,"createArchitectureServices");Ot(Jk,"createArchitectureServices")});var due={};vr(due,{InfoModule:()=>Yk,createInfoServices:()=>qk});var pue=M(()=>{"use strict";_I();Jo()});var mue={};vr(mue,{PacketModule:()=>Xk,createPacketServices:()=>jk});var gue=M(()=>{"use strict";LI();Jo()});var yue={};vr(yue,{PieModule:()=>Kk,createPieServices:()=>Qk});var vue=M(()=>{"use strict";DI();Jo()});var xue={};vr(xue,{ArchitectureModule:()=>Zk,createArchitectureServices:()=>Jk});var bue=M(()=>{"use strict";NI();Jo()});var wue={};vr(wue,{GitGraphModule:()=>Hk,createGitGraphServices:()=>Wk});var Tue=M(()=>{"use strict";AI();Jo()});async function Gl(t,e){let r=SGe[t];if(!r)throw new Error(`Unknown diagram type: ${t}`);v0[t]||await r();let i=v0[t].parse(e);if(i.lexerErrors.length>0||i.parserErrors.length>0)throw new CGe(i);return i.value}var v0,SGe,CGe,Ng=M(()=>{"use strict";AI();_I();LI();DI();NI();Jo();v0={},SGe={info:Ot(async()=>{let{createInfoServices:t}=await Promise.resolve().then(()=>(pue(),due)),e=t().Info.parser.LangiumParser;v0.info=e},"info"),packet:Ot(async()=>{let{createPacketServices:t}=await Promise.resolve().then(()=>(gue(),mue)),e=t().Packet.parser.LangiumParser;v0.packet=e},"packet"),pie:Ot(async()=>{let{createPieServices:t}=await Promise.resolve().then(()=>(vue(),yue)),e=t().Pie.parser.LangiumParser;v0.pie=e},"pie"),architecture:Ot(async()=>{let{createArchitectureServices:t}=await Promise.resolve().then(()=>(bue(),xue)),e=t().Architecture.parser.LangiumParser;v0.architecture=e},"architecture"),gitGraph:Ot(async()=>{let{createGitGraphServices:t}=await Promise.resolve().then(()=>(Tue(),wue)),e=t().GitGraph.parser.LangiumParser;v0.gitGraph=e},"gitGraph")};o(Gl,"parse");Ot(Gl,"parse");CGe=class extends Error{static{o(this,"MermaidParseError")}constructor(t){let e=t.lexerErrors.map(n=>n.message).join(` +`),r=t.parserErrors.map(n=>n.message).join(` +`);super(`Parsing failed: ${e} ${r}`),this.result=t}static{Ot(this,"MermaidParseError")}}});function lf(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var ox=M(()=>{"use strict";o(lf,"populateCommonDb")});var jr,eE=M(()=>{"use strict";jr={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}});var cf,tE=M(()=>{"use strict";cf=class{constructor(e){this.init=e;this.records=this.init()}static{o(this,"ImperativeState")}reset(){this.records=this.init()}}});function RI(){return t9({length:7})}function _Ge(t,e){let r=Object.create(null);return t.reduce((n,i)=>{let a=e(i);return r[a]||(r[a]=!0,n.push(i)),n},[])}function kue(t,e,r){let n=t.indexOf(e);n===-1?t.push(r):t.splice(n,1,r)}function Sue(t){let e=t.reduce((i,a)=>i.seq>a.seq?i:a,t[0]),r="";t.forEach(function(i){i===e?r+=" *":r+=" |"});let n=[r,e.id,e.seq];for(let i in wt.records.branches)wt.records.branches.get(i)===e.id&&n.push(i);if(Y.debug(n.join(" ")),e.parents&&e.parents.length==2&&e.parents[0]&&e.parents[1]){let i=wt.records.commits.get(e.parents[0]);kue(t,e,i),e.parents[1]&&t.push(wt.records.commits.get(e.parents[1]))}else{if(e.parents.length==0)return;if(e.parents[0]){let i=wt.records.commits.get(e.parents[0]);kue(t,e,i)}}t=_Ge(t,i=>i.id),Sue(t)}var AGe,x0,wt,LGe,DGe,NGe,RGe,MGe,IGe,OGe,Eue,PGe,BGe,FGe,zGe,GGe,Cue,$Ge,VGe,UGe,rE,MI=M(()=>{"use strict";ht();hr();Ua();fr();ki();eE();tE();hs();AGe=ur.gitGraph,x0=o(()=>ws({...AGe,...Sr().gitGraph}),"getConfig"),wt=new cf(()=>{let t=x0(),e=t.mainBranchName,r=t.mainBranchOrder;return{mainBranchName:e,commits:new Map,head:null,branchConfig:new Map([[e,{name:e,order:r}]]),branches:new Map([[e,null]]),currBranch:e,direction:"LR",seq:0,options:{}}});o(RI,"getID");o(_Ge,"uniqBy");LGe=o(function(t){wt.records.direction=t},"setDirection"),DGe=o(function(t){Y.debug("options str",t),t=t?.trim(),t=t||"{}";try{wt.records.options=JSON.parse(t)}catch(e){Y.error("error while parsing gitGraph options",e.message)}},"setOptions"),NGe=o(function(){return wt.records.options},"getOptions"),RGe=o(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags;Y.info("commit",e,r,n,i),Y.debug("Entering commit:",e,r,n,i);let a=x0();r=je.sanitizeText(r,a),e=je.sanitizeText(e,a),i=i?.map(l=>je.sanitizeText(l,a));let s={id:r||wt.records.seq+"-"+RI(),message:e,seq:wt.records.seq++,type:n??jr.NORMAL,tags:i??[],parents:wt.records.head==null?[]:[wt.records.head.id],branch:wt.records.currBranch};wt.records.head=s,Y.info("main branch",a.mainBranchName),wt.records.commits.set(s.id,s),wt.records.branches.set(wt.records.currBranch,s.id),Y.debug("in pushCommit "+s.id)},"commit"),MGe=o(function(t){let e=t.name,r=t.order;if(e=je.sanitizeText(e,x0()),wt.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);wt.records.branches.set(e,wt.records.head!=null?wt.records.head.id:null),wt.records.branchConfig.set(e,{name:e,order:r}),Eue(e),Y.debug("in createBranch")},"branch"),IGe=o(t=>{let e=t.branch,r=t.id,n=t.type,i=t.tags,a=x0();e=je.sanitizeText(e,a),r&&(r=je.sanitizeText(r,a));let s=wt.records.branches.get(wt.records.currBranch),l=wt.records.branches.get(e),u=s?wt.records.commits.get(s):void 0,h=l?wt.records.commits.get(l):void 0;if(u&&h&&u.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(wt.records.currBranch===e){let p=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(u===void 0||!u){let p=new Error(`Incorrect usage of "merge". Current branch (${wt.records.currBranch})has no commits`);throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["commit"]},p}if(!wt.records.branches.has(e)){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:[`branch ${e}`]},p}if(h===void 0||!h){let p=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits");throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:['"commit"']},p}if(u===h){let p=new Error('Incorrect usage of "merge". Both branches have same head');throw p.hash={text:`merge ${e}`,token:`merge ${e}`,expected:["branch abc"]},p}if(r&&wt.records.commits.has(r)){let p=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id");throw p.hash={text:`merge ${e} ${r} ${n} ${i?.join(" ")}`,token:`merge ${e} ${r} ${n} ${i?.join(" ")}`,expected:[`merge ${e} ${r}_UNIQUE ${n} ${i?.join(" ")}`]},p}let f=l||"",d={id:r||`${wt.records.seq}-${RI()}`,message:`merged branch ${e} into ${wt.records.currBranch}`,seq:wt.records.seq++,parents:wt.records.head==null?[]:[wt.records.head.id,f],branch:wt.records.currBranch,type:jr.MERGE,customType:n,customId:!!r,tags:i??[]};wt.records.head=d,wt.records.commits.set(d.id,d),wt.records.branches.set(wt.records.currBranch,d.id),Y.debug(wt.records.branches),Y.debug("in mergeBranch")},"merge"),OGe=o(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent;Y.debug("Entering cherryPick:",e,r,n);let a=x0();if(e=je.sanitizeText(e,a),r=je.sanitizeText(r,a),n=n?.map(u=>je.sanitizeText(u,a)),i=je.sanitizeText(i,a),!e||!wt.records.commits.has(e)){let u=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw u.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},u}let s=wt.records.commits.get(e);if(s===void 0||!s)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&!(Array.isArray(s.parents)&&s.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");let l=s.branch;if(s.type===jr.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!wt.records.commits.has(r)){if(l===wt.records.currBranch){let d=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let u=wt.records.branches.get(wt.records.currBranch);if(u===void 0||!u){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${wt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let h=wt.records.commits.get(u);if(h===void 0||!h){let d=new Error(`Incorrect usage of "cherry-pick". Current branch (${wt.records.currBranch})has no commits`);throw d.hash={text:`cherryPick ${e} ${r}`,token:`cherryPick ${e} ${r}`,expected:["cherry-pick abc"]},d}let f={id:wt.records.seq+"-"+RI(),message:`cherry-picked ${s?.message} into ${wt.records.currBranch}`,seq:wt.records.seq++,parents:wt.records.head==null?[]:[wt.records.head.id,s.id],branch:wt.records.currBranch,type:jr.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${s.id}${s.type===jr.MERGE?`|parent:${i}`:""}`]};wt.records.head=f,wt.records.commits.set(f.id,f),wt.records.branches.set(wt.records.currBranch,f.id),Y.debug(wt.records.branches),Y.debug("in cherryPick")}},"cherryPick"),Eue=o(function(t){if(t=je.sanitizeText(t,x0()),wt.records.branches.has(t)){wt.records.currBranch=t;let e=wt.records.branches.get(wt.records.currBranch);e===void 0||!e?wt.records.head=null:wt.records.head=wt.records.commits.get(e)??null}else{let e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw e.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},e}},"checkout");o(kue,"upsert");o(Sue,"prettyPrintCommitHistory");PGe=o(function(){Y.debug(wt.records.commits);let t=Cue()[0];Sue([t])},"prettyPrint"),BGe=o(function(){wt.reset(),_r()},"clear"),FGe=o(function(){return[...wt.records.branchConfig.values()].map((e,r)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${r}`)}).sort((e,r)=>(e.order??0)-(r.order??0)).map(({name:e})=>({name:e}))},"getBranchesAsObjArray"),zGe=o(function(){return wt.records.branches},"getBranches"),GGe=o(function(){return wt.records.commits},"getCommits"),Cue=o(function(){let t=[...wt.records.commits.values()];return t.forEach(function(e){Y.debug(e.id)}),t.sort((e,r)=>e.seq-r.seq),t},"getCommitsArray"),$Ge=o(function(){return wt.records.currBranch},"getCurrentBranch"),VGe=o(function(){return wt.records.direction},"getDirection"),UGe=o(function(){return wt.records.head},"getHead"),rE={commitType:jr,getConfig:x0,setDirection:LGe,setOptions:DGe,getOptions:NGe,commit:RGe,branch:MGe,merge:IGe,cherryPick:OGe,checkout:Eue,prettyPrint:PGe,clear:BGe,getBranchesAsObjArray:FGe,getBranches:zGe,getCommits:GGe,getCommitsArray:Cue,getCurrentBranch:$Ge,getDirection:VGe,getHead:UGe,setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,setDiagramTitle:ln,getDiagramTitle:Jr}});var HGe,WGe,YGe,qGe,XGe,jGe,KGe,Aue,_ue=M(()=>{"use strict";Ng();ht();ox();MI();eE();HGe=o((t,e)=>{lf(t,e),t.dir&&e.setDirection(t.dir);for(let r of t.statements)WGe(r,e)},"populate"),WGe=o((t,e)=>{let n={Commit:o(i=>e.commit(YGe(i)),"Commit"),Branch:o(i=>e.branch(qGe(i)),"Branch"),Merge:o(i=>e.merge(XGe(i)),"Merge"),Checkout:o(i=>e.checkout(jGe(i)),"Checkout"),CherryPicking:o(i=>e.cherryPick(KGe(i)),"CherryPicking")}[t.$type];n?n(t):Y.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),YGe=o(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?jr[t.type]:jr.NORMAL,tags:t.tags??void 0}),"parseCommit"),qGe=o(t=>({name:t.name,order:t.order??0}),"parseBranch"),XGe=o(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?jr[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),jGe=o(t=>t.branch,"parseCheckout"),KGe=o(t=>({id:t.id,targetId:"",tags:t.tags?.length===0?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),Aue={parse:o(async t=>{let e=await Gl("gitGraph",t);Y.debug(e),HGe(e,rE)},"parse")}});var QGe,el,hf,ff,Pc,Vu,b0,Ps,Bs,nE,lx,iE,uf,Nr,ZGe,Due,Nue,JGe,e$e,t$e,r$e,n$e,i$e,a$e,s$e,o$e,l$e,c$e,u$e,Lue,h$e,cx,f$e,d$e,p$e,m$e,g$e,Rue,Mue=M(()=>{"use strict";mr();Vt();ht();hr();eE();QGe=de(),el=QGe?.gitGraph,hf=10,ff=40,Pc=4,Vu=2,b0=8,Ps=new Map,Bs=new Map,nE=30,lx=new Map,iE=[],uf=0,Nr="LR",ZGe=o(()=>{Ps.clear(),Bs.clear(),lx.clear(),uf=0,iE=[],Nr="LR"},"clear"),Due=o(t=>{let e=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|/gi):t).forEach(n=>{let i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),i.setAttribute("class","row"),i.textContent=n.trim(),e.appendChild(i)}),e},"drawText"),Nue=o(t=>{let e,r,n;return Nr==="BT"?(r=o((i,a)=>i<=a,"comparisonFunc"),n=1/0):(r=o((i,a)=>i>=a,"comparisonFunc"),n=0),t.forEach(i=>{let a=Nr==="TB"||Nr=="BT"?Bs.get(i)?.y:Bs.get(i)?.x;a!==void 0&&r(a,n)&&(e=i,n=a)}),e},"findClosestParent"),JGe=o(t=>{let e="",r=1/0;return t.forEach(n=>{let i=Bs.get(n).y;i<=r&&(e=n,r=i)}),e||void 0},"findClosestParentBT"),e$e=o((t,e,r)=>{let n=r,i=r,a=[];t.forEach(s=>{let l=e.get(s);if(!l)throw new Error(`Commit not found for key ${s}`);l.parents.length?(n=r$e(l),i=Math.max(n,i)):a.push(l),n$e(l,n)}),n=i,a.forEach(s=>{i$e(s,n,r)}),t.forEach(s=>{let l=e.get(s);if(l?.parents.length){let u=JGe(l.parents);n=Bs.get(u).y-ff,n<=i&&(i=n);let h=Ps.get(l.branch).pos,f=n-hf;Bs.set(l.id,{x:h,y:f})}})},"setParallelBTPos"),t$e=o(t=>{let e=Nue(t.parents.filter(n=>n!==null));if(!e)throw new Error(`Closest parent not found for commit ${t.id}`);let r=Bs.get(e)?.y;if(r===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return r},"findClosestParentPos"),r$e=o(t=>t$e(t)+ff,"calculateCommitPosition"),n$e=o((t,e)=>{let r=Ps.get(t.branch);if(!r)throw new Error(`Branch not found for commit ${t.id}`);let n=r.pos,i=e+hf;return Bs.set(t.id,{x:n,y:i}),{x:n,y:i}},"setCommitPosition"),i$e=o((t,e,r)=>{let n=Ps.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);let i=e+r,a=n.pos;Bs.set(t.id,{x:a,y:i})},"setRootPosition"),a$e=o((t,e,r,n,i,a)=>{if(a===jr.HIGHLIGHT)t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%b0} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%b0} ${n}-inner`);else if(a===jr.CHERRY_PICK)t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} ${n}`);else{let s=t.append("circle");if(s.attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===jr.MERGE?9:10),s.attr("class",`commit ${e.id} commit${i%b0}`),a===jr.MERGE){let l=t.append("circle");l.attr("cx",r.x),l.attr("cy",r.y),l.attr("r",6),l.attr("class",`commit ${n} ${e.id} commit${i%b0}`)}a===jr.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},${r.y-5}`).attr("class",`commit ${n} ${e.id} commit${i%b0}`)}},"drawCommitBullet"),s$e=o((t,e,r,n)=>{if(e.type!==jr.CHERRY_PICK&&(e.customId&&e.type===jr.MERGE||e.type!==jr.MERGE)&&el?.showCommitLabel){let i=t.append("g"),a=i.insert("rect").attr("class","commit-label-bkg"),s=i.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id),l=s.node()?.getBBox();if(l&&(a.attr("x",r.posWithOffset-l.width/2-Vu).attr("y",r.y+13.5).attr("width",l.width+2*Vu).attr("height",l.height+2*Vu),Nr==="TB"||Nr==="BT"?(a.attr("x",r.x-(l.width+4*Pc+5)).attr("y",r.y-12),s.attr("x",r.x-(l.width+4*Pc)).attr("y",r.y+l.height-12)):s.attr("x",r.posWithOffset-l.width/2),el.rotateCommitLabel))if(Nr==="TB"||Nr==="BT")s.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")");else{let u=-7.5-(l.width+10)/25*9.5,h=10+l.width/25*8.5;i.attr("transform","translate("+u+", "+h+") rotate(-45, "+n+", "+r.y+")")}}},"drawCommitLabel"),o$e=o((t,e,r,n)=>{if(e.tags.length>0){let i=0,a=0,s=0,l=[];for(let u of e.tags.reverse()){let h=t.insert("polygon"),f=t.append("circle"),d=t.append("text").attr("y",r.y-16-i).attr("class","tag-label").text(u),p=d.node()?.getBBox();if(!p)throw new Error("Tag bbox not found");a=Math.max(a,p.width),s=Math.max(s,p.height),d.attr("x",r.posWithOffset-p.width/2),l.push({tag:d,hole:f,rect:h,yOffset:i}),i+=20}for(let{tag:u,hole:h,rect:f,yOffset:d}of l){let p=s/2,m=r.y-19.2-d;if(f.attr("class","tag-label-bkg").attr("points",` + ${n-a/2-Pc/2},${m+Vu} + ${n-a/2-Pc/2},${m-Vu} + ${r.posWithOffset-a/2-Pc},${m-p-Vu} + ${r.posWithOffset+a/2+Pc},${m-p-Vu} + ${r.posWithOffset+a/2+Pc},${m+p+Vu} + ${r.posWithOffset-a/2-Pc},${m+p+Vu}`),h.attr("cy",m).attr("cx",n-a/2+Pc/2).attr("r",1.5).attr("class","tag-hole"),Nr==="TB"||Nr==="BT"){let g=n+d;f.attr("class","tag-label-bkg").attr("points",` + ${r.x},${g+2} + ${r.x},${g-2} + ${r.x+hf},${g-p-2} + ${r.x+hf+a+4},${g-p-2} + ${r.x+hf+a+4},${g+p+2} + ${r.x+hf},${g+p+2}`).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),h.attr("cx",r.x+Pc/2).attr("cy",g).attr("transform","translate(12,12) rotate(45, "+r.x+","+n+")"),u.attr("x",r.x+5).attr("y",g+3).attr("transform","translate(14,14) rotate(45, "+r.x+","+n+")")}}}},"drawCommitTags"),l$e=o(t=>{switch(t.customType??t.type){case jr.NORMAL:return"commit-normal";case jr.REVERSE:return"commit-reverse";case jr.HIGHLIGHT:return"commit-highlight";case jr.MERGE:return"commit-merge";case jr.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),c$e=o((t,e,r,n)=>{let i={x:0,y:0};if(t.parents.length>0){let a=Nue(t.parents);if(a){let s=n.get(a)??i;return e==="TB"?s.y+ff:e==="BT"?(n.get(t.id)??i).y-ff:s.x+ff}}else return e==="TB"?nE:e==="BT"?(n.get(t.id)??i).y-ff:0;return 0},"calculatePosition"),u$e=o((t,e,r)=>{let n=Nr==="BT"&&r?e:e+hf,i=Nr==="TB"||Nr==="BT"?n:Ps.get(t.branch)?.pos,a=Nr==="TB"||Nr==="BT"?Ps.get(t.branch)?.pos:n;if(a===void 0||i===void 0)throw new Error(`Position were undefined for commit ${t.id}`);return{x:a,y:i,posWithOffset:n}},"getCommitPosition"),Lue=o((t,e,r)=>{if(!el)throw new Error("GitGraph config not found");let n=t.append("g").attr("class","commit-bullets"),i=t.append("g").attr("class","commit-labels"),a=Nr==="TB"||Nr==="BT"?nE:0,s=[...e.keys()],l=el?.parallelCommits??!1,u=o((f,d)=>{let p=e.get(f)?.seq,m=e.get(d)?.seq;return p!==void 0&&m!==void 0?p-m:0},"sortKeys"),h=s.sort(u);Nr==="BT"&&(l&&e$e(h,e,a),h=h.reverse()),h.forEach(f=>{let d=e.get(f);if(!d)throw new Error(`Commit not found for key ${f}`);l&&(a=c$e(d,Nr,a,Bs));let p=u$e(d,a,l);if(r){let m=l$e(d),g=d.customType??d.type,y=Ps.get(d.branch)?.index??0;a$e(n,d,p,m,y,g),s$e(i,d,p,a),o$e(i,d,p,a)}Nr==="TB"||Nr==="BT"?Bs.set(d.id,{x:p.x,y:p.posWithOffset}):Bs.set(d.id,{x:p.posWithOffset,y:p.y}),a=Nr==="BT"&&l?a+ff:a+ff+hf,a>uf&&(uf=a)})},"drawCommits"),h$e=o((t,e,r,n,i)=>{let s=(Nr==="TB"||Nr==="BT"?r.xh.branch===s,"isOnBranchToGetCurve"),u=o(h=>h.seq>t.seq&&h.sequ(h)&&l(h))},"shouldRerouteArrow"),cx=o((t,e,r=0)=>{let n=t+Math.abs(t-e)/2;if(r>5)return n;if(iE.every(s=>Math.abs(s-n)>=10))return iE.push(n),n;let a=Math.abs(t-e);return cx(t,e-a/5,r+1)},"findLane"),f$e=o((t,e,r,n)=>{let i=Bs.get(e.id),a=Bs.get(r.id);if(i===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${e.id} and ${r.id}`);let s=h$e(e,r,i,a,n),l="",u="",h=0,f=0,d=Ps.get(r.branch)?.index;r.type===jr.MERGE&&e.id!==r.parents[0]&&(d=Ps.get(e.branch)?.index);let p;if(s){l="A 10 10, 0, 0, 0,",u="A 10 10, 0, 0, 1,",h=10,f=10;let m=i.ya.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y-h} ${u} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x+h} ${i.y} ${l} ${a.x} ${i.y+f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):Nr==="BT"?(i.xa.x&&(l="A 20 20, 0, 0, 0,",u="A 20 20, 0, 0, 1,",h=20,f=20,r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${l} ${i.x-f} ${a.y} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`),i.x===a.x&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`)):(i.ya.y&&(r.type===jr.MERGE&&e.id!==r.parents[0]?p=`M ${i.x} ${i.y} L ${a.x-h} ${i.y} ${l} ${a.x} ${i.y-f} L ${a.x} ${a.y}`:p=`M ${i.x} ${i.y} L ${i.x} ${a.y+h} ${u} ${i.x+f} ${a.y} L ${a.x} ${a.y}`),i.y===a.y&&(p=`M ${i.x} ${i.y} L ${a.x} ${a.y}`));if(p===void 0)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%b0)},"drawArrow"),d$e=o((t,e)=>{let r=t.append("g").attr("class","commit-arrows");[...e.keys()].forEach(n=>{let i=e.get(n);i.parents&&i.parents.length>0&&i.parents.forEach(a=>{f$e(r,e.get(a),i,e)})})},"drawArrows"),p$e=o((t,e)=>{let r=t.append("g");e.forEach((n,i)=>{let a=i%b0,s=Ps.get(n.name)?.pos;if(s===void 0)throw new Error(`Position not found for branch ${n.name}`);let l=r.append("line");l.attr("x1",0),l.attr("y1",s),l.attr("x2",uf),l.attr("y2",s),l.attr("class","branch branch"+a),Nr==="TB"?(l.attr("y1",nE),l.attr("x1",s),l.attr("y2",uf),l.attr("x2",s)):Nr==="BT"&&(l.attr("y1",uf),l.attr("x1",s),l.attr("y2",nE),l.attr("x2",s)),iE.push(s);let u=n.name,h=Due(u),f=r.insert("rect"),p=r.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);p.node().appendChild(h);let m=h.getBBox();f.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-m.width-4-(el?.rotateCommitLabel===!0?30:0)).attr("y",-m.height/2+8).attr("width",m.width+18).attr("height",m.height+4),p.attr("transform","translate("+(-m.width-14-(el?.rotateCommitLabel===!0?30:0))+", "+(s-m.height/2-1)+")"),Nr==="TB"?(f.attr("x",s-m.width/2-10).attr("y",0),p.attr("transform","translate("+(s-m.width/2-5)+", 0)")):Nr==="BT"?(f.attr("x",s-m.width/2-10).attr("y",uf),p.attr("transform","translate("+(s-m.width/2-5)+", "+uf+")")):f.attr("transform","translate(-19, "+(s-m.height/2)+")")})},"drawBranches"),m$e=o(function(t,e,r,n,i){return Ps.set(t,{pos:e,index:r}),e+=50+(i?40:0)+(Nr==="TB"||Nr==="BT"?n.width/2:0),e},"setBranchPosition"),g$e=o(function(t,e,r,n){if(ZGe(),Y.debug("in gitgraph renderer",t+` +`,"id:",e,r),!el)throw new Error("GitGraph config not found");let i=el.rotateCommitLabel??!1,a=n.db;lx=a.getCommits();let s=a.getBranchesAsObjArray();Nr=a.getDirection();let l=ze(`[id="${e}"]`),u=0;s.forEach((h,f)=>{let d=Due(h.name),p=l.append("g"),m=p.insert("g").attr("class","branchLabel"),g=m.insert("g").attr("class","label branch-label");g.node()?.appendChild(d);let y=d.getBBox();u=m$e(h.name,u,f,y,i),g.remove(),m.remove(),p.remove()}),Lue(l,lx,!1),el.showBranches&&p$e(l,s),d$e(l,lx),Lue(l,lx,!0),Ut.insertTitle(l,"gitTitleText",el.titleTopMargin??0,a.getDiagramTitle()),a7(void 0,l,el.diagramPadding,el.useMaxWidth)},"draw"),Rue={draw:g$e}});var y$e,Iue,Oue=M(()=>{"use strict";y$e=o(t=>` + .commit-id, + .commit-msg, + .branch-label { + fill: lightgrey; + color: lightgrey; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + } + ${[0,1,2,3,4,5,6,7].map(e=>` + .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; } + .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; } + .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; } + .label${e} { fill: ${t["git"+e]}; } + .arrow${e} { stroke: ${t["git"+e]}; } + `).join(` +`)} + + .branch { + stroke-width: 1; + stroke: ${t.lineColor}; + stroke-dasharray: 2; + } + .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};} + .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; } + .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};} + .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; } + .tag-hole { fill: ${t.textColor}; } + + .commit-merge { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + .commit-reverse { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + stroke-width: 3; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${t.primaryColor}; + fill: ${t.primaryColor}; + } + + .arrow { stroke-width: 8; stroke-linecap: round; fill: none} + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),Iue=y$e});var Pue={};vr(Pue,{diagram:()=>v$e});var v$e,Bue=M(()=>{"use strict";_ue();MI();Mue();Oue();v$e={parser:Aue,db:rE,renderer:Rue,styles:Iue}});var II,Gue,$ue=M(()=>{"use strict";II=function(){var t=o(function(R,S,O,N){for(O=O||{},N=R.length;N--;O[R[N]]=S);return O},"o"),e=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],r=[1,26],n=[1,27],i=[1,28],a=[1,29],s=[1,30],l=[1,31],u=[1,32],h=[1,33],f=[1,34],d=[1,9],p=[1,10],m=[1,11],g=[1,12],y=[1,13],v=[1,14],x=[1,15],b=[1,16],w=[1,19],_=[1,20],T=[1,21],E=[1,22],L=[1,23],C=[1,25],A=[1,35],I={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:o(function(S,O,N,P,F,B,$){var z=B.length-1;switch(F){case 1:return B[z-1];case 2:this.$=[];break;case 3:B[z-1].push(B[z]),this.$=B[z-1];break;case 4:case 5:this.$=B[z];break;case 6:case 7:this.$=[];break;case 8:P.setWeekday("monday");break;case 9:P.setWeekday("tuesday");break;case 10:P.setWeekday("wednesday");break;case 11:P.setWeekday("thursday");break;case 12:P.setWeekday("friday");break;case 13:P.setWeekday("saturday");break;case 14:P.setWeekday("sunday");break;case 15:P.setWeekend("friday");break;case 16:P.setWeekend("saturday");break;case 17:P.setDateFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 18:P.enableInclusiveEndDates(),this.$=B[z].substr(18);break;case 19:P.TopAxis(),this.$=B[z].substr(8);break;case 20:P.setAxisFormat(B[z].substr(11)),this.$=B[z].substr(11);break;case 21:P.setTickInterval(B[z].substr(13)),this.$=B[z].substr(13);break;case 22:P.setExcludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 23:P.setIncludes(B[z].substr(9)),this.$=B[z].substr(9);break;case 24:P.setTodayMarker(B[z].substr(12)),this.$=B[z].substr(12);break;case 27:P.setDiagramTitle(B[z].substr(6)),this.$=B[z].substr(6);break;case 28:this.$=B[z].trim(),P.setAccTitle(this.$);break;case 29:case 30:this.$=B[z].trim(),P.setAccDescription(this.$);break;case 31:P.addSection(B[z].substr(8)),this.$=B[z].substr(8);break;case 33:P.addTask(B[z-1],B[z]),this.$="task";break;case 34:this.$=B[z-1],P.setClickEvent(B[z-1],B[z],null);break;case 35:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],B[z]);break;case 36:this.$=B[z-2],P.setClickEvent(B[z-2],B[z-1],null),P.setLink(B[z-2],B[z]);break;case 37:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-2],B[z-1]),P.setLink(B[z-3],B[z]);break;case 38:this.$=B[z-2],P.setClickEvent(B[z-2],B[z],null),P.setLink(B[z-2],B[z-1]);break;case 39:this.$=B[z-3],P.setClickEvent(B[z-3],B[z-1],B[z]),P.setLink(B[z-3],B[z-2]);break;case 40:this.$=B[z-1],P.setLink(B[z-1],B[z]);break;case 41:case 47:this.$=B[z-1]+" "+B[z];break;case 42:case 43:case 45:this.$=B[z-2]+" "+B[z-1]+" "+B[z];break;case 44:case 46:this.$=B[z-3]+" "+B[z-2]+" "+B[z-1]+" "+B[z];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:_,33:T,35:E,36:L,37:24,38:C,40:A},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:r,13:n,14:i,15:a,16:s,17:l,18:u,19:18,20:h,21:f,22:d,23:p,24:m,25:g,26:y,27:v,28:x,29:b,30:w,31:_,33:T,35:E,36:L,37:24,38:C,40:A},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:o(function(S,O){if(O.recoverable)this.trace(S);else{var N=new Error(S);throw N.hash=O,N}},"parseError"),parse:o(function(S){var O=this,N=[0],P=[],F=[null],B=[],$=this.table,z="",W=0,j=0,K=0,ie=2,Q=1,ee=B.slice.call(arguments,1),J=Object.create(this.lexer),H={yy:{}};for(var q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,q)&&(H.yy[q]=this.yy[q]);J.setInput(S,H.yy),H.yy.lexer=J,H.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var Z=J.yylloc;B.push(Z);var ae=J.options&&J.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ue(he){N.length=N.length-2*he,F.length=F.length-he,B.length=B.length-he}o(ue,"popStack");function ce(){var he;return he=P.pop()||J.lex()||Q,typeof he!="number"&&(he instanceof Array&&(P=he,he=P.pop()),he=O.symbols_[he]||he),he}o(ce,"lex");for(var te,De,oe,ke,Fe,Be,Ve={},Ge,He,xe,X;;){if(oe=N[N.length-1],this.defaultActions[oe]?ke=this.defaultActions[oe]:((te===null||typeof te>"u")&&(te=ce()),ke=$[oe]&&$[oe][te]),typeof ke>"u"||!ke.length||!ke[0]){var fe="";X=[];for(Ge in $[oe])this.terminals_[Ge]&&Ge>ie&&X.push("'"+this.terminals_[Ge]+"'");J.showPosition?fe="Parse error on line "+(W+1)+`: +`+J.showPosition()+` +Expecting `+X.join(", ")+", got '"+(this.terminals_[te]||te)+"'":fe="Parse error on line "+(W+1)+": Unexpected "+(te==Q?"end of input":"'"+(this.terminals_[te]||te)+"'"),this.parseError(fe,{text:J.match,token:this.terminals_[te]||te,line:J.yylineno,loc:Z,expected:X})}if(ke[0]instanceof Array&&ke.length>1)throw new Error("Parse Error: multiple actions possible at state: "+oe+", token: "+te);switch(ke[0]){case 1:N.push(te),F.push(J.yytext),B.push(J.yylloc),N.push(ke[1]),te=null,De?(te=De,De=null):(j=J.yyleng,z=J.yytext,W=J.yylineno,Z=J.yylloc,K>0&&K--);break;case 2:if(He=this.productions_[ke[1]][1],Ve.$=F[F.length-He],Ve._$={first_line:B[B.length-(He||1)].first_line,last_line:B[B.length-1].last_line,first_column:B[B.length-(He||1)].first_column,last_column:B[B.length-1].last_column},ae&&(Ve._$.range=[B[B.length-(He||1)].range[0],B[B.length-1].range[1]]),Be=this.performAction.apply(Ve,[z,j,W,H.yy,ke[1],F,B].concat(ee)),typeof Be<"u")return Be;He&&(N=N.slice(0,-1*He*2),F=F.slice(0,-1*He),B=B.slice(0,-1*He)),N.push(this.productions_[ke[1]][0]),F.push(Ve.$),B.push(Ve._$),xe=$[N[N.length-2]][N[N.length-1]],N.push(xe);break;case 3:return!0}}return!0},"parse")},D=function(){var R={EOF:1,parseError:o(function(O,N){if(this.yy.parser)this.yy.parser.parseError(O,N);else throw new Error(O)},"parseError"),setInput:o(function(S,O){return this.yy=O||this.yy||{},this._input=S,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var O=S.match(/(?:\r\n?|\n).*/g);return O?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:o(function(S){var O=S.length,N=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-O),this.offset-=O;var P=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),N.length-1&&(this.yylineno-=N.length-1);var F=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:N?(N.length===P.length?this.yylloc.first_column:0)+P[P.length-N.length].length-N[0].length:this.yylloc.first_column-O},this.options.ranges&&(this.yylloc.range=[F[0],F[0]+this.yyleng-O]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(S){this.unput(this.match.slice(S))},"less"),pastInput:o(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var S=this.pastInput(),O=new Array(S.length+1).join("-");return S+this.upcomingInput()+` +`+O+"^"},"showPosition"),test_match:o(function(S,O){var N,P,F;if(this.options.backtrack_lexer&&(F={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(F.yylloc.range=this.yylloc.range.slice(0))),P=S[0].match(/(?:\r\n?|\n).*/g),P&&(this.yylineno+=P.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:P?P[P.length-1].length-P[P.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+S[0].length},this.yytext+=S[0],this.match+=S[0],this.matches=S,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(S[0].length),this.matched+=S[0],N=this.performAction.call(this,this.yy,this,O,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),N)return N;if(this._backtrack){for(var B in F)this[B]=F[B];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var S,O,N,P;this._more||(this.yytext="",this.match="");for(var F=this._currentRules(),B=0;BO[0].length)){if(O=N,P=B,this.options.backtrack_lexer){if(S=this.test_match(N,F[B]),S!==!1)return S;if(this._backtrack){O=!1;continue}else return!1}else if(!this.options.flex)break}return O?(S=this.test_match(O,F[P]),S!==!1?S:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var O=this.next();return O||this.lex()},"lex"),begin:o(function(O){this.conditionStack.push(O)},"begin"),popState:o(function(){var O=this.conditionStack.length-1;return O>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(O){return O=this.conditionStack.length-1-Math.abs(O||0),O>=0?this.conditionStack[O]:"INITIAL"},"topState"),pushState:o(function(O){this.begin(O)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(O,N,P,F){var B=F;switch(P){case 0:return this.begin("open_directive"),"open_directive";break;case 1:return this.begin("acc_title"),31;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),33;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:break;case 9:break;case 10:break;case 11:return 10;case 12:break;case 13:break;case 14:this.begin("href");break;case 15:this.popState();break;case 16:return 43;case 17:this.begin("callbackname");break;case 18:this.popState();break;case 19:this.popState(),this.begin("callbackargs");break;case 20:return 41;case 21:this.popState();break;case 22:return 42;case 23:this.begin("click");break;case 24:this.popState();break;case 25:return 40;case 26:return 4;case 27:return 22;case 28:return 23;case 29:return 24;case 30:return 25;case 31:return 26;case 32:return 28;case 33:return 27;case 34:return 29;case 35:return 12;case 36:return 13;case 37:return 14;case 38:return 15;case 39:return 16;case 40:return 17;case 41:return 18;case 42:return 20;case 43:return 21;case 44:return"date";case 45:return 30;case 46:return"accDescription";case 47:return 36;case 48:return 38;case 49:return 39;case 50:return":";case 51:return 6;case 52:return"INVALID"}},"anonymous"),rules:[/^(?:%%\{)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:weekday\s+monday\b)/i,/^(?:weekday\s+tuesday\b)/i,/^(?:weekday\s+wednesday\b)/i,/^(?:weekday\s+thursday\b)/i,/^(?:weekday\s+friday\b)/i,/^(?:weekday\s+saturday\b)/i,/^(?:weekday\s+sunday\b)/i,/^(?:weekend\s+friday\b)/i,/^(?:weekend\s+saturday\b)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^\n]+)/i,/^(?:[^:\n]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},callbackargs:{rules:[21,22],inclusive:!1},callbackname:{rules:[18,19,20],inclusive:!1},href:{rules:[15,16],inclusive:!1},click:{rules:[24,25],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,17,23,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],inclusive:!0}}};return R}();I.lexer=D;function k(){this.yy={}}return o(k,"Parser"),k.prototype=I,I.Parser=k,new k}();II.parser=II;Gue=II});var Vue=Ni((OI,PI)=>{"use strict";(function(t,e){typeof OI=="object"&&typeof PI<"u"?PI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_isoWeek=e()})(OI,function(){"use strict";var t="day";return function(e,r,n){var i=o(function(l){return l.add(4-l.isoWeekday(),t)},"a"),a=r.prototype;a.isoWeekYear=function(){return i(this).year()},a.isoWeek=function(l){if(!this.$utils().u(l))return this.add(7*(l-this.isoWeek()),t);var u,h,f,d,p=i(this),m=(u=this.isoWeekYear(),h=this.$u,f=(h?n.utc:n)().year(u).startOf("year"),d=4-f.isoWeekday(),f.isoWeekday()>4&&(d+=7),f.add(d,t));return p.diff(m,"week")+1},a.isoWeekday=function(l){return this.$utils().u(l)?this.day()||7:this.day(this.day()%7?l:l-7)};var s=a.startOf;a.startOf=function(l,u){var h=this.$utils(),f=!!h.u(u)||u;return h.p(l)==="isoweek"?f?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):s.bind(this)(l,u)}}})});var Uue=Ni((BI,FI)=>{"use strict";(function(t,e){typeof BI=="object"&&typeof FI<"u"?FI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_customParseFormat=e()})(BI,function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d/,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,s={},l=o(function(g){return(g=+g)+(g>68?1900:2e3)},"a"),u=o(function(g){return function(y){this[g]=+y}},"f"),h=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y==="Z")return 0;var v=y.match(/([+-]|\d\d)/g),x=60*v[1]+(+v[2]||0);return x===0?0:v[0]==="+"?-x:x}(g)}],f=o(function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},"u"),d=o(function(g,y){var v,x=s.meridiem;if(x){for(var b=1;b<=24;b+=1)if(g.indexOf(x(b,0,y))>-1){v=b>12;break}}else v=g===(y?"pm":"PM");return v},"d"),p={A:[a,function(g){this.afternoon=d(g,!1)}],a:[a,function(g){this.afternoon=d(g,!0)}],Q:[r,function(g){this.month=3*(g-1)+1}],S:[r,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[i,u("seconds")],ss:[i,u("seconds")],m:[i,u("minutes")],mm:[i,u("minutes")],H:[i,u("hours")],h:[i,u("hours")],HH:[i,u("hours")],hh:[i,u("hours")],D:[i,u("day")],DD:[n,u("day")],Do:[a,function(g){var y=s.ordinal,v=g.match(/\d+/);if(this.day=v[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[i,u("week")],ww:[n,u("week")],M:[i,u("month")],MM:[n,u("month")],MMM:[a,function(g){var y=f("months"),v=(f("monthsShort")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(v<1)throw new Error;this.month=v%12||v}],MMMM:[a,function(g){var y=f("months").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\d+/,u("year")],YY:[n,function(g){this.year=l(g)}],YYYY:[/\d{4}/,u("year")],Z:h,ZZ:h};function m(g){var y,v;y=g,v=s&&s.formats;for(var x=(g=y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(C,A,I){var D=I&&I.toUpperCase();return A||v[I]||t[I]||v[D].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(k,R,S){return R||S.slice(1)})})).match(e),b=x.length,w=0;w-1)return new Date((N==="X"?1e3:1)*O);var B=m(N)(O),$=B.year,z=B.month,W=B.day,j=B.hours,K=B.minutes,ie=B.seconds,Q=B.milliseconds,ee=B.zone,J=B.week,H=new Date,q=W||($||z?1:H.getDate()),Z=$||H.getFullYear(),ae=0;$&&!z||(ae=z>0?z-1:H.getMonth());var ue,ce=j||0,te=K||0,De=ie||0,oe=Q||0;return ee?new Date(Date.UTC(Z,ae,q,ce,te,De,oe+60*ee.offset*1e3)):P?new Date(Date.UTC(Z,ae,q,ce,te,De,oe)):(ue=new Date(Z,ae,q,ce,te,De,oe),J&&(ue=F(ue).week(J).toDate()),ue)}catch{return new Date("")}}(_,L,T,v),this.init(),D&&D!==!0&&(this.$L=this.locale(D).$L),I&&_!=this.format(L)&&(this.$d=new Date("")),s={}}else if(L instanceof Array)for(var k=L.length,R=1;R<=k;R+=1){E[1]=L[R-1];var S=v.apply(this,E);if(S.isValid()){this.$d=S.$d,this.$L=S.$L,this.init();break}R===k&&(this.$d=new Date(""))}else b.call(this,w)}}})});var Hue=Ni((zI,GI)=>{"use strict";(function(t,e){typeof zI=="object"&&typeof GI<"u"?GI.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=e()})(zI,function(){"use strict";return function(t,e){var r=e.prototype,n=r.format;r.format=function(i){var a=this,s=this.$locale();if(!this.isValid())return n.bind(this)(i);var l=this.$utils(),u=(i||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(h){switch(h){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return s.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return s.ordinal(a.week(),"W");case"w":case"ww":return l.s(a.week(),h==="w"?1:2,"0");case"W":case"WW":return l.s(a.isoWeek(),h==="W"?1:2,"0");case"k":case"kk":return l.s(String(a.$H===0?24:a.$H),h==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return h}});return n.bind(this)(u)}}})});function she(t,e,r){let n=!0;for(;n;)n=!1,r.forEach(function(i){let a="^\\s*"+i+"\\s*$",s=new RegExp(a);t[0].match(s)&&(e[i]=!0,t.shift(1),n=!0)})}var que,ho,Xue,jue,Kue,Wue,Bc,HI,WI,YI,ux,hx,qI,XI,oE,Mg,jI,Que,KI,fx,QI,ZI,lE,$I,T$e,k$e,E$e,S$e,C$e,A$e,_$e,L$e,D$e,N$e,R$e,M$e,I$e,O$e,P$e,B$e,F$e,z$e,G$e,$$e,V$e,U$e,H$e,Zue,W$e,Y$e,q$e,Jue,X$e,VI,ehe,the,aE,Rg,j$e,K$e,UI,sE,Vi,rhe,Q$e,w0,Z$e,Yue,J$e,nhe,eVe,ihe,tVe,rVe,ahe,ohe=M(()=>{"use strict";que=ka(Fp(),1),ho=ka(Ab(),1),Xue=ka(Vue(),1),jue=ka(Uue(),1),Kue=ka(Hue(),1);ht();Vt();hr();ki();ho.default.extend(Xue.default);ho.default.extend(jue.default);ho.default.extend(Kue.default);Wue={friday:5,saturday:6},Bc="",HI="",YI="",ux=[],hx=[],qI=new Map,XI=[],oE=[],Mg="",jI="",Que=["active","done","crit","milestone"],KI=[],fx=!1,QI=!1,ZI="sunday",lE="saturday",$I=0,T$e=o(function(){XI=[],oE=[],Mg="",KI=[],aE=0,UI=void 0,sE=void 0,Vi=[],Bc="",HI="",jI="",WI=void 0,YI="",ux=[],hx=[],fx=!1,QI=!1,$I=0,qI=new Map,_r(),ZI="sunday",lE="saturday"},"clear"),k$e=o(function(t){HI=t},"setAxisFormat"),E$e=o(function(){return HI},"getAxisFormat"),S$e=o(function(t){WI=t},"setTickInterval"),C$e=o(function(){return WI},"getTickInterval"),A$e=o(function(t){YI=t},"setTodayMarker"),_$e=o(function(){return YI},"getTodayMarker"),L$e=o(function(t){Bc=t},"setDateFormat"),D$e=o(function(){fx=!0},"enableInclusiveEndDates"),N$e=o(function(){return fx},"endDatesAreInclusive"),R$e=o(function(){QI=!0},"enableTopAxis"),M$e=o(function(){return QI},"topAxisEnabled"),I$e=o(function(t){jI=t},"setDisplayMode"),O$e=o(function(){return jI},"getDisplayMode"),P$e=o(function(){return Bc},"getDateFormat"),B$e=o(function(t){ux=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),F$e=o(function(){return ux},"getIncludes"),z$e=o(function(t){hx=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),G$e=o(function(){return hx},"getExcludes"),$$e=o(function(){return qI},"getLinks"),V$e=o(function(t){Mg=t,XI.push(t)},"addSection"),U$e=o(function(){return XI},"getSections"),H$e=o(function(){let t=Yue(),e=10,r=0;for(;!t&&r[\d\w- ]+)/.exec(r);if(i!==null){let s=null;for(let u of i.groups.ids.split(" ")){let h=w0(u);h!==void 0&&(!s||h.endTime>s.endTime)&&(s=h)}if(s)return s.endTime;let l=new Date;return l.setHours(0,0,0,0),l}let a=(0,ho.default)(r,e.trim(),!0);if(a.isValid())return a.toDate();{Y.debug("Invalid date:"+r),Y.debug("With date format:"+e.trim());let s=new Date(r);if(s===void 0||isNaN(s.getTime())||s.getFullYear()<-1e4||s.getFullYear()>1e4)throw new Error("Invalid date:"+r);return s}},"getStartDate"),ehe=o(function(t){let e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),the=o(function(t,e,r,n=!1){r=r.trim();let a=/^until\s+(?[\d\w- ]+)/.exec(r);if(a!==null){let f=null;for(let p of a.groups.ids.split(" ")){let m=w0(p);m!==void 0&&(!f||m.startTime{window.open(r,"_self")}),qI.set(n,r))}),nhe(t,"clickable")},"setLink"),nhe=o(function(t,e){t.split(",").forEach(function(r){let n=w0(r);n!==void 0&&n.classes.push(e)})},"setClass"),eVe=o(function(t,e,r){if(de().securityLevel!=="loose"||e===void 0)return;let n=[];if(typeof r=="string"){n=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let a=0;a{Ut.runFunc(e,...n)})},"setClickFun"),ihe=o(function(t,e){KI.push(function(){let r=document.querySelector(`[id="${t}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){let r=document.querySelector(`[id="${t}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),tVe=o(function(t,e,r){t.split(",").forEach(function(n){eVe(n,e,r)}),nhe(t,"clickable")},"setClickEvent"),rVe=o(function(t){KI.forEach(function(e){e(t)})},"bindFunctions"),ahe={getConfig:o(()=>de().gantt,"getConfig"),clear:T$e,setDateFormat:L$e,getDateFormat:P$e,enableInclusiveEndDates:D$e,endDatesAreInclusive:N$e,enableTopAxis:R$e,topAxisEnabled:M$e,setAxisFormat:k$e,getAxisFormat:E$e,setTickInterval:S$e,getTickInterval:C$e,setTodayMarker:A$e,getTodayMarker:_$e,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,setDisplayMode:I$e,getDisplayMode:O$e,setAccDescription:Br,getAccDescription:Fr,addSection:V$e,getSections:U$e,getTasks:H$e,addTask:Q$e,findTaskById:w0,addTaskOrg:Z$e,setIncludes:B$e,getIncludes:F$e,setExcludes:z$e,getExcludes:G$e,setClickEvent:tVe,setLink:J$e,getLinks:$$e,bindFunctions:rVe,parseDuration:ehe,isInvalidDate:Zue,setWeekday:W$e,getWeekday:Y$e,setWeekend:q$e};o(she,"getTaskTags")});var cE,nVe,lhe,iVe,Uu,aVe,che,uhe=M(()=>{"use strict";cE=ka(Ab(),1);ht();mr();fr();Vt();ni();nVe=o(function(){Y.debug("Something is calling, setConf, remove the call")},"setConf"),lhe={monday:Th,tuesday:b3,wednesday:w3,thursday:cc,friday:T3,saturday:k3,sunday:wl},iVe=o((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((a,s)=>a.startTime-s.startTime||a.order-s.order),i=0;for(let a of n)for(let s=0;s=r[s]){r[s]=a.endTime,a.order=s+e,s>i&&(i=s);break}return i},"getMaxIntersections"),aVe=o(function(t,e,r,n){let i=de().gantt,a=de().securityLevel,s;a==="sandbox"&&(s=ze("#i"+e));let l=a==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body"),u=a==="sandbox"?s.nodes()[0].contentDocument:document,h=u.getElementById(e);Uu=h.parentElement.offsetWidth,Uu===void 0&&(Uu=1200),i.useWidth!==void 0&&(Uu=i.useWidth);let f=n.db.getTasks(),d=[];for(let C of f)d.push(C.type);d=L(d);let p={},m=2*i.topPadding;if(n.db.getDisplayMode()==="compact"||i.displayMode==="compact"){let C={};for(let I of f)C[I.section]===void 0?C[I.section]=[I]:C[I.section].push(I);let A=0;for(let I of Object.keys(C)){let D=iVe(C[I],A)+1;A+=D,m+=D*(i.barHeight+i.barGap),p[I]=D}}else{m+=f.length*(i.barHeight+i.barGap);for(let C of d)p[C]=f.filter(A=>A.type===C).length}h.setAttribute("viewBox","0 0 "+Uu+" "+m);let g=l.select(`[id="${e}"]`),y=C3().domain([N4(f,function(C){return C.startTime}),D4(f,function(C){return C.endTime})]).rangeRound([0,Uu-i.leftPadding-i.rightPadding]);function v(C,A){let I=C.startTime,D=A.startTime,k=0;return I>D?k=1:I$.order))].map($=>C.find(z=>z.order===$));g.append("g").selectAll("rect").data(N).enter().append("rect").attr("x",0).attr("y",function($,z){return z=$.order,z*A+I-2}).attr("width",function(){return S-i.rightPadding/2}).attr("height",A).attr("class",function($){for(let[z,W]of d.entries())if($.type===W)return"section section"+z%i.numberSectionStyles;return"section section0"});let P=g.append("g").selectAll("rect").data(C).enter(),F=n.db.getLinks();if(P.append("rect").attr("id",function($){return $.id}).attr("rx",3).attr("ry",3).attr("x",function($){return $.milestone?y($.startTime)+D+.5*(y($.endTime)-y($.startTime))-.5*k:y($.startTime)+D}).attr("y",function($,z){return z=$.order,z*A+I}).attr("width",function($){return $.milestone?k:y($.renderEndTime||$.endTime)-y($.startTime)}).attr("height",k).attr("transform-origin",function($,z){return z=$.order,(y($.startTime)+D+.5*(y($.endTime)-y($.startTime))).toString()+"px "+(z*A+I+.5*k).toString()+"px"}).attr("class",function($){let z="task",W="";$.classes.length>0&&(W=$.classes.join(" "));let j=0;for(let[ie,Q]of d.entries())$.type===Q&&(j=ie%i.numberSectionStyles);let K="";return $.active?$.crit?K+=" activeCrit":K=" active":$.done?$.crit?K=" doneCrit":K=" done":$.crit&&(K+=" crit"),K.length===0&&(K=" task"),$.milestone&&(K=" milestone "+K),K+=j,K+=" "+W,z+K}),P.append("text").attr("id",function($){return $.id+"-text"}).text(function($){return $.task}).attr("font-size",i.fontSize).attr("x",function($){let z=y($.startTime),W=y($.renderEndTime||$.endTime);$.milestone&&(z+=.5*(y($.endTime)-y($.startTime))-.5*k),$.milestone&&(W=z+k);let j=this.getBBox().width;return j>W-z?W+j+1.5*i.leftPadding>S?z+D-5:W+D+5:(W-z)/2+z+D}).attr("y",function($,z){return z=$.order,z*A+i.barHeight/2+(i.fontSize/2-2)+I}).attr("text-height",k).attr("class",function($){let z=y($.startTime),W=y($.endTime);$.milestone&&(W=z+k);let j=this.getBBox().width,K="";$.classes.length>0&&(K=$.classes.join(" "));let ie=0;for(let[ee,J]of d.entries())$.type===J&&(ie=ee%i.numberSectionStyles);let Q="";return $.active&&($.crit?Q="activeCritText"+ie:Q="activeText"+ie),$.done?$.crit?Q=Q+" doneCritText"+ie:Q=Q+" doneText"+ie:$.crit&&(Q=Q+" critText"+ie),$.milestone&&(Q+=" milestoneText"),j>W-z?W+j+1.5*i.leftPadding>S?K+" taskTextOutsideLeft taskTextOutside"+ie+" "+Q:K+" taskTextOutsideRight taskTextOutside"+ie+" "+Q+" width-"+j:K+" taskText taskText"+ie+" "+Q+" width-"+j}),de().securityLevel==="sandbox"){let $;$=ze("#i"+e);let z=$.nodes()[0].contentDocument;P.filter(function(W){return F.has(W.id)}).each(function(W){var j=z.querySelector("#"+W.id),K=z.querySelector("#"+W.id+"-text");let ie=j.parentNode;var Q=z.createElement("a");Q.setAttribute("xlink:href",F.get(W.id)),Q.setAttribute("target","_top"),ie.appendChild(Q),Q.appendChild(j),Q.appendChild(K)})}}o(b,"drawRects");function w(C,A,I,D,k,R,S,O){if(S.length===0&&O.length===0)return;let N,P;for(let{startTime:j,endTime:K}of R)(N===void 0||jP)&&(P=K);if(!N||!P)return;if((0,cE.default)(P).diff((0,cE.default)(N),"year")>5){Y.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}let F=n.db.getDateFormat(),B=[],$=null,z=(0,cE.default)(N);for(;z.valueOf()<=P;)n.db.isInvalidDate(z,F,S,O)?$?$.end=z:$={start:z,end:z}:$&&(B.push($),$=null),z=z.add(1,"d");g.append("g").selectAll("rect").data(B).enter().append("rect").attr("id",function(j){return"exclude-"+j.start.format("YYYY-MM-DD")}).attr("x",function(j){return y(j.start)+I}).attr("y",i.gridLineStartPadding).attr("width",function(j){let K=j.end.add(1,"day");return y(K)-y(j.start)}).attr("height",k-A-i.gridLineStartPadding).attr("transform-origin",function(j,K){return(y(j.start)+I+.5*(y(j.end)-y(j.start))).toString()+"px "+(K*C+.5*k).toString()+"px"}).attr("class","exclude-range")}o(w,"drawExcludeDays");function _(C,A,I,D){let k=v7(y).tickSize(-D+A+i.gridLineStartPadding).tickFormat(dd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d")),S=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(n.db.getTickInterval()||i.tickInterval);if(S!==null){let O=S[1],N=S[2],P=n.db.getWeekday()||i.weekday;switch(N){case"millisecond":k.ticks(oc.every(O));break;case"second":k.ticks(Xs.every(O));break;case"minute":k.ticks(mu.every(O));break;case"hour":k.ticks(gu.every(O));break;case"day":k.ticks(Lo.every(O));break;case"week":k.ticks(lhe[P].every(O));break;case"month":k.ticks(yu.every(O));break}}if(g.append("g").attr("class","grid").attr("transform","translate("+C+", "+(D-50)+")").call(k).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),n.db.topAxisEnabled()||i.topAxis){let O=y7(y).tickSize(-D+A+i.gridLineStartPadding).tickFormat(dd(n.db.getAxisFormat()||i.axisFormat||"%Y-%m-%d"));if(S!==null){let N=S[1],P=S[2],F=n.db.getWeekday()||i.weekday;switch(P){case"millisecond":O.ticks(oc.every(N));break;case"second":O.ticks(Xs.every(N));break;case"minute":O.ticks(mu.every(N));break;case"hour":O.ticks(gu.every(N));break;case"day":O.ticks(Lo.every(N));break;case"week":O.ticks(lhe[F].every(N));break;case"month":O.ticks(yu.every(N));break}}g.append("g").attr("class","grid").attr("transform","translate("+C+", "+A+")").call(O).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}o(_,"makeGrid");function T(C,A){let I=0,D=Object.keys(p).map(k=>[k,p[k]]);g.append("g").selectAll("text").data(D).enter().append(function(k){let R=k[0].split(je.lineBreakRegex),S=-(R.length-1)/2,O=u.createElementNS("http://www.w3.org/2000/svg","text");O.setAttribute("dy",S+"em");for(let[N,P]of R.entries()){let F=u.createElementNS("http://www.w3.org/2000/svg","tspan");F.setAttribute("alignment-baseline","central"),F.setAttribute("x","10"),N>0&&F.setAttribute("dy","1em"),F.textContent=P,O.appendChild(F)}return O}).attr("x",10).attr("y",function(k,R){if(R>0)for(let S=0;S{"use strict";sVe=o(t=>` + .mermaid-main-font { + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + cursor: pointer; + shape-rendering: crispEdges; + } + + .milestone { + transform: rotate(45deg) scale(0.8,0.8); + } + + .milestoneText { + font-style: italic; + } + .doneCritText0, + .doneCritText1, + .doneCritText2, + .doneCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); + } +`,"getStyles"),hhe=sVe});var dhe={};vr(dhe,{diagram:()=>oVe});var oVe,phe=M(()=>{"use strict";$ue();ohe();uhe();fhe();oVe={parser:Gue,db:ahe,renderer:che,styles:hhe}});var yhe,vhe=M(()=>{"use strict";Ng();ht();yhe={parse:o(async t=>{let e=await Gl("info",t);Y.debug(e)},"parse")}});var dx,JI=M(()=>{dx="11.4.1"});var fVe,dVe,xhe,bhe=M(()=>{"use strict";JI();fVe={version:dx},dVe=o(()=>fVe.version,"getVersion"),xhe={getVersion:dVe}});var Oa,Hu=M(()=>{"use strict";mr();Vt();Oa=o(t=>{let{securityLevel:e}=de(),r=ze("body");if(e==="sandbox"){let a=ze(`#i${t}`).node()?.contentDocument??document;r=ze(a.body)}return r.select(`#${t}`)},"selectSvgElement")});var pVe,whe,The=M(()=>{"use strict";ht();Hu();ni();pVe=o((t,e,r)=>{Y.debug(`rendering info diagram +`+t);let n=Oa(e);Zr(n,100,400,!0),n.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${r}`)},"draw"),whe={draw:pVe}});var khe={};vr(khe,{diagram:()=>mVe});var mVe,Ehe=M(()=>{"use strict";vhe();bhe();The();mVe={parser:yhe,db:xhe,renderer:whe}});var Ahe,eO,uE,tO,vVe,xVe,bVe,wVe,TVe,kVe,EVe,hE,rO=M(()=>{"use strict";ht();ki();hs();Ahe=ur.pie,eO={sections:new Map,showData:!1,config:Ahe},uE=eO.sections,tO=eO.showData,vVe=structuredClone(Ahe),xVe=o(()=>structuredClone(vVe),"getConfig"),bVe=o(()=>{uE=new Map,tO=eO.showData,_r()},"clear"),wVe=o(({label:t,value:e})=>{uE.has(t)||(uE.set(t,e),Y.debug(`added new section: ${t}, with value: ${e}`))},"addSection"),TVe=o(()=>uE,"getSections"),kVe=o(t=>{tO=t},"setShowData"),EVe=o(()=>tO,"getShowData"),hE={getConfig:xVe,clear:bVe,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addSection:wVe,getSections:TVe,setShowData:kVe,getShowData:EVe}});var SVe,_he,Lhe=M(()=>{"use strict";Ng();ht();ox();rO();SVe=o((t,e)=>{lf(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),_he={parse:o(async t=>{let e=await Gl("pie",t);Y.debug(e),SVe(e,hE)},"parse")}});var CVe,Dhe,Nhe=M(()=>{"use strict";CVe=o(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),Dhe=CVe});var AVe,_Ve,Rhe,Mhe=M(()=>{"use strict";mr();Vt();ht();Hu();ni();hr();AVe=o(t=>{let e=[...t.entries()].map(n=>({label:n[0],value:n[1]})).sort((n,i)=>i.value-n.value);return R3().value(n=>n.value)(e)},"createPieArcs"),_Ve=o((t,e,r,n)=>{Y.debug(`rendering pie chart +`+t);let i=n.db,a=de(),s=ws(i.getConfig(),a.pie),l=40,u=18,h=4,f=450,d=f,p=Oa(e),m=p.append("g");m.attr("transform","translate("+d/2+","+f/2+")");let{themeVariables:g}=a,[y]=Fo(g.pieOuterStrokeWidth);y??=2;let v=s.textPosition,x=Math.min(d,f)/2-l,b=El().innerRadius(0).outerRadius(x),w=El().innerRadius(x*v).outerRadius(x*v);m.append("circle").attr("cx",0).attr("cy",0).attr("r",x+y/2).attr("class","pieOuterCircle");let _=i.getSections(),T=AVe(_),E=[g.pie1,g.pie2,g.pie3,g.pie4,g.pie5,g.pie6,g.pie7,g.pie8,g.pie9,g.pie10,g.pie11,g.pie12],L=du(E);m.selectAll("mySlices").data(T).enter().append("path").attr("d",b).attr("fill",k=>L(k.data.label)).attr("class","pieCircle");let C=0;_.forEach(k=>{C+=k}),m.selectAll("mySlices").data(T).enter().append("text").text(k=>(k.data.value/C*100).toFixed(0)+"%").attr("transform",k=>"translate("+w.centroid(k)+")").style("text-anchor","middle").attr("class","slice"),m.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-(f-50)/2).attr("class","pieTitleText");let A=m.selectAll(".legend").data(L.domain()).enter().append("g").attr("class","legend").attr("transform",(k,R)=>{let S=u+h,O=S*L.domain().length/2,N=12*u,P=R*S-O;return"translate("+N+","+P+")"});A.append("rect").attr("width",u).attr("height",u).style("fill",L).style("stroke",L),A.data(T).append("text").attr("x",u+h).attr("y",u-h).text(k=>{let{label:R,value:S}=k.data;return i.getShowData()?`${R} [${S}]`:R});let I=Math.max(...A.selectAll("text").nodes().map(k=>k?.getBoundingClientRect().width??0)),D=d+l+u+h+I;p.attr("viewBox",`0 0 ${D} ${f}`),Zr(p,f,D,s.useMaxWidth)},"draw"),Rhe={draw:_Ve}});var Ihe={};vr(Ihe,{diagram:()=>LVe});var LVe,Ohe=M(()=>{"use strict";Lhe();rO();Nhe();Mhe();LVe={parser:_he,db:hE,renderer:Rhe,styles:Dhe}});var nO,Fhe,zhe=M(()=>{"use strict";nO=function(){var t=o(function(Te,se,Ee,Ae){for(Ee=Ee||{},Ae=Te.length;Ae--;Ee[Te[Ae]]=se);return Ee},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[1,7],s=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],l=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],u=[55,56,57],h=[2,36],f=[1,37],d=[1,36],p=[1,38],m=[1,35],g=[1,43],y=[1,41],v=[1,14],x=[1,23],b=[1,18],w=[1,19],_=[1,20],T=[1,21],E=[1,22],L=[1,24],C=[1,25],A=[1,26],I=[1,27],D=[1,28],k=[1,29],R=[1,32],S=[1,33],O=[1,34],N=[1,39],P=[1,40],F=[1,42],B=[1,44],$=[1,62],z=[1,61],W=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],j=[1,65],K=[1,66],ie=[1,67],Q=[1,68],ee=[1,69],J=[1,70],H=[1,71],q=[1,72],Z=[1,73],ae=[1,74],ue=[1,75],ce=[1,76],te=[4,5,6,7,8,9,10,11,12,13,14,15,18],De=[1,90],oe=[1,91],ke=[1,92],Fe=[1,99],Be=[1,93],Ve=[1,96],Ge=[1,94],He=[1,95],xe=[1,97],X=[1,98],fe=[1,102],he=[10,55,56,57],ge=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],ne={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:o(function(se,Ee,Ae,Pe,Me,me,We){var Re=me.length-1;switch(Me){case 23:this.$=me[Re];break;case 24:this.$=me[Re-1]+""+me[Re];break;case 26:this.$=me[Re-1]+me[Re];break;case 27:this.$=[me[Re].trim()];break;case 28:me[Re-2].push(me[Re].trim()),this.$=me[Re-2];break;case 29:this.$=me[Re-4],Pe.addClass(me[Re-2],me[Re]);break;case 37:this.$=[];break;case 42:this.$=me[Re].trim(),Pe.setDiagramTitle(this.$);break;case 43:this.$=me[Re].trim(),Pe.setAccTitle(this.$);break;case 44:case 45:this.$=me[Re].trim(),Pe.setAccDescription(this.$);break;case 46:Pe.addSection(me[Re].substr(8)),this.$=me[Re].substr(8);break;case 47:Pe.addPoint(me[Re-3],"",me[Re-1],me[Re],[]);break;case 48:Pe.addPoint(me[Re-4],me[Re-3],me[Re-1],me[Re],[]);break;case 49:Pe.addPoint(me[Re-4],"",me[Re-2],me[Re-1],me[Re]);break;case 50:Pe.addPoint(me[Re-5],me[Re-4],me[Re-2],me[Re-1],me[Re]);break;case 51:Pe.setXAxisLeftText(me[Re-2]),Pe.setXAxisRightText(me[Re]);break;case 52:me[Re-1].text+=" \u27F6 ",Pe.setXAxisLeftText(me[Re-1]);break;case 53:Pe.setXAxisLeftText(me[Re]);break;case 54:Pe.setYAxisBottomText(me[Re-2]),Pe.setYAxisTopText(me[Re]);break;case 55:me[Re-1].text+=" \u27F6 ",Pe.setYAxisBottomText(me[Re-1]);break;case 56:Pe.setYAxisBottomText(me[Re]);break;case 57:Pe.setQuadrant1Text(me[Re]);break;case 58:Pe.setQuadrant2Text(me[Re]);break;case 59:Pe.setQuadrant3Text(me[Re]);break;case 60:Pe.setQuadrant4Text(me[Re]);break;case 64:this.$={text:me[Re],type:"text"};break;case 65:this.$={text:me[Re-1].text+""+me[Re],type:me[Re-1].type};break;case 66:this.$={text:me[Re],type:"text"};break;case 67:this.$={text:me[Re],type:"markdown"};break;case 68:this.$=me[Re];break;case 69:this.$=me[Re-1]+""+me[Re];break}},"anonymous"),table:[{18:e,26:1,27:2,28:r,55:n,56:i,57:a},{1:[3]},{18:e,26:8,27:2,28:r,55:n,56:i,57:a},{18:e,26:9,27:2,28:r,55:n,56:i,57:a},t(s,[2,33],{29:10}),t(l,[2,61]),t(l,[2,62]),t(l,[2,63]),{1:[2,30]},{1:[2,31]},t(u,h,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:_,41:T,42:E,48:L,50:C,51:A,52:I,53:D,54:k,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(s,[2,34]),{27:45,55:n,56:i,57:a},t(u,[2,37]),t(u,h,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:f,5:d,10:p,12:m,13:g,14:y,18:v,25:x,35:b,37:w,39:_,41:T,42:E,48:L,50:C,51:A,52:I,53:D,54:k,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(u,[2,39]),t(u,[2,40]),t(u,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},t(u,[2,45]),t(u,[2,46]),{18:[1,50]},{4:f,5:d,10:p,12:m,13:g,14:y,43:51,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:52,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:53,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:54,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:55,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,10:p,12:m,13:g,14:y,43:56,58:31,60:R,61:S,63:O,64:N,65:P,66:F,67:B},{4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,44:[1,57],47:[1,58],58:60,59:59,63:O,64:N,65:P,66:F,67:B},t(W,[2,64]),t(W,[2,66]),t(W,[2,67]),t(W,[2,70]),t(W,[2,71]),t(W,[2,72]),t(W,[2,73]),t(W,[2,74]),t(W,[2,75]),t(W,[2,76]),t(W,[2,77]),t(W,[2,78]),t(W,[2,79]),t(W,[2,80]),t(s,[2,35]),t(u,[2,38]),t(u,[2,42]),t(u,[2,43]),t(u,[2,44]),{3:64,4:j,5:K,6:ie,7:Q,8:ee,9:J,10:H,11:q,12:Z,13:ae,14:ue,15:ce,21:63},t(u,[2,53],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,77],63:O,64:N,65:P,66:F,67:B}),t(u,[2,56],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,49:[1,78],63:O,64:N,65:P,66:F,67:B}),t(u,[2,57],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,58],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,59],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,60],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),{45:[1,79]},{44:[1,80]},t(W,[2,65]),t(W,[2,81]),t(W,[2,82]),t(W,[2,83]),{3:82,4:j,5:K,6:ie,7:Q,8:ee,9:J,10:H,11:q,12:Z,13:ae,14:ue,15:ce,18:[1,81]},t(te,[2,23]),t(te,[2,1]),t(te,[2,2]),t(te,[2,3]),t(te,[2,4]),t(te,[2,5]),t(te,[2,6]),t(te,[2,7]),t(te,[2,8]),t(te,[2,9]),t(te,[2,10]),t(te,[2,11]),t(te,[2,12]),t(u,[2,52],{58:31,43:83,4:f,5:d,10:p,12:m,13:g,14:y,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),t(u,[2,55],{58:31,43:84,4:f,5:d,10:p,12:m,13:g,14:y,60:R,61:S,63:O,64:N,65:P,66:F,67:B}),{46:[1,85]},{45:[1,86]},{4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,16:89,17:Ge,18:He,19:xe,20:X,22:88,23:87},t(te,[2,24]),t(u,[2,51],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,54],{59:59,58:60,4:f,5:d,8:$,10:p,12:m,13:g,14:y,18:z,63:O,64:N,65:P,66:F,67:B}),t(u,[2,47],{22:88,16:89,23:100,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),{46:[1,101]},t(u,[2,29],{10:fe}),t(he,[2,27],{16:103,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),t(ge,[2,25]),t(ge,[2,13]),t(ge,[2,14]),t(ge,[2,15]),t(ge,[2,16]),t(ge,[2,17]),t(ge,[2,18]),t(ge,[2,19]),t(ge,[2,20]),t(ge,[2,21]),t(ge,[2,22]),t(u,[2,49],{10:fe}),t(u,[2,48],{22:88,16:89,23:104,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X}),{4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,16:89,17:Ge,18:He,19:xe,20:X,22:105},t(ge,[2,26]),t(u,[2,50],{10:fe}),t(he,[2,28],{16:103,4:De,5:oe,6:ke,8:Fe,11:Be,13:Ve,17:Ge,18:He,19:xe,20:X})],defaultActions:{8:[2,30],9:[2,31]},parseError:o(function(se,Ee){if(Ee.recoverable)this.trace(se);else{var Ae=new Error(se);throw Ae.hash=Ee,Ae}},"parseError"),parse:o(function(se){var Ee=this,Ae=[0],Pe=[],Me=[null],me=[],We=this.table,Re="",tt=0,gt=0,Et=0,vt=2,Ye=1,Tt=me.slice.call(arguments,1),$e=Object.create(this.lexer),rt={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&(rt.yy[ft]=this.yy[ft]);$e.setInput(se,rt.yy),rt.yy.lexer=$e,rt.yy.parser=this,typeof $e.yylloc>"u"&&($e.yylloc={});var kt=$e.yylloc;me.push(kt);var er=$e.options&&$e.options.ranges;typeof rt.yy.parseError=="function"?this.parseError=rt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function dt(Se){Ae.length=Ae.length-2*Se,Me.length=Me.length-Se,me.length=me.length-Se}o(dt,"popStack");function Xe(){var Se;return Se=Pe.pop()||$e.lex()||Ye,typeof Se!="number"&&(Se instanceof Array&&(Pe=Se,Se=Pe.pop()),Se=Ee.symbols_[Se]||Se),Se}o(Xe,"lex");for(var ct,Lt,Rt,zt,Xn,or,hn={},Tn,Ur,ri,Mn;;){if(Rt=Ae[Ae.length-1],this.defaultActions[Rt]?zt=this.defaultActions[Rt]:((ct===null||typeof ct>"u")&&(ct=Xe()),zt=We[Rt]&&We[Rt][ct]),typeof zt>"u"||!zt.length||!zt[0]){var yt="";Mn=[];for(Tn in We[Rt])this.terminals_[Tn]&&Tn>vt&&Mn.push("'"+this.terminals_[Tn]+"'");$e.showPosition?yt="Parse error on line "+(tt+1)+`: +`+$e.showPosition()+` +Expecting `+Mn.join(", ")+", got '"+(this.terminals_[ct]||ct)+"'":yt="Parse error on line "+(tt+1)+": Unexpected "+(ct==Ye?"end of input":"'"+(this.terminals_[ct]||ct)+"'"),this.parseError(yt,{text:$e.match,token:this.terminals_[ct]||ct,line:$e.yylineno,loc:kt,expected:Mn})}if(zt[0]instanceof Array&&zt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Rt+", token: "+ct);switch(zt[0]){case 1:Ae.push(ct),Me.push($e.yytext),me.push($e.yylloc),Ae.push(zt[1]),ct=null,Lt?(ct=Lt,Lt=null):(gt=$e.yyleng,Re=$e.yytext,tt=$e.yylineno,kt=$e.yylloc,Et>0&&Et--);break;case 2:if(Ur=this.productions_[zt[1]][1],hn.$=Me[Me.length-Ur],hn._$={first_line:me[me.length-(Ur||1)].first_line,last_line:me[me.length-1].last_line,first_column:me[me.length-(Ur||1)].first_column,last_column:me[me.length-1].last_column},er&&(hn._$.range=[me[me.length-(Ur||1)].range[0],me[me.length-1].range[1]]),or=this.performAction.apply(hn,[Re,gt,tt,rt.yy,zt[1],Me,me].concat(Tt)),typeof or<"u")return or;Ur&&(Ae=Ae.slice(0,-1*Ur*2),Me=Me.slice(0,-1*Ur),me=me.slice(0,-1*Ur)),Ae.push(this.productions_[zt[1]][0]),Me.push(hn.$),me.push(hn._$),ri=We[Ae[Ae.length-2]][Ae[Ae.length-1]],Ae.push(ri);break;case 3:return!0}}return!0},"parse")},ye=function(){var Te={EOF:1,parseError:o(function(Ee,Ae){if(this.yy.parser)this.yy.parser.parseError(Ee,Ae);else throw new Error(Ee)},"parseError"),setInput:o(function(se,Ee){return this.yy=Ee||this.yy||{},this._input=se,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var se=this._input[0];this.yytext+=se,this.yyleng++,this.offset++,this.match+=se,this.matched+=se;var Ee=se.match(/(?:\r\n?|\n).*/g);return Ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),se},"input"),unput:o(function(se){var Ee=se.length,Ae=se.split(/(?:\r\n?|\n)/g);this._input=se+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ee),this.offset-=Ee;var Pe=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Ae.length-1&&(this.yylineno-=Ae.length-1);var Me=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Ae?(Ae.length===Pe.length?this.yylloc.first_column:0)+Pe[Pe.length-Ae.length].length-Ae[0].length:this.yylloc.first_column-Ee},this.options.ranges&&(this.yylloc.range=[Me[0],Me[0]+this.yyleng-Ee]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(se){this.unput(this.match.slice(se))},"less"),pastInput:o(function(){var se=this.matched.substr(0,this.matched.length-this.match.length);return(se.length>20?"...":"")+se.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var se=this.match;return se.length<20&&(se+=this._input.substr(0,20-se.length)),(se.substr(0,20)+(se.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var se=this.pastInput(),Ee=new Array(se.length+1).join("-");return se+this.upcomingInput()+` +`+Ee+"^"},"showPosition"),test_match:o(function(se,Ee){var Ae,Pe,Me;if(this.options.backtrack_lexer&&(Me={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Me.yylloc.range=this.yylloc.range.slice(0))),Pe=se[0].match(/(?:\r\n?|\n).*/g),Pe&&(this.yylineno+=Pe.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Pe?Pe[Pe.length-1].length-Pe[Pe.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+se[0].length},this.yytext+=se[0],this.match+=se[0],this.matches=se,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(se[0].length),this.matched+=se[0],Ae=this.performAction.call(this,this.yy,this,Ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Ae)return Ae;if(this._backtrack){for(var me in Me)this[me]=Me[me];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var se,Ee,Ae,Pe;this._more||(this.yytext="",this.match="");for(var Me=this._currentRules(),me=0;meEe[0].length)){if(Ee=Ae,Pe=me,this.options.backtrack_lexer){if(se=this.test_match(Ae,Me[me]),se!==!1)return se;if(this._backtrack){Ee=!1;continue}else return!1}else if(!this.options.flex)break}return Ee?(se=this.test_match(Ee,Me[Pe]),se!==!1?se:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Ee=this.next();return Ee||this.lex()},"lex"),begin:o(function(Ee){this.conditionStack.push(Ee)},"begin"),popState:o(function(){var Ee=this.conditionStack.length-1;return Ee>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Ee){return Ee=this.conditionStack.length-1-Math.abs(Ee||0),Ee>=0?this.conditionStack[Ee]:"INITIAL"},"topState"),pushState:o(function(Ee){this.begin(Ee)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Ee,Ae,Pe,Me){var me=Me;switch(Pe){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;break;case 5:return this.popState(),"title_value";break;case 6:return this.begin("acc_title"),37;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),39;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 48;case 14:return 50;case 15:return 49;case 16:return 51;case 17:return 52;case 18:return 53;case 19:return 54;case 20:return 25;case 21:this.begin("md_string");break;case 22:return"MD_STR";case 23:this.popState();break;case 24:this.begin("string");break;case 25:this.popState();break;case 26:return"STR";case 27:this.begin("class_name");break;case 28:return this.popState(),47;break;case 29:return this.begin("point_start"),44;break;case 30:return this.begin("point_x"),45;break;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;break;case 34:return 28;case 35:return 4;case 36:return 11;case 37:return 64;case 38:return 10;case 39:return 65;case 40:return 65;case 41:return 14;case 42:return 13;case 43:return 67;case 44:return 66;case 45:return 12;case 46:return 8;case 47:return 5;case 48:return 18;case 49:return 56;case 50:return 63;case 51:return 57}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?: *x-axis *)/i,/^(?: *y-axis *)/i,/^(?: *--+> *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};return Te}();ne.lexer=ye;function U(){this.yy={}}return o(U,"Parser"),U.prototype=ne,ne.Parser=U,new U}();nO.parser=nO;Fhe=nO});var os,fE,Ghe=M(()=>{"use strict";mr();hs();ht();Ub();os=sp(),fE=class{constructor(){this.classes=new Map;this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{o(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:ur.quadrantChart?.chartWidth||500,chartWidth:ur.quadrantChart?.chartHeight||500,titlePadding:ur.quadrantChart?.titlePadding||10,titleFontSize:ur.quadrantChart?.titleFontSize||20,quadrantPadding:ur.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:ur.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:ur.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:ur.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:ur.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:ur.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:ur.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:ur.quadrantChart?.pointTextPadding||5,pointLabelFontSize:ur.quadrantChart?.pointLabelFontSize||12,pointRadius:ur.quadrantChart?.pointRadius||5,xAxisPosition:ur.quadrantChart?.xAxisPosition||"top",yAxisPosition:ur.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:ur.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:ur.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:os.quadrant1Fill,quadrant2Fill:os.quadrant2Fill,quadrant3Fill:os.quadrant3Fill,quadrant4Fill:os.quadrant4Fill,quadrant1TextFill:os.quadrant1TextFill,quadrant2TextFill:os.quadrant2TextFill,quadrant3TextFill:os.quadrant3TextFill,quadrant4TextFill:os.quadrant4TextFill,quadrantPointFill:os.quadrantPointFill,quadrantPointTextFill:os.quadrantPointTextFill,quadrantXAxisTextFill:os.quadrantXAxisTextFill,quadrantYAxisTextFill:os.quadrantYAxisTextFill,quadrantTitleFill:os.quadrantTitleFill,quadrantInternalBorderStrokeFill:os.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:os.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,Y.info("clear called")}setData(e){this.data={...this.data,...e}}addPoints(e){this.data.points=[...e,...this.data.points]}addClass(e,r){this.classes.set(e,r)}setConfig(e){Y.trace("setConfig called with: ",e),this.config={...this.config,...e}}setThemeConfig(e){Y.trace("setThemeConfig called with: ",e),this.themeConfig={...this.themeConfig,...e}}calculateSpace(e,r,n,i){let a=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,s={top:e==="top"&&r?a:0,bottom:e==="bottom"&&r?a:0},l=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,u={left:this.config.yAxisPosition==="left"&&n?l:0,right:this.config.yAxisPosition==="right"&&n?l:0},h=this.config.titleFontSize+this.config.titlePadding*2,f={top:i?h:0},d=this.config.quadrantPadding+u.left,p=this.config.quadrantPadding+s.top+f.top,m=this.config.chartWidth-this.config.quadrantPadding*2-u.left-u.right,g=this.config.chartHeight-this.config.quadrantPadding*2-s.top-s.bottom-f.top,y=m/2,v=g/2;return{xAxisSpace:s,yAxisSpace:u,titleSpace:f,quadrantSpace:{quadrantLeft:d,quadrantTop:p,quadrantWidth:m,quadrantHalfWidth:y,quadrantHeight:g,quadrantHalfHeight:v}}}getAxisLabels(e,r,n,i){let{quadrantSpace:a,titleSpace:s}=i,{quadrantHalfHeight:l,quadrantHeight:u,quadrantLeft:h,quadrantHalfWidth:f,quadrantTop:d,quadrantWidth:p}=a,m=!!this.data.xAxisRightText,g=!!this.data.yAxisTopText,y=[];return this.data.xAxisLeftText&&r&&y.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&r&&y.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:h+f+(m?f/2:0),y:e==="top"?this.config.xAxisLabelPadding+s.top:this.config.xAxisLabelPadding+d+u+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:m?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&n&&y.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+u-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&n&&y.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+h+p+this.config.quadrantPadding,y:d+l-(g?l/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:g?"center":"left",horizontalPos:"top",rotation:-90}),y}getQuadrants(e){let{quadrantSpace:r}=e,{quadrantHalfHeight:n,quadrantLeft:i,quadrantHalfWidth:a,quadrantTop:s}=r,l=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s,width:a,height:n,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s,width:a,height:n,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:i+a,y:s+n,width:a,height:n,fill:this.themeConfig.quadrant4Fill}];for(let u of l)u.text.x=u.x+u.width/2,this.data.points.length===0?(u.text.y=u.y+u.height/2,u.text.horizontalPos="middle"):(u.text.y=u.y+this.config.quadrantTextTopPadding,u.text.horizontalPos="top");return l}getQuadrantPoints(e){let{quadrantSpace:r}=e,{quadrantHeight:n,quadrantLeft:i,quadrantTop:a,quadrantWidth:s}=r,l=bl().domain([0,1]).range([i,s+i]),u=bl().domain([0,1]).range([n+a,a]);return this.data.points.map(f=>{let d=this.classes.get(f.className);return d&&(f={...d,...f}),{x:l(f.x),y:u(f.y),fill:f.color??this.themeConfig.quadrantPointFill,radius:f.radius??this.config.pointRadius,text:{text:f.text,fill:this.themeConfig.quadrantPointTextFill,x:l(f.x),y:u(f.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:f.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:f.strokeWidth??"0px"}})}getBorders(e){let r=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:n}=e,{quadrantHalfHeight:i,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:l,quadrantTop:u,quadrantWidth:h}=n;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u,x2:s+h+r,y2:u},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s+h,y1:u+r,x2:s+h,y2:u+a-r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s-r,y1:u+a,x2:s+h+r,y2:u+a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:s,y1:u+r,x2:s,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+l,y1:u+r,x2:s+l,y2:u+a-r},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:s+r,y1:u+i,x2:s+h-r,y2:u+i}]}getTitle(e){if(e)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){let e=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),r=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),n=this.config.showTitle&&!!this.data.titleText,i=this.data.points.length>0?"bottom":this.config.xAxisPosition,a=this.calculateSpace(i,e,r,n);return{points:this.getQuadrantPoints(a),quadrants:this.getQuadrants(a),axisLabels:this.getAxisLabels(i,e,r,a),borderLines:this.getBorders(a),title:this.getTitle(n)}}}});function iO(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}function $he(t){return!/^\d+$/.test(t)}function Vhe(t){return!/^\d+px$/.test(t)}var T0,Uhe=M(()=>{"use strict";T0=class extends Error{static{o(this,"InvalidStyleError")}constructor(e,r,n){super(`value for ${e} ${r} is invalid, please use a valid ${n}`),this.name="InvalidStyleError"}};o(iO,"validateHexCode");o($he,"validateNumber");o(Vhe,"validateSizeInPixels")});function Wu(t){return Tr(t.trim(),RVe)}function MVe(t){ya.setData({quadrant1Text:Wu(t.text)})}function IVe(t){ya.setData({quadrant2Text:Wu(t.text)})}function OVe(t){ya.setData({quadrant3Text:Wu(t.text)})}function PVe(t){ya.setData({quadrant4Text:Wu(t.text)})}function BVe(t){ya.setData({xAxisLeftText:Wu(t.text)})}function FVe(t){ya.setData({xAxisRightText:Wu(t.text)})}function zVe(t){ya.setData({yAxisTopText:Wu(t.text)})}function GVe(t){ya.setData({yAxisBottomText:Wu(t.text)})}function aO(t){let e={};for(let r of t){let[n,i]=r.trim().split(/\s*:\s*/);if(n==="radius"){if($he(i))throw new T0(n,i,"number");e.radius=parseInt(i)}else if(n==="color"){if(iO(i))throw new T0(n,i,"hex code");e.color=i}else if(n==="stroke-color"){if(iO(i))throw new T0(n,i,"hex code");e.strokeColor=i}else if(n==="stroke-width"){if(Vhe(i))throw new T0(n,i,"number of pixels (eg. 10px)");e.strokeWidth=i}else throw new Error(`style named ${n} is not supported.`)}return e}function $Ve(t,e,r,n,i){let a=aO(i);ya.addPoints([{x:r,y:n,text:Wu(t.text),className:e,...a}])}function VVe(t,e){ya.addClass(t,aO(e))}function UVe(t){ya.setConfig({chartWidth:t})}function HVe(t){ya.setConfig({chartHeight:t})}function WVe(){let t=de(),{themeVariables:e,quadrantChart:r}=t;return r&&ya.setConfig(r),ya.setThemeConfig({quadrant1Fill:e.quadrant1Fill,quadrant2Fill:e.quadrant2Fill,quadrant3Fill:e.quadrant3Fill,quadrant4Fill:e.quadrant4Fill,quadrant1TextFill:e.quadrant1TextFill,quadrant2TextFill:e.quadrant2TextFill,quadrant3TextFill:e.quadrant3TextFill,quadrant4TextFill:e.quadrant4TextFill,quadrantPointFill:e.quadrantPointFill,quadrantPointTextFill:e.quadrantPointTextFill,quadrantXAxisTextFill:e.quadrantXAxisTextFill,quadrantYAxisTextFill:e.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:e.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:e.quadrantInternalBorderStrokeFill,quadrantTitleFill:e.quadrantTitleFill}),ya.setData({titleText:Jr()}),ya.build()}var RVe,ya,YVe,Hhe,Whe=M(()=>{"use strict";Vt();fr();ki();Ghe();Uhe();RVe=de();o(Wu,"textSanitizer");ya=new fE;o(MVe,"setQuadrant1Text");o(IVe,"setQuadrant2Text");o(OVe,"setQuadrant3Text");o(PVe,"setQuadrant4Text");o(BVe,"setXAxisLeftText");o(FVe,"setXAxisRightText");o(zVe,"setYAxisTopText");o(GVe,"setYAxisBottomText");o(aO,"parseStyles");o($Ve,"addPoint");o(VVe,"addClass");o(UVe,"setWidth");o(HVe,"setHeight");o(WVe,"getQuadrantData");YVe=o(function(){ya.clear(),_r()},"clear"),Hhe={setWidth:UVe,setHeight:HVe,setQuadrant1Text:MVe,setQuadrant2Text:IVe,setQuadrant3Text:OVe,setQuadrant4Text:PVe,setXAxisLeftText:BVe,setXAxisRightText:FVe,setYAxisTopText:zVe,setYAxisBottomText:GVe,parseStyles:aO,addPoint:$Ve,addClass:VVe,getQuadrantData:WVe,clear:YVe,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br}});var qVe,Yhe,qhe=M(()=>{"use strict";mr();Vt();ht();ni();qVe=o((t,e,r,n)=>{function i(C){return C==="top"?"hanging":"middle"}o(i,"getDominantBaseLine");function a(C){return C==="left"?"start":"middle"}o(a,"getTextAnchor");function s(C){return`translate(${C.x}, ${C.y}) rotate(${C.rotation||0})`}o(s,"getTransformation");let l=de();Y.debug(`Rendering quadrant chart +`+t);let u=l.securityLevel,h;u==="sandbox"&&(h=ze("#i"+e));let d=(u==="sandbox"?ze(h.nodes()[0].contentDocument.body):ze("body")).select(`[id="${e}"]`),p=d.append("g").attr("class","main"),m=l.quadrantChart?.chartWidth??500,g=l.quadrantChart?.chartHeight??500;Zr(d,g,m,l.quadrantChart?.useMaxWidth??!0),d.attr("viewBox","0 0 "+m+" "+g),n.db.setHeight(g),n.db.setWidth(m);let y=n.db.getQuadrantData(),v=p.append("g").attr("class","quadrants"),x=p.append("g").attr("class","border"),b=p.append("g").attr("class","data-points"),w=p.append("g").attr("class","labels"),_=p.append("g").attr("class","title");y.title&&_.append("text").attr("x",0).attr("y",0).attr("fill",y.title.fill).attr("font-size",y.title.fontSize).attr("dominant-baseline",i(y.title.horizontalPos)).attr("text-anchor",a(y.title.verticalPos)).attr("transform",s(y.title)).text(y.title.text),y.borderLines&&x.selectAll("line").data(y.borderLines).enter().append("line").attr("x1",C=>C.x1).attr("y1",C=>C.y1).attr("x2",C=>C.x2).attr("y2",C=>C.y2).style("stroke",C=>C.strokeFill).style("stroke-width",C=>C.strokeWidth);let T=v.selectAll("g.quadrant").data(y.quadrants).enter().append("g").attr("class","quadrant");T.append("rect").attr("x",C=>C.x).attr("y",C=>C.y).attr("width",C=>C.width).attr("height",C=>C.height).attr("fill",C=>C.fill),T.append("text").attr("x",0).attr("y",0).attr("fill",C=>C.text.fill).attr("font-size",C=>C.text.fontSize).attr("dominant-baseline",C=>i(C.text.horizontalPos)).attr("text-anchor",C=>a(C.text.verticalPos)).attr("transform",C=>s(C.text)).text(C=>C.text.text),w.selectAll("g.label").data(y.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(C=>C.text).attr("fill",C=>C.fill).attr("font-size",C=>C.fontSize).attr("dominant-baseline",C=>i(C.horizontalPos)).attr("text-anchor",C=>a(C.verticalPos)).attr("transform",C=>s(C));let L=b.selectAll("g.data-point").data(y.points).enter().append("g").attr("class","data-point");L.append("circle").attr("cx",C=>C.x).attr("cy",C=>C.y).attr("r",C=>C.radius).attr("fill",C=>C.fill).attr("stroke",C=>C.strokeColor).attr("stroke-width",C=>C.strokeWidth),L.append("text").attr("x",0).attr("y",0).text(C=>C.text.text).attr("fill",C=>C.text.fill).attr("font-size",C=>C.text.fontSize).attr("dominant-baseline",C=>i(C.text.horizontalPos)).attr("text-anchor",C=>a(C.text.verticalPos)).attr("transform",C=>s(C.text))},"draw"),Yhe={draw:qVe}});var Xhe={};vr(Xhe,{diagram:()=>XVe});var XVe,jhe=M(()=>{"use strict";zhe();Whe();qhe();XVe={parser:Fhe,db:Hhe,renderer:Yhe,styles:o(()=>"","styles")}});var sO,Zhe,Jhe=M(()=>{"use strict";sO=function(){var t=o(function(O,N,P,F){for(P=P||{},F=O.length;F--;P[O[F]]=N);return P},"o"),e=[1,10,12,14,16,18,19,21,23],r=[2,6],n=[1,3],i=[1,5],a=[1,6],s=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],u=[1,25],h=[1,26],f=[1,28],d=[1,29],p=[1,30],m=[1,31],g=[1,32],y=[1,33],v=[1,34],x=[1,35],b=[1,36],w=[1,37],_=[1,43],T=[1,42],E=[1,47],L=[1,50],C=[1,10,12,14,16,18,19,21,23,34,35,36],A=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],I=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],D=[1,64],k={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:o(function(N,P,F,B,$,z,W){var j=z.length-1;switch($){case 5:B.setOrientation(z[j]);break;case 9:B.setDiagramTitle(z[j].text.trim());break;case 12:B.setLineData({text:"",type:"text"},z[j]);break;case 13:B.setLineData(z[j-1],z[j]);break;case 14:B.setBarData({text:"",type:"text"},z[j]);break;case 15:B.setBarData(z[j-1],z[j]);break;case 16:this.$=z[j].trim(),B.setAccTitle(this.$);break;case 17:case 18:this.$=z[j].trim(),B.setAccDescription(this.$);break;case 19:this.$=z[j-1];break;case 20:this.$=[Number(z[j-2]),...z[j]];break;case 21:this.$=[Number(z[j])];break;case 22:B.setXAxisTitle(z[j]);break;case 23:B.setXAxisTitle(z[j-1]);break;case 24:B.setXAxisTitle({type:"text",text:""});break;case 25:B.setXAxisBand(z[j]);break;case 26:B.setXAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 27:this.$=z[j-1];break;case 28:this.$=[z[j-2],...z[j]];break;case 29:this.$=[z[j]];break;case 30:B.setYAxisTitle(z[j]);break;case 31:B.setYAxisTitle(z[j-1]);break;case 32:B.setYAxisTitle({type:"text",text:""});break;case 33:B.setYAxisRangeData(Number(z[j-2]),Number(z[j]));break;case 37:this.$={text:z[j],type:"text"};break;case 38:this.$={text:z[j],type:"text"};break;case 39:this.$={text:z[j],type:"markdown"};break;case 40:this.$=z[j];break;case 41:this.$=z[j-1]+""+z[j];break}},"anonymous"),table:[t(e,r,{3:1,4:2,7:4,5:n,34:i,35:a,36:s}),{1:[3]},t(e,r,{4:2,7:4,3:8,5:n,34:i,35:a,36:s}),t(e,r,{4:2,7:4,6:9,3:10,5:n,8:[1,11],34:i,35:a,36:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(l,[2,34]),t(l,[2,35]),t(l,[2,36]),{1:[2,1]},t(e,r,{4:2,7:4,3:21,5:n,34:i,35:a,36:s}),{1:[2,3]},t(l,[2,5]),t(e,[2,7],{4:22,34:i,35:a,36:s}),{11:23,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:39,13:38,24:_,27:T,29:40,30:41,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:45,15:44,27:E,33:46,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:49,17:48,24:L,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{11:52,17:51,24:L,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},{20:[1,53]},{22:[1,54]},t(C,[2,18]),{1:[2,2]},t(C,[2,8]),t(C,[2,9]),t(A,[2,37],{40:55,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w}),t(A,[2,38]),t(A,[2,39]),t(I,[2,40]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),t(I,[2,47]),t(I,[2,48]),t(I,[2,49]),t(I,[2,50]),t(I,[2,51]),t(C,[2,10]),t(C,[2,22],{30:41,29:56,24:_,27:T}),t(C,[2,24]),t(C,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(C,[2,11]),t(C,[2,30],{33:60,27:E}),t(C,[2,32]),{31:[1,61]},t(C,[2,12]),{17:62,24:L},{25:63,27:D},t(C,[2,14]),{17:65,24:L},t(C,[2,16]),t(C,[2,17]),t(I,[2,41]),t(C,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},t(C,[2,31]),{27:[1,69]},t(C,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},t(C,[2,15]),t(C,[2,26]),t(C,[2,27]),{11:59,32:72,37:24,38:u,39:h,40:27,41:f,42:d,43:p,44:m,45:g,46:y,47:v,48:x,49:b,50:w},t(C,[2,33]),t(C,[2,19]),{25:73,27:D},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:o(function(N,P){if(P.recoverable)this.trace(N);else{var F=new Error(N);throw F.hash=P,F}},"parseError"),parse:o(function(N){var P=this,F=[0],B=[],$=[null],z=[],W=this.table,j="",K=0,ie=0,Q=0,ee=2,J=1,H=z.slice.call(arguments,1),q=Object.create(this.lexer),Z={yy:{}};for(var ae in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ae)&&(Z.yy[ae]=this.yy[ae]);q.setInput(N,Z.yy),Z.yy.lexer=q,Z.yy.parser=this,typeof q.yylloc>"u"&&(q.yylloc={});var ue=q.yylloc;z.push(ue);var ce=q.options&&q.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function te(ne){F.length=F.length-2*ne,$.length=$.length-ne,z.length=z.length-ne}o(te,"popStack");function De(){var ne;return ne=B.pop()||q.lex()||J,typeof ne!="number"&&(ne instanceof Array&&(B=ne,ne=B.pop()),ne=P.symbols_[ne]||ne),ne}o(De,"lex");for(var oe,ke,Fe,Be,Ve,Ge,He={},xe,X,fe,he;;){if(Fe=F[F.length-1],this.defaultActions[Fe]?Be=this.defaultActions[Fe]:((oe===null||typeof oe>"u")&&(oe=De()),Be=W[Fe]&&W[Fe][oe]),typeof Be>"u"||!Be.length||!Be[0]){var ge="";he=[];for(xe in W[Fe])this.terminals_[xe]&&xe>ee&&he.push("'"+this.terminals_[xe]+"'");q.showPosition?ge="Parse error on line "+(K+1)+`: +`+q.showPosition()+` +Expecting `+he.join(", ")+", got '"+(this.terminals_[oe]||oe)+"'":ge="Parse error on line "+(K+1)+": Unexpected "+(oe==J?"end of input":"'"+(this.terminals_[oe]||oe)+"'"),this.parseError(ge,{text:q.match,token:this.terminals_[oe]||oe,line:q.yylineno,loc:ue,expected:he})}if(Be[0]instanceof Array&&Be.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Fe+", token: "+oe);switch(Be[0]){case 1:F.push(oe),$.push(q.yytext),z.push(q.yylloc),F.push(Be[1]),oe=null,ke?(oe=ke,ke=null):(ie=q.yyleng,j=q.yytext,K=q.yylineno,ue=q.yylloc,Q>0&&Q--);break;case 2:if(X=this.productions_[Be[1]][1],He.$=$[$.length-X],He._$={first_line:z[z.length-(X||1)].first_line,last_line:z[z.length-1].last_line,first_column:z[z.length-(X||1)].first_column,last_column:z[z.length-1].last_column},ce&&(He._$.range=[z[z.length-(X||1)].range[0],z[z.length-1].range[1]]),Ge=this.performAction.apply(He,[j,ie,K,Z.yy,Be[1],$,z].concat(H)),typeof Ge<"u")return Ge;X&&(F=F.slice(0,-1*X*2),$=$.slice(0,-1*X),z=z.slice(0,-1*X)),F.push(this.productions_[Be[1]][0]),$.push(He.$),z.push(He._$),fe=W[F[F.length-2]][F[F.length-1]],F.push(fe);break;case 3:return!0}}return!0},"parse")},R=function(){var O={EOF:1,parseError:o(function(P,F){if(this.yy.parser)this.yy.parser.parseError(P,F);else throw new Error(P)},"parseError"),setInput:o(function(N,P){return this.yy=P||this.yy||{},this._input=N,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var N=this._input[0];this.yytext+=N,this.yyleng++,this.offset++,this.match+=N,this.matched+=N;var P=N.match(/(?:\r\n?|\n).*/g);return P?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),N},"input"),unput:o(function(N){var P=N.length,F=N.split(/(?:\r\n?|\n)/g);this._input=N+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-P),this.offset-=P;var B=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),F.length-1&&(this.yylineno-=F.length-1);var $=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:F?(F.length===B.length?this.yylloc.first_column:0)+B[B.length-F.length].length-F[0].length:this.yylloc.first_column-P},this.options.ranges&&(this.yylloc.range=[$[0],$[0]+this.yyleng-P]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(N){this.unput(this.match.slice(N))},"less"),pastInput:o(function(){var N=this.matched.substr(0,this.matched.length-this.match.length);return(N.length>20?"...":"")+N.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var N=this.match;return N.length<20&&(N+=this._input.substr(0,20-N.length)),(N.substr(0,20)+(N.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var N=this.pastInput(),P=new Array(N.length+1).join("-");return N+this.upcomingInput()+` +`+P+"^"},"showPosition"),test_match:o(function(N,P){var F,B,$;if(this.options.backtrack_lexer&&($={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&($.yylloc.range=this.yylloc.range.slice(0))),B=N[0].match(/(?:\r\n?|\n).*/g),B&&(this.yylineno+=B.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:B?B[B.length-1].length-B[B.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+N[0].length},this.yytext+=N[0],this.match+=N[0],this.matches=N,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(N[0].length),this.matched+=N[0],F=this.performAction.call(this,this.yy,this,P,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),F)return F;if(this._backtrack){for(var z in $)this[z]=$[z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var N,P,F,B;this._more||(this.yytext="",this.match="");for(var $=this._currentRules(),z=0;z<$.length;z++)if(F=this._input.match(this.rules[$[z]]),F&&(!P||F[0].length>P[0].length)){if(P=F,B=z,this.options.backtrack_lexer){if(N=this.test_match(F,$[z]),N!==!1)return N;if(this._backtrack){P=!1;continue}else return!1}else if(!this.options.flex)break}return P?(N=this.test_match(P,$[B]),N!==!1?N:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var P=this.next();return P||this.lex()},"lex"),begin:o(function(P){this.conditionStack.push(P)},"begin"),popState:o(function(){var P=this.conditionStack.length-1;return P>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(P){return P=this.conditionStack.length-1-Math.abs(P||0),P>=0?this.conditionStack[P]:"INITIAL"},"topState"),pushState:o(function(P){this.begin(P)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(P,F,B,$){var z=$;switch(B){case 0:break;case 1:break;case 2:return this.popState(),34;break;case 3:return this.popState(),34;break;case 4:return 34;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.pushState("acc_descr"),21;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.pushState("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 5;case 15:return 8;case 16:return this.pushState("axis_data"),"X_AXIS";break;case 17:return this.pushState("axis_data"),"Y_AXIS";break;case 18:return this.pushState("axis_band_data"),24;break;case 19:return 31;case 20:return this.pushState("data"),16;break;case 21:return this.pushState("data"),18;break;case 22:return this.pushState("data_inner"),24;break;case 23:return 27;case 24:return this.popState(),26;break;case 25:this.popState();break;case 26:this.pushState("string");break;case 27:this.popState();break;case 28:return"STR";case 29:return 24;case 30:return 26;case 31:return 43;case 32:return"COLON";case 33:return 44;case 34:return 28;case 35:return 45;case 36:return 46;case 37:return 48;case 38:return 50;case 39:return 47;case 40:return 41;case 41:return 49;case 42:return 42;case 43:break;case 44:return 35;case 45:return 36}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:(\r?\n))/i,/^(?:(\r?\n))/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:title\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:\{)/i,/^(?:[^\}]*)/i,/^(?:xychart-beta\b)/i,/^(?:(?:vertical|horizontal))/i,/^(?:x-axis\b)/i,/^(?:y-axis\b)/i,/^(?:\[)/i,/^(?:-->)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};return O}();k.lexer=R;function S(){this.yy={}}return o(S,"Parser"),S.prototype=k,k.Parser=S,new S}();sO.parser=sO;Zhe=sO});function oO(t){return t.type==="bar"}function dE(t){return t.type==="band"}function Ig(t){return t.type==="linear"}var pE=M(()=>{"use strict";o(oO,"isBarPlot");o(dE,"isBandAxisData");o(Ig,"isLinearAxisData")});var Og,lO=M(()=>{"use strict";Dl();Og=class{constructor(e){this.parentGroup=e}static{o(this,"TextDimensionCalculatorWithFont")}getMaxDimension(e,r){if(!this.parentGroup)return{width:e.reduce((a,s)=>Math.max(s.length,a),0)*r,height:r};let n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",r);for(let a of e){let s=gj(i,1,a),l=s?s.width:a.length*r,u=s?s.height:r;n.width=Math.max(n.width,l),n.height=Math.max(n.height,u)}return i.remove(),n}}});var Pg,cO=M(()=>{"use strict";Pg=class{constructor(e,r,n,i){this.axisConfig=e;this.title=r;this.textDimensionCalculator=n;this.axisThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0};this.axisPosition="left";this.showTitle=!1;this.showLabel=!1;this.showTick=!1;this.showAxisLine=!1;this.outerPadding=0;this.titleTextHeight=0;this.labelTextHeight=0;this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{o(this,"BaseAxis")}setRange(e){this.range=e,this.axisPosition==="left"||this.axisPosition==="right"?this.boundingRect.height=e[1]-e[0]:this.boundingRect.width=e[1]-e[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(e){this.axisPosition=e,this.setRange(this.range)}getTickDistance(){let e=this.getRange();return Math.abs(e[0]-e[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(e=>e.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(e){let r=e.height;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.width;this.outerPadding=Math.min(n.width/2,i);let a=n.height+this.axisConfig.labelPadding*2;this.labelTextHeight=n.height,a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width,this.boundingRect.height=e.height-r}calculateSpaceIfDrawnVertical(e){let r=e.width;if(this.axisConfig.showAxisLine&&r>this.axisConfig.axisLineWidth&&(r-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){let n=this.getLabelDimension(),i=.2*e.height;this.outerPadding=Math.min(n.height/2,i);let a=n.width+this.axisConfig.labelPadding*2;a<=r&&(r-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&r>=this.axisConfig.tickLength&&(this.showTick=!0,r-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){let n=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),i=n.height+this.axisConfig.titlePadding*2;this.titleTextHeight=n.height,i<=r&&(r-=i,this.showTitle=!0)}this.boundingRect.width=e.width-r,this.boundingRect.height=e.height}calculateSpace(e){return this.axisPosition==="left"||this.axisPosition==="right"?this.calculateSpaceIfDrawnVertical(e):this.calculateSpaceIfDrawnHorizontally(e),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}getDrawableElementsForLeftAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${r},${this.boundingRect.y} L ${r},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(r),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let r=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${r},${this.getScaleValue(n)} L ${r-this.axisConfig.tickLength},${this.getScaleValue(n)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForBottomAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);e.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r} L ${this.getScaleValue(n)},${r+this.axisConfig.tickLength}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElementsForTopAxis(){let e=[];if(this.showAxisLine){let r=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2;e.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${r} L ${this.boundingRect.x+this.boundingRect.width},${r}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&e.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(r=>({text:r.toString(),x:this.getScaleValue(r),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+this.axisConfig.titlePadding*2:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let r=this.boundingRect.y;e.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(n=>({path:`M ${this.getScaleValue(n)},${r+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(n)},${r+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)}`,strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&e.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),e}getDrawableElements(){if(this.axisPosition==="left")return this.getDrawableElementsForLeftAxis();if(this.axisPosition==="right")throw Error("Drawing of right axis is not implemented");return this.axisPosition==="bottom"?this.getDrawableElementsForBottomAxis():this.axisPosition==="top"?this.getDrawableElementsForTopAxis():[]}}});var mE,efe=M(()=>{"use strict";mr();ht();cO();mE=class extends Pg{static{o(this,"BandAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.categories=n,this.scale=Lp().domain(this.categories).range(this.getRange())}setRange(e){super.setRange(e)}recalculateScale(){this.scale=Lp().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),Y.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(e){return this.scale(e)??this.getRange()[0]}}});var gE,tfe=M(()=>{"use strict";mr();cO();gE=class extends Pg{static{o(this,"LinearAxis")}constructor(e,r,n,i,a){super(e,i,a,r),this.domain=n,this.scale=bl().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){let e=[...this.domain];this.axisPosition==="left"&&e.reverse(),this.scale=bl().domain(e).range(this.getRange())}getScaleValue(e){return this.scale(e)}}});function uO(t,e,r,n){let i=new Og(n);return dE(t)?new mE(e,r,t.categories,t.title,i):new gE(e,r,[t.min,t.max],t.title,i)}var rfe=M(()=>{"use strict";pE();lO();efe();tfe();o(uO,"getAxis")});function nfe(t,e,r,n){let i=new Og(n);return new hO(i,t,e,r)}var hO,ife=M(()=>{"use strict";lO();hO=class{constructor(e,r,n,i){this.textDimensionCalculator=e;this.chartConfig=r;this.chartData=n;this.chartThemeConfig=i;this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{o(this,"ChartTitle")}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){let r=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),n=Math.max(r.width,e.width),i=r.height+2*this.chartConfig.titlePadding;return r.width<=n&&r.height<=i&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=n,this.boundingRect.height=i,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){let e=[];return this.showChartTitle&&e.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),e}};o(nfe,"getChartTitleComponent")});var yE,afe=M(()=>{"use strict";mr();yE=class{constructor(e,r,n,i,a){this.plotData=e;this.xAxis=r;this.yAxis=n;this.orientation=i;this.plotIndex=a}static{o(this,"LinePlot")}getDrawableElement(){let e=this.plotData.data.map(n=>[this.xAxis.getScaleValue(n[0]),this.yAxis.getScaleValue(n[1])]),r;return this.orientation==="horizontal"?r=Ka().y(n=>n[0]).x(n=>n[1])(e):r=Ka().x(n=>n[0]).y(n=>n[1])(e),r?[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:r,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}});var vE,sfe=M(()=>{"use strict";vE=class{constructor(e,r,n,i,a,s){this.barData=e;this.boundingRect=r;this.xAxis=n;this.yAxis=i;this.orientation=a;this.plotIndex=s}static{o(this,"BarPlot")}getDrawableElement(){let e=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),n=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),i=n/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:this.boundingRect.x,y:a[0]-i,height:n,width:a[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:e.map(a=>({x:a[0]-i,y:a[1],width:n,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function ofe(t,e,r){return new fO(t,e,r)}var fO,lfe=M(()=>{"use strict";afe();sfe();fO=class{constructor(e,r,n){this.chartConfig=e;this.chartData=r;this.chartThemeConfig=n;this.boundingRect={x:0,y:0,width:0,height:0}}static{o(this,"BasePlot")}setAxes(e,r){this.xAxis=e,this.yAxis=r}setBoundingBoxXY(e){this.boundingRect.x=e.x,this.boundingRect.y=e.y}calculateSpace(e){return this.boundingRect.width=e.width,this.boundingRect.height=e.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!(this.xAxis&&this.yAxis))throw Error("Axes must be passed to render Plots");let e=[];for(let[r,n]of this.chartData.plots.entries())switch(n.type){case"line":{let i=new yE(n,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break;case"bar":{let i=new vE(n,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,r);e.push(...i.getDrawableElement())}break}return e}};o(ofe,"getPlotComponent")});var xE,cfe=M(()=>{"use strict";rfe();ife();lfe();pE();xE=class{constructor(e,r,n,i){this.chartConfig=e;this.chartData=r;this.componentStore={title:nfe(e,r,n,i),plot:ofe(e,r,n),xAxis:uO(r.xAxis,e.xAxis,{titleColor:n.xAxisTitleColor,labelColor:n.xAxisLabelColor,tickColor:n.xAxisTickColor,axisLineColor:n.xAxisLineColor},i),yAxis:uO(r.yAxis,e.yAxis,{titleColor:n.yAxisTitleColor,labelColor:n.yAxisLabelColor,tickColor:n.yAxisTickColor,axisLineColor:n.yAxisLineColor},i)}}static{o(this,"Orchestrator")}calculateVerticalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:s});e-=l.width,r-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),i=l.height,r-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:e,height:r}),r-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:e,height:r}),n=l.width,e-=l.width,e>0&&(a+=e,e=0),r>0&&(s+=r,r=0),this.componentStore.plot.calculateSpace({width:a,height:s}),this.componentStore.plot.setBoundingBoxXY({x:n,y:i}),this.componentStore.xAxis.setRange([n,n+a]),this.componentStore.xAxis.setBoundingBoxXY({x:n,y:i+s}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:i}),this.chartData.plots.some(u=>oO(u))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let e=this.chartConfig.width,r=this.chartConfig.height,n=0,i=0,a=0,s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(r*this.chartConfig.plotReservedSpacePercent/100),u=this.componentStore.plot.calculateSpace({width:s,height:l});e-=u.width,r-=u.height,u=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:r}),n=u.height,r-=u.height,this.componentStore.xAxis.setAxisPosition("left"),u=this.componentStore.xAxis.calculateSpace({width:e,height:r}),e-=u.width,i=u.width,this.componentStore.yAxis.setAxisPosition("top"),u=this.componentStore.yAxis.calculateSpace({width:e,height:r}),r-=u.height,a=n+u.height,e>0&&(s+=e,e=0),r>0&&(l+=r,r=0),this.componentStore.plot.calculateSpace({width:s,height:l}),this.componentStore.plot.setBoundingBoxXY({x:i,y:a}),this.componentStore.yAxis.setRange([i,i+s]),this.componentStore.yAxis.setBoundingBoxXY({x:i,y:n}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(h=>oO(h))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();let e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(let r of Object.values(this.componentStore))e.push(...r.getDrawableElements());return e}}});var bE,ufe=M(()=>{"use strict";cfe();bE=class{static{o(this,"XYChartBuilder")}static build(e,r,n,i){return new xE(e,r,n,i).getDrawableElement()}}});function ffe(){let t=sp(),e=Sr();return ws(t.xyChart,e.themeVariables.xyChart)}function dfe(){let t=Sr();return ws(ur.xyChart,t.xyChart)}function pfe(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function mO(t){let e=Sr();return Tr(t.trim(),e)}function ZVe(t){hfe=t}function JVe(t){t==="horizontal"?mx.chartOrientation="horizontal":mx.chartOrientation="vertical"}function eUe(t){un.xAxis.title=mO(t.text)}function mfe(t,e){un.xAxis={type:"linear",title:un.xAxis.title,min:t,max:e},wE=!0}function tUe(t){un.xAxis={type:"band",title:un.xAxis.title,categories:t.map(e=>mO(e.text))},wE=!0}function rUe(t){un.yAxis.title=mO(t.text)}function nUe(t,e){un.yAxis={type:"linear",title:un.yAxis.title,min:t,max:e},pO=!0}function iUe(t){let e=Math.min(...t),r=Math.max(...t),n=Ig(un.yAxis)?un.yAxis.min:1/0,i=Ig(un.yAxis)?un.yAxis.max:-1/0;un.yAxis={type:"linear",title:un.yAxis.title,min:Math.min(n,e),max:Math.max(i,r)}}function gfe(t){let e=[];if(t.length===0)return e;if(!wE){let r=Ig(un.xAxis)?un.xAxis.min:1/0,n=Ig(un.xAxis)?un.xAxis.max:-1/0;mfe(Math.min(r,1),Math.max(n,t.length))}if(pO||iUe(t),dE(un.xAxis)&&(e=un.xAxis.categories.map((r,n)=>[r,t[n]])),Ig(un.xAxis)){let r=un.xAxis.min,n=un.xAxis.max,i=(n-r)/(t.length-1),a=[];for(let s=r;s<=n;s+=i)a.push(`${s}`);e=a.map((s,l)=>[s,t[l]])}return e}function yfe(t){return dO[t===0?0:t%dO.length]}function aUe(t,e){let r=gfe(e);un.plots.push({type:"line",strokeFill:yfe(px),strokeWidth:2,data:r}),px++}function sUe(t,e){let r=gfe(e);un.plots.push({type:"bar",fill:yfe(px),data:r}),px++}function oUe(){if(un.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return un.title=Jr(),bE.build(mx,un,gx,hfe)}function lUe(){return gx}function cUe(){return mx}var px,hfe,mx,gx,un,dO,wE,pO,uUe,vfe,xfe=M(()=>{"use strict";Ua();hs();Ub();hr();fr();ki();ufe();pE();px=0,mx=dfe(),gx=ffe(),un=pfe(),dO=gx.plotColorPalette.split(",").map(t=>t.trim()),wE=!1,pO=!1;o(ffe,"getChartDefaultThemeConfig");o(dfe,"getChartDefaultConfig");o(pfe,"getChartDefaultData");o(mO,"textSanitizer");o(ZVe,"setTmpSVGG");o(JVe,"setOrientation");o(eUe,"setXAxisTitle");o(mfe,"setXAxisRangeData");o(tUe,"setXAxisBand");o(rUe,"setYAxisTitle");o(nUe,"setYAxisRangeData");o(iUe,"setYAxisRangeFromPlotData");o(gfe,"transformDataWithoutCategory");o(yfe,"getPlotColorFromPalette");o(aUe,"setLineData");o(sUe,"setBarData");o(oUe,"getDrawableElem");o(lUe,"getChartThemeConfig");o(cUe,"getChartConfig");uUe=o(function(){_r(),px=0,mx=dfe(),un=pfe(),gx=ffe(),dO=gx.plotColorPalette.split(",").map(t=>t.trim()),wE=!1,pO=!1},"clear"),vfe={getDrawableElem:oUe,clear:uUe,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br,setOrientation:JVe,setXAxisTitle:eUe,setXAxisRangeData:mfe,setXAxisBand:tUe,setYAxisTitle:rUe,setYAxisRangeData:nUe,setLineData:aUe,setBarData:sUe,setTmpSVGG:ZVe,getChartThemeConfig:lUe,getChartConfig:cUe}});var hUe,bfe,wfe=M(()=>{"use strict";ht();Hu();ni();hUe=o((t,e,r,n)=>{let i=n.db,a=i.getChartThemeConfig(),s=i.getChartConfig();function l(v){return v==="top"?"text-before-edge":"middle"}o(l,"getDominantBaseLine");function u(v){return v==="left"?"start":v==="right"?"end":"middle"}o(u,"getTextAnchor");function h(v){return`translate(${v.x}, ${v.y}) rotate(${v.rotation||0})`}o(h,"getTextTransformation"),Y.debug(`Rendering xychart chart +`+t);let f=Oa(e),d=f.append("g").attr("class","main"),p=d.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background");Zr(f,s.height,s.width,!0),f.attr("viewBox",`0 0 ${s.width} ${s.height}`),p.attr("fill",a.backgroundColor),i.setTmpSVGG(f.append("g").attr("class","mermaid-tmp-group"));let m=i.getDrawableElem(),g={};function y(v){let x=d,b="";for(let[w]of v.entries()){let _=d;w>0&&g[b]&&(_=g[b]),b+=v[w],x=g[b],x||(x=g[b]=_.append("g").attr("class",v[w]))}return x}o(y,"getGroup");for(let v of m){if(v.data.length===0)continue;let x=y(v.groupTexts);switch(v.type){case"rect":x.selectAll("rect").data(v.data).enter().append("rect").attr("x",b=>b.x).attr("y",b=>b.y).attr("width",b=>b.width).attr("height",b=>b.height).attr("fill",b=>b.fill).attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break;case"text":x.selectAll("text").data(v.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",b=>b.fill).attr("font-size",b=>b.fontSize).attr("dominant-baseline",b=>l(b.verticalPos)).attr("text-anchor",b=>u(b.horizontalPos)).attr("transform",b=>h(b)).text(b=>b.text);break;case"path":x.selectAll("path").data(v.data).enter().append("path").attr("d",b=>b.path).attr("fill",b=>b.fill?b.fill:"none").attr("stroke",b=>b.strokeFill).attr("stroke-width",b=>b.strokeWidth);break}}},"draw"),bfe={draw:hUe}});var Tfe={};vr(Tfe,{diagram:()=>fUe});var fUe,kfe=M(()=>{"use strict";Jhe();xfe();wfe();fUe={parser:Zhe,db:vfe,renderer:bfe}});var gO,Cfe,Afe=M(()=>{"use strict";gO=function(){var t=o(function(ie,Q,ee,J){for(ee=ee||{},J=ie.length;J--;ee[ie[J]]=Q);return ee},"o"),e=[1,3],r=[1,4],n=[1,5],i=[1,6],a=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],s=[1,18],l=[2,7],u=[1,22],h=[1,23],f=[1,24],d=[1,25],p=[1,26],m=[1,27],g=[1,20],y=[1,28],v=[1,29],x=[62,63],b=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],w=[1,47],_=[1,48],T=[1,49],E=[1,50],L=[1,51],C=[1,52],A=[1,53],I=[53,54],D=[1,64],k=[1,60],R=[1,61],S=[1,62],O=[1,63],N=[1,65],P=[1,69],F=[1,70],B=[1,67],$=[1,68],z=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],W={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:o(function(Q,ee,J,H,q,Z,ae){var ue=Z.length-1;switch(q){case 4:this.$=Z[ue].trim(),H.setAccTitle(this.$);break;case 5:case 6:this.$=Z[ue].trim(),H.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:H.addRequirement(Z[ue-3],Z[ue-4]);break;case 14:H.setNewReqId(Z[ue-2]);break;case 15:H.setNewReqText(Z[ue-2]);break;case 16:H.setNewReqRisk(Z[ue-2]);break;case 17:H.setNewReqVerifyMethod(Z[ue-2]);break;case 20:this.$=H.RequirementType.REQUIREMENT;break;case 21:this.$=H.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=H.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=H.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=H.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=H.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=H.RiskLevel.LOW_RISK;break;case 27:this.$=H.RiskLevel.MED_RISK;break;case 28:this.$=H.RiskLevel.HIGH_RISK;break;case 29:this.$=H.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=H.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=H.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=H.VerifyType.VERIFY_TEST;break;case 33:H.addElement(Z[ue-3]);break;case 34:H.setNewElementType(Z[ue-2]);break;case 35:H.setNewElementDocRef(Z[ue-2]);break;case 38:H.addRelationship(Z[ue-2],Z[ue],Z[ue-4]);break;case 39:H.addRelationship(Z[ue-2],Z[ue-4],Z[ue]);break;case 40:this.$=H.Relationships.CONTAINS;break;case 41:this.$=H.Relationships.COPIES;break;case 42:this.$=H.Relationships.DERIVES;break;case 43:this.$=H.Relationships.SATISFIES;break;case 44:this.$=H.Relationships.VERIFIES;break;case 45:this.$=H.Relationships.REFINES;break;case 46:this.$=H.Relationships.TRACES;break}},"anonymous"),table:[{3:1,4:2,6:e,9:r,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:e,9:r,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},t(a,[2,6]),{3:12,4:2,6:e,9:r,11:n,13:i},{1:[2,2]},{4:17,5:s,7:13,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},t(a,[2,4]),t(a,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:s,7:31,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:32,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:33,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:34,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{4:17,5:s,7:35,8:l,9:r,11:n,13:i,14:14,15:15,16:16,17:19,23:21,31:u,32:h,33:f,34:d,35:p,36:m,44:g,62:y,63:v},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},t(x,[2,20]),t(x,[2,21]),t(x,[2,22]),t(x,[2,23]),t(x,[2,24]),t(x,[2,25]),t(b,[2,49]),t(b,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:w,56:_,57:T,58:E,59:L,60:C,61:A},{52:54,55:w,56:_,57:T,58:E,59:L,60:C,61:A},{5:[1,55]},{5:[1,56]},{53:[1,57]},t(I,[2,40]),t(I,[2,41]),t(I,[2,42]),t(I,[2,43]),t(I,[2,44]),t(I,[2,45]),t(I,[2,46]),{54:[1,58]},{5:D,20:59,21:k,24:R,26:S,28:O,30:N},{5:P,30:F,46:66,47:B,49:$},{23:71,62:y,63:v},{23:72,62:y,63:v},t(z,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:D,20:77,21:k,24:R,26:S,28:O,30:N},t(z,[2,19]),t(z,[2,33]),{22:[1,78]},{22:[1,79]},{5:P,30:F,46:80,47:B,49:$},t(z,[2,37]),t(z,[2,38]),t(z,[2,39]),{23:81,62:y,63:v},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},t(z,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},t(z,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:D,20:106,21:k,24:R,26:S,28:O,30:N},{5:D,20:107,21:k,24:R,26:S,28:O,30:N},{5:D,20:108,21:k,24:R,26:S,28:O,30:N},{5:D,20:109,21:k,24:R,26:S,28:O,30:N},{5:P,30:F,46:110,47:B,49:$},{5:P,30:F,46:111,47:B,49:$},t(z,[2,14]),t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),t(z,[2,34]),t(z,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:o(function(Q,ee){if(ee.recoverable)this.trace(Q);else{var J=new Error(Q);throw J.hash=ee,J}},"parseError"),parse:o(function(Q){var ee=this,J=[0],H=[],q=[null],Z=[],ae=this.table,ue="",ce=0,te=0,De=0,oe=2,ke=1,Fe=Z.slice.call(arguments,1),Be=Object.create(this.lexer),Ve={yy:{}};for(var Ge in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ge)&&(Ve.yy[Ge]=this.yy[Ge]);Be.setInput(Q,Ve.yy),Ve.yy.lexer=Be,Ve.yy.parser=this,typeof Be.yylloc>"u"&&(Be.yylloc={});var He=Be.yylloc;Z.push(He);var xe=Be.options&&Be.options.ranges;typeof Ve.yy.parseError=="function"?this.parseError=Ve.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function X(We){J.length=J.length-2*We,q.length=q.length-We,Z.length=Z.length-We}o(X,"popStack");function fe(){var We;return We=H.pop()||Be.lex()||ke,typeof We!="number"&&(We instanceof Array&&(H=We,We=H.pop()),We=ee.symbols_[We]||We),We}o(fe,"lex");for(var he,ge,ne,ye,U,Te,se={},Ee,Ae,Pe,Me;;){if(ne=J[J.length-1],this.defaultActions[ne]?ye=this.defaultActions[ne]:((he===null||typeof he>"u")&&(he=fe()),ye=ae[ne]&&ae[ne][he]),typeof ye>"u"||!ye.length||!ye[0]){var me="";Me=[];for(Ee in ae[ne])this.terminals_[Ee]&&Ee>oe&&Me.push("'"+this.terminals_[Ee]+"'");Be.showPosition?me="Parse error on line "+(ce+1)+`: +`+Be.showPosition()+` +Expecting `+Me.join(", ")+", got '"+(this.terminals_[he]||he)+"'":me="Parse error on line "+(ce+1)+": Unexpected "+(he==ke?"end of input":"'"+(this.terminals_[he]||he)+"'"),this.parseError(me,{text:Be.match,token:this.terminals_[he]||he,line:Be.yylineno,loc:He,expected:Me})}if(ye[0]instanceof Array&&ye.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ne+", token: "+he);switch(ye[0]){case 1:J.push(he),q.push(Be.yytext),Z.push(Be.yylloc),J.push(ye[1]),he=null,ge?(he=ge,ge=null):(te=Be.yyleng,ue=Be.yytext,ce=Be.yylineno,He=Be.yylloc,De>0&&De--);break;case 2:if(Ae=this.productions_[ye[1]][1],se.$=q[q.length-Ae],se._$={first_line:Z[Z.length-(Ae||1)].first_line,last_line:Z[Z.length-1].last_line,first_column:Z[Z.length-(Ae||1)].first_column,last_column:Z[Z.length-1].last_column},xe&&(se._$.range=[Z[Z.length-(Ae||1)].range[0],Z[Z.length-1].range[1]]),Te=this.performAction.apply(se,[ue,te,ce,Ve.yy,ye[1],q,Z].concat(Fe)),typeof Te<"u")return Te;Ae&&(J=J.slice(0,-1*Ae*2),q=q.slice(0,-1*Ae),Z=Z.slice(0,-1*Ae)),J.push(this.productions_[ye[1]][0]),q.push(se.$),Z.push(se._$),Pe=ae[J[J.length-2]][J[J.length-1]],J.push(Pe);break;case 3:return!0}}return!0},"parse")},j=function(){var ie={EOF:1,parseError:o(function(ee,J){if(this.yy.parser)this.yy.parser.parseError(ee,J);else throw new Error(ee)},"parseError"),setInput:o(function(Q,ee){return this.yy=ee||this.yy||{},this._input=Q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var Q=this._input[0];this.yytext+=Q,this.yyleng++,this.offset++,this.match+=Q,this.matched+=Q;var ee=Q.match(/(?:\r\n?|\n).*/g);return ee?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Q},"input"),unput:o(function(Q){var ee=Q.length,J=Q.split(/(?:\r\n?|\n)/g);this._input=Q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-ee),this.offset-=ee;var H=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),J.length-1&&(this.yylineno-=J.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:J?(J.length===H.length?this.yylloc.first_column:0)+H[H.length-J.length].length-J[0].length:this.yylloc.first_column-ee},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-ee]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(Q){this.unput(this.match.slice(Q))},"less"),pastInput:o(function(){var Q=this.matched.substr(0,this.matched.length-this.match.length);return(Q.length>20?"...":"")+Q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var Q=this.match;return Q.length<20&&(Q+=this._input.substr(0,20-Q.length)),(Q.substr(0,20)+(Q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var Q=this.pastInput(),ee=new Array(Q.length+1).join("-");return Q+this.upcomingInput()+` +`+ee+"^"},"showPosition"),test_match:o(function(Q,ee){var J,H,q;if(this.options.backtrack_lexer&&(q={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(q.yylloc.range=this.yylloc.range.slice(0))),H=Q[0].match(/(?:\r\n?|\n).*/g),H&&(this.yylineno+=H.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:H?H[H.length-1].length-H[H.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Q[0].length},this.yytext+=Q[0],this.match+=Q[0],this.matches=Q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Q[0].length),this.matched+=Q[0],J=this.performAction.call(this,this.yy,this,ee,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),J)return J;if(this._backtrack){for(var Z in q)this[Z]=q[Z];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Q,ee,J,H;this._more||(this.yytext="",this.match="");for(var q=this._currentRules(),Z=0;Zee[0].length)){if(ee=J,H=Z,this.options.backtrack_lexer){if(Q=this.test_match(J,q[Z]),Q!==!1)return Q;if(this._backtrack){ee=!1;continue}else return!1}else if(!this.options.flex)break}return ee?(Q=this.test_match(ee,q[H]),Q!==!1?Q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var ee=this.next();return ee||this.lex()},"lex"),begin:o(function(ee){this.conditionStack.push(ee)},"begin"),popState:o(function(){var ee=this.conditionStack.length-1;return ee>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(ee){return ee=this.conditionStack.length-1-Math.abs(ee||0),ee>=0?this.conditionStack[ee]:"INITIAL"},"topState"),pushState:o(function(ee){this.begin(ee)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(ee,J,H,q){var Z=q;switch(H){case 0:return"title";case 1:return this.begin("acc_title"),9;break;case 2:return this.popState(),"acc_title_value";break;case 3:return this.begin("acc_descr"),11;break;case 4:return this.popState(),"acc_descr_value";break;case 5:this.begin("acc_descr_multiline");break;case 6:this.popState();break;case 7:return"acc_descr_multiline_value";case 8:return 5;case 9:break;case 10:break;case 11:break;case 12:return 8;case 13:return 6;case 14:return 19;case 15:return 30;case 16:return 22;case 17:return 21;case 18:return 24;case 19:return 26;case 20:return 28;case 21:return 31;case 22:return 32;case 23:return 33;case 24:return 34;case 25:return 35;case 26:return 36;case 27:return 37;case 28:return 38;case 29:return 39;case 30:return 40;case 31:return 41;case 32:return 42;case 33:return 43;case 34:return 44;case 35:return 55;case 36:return 56;case 37:return 57;case 38:return 58;case 39:return 59;case 40:return 60;case 41:return 61;case 42:return 47;case 43:return 49;case 44:return 51;case 45:return 54;case 46:return 53;case 47:this.begin("string");break;case 48:this.popState();break;case 49:return"qString";case 50:return J.yytext=J.yytext.trim(),62;break}},"anonymous"),rules:[/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};return ie}();W.lexer=j;function K(){this.yy={}}return o(K,"Parser"),K.prototype=W,W.Parser=K,new K}();gO.parser=gO;Cfe=gO});var yO,Fs,yx,df,vx,gUe,yUe,vUe,xUe,bUe,wUe,TUe,kUe,EUe,SUe,CUe,AUe,_Ue,LUe,DUe,NUe,RUe,_fe,Lfe=M(()=>{"use strict";Vt();ht();ki();yO=[],Fs={},yx=new Map,df={},vx=new Map,gUe={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},yUe={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},vUe={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},xUe={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},bUe=o((t,e)=>(yx.has(t)||yx.set(t,{name:t,type:e,id:Fs.id,text:Fs.text,risk:Fs.risk,verifyMethod:Fs.verifyMethod}),Fs={},yx.get(t)),"addRequirement"),wUe=o(()=>yx,"getRequirements"),TUe=o(t=>{Fs!==void 0&&(Fs.id=t)},"setNewReqId"),kUe=o(t=>{Fs!==void 0&&(Fs.text=t)},"setNewReqText"),EUe=o(t=>{Fs!==void 0&&(Fs.risk=t)},"setNewReqRisk"),SUe=o(t=>{Fs!==void 0&&(Fs.verifyMethod=t)},"setNewReqVerifyMethod"),CUe=o(t=>(vx.has(t)||(vx.set(t,{name:t,type:df.type,docRef:df.docRef}),Y.info("Added new requirement: ",t)),df={},vx.get(t)),"addElement"),AUe=o(()=>vx,"getElements"),_Ue=o(t=>{df!==void 0&&(df.type=t)},"setNewElementType"),LUe=o(t=>{df!==void 0&&(df.docRef=t)},"setNewElementDocRef"),DUe=o((t,e,r)=>{yO.push({type:t,src:e,dst:r})},"addRelationship"),NUe=o(()=>yO,"getRelationships"),RUe=o(()=>{yO=[],Fs={},yx=new Map,df={},vx=new Map,_r()},"clear"),_fe={RequirementType:gUe,RiskLevel:yUe,VerifyType:vUe,Relationships:xUe,getConfig:o(()=>de().req,"getConfig"),addRequirement:bUe,getRequirements:wUe,setNewReqId:TUe,setNewReqText:kUe,setNewReqRisk:EUe,setNewReqVerifyMethod:SUe,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addElement:CUe,getElements:AUe,setNewElementType:_Ue,setNewElementDocRef:LUe,addRelationship:DUe,getRelationships:NUe,clear:RUe}});var MUe,Dfe,Nfe=M(()=>{"use strict";MUe=o(t=>` + + marker { + fill: ${t.relationColor}; + stroke: ${t.relationColor}; + } + + marker.cross { + stroke: ${t.lineColor}; + } + + svg { + font-family: ${t.fontFamily}; + font-size: ${t.fontSize}; + } + + .reqBox { + fill: ${t.requirementBackground}; + fill-opacity: 1.0; + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + + .reqTitle, .reqLabel{ + fill: ${t.requirementTextColor}; + } + .reqLabelBox { + fill: ${t.relationLabelBackground}; + fill-opacity: 1.0; + } + + .req-title-line { + stroke: ${t.requirementBorderColor}; + stroke-width: ${t.requirementBorderSize}; + } + .relationshipLine { + stroke: ${t.relationColor}; + stroke-width: 1; + } + .relationshipLabel { + fill: ${t.relationLabelColor}; + } + +`,"getStyles"),Dfe=MUe});var vO,IUe,xO,Rfe=M(()=>{"use strict";vO={CONTAINS:"contains",ARROW:"arrow"},IUe=o((t,e)=>{let r=t.append("defs").append("marker").attr("id",vO.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");r.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),r.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),r.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",vO.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 + L${e.line_height},${e.line_height/2} + M${e.line_height},${e.line_height/2} + L0,${e.line_height}`).attr("stroke-width",1)},"insertLineEndings"),xO={ReqMarkers:vO,insertLineEndings:IUe}});var ci,Mfe,Ife,Ofe,Pfe,OUe,PUe,BUe,FUe,zUe,GUe,Bg,$Ue,Bfe,Ffe=M(()=>{"use strict";mr();Pv();Ns();Vt();ht();ni();fr();Rfe();ci={},Mfe=0,Ife=o((t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",ci.rect_min_width+"px").attr("height",ci.rect_min_height+"px"),"newRectNode"),Ofe=o((t,e,r)=>{let n=ci.rect_min_width/2,i=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",ci.rect_padding).attr("dominant-baseline","hanging"),a=0;r.forEach(h=>{a==0?i.append("tspan").attr("text-anchor","middle").attr("x",ci.rect_min_width/2).attr("dy",0).text(h):i.append("tspan").attr("text-anchor","middle").attr("x",ci.rect_min_width/2).attr("dy",ci.line_height*.75).text(h),a++});let s=1.5*ci.rect_padding,l=a*ci.line_height*.75,u=s+l;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",ci.rect_min_width).attr("y1",u).attr("y2",u),{titleNode:i,y:u}},"newTitleNode"),Pfe=o((t,e,r,n)=>{let i=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",ci.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),a=0,s=30,l=[];return r.forEach(u=>{let h=u.length;for(;h>s&&a<3;){let f=u.substring(0,s);u=u.substring(s,u.length),h=u.length,l[l.length]=f,a++}if(a==3){let f=l[l.length-1];l[l.length-1]=f.substring(0,f.length-4)+"..."}else l[l.length]=u;a=0}),l.forEach(u=>{i.append("tspan").attr("x",ci.rect_padding).attr("dy",ci.line_height).text(u)}),i},"newBodyNode"),OUe=o((t,e,r,n)=>{let i=e.node().getTotalLength(),a=e.node().getPointAtLength(i*.5),s="rel"+Mfe;Mfe++;let u=t.append("text").attr("class","req relationshipLabel").attr("id",s).attr("x",a.x).attr("y",a.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox();t.insert("rect","#"+s).attr("class","req reqLabelBox").attr("x",a.x-u.width/2).attr("y",a.y-u.height/2).attr("width",u.width).attr("height",u.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),PUe=o(function(t,e,r,n,i){let a=r.edge(Bg(e.src),Bg(e.dst)),s=Ka().x(function(u){return u.x}).y(function(u){return u.y}),l=t.insert("path","#"+n).attr("class","er relationshipLine").attr("d",s(a.points)).attr("fill","none");e.type==i.db.Relationships.CONTAINS?l.attr("marker-start","url("+je.getUrl(ci.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(l.attr("stroke-dasharray","10,7"),l.attr("marker-end","url("+je.getUrl(ci.arrowMarkerAbsolute)+"#"+xO.ReqMarkers.ARROW+"_line_ending)")),OUe(t,l,ci,`<<${e.type}>>`)},"drawRelationshipFromLayout"),BUe=o((t,e,r)=>{t.forEach((n,i)=>{i=Bg(i),Y.info("Added new requirement: ",i);let a=r.append("g").attr("id",i),s="req-"+i,l=Ife(a,s),u=[],h=Ofe(a,i+"_title",[`<<${n.type}>>`,`${n.name}`]);u.push(h.titleNode);let f=Pfe(a,i+"_body",[`Id: ${n.id}`,`Text: ${n.text}`,`Risk: ${n.risk}`,`Verification: ${n.verifyMethod}`],h.y);u.push(f);let d=l.node().getBBox();e.setNode(i,{width:d.width,height:d.height,shape:"rect",id:i})})},"drawReqs"),FUe=o((t,e,r)=>{t.forEach((n,i)=>{let a=Bg(i),s=r.append("g").attr("id",a),l="element-"+a,u=Ife(s,l),h=[],f=Ofe(s,l+"_title",["<>",`${i}`]);h.push(f.titleNode);let d=Pfe(s,l+"_body",[`Type: ${n.type||"Not Specified"}`,`Doc Ref: ${n.docRef||"None"}`],f.y);h.push(d);let p=u.node().getBBox();e.setNode(a,{width:p.width,height:p.height,shape:"rect",id:a})})},"drawElements"),zUe=o((t,e)=>(t.forEach(function(r){let n=Bg(r.src),i=Bg(r.dst);e.setEdge(n,i,{relationship:r})}),t),"addRelationships"),GUe=o(function(t,e){e.nodes().forEach(function(r){r!==void 0&&e.node(r)!==void 0&&(t.select("#"+r),t.select("#"+r).attr("transform","translate("+(e.node(r).x-e.node(r).width/2)+","+(e.node(r).y-e.node(r).height/2)+" )"))})},"adjustEntities"),Bg=o(t=>t.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),$Ue=o((t,e,r,n)=>{ci=de().requirement;let i=ci.securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let l=(i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body")).select(`[id='${e}']`);xO.insertLineEndings(l,ci);let u=new Mr({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:ci.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),h=n.db.getRequirements(),f=n.db.getElements(),d=n.db.getRelationships();BUe(h,u,l),FUe(f,u,l),zUe(d,u),Du(u),GUe(l,u),d.forEach(function(v){PUe(l,v,u,e,n)});let p=ci.rect_padding,m=l.node().getBBox(),g=m.width+p*2,y=m.height+p*2;Zr(l,y,g,ci.useMaxWidth),l.attr("viewBox",`${m.x-p} ${m.y-p} ${g} ${y}`)},"draw"),Bfe={draw:$Ue}});var zfe={};vr(zfe,{diagram:()=>VUe});var VUe,Gfe=M(()=>{"use strict";Afe();Lfe();Nfe();Ffe();VUe={parser:Cfe,db:_fe,renderer:Bfe,styles:Dfe}});var bO,Ufe,Hfe=M(()=>{"use strict";bO=function(){var t=o(function(H,q,Z,ae){for(Z=Z||{},ae=H.length;ae--;Z[H[ae]]=q);return Z},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,13],u=[1,14],h=[1,16],f=[1,17],d=[1,18],p=[1,24],m=[1,25],g=[1,26],y=[1,27],v=[1,28],x=[1,29],b=[1,30],w=[1,31],_=[1,32],T=[1,33],E=[1,34],L=[1,35],C=[1,36],A=[1,37],I=[1,38],D=[1,39],k=[1,41],R=[1,42],S=[1,43],O=[1,44],N=[1,45],P=[1,46],F=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],B=[4,5,16,50,52,53],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],W=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],K=[68,69,70],ie=[1,122],Q={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:o(function(q,Z,ae,ue,ce,te,De){var oe=te.length-1;switch(ce){case 3:return ue.apply(te[oe]),te[oe];break;case 4:case 9:this.$=[];break;case 5:case 10:te[oe-1].push(te[oe]),this.$=te[oe-1];break;case 6:case 7:case 11:case 12:this.$=te[oe];break;case 8:case 13:this.$=[];break;case 15:te[oe].type="createParticipant",this.$=te[oe];break;case 16:te[oe-1].unshift({type:"boxStart",boxData:ue.parseBoxData(te[oe-2])}),te[oe-1].push({type:"boxEnd",boxText:te[oe-2]}),this.$=te[oe-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-2]),sequenceIndexStep:Number(te[oe-1]),sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(te[oe-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:ue.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:ue.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:ue.LINETYPE.ACTIVE_START,actor:te[oe-1].actor};break;case 23:this.$={type:"activeEnd",signalType:ue.LINETYPE.ACTIVE_END,actor:te[oe-1].actor};break;case 29:ue.setDiagramTitle(te[oe].substring(6)),this.$=te[oe].substring(6);break;case 30:ue.setDiagramTitle(te[oe].substring(7)),this.$=te[oe].substring(7);break;case 31:this.$=te[oe].trim(),ue.setAccTitle(this.$);break;case 32:case 33:this.$=te[oe].trim(),ue.setAccDescription(this.$);break;case 34:te[oe-1].unshift({type:"loopStart",loopText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.LOOP_START}),te[oe-1].push({type:"loopEnd",loopText:te[oe-2],signalType:ue.LINETYPE.LOOP_END}),this.$=te[oe-1];break;case 35:te[oe-1].unshift({type:"rectStart",color:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.RECT_START}),te[oe-1].push({type:"rectEnd",color:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.RECT_END}),this.$=te[oe-1];break;case 36:te[oe-1].unshift({type:"optStart",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.OPT_START}),te[oe-1].push({type:"optEnd",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.OPT_END}),this.$=te[oe-1];break;case 37:te[oe-1].unshift({type:"altStart",altText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.ALT_START}),te[oe-1].push({type:"altEnd",signalType:ue.LINETYPE.ALT_END}),this.$=te[oe-1];break;case 38:te[oe-1].unshift({type:"parStart",parText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.PAR_START}),te[oe-1].push({type:"parEnd",signalType:ue.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 39:te[oe-1].unshift({type:"parStart",parText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.PAR_OVER_START}),te[oe-1].push({type:"parEnd",signalType:ue.LINETYPE.PAR_END}),this.$=te[oe-1];break;case 40:te[oe-1].unshift({type:"criticalStart",criticalText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.CRITICAL_START}),te[oe-1].push({type:"criticalEnd",signalType:ue.LINETYPE.CRITICAL_END}),this.$=te[oe-1];break;case 41:te[oe-1].unshift({type:"breakStart",breakText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.BREAK_START}),te[oe-1].push({type:"breakEnd",optText:ue.parseMessage(te[oe-2]),signalType:ue.LINETYPE.BREAK_END}),this.$=te[oe-1];break;case 43:this.$=te[oe-3].concat([{type:"option",optionText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.CRITICAL_OPTION},te[oe]]);break;case 45:this.$=te[oe-3].concat([{type:"and",parText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.PAR_AND},te[oe]]);break;case 47:this.$=te[oe-3].concat([{type:"else",altText:ue.parseMessage(te[oe-1]),signalType:ue.LINETYPE.ALT_ELSE},te[oe]]);break;case 48:te[oe-3].draw="participant",te[oe-3].type="addParticipant",te[oe-3].description=ue.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 49:te[oe-1].draw="participant",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 50:te[oe-3].draw="actor",te[oe-3].type="addParticipant",te[oe-3].description=ue.parseMessage(te[oe-1]),this.$=te[oe-3];break;case 51:te[oe-1].draw="actor",te[oe-1].type="addParticipant",this.$=te[oe-1];break;case 52:te[oe-1].type="destroyParticipant",this.$=te[oe-1];break;case 53:this.$=[te[oe-1],{type:"addNote",placement:te[oe-2],actor:te[oe-1].actor,text:te[oe]}];break;case 54:te[oe-2]=[].concat(te[oe-1],te[oe-1]).slice(0,2),te[oe-2][0]=te[oe-2][0].actor,te[oe-2][1]=te[oe-2][1].actor,this.$=[te[oe-1],{type:"addNote",placement:ue.PLACEMENT.OVER,actor:te[oe-2].slice(0,2),text:te[oe]}];break;case 55:this.$=[te[oe-1],{type:"addLinks",actor:te[oe-1].actor,text:te[oe]}];break;case 56:this.$=[te[oe-1],{type:"addALink",actor:te[oe-1].actor,text:te[oe]}];break;case 57:this.$=[te[oe-1],{type:"addProperties",actor:te[oe-1].actor,text:te[oe]}];break;case 58:this.$=[te[oe-1],{type:"addDetails",actor:te[oe-1].actor,text:te[oe]}];break;case 61:this.$=[te[oe-2],te[oe]];break;case 62:this.$=te[oe];break;case 63:this.$=ue.PLACEMENT.LEFTOF;break;case 64:this.$=ue.PLACEMENT.RIGHTOF;break;case 65:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe],activate:!0},{type:"activeStart",signalType:ue.LINETYPE.ACTIVE_START,actor:te[oe-1].actor}];break;case 66:this.$=[te[oe-4],te[oe-1],{type:"addMessage",from:te[oe-4].actor,to:te[oe-1].actor,signalType:te[oe-3],msg:te[oe]},{type:"activeEnd",signalType:ue.LINETYPE.ACTIVE_END,actor:te[oe-4].actor}];break;case 67:this.$=[te[oe-3],te[oe-1],{type:"addMessage",from:te[oe-3].actor,to:te[oe-1].actor,signalType:te[oe-2],msg:te[oe]}];break;case 68:this.$={type:"addParticipant",actor:te[oe]};break;case 69:this.$=ue.LINETYPE.SOLID_OPEN;break;case 70:this.$=ue.LINETYPE.DOTTED_OPEN;break;case 71:this.$=ue.LINETYPE.SOLID;break;case 72:this.$=ue.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=ue.LINETYPE.DOTTED;break;case 74:this.$=ue.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=ue.LINETYPE.SOLID_CROSS;break;case 76:this.$=ue.LINETYPE.DOTTED_CROSS;break;case 77:this.$=ue.LINETYPE.SOLID_POINT;break;case 78:this.$=ue.LINETYPE.DOTTED_POINT;break;case 79:this.$=ue.parseMessage(te[oe].trim().substring(1));break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},t(F,[2,5]),{9:47,12:12,13:l,14:u,17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},t(F,[2,7]),t(F,[2,8]),t(F,[2,14]),{12:48,50:A,52:I,53:D},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:P},{22:55,70:P},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(F,[2,29]),t(F,[2,30]),{32:[1,61]},{34:[1,62]},t(F,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:P},{22:72,70:P},{22:73,70:P},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:P},{22:90,70:P},{22:91,70:P},{22:92,70:P},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(F,[2,6]),t(F,[2,15]),t(B,[2,9],{10:93}),t(F,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(F,[2,21]),{5:[1,97]},{5:[1,98]},t(F,[2,24]),t(F,[2,25]),t(F,[2,26]),t(F,[2,27]),t(F,[2,28]),t(F,[2,31]),t(F,[2,32]),t($,i,{7:99}),t($,i,{7:100}),t($,i,{7:101}),t(z,i,{40:102,7:103}),t(W,i,{42:104,7:105}),t(W,i,{7:105,42:106}),t(j,i,{45:107,7:108}),t($,i,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:P},t(K,[2,69]),t(K,[2,70]),t(K,[2,71]),t(K,[2,72]),t(K,[2,73]),t(K,[2,74]),t(K,[2,75]),t(K,[2,76]),t(K,[2,77]),t(K,[2,78]),{22:118,70:P},{22:120,58:119,70:P},{70:[2,63]},{70:[2,64]},{56:121,81:ie},{56:123,81:ie},{56:124,81:ie},{56:125,81:ie},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:A,52:I,53:D},{5:[1,131]},t(F,[2,19]),t(F,[2,20]),t(F,[2,22]),t(F,[2,23]),{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,132],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,133],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,134],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,135]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,46],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,49:[1,136],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,137]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,44],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,48:[1,138],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{16:[1,139]},{16:[1,140]},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[2,42],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,47:[1,141],50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{4:a,5:s,8:8,9:10,12:12,13:l,14:u,16:[1,142],17:15,18:h,21:f,22:40,23:d,24:19,25:20,26:21,27:22,28:23,29:p,30:m,31:g,33:y,35:v,36:x,37:b,38:w,39:_,41:T,43:E,44:L,46:C,50:A,52:I,53:D,54:k,59:R,60:S,61:O,62:N,70:P},{15:[1,143]},t(F,[2,49]),{15:[1,144]},t(F,[2,51]),t(F,[2,52]),{22:145,70:P},{22:146,70:P},{56:147,81:ie},{56:148,81:ie},{56:149,81:ie},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(F,[2,16]),t(B,[2,10]),{12:151,50:A,52:I,53:D},t(B,[2,12]),t(B,[2,13]),t(F,[2,18]),t(F,[2,34]),t(F,[2,35]),t(F,[2,36]),t(F,[2,37]),{15:[1,152]},t(F,[2,38]),{15:[1,153]},t(F,[2,39]),t(F,[2,40]),{15:[1,154]},t(F,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:ie},{56:158,81:ie},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:P},t(B,[2,11]),t(z,i,{7:103,40:160}),t(W,i,{7:105,42:161}),t(j,i,{7:108,45:162}),t(F,[2,48]),t(F,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:o(function(q,Z){if(Z.recoverable)this.trace(q);else{var ae=new Error(q);throw ae.hash=Z,ae}},"parseError"),parse:o(function(q){var Z=this,ae=[0],ue=[],ce=[null],te=[],De=this.table,oe="",ke=0,Fe=0,Be=0,Ve=2,Ge=1,He=te.slice.call(arguments,1),xe=Object.create(this.lexer),X={yy:{}};for(var fe in this.yy)Object.prototype.hasOwnProperty.call(this.yy,fe)&&(X.yy[fe]=this.yy[fe]);xe.setInput(q,X.yy),X.yy.lexer=xe,X.yy.parser=this,typeof xe.yylloc>"u"&&(xe.yylloc={});var he=xe.yylloc;te.push(he);var ge=xe.options&&xe.options.ranges;typeof X.yy.parseError=="function"?this.parseError=X.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ne(Et){ae.length=ae.length-2*Et,ce.length=ce.length-Et,te.length=te.length-Et}o(ne,"popStack");function ye(){var Et;return Et=ue.pop()||xe.lex()||Ge,typeof Et!="number"&&(Et instanceof Array&&(ue=Et,Et=ue.pop()),Et=Z.symbols_[Et]||Et),Et}o(ye,"lex");for(var U,Te,se,Ee,Ae,Pe,Me={},me,We,Re,tt;;){if(se=ae[ae.length-1],this.defaultActions[se]?Ee=this.defaultActions[se]:((U===null||typeof U>"u")&&(U=ye()),Ee=De[se]&&De[se][U]),typeof Ee>"u"||!Ee.length||!Ee[0]){var gt="";tt=[];for(me in De[se])this.terminals_[me]&&me>Ve&&tt.push("'"+this.terminals_[me]+"'");xe.showPosition?gt="Parse error on line "+(ke+1)+`: +`+xe.showPosition()+` +Expecting `+tt.join(", ")+", got '"+(this.terminals_[U]||U)+"'":gt="Parse error on line "+(ke+1)+": Unexpected "+(U==Ge?"end of input":"'"+(this.terminals_[U]||U)+"'"),this.parseError(gt,{text:xe.match,token:this.terminals_[U]||U,line:xe.yylineno,loc:he,expected:tt})}if(Ee[0]instanceof Array&&Ee.length>1)throw new Error("Parse Error: multiple actions possible at state: "+se+", token: "+U);switch(Ee[0]){case 1:ae.push(U),ce.push(xe.yytext),te.push(xe.yylloc),ae.push(Ee[1]),U=null,Te?(U=Te,Te=null):(Fe=xe.yyleng,oe=xe.yytext,ke=xe.yylineno,he=xe.yylloc,Be>0&&Be--);break;case 2:if(We=this.productions_[Ee[1]][1],Me.$=ce[ce.length-We],Me._$={first_line:te[te.length-(We||1)].first_line,last_line:te[te.length-1].last_line,first_column:te[te.length-(We||1)].first_column,last_column:te[te.length-1].last_column},ge&&(Me._$.range=[te[te.length-(We||1)].range[0],te[te.length-1].range[1]]),Pe=this.performAction.apply(Me,[oe,Fe,ke,X.yy,Ee[1],ce,te].concat(He)),typeof Pe<"u")return Pe;We&&(ae=ae.slice(0,-1*We*2),ce=ce.slice(0,-1*We),te=te.slice(0,-1*We)),ae.push(this.productions_[Ee[1]][0]),ce.push(Me.$),te.push(Me._$),Re=De[ae[ae.length-2]][ae[ae.length-1]],ae.push(Re);break;case 3:return!0}}return!0},"parse")},ee=function(){var H={EOF:1,parseError:o(function(Z,ae){if(this.yy.parser)this.yy.parser.parseError(Z,ae);else throw new Error(Z)},"parseError"),setInput:o(function(q,Z){return this.yy=Z||this.yy||{},this._input=q,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var q=this._input[0];this.yytext+=q,this.yyleng++,this.offset++,this.match+=q,this.matched+=q;var Z=q.match(/(?:\r\n?|\n).*/g);return Z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),q},"input"),unput:o(function(q){var Z=q.length,ae=q.split(/(?:\r\n?|\n)/g);this._input=q+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Z),this.offset-=Z;var ue=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ae.length-1&&(this.yylineno-=ae.length-1);var ce=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ae?(ae.length===ue.length?this.yylloc.first_column:0)+ue[ue.length-ae.length].length-ae[0].length:this.yylloc.first_column-Z},this.options.ranges&&(this.yylloc.range=[ce[0],ce[0]+this.yyleng-Z]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(q){this.unput(this.match.slice(q))},"less"),pastInput:o(function(){var q=this.matched.substr(0,this.matched.length-this.match.length);return(q.length>20?"...":"")+q.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var q=this.match;return q.length<20&&(q+=this._input.substr(0,20-q.length)),(q.substr(0,20)+(q.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var q=this.pastInput(),Z=new Array(q.length+1).join("-");return q+this.upcomingInput()+` +`+Z+"^"},"showPosition"),test_match:o(function(q,Z){var ae,ue,ce;if(this.options.backtrack_lexer&&(ce={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ce.yylloc.range=this.yylloc.range.slice(0))),ue=q[0].match(/(?:\r\n?|\n).*/g),ue&&(this.yylineno+=ue.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ue?ue[ue.length-1].length-ue[ue.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+q[0].length},this.yytext+=q[0],this.match+=q[0],this.matches=q,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(q[0].length),this.matched+=q[0],ae=this.performAction.call(this,this.yy,this,Z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ae)return ae;if(this._backtrack){for(var te in ce)this[te]=ce[te];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var q,Z,ae,ue;this._more||(this.yytext="",this.match="");for(var ce=this._currentRules(),te=0;teZ[0].length)){if(Z=ae,ue=te,this.options.backtrack_lexer){if(q=this.test_match(ae,ce[te]),q!==!1)return q;if(this._backtrack){Z=!1;continue}else return!1}else if(!this.options.flex)break}return Z?(q=this.test_match(Z,ce[ue]),q!==!1?q:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var Z=this.next();return Z||this.lex()},"lex"),begin:o(function(Z){this.conditionStack.push(Z)},"begin"),popState:o(function(){var Z=this.conditionStack.length-1;return Z>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(Z){return Z=this.conditionStack.length-1-Math.abs(Z||0),Z>=0?this.conditionStack[Z]:"INITIAL"},"topState"),pushState:o(function(Z){this.begin(Z)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(Z,ae,ue,ce){var te=ce;switch(ue){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:return 19;case 7:return this.begin("LINE"),14;break;case 8:return this.begin("ID"),50;break;case 9:return this.begin("ID"),52;break;case 10:return 13;case 11:return this.begin("ID"),53;break;case 12:return ae.yytext=ae.yytext.trim(),this.begin("ALIAS"),70;break;case 13:return this.popState(),this.popState(),this.begin("LINE"),51;break;case 14:return this.popState(),this.popState(),5;break;case 15:return this.begin("LINE"),36;break;case 16:return this.begin("LINE"),37;break;case 17:return this.begin("LINE"),38;break;case 18:return this.begin("LINE"),39;break;case 19:return this.begin("LINE"),49;break;case 20:return this.begin("LINE"),41;break;case 21:return this.begin("LINE"),43;break;case 22:return this.begin("LINE"),48;break;case 23:return this.begin("LINE"),44;break;case 24:return this.begin("LINE"),47;break;case 25:return this.begin("LINE"),46;break;case 26:return this.popState(),15;break;case 27:return 16;case 28:return 65;case 29:return 66;case 30:return 59;case 31:return 60;case 32:return 61;case 33:return 62;case 34:return 57;case 35:return 54;case 36:return this.begin("ID"),21;break;case 37:return this.begin("ID"),23;break;case 38:return 29;case 39:return 30;case 40:return this.begin("acc_title"),31;break;case 41:return this.popState(),"acc_title_value";break;case 42:return this.begin("acc_descr"),33;break;case 43:return this.popState(),"acc_descr_value";break;case 44:this.begin("acc_descr_multiline");break;case 45:this.popState();break;case 46:return"acc_descr_multiline_value";case 47:return 6;case 48:return 18;case 49:return 20;case 50:return 64;case 51:return 5;case 52:return ae.yytext=ae.yytext.trim(),70;break;case 53:return 73;case 54:return 74;case 55:return 75;case 56:return 76;case 57:return 71;case 58:return 72;case 59:return 77;case 60:return 78;case 61:return 79;case 62:return 80;case 63:return 81;case 64:return 68;case 65:return 69;case 66:return 5;case 67:return"INVALID"}},"anonymous"),rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:create\b)/i,/^(?:destroy\b)/i,/^(?:[^\<->\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};return H}();Q.lexer=ee;function J(){this.yy={}}return o(J,"Parser"),J.prototype=Q,Q.Parser=J,new J}();bO.parser=bO;Ufe=bO});function TO(t,e){if(t.links==null)t.links=e;else for(let r in e)t.links[r]=e[r]}function jfe(t,e){if(t.properties==null)t.properties=e;else for(let r in e)t.properties[r]=e[r]}function dHe(){$t.records.currentBox=void 0}var $t,YUe,wO,qUe,XUe,yi,jUe,KUe,QUe,ZUe,JUe,eHe,tHe,bx,rHe,nHe,iHe,aHe,sHe,Wfe,k0,oHe,lHe,cHe,xx,uHe,hHe,Yfe,qfe,fHe,Xfe,Kfe,pHe,Qfe,kO,Zfe=M(()=>{"use strict";Vt();ht();tE();fr();ki();$t=new cf(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),YUe=o(function(t){$t.records.boxes.push({name:t.text,wrap:t.wrap??k0(),fill:t.color,actorKeys:[]}),$t.records.currentBox=$t.records.boxes.slice(-1)[0]},"addBox"),wO=o(function(t,e,r,n){let i=$t.records.currentBox,a=$t.records.actors.get(t);if(a){if($t.records.currentBox&&a.box&&$t.records.currentBox!==a.box)throw new Error(`A same participant should only be defined in one Box: ${a.name} can't be in '${a.box.name}' and in '${$t.records.currentBox.name}' at the same time.`);if(i=a.box?a.box:$t.records.currentBox,a.box=i,a&&e===a.name&&r==null)return}if(r?.text==null&&(r={text:e,type:n}),(n==null||r.text==null)&&(r={text:e,type:n}),$t.records.actors.set(t,{box:i,name:e,description:r.text,wrap:r.wrap??k0(),prevActor:$t.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),$t.records.prevActor){let s=$t.records.actors.get($t.records.prevActor);s&&(s.nextActor=t)}$t.records.currentBox&&$t.records.currentBox.actorKeys.push(t),$t.records.prevActor=t},"addActor"),qUe=o(t=>{let e,r=0;if(!t)return 0;for(e=0;e<$t.records.messages.length;e++)$t.records.messages[e].type===xx.ACTIVE_START&&$t.records.messages[e].from===t&&r++,$t.records.messages[e].type===xx.ACTIVE_END&&$t.records.messages[e].from===t&&r--;return r},"activationCount"),XUe=o(function(t,e,r,n){$t.records.messages.push({from:t,to:e,message:r.text,wrap:r.wrap??k0(),answer:n})},"addMessage"),yi=o(function(t,e,r,n,i=!1){if(n===xx.ACTIVE_END&&qUe(t??"")<1){let s=new Error("Trying to inactivate an inactive participant ("+t+")");throw s.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},s}return $t.records.messages.push({from:t,to:e,message:r?.text??"",wrap:r?.wrap??k0(),type:n,activate:i}),!0},"addSignal"),jUe=o(function(){return $t.records.boxes.length>0},"hasAtLeastOneBox"),KUe=o(function(){return $t.records.boxes.some(t=>t.name)},"hasAtLeastOneBoxWithTitle"),QUe=o(function(){return $t.records.messages},"getMessages"),ZUe=o(function(){return $t.records.boxes},"getBoxes"),JUe=o(function(){return $t.records.actors},"getActors"),eHe=o(function(){return $t.records.createdActors},"getCreatedActors"),tHe=o(function(){return $t.records.destroyedActors},"getDestroyedActors"),bx=o(function(t){return $t.records.actors.get(t)},"getActor"),rHe=o(function(){return[...$t.records.actors.keys()]},"getActorKeys"),nHe=o(function(){$t.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),iHe=o(function(){$t.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),aHe=o(()=>$t.records.sequenceNumbersEnabled,"showSequenceNumbers"),sHe=o(function(t){$t.records.wrapEnabled=t},"setWrap"),Wfe=o(t=>{if(t===void 0)return{};t=t.trim();let e=/^:?wrap:/.exec(t)!==null?!0:/^:?nowrap:/.exec(t)!==null?!1:void 0;return{cleanedText:(e===void 0?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),k0=o(()=>$t.records.wrapEnabled!==void 0?$t.records.wrapEnabled:de().sequence?.wrap??!1,"autoWrap"),oHe=o(function(){$t.reset(),_r()},"clear"),lHe=o(function(t){let e=t.trim(),{wrap:r,cleanedText:n}=Wfe(e),i={text:n,wrap:r};return Y.debug(`parseMessage: ${JSON.stringify(i)}`),i},"parseMessage"),cHe=o(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),r=e?.[1]?e[1].trim():"transparent",n=e?.[2]?e[2].trim():void 0;if(window?.CSS)window.CSS.supports("color",r)||(r="transparent",n=t.trim());else{let s=new Option().style;s.color=r,s.color!==r&&(r="transparent",n=t.trim())}let{wrap:i,cleanedText:a}=Wfe(n);return{text:a?Tr(a,de()):void 0,color:r,wrap:i}},"parseBoxData"),xx={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},uHe={FILLED:0,OPEN:1},hHe={LEFTOF:0,RIGHTOF:1,OVER:2},Yfe=o(function(t,e,r){let n={actor:t,placement:e,message:r.text,wrap:r.wrap??k0()},i=[].concat(t,t);$t.records.notes.push(n),$t.records.messages.push({from:i[0],to:i[1],message:r.text,wrap:r.wrap??k0(),type:xx.NOTE,placement:e})},"addNote"),qfe=o(function(t,e){let r=bx(t);try{let n=Tr(e.text,de());n=n.replace(/&/g,"&"),n=n.replace(/=/g,"=");let i=JSON.parse(n);TO(r,i)}catch(n){Y.error("error while parsing actor link text",n)}},"addLinks"),fHe=o(function(t,e){let r=bx(t);try{let n={},i=Tr(e.text,de()),a=i.indexOf("@");i=i.replace(/&/g,"&"),i=i.replace(/=/g,"=");let s=i.slice(0,a-1).trim(),l=i.slice(a+1).trim();n[s]=l,TO(r,n)}catch(n){Y.error("error while parsing actor link text",n)}},"addALink");o(TO,"insertLinks");Xfe=o(function(t,e){let r=bx(t);try{let n=Tr(e.text,de()),i=JSON.parse(n);jfe(r,i)}catch(n){Y.error("error while parsing actor properties text",n)}},"addProperties");o(jfe,"insertProperties");o(dHe,"boxEnd");Kfe=o(function(t,e){let r=bx(t),n=document.getElementById(e.text);try{let i=n.innerHTML,a=JSON.parse(i);a.properties&&jfe(r,a.properties),a.links&&TO(r,a.links)}catch(i){Y.error("error while parsing actor details text",i)}},"addDetails"),pHe=o(function(t,e){if(t?.properties!==void 0)return t.properties[e]},"getActorProperty"),Qfe=o(function(t){if(Array.isArray(t))t.forEach(function(e){Qfe(e)});else switch(t.type){case"sequenceIndex":$t.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":wO(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if($t.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");$t.records.lastCreated=t.actor,wO(t.actor,t.actor,t.description,t.draw),$t.records.createdActors.set(t.actor,$t.records.messages.length);break;case"destroyParticipant":$t.records.lastDestroyed=t.actor,$t.records.destroyedActors.set(t.actor,$t.records.messages.length);break;case"activeStart":yi(t.actor,void 0,void 0,t.signalType);break;case"activeEnd":yi(t.actor,void 0,void 0,t.signalType);break;case"addNote":Yfe(t.actor,t.placement,t.text);break;case"addLinks":qfe(t.actor,t.text);break;case"addALink":fHe(t.actor,t.text);break;case"addProperties":Xfe(t.actor,t.text);break;case"addDetails":Kfe(t.actor,t.text);break;case"addMessage":if($t.records.lastCreated){if(t.to!==$t.records.lastCreated)throw new Error("The created participant "+$t.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");$t.records.lastCreated=void 0}else if($t.records.lastDestroyed){if(t.to!==$t.records.lastDestroyed&&t.from!==$t.records.lastDestroyed)throw new Error("The destroyed participant "+$t.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");$t.records.lastDestroyed=void 0}yi(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":YUe(t.boxData);break;case"boxEnd":dHe();break;case"loopStart":yi(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":yi(void 0,void 0,void 0,t.signalType);break;case"rectStart":yi(void 0,void 0,t.color,t.signalType);break;case"rectEnd":yi(void 0,void 0,void 0,t.signalType);break;case"optStart":yi(void 0,void 0,t.optText,t.signalType);break;case"optEnd":yi(void 0,void 0,void 0,t.signalType);break;case"altStart":yi(void 0,void 0,t.altText,t.signalType);break;case"else":yi(void 0,void 0,t.altText,t.signalType);break;case"altEnd":yi(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":Rr(t.text);break;case"parStart":yi(void 0,void 0,t.parText,t.signalType);break;case"and":yi(void 0,void 0,t.parText,t.signalType);break;case"parEnd":yi(void 0,void 0,void 0,t.signalType);break;case"criticalStart":yi(void 0,void 0,t.criticalText,t.signalType);break;case"option":yi(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":yi(void 0,void 0,void 0,t.signalType);break;case"breakStart":yi(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":yi(void 0,void 0,void 0,t.signalType);break}},"apply"),kO={addActor:wO,addMessage:XUe,addSignal:yi,addLinks:qfe,addDetails:Kfe,addProperties:Xfe,autoWrap:k0,setWrap:sHe,enableSequenceNumbers:nHe,disableSequenceNumbers:iHe,showSequenceNumbers:aHe,getMessages:QUe,getActors:JUe,getCreatedActors:eHe,getDestroyedActors:tHe,getActor:bx,getActorKeys:rHe,getActorProperty:pHe,getAccTitle:Pr,getBoxes:ZUe,getDiagramTitle:Jr,setDiagramTitle:ln,getConfig:o(()=>de().sequence,"getConfig"),clear:oHe,parseMessage:lHe,parseBoxData:cHe,LINETYPE:xx,ARROWTYPE:uHe,PLACEMENT:hHe,addNote:Yfe,setAccTitle:Rr,apply:Qfe,setAccDescription:Br,getAccDescription:Fr,hasAtLeastOneBox:jUe,hasAtLeastOneBoxWithTitle:KUe}});var mHe,Jfe,ede=M(()=>{"use strict";mHe=o(t=>`.actor { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + + text.actor > tspan { + fill: ${t.actorTextColor}; + stroke: none; + } + + .actor-line { + stroke: ${t.actorLineColor}; + } + + .messageLine0 { + stroke-width: 1.5; + stroke-dasharray: none; + stroke: ${t.signalColor}; + } + + .messageLine1 { + stroke-width: 1.5; + stroke-dasharray: 2, 2; + stroke: ${t.signalColor}; + } + + #arrowhead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .sequenceNumber { + fill: ${t.sequenceNumberColor}; + } + + #sequencenumber { + fill: ${t.signalColor}; + } + + #crosshead path { + fill: ${t.signalColor}; + stroke: ${t.signalColor}; + } + + .messageText { + fill: ${t.signalTextColor}; + stroke: none; + } + + .labelBox { + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBkgColor}; + } + + .labelText, .labelText > tspan { + fill: ${t.labelTextColor}; + stroke: none; + } + + .loopText, .loopText > tspan { + fill: ${t.loopTextColor}; + stroke: none; + } + + .loopLine { + stroke-width: 2px; + stroke-dasharray: 2, 2; + stroke: ${t.labelBoxBorderColor}; + fill: ${t.labelBoxBorderColor}; + } + + .note { + //stroke: #decc93; + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + } + + .noteText, .noteText > tspan { + fill: ${t.noteTextColor}; + stroke: none; + } + + .activation0 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation1 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .activation2 { + fill: ${t.activationBkgColor}; + stroke: ${t.activationBorderColor}; + } + + .actorPopupMenu { + position: absolute; + } + + .actorPopupMenuPanel { + position: absolute; + fill: ${t.actorBkg}; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); +} + .actor-man line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + } + .actor-man circle, line { + stroke: ${t.actorBorder}; + fill: ${t.actorBkg}; + stroke-width: 2px; + } +`,"getStyles"),Jfe=mHe});var EO,pf,rde,nde,gHe,tde,SO,yHe,vHe,wx,E0,ide,Fc,CO,xHe,bHe,wHe,THe,kHe,EHe,SHe,ade,CHe,AHe,_He,LHe,DHe,NHe,RHe,sde,MHe,AO,IHe,ui,ode=M(()=>{"use strict";fr();qy();hr();EO=ka(Fp(),1);Ua();pf=18*2,rde="actor-top",nde="actor-bottom",gHe="actor-box",tde="actor-man",SO=o(function(t,e){return md(t,e)},"drawRect"),yHe=o(function(t,e,r,n,i){if(e.links===void 0||e.links===null||Object.keys(e.links).length===0)return{height:0,width:0};let a=e.links,s=e.actorCnt,l=e.rectData;var u="none";i&&(u="block !important");let h=t.append("g");h.attr("id","actor"+s+"_popup"),h.attr("class","actorPopupMenu"),h.attr("display",u);var f="";l.class!==void 0&&(f=" "+l.class);let d=l.width>r?l.width:r,p=h.append("rect");if(p.attr("class","actorPopupMenuPanel"+f),p.attr("x",l.x),p.attr("y",l.height),p.attr("fill",l.fill),p.attr("stroke",l.stroke),p.attr("width",d),p.attr("height",l.height),p.attr("rx",l.rx),p.attr("ry",l.ry),a!=null){var m=20;for(let v in a){var g=h.append("a"),y=(0,EO.sanitizeUrl)(a[v]);g.attr("xlink:href",y),g.attr("target","_blank"),IHe(n)(v,g,l.x+10,l.height+m,d,20,{class:"actor"},n),m+=30}}return p.attr("height",m),{height:l.height+m,width:d}},"drawPopup"),vHe=o(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),wx=o(async function(t,e,r=null){let n=t.append("foreignObject"),i=await hh(e.text,Sr()),s=n.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(n.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),e.class==="noteText"){let l=t.node().firstChild;l.setAttribute("height",s.height+2*e.textMargin);let u=l.getBBox();n.attr("x",Math.round(u.x+u.width/2-s.width/2)).attr("y",Math.round(u.y+u.height/2-s.height/2))}else if(r){let{startx:l,stopx:u,starty:h}=r;if(l>u){let f=l;l=u,u=f}n.attr("x",Math.round(l+Math.abs(l-u)/2-s.width/2)),e.class==="loopText"?n.attr("y",Math.round(h)):n.attr("y",Math.round(h-s.height))}return[n]},"drawKatex"),E0=o(function(t,e){let r=0,n=0,i=e.text.split(je.lineBreakRegex),[a,s]=Fo(e.fontSize),l=[],u=0,h=o(()=>e.y,"yfunc");if(e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0)switch(e.valign){case"top":case"start":h=o(()=>Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":h=o(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":h=o(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc");break}if(e.anchor!==void 0&&e.textMargin!==void 0&&e.width!==void 0)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle";break}for(let[f,d]of i.entries()){e.textMargin!==void 0&&e.textMargin===0&&a!==void 0&&(u=f*a);let p=t.append("text");p.attr("x",e.x),p.attr("y",h()),e.anchor!==void 0&&p.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),e.fontFamily!==void 0&&p.style("font-family",e.fontFamily),s!==void 0&&p.style("font-size",s),e.fontWeight!==void 0&&p.style("font-weight",e.fontWeight),e.fill!==void 0&&p.attr("fill",e.fill),e.class!==void 0&&p.attr("class",e.class),e.dy!==void 0?p.attr("dy",e.dy):u!==0&&p.attr("dy",u);let m=d||K_;if(e.tspan){let g=p.append("tspan");g.attr("x",e.x),e.fill!==void 0&&g.attr("fill",e.fill),g.text(m)}else p.text(m);e.valign!==void 0&&e.textMargin!==void 0&&e.textMargin>0&&(n+=(p._groups||p)[0][0].getBBox().height,r=n),l.push(p)}return l},"drawText"),ide=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");return n.attr("points",r(e.x,e.y,e.width,e.height,7)),n.attr("class","labelBox"),e.y=e.y+e.height/2,E0(t,e),n},"drawLabel"),Fc=-1,CO=o((t,e,r,n)=>{t.select&&r.forEach(i=>{let a=e.get(i),s=t.select("#actor"+a.actorCnt);!n.mirrorActors&&a.stopy?s.attr("y2",a.stopy+a.height/2):n.mirrorActors&&s.attr("y2",a.stopy)})},"fixLifeLineHeights"),xHe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,l=t.append("g").lower();var u=l;n||(Fc++,Object.keys(e.links||{}).length&&!r.forceMenus&&u.attr("onclick",vHe(`actor${Fc}_popup`)).attr("cursor","pointer"),u.append("line").attr("id","actor"+Fc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),u=l.append("g"),e.actorCnt=Fc,e.links!=null&&u.attr("id","root-"+Fc));let h=Sl();var f="actor";e.properties?.class?f=e.properties.class:h.fill="#eaeaea",n?f+=` ${nde}`:f+=` ${rde}`,h.x=e.x,h.y=i,h.width=e.width,h.height=e.height,h.class=f,h.rx=3,h.ry=3,h.name=e.name;let d=SO(u,h);if(e.rectData=h,e.properties?.icon){let m=e.properties.icon.trim();m.charAt(0)==="@"?RY(u,h.x+h.width-20,h.y+10,m.substr(1)):NY(u,h.x+h.width-20,h.y+10,m)}AO(r,pi(e.description))(e.description,u,h.x,h.y,h.width,h.height,{class:`actor ${gHe}`},r);let p=e.height;if(d.node){let m=d.node().getBBox();e.height=m.height,p=m.height}return p},"drawActorTypeParticipant"),bHe=o(function(t,e,r,n){let i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,l=t.append("g").lower();n||(Fc++,l.append("line").attr("id","actor"+Fc).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Fc);let u=t.append("g"),h=tde;n?h+=` ${nde}`:h+=` ${rde}`,u.attr("class",h),u.attr("name",e.name);let f=Sl();f.x=e.x,f.y=i,f.fill="#eaeaea",f.width=e.width,f.height=e.height,f.class="actor",f.rx=3,f.ry=3,u.append("line").attr("id","actor-man-torso"+Fc).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),u.append("line").attr("id","actor-man-arms"+Fc).attr("x1",a-pf/2).attr("y1",i+33).attr("x2",a+pf/2).attr("y2",i+33),u.append("line").attr("x1",a-pf/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),u.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+pf/2-2).attr("y2",i+60);let d=u.append("circle");d.attr("cx",e.x+e.width/2),d.attr("cy",i+10),d.attr("r",15),d.attr("width",e.width),d.attr("height",e.height);let p=u.node().getBBox();return e.height=p.height,AO(r,pi(e.description))(e.description,u,f.x,f.y+35,f.width,f.height,{class:`actor ${tde}`},r),e.height},"drawActorTypeActor"),wHe=o(async function(t,e,r,n){switch(e.type){case"actor":return await bHe(t,e,r,n);case"participant":return await xHe(t,e,r,n)}},"drawActor"),THe=o(function(t,e,r){let i=t.append("g");ade(i,e),e.name&&AO(r)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),i.lower()},"drawBox"),kHe=o(function(t){return t.append("g")},"anchorElement"),EHe=o(function(t,e,r,n,i){let a=Sl(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,SO(s,a)},"drawActivation"),SHe=o(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:l,messageFontFamily:u,messageFontSize:h,messageFontWeight:f}=n,d=t.append("g"),p=o(function(y,v,x,b){return d.append("line").attr("x1",y).attr("y1",v).attr("x2",x).attr("y2",b).attr("class","loopLine")},"drawLoopLine");p(e.startx,e.starty,e.stopx,e.starty),p(e.stopx,e.starty,e.stopx,e.stopy),p(e.startx,e.stopy,e.stopx,e.stopy),p(e.startx,e.starty,e.startx,e.stopy),e.sections!==void 0&&e.sections.forEach(function(y){p(e.startx,y.y,e.stopx,y.y).style("stroke-dasharray","3, 3")});let m=Yy();m.text=r,m.x=e.startx,m.y=e.starty,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.anchor="middle",m.valign="middle",m.tspan=!1,m.width=l||50,m.height=s||20,m.textMargin=a,m.class="labelText",ide(d,m),m=sde(),m.text=e.title,m.x=e.startx+l/2+(e.stopx-e.startx)/2,m.y=e.starty+i+a,m.anchor="middle",m.valign="middle",m.textMargin=a,m.class="loopText",m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=!0;let g=pi(m.text)?await wx(d,m,e):E0(d,m);if(e.sectionTitles!==void 0){for(let[y,v]of Object.entries(e.sectionTitles))if(v.message){m.text=v.message,m.x=e.startx+(e.stopx-e.startx)/2,m.y=e.sections[y].y+i+a,m.class="loopText",m.anchor="middle",m.valign="middle",m.tspan=!1,m.fontFamily=u,m.fontSize=h,m.fontWeight=f,m.wrap=e.wrap,pi(m.text)?(e.starty=e.sections[y].y,await wx(d,m,e)):E0(d,m);let x=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));e.sections[y].height+=x-(i+a)}}return e.height=Math.round(e.stopy-e.starty),d},"drawLoop"),ade=o(function(t,e){Y3(t,e)},"drawBackgroundRect"),CHe=o(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),AHe=o(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),_He=o(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),LHe=o(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),DHe=o(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"insertArrowFilledHead"),NHe=o(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),RHe=o(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),sde=o(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),MHe=o(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),AO=function(){function t(a,s,l,u,h,f,d){let p=s.append("text").attr("x",l+h/2).attr("y",u+f/2+5).style("text-anchor","middle").text(a);i(p,d)}o(t,"byText");function e(a,s,l,u,h,f,d,p){let{actorFontSize:m,actorFontFamily:g,actorFontWeight:y}=p,[v,x]=Fo(m),b=a.split(je.lineBreakRegex);for(let w=0;w{let s=S0(Le),l=a.actorKeys.reduce((f,d)=>f+=t.get(d).width+(t.get(d).margin||0),0);l-=2*Le.boxTextMargin,a.wrap&&(a.name=Ut.wrapLabel(a.name,l-2*Le.wrapPadding,s));let u=Ut.calculateTextDimensions(a.name,s);i=je.getMax(u.height,i);let h=je.getMax(l,u.width+2*Le.wrapPadding);if(a.margin=Le.boxTextMargin,la.textMaxHeight=i),je.getMax(n,Le.height)}var Le,nt,OHe,S0,Fg,_O,BHe,FHe,LO,cde,ude,TE,lde,GHe,VHe,HHe,WHe,YHe,hde,fde=M(()=>{"use strict";mr();ode();ht();fr();qy();Vt();ip();hr();ni();Le={},nt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:o(function(){return Math.max.apply(null,this.actors.length===0?[0]:this.actors.map(t=>t.height||0))+(this.loops.length===0?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.messages.length===0?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(this.notes.length===0?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:o(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:o(function(t){this.boxes.push(t)},"addBox"),addActor:o(function(t){this.actors.push(t)},"addActor"),addLoop:o(function(t){this.loops.push(t)},"addLoop"),addMessage:o(function(t){this.messages.push(t)},"addMessage"),addNote:o(function(t){this.notes.push(t)},"addNote"),lastActor:o(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:o(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:o(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:o(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:o(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,ude(de())},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=this,a=0;function s(l){return o(function(h){a++;let f=i.sequenceItems.length-a+1;i.updateVal(h,"starty",e-f*Le.boxMargin,Math.min),i.updateVal(h,"stopy",n+f*Le.boxMargin,Math.max),i.updateVal(nt.data,"startx",t-f*Le.boxMargin,Math.min),i.updateVal(nt.data,"stopx",r+f*Le.boxMargin,Math.max),l!=="activation"&&(i.updateVal(h,"startx",t-f*Le.boxMargin,Math.min),i.updateVal(h,"stopx",r+f*Le.boxMargin,Math.max),i.updateVal(nt.data,"starty",e-f*Le.boxMargin,Math.min),i.updateVal(nt.data,"stopy",n+f*Le.boxMargin,Math.max))},"updateItemBounds")}o(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:o(function(t,e,r,n){let i=je.getMin(t,r),a=je.getMax(t,r),s=je.getMin(e,n),l=je.getMax(e,n);this.updateVal(nt.data,"startx",i,Math.min),this.updateVal(nt.data,"starty",s,Math.min),this.updateVal(nt.data,"stopx",a,Math.max),this.updateVal(nt.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),newActivation:o(function(t,e,r){let n=r.get(t.from),i=TE(t.from).length||0,a=n.x+n.width/2+(i-1)*Le.activationWidth/2;this.activations.push({startx:a,starty:this.verticalPos+2,stopx:a+Le.activationWidth,stopy:void 0,actor:t.from,anchored:ui.anchorElement(e)})},"newActivation"),endActivation:o(function(t){let e=this.activations.map(function(r){return r.actor}).lastIndexOf(t.from);return this.activations.splice(e,1)[0]},"endActivation"),createLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:o(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:o(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:o(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:o(function(t){let e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:nt.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:o(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:o(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=je.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return{bounds:this.data,models:this.models}},"getBounds")},OHe=o(async function(t,e){nt.bumpVerticalPos(Le.boxMargin),e.height=Le.boxMargin,e.starty=nt.getVerticalPos();let r=Sl();r.x=e.startx,r.y=e.starty,r.width=e.width||Le.width,r.class="note";let n=t.append("g"),i=ui.drawRect(n,r),a=Yy();a.x=e.startx,a.y=e.starty,a.width=r.width,a.dy="1em",a.text=e.message,a.class="noteText",a.fontFamily=Le.noteFontFamily,a.fontSize=Le.noteFontSize,a.fontWeight=Le.noteFontWeight,a.anchor=Le.noteAlign,a.textMargin=Le.noteMargin,a.valign="center";let s=pi(a.text)?await wx(n,a):E0(n,a),l=Math.round(s.map(u=>(u._groups||u)[0][0].getBBox().height).reduce((u,h)=>u+h));i.attr("height",l+2*Le.noteMargin),e.height+=l+2*Le.noteMargin,nt.bumpVerticalPos(l+2*Le.noteMargin),e.stopy=e.starty+l+2*Le.noteMargin,e.stopx=e.startx+r.width,nt.insert(e.startx,e.starty,e.stopx,e.stopy),nt.models.addNote(e)},"drawNote"),S0=o(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),Fg=o(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),_O=o(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont");o(PHe,"boundMessage");BHe=o(async function(t,e,r,n){let{startx:i,stopx:a,starty:s,message:l,type:u,sequenceIndex:h,sequenceVisible:f}=e,d=Ut.calculateTextDimensions(l,S0(Le)),p=Yy();p.x=i,p.y=s+10,p.width=a-i,p.class="messageText",p.dy="1em",p.text=l,p.fontFamily=Le.messageFontFamily,p.fontSize=Le.messageFontSize,p.fontWeight=Le.messageFontWeight,p.anchor=Le.messageAlign,p.valign="center",p.textMargin=Le.wrapPadding,p.tspan=!1,pi(p.text)?await wx(t,p,{startx:i,stopx:a,starty:r}):E0(t,p);let m=d.width,g;i===a?Le.rightAngles?g=t.append("path").attr("d",`M ${i},${r} H ${i+je.getMax(Le.width/2,m/2)} V ${r+25} H ${i}`):g=t.append("path").attr("d","M "+i+","+r+" C "+(i+60)+","+(r-10)+" "+(i+60)+","+(r+30)+" "+i+","+(r+20)):(g=t.append("line"),g.attr("x1",i),g.attr("y1",r),g.attr("x2",a),g.attr("y2",r)),u===n.db.LINETYPE.DOTTED||u===n.db.LINETYPE.DOTTED_CROSS||u===n.db.LINETYPE.DOTTED_POINT||u===n.db.LINETYPE.DOTTED_OPEN||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let y="";Le.arrowMarkerAbsolute&&(y=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,y=y.replace(/\(/g,"\\("),y=y.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(u===n.db.LINETYPE.SOLID||u===n.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+y+"#arrowhead)"),(u===n.db.LINETYPE.BIDIRECTIONAL_SOLID||u===n.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(g.attr("marker-start","url("+y+"#arrowhead)"),g.attr("marker-end","url("+y+"#arrowhead)")),(u===n.db.LINETYPE.SOLID_POINT||u===n.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+y+"#filled-head)"),(u===n.db.LINETYPE.SOLID_CROSS||u===n.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+y+"#crosshead)"),(f||Le.showSequenceNumbers)&&(g.attr("marker-start","url("+y+"#sequencenumber)"),t.append("text").attr("x",i).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(h))},"drawMessage"),FHe=o(function(t,e,r,n,i,a,s){let l=0,u=0,h,f=0;for(let d of n){let p=e.get(d),m=p.box;h&&h!=m&&(s||nt.models.addBox(h),u+=Le.boxMargin+h.margin),m&&m!=h&&(s||(m.x=l+u,m.y=i),u+=m.margin),p.width=p.width||Le.width,p.height=je.getMax(p.height||Le.height,Le.height),p.margin=p.margin||Le.actorMargin,f=je.getMax(f,p.height),r.get(p.name)&&(u+=p.width/2),p.x=l+u,p.starty=nt.getVerticalPos(),nt.insert(p.x,i,p.x+p.width,p.height),l+=p.width+u,p.box&&(p.box.width=l+m.margin-p.box.x),u=p.margin,h=p.box,nt.models.addActor(p)}h&&!s&&nt.models.addBox(h),nt.bumpVerticalPos(f)},"addActorRenderingData"),LO=o(async function(t,e,r,n){if(n){let i=0;nt.bumpVerticalPos(Le.boxMargin*2);for(let a of r){let s=e.get(a);s.stopy||(s.stopy=nt.getVerticalPos());let l=await ui.drawActor(t,s,Le,!0);i=je.getMax(i,l)}nt.bumpVerticalPos(i+Le.boxMargin)}else for(let i of r){let a=e.get(i);await ui.drawActor(t,a,Le,!1)}},"drawActors"),cde=o(function(t,e,r,n){let i=0,a=0;for(let s of r){let l=e.get(s),u=VHe(l),h=ui.drawPopup(t,l,u,Le,Le.forceMenus,n);h.height>i&&(i=h.height),h.width+l.x>a&&(a=h.width+l.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),ude=o(function(t){Gn(Le,t),t.fontFamily&&(Le.actorFontFamily=Le.noteFontFamily=Le.messageFontFamily=t.fontFamily),t.fontSize&&(Le.actorFontSize=Le.noteFontSize=Le.messageFontSize=t.fontSize),t.fontWeight&&(Le.actorFontWeight=Le.noteFontWeight=Le.messageFontWeight=t.fontWeight)},"setConf"),TE=o(function(t){return nt.activations.filter(function(e){return e.actor===t})},"actorActivations"),lde=o(function(t,e){let r=e.get(t),n=TE(t),i=n.reduce(function(s,l){return je.getMin(s,l.startx)},r.x+r.width/2-1),a=n.reduce(function(s,l){return je.getMax(s,l.stopx)},r.x+r.width/2+1);return[i,a]},"activationBounds");o(zc,"adjustLoopHeightForWrap");o(zHe,"adjustCreatedDestroyedData");GHe=o(async function(t,e,r,n){let{securityLevel:i,sequence:a}=de();Le=a;let s;i==="sandbox"&&(s=ze("#i"+e));let l=i==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body"),u=i==="sandbox"?s.nodes()[0].contentDocument:document;nt.init(),Y.debug(n.db);let h=i==="sandbox"?l.select(`[id="${e}"]`):ze(`[id="${e}"]`),f=n.db.getActors(),d=n.db.getCreatedActors(),p=n.db.getDestroyedActors(),m=n.db.getBoxes(),g=n.db.getActorKeys(),y=n.db.getMessages(),v=n.db.getDiagramTitle(),x=n.db.hasAtLeastOneBox(),b=n.db.hasAtLeastOneBoxWithTitle(),w=await $He(f,y,n);if(Le.height=await UHe(f,w,m),ui.insertComputerIcon(h),ui.insertDatabaseIcon(h),ui.insertClockIcon(h),x&&(nt.bumpVerticalPos(Le.boxMargin),b&&nt.bumpVerticalPos(m[0].textMaxHeight)),Le.hideUnusedParticipants===!0){let F=new Set;y.forEach(B=>{F.add(B.from),F.add(B.to)}),g=g.filter(B=>F.has(B))}FHe(h,f,d,g,0,y,!1);let _=await YHe(y,f,w,n);ui.insertArrowHead(h),ui.insertArrowCrossHead(h),ui.insertArrowFilledHead(h),ui.insertSequenceNumber(h);function T(F,B){let $=nt.endActivation(F);$.starty+18>B&&($.starty=B-6,B+=12),ui.drawActivation(h,$,B,Le,TE(F.from).length),nt.insert($.startx,B-10,$.stopx,B)}o(T,"activeEnd");let E=1,L=1,C=[],A=[],I=0;for(let F of y){let B,$,z;switch(F.type){case n.db.LINETYPE.NOTE:nt.resetVerticalPos(),$=F.noteModel,await OHe(h,$);break;case n.db.LINETYPE.ACTIVE_START:nt.newActivation(F,h,f);break;case n.db.LINETYPE.ACTIVE_END:T(F,nt.getVerticalPos());break;case n.db.LINETYPE.LOOP_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.LOOP_END:B=nt.endLoop(),await ui.drawLoop(h,B,"loop",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.RECT_START:zc(_,F,Le.boxMargin,Le.boxMargin,W=>nt.newLoop(void 0,W.message));break;case n.db.LINETYPE.RECT_END:B=nt.endLoop(),A.push(B),nt.models.addLoop(B),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos());break;case n.db.LINETYPE.OPT_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.OPT_END:B=nt.endLoop(),await ui.drawLoop(h,B,"opt",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.ALT_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.ALT_ELSE:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.ALT_END:B=nt.endLoop(),await ui.drawLoop(h,B,"alt",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W)),nt.saveVerticalPos();break;case n.db.LINETYPE.PAR_AND:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.PAR_END:B=nt.endLoop(),await ui.drawLoop(h,B,"par",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.AUTONUMBER:E=F.message.start||E,L=F.message.step||L,F.message.visible?n.db.enableSequenceNumbers():n.db.disableSequenceNumbers();break;case n.db.LINETYPE.CRITICAL_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.CRITICAL_OPTION:zc(_,F,Le.boxMargin+Le.boxTextMargin,Le.boxMargin,W=>nt.addSectionToLoop(W));break;case n.db.LINETYPE.CRITICAL_END:B=nt.endLoop(),await ui.drawLoop(h,B,"critical",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;case n.db.LINETYPE.BREAK_START:zc(_,F,Le.boxMargin,Le.boxMargin+Le.boxTextMargin,W=>nt.newLoop(W));break;case n.db.LINETYPE.BREAK_END:B=nt.endLoop(),await ui.drawLoop(h,B,"break",Le),nt.bumpVerticalPos(B.stopy-nt.getVerticalPos()),nt.models.addLoop(B);break;default:try{z=F.msgModel,z.starty=nt.getVerticalPos(),z.sequenceIndex=E,z.sequenceVisible=n.db.showSequenceNumbers();let W=await PHe(h,z);zHe(F,z,W,I,f,d,p),C.push({messageModel:z,lineStartY:W}),nt.models.addMessage(z)}catch(W){Y.error("error while drawing message",W)}}[n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT,n.db.LINETYPE.BIDIRECTIONAL_SOLID,n.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(F.type)&&(E=E+L),I++}Y.debug("createdActors",d),Y.debug("destroyedActors",p),await LO(h,f,g,!1);for(let F of C)await BHe(h,F.messageModel,F.lineStartY,n);Le.mirrorActors&&await LO(h,f,g,!0),A.forEach(F=>ui.drawBackgroundRect(h,F)),CO(h,f,g,Le);for(let F of nt.models.boxes)F.height=nt.getVerticalPos()-F.y,nt.insert(F.x,F.y,F.x+F.width,F.height),F.startx=F.x,F.starty=F.y,F.stopx=F.startx+F.width,F.stopy=F.starty+F.height,F.stroke="rgb(0,0,0, 0.5)",ui.drawBox(h,F,Le);x&&nt.bumpVerticalPos(Le.boxMargin);let D=cde(h,f,g,u),{bounds:k}=nt.getBounds();k.startx===void 0&&(k.startx=0),k.starty===void 0&&(k.starty=0),k.stopx===void 0&&(k.stopx=0),k.stopy===void 0&&(k.stopy=0);let R=k.stopy-k.starty;R2,d=o(y=>l?-y:y,"adjustValue");t.from===t.to?h=u:(t.activate&&!f&&(h+=d(Le.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(h+=d(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(u-=d(3)));let p=[n,i,a,s],m=Math.abs(u-h);t.wrap&&t.message&&(t.message=Ut.wrapLabel(t.message,je.getMax(m+2*Le.wrapPadding,Le.width),S0(Le)));let g=Ut.calculateTextDimensions(t.message,S0(Le));return{width:je.getMax(t.wrap?0:g.width+2*Le.wrapPadding,m+2*Le.wrapPadding,Le.width),height:0,startx:u,stopx:h,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,p),toBounds:Math.max.apply(null,p)}},"buildMessageModel"),YHe=o(async function(t,e,r,n){let i={},a=[],s,l,u;for(let h of t){switch(h.id=Ut.random({length:10}),h.type){case n.db.LINETYPE.LOOP_START:case n.db.LINETYPE.ALT_START:case n.db.LINETYPE.OPT_START:case n.db.LINETYPE.PAR_START:case n.db.LINETYPE.PAR_OVER_START:case n.db.LINETYPE.CRITICAL_START:case n.db.LINETYPE.BREAK_START:a.push({id:h.id,msg:h.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case n.db.LINETYPE.ALT_ELSE:case n.db.LINETYPE.PAR_AND:case n.db.LINETYPE.CRITICAL_OPTION:h.message&&(s=a.pop(),i[s.id]=s,i[h.id]=s,a.push(s));break;case n.db.LINETYPE.LOOP_END:case n.db.LINETYPE.ALT_END:case n.db.LINETYPE.OPT_END:case n.db.LINETYPE.PAR_END:case n.db.LINETYPE.CRITICAL_END:case n.db.LINETYPE.BREAK_END:s=a.pop(),i[s.id]=s;break;case n.db.LINETYPE.ACTIVE_START:{let d=e.get(h.from?h.from:h.to.actor),p=TE(h.from?h.from:h.to.actor).length,m=d.x+d.width/2+(p-1)*Le.activationWidth/2,g={startx:m,stopx:m+Le.activationWidth,actor:h.from,enabled:!0};nt.activations.push(g)}break;case n.db.LINETYPE.ACTIVE_END:{let d=nt.activations.map(p=>p.actor).lastIndexOf(h.from);nt.activations.splice(d,1).splice(0,1)}break}h.placement!==void 0?(l=await HHe(h,e,n),h.noteModel=l,a.forEach(d=>{s=d,s.from=je.getMin(s.from,l.startx),s.to=je.getMax(s.to,l.startx+l.width),s.width=je.getMax(s.width,Math.abs(s.from-s.to))-Le.labelBoxWidth})):(u=WHe(h,e,n),h.msgModel=u,u.startx&&u.stopx&&a.length>0&&a.forEach(d=>{if(s=d,u.startx===u.stopx){let p=e.get(h.from),m=e.get(h.to);s.from=je.getMin(p.x-u.width/2,p.x-p.width/2,s.from),s.to=je.getMax(m.x+u.width/2,m.x+p.width/2,s.to),s.width=je.getMax(s.width,Math.abs(s.to-s.from))-Le.labelBoxWidth}else s.from=je.getMin(u.startx,s.from),s.to=je.getMax(u.stopx,s.to),s.width=je.getMax(s.width,u.width)-Le.labelBoxWidth}))}return nt.activations=[],Y.debug("Loop type widths:",i),i},"calculateLoopBounds"),hde={bounds:nt,drawActors:LO,drawActorsPopup:cde,setConf:ude,draw:GHe}});var dde={};vr(dde,{diagram:()=>qHe});var qHe,pde=M(()=>{"use strict";Hfe();Zfe();ede();fde();qHe={parser:Ufe,db:kO,renderer:hde,styles:Jfe,init:o(({wrap:t})=>{kO.setWrap(t)},"init")}});var DO,kE,NO=M(()=>{"use strict";DO=function(){var t=o(function(X,fe,he,ge){for(he=he||{},ge=X.length;ge--;he[X[ge]]=fe);return he},"o"),e=[1,18],r=[1,19],n=[1,20],i=[1,41],a=[1,42],s=[1,26],l=[1,24],u=[1,25],h=[1,32],f=[1,33],d=[1,34],p=[1,45],m=[1,35],g=[1,36],y=[1,37],v=[1,38],x=[1,27],b=[1,28],w=[1,29],_=[1,30],T=[1,31],E=[1,44],L=[1,46],C=[1,43],A=[1,47],I=[1,9],D=[1,8,9],k=[1,58],R=[1,59],S=[1,60],O=[1,61],N=[1,62],P=[1,63],F=[1,64],B=[1,8,9,41],$=[1,76],z=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],W=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],j=[13,58,84,99,101,102],K=[13,58,71,72,84,99,101,102],ie=[13,58,66,67,68,69,70,84,99,101,102],Q=[1,98],ee=[1,115],J=[1,107],H=[1,113],q=[1,108],Z=[1,109],ae=[1,110],ue=[1,111],ce=[1,112],te=[1,114],De=[22,58,59,80,84,85,86,87,88,89],oe=[1,8,9,39,41,44],ke=[1,8,9,22],Fe=[1,143],Be=[1,8,9,59],Ve=[1,8,9,22,58,59,80,84,85,86,87,88,89],Ge={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:o(function(fe,he,ge,ne,ye,U,Te){var se=U.length-1;switch(ye){case 8:this.$=U[se-1];break;case 9:case 12:case 14:this.$=U[se];break;case 10:case 13:this.$=U[se-2]+"."+U[se];break;case 11:case 15:this.$=U[se-1]+U[se];break;case 16:case 17:this.$=U[se-1]+"~"+U[se]+"~";break;case 18:ne.addRelation(U[se]);break;case 19:U[se-1].title=ne.cleanupLabel(U[se]),ne.addRelation(U[se-1]);break;case 30:this.$=U[se].trim(),ne.setAccTitle(this.$);break;case 31:case 32:this.$=U[se].trim(),ne.setAccDescription(this.$);break;case 33:ne.addClassesToNamespace(U[se-3],U[se-1]);break;case 34:ne.addClassesToNamespace(U[se-4],U[se-1]);break;case 35:this.$=U[se],ne.addNamespace(U[se]);break;case 36:this.$=[U[se]];break;case 37:this.$=[U[se-1]];break;case 38:U[se].unshift(U[se-2]),this.$=U[se];break;case 40:ne.setCssClass(U[se-2],U[se]);break;case 41:ne.addMembers(U[se-3],U[se-1]);break;case 42:ne.setCssClass(U[se-5],U[se-3]),ne.addMembers(U[se-5],U[se-1]);break;case 43:this.$=U[se],ne.addClass(U[se]);break;case 44:this.$=U[se-1],ne.addClass(U[se-1]),ne.setClassLabel(U[se-1],U[se]);break;case 45:ne.addAnnotation(U[se],U[se-2]);break;case 46:case 59:this.$=[U[se]];break;case 47:U[se].push(U[se-1]),this.$=U[se];break;case 48:break;case 49:ne.addMember(U[se-1],ne.cleanupLabel(U[se]));break;case 50:break;case 51:break;case 52:this.$={id1:U[se-2],id2:U[se],relation:U[se-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:U[se-3],id2:U[se],relation:U[se-1],relationTitle1:U[se-2],relationTitle2:"none"};break;case 54:this.$={id1:U[se-3],id2:U[se],relation:U[se-2],relationTitle1:"none",relationTitle2:U[se-1]};break;case 55:this.$={id1:U[se-4],id2:U[se],relation:U[se-2],relationTitle1:U[se-3],relationTitle2:U[se-1]};break;case 56:ne.addNote(U[se],U[se-1]);break;case 57:ne.addNote(U[se]);break;case 58:this.$=U[se-2],ne.defineClass(U[se-1],U[se]);break;case 60:this.$=U[se-2].concat([U[se]]);break;case 61:ne.setDirection("TB");break;case 62:ne.setDirection("BT");break;case 63:ne.setDirection("RL");break;case 64:ne.setDirection("LR");break;case 65:this.$={type1:U[se-2],type2:U[se],lineType:U[se-1]};break;case 66:this.$={type1:"none",type2:U[se],lineType:U[se-1]};break;case 67:this.$={type1:U[se-1],type2:"none",lineType:U[se]};break;case 68:this.$={type1:"none",type2:"none",lineType:U[se]};break;case 69:this.$=ne.relationType.AGGREGATION;break;case 70:this.$=ne.relationType.EXTENSION;break;case 71:this.$=ne.relationType.COMPOSITION;break;case 72:this.$=ne.relationType.DEPENDENCY;break;case 73:this.$=ne.relationType.LOLLIPOP;break;case 74:this.$=ne.lineType.LINE;break;case 75:this.$=ne.lineType.DOTTED_LINE;break;case 76:case 82:this.$=U[se-2],ne.setClickEvent(U[se-1],U[se]);break;case 77:case 83:this.$=U[se-3],ne.setClickEvent(U[se-2],U[se-1]),ne.setTooltip(U[se-2],U[se]);break;case 78:this.$=U[se-2],ne.setLink(U[se-1],U[se]);break;case 79:this.$=U[se-3],ne.setLink(U[se-2],U[se-1],U[se]);break;case 80:this.$=U[se-3],ne.setLink(U[se-2],U[se-1]),ne.setTooltip(U[se-2],U[se]);break;case 81:this.$=U[se-4],ne.setLink(U[se-3],U[se-2],U[se]),ne.setTooltip(U[se-3],U[se-1]);break;case 84:this.$=U[se-3],ne.setClickEvent(U[se-2],U[se-1],U[se]);break;case 85:this.$=U[se-4],ne.setClickEvent(U[se-3],U[se-2],U[se-1]),ne.setTooltip(U[se-3],U[se]);break;case 86:this.$=U[se-3],ne.setLink(U[se-2],U[se]);break;case 87:this.$=U[se-4],ne.setLink(U[se-3],U[se-1],U[se]);break;case 88:this.$=U[se-4],ne.setLink(U[se-3],U[se-1]),ne.setTooltip(U[se-3],U[se]);break;case 89:this.$=U[se-5],ne.setLink(U[se-4],U[se-2],U[se]),ne.setTooltip(U[se-4],U[se-1]);break;case 90:this.$=U[se-2],ne.setCssStyle(U[se-1],U[se]);break;case 91:ne.setCssClass(U[se-1],U[se]);break;case 92:this.$=[U[se]];break;case 93:U[se-2].push(U[se]),this.$=U[se-2];break;case 95:this.$=U[se-1]+U[se];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(I,[2,5],{8:[1,48]}),{8:[1,49]},t(D,[2,18],{22:[1,50]}),t(D,[2,20]),t(D,[2,21]),t(D,[2,22]),t(D,[2,23]),t(D,[2,24]),t(D,[2,25]),t(D,[2,26]),t(D,[2,27]),t(D,[2,28]),t(D,[2,29]),{34:[1,51]},{36:[1,52]},t(D,[2,32]),t(D,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:k,67:R,68:S,69:O,70:N,71:P,72:F}),{39:[1,65]},t(B,[2,39],{39:[1,67],44:[1,66]}),t(D,[2,50]),t(D,[2,51]),{16:68,58:p,84:E,99:L,101:C},{16:39,18:69,19:40,58:p,84:E,99:L,101:C,102:A},{16:39,18:70,19:40,58:p,84:E,99:L,101:C,102:A},{16:39,18:71,19:40,58:p,84:E,99:L,101:C,102:A},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:p,84:E,99:L,101:C,102:A},{13:$,53:75},{56:77,58:[1,78]},t(D,[2,61]),t(D,[2,62]),t(D,[2,63]),t(D,[2,64]),t(z,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:p,84:E,99:L,101:C,102:A}),t(z,[2,14],{20:[1,82]}),{15:83,16:84,58:p,84:E,99:L,101:C},{16:39,18:85,19:40,58:p,84:E,99:L,101:C,102:A},t(W,[2,118]),t(W,[2,119]),t(W,[2,120]),t(W,[2,121]),t([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),t(I,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:e,35:r,37:n,42:i,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:e,35:r,37:n,38:22,42:i,43:23,46:a,47:s,49:l,50:u,52:h,54:f,55:d,58:p,60:m,61:g,62:y,63:v,73:x,74:b,76:w,80:_,81:T,84:E,99:L,101:C,102:A},t(D,[2,19]),t(D,[2,30]),t(D,[2,31]),{13:[1,89],16:39,18:88,19:40,58:p,84:E,99:L,101:C,102:A},{51:90,64:56,65:57,66:k,67:R,68:S,69:O,70:N,71:P,72:F},t(D,[2,49]),{65:91,71:P,72:F},t(j,[2,68],{64:92,66:k,67:R,68:S,69:O,70:N}),t(K,[2,69]),t(K,[2,70]),t(K,[2,71]),t(K,[2,72]),t(K,[2,73]),t(ie,[2,74]),t(ie,[2,75]),{8:[1,94],24:95,40:93,43:23,46:a},{16:96,58:p,84:E,99:L,101:C},{45:97,49:Q},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:ee,57:104,58:J,80:H,82:105,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},{58:[1,116]},{13:$,53:117},t(D,[2,57]),t(D,[2,123]),{22:ee,57:118,58:J,59:[1,119],80:H,82:105,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},t(De,[2,59]),{16:39,18:120,19:40,58:p,84:E,99:L,101:C,102:A},t(z,[2,15]),t(z,[2,16]),t(z,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:p,84:E,99:L,101:C},t(oe,[2,43],{11:123,12:[1,124]}),t(I,[2,7]),{9:[1,125]},t(ke,[2,52]),{16:39,18:126,19:40,58:p,84:E,99:L,101:C,102:A},{13:[1,128],16:39,18:127,19:40,58:p,84:E,99:L,101:C,102:A},t(j,[2,67],{64:129,66:k,67:R,68:S,69:O,70:N}),t(j,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:a},{8:[1,132],41:[2,36]},t(B,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:Q},{16:39,18:136,19:40,58:p,84:E,99:L,101:C,102:A},t(D,[2,76],{13:[1,137]}),t(D,[2,78],{13:[1,139],75:[1,138]}),t(D,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},t(D,[2,90],{59:Fe}),t(Be,[2,92],{83:144,22:ee,58:J,80:H,84:q,85:Z,86:ae,87:ue,88:ce,89:te}),t(Ve,[2,94]),t(Ve,[2,96]),t(Ve,[2,97]),t(Ve,[2,98]),t(Ve,[2,99]),t(Ve,[2,100]),t(Ve,[2,101]),t(Ve,[2,102]),t(Ve,[2,103]),t(Ve,[2,104]),t(D,[2,91]),t(D,[2,56]),t(D,[2,58],{59:Fe}),{58:[1,145]},t(z,[2,13]),{15:146,16:84,58:p,84:E,99:L,101:C},{39:[2,11]},t(oe,[2,44]),{13:[1,147]},{1:[2,4]},t(ke,[2,54]),t(ke,[2,53]),{16:39,18:148,19:40,58:p,84:E,99:L,101:C,102:A},t(j,[2,65]),t(D,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:a},{45:151,49:Q},t(B,[2,41]),{41:[2,47]},t(D,[2,45]),t(D,[2,77]),t(D,[2,79]),t(D,[2,80],{75:[1,152]}),t(D,[2,83]),t(D,[2,84],{13:[1,153]}),t(D,[2,86],{13:[1,155],75:[1,154]}),{22:ee,58:J,80:H,82:156,83:106,84:q,85:Z,86:ae,87:ue,88:ce,89:te},t(Ve,[2,95]),t(De,[2,60]),{39:[2,10]},{14:[1,157]},t(ke,[2,55]),t(D,[2,34]),{41:[2,38]},{41:[1,158]},t(D,[2,81]),t(D,[2,85]),t(D,[2,87]),t(D,[2,88],{75:[1,159]}),t(Be,[2,93],{83:144,22:ee,58:J,80:H,84:q,85:Z,86:ae,87:ue,88:ce,89:te}),t(oe,[2,8]),t(B,[2,42]),t(D,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:o(function(fe,he){if(he.recoverable)this.trace(fe);else{var ge=new Error(fe);throw ge.hash=he,ge}},"parseError"),parse:o(function(fe){var he=this,ge=[0],ne=[],ye=[null],U=[],Te=this.table,se="",Ee=0,Ae=0,Pe=0,Me=2,me=1,We=U.slice.call(arguments,1),Re=Object.create(this.lexer),tt={yy:{}};for(var gt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,gt)&&(tt.yy[gt]=this.yy[gt]);Re.setInput(fe,tt.yy),tt.yy.lexer=Re,tt.yy.parser=this,typeof Re.yylloc>"u"&&(Re.yylloc={});var Et=Re.yylloc;U.push(Et);var vt=Re.options&&Re.options.ranges;typeof tt.yy.parseError=="function"?this.parseError=tt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ye(or){ge.length=ge.length-2*or,ye.length=ye.length-or,U.length=U.length-or}o(Ye,"popStack");function Tt(){var or;return or=ne.pop()||Re.lex()||me,typeof or!="number"&&(or instanceof Array&&(ne=or,or=ne.pop()),or=he.symbols_[or]||or),or}o(Tt,"lex");for(var $e,rt,ft,kt,er,dt,Xe={},ct,Lt,Rt,zt;;){if(ft=ge[ge.length-1],this.defaultActions[ft]?kt=this.defaultActions[ft]:(($e===null||typeof $e>"u")&&($e=Tt()),kt=Te[ft]&&Te[ft][$e]),typeof kt>"u"||!kt.length||!kt[0]){var Xn="";zt=[];for(ct in Te[ft])this.terminals_[ct]&&ct>Me&&zt.push("'"+this.terminals_[ct]+"'");Re.showPosition?Xn="Parse error on line "+(Ee+1)+`: +`+Re.showPosition()+` +Expecting `+zt.join(", ")+", got '"+(this.terminals_[$e]||$e)+"'":Xn="Parse error on line "+(Ee+1)+": Unexpected "+($e==me?"end of input":"'"+(this.terminals_[$e]||$e)+"'"),this.parseError(Xn,{text:Re.match,token:this.terminals_[$e]||$e,line:Re.yylineno,loc:Et,expected:zt})}if(kt[0]instanceof Array&&kt.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ft+", token: "+$e);switch(kt[0]){case 1:ge.push($e),ye.push(Re.yytext),U.push(Re.yylloc),ge.push(kt[1]),$e=null,rt?($e=rt,rt=null):(Ae=Re.yyleng,se=Re.yytext,Ee=Re.yylineno,Et=Re.yylloc,Pe>0&&Pe--);break;case 2:if(Lt=this.productions_[kt[1]][1],Xe.$=ye[ye.length-Lt],Xe._$={first_line:U[U.length-(Lt||1)].first_line,last_line:U[U.length-1].last_line,first_column:U[U.length-(Lt||1)].first_column,last_column:U[U.length-1].last_column},vt&&(Xe._$.range=[U[U.length-(Lt||1)].range[0],U[U.length-1].range[1]]),dt=this.performAction.apply(Xe,[se,Ae,Ee,tt.yy,kt[1],ye,U].concat(We)),typeof dt<"u")return dt;Lt&&(ge=ge.slice(0,-1*Lt*2),ye=ye.slice(0,-1*Lt),U=U.slice(0,-1*Lt)),ge.push(this.productions_[kt[1]][0]),ye.push(Xe.$),U.push(Xe._$),Rt=Te[ge[ge.length-2]][ge[ge.length-1]],ge.push(Rt);break;case 3:return!0}}return!0},"parse")},He=function(){var X={EOF:1,parseError:o(function(he,ge){if(this.yy.parser)this.yy.parser.parseError(he,ge);else throw new Error(he)},"parseError"),setInput:o(function(fe,he){return this.yy=he||this.yy||{},this._input=fe,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var fe=this._input[0];this.yytext+=fe,this.yyleng++,this.offset++,this.match+=fe,this.matched+=fe;var he=fe.match(/(?:\r\n?|\n).*/g);return he?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),fe},"input"),unput:o(function(fe){var he=fe.length,ge=fe.split(/(?:\r\n?|\n)/g);this._input=fe+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-he),this.offset-=he;var ne=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),ge.length-1&&(this.yylineno-=ge.length-1);var ye=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:ge?(ge.length===ne.length?this.yylloc.first_column:0)+ne[ne.length-ge.length].length-ge[0].length:this.yylloc.first_column-he},this.options.ranges&&(this.yylloc.range=[ye[0],ye[0]+this.yyleng-he]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(fe){this.unput(this.match.slice(fe))},"less"),pastInput:o(function(){var fe=this.matched.substr(0,this.matched.length-this.match.length);return(fe.length>20?"...":"")+fe.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var fe=this.match;return fe.length<20&&(fe+=this._input.substr(0,20-fe.length)),(fe.substr(0,20)+(fe.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var fe=this.pastInput(),he=new Array(fe.length+1).join("-");return fe+this.upcomingInput()+` +`+he+"^"},"showPosition"),test_match:o(function(fe,he){var ge,ne,ye;if(this.options.backtrack_lexer&&(ye={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(ye.yylloc.range=this.yylloc.range.slice(0))),ne=fe[0].match(/(?:\r\n?|\n).*/g),ne&&(this.yylineno+=ne.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:ne?ne[ne.length-1].length-ne[ne.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+fe[0].length},this.yytext+=fe[0],this.match+=fe[0],this.matches=fe,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(fe[0].length),this.matched+=fe[0],ge=this.performAction.call(this,this.yy,this,he,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),ge)return ge;if(this._backtrack){for(var U in ye)this[U]=ye[U];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var fe,he,ge,ne;this._more||(this.yytext="",this.match="");for(var ye=this._currentRules(),U=0;Uhe[0].length)){if(he=ge,ne=U,this.options.backtrack_lexer){if(fe=this.test_match(ge,ye[U]),fe!==!1)return fe;if(this._backtrack){he=!1;continue}else return!1}else if(!this.options.flex)break}return he?(fe=this.test_match(he,ye[ne]),fe!==!1?fe:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var he=this.next();return he||this.lex()},"lex"),begin:o(function(he){this.conditionStack.push(he)},"begin"),popState:o(function(){var he=this.conditionStack.length-1;return he>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(he){return he=this.conditionStack.length-1-Math.abs(he||0),he>=0?this.conditionStack[he]:"INITIAL"},"topState"),pushState:o(function(he){this.begin(he)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(he,ge,ne,ye){var U=ye;switch(ne){case 0:return 60;case 1:return 61;case 2:return 62;case 3:return 63;case 4:break;case 5:break;case 6:return this.begin("acc_title"),33;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),35;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 8;case 14:break;case 15:return 7;case 16:return 7;case 17:return"EDGE_STATE";case 18:this.begin("callback_name");break;case 19:this.popState();break;case 20:this.popState(),this.begin("callback_args");break;case 21:return 77;case 22:this.popState();break;case 23:return 78;case 24:this.popState();break;case 25:return"STR";case 26:this.begin("string");break;case 27:return 80;case 28:return 55;case 29:return this.begin("namespace"),42;break;case 30:return this.popState(),8;break;case 31:break;case 32:return this.begin("namespace-body"),39;break;case 33:return this.popState(),41;break;case 34:return"EOF_IN_STRUCT";case 35:return 8;case 36:break;case 37:return"EDGE_STATE";case 38:return this.begin("class"),46;break;case 39:return this.popState(),8;break;case 40:break;case 41:return this.popState(),this.popState(),41;break;case 42:return this.begin("class-body"),39;break;case 43:return this.popState(),41;break;case 44:return"EOF_IN_STRUCT";case 45:return"EDGE_STATE";case 46:return"OPEN_IN_STRUCT";case 47:break;case 48:return"MEMBER";case 49:return 81;case 50:return 73;case 51:return 74;case 52:return 76;case 53:return 52;case 54:return 54;case 55:return 47;case 56:return 48;case 57:return 79;case 58:this.popState();break;case 59:return"GENERICTYPE";case 60:this.begin("generic");break;case 61:this.popState();break;case 62:return"BQUOTE_STR";case 63:this.begin("bqstring");break;case 64:return 75;case 65:return 75;case 66:return 75;case 67:return 75;case 68:return 67;case 69:return 67;case 70:return 69;case 71:return 69;case 72:return 68;case 73:return 66;case 74:return 70;case 75:return 71;case 76:return 72;case 77:return 22;case 78:return 44;case 79:return 99;case 80:return 17;case 81:return"PLUS";case 82:return 85;case 83:return 59;case 84:return 88;case 85:return 88;case 86:return 89;case 87:return"EQUALS";case 88:return"EQUALS";case 89:return 58;case 90:return 12;case 91:return 14;case 92:return"PUNCTUATION";case 93:return 84;case 94:return 101;case 95:return 87;case 96:return 87;case 97:return 9}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:\[\*\])/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:["])/,/^(?:[^"]*)/,/^(?:["])/,/^(?:style\b)/,/^(?:classDef\b)/,/^(?:namespace\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:\[\*\])/,/^(?:class\b)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:[}])/,/^(?:[{])/,/^(?:[}])/,/^(?:$)/,/^(?:\[\*\])/,/^(?:[{])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};return X}();Ge.lexer=He;function xe(){this.yy={}}return o(xe,"Parser"),xe.prototype=Ge,Ge.Parser=xe,new xe}();DO.parser=DO;kE=DO});var yde,Tx,vde=M(()=>{"use strict";Vt();fr();yde=["#","+","~","-",""],Tx=class{static{o(this,"ClassMember")}constructor(e,r){this.memberType=r,this.visibility="",this.classifier="",this.text="";let n=Tr(e,de());this.parseMember(n)}getDisplayDetails(){let e=this.visibility+ou(this.id);this.memberType==="method"&&(e+=`(${ou(this.parameters.trim())})`,this.returnType&&(e+=" : "+ou(this.returnType))),e=e.trim();let r=this.parseClassifier();return{displayText:e,cssStyle:r}}parseMember(e){let r="";if(this.memberType==="method"){let a=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(e);if(a){let s=a[1]?a[1].trim():"";if(yde.includes(s)&&(this.visibility=s),this.id=a[2],this.parameters=a[3]?a[3].trim():"",r=a[4]?a[4].trim():"",this.returnType=a[5]?a[5].trim():"",r===""){let l=this.returnType.substring(this.returnType.length-1);/[$*]/.exec(l)&&(r=l,this.returnType=this.returnType.substring(0,this.returnType.length-1))}}}else{let i=e.length,a=e.substring(0,1),s=e.substring(i-1);yde.includes(a)&&(this.visibility=a),/[$*]/.exec(s)&&(r=s),this.id=e.substring(this.visibility===""?0:1,r===""?i:i-1)}this.classifier=r,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();let n=`${this.visibility?"\\"+this.visibility:""}${ou(this.id)}${this.memberType==="method"?`(${ou(this.parameters)})${this.returnType?" : "+ou(this.returnType):""}`:""}`;this.text=n.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});function Tde(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}var EE,SE,Ln,xde,kx,Gg,bde,$l,RO,Ex,C0,A0,QHe,zg,wde,kde,ZHe,JHe,eWe,tWe,rWe,nWe,iWe,Ede,aWe,sWe,oWe,MO,lWe,cWe,uWe,hWe,fWe,dWe,pWe,mWe,mf,Sde,IO,Cde,gWe,yWe,vWe,xWe,bWe,wWe,TWe,$g,OO=M(()=>{"use strict";mr();ht();Vt();fr();hr();ki();vde();EE="classId-",SE=[],Ln=new Map,xde=new Map,kx=[],Gg=[],bde=0,$l=new Map,RO=0,Ex=[],C0=o(t=>je.sanitizeText(t,de()),"sanitizeText"),A0=o(function(t){let e=je.sanitizeText(t,de()),r="",n=e;if(e.indexOf("~")>0){let i=e.split("~");n=C0(i[0]),r=C0(i[1])}return{className:n,type:r}},"splitClassNameAndType"),QHe=o(function(t,e){let r=je.sanitizeText(t,de());e&&(e=C0(e));let{className:n}=A0(r);Ln.get(n).label=e,Ln.get(n).text=`${e}${Ln.get(n).type?`<${Ln.get(n).type}>`:""}`},"setClassLabel"),zg=o(function(t){let e=je.sanitizeText(t,de()),{className:r,type:n}=A0(e);if(Ln.has(r))return;let i=je.sanitizeText(r,de());Ln.set(i,{id:i,type:n,label:i,text:`${i}${n?`<${n}>`:""}`,shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:EE+i+"-"+bde}),bde++},"addClass"),wde=o(function(t,e){let r={id:`interface${Gg.length}`,label:t,classId:e};Gg.push(r)},"addInterface"),kde=o(function(t){let e=je.sanitizeText(t,de());if(Ln.has(e))return Ln.get(e).domId;throw new Error("Class not found: "+e)},"lookUpDomId"),ZHe=o(function(){SE=[],Ln=new Map,kx=[],Gg=[],Ex=[],Ex.push(Sde),$l=new Map,RO=0,IO="TB",_r()},"clear"),JHe=o(function(t){return Ln.get(t)},"getClass"),eWe=o(function(){return Ln},"getClasses"),tWe=o(function(){return SE},"getRelations"),rWe=o(function(){return kx},"getNotes"),nWe=o(function(t){Y.debug("Adding relation: "+JSON.stringify(t));let e=[mf.LOLLIPOP,mf.AGGREGATION,mf.COMPOSITION,mf.DEPENDENCY,mf.EXTENSION];t.relation.type1===mf.LOLLIPOP&&!e.includes(t.relation.type2)?(zg(t.id2),wde(t.id1,t.id2),t.id1=`interface${Gg.length-1}`):t.relation.type2===mf.LOLLIPOP&&!e.includes(t.relation.type1)?(zg(t.id1),wde(t.id2,t.id1),t.id2=`interface${Gg.length-1}`):(zg(t.id1),zg(t.id2)),t.id1=A0(t.id1).className,t.id2=A0(t.id2).className,t.relationTitle1=je.sanitizeText(t.relationTitle1.trim(),de()),t.relationTitle2=je.sanitizeText(t.relationTitle2.trim(),de()),SE.push(t)},"addRelation"),iWe=o(function(t,e){let r=A0(t).className;Ln.get(r).annotations.push(e)},"addAnnotation"),Ede=o(function(t,e){zg(t);let r=A0(t).className,n=Ln.get(r);if(typeof e=="string"){let i=e.trim();i.startsWith("<<")&&i.endsWith(">>")?n.annotations.push(C0(i.substring(2,i.length-2))):i.indexOf(")")>0?n.methods.push(new Tx(i,"method")):i&&n.members.push(new Tx(i,"attribute"))}},"addMember"),aWe=o(function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach(r=>Ede(t,r)))},"addMembers"),sWe=o(function(t,e){let r={id:`note${kx.length}`,class:e,text:t};kx.push(r)},"addNote"),oWe=o(function(t){return t.startsWith(":")&&(t=t.substring(1)),C0(t.trim())},"cleanupLabel"),MO=o(function(t,e){t.split(",").forEach(function(r){let n=r;/\d/.exec(r[0])&&(n=EE+n);let i=Ln.get(n);i&&(i.cssClasses+=" "+e)})},"setCssClass"),lWe=o(function(t,e){for(let r of t){let n=xde.get(r);n===void 0&&(n={id:r,styles:[],textStyles:[]},xde.set(r,n)),e&&e.forEach(function(i){if(/color/.exec(i)){let a=i.replace("fill","bgFill");n.textStyles.push(a)}n.styles.push(i)}),Ln.forEach(i=>{i.cssClasses.includes(r)&&i.styles.push(...e.flatMap(a=>a.split(",")))})}},"defineClass"),cWe=o(function(t,e){t.split(",").forEach(function(r){e!==void 0&&(Ln.get(r).tooltip=C0(e))})},"setTooltip"),uWe=o(function(t,e){return e&&$l.has(e)?$l.get(e).classes.get(t).tooltip:Ln.get(t).tooltip},"getTooltip"),hWe=o(function(t,e,r){let n=de();t.split(",").forEach(function(i){let a=i;/\d/.exec(i[0])&&(a=EE+a);let s=Ln.get(a);s&&(s.link=Ut.formatUrl(e,n),n.securityLevel==="sandbox"?s.linkTarget="_top":typeof r=="string"?s.linkTarget=C0(r):s.linkTarget="_blank")}),MO(t,"clickable")},"setLink"),fWe=o(function(t,e,r){t.split(",").forEach(function(n){dWe(n,e,r),Ln.get(n).haveCallback=!0}),MO(t,"clickable")},"setClickEvent"),dWe=o(function(t,e,r){let n=je.sanitizeText(t,de());if(de().securityLevel!=="loose"||e===void 0)return;let a=n;if(Ln.has(a)){let s=kde(a),l=[];if(typeof r=="string"){l=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let u=0;u")),i.classed("hover",!0)}).on("mouseout",function(){e.transition().duration(500).style("opacity",0),ze(this).classed("hover",!1)})},"setupToolTips");Ex.push(Sde);IO="TB",Cde=o(()=>IO,"getDirection"),gWe=o(t=>{IO=t},"setDirection"),yWe=o(function(t){$l.has(t)||($l.set(t,{id:t,classes:new Map,children:{},domId:EE+t+"-"+RO}),RO++)},"addNamespace"),vWe=o(function(t){return $l.get(t)},"getNamespace"),xWe=o(function(){return $l},"getNamespaces"),bWe=o(function(t,e){if($l.has(t))for(let r of e){let{className:n}=A0(r);Ln.get(n).parent=t,$l.get(t).classes.set(n,Ln.get(n))}},"addClassesToNamespace"),wWe=o(function(t,e){let r=Ln.get(t);if(!(!e||!r))for(let n of e)n.includes(",")?r.styles.push(...n.split(",")):r.styles.push(n)},"setCssStyle");o(Tde,"getArrowMarker");TWe=o(()=>{let t=[],e=[],r=de();for(let i of $l.keys()){let a=$l.get(i);if(a){let s={id:a.id,label:a.id,isGroup:!0,padding:r.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:r.look};t.push(s)}}for(let i of Ln.keys()){let a=Ln.get(i);if(a){let s=a;s.parentId=a.parent,s.look=r.look,t.push(s)}}let n=0;for(let i of kx){n++;let a={id:i.id,label:i.text,isGroup:!1,shape:"note",padding:r.class.padding??6,cssStyles:["text-align: left","white-space: nowrap",`fill: ${r.themeVariables.noteBkgColor}`,`stroke: ${r.themeVariables.noteBorderColor}`],look:r.look};t.push(a);let s=Ln.get(i.class)?.id??"";if(s){let l={id:`edgeNote${n}`,start:i.id,end:s,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:r.look};e.push(l)}}for(let i of Gg){let a={id:i.id,label:i.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:r.look};t.push(a)}n=0;for(let i of SE){n++;let a={id:p5(i.id1,i.id2,{prefix:"id",counter:n}),start:i.id1,end:i.id2,type:"normal",label:i.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:Tde(i.relation.type1),arrowTypeEnd:Tde(i.relation.type2),startLabelRight:i.relationTitle1==="none"?"":i.relationTitle1,endLabelLeft:i.relationTitle2==="none"?"":i.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:i.style||"",pattern:i.relation.lineType==1?"dashed":"solid",look:r.look};e.push(a)}return{nodes:t,edges:e,other:{},config:r,direction:Cde()}},"getData"),$g={setAccTitle:Rr,getAccTitle:Pr,getAccDescription:Fr,setAccDescription:Br,getConfig:o(()=>de().class,"getConfig"),addClass:zg,bindFunctions:pWe,clear:ZHe,getClass:JHe,getClasses:eWe,getNotes:rWe,addAnnotation:iWe,addNote:sWe,getRelations:tWe,addRelation:nWe,getDirection:Cde,setDirection:gWe,addMember:Ede,addMembers:aWe,cleanupLabel:oWe,lineType:mWe,relationType:mf,setClickEvent:fWe,setCssClass:MO,defineClass:lWe,setLink:hWe,getTooltip:uWe,setTooltip:cWe,lookUpDomId:kde,setDiagramTitle:ln,getDiagramTitle:Jr,setClassLabel:QHe,addNamespace:yWe,addClassesToNamespace:bWe,getNamespace:vWe,getNamespaces:xWe,setCssStyle:wWe,getData:TWe}});var kWe,CE,PO=M(()=>{"use strict";kWe=o(t=>`g.classGroup text { + fill: ${t.nodeBorder||t.classText}; + stroke: none; + font-family: ${t.fontFamily}; + font-size: 10px; + + .title { + font-weight: bolder; + } + +} + +.nodeLabel, .edgeLabel { + color: ${t.classText}; +} +.edgeLabel .label rect { + fill: ${t.mainBkg}; +} +.label text { + fill: ${t.classText}; +} + +.labelBkg { + background: ${t.mainBkg}; +} +.edgeLabel .label span { + background: ${t.mainBkg}; +} + +.classTitle { + font-weight: bolder; +} +.node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + +.divider { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +g.clickable { + cursor: pointer; +} + +g.classGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.classGroup line { + stroke: ${t.nodeBorder}; + stroke-width: 1; +} + +.classLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.classLabel .label { + fill: ${t.nodeBorder}; + font-size: 10px; +} + +.relation { + stroke: ${t.lineColor}; + stroke-width: 1; + fill: none; +} + +.dashed-line{ + stroke-dasharray: 3; +} + +.dotted-line{ + stroke-dasharray: 1 2; +} + +#compositionStart, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#compositionEnd, .composition { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#dependencyStart, .dependency { + fill: ${t.lineColor} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionStart, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#extensionEnd, .extension { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationStart, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#aggregationEnd, .aggregation { + fill: transparent !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopStart, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +#lollipopEnd, .lollipop { + fill: ${t.mainBkg} !important; + stroke: ${t.lineColor} !important; + stroke-width: 1; +} + +.edgeTerminals { + font-size: 11px; + line-height: initial; +} + +.classTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),CE=kWe});var EWe,SWe,CWe,AE,BO=M(()=>{"use strict";Vt();ht();j5();Fv();uT();hr();EWe=o((t,e="TB")=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),SWe=o(function(t,e){return e.db.getClasses()},"getClasses"),CWe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing class diagram (v3)",e);let{securityLevel:i,state:a,layout:s}=de(),l=n.db.getData(),u=pm(e,i);l.type=n.type,l.layoutAlgorithm=cT(s),l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["aggregation","extension","composition","dependency","lollipop"],l.diagramId=e,await Fm(l,u);let h=8;Ut.insertTitle(u,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),zm(u,h,"classDiagram",a?.useMaxWidth??!0)},"draw"),AE={getClasses:SWe,draw:CWe,getDir:EWe}});var Ade={};vr(Ade,{diagram:()=>AWe});var AWe,_de=M(()=>{"use strict";NO();OO();PO();BO();AWe={parser:kE,db:$g,renderer:AE,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,$g.clear()},"init")}});var Nde={};vr(Nde,{diagram:()=>NWe});var NWe,Rde=M(()=>{"use strict";NO();OO();PO();BO();NWe={parser:kE,db:$g,renderer:AE,styles:CE,init:o(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,$g.clear()},"init")}});var FO,_E,zO=M(()=>{"use strict";FO=function(){var t=o(function(F,B,$,z){for($=$||{},z=F.length;z--;$[F[z]]=B);return $},"o"),e=[1,2],r=[1,3],n=[1,4],i=[2,4],a=[1,9],s=[1,11],l=[1,16],u=[1,17],h=[1,18],f=[1,19],d=[1,32],p=[1,20],m=[1,21],g=[1,22],y=[1,23],v=[1,24],x=[1,26],b=[1,27],w=[1,28],_=[1,29],T=[1,30],E=[1,31],L=[1,34],C=[1,35],A=[1,36],I=[1,37],D=[1,33],k=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],R=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],S=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],O={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:o(function(B,$,z,W,j,K,ie){var Q=K.length-1;switch(j){case 3:return W.setRootDoc(K[Q]),K[Q];break;case 4:this.$=[];break;case 5:K[Q]!="nl"&&(K[Q-1].push(K[Q]),this.$=K[Q-1]);break;case 6:case 7:this.$=K[Q];break;case 8:this.$="nl";break;case 12:this.$=K[Q];break;case 13:let q=K[Q-1];q.description=W.trimColon(K[Q]),this.$=q;break;case 14:this.$={stmt:"relation",state1:K[Q-2],state2:K[Q]};break;case 15:let Z=W.trimColon(K[Q]);this.$={stmt:"relation",state1:K[Q-3],state2:K[Q-1],description:Z};break;case 19:this.$={stmt:"state",id:K[Q-3],type:"default",description:"",doc:K[Q-1]};break;case 20:var ee=K[Q],J=K[Q-2].trim();if(K[Q].match(":")){var H=K[Q].split(":");ee=H[0],J=[J,H[1]]}this.$={stmt:"state",id:ee,type:"default",description:J};break;case 21:this.$={stmt:"state",id:K[Q-3],type:"default",description:K[Q-5],doc:K[Q-1]};break;case 22:this.$={stmt:"state",id:K[Q],type:"fork"};break;case 23:this.$={stmt:"state",id:K[Q],type:"join"};break;case 24:this.$={stmt:"state",id:K[Q],type:"choice"};break;case 25:this.$={stmt:"state",id:W.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:K[Q-1].trim(),note:{position:K[Q-2].trim(),text:K[Q].trim()}};break;case 29:this.$=K[Q].trim(),W.setAccTitle(this.$);break;case 30:case 31:this.$=K[Q].trim(),W.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:K[Q-1].trim(),classes:K[Q].trim()};break;case 34:this.$={stmt:"style",id:K[Q-1].trim(),styleClass:K[Q].trim()};break;case 35:this.$={stmt:"applyClass",id:K[Q-1].trim(),styleClass:K[Q].trim()};break;case 36:W.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:W.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:W.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:W.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:K[Q].trim(),type:"default",description:""};break;case 44:this.$={stmt:"state",id:K[Q-2].trim(),classes:[K[Q].trim()],type:"default",description:""};break;case 45:this.$={stmt:"state",id:K[Q-2].trim(),classes:[K[Q].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:r,6:n},{1:[3]},{3:5,4:e,5:r,6:n},{3:6,4:e,5:r,6:n},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:u,19:h,22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,7]),t(k,[2,8]),t(k,[2,9]),t(k,[2,10]),t(k,[2,11]),t(k,[2,12],{14:[1,39],15:[1,40]}),t(k,[2,16]),{18:[1,41]},t(k,[2,18],{20:[1,42]}),{23:[1,43]},t(k,[2,22]),t(k,[2,23]),t(k,[2,24]),t(k,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},t(k,[2,28]),{34:[1,48]},{36:[1,49]},t(k,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},t(R,[2,42],{55:[1,54]}),t(R,[2,43],{55:[1,55]}),t(k,[2,36]),t(k,[2,37]),t(k,[2,38]),t(k,[2,39]),t(k,[2,6]),t(k,[2,13]),{13:56,24:d,54:D},t(k,[2,17]),t(S,i,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},t(k,[2,29]),t(k,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},t(k,[2,14],{14:[1,67]}),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,68],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},t(k,[2,32]),t(k,[2,33]),t(k,[2,34]),t(k,[2,35]),t(R,[2,44]),t(R,[2,45]),t(k,[2,15]),t(k,[2,19]),t(S,i,{7:72}),t(k,[2,26]),t(k,[2,27]),{4:a,5:s,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:u,19:h,21:[1,73],22:f,24:d,25:p,26:m,27:g,28:y,29:v,32:25,33:x,35:b,37:w,38:_,42:T,45:E,48:L,49:C,50:A,51:I,54:D},t(k,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:o(function(B,$){if($.recoverable)this.trace(B);else{var z=new Error(B);throw z.hash=$,z}},"parseError"),parse:o(function(B){var $=this,z=[0],W=[],j=[null],K=[],ie=this.table,Q="",ee=0,J=0,H=0,q=2,Z=1,ae=K.slice.call(arguments,1),ue=Object.create(this.lexer),ce={yy:{}};for(var te in this.yy)Object.prototype.hasOwnProperty.call(this.yy,te)&&(ce.yy[te]=this.yy[te]);ue.setInput(B,ce.yy),ce.yy.lexer=ue,ce.yy.parser=this,typeof ue.yylloc>"u"&&(ue.yylloc={});var De=ue.yylloc;K.push(De);var oe=ue.options&&ue.options.ranges;typeof ce.yy.parseError=="function"?this.parseError=ce.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ke(Te){z.length=z.length-2*Te,j.length=j.length-Te,K.length=K.length-Te}o(ke,"popStack");function Fe(){var Te;return Te=W.pop()||ue.lex()||Z,typeof Te!="number"&&(Te instanceof Array&&(W=Te,Te=W.pop()),Te=$.symbols_[Te]||Te),Te}o(Fe,"lex");for(var Be,Ve,Ge,He,xe,X,fe={},he,ge,ne,ye;;){if(Ge=z[z.length-1],this.defaultActions[Ge]?He=this.defaultActions[Ge]:((Be===null||typeof Be>"u")&&(Be=Fe()),He=ie[Ge]&&ie[Ge][Be]),typeof He>"u"||!He.length||!He[0]){var U="";ye=[];for(he in ie[Ge])this.terminals_[he]&&he>q&&ye.push("'"+this.terminals_[he]+"'");ue.showPosition?U="Parse error on line "+(ee+1)+`: +`+ue.showPosition()+` +Expecting `+ye.join(", ")+", got '"+(this.terminals_[Be]||Be)+"'":U="Parse error on line "+(ee+1)+": Unexpected "+(Be==Z?"end of input":"'"+(this.terminals_[Be]||Be)+"'"),this.parseError(U,{text:ue.match,token:this.terminals_[Be]||Be,line:ue.yylineno,loc:De,expected:ye})}if(He[0]instanceof Array&&He.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Ge+", token: "+Be);switch(He[0]){case 1:z.push(Be),j.push(ue.yytext),K.push(ue.yylloc),z.push(He[1]),Be=null,Ve?(Be=Ve,Ve=null):(J=ue.yyleng,Q=ue.yytext,ee=ue.yylineno,De=ue.yylloc,H>0&&H--);break;case 2:if(ge=this.productions_[He[1]][1],fe.$=j[j.length-ge],fe._$={first_line:K[K.length-(ge||1)].first_line,last_line:K[K.length-1].last_line,first_column:K[K.length-(ge||1)].first_column,last_column:K[K.length-1].last_column},oe&&(fe._$.range=[K[K.length-(ge||1)].range[0],K[K.length-1].range[1]]),X=this.performAction.apply(fe,[Q,J,ee,ce.yy,He[1],j,K].concat(ae)),typeof X<"u")return X;ge&&(z=z.slice(0,-1*ge*2),j=j.slice(0,-1*ge),K=K.slice(0,-1*ge)),z.push(this.productions_[He[1]][0]),j.push(fe.$),K.push(fe._$),ne=ie[z[z.length-2]][z[z.length-1]],z.push(ne);break;case 3:return!0}}return!0},"parse")},N=function(){var F={EOF:1,parseError:o(function($,z){if(this.yy.parser)this.yy.parser.parseError($,z);else throw new Error($)},"parseError"),setInput:o(function(B,$){return this.yy=$||this.yy||{},this._input=B,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var B=this._input[0];this.yytext+=B,this.yyleng++,this.offset++,this.match+=B,this.matched+=B;var $=B.match(/(?:\r\n?|\n).*/g);return $?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),B},"input"),unput:o(function(B){var $=B.length,z=B.split(/(?:\r\n?|\n)/g);this._input=B+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-$),this.offset-=$;var W=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),z.length-1&&(this.yylineno-=z.length-1);var j=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:z?(z.length===W.length?this.yylloc.first_column:0)+W[W.length-z.length].length-z[0].length:this.yylloc.first_column-$},this.options.ranges&&(this.yylloc.range=[j[0],j[0]+this.yyleng-$]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(B){this.unput(this.match.slice(B))},"less"),pastInput:o(function(){var B=this.matched.substr(0,this.matched.length-this.match.length);return(B.length>20?"...":"")+B.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var B=this.match;return B.length<20&&(B+=this._input.substr(0,20-B.length)),(B.substr(0,20)+(B.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var B=this.pastInput(),$=new Array(B.length+1).join("-");return B+this.upcomingInput()+` +`+$+"^"},"showPosition"),test_match:o(function(B,$){var z,W,j;if(this.options.backtrack_lexer&&(j={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(j.yylloc.range=this.yylloc.range.slice(0))),W=B[0].match(/(?:\r\n?|\n).*/g),W&&(this.yylineno+=W.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:W?W[W.length-1].length-W[W.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+B[0].length},this.yytext+=B[0],this.match+=B[0],this.matches=B,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(B[0].length),this.matched+=B[0],z=this.performAction.call(this,this.yy,this,$,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),z)return z;if(this._backtrack){for(var K in j)this[K]=j[K];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var B,$,z,W;this._more||(this.yytext="",this.match="");for(var j=this._currentRules(),K=0;K$[0].length)){if($=z,W=K,this.options.backtrack_lexer){if(B=this.test_match(z,j[K]),B!==!1)return B;if(this._backtrack){$=!1;continue}else return!1}else if(!this.options.flex)break}return $?(B=this.test_match($,j[W]),B!==!1?B:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var $=this.next();return $||this.lex()},"lex"),begin:o(function($){this.conditionStack.push($)},"begin"),popState:o(function(){var $=this.conditionStack.length-1;return $>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function($){return $=this.conditionStack.length-1-Math.abs($||0),$>=0?this.conditionStack[$]:"INITIAL"},"topState"),pushState:o(function($){this.begin($)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function($,z,W,j){var K=j;switch(W){case 0:return 41;case 1:return 48;case 2:return 49;case 3:return 50;case 4:return 51;case 5:break;case 6:break;case 7:return 5;case 8:break;case 9:break;case 10:break;case 11:break;case 12:return this.pushState("SCALE"),17;break;case 13:return 18;case 14:this.popState();break;case 15:return this.begin("acc_title"),33;break;case 16:return this.popState(),"acc_title_value";break;case 17:return this.begin("acc_descr"),35;break;case 18:return this.popState(),"acc_descr_value";break;case 19:this.begin("acc_descr_multiline");break;case 20:this.popState();break;case 21:return"acc_descr_multiline_value";case 22:return this.pushState("CLASSDEF"),38;break;case 23:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 24:return this.popState(),this.pushState("CLASSDEFID"),39;break;case 25:return this.popState(),40;break;case 26:return this.pushState("CLASS"),45;break;case 27:return this.popState(),this.pushState("CLASS_STYLE"),46;break;case 28:return this.popState(),47;break;case 29:return this.pushState("STYLE"),42;break;case 30:return this.popState(),this.pushState("STYLEDEF_STYLES"),43;break;case 31:return this.popState(),44;break;case 32:return this.pushState("SCALE"),17;break;case 33:return 18;case 34:this.popState();break;case 35:this.pushState("STATE");break;case 36:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 37:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 38:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 39:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),z.yytext=z.yytext.slice(0,-10).trim(),27;break;case 42:return 48;case 43:return 49;case 44:return 50;case 45:return 51;case 46:this.pushState("STATE_STRING");break;case 47:return this.pushState("STATE_ID"),"AS";break;case 48:return this.popState(),"ID";break;case 49:this.popState();break;case 50:return"STATE_DESCR";case 51:return 19;case 52:this.popState();break;case 53:return this.popState(),this.pushState("struct"),20;break;case 54:break;case 55:return this.popState(),21;break;case 56:break;case 57:return this.begin("NOTE"),29;break;case 58:return this.popState(),this.pushState("NOTE_ID"),56;break;case 59:return this.popState(),this.pushState("NOTE_ID"),57;break;case 60:this.popState(),this.pushState("FLOATING_NOTE");break;case 61:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 62:break;case 63:return"NOTE_TEXT";case 64:return this.popState(),"ID";break;case 65:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 66:return this.popState(),z.yytext=z.yytext.substr(2).trim(),31;break;case 67:return this.popState(),z.yytext=z.yytext.slice(0,-8).trim(),31;break;case 68:return 6;case 69:return 6;case 70:return 16;case 71:return 54;case 72:return 24;case 73:return z.yytext=z.yytext.trim(),14;break;case 74:return 15;case 75:return 28;case 76:return 55;case 77:return 5;case 78:return"INVALID"}},"anonymous"),rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};return F}();O.lexer=N;function P(){this.yy={}}return o(P,"Parser"),P.prototype=O,O.Parser=P,new P}();FO.parser=FO;_E=FO});var Ode,LE,Vg,Sx,Pde,Bde,Fde,_0,DE,GO,$O,VO,UO,HO,NE,RE,zde,Gde,WO,YO,$de,Vde,Ug,OWe,Ude,qO,PWe,BWe,Hde,Wde,FWe,Yde,zWe,qde,XO,jO,Xde,ME,jde,KO,IE=M(()=>{"use strict";Ode="LR",LE="TB",Vg="state",Sx="relation",Pde="classDef",Bde="style",Fde="applyClass",_0="default",DE="divider",GO="fill:none",$O="fill: #333",VO="c",UO="text",HO="normal",NE="rect",RE="rectWithTitle",zde="stateStart",Gde="stateEnd",WO="divider",YO="roundedWithTitle",$de="note",Vde="noteGroup",Ug="statediagram",OWe="state",Ude=`${Ug}-${OWe}`,qO="transition",PWe="note",BWe="note-edge",Hde=`${qO} ${BWe}`,Wde=`${Ug}-${PWe}`,FWe="cluster",Yde=`${Ug}-${FWe}`,zWe="cluster-alt",qde=`${Ug}-${zWe}`,XO="parent",jO="note",Xde="state",ME="----",jde=`${ME}${jO}`,KO=`${ME}${XO}`});function QO(t="",e=0,r="",n=ME){let i=r!==null&&r.length>0?`${n}${r}`:"";return`${Xde}-${t}${i}-${e}`}function OE(t,e,r){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(i=>{if(r.get(i)){let a=r.get(i);e.cssCompiledStyles=[...e.cssCompiledStyles,...a.styles]}}));let n=t.find(i=>i.id===e.id);n?Object.assign(n,e):t.push(e)}function $We(t){return t?.classes?.join(" ")??""}function VWe(t){return t?.styles??[]}var PE,gf,GWe,Kde,Hg,Qde,Zde=M(()=>{"use strict";Vt();ht();fr();IE();PE=new Map,gf=0;o(QO,"stateDomId");GWe=o((t,e,r,n,i,a,s,l)=>{Y.trace("items",e),e.forEach(u=>{switch(u.stmt){case Vg:Hg(t,u,r,n,i,a,s,l);break;case _0:Hg(t,u,r,n,i,a,s,l);break;case Sx:{Hg(t,u.state1,r,n,i,a,s,l),Hg(t,u.state2,r,n,i,a,s,l);let h={id:"edge"+gf,start:u.state1.id,end:u.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:GO,labelStyle:"",label:je.sanitizeText(u.description,de()),arrowheadStyle:$O,labelpos:VO,labelType:UO,thickness:HO,classes:qO,look:s};i.push(h),gf++}break}})},"setupDoc"),Kde=o((t,e=LE)=>{let r=e;if(t.doc)for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir");o(OE,"insertOrUpdateNode");o($We,"getClassesFromDbInfo");o(VWe,"getStylesFromDbInfo");Hg=o((t,e,r,n,i,a,s,l)=>{let u=e.id,h=r.get(u),f=$We(h),d=VWe(h);if(Y.info("dataFetcher parsedItem",e,h,d),u!=="root"){let p=NE;e.start===!0?p=zde:e.start===!1&&(p=Gde),e.type!==_0&&(p=e.type),PE.get(u)||PE.set(u,{id:u,shape:p,description:je.sanitizeText(u,de()),cssClasses:`${f} ${Ude}`,cssStyles:d});let m=PE.get(u);e.description&&(Array.isArray(m.description)?(m.shape=RE,m.description.push(e.description)):m.description?.length>0?(m.shape=RE,m.description===u?m.description=[e.description]:m.description=[m.description,e.description]):(m.shape=NE,m.description=e.description),m.description=je.sanitizeTextOrArray(m.description,de())),m.description?.length===1&&m.shape===RE&&(m.type==="group"?m.shape=YO:m.shape=NE),!m.type&&e.doc&&(Y.info("Setting cluster for XCX",u,Kde(e)),m.type="group",m.isGroup=!0,m.dir=Kde(e),m.shape=e.type===DE?WO:YO,m.cssClasses=`${m.cssClasses} ${Yde} ${a?qde:""}`);let g={labelStyle:"",shape:m.shape,label:m.description,cssClasses:m.cssClasses,cssCompiledStyles:[],cssStyles:m.cssStyles,id:u,dir:m.dir,domId:QO(u,gf),type:m.type,isGroup:m.type==="group",padding:8,rx:10,ry:10,look:s};if(g.shape===WO&&(g.label=""),t&&t.id!=="root"&&(Y.trace("Setting node ",u," to be child of its parent ",t.id),g.parentId=t.id),g.centerLabel=!0,e.note){let y={labelStyle:"",shape:$de,label:e.note.text,cssClasses:Wde,cssStyles:[],cssCompilesStyles:[],id:u+jde+"-"+gf,domId:QO(u,gf,jO),type:m.type,isGroup:m.type==="group",padding:de().flowchart.padding,look:s,position:e.note.position},v=u+KO,x={labelStyle:"",shape:Vde,label:e.note.text,cssClasses:m.cssClasses,cssStyles:[],id:u+KO,domId:QO(u,gf,XO),type:"group",isGroup:!0,padding:16,look:s,position:e.note.position};gf++,x.id=v,y.parentId=v,OE(n,x,l),OE(n,y,l),OE(n,g,l);let b=u,w=y.id;e.note.position==="left of"&&(b=y.id,w=u),i.push({id:b+"-"+w,start:b,end:w,arrowhead:"none",arrowTypeEnd:"",style:GO,labelStyle:"",classes:Hde,arrowheadStyle:$O,labelpos:VO,labelType:UO,thickness:HO,look:s})}else OE(n,g,l)}e.doc&&(Y.trace("Adding nodes children "),GWe(e,e.doc,r,n,i,!a,s,l))},"dataFetcher"),Qde=o(()=>{PE.clear(),gf=0},"reset")});var ZO,UWe,HWe,Jde,JO=M(()=>{"use strict";Vt();ht();j5();Fv();uT();hr();IE();ZO=o((t,e=LE)=>{if(!t.doc)return e;let r=e;for(let n of t.doc)n.stmt==="dir"&&(r=n.value);return r},"getDir"),UWe=o(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),HWe=o(async function(t,e,r,n){Y.info("REF0:"),Y.info("Drawing state diagram (v2)",e);let{securityLevel:i,state:a,layout:s}=de();n.db.extract(n.db.getRootDocV2());let l=n.db.getData(),u=pm(e,i);l.type=n.type,l.layoutAlgorithm=s,l.nodeSpacing=a?.nodeSpacing||50,l.rankSpacing=a?.rankSpacing||50,l.markers=["barb"],l.diagramId=e,await Fm(l,u);let h=8;Ut.insertTitle(u,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),zm(u,h,Ug,a?.useMaxWidth??!0)},"draw"),Jde={getClasses:UWe,draw:HWe,getDir:ZO}});function s0e(){return new Map}function eP(t=""){let e=t;return t===nP&&(Cx++,e=`${n0e}${Cx}`),e}function tP(t="",e=_0){return t===nP?n0e:e}function eYe(t=""){let e=t;return t===i0e&&(Cx++,e=`${a0e}${Cx}`),e}function tYe(t="",e=_0){return t===i0e?a0e:e}function rYe(t,e,r){let n=eP(t.id.trim()),i=tP(t.id.trim(),t.type),a=eP(e.id.trim()),s=tP(e.id.trim(),e.type);yf(n,i,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),yf(a,s,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),zs.relations.push({id1:n,id2:a,relationTitle:je.sanitizeText(r,de())})}var nP,n0e,i0e,a0e,e0e,t0e,WWe,YWe,zE,iP,o0e,GE,Wg,l0e,$E,zs,Cx,r0e,qWe,XWe,BE,jWe,KWe,FE,aP,QWe,yf,c0e,L0,u0e,ZWe,JWe,h0e,rP,nYe,iYe,f0e,aYe,sP,sYe,oYe,lYe,cYe,uYe,hYe,tl,VE=M(()=>{"use strict";ht();hr();fr();Vt();ki();Zde();JO();IE();nP="[*]",n0e="start",i0e=nP,a0e="end",e0e="color",t0e="fill",WWe="bgFill",YWe=",";o(s0e,"newClassesList");zE=[],iP=[],o0e=Ode,GE=[],Wg=s0e(),l0e=o(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),$E={root:l0e()},zs=$E.root,Cx=0,r0e=0,qWe={LINE:0,DOTTED_LINE:1},XWe={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},BE=o(t=>JSON.parse(JSON.stringify(t)),"clone"),jWe=o(t=>{Y.info("Setting root doc",t),GE=t},"setRootDoc"),KWe=o(()=>GE,"getRootDoc"),FE=o((t,e,r)=>{if(e.stmt===Sx)FE(t,e.state1,!0),FE(t,e.state2,!1);else if(e.stmt===Vg&&(e.id==="[*]"?(e.id=r?t.id+"_start":t.id+"_end",e.start=r):e.id=e.id.trim()),e.doc){let n=[],i=[],a;for(a=0;a0&&i.length>0){let s={stmt:Vg,id:e9(),type:"divider",doc:BE(i)};n.push(BE(s)),e.doc=n}e.doc.forEach(s=>FE(e,s,!0))}},"docTranslator"),aP=o(()=>(FE({id:"root"},{id:"root",doc:GE},!0),{id:"root",doc:GE}),"getRootDocV2"),QWe=o(t=>{let e;t.doc?e=t.doc:e=t,Y.info(e),c0e(!0),Y.info("Extract initial document:",e),e.forEach(a=>{switch(Y.warn("Statement",a.stmt),a.stmt){case Vg:yf(a.id.trim(),a.type,a.doc,a.description,a.note,a.classes,a.styles,a.textStyles);break;case Sx:h0e(a.state1,a.state2,a.description);break;case Pde:f0e(a.id.trim(),a.classes);break;case Bde:{let s=a.id.trim().split(","),l=a.styleClass.split(",");s.forEach(u=>{let h=L0(u);if(h===void 0){let f=u.trim();yf(f),h=L0(f)}h.styles=l.map(f=>f.replace(/;/g,"")?.trim())})}break;case Fde:sP(a.id.trim(),a.styleClass);break}});let r=u0e(),i=de().look;Qde(),Hg(void 0,aP(),r,zE,iP,!0,i,Wg),zE.forEach(a=>{if(Array.isArray(a.label)){if(a.description=a.label.slice(1),a.isGroup&&a.description.length>0)throw new Error("Group nodes can only have label. Remove the additional description for node ["+a.id+"]");a.label=a.label[0]}})},"extract"),yf=o(function(t,e=_0,r=null,n=null,i=null,a=null,s=null,l=null){let u=t?.trim();if(zs.states.has(u)?(zs.states.get(u).doc||(zs.states.get(u).doc=r),zs.states.get(u).type||(zs.states.get(u).type=e)):(Y.info("Adding state ",u,n),zs.states.set(u,{id:u,descriptions:[],type:e,doc:r,note:i,classes:[],styles:[],textStyles:[]})),n&&(Y.info("Setting state description",u,n),typeof n=="string"&&rP(u,n.trim()),typeof n=="object"&&n.forEach(h=>rP(u,h.trim()))),i){let h=zs.states.get(u);h.note=i,h.note.text=je.sanitizeText(h.note.text,de())}a&&(Y.info("Setting state classes",u,a),(typeof a=="string"?[a]:a).forEach(f=>sP(u,f.trim()))),s&&(Y.info("Setting state styles",u,s),(typeof s=="string"?[s]:s).forEach(f=>sYe(u,f.trim()))),l&&(Y.info("Setting state styles",u,s),(typeof l=="string"?[l]:l).forEach(f=>oYe(u,f.trim())))},"addState"),c0e=o(function(t){zE=[],iP=[],$E={root:l0e()},zs=$E.root,Cx=0,Wg=s0e(),t||_r()},"clear"),L0=o(function(t){return zs.states.get(t)},"getState"),u0e=o(function(){return zs.states},"getStates"),ZWe=o(function(){Y.info("Documents = ",$E)},"logDocuments"),JWe=o(function(){return zs.relations},"getRelations");o(eP,"startIdIfNeeded");o(tP,"startTypeIfNeeded");o(eYe,"endIdIfNeeded");o(tYe,"endTypeIfNeeded");o(rYe,"addRelationObjs");h0e=o(function(t,e,r){if(typeof t=="object")rYe(t,e,r);else{let n=eP(t.trim()),i=tP(t),a=eYe(e.trim()),s=tYe(e);yf(n,i),yf(a,s),zs.relations.push({id1:n,id2:a,title:je.sanitizeText(r,de())})}},"addRelation"),rP=o(function(t,e){let r=zs.states.get(t),n=e.startsWith(":")?e.replace(":","").trim():e;r.descriptions.push(je.sanitizeText(n,de()))},"addDescription"),nYe=o(function(t){return t.substring(0,1)===":"?t.substr(2).trim():t.trim()},"cleanupLabel"),iYe=o(()=>(r0e++,"divider-id-"+r0e),"getDividerId"),f0e=o(function(t,e=""){Wg.has(t)||Wg.set(t,{id:t,styles:[],textStyles:[]});let r=Wg.get(t);e?.split(YWe).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(e0e).exec(n)){let s=i.replace(t0e,WWe).replace(e0e,t0e);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),aYe=o(function(){return Wg},"getClasses"),sP=o(function(t,e){t.split(",").forEach(function(r){let n=L0(r);if(n===void 0){let i=r.trim();yf(i),n=L0(i)}n.classes.push(e)})},"setCssClass"),sYe=o(function(t,e){let r=L0(t);r!==void 0&&r.styles.push(e)},"setStyle"),oYe=o(function(t,e){let r=L0(t);r!==void 0&&r.textStyles.push(e)},"setTextStyle"),lYe=o(()=>o0e,"getDirection"),cYe=o(t=>{o0e=t},"setDirection"),uYe=o(t=>t&&t[0]===":"?t.substr(1).trim():t.trim(),"trimColon"),hYe=o(()=>{let t=de();return{nodes:zE,edges:iP,other:{},config:t,direction:ZO(aP())}},"getData"),tl={getConfig:o(()=>de().state,"getConfig"),getData:hYe,addState:yf,clear:c0e,getState:L0,getStates:u0e,getRelations:JWe,getClasses:aYe,getDirection:lYe,addRelation:h0e,getDividerId:iYe,setDirection:cYe,cleanupLabel:nYe,lineType:qWe,relationType:XWe,logDocuments:ZWe,getRootDoc:KWe,setRootDoc:jWe,getRootDocV2:aP,extract:QWe,trimColon:uYe,getAccTitle:Pr,setAccTitle:Rr,getAccDescription:Fr,setAccDescription:Br,addStyleClass:f0e,setCssClass:sP,addDescription:rP,setDiagramTitle:ln,getDiagramTitle:Jr}});var fYe,UE,oP=M(()=>{"use strict";fYe=o(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),UE=fYe});var lP,dYe,pYe,d0e,mYe,p0e,m0e=M(()=>{"use strict";lP={},dYe=o((t,e)=>{lP[t]=e},"set"),pYe=o(t=>lP[t],"get"),d0e=o(()=>Object.keys(lP),"keys"),mYe=o(()=>d0e().length,"size"),p0e={get:pYe,set:dYe,keys:d0e,size:mYe}});var gYe,yYe,vYe,xYe,y0e,bYe,wYe,TYe,kYe,cP,g0e,v0e,x0e=M(()=>{"use strict";mr();m0e();VE();hr();fr();Vt();ht();gYe=o(t=>t.append("circle").attr("class","start-state").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit).attr("cy",de().state.padding+de().state.sizeUnit),"drawStartState"),yYe=o(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",de().state.textHeight).attr("class","divider").attr("x2",de().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),vYe=o((t,e)=>{let r=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+2*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),n=r.node().getBBox();return t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",n.width+2*de().state.padding).attr("height",n.height+2*de().state.padding).attr("rx",de().state.radius),r},"drawSimpleState"),xYe=o((t,e)=>{let r=o(function(p,m,g){let y=p.append("tspan").attr("x",2*de().state.padding).text(m);g||y.attr("dy",de().state.textHeight)},"addTspan"),i=t.append("text").attr("x",2*de().state.padding).attr("y",de().state.textHeight+1.3*de().state.padding).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,s=t.append("text").attr("x",de().state.padding).attr("y",a+de().state.padding*.4+de().state.dividerMargin+de().state.textHeight).attr("class","state-description"),l=!0,u=!0;e.descriptions.forEach(function(p){l||(r(s,p,u),u=!1),l=!1});let h=t.append("line").attr("x1",de().state.padding).attr("y1",de().state.padding+a+de().state.dividerMargin/2).attr("y2",de().state.padding+a+de().state.dividerMargin/2).attr("class","descr-divider"),f=s.node().getBBox(),d=Math.max(f.width,i.width);return h.attr("x2",d+3*de().state.padding),t.insert("rect",":first-child").attr("x",de().state.padding).attr("y",de().state.padding).attr("width",d+2*de().state.padding).attr("height",f.height+a+2*de().state.padding).attr("rx",de().state.radius),t},"drawDescrState"),y0e=o((t,e,r)=>{let n=de().state.padding,i=2*de().state.padding,a=t.node().getBBox(),s=a.width,l=a.x,u=t.append("text").attr("x",0).attr("y",de().state.titleShift).attr("font-size",de().state.fontSize).attr("class","state-title").text(e.id),f=u.node().getBBox().width+i,d=Math.max(f,s);d===s&&(d=d+i);let p,m=t.node().getBBox();e.doc,p=l-n,f>s&&(p=(s-d)/2+n),Math.abs(l-m.x)s&&(p=l-(f-s)/2);let g=1-de().state.textHeight;return t.insert("rect",":first-child").attr("x",p).attr("y",g).attr("class",r?"alt-composit":"composit").attr("width",d).attr("height",m.height+de().state.textHeight+de().state.titleShift+1).attr("rx","0"),u.attr("x",p+n),f<=s&&u.attr("x",l+(d-i)/2-f/2+n),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",de().state.textHeight*3).attr("rx",de().state.radius),t.insert("rect",":first-child").attr("x",p).attr("y",de().state.titleShift-de().state.textHeight-de().state.padding).attr("width",d).attr("height",m.height+3+2*de().state.textHeight).attr("rx",de().state.radius),t},"addTitleAndBox"),bYe=o(t=>(t.append("circle").attr("class","end-state-outer").attr("r",de().state.sizeUnit+de().state.miniPadding).attr("cx",de().state.padding+de().state.sizeUnit+de().state.miniPadding).attr("cy",de().state.padding+de().state.sizeUnit+de().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",de().state.sizeUnit).attr("cx",de().state.padding+de().state.sizeUnit+2).attr("cy",de().state.padding+de().state.sizeUnit+2)),"drawEndState"),wYe=o((t,e)=>{let r=de().state.forkWidth,n=de().state.forkHeight;if(e.parentId){let i=r;r=n,n=i}return t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",de().state.padding).attr("y",de().state.padding)},"drawForkJoinState"),TYe=o((t,e,r,n)=>{let i=0,a=n.append("text");a.style("text-anchor","start"),a.attr("class","noteText");let s=t.replace(/\r\n/g,"
    ");s=s.replace(/\n/g,"
    ");let l=s.split(je.lineBreakRegex),u=1.25*de().state.noteMargin;for(let h of l){let f=h.trim();if(f.length>0){let d=a.append("tspan");if(d.text(f),u===0){let p=d.node().getBBox();u+=p.height}i+=u,d.attr("x",e+de().state.noteMargin),d.attr("y",r+i+1.25*de().state.noteMargin)}}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),kYe=o((t,e)=>{e.attr("class","state-note");let r=e.append("rect").attr("x",0).attr("y",de().state.padding),n=e.append("g"),{textWidth:i,textHeight:a}=TYe(t,0,0,n);return r.attr("height",a+2*de().state.noteMargin),r.attr("width",i+de().state.noteMargin*2),r},"drawNote"),cP=o(function(t,e){let r=e.id,n={id:r,label:e.id,width:0,height:0},i=t.append("g").attr("id",r).attr("class","stateGroup");e.type==="start"&&gYe(i),e.type==="end"&&bYe(i),(e.type==="fork"||e.type==="join")&&wYe(i,e),e.type==="note"&&kYe(e.note.text,i),e.type==="divider"&&yYe(i),e.type==="default"&&e.descriptions.length===0&&vYe(i,e),e.type==="default"&&e.descriptions.length>0&&xYe(i,e);let a=i.node().getBBox();return n.width=a.width+2*de().state.padding,n.height=a.height+2*de().state.padding,p0e.set(r,n),n},"drawState"),g0e=0,v0e=o(function(t,e,r){let n=o(function(u){switch(u){case tl.relationType.AGGREGATION:return"aggregation";case tl.relationType.EXTENSION:return"extension";case tl.relationType.COMPOSITION:return"composition";case tl.relationType.DEPENDENCY:return"dependency"}},"getRelationType");e.points=e.points.filter(u=>!Number.isNaN(u.y));let i=e.points,a=Ka().x(function(u){return u.x}).y(function(u){return u.y}).curve(Do),s=t.append("path").attr("d",a(i)).attr("id","edge"+g0e).attr("class","transition"),l="";if(de().state.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),s.attr("marker-end","url("+l+"#"+n(tl.relationType.DEPENDENCY)+"End)"),r.title!==void 0){let u=t.append("g").attr("class","stateLabel"),{x:h,y:f}=Ut.calcLabelPosition(e.points),d=je.getRows(r.title),p=0,m=[],g=0,y=0;for(let b=0;b<=d.length;b++){let w=u.append("text").attr("text-anchor","middle").text(d[b]).attr("x",h).attr("y",f+p),_=w.node().getBBox();g=Math.max(g,_.width),y=Math.min(y,_.x),Y.info(_.x,h,f+p),p===0&&(p=w.node().getBBox().height,Y.info("Title height",p,f)),m.push(w)}let v=p*d.length;if(d.length>1){let b=(d.length-1)*p*.5;m.forEach((w,_)=>w.attr("y",f+_*p-b)),v=p*d.length}let x=u.node().getBBox();u.insert("rect",":first-child").attr("class","box").attr("x",h-g/2-de().state.padding/2).attr("y",f-v/2-de().state.padding/2-3.5).attr("width",g+de().state.padding).attr("height",v+de().state.padding),Y.info(x)}g0e++},"drawEdge")});var fo,uP,EYe,SYe,CYe,AYe,b0e,w0e,T0e=M(()=>{"use strict";mr();Pv();Ns();ht();fr();x0e();Vt();ni();uP={},EYe=o(function(){},"setConf"),SYe=o(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),CYe=o(function(t,e,r,n){fo=de().state;let i=de().securityLevel,a;i==="sandbox"&&(a=ze("#i"+e));let s=i==="sandbox"?ze(a.nodes()[0].contentDocument.body):ze("body"),l=i==="sandbox"?a.nodes()[0].contentDocument:document;Y.debug("Rendering diagram "+t);let u=s.select(`[id='${e}']`);SYe(u);let h=n.db.getRootDoc();b0e(h,u,void 0,!1,s,l,n);let f=fo.padding,d=u.node().getBBox(),p=d.width+f*2,m=d.height+f*2,g=p*1.75;Zr(u,m,g,fo.useMaxWidth),u.attr("viewBox",`${d.x-fo.padding} ${d.y-fo.padding} `+p+" "+m)},"draw"),AYe=o(t=>t?t.length*fo.fontSizeFactor:1,"getLabelWidth"),b0e=o((t,e,r,n,i,a,s)=>{let l=new Mr({compound:!0,multigraph:!0}),u,h=!0;for(u=0;u{let T=_.parentElement,E=0,L=0;T&&(T.parentElement&&(E=T.parentElement.getBBox().width),L=parseInt(T.getAttribute("data-x-shift"),10),Number.isNaN(L)&&(L=0)),_.setAttribute("x1",0-L+8),_.setAttribute("x2",E-L-8)})):Y.debug("No Node "+b+": "+JSON.stringify(l.node(b)))});let v=y.getBBox();l.edges().forEach(function(b){b!==void 0&&l.edge(b)!==void 0&&(Y.debug("Edge "+b.v+" -> "+b.w+": "+JSON.stringify(l.edge(b))),v0e(e,l.edge(b),l.edge(b).relation))}),v=y.getBBox();let x={id:r||"root",label:r||"root",width:0,height:0};return x.width=v.width+2*fo.padding,x.height=v.height+2*fo.padding,Y.debug("Doc rendered",x,l),x},"renderDoc"),w0e={setConf:EYe,draw:CYe}});var k0e={};vr(k0e,{diagram:()=>_Ye});var _Ye,E0e=M(()=>{"use strict";zO();VE();oP();T0e();_Ye={parser:_E,db:tl,renderer:w0e,styles:UE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,tl.clear()},"init")}});var A0e={};vr(A0e,{diagram:()=>RYe});var RYe,_0e=M(()=>{"use strict";zO();VE();oP();JO();RYe={parser:_E,db:tl,renderer:Jde,styles:UE,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,tl.clear()},"init")}});var hP,N0e,R0e=M(()=>{"use strict";hP=function(){var t=o(function(d,p,m,g){for(m=m||{},g=d.length;g--;m[d[g]]=p);return m},"o"),e=[6,8,10,11,12,14,16,17,18],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,14],u={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:o(function(p,m,g,y,v,x,b){var w=x.length-1;switch(v){case 1:return x[w-1];case 2:this.$=[];break;case 3:x[w-1].push(x[w]),this.$=x[w-1];break;case 4:case 5:this.$=x[w];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(x[w].substr(6)),this.$=x[w].substr(6);break;case 9:this.$=x[w].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=x[w].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(x[w].substr(8)),this.$=x[w].substr(8);break;case 13:y.addTask(x[w-1],x[w]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:r,12:n,14:i,16:a,17:s,18:l},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:o(function(p,m){if(m.recoverable)this.trace(p);else{var g=new Error(p);throw g.hash=m,g}},"parseError"),parse:o(function(p){var m=this,g=[0],y=[],v=[null],x=[],b=this.table,w="",_=0,T=0,E=0,L=2,C=1,A=x.slice.call(arguments,1),I=Object.create(this.lexer),D={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(D.yy[k]=this.yy[k]);I.setInput(p,D.yy),D.yy.lexer=I,D.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var R=I.yylloc;x.push(R);var S=I.options&&I.options.ranges;typeof D.yy.parseError=="function"?this.parseError=D.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(H){g.length=g.length-2*H,v.length=v.length-H,x.length=x.length-H}o(O,"popStack");function N(){var H;return H=y.pop()||I.lex()||C,typeof H!="number"&&(H instanceof Array&&(y=H,H=y.pop()),H=m.symbols_[H]||H),H}o(N,"lex");for(var P,F,B,$,z,W,j={},K,ie,Q,ee;;){if(B=g[g.length-1],this.defaultActions[B]?$=this.defaultActions[B]:((P===null||typeof P>"u")&&(P=N()),$=b[B]&&b[B][P]),typeof $>"u"||!$.length||!$[0]){var J="";ee=[];for(K in b[B])this.terminals_[K]&&K>L&&ee.push("'"+this.terminals_[K]+"'");I.showPosition?J="Parse error on line "+(_+1)+`: +`+I.showPosition()+` +Expecting `+ee.join(", ")+", got '"+(this.terminals_[P]||P)+"'":J="Parse error on line "+(_+1)+": Unexpected "+(P==C?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(J,{text:I.match,token:this.terminals_[P]||P,line:I.yylineno,loc:R,expected:ee})}if($[0]instanceof Array&&$.length>1)throw new Error("Parse Error: multiple actions possible at state: "+B+", token: "+P);switch($[0]){case 1:g.push(P),v.push(I.yytext),x.push(I.yylloc),g.push($[1]),P=null,F?(P=F,F=null):(T=I.yyleng,w=I.yytext,_=I.yylineno,R=I.yylloc,E>0&&E--);break;case 2:if(ie=this.productions_[$[1]][1],j.$=v[v.length-ie],j._$={first_line:x[x.length-(ie||1)].first_line,last_line:x[x.length-1].last_line,first_column:x[x.length-(ie||1)].first_column,last_column:x[x.length-1].last_column},S&&(j._$.range=[x[x.length-(ie||1)].range[0],x[x.length-1].range[1]]),W=this.performAction.apply(j,[w,T,_,D.yy,$[1],v,x].concat(A)),typeof W<"u")return W;ie&&(g=g.slice(0,-1*ie*2),v=v.slice(0,-1*ie),x=x.slice(0,-1*ie)),g.push(this.productions_[$[1]][0]),v.push(j.$),x.push(j._$),Q=b[g[g.length-2]][g[g.length-1]],g.push(Q);break;case 3:return!0}}return!0},"parse")},h=function(){var d={EOF:1,parseError:o(function(m,g){if(this.yy.parser)this.yy.parser.parseError(m,g);else throw new Error(m)},"parseError"),setInput:o(function(p,m){return this.yy=m||this.yy||{},this._input=p,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var p=this._input[0];this.yytext+=p,this.yyleng++,this.offset++,this.match+=p,this.matched+=p;var m=p.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),p},"input"),unput:o(function(p){var m=p.length,g=p.split(/(?:\r\n?|\n)/g);this._input=p+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var v=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===y.length?this.yylloc.first_column:0)+y[y.length-g.length].length-g[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(p){this.unput(this.match.slice(p))},"less"),pastInput:o(function(){var p=this.matched.substr(0,this.matched.length-this.match.length);return(p.length>20?"...":"")+p.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var p=this.match;return p.length<20&&(p+=this._input.substr(0,20-p.length)),(p.substr(0,20)+(p.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var p=this.pastInput(),m=new Array(p.length+1).join("-");return p+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:o(function(p,m){var g,y,v;if(this.options.backtrack_lexer&&(v={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(v.yylloc.range=this.yylloc.range.slice(0))),y=p[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+p[0].length},this.yytext+=p[0],this.match+=p[0],this.matches=p,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(p[0].length),this.matched+=p[0],g=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var x in v)this[x]=v[x];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var p,m,g,y;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),x=0;xm[0].length)){if(m=g,y=x,this.options.backtrack_lexer){if(p=this.test_match(g,v[x]),p!==!1)return p;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(p=this.test_match(m,v[y]),p!==!1?p:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var m=this.next();return m||this.lex()},"lex"),begin:o(function(m){this.conditionStack.push(m)},"begin"),popState:o(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:o(function(m){this.begin(m)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(m,g,y,v){var x=v;switch(y){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 18;case 16:return 19;case 17:return":";case 18:return 6;case 19:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18,19],inclusive:!0}}};return d}();u.lexer=h;function f(){this.yy={}}return o(f,"Parser"),f.prototype=u,u.Parser=f,new f}();hP.parser=hP;N0e=hP});var Yg,fP,Ax,_x,PYe,BYe,FYe,zYe,GYe,$Ye,VYe,M0e,UYe,dP,I0e=M(()=>{"use strict";Vt();ki();Yg="",fP=[],Ax=[],_x=[],PYe=o(function(){fP.length=0,Ax.length=0,Yg="",_x.length=0,_r()},"clear"),BYe=o(function(t){Yg=t,fP.push(t)},"addSection"),FYe=o(function(){return fP},"getSections"),zYe=o(function(){let t=M0e(),e=100,r=0;for(;!t&&r{r.people&&t.push(...r.people)}),[...new Set(t)].sort()},"updateActors"),$Ye=o(function(t,e){let r=e.substr(1).split(":"),n=0,i=[];r.length===1?(n=Number(r[0]),i=[]):(n=Number(r[0]),i=r[1].split(","));let a=i.map(l=>l.trim()),s={section:Yg,type:Yg,people:a,task:t,score:n};_x.push(s)},"addTask"),VYe=o(function(t){let e={section:Yg,type:Yg,description:t,task:t,classes:[]};Ax.push(e)},"addTaskOrg"),M0e=o(function(){let t=o(function(r){return _x[r].processed},"compileTask"),e=!0;for(let[r,n]of _x.entries())t(r),e=e&&n.processed;return e},"compileTasks"),UYe=o(function(){return GYe()},"getActors"),dP={getConfig:o(()=>de().journey,"getConfig"),clear:PYe,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addSection:BYe,getSections:FYe,getTasks:zYe,addTask:$Ye,addTaskOrg:VYe,getActors:UYe}});var HYe,O0e,P0e=M(()=>{"use strict";HYe=o(t=>`.label { + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + color: ${t.textColor}; + } + .mouth { + stroke: #666; + } + + line { + stroke: ${t.textColor} + } + + .legend { + fill: ${t.textColor}; + } + + .label text { + fill: #333; + } + .label { + color: ${t.textColor} + } + + .face { + ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"}; + stroke: #999; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 1.5px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + } + text-align: center; + } + + .cluster rect { + } + + .cluster text { + fill: ${t.titleColor}; + } + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: 'trebuchet ms', verdana, arial, sans-serif; + font-family: var(--mermaid-font-family); + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .task-type-0, .section-type-0 { + ${t.fillType0?`fill: ${t.fillType0}`:""}; + } + .task-type-1, .section-type-1 { + ${t.fillType0?`fill: ${t.fillType1}`:""}; + } + .task-type-2, .section-type-2 { + ${t.fillType0?`fill: ${t.fillType2}`:""}; + } + .task-type-3, .section-type-3 { + ${t.fillType0?`fill: ${t.fillType3}`:""}; + } + .task-type-4, .section-type-4 { + ${t.fillType0?`fill: ${t.fillType4}`:""}; + } + .task-type-5, .section-type-5 { + ${t.fillType0?`fill: ${t.fillType5}`:""}; + } + .task-type-6, .section-type-6 { + ${t.fillType0?`fill: ${t.fillType6}`:""}; + } + .task-type-7, .section-type-7 { + ${t.fillType0?`fill: ${t.fillType7}`:""}; + } + + .actor-0 { + ${t.actor0?`fill: ${t.actor0}`:""}; + } + .actor-1 { + ${t.actor1?`fill: ${t.actor1}`:""}; + } + .actor-2 { + ${t.actor2?`fill: ${t.actor2}`:""}; + } + .actor-3 { + ${t.actor3?`fill: ${t.actor3}`:""}; + } + .actor-4 { + ${t.actor4?`fill: ${t.actor4}`:""}; + } + .actor-5 { + ${t.actor5?`fill: ${t.actor5}`:""}; + } +`,"getStyles"),O0e=HYe});var pP,WYe,F0e,z0e,YYe,qYe,B0e,XYe,jYe,G0e,KYe,qg,$0e=M(()=>{"use strict";mr();qy();pP=o(function(t,e){return md(t,e)},"drawRect"),WYe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=El().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=El().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),F0e=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),z0e=o(function(t,e){return DY(t,e)},"drawText"),YYe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,z0e(t,e)},"drawLabel"),qYe=o(function(t,e,r){let n=t.append("g"),i=Sl();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width*e.taskCount+r.diagramMarginX*(e.taskCount-1),i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,pP(n,i),G0e(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),B0e=-1,XYe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");B0e++;let a=300+5*30;i.append("line").attr("id","task"+B0e).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),WYe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=Sl();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,pP(i,s);let l=e.x+14;e.people.forEach(u=>{let h=e.actors[u].color,f={cx:l,cy:e.y,r:7,fill:h,stroke:"#000",title:u,pos:e.actors[u].position};F0e(i,f),l+=10}),G0e(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),jYe=o(function(t,e){Y3(t,e)},"drawBackgroundRect"),G0e=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{let i=Yu[n].color,a={cx:20,cy:r,r:7,fill:i,stroke:"#000",pos:Yu[n].position};qg.drawCircle(t,a);let s={x:40,y:r+7,fill:"#666",text:n,textMargin:e.boxTextMargin|5};qg.drawText(t,s),r+=20})}var QYe,Yu,HE,D0,JYe,rl,mP,V0e,eqe,gP,U0e=M(()=>{"use strict";mr();$0e();Vt();ni();QYe=o(function(t){Object.keys(t).forEach(function(r){HE[r]=t[r]})},"setConf"),Yu={};o(ZYe,"drawActorLegend");HE=de().journey,D0=HE.leftMargin,JYe=o(function(t,e,r,n){let i=de().journey,a=de().securityLevel,s;a==="sandbox"&&(s=ze("#i"+e));let l=a==="sandbox"?ze(s.nodes()[0].contentDocument.body):ze("body");rl.init();let u=l.select("#"+e);qg.initGraphics(u);let h=n.db.getTasks(),f=n.db.getDiagramTitle(),d=n.db.getActors();for(let x in Yu)delete Yu[x];let p=0;d.forEach(x=>{Yu[x]={color:i.actorColours[p%i.actorColours.length],position:p},p++}),ZYe(u),rl.insert(0,0,D0,Object.keys(Yu).length*50),eqe(u,h,0);let m=rl.getBounds();f&&u.append("text").text(f).attr("x",D0).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);let g=m.stopy-m.starty+2*i.diagramMarginY,y=D0+m.stopx+2*i.diagramMarginX;Zr(u,g,y,i.useMaxWidth),u.append("line").attr("x1",D0).attr("y1",i.height*4).attr("x2",y-D0-4).attr("y2",i.height*4).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");let v=f?70:0;u.attr("viewBox",`${m.startx} -25 ${y} ${g+v}`),u.attr("preserveAspectRatio","xMinYMin meet"),u.attr("height",g+v+25)},"draw"),rl={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:o(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:o(function(t,e,r,n){t[e]===void 0?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:o(function(t,e,r,n){let i=de().journey,a=this,s=0;function l(u){return o(function(f){s++;let d=a.sequenceItems.length-s+1;a.updateVal(f,"starty",e-d*i.boxMargin,Math.min),a.updateVal(f,"stopy",n+d*i.boxMargin,Math.max),a.updateVal(rl.data,"startx",t-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopx",r+d*i.boxMargin,Math.max),u!=="activation"&&(a.updateVal(f,"startx",t-d*i.boxMargin,Math.min),a.updateVal(f,"stopx",r+d*i.boxMargin,Math.max),a.updateVal(rl.data,"starty",e-d*i.boxMargin,Math.min),a.updateVal(rl.data,"stopy",n+d*i.boxMargin,Math.max))},"updateItemBounds")}o(l,"updateFn"),this.sequenceItems.forEach(l())},"updateBounds"),insert:o(function(t,e,r,n){let i=Math.min(t,r),a=Math.max(t,r),s=Math.min(e,n),l=Math.max(e,n);this.updateVal(rl.data,"startx",i,Math.min),this.updateVal(rl.data,"starty",s,Math.min),this.updateVal(rl.data,"stopx",a,Math.max),this.updateVal(rl.data,"stopy",l,Math.max),this.updateBounds(i,s,a,l)},"insert"),bumpVerticalPos:o(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:o(function(){return this.verticalPos},"getVerticalPos"),getBounds:o(function(){return this.data},"getBounds")},mP=HE.sectionFills,V0e=HE.sectionColours,eqe=o(function(t,e,r){let n=de().journey,i="",a=n.height*2+n.diagramMarginY,s=r+a,l=0,u="#CCC",h="black",f=0;for(let[d,p]of e.entries()){if(i!==p.section){u=mP[l%mP.length],f=l%mP.length,h=V0e[l%V0e.length];let g=0,y=p.section;for(let x=d;x(Yu[y]&&(g[y]=Yu[y]),g),{});p.x=d*n.taskMargin+d*n.width+D0,p.y=s,p.width=n.diagramMarginX,p.height=n.diagramMarginY,p.colour=h,p.fill=u,p.num=f,p.actors=m,qg.drawTask(t,p,n),rl.insert(p.x,p.y,p.x+p.width+n.taskMargin,300+5*30)}},"drawTasks"),gP={setConf:QYe,draw:JYe}});var H0e={};vr(H0e,{diagram:()=>tqe});var tqe,W0e=M(()=>{"use strict";R0e();I0e();P0e();U0e();tqe={parser:N0e,db:dP,renderer:gP,styles:O0e,init:o(t=>{gP.setConf(t.journey),dP.clear()},"init")}});var vP,Z0e,J0e=M(()=>{"use strict";vP=function(){var t=o(function(p,m,g,y){for(g=g||{},y=p.length;y--;g[p[y]]=m);return g},"o"),e=[6,8,10,11,12,14,16,17,20,21],r=[1,9],n=[1,10],i=[1,11],a=[1,12],s=[1,13],l=[1,16],u=[1,17],h={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:o(function(m,g,y,v,x,b,w){var _=b.length-1;switch(x){case 1:return b[_-1];case 2:this.$=[];break;case 3:b[_-1].push(b[_]),this.$=b[_-1];break;case 4:case 5:this.$=b[_];break;case 6:case 7:this.$=[];break;case 8:v.getCommonDb().setDiagramTitle(b[_].substr(6)),this.$=b[_].substr(6);break;case 9:this.$=b[_].trim(),v.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=b[_].trim(),v.getCommonDb().setAccDescription(this.$);break;case 12:v.addSection(b[_].substr(8)),this.$=b[_].substr(8);break;case 15:v.addTask(b[_],0,""),this.$=b[_];break;case 16:v.addEvent(b[_].substr(2)),this.$=b[_];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:18,11:r,12:n,14:i,16:a,17:s,18:14,19:15,20:l,21:u},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,19]},{15:[1,20]},t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),t(e,[2,4]),t(e,[2,9]),t(e,[2,10])],defaultActions:{},parseError:o(function(m,g){if(g.recoverable)this.trace(m);else{var y=new Error(m);throw y.hash=g,y}},"parseError"),parse:o(function(m){var g=this,y=[0],v=[],x=[null],b=[],w=this.table,_="",T=0,E=0,L=0,C=2,A=1,I=b.slice.call(arguments,1),D=Object.create(this.lexer),k={yy:{}};for(var R in this.yy)Object.prototype.hasOwnProperty.call(this.yy,R)&&(k.yy[R]=this.yy[R]);D.setInput(m,k.yy),k.yy.lexer=D,k.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var S=D.yylloc;b.push(S);var O=D.options&&D.options.ranges;typeof k.yy.parseError=="function"?this.parseError=k.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(q){y.length=y.length-2*q,x.length=x.length-q,b.length=b.length-q}o(N,"popStack");function P(){var q;return q=v.pop()||D.lex()||A,typeof q!="number"&&(q instanceof Array&&(v=q,q=v.pop()),q=g.symbols_[q]||q),q}o(P,"lex");for(var F,B,$,z,W,j,K={},ie,Q,ee,J;;){if($=y[y.length-1],this.defaultActions[$]?z=this.defaultActions[$]:((F===null||typeof F>"u")&&(F=P()),z=w[$]&&w[$][F]),typeof z>"u"||!z.length||!z[0]){var H="";J=[];for(ie in w[$])this.terminals_[ie]&&ie>C&&J.push("'"+this.terminals_[ie]+"'");D.showPosition?H="Parse error on line "+(T+1)+`: +`+D.showPosition()+` +Expecting `+J.join(", ")+", got '"+(this.terminals_[F]||F)+"'":H="Parse error on line "+(T+1)+": Unexpected "+(F==A?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(H,{text:D.match,token:this.terminals_[F]||F,line:D.yylineno,loc:S,expected:J})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+F);switch(z[0]){case 1:y.push(F),x.push(D.yytext),b.push(D.yylloc),y.push(z[1]),F=null,B?(F=B,B=null):(E=D.yyleng,_=D.yytext,T=D.yylineno,S=D.yylloc,L>0&&L--);break;case 2:if(Q=this.productions_[z[1]][1],K.$=x[x.length-Q],K._$={first_line:b[b.length-(Q||1)].first_line,last_line:b[b.length-1].last_line,first_column:b[b.length-(Q||1)].first_column,last_column:b[b.length-1].last_column},O&&(K._$.range=[b[b.length-(Q||1)].range[0],b[b.length-1].range[1]]),j=this.performAction.apply(K,[_,E,T,k.yy,z[1],x,b].concat(I)),typeof j<"u")return j;Q&&(y=y.slice(0,-1*Q*2),x=x.slice(0,-1*Q),b=b.slice(0,-1*Q)),y.push(this.productions_[z[1]][0]),x.push(K.$),b.push(K._$),ee=w[y[y.length-2]][y[y.length-1]],y.push(ee);break;case 3:return!0}}return!0},"parse")},f=function(){var p={EOF:1,parseError:o(function(g,y){if(this.yy.parser)this.yy.parser.parseError(g,y);else throw new Error(g)},"parseError"),setInput:o(function(m,g){return this.yy=g||this.yy||{},this._input=m,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var g=m.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),m},"input"),unput:o(function(m){var g=m.length,y=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),y.length-1&&(this.yylineno-=y.length-1);var x=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:y?(y.length===v.length?this.yylloc.first_column:0)+v[v.length-y.length].length-y[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(m){this.unput(this.match.slice(m))},"less"),pastInput:o(function(){var m=this.matched.substr(0,this.matched.length-this.match.length);return(m.length>20?"...":"")+m.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var m=this.match;return m.length<20&&(m+=this._input.substr(0,20-m.length)),(m.substr(0,20)+(m.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var m=this.pastInput(),g=new Array(m.length+1).join("-");return m+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:o(function(m,g){var y,v,x;if(this.options.backtrack_lexer&&(x={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(x.yylloc.range=this.yylloc.range.slice(0))),v=m[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+m[0].length},this.yytext+=m[0],this.match+=m[0],this.matches=m,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(m[0].length),this.matched+=m[0],y=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),y)return y;if(this._backtrack){for(var b in x)this[b]=x[b];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var m,g,y,v;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),b=0;bg[0].length)){if(g=y,v=b,this.options.backtrack_lexer){if(m=this.test_match(y,x[b]),m!==!1)return m;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(m=this.test_match(g,x[v]),m!==!1?m:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var g=this.next();return g||this.lex()},"lex"),begin:o(function(g){this.conditionStack.push(g)},"begin"),popState:o(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:o(function(g){this.begin(g)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(g,y,v,x){var b=x;switch(v){case 0:break;case 1:break;case 2:return 10;case 3:break;case 4:break;case 5:return 4;case 6:return 11;case 7:return this.begin("acc_title"),12;break;case 8:return this.popState(),"acc_title_value";break;case 9:return this.begin("acc_descr"),14;break;case 10:return this.popState(),"acc_descr_value";break;case 11:this.begin("acc_descr_multiline");break;case 12:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:return 17;case 15:return 21;case 16:return 20;case 17:return 6;case 18:return"INVALID"}},"anonymous"),rules:[/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^\n]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^:\n]+)/i,/^(?::\s[^:\n]+)/i,/^(?:[^#:\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,9,11,14,15,16,17,18],inclusive:!0}}};return p}();h.lexer=f;function d(){this.yy={}}return o(d,"Parser"),d.prototype=h,h.Parser=d,new d}();vP.parser=vP;Z0e=vP});var bP={};vr(bP,{addEvent:()=>lpe,addSection:()=>ipe,addTask:()=>ope,addTaskOrg:()=>cpe,clear:()=>npe,default:()=>uqe,getCommonDb:()=>rpe,getSections:()=>ape,getTasks:()=>spe});var Xg,tpe,xP,WE,jg,rpe,npe,ipe,ape,spe,ope,lpe,cpe,epe,uqe,upe=M(()=>{"use strict";ki();Xg="",tpe=0,xP=[],WE=[],jg=[],rpe=o(()=>iy,"getCommonDb"),npe=o(function(){xP.length=0,WE.length=0,Xg="",jg.length=0,_r()},"clear"),ipe=o(function(t){Xg=t,xP.push(t)},"addSection"),ape=o(function(){return xP},"getSections"),spe=o(function(){let t=epe(),e=100,r=0;for(;!t&&rr.id===tpe-1).events.push(t)},"addEvent"),cpe=o(function(t){let e={section:Xg,type:Xg,description:t,task:t,classes:[]};WE.push(e)},"addTaskOrg"),epe=o(function(){let t=o(function(r){return jg[r].processed},"compileTask"),e=!0;for(let[r,n]of jg.entries())t(r),e=e&&n.processed;return e},"compileTasks"),uqe={clear:npe,getCommonDb:rpe,addSection:ipe,getSections:ape,getTasks:spe,addTask:ope,addTaskOrg:cpe,addEvent:lpe}});function ppe(t,e){t.each(function(){var r=ze(this),n=r.text().split(/(\s+|
    )/).reverse(),i,a=[],s=1.1,l=r.attr("y"),u=parseFloat(r.attr("dy")),h=r.text(null).append("tspan").attr("x",0).attr("y",l).attr("dy",u+"em");for(let f=0;fe||i==="
    ")&&(a.pop(),h.text(a.join(" ").trim()),i==="
    "?a=[""]:a=[i],h=r.append("tspan").attr("x",0).attr("y",l).attr("dy",s+"em").text(i))})}var hqe,YE,fqe,dqe,fpe,pqe,mqe,hpe,gqe,yqe,vqe,wP,dpe,xqe,bqe,wqe,Tqe,vf,mpe=M(()=>{"use strict";mr();hqe=12,YE=o(function(t,e){let r=t.append("rect");return r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),r.attr("rx",e.rx),r.attr("ry",e.ry),e.class!==void 0&&r.attr("class",e.class),r},"drawRect"),fqe=o(function(t,e){let n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");i.append("circle").attr("cx",e.cx-15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+15/3).attr("cy",e.cy-15/3).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666");function a(u){let h=El().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}o(a,"smile");function s(u){let h=El().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);u.append("path").attr("class","mouth").attr("d",h).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}o(s,"sad");function l(u){u.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return o(l,"ambivalent"),e.score>3?a(i):e.score<3?s(i):l(i),n},"drawFace"),dqe=o(function(t,e){let r=t.append("circle");return r.attr("cx",e.cx),r.attr("cy",e.cy),r.attr("class","actor-"+e.pos),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("r",e.r),r.class!==void 0&&r.attr("class",r.class),e.title!==void 0&&r.append("title").text(e.title),r},"drawCircle"),fpe=o(function(t,e){let r=e.text.replace(//gi," "),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.attr("class","legend"),n.style("text-anchor",e.anchor),e.class!==void 0&&n.attr("class",e.class);let i=n.append("tspan");return i.attr("x",e.x+e.textMargin*2),i.text(r),n},"drawText"),pqe=o(function(t,e){function r(i,a,s,l,u){return i+","+a+" "+(i+s)+","+a+" "+(i+s)+","+(a+l-u)+" "+(i+s-u*1.2)+","+(a+l)+" "+i+","+(a+l)}o(r,"genPoints");let n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,fpe(t,e)},"drawLabel"),mqe=o(function(t,e,r){let n=t.append("g"),i=wP();i.x=e.x,i.y=e.y,i.fill=e.fill,i.width=r.width,i.height=r.height,i.class="journey-section section-type-"+e.num,i.rx=3,i.ry=3,YE(n,i),dpe(r)(e.text,n,i.x,i.y,i.width,i.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),hpe=-1,gqe=o(function(t,e,r){let n=e.x+r.width/2,i=t.append("g");hpe++;let a=300+5*30;i.append("line").attr("id","task"+hpe).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",a).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),fqe(i,{cx:n,cy:300+(5-e.score)*30,score:e.score});let s=wP();s.x=e.x,s.y=e.y,s.fill=e.fill,s.width=r.width,s.height=r.height,s.class="task task-type-"+e.num,s.rx=3,s.ry=3,YE(i,s),dpe(r)(e.task,i,s.x,s.y,s.width,s.height,{class:"task"},r,e.colour)},"drawTask"),yqe=o(function(t,e){YE(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),vqe=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),wP=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),dpe=function(){function t(i,a,s,l,u,h,f,d){let p=a.append("text").attr("x",s+u/2).attr("y",l+h/2+5).style("font-color",d).style("text-anchor","middle").text(i);n(p,f)}o(t,"byText");function e(i,a,s,l,u,h,f,d,p){let{taskFontSize:m,taskFontFamily:g}=d,y=i.split(//gi);for(let v=0;v{"use strict";mr();mpe();ht();Vt();ni();kqe=o(function(t,e,r,n){let i=de(),a=i.leftMargin??50;Y.debug("timeline",n.db);let s=i.securityLevel,l;s==="sandbox"&&(l=ze("#i"+e));let h=(s==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body")).select("#"+e);h.append("g");let f=n.db.getTasks(),d=n.db.getCommonDb().getDiagramTitle();Y.debug("task",f),vf.initGraphics(h);let p=n.db.getSections();Y.debug("sections",p);let m=0,g=0,y=0,v=0,x=50+a,b=50;v=50;let w=0,_=!0;p.forEach(function(A){let I={number:w,descr:A,section:w,width:150,padding:20,maxHeight:m},D=vf.getVirtualNodeHeight(h,I,i);Y.debug("sectionHeight before draw",D),m=Math.max(m,D+20)});let T=0,E=0;Y.debug("tasks.length",f.length);for(let[A,I]of f.entries()){let D={number:A,descr:I,section:I.section,width:150,padding:20,maxHeight:g},k=vf.getVirtualNodeHeight(h,D,i);Y.debug("taskHeight before draw",k),g=Math.max(g,k+20),T=Math.max(T,I.events.length);let R=0;for(let S of I.events){let O={descr:S,section:I.section,number:I.section,width:150,padding:20,maxHeight:50};R+=vf.getVirtualNodeHeight(h,O,i)}E=Math.max(E,R)}Y.debug("maxSectionHeight before draw",m),Y.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach(A=>{let I=f.filter(S=>S.section===A),D={number:w,descr:A,section:w,width:200*Math.max(I.length,1)-50,padding:20,maxHeight:m};Y.debug("sectionNode",D);let k=h.append("g"),R=vf.drawNode(k,D,w,i);Y.debug("sectionNode output",R),k.attr("transform",`translate(${x}, ${v})`),b+=m+50,I.length>0&&gpe(h,I,w,x,b,g,i,T,E,m,!1),x+=200*Math.max(I.length,1),b=v,w++}):(_=!1,gpe(h,f,w,x,b,g,i,T,E,m,!0));let L=h.node().getBBox();Y.debug("bounds",L),d&&h.append("text").text(d).attr("x",L.width/2-a).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),y=_?m+g+150:g+100,h.append("g").attr("class","lineWrapper").append("line").attr("x1",a).attr("y1",y).attr("x2",L.width+3*a).attr("y2",y).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),_o(void 0,h,i.timeline?.padding??50,i.timeline?.useMaxWidth??!1)},"draw"),gpe=o(function(t,e,r,n,i,a,s,l,u,h,f){for(let d of e){let p={descr:d.task,section:r,number:r,width:150,padding:20,maxHeight:a};Y.debug("taskNode",p);let m=t.append("g").attr("class","taskWrapper"),y=vf.drawNode(m,p,r,s).height;if(Y.debug("taskHeight after draw",y),m.attr("transform",`translate(${n}, ${i})`),a=Math.max(a,y),d.events){let v=t.append("g").attr("class","lineWrapper"),x=a;i+=100,x=x+Eqe(t,d.events,r,n,i,s),i-=100,v.append("line").attr("x1",n+190/2).attr("y1",i+a).attr("x2",n+190/2).attr("y2",i+a+(f?a:h)+u+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}n=n+200,f&&!s.timeline?.disableMulticolor&&r++}i=i-10},"drawTasks"),Eqe=o(function(t,e,r,n,i,a){let s=0,l=i;i=i+100;for(let u of e){let h={descr:u,section:r,number:r,width:150,padding:20,maxHeight:50};Y.debug("eventNode",h);let f=t.append("g").attr("class","eventWrapper"),p=vf.drawNode(f,h,r,a).height;s=s+p,f.attr("transform",`translate(${n}, ${i})`),i=i+10+p}return i=l,s},"drawEvents"),ype={setConf:o(()=>{},"setConf"),draw:kqe}});var Sqe,Cqe,xpe,bpe=M(()=>{"use strict";To();Sqe=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Sqe(t)} + .section-root rect, .section-root path, .section-root circle { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`,"getStyles"),xpe=Cqe});var wpe={};vr(wpe,{diagram:()=>Aqe});var Aqe,Tpe=M(()=>{"use strict";J0e();upe();vpe();bpe();Aqe={db:bP,renderer:ype,parser:Z0e,styles:xpe}});var TP,Spe,Cpe=M(()=>{"use strict";TP=function(){var t=o(function(_,T,E,L){for(E=E||{},L=_.length;L--;E[_[L]]=T);return E},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,6,13,15,16,19,22],g=[1,33],y=[1,34],v=[1,6,7,11,13,15,16,19,22],x={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:o(function(T,E,L,C,A,I,D){var k=I.length-1;switch(A){case 6:case 7:return C;case 8:C.getLogger().trace("Stop NL ");break;case 9:C.getLogger().trace("Stop EOF ");break;case 11:C.getLogger().trace("Stop NL2 ");break;case 12:C.getLogger().trace("Stop EOF2 ");break;case 15:C.getLogger().info("Node: ",I[k].id),C.addNode(I[k-1].length,I[k].id,I[k].descr,I[k].type);break;case 16:C.getLogger().trace("Icon: ",I[k]),C.decorateNode({icon:I[k]});break;case 17:case 21:C.decorateNode({class:I[k]});break;case 18:C.getLogger().trace("SPACELIST");break;case 19:C.getLogger().trace("Node: ",I[k].id),C.addNode(0,I[k].id,I[k].descr,I[k].type);break;case 20:C.decorateNode({icon:I[k]});break;case 25:C.getLogger().trace("node found ..",I[k-2]),this.$={id:I[k-1],descr:I[k-1],type:C.getType(I[k-2],I[k])};break;case 26:this.$={id:I[k],descr:I[k],type:C.nodeType.DEFAULT};break;case 27:C.getLogger().trace("node found ..",I[k-3]),this.$={id:I[k-3],descr:I[k-1],type:C.getType(I[k-2],I[k])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:r,9:22,12:11,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},{6:h,7:f,10:23,11:d},t(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:s,22:l}),t(p,[2,18]),t(p,[2,19]),t(p,[2,20]),t(p,[2,21]),t(p,[2,23]),t(p,[2,24]),t(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:f,10:32,11:d},{1:[2,7],6:r,12:21,13:n,14:14,15:i,16:a,17:17,18:18,19:s,22:l},t(m,[2,14],{7:g,11:y}),t(v,[2,8]),t(v,[2,9]),t(v,[2,10]),t(p,[2,15]),t(p,[2,16]),t(p,[2,17]),{20:[1,35]},{21:[1,36]},t(m,[2,13],{7:g,11:y}),t(v,[2,11]),t(v,[2,12]),{21:[1,37]},t(p,[2,25]),t(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(T,E){if(E.recoverable)this.trace(T);else{var L=new Error(T);throw L.hash=E,L}},"parseError"),parse:o(function(T){var E=this,L=[0],C=[],A=[null],I=[],D=this.table,k="",R=0,S=0,O=0,N=2,P=1,F=I.slice.call(arguments,1),B=Object.create(this.lexer),$={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&($.yy[z]=this.yy[z]);B.setInput(T,$.yy),$.yy.lexer=B,$.yy.parser=this,typeof B.yylloc>"u"&&(B.yylloc={});var W=B.yylloc;I.push(W);var j=B.options&&B.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function K(ke){L.length=L.length-2*ke,A.length=A.length-ke,I.length=I.length-ke}o(K,"popStack");function ie(){var ke;return ke=C.pop()||B.lex()||P,typeof ke!="number"&&(ke instanceof Array&&(C=ke,ke=C.pop()),ke=E.symbols_[ke]||ke),ke}o(ie,"lex");for(var Q,ee,J,H,q,Z,ae={},ue,ce,te,De;;){if(J=L[L.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((Q===null||typeof Q>"u")&&(Q=ie()),H=D[J]&&D[J][Q]),typeof H>"u"||!H.length||!H[0]){var oe="";De=[];for(ue in D[J])this.terminals_[ue]&&ue>N&&De.push("'"+this.terminals_[ue]+"'");B.showPosition?oe="Parse error on line "+(R+1)+`: +`+B.showPosition()+` +Expecting `+De.join(", ")+", got '"+(this.terminals_[Q]||Q)+"'":oe="Parse error on line "+(R+1)+": Unexpected "+(Q==P?"end of input":"'"+(this.terminals_[Q]||Q)+"'"),this.parseError(oe,{text:B.match,token:this.terminals_[Q]||Q,line:B.yylineno,loc:W,expected:De})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+Q);switch(H[0]){case 1:L.push(Q),A.push(B.yytext),I.push(B.yylloc),L.push(H[1]),Q=null,ee?(Q=ee,ee=null):(S=B.yyleng,k=B.yytext,R=B.yylineno,W=B.yylloc,O>0&&O--);break;case 2:if(ce=this.productions_[H[1]][1],ae.$=A[A.length-ce],ae._$={first_line:I[I.length-(ce||1)].first_line,last_line:I[I.length-1].last_line,first_column:I[I.length-(ce||1)].first_column,last_column:I[I.length-1].last_column},j&&(ae._$.range=[I[I.length-(ce||1)].range[0],I[I.length-1].range[1]]),Z=this.performAction.apply(ae,[k,S,R,$.yy,H[1],A,I].concat(F)),typeof Z<"u")return Z;ce&&(L=L.slice(0,-1*ce*2),A=A.slice(0,-1*ce),I=I.slice(0,-1*ce)),L.push(this.productions_[H[1]][0]),A.push(ae.$),I.push(ae._$),te=D[L[L.length-2]][L[L.length-1]],L.push(te);break;case 3:return!0}}return!0},"parse")},b=function(){var _={EOF:1,parseError:o(function(E,L){if(this.yy.parser)this.yy.parser.parseError(E,L);else throw new Error(E)},"parseError"),setInput:o(function(T,E){return this.yy=E||this.yy||{},this._input=T,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var T=this._input[0];this.yytext+=T,this.yyleng++,this.offset++,this.match+=T,this.matched+=T;var E=T.match(/(?:\r\n?|\n).*/g);return E?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),T},"input"),unput:o(function(T){var E=T.length,L=T.split(/(?:\r\n?|\n)/g);this._input=T+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-E),this.offset-=E;var C=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var A=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===C.length?this.yylloc.first_column:0)+C[C.length-L.length].length-L[0].length:this.yylloc.first_column-E},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-E]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(T){this.unput(this.match.slice(T))},"less"),pastInput:o(function(){var T=this.matched.substr(0,this.matched.length-this.match.length);return(T.length>20?"...":"")+T.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var T=this.match;return T.length<20&&(T+=this._input.substr(0,20-T.length)),(T.substr(0,20)+(T.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var T=this.pastInput(),E=new Array(T.length+1).join("-");return T+this.upcomingInput()+` +`+E+"^"},"showPosition"),test_match:o(function(T,E){var L,C,A;if(this.options.backtrack_lexer&&(A={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(A.yylloc.range=this.yylloc.range.slice(0))),C=T[0].match(/(?:\r\n?|\n).*/g),C&&(this.yylineno+=C.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:C?C[C.length-1].length-C[C.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+T[0].length},this.yytext+=T[0],this.match+=T[0],this.matches=T,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(T[0].length),this.matched+=T[0],L=this.performAction.call(this,this.yy,this,E,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),L)return L;if(this._backtrack){for(var I in A)this[I]=A[I];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var T,E,L,C;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),I=0;IE[0].length)){if(E=L,C=I,this.options.backtrack_lexer){if(T=this.test_match(L,A[I]),T!==!1)return T;if(this._backtrack){E=!1;continue}else return!1}else if(!this.options.flex)break}return E?(T=this.test_match(E,A[C]),T!==!1?T:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var E=this.next();return E||this.lex()},"lex"),begin:o(function(E){this.conditionStack.push(E)},"begin"),popState:o(function(){var E=this.conditionStack.length-1;return E>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(E){return E=this.conditionStack.length-1-Math.abs(E||0),E>=0?this.conditionStack[E]:"INITIAL"},"topState"),pushState:o(function(E){this.begin(E)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(E,L,C,A){var I=A;switch(C){case 0:return E.getLogger().trace("Found comment",L.yytext),6;break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;break;case 4:this.popState();break;case 5:E.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return E.getLogger().trace("SPACELINE"),6;break;case 7:return 7;case 8:return 15;case 9:E.getLogger().trace("end icon"),this.popState();break;case 10:return E.getLogger().trace("Exploding node"),this.begin("NODE"),19;break;case 11:return E.getLogger().trace("Cloud"),this.begin("NODE"),19;break;case 12:return E.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;break;case 13:return E.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;break;case 14:return this.begin("NODE"),19;break;case 15:return this.begin("NODE"),19;break;case 16:return this.begin("NODE"),19;break;case 17:return this.begin("NODE"),19;break;case 18:return 13;case 19:return 22;case 20:return 11;case 21:this.begin("NSTR2");break;case 22:return"NODE_DESCR";case 23:this.popState();break;case 24:E.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return E.getLogger().trace("description:",L.yytext),"NODE_DESCR";break;case 26:this.popState();break;case 27:return this.popState(),E.getLogger().trace("node end ))"),"NODE_DEND";break;case 28:return this.popState(),E.getLogger().trace("node end )"),"NODE_DEND";break;case 29:return this.popState(),E.getLogger().trace("node end ...",L.yytext),"NODE_DEND";break;case 30:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 31:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 32:return this.popState(),E.getLogger().trace("node end (-"),"NODE_DEND";break;case 33:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 34:return this.popState(),E.getLogger().trace("node end (("),"NODE_DEND";break;case 35:return E.getLogger().trace("Long description:",L.yytext),20;break;case 36:return E.getLogger().trace("Long description:",L.yytext),20;break}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR2:{rules:[22,23],inclusive:!1},NSTR:{rules:[25,26],inclusive:!1},NODE:{rules:[21,24,27,28,29,30,31,32,33,34,35,36],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};return _}();x.lexer=b;function w(){this.yy={}}return o(w,"Parser"),w.prototype=x,x.Parser=w,new w}();TP.parser=TP;Spe=TP});var Vl,Ape,kP,Nqe,Rqe,Mqe,Iqe,Ui,Oqe,Pqe,Bqe,Fqe,zqe,Gqe,$qe,_pe,Lpe=M(()=>{"use strict";Vt();fr();ht();hs();Vl=[],Ape=0,kP={},Nqe=o(()=>{Vl=[],Ape=0,kP={}},"clear"),Rqe=o(function(t){for(let e=Vl.length-1;e>=0;e--)if(Vl[e].levelVl.length>0?Vl[0]:null,"getMindmap"),Iqe=o((t,e,r,n)=>{Y.info("addNode",t,e,r,n);let i=de(),a=i.mindmap?.padding??ur.mindmap.padding;switch(n){case Ui.ROUNDED_RECT:case Ui.RECT:case Ui.HEXAGON:a*=2}let s={id:Ape++,nodeId:Tr(e,i),level:t,descr:Tr(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:a},l=Rqe(t);if(l)l.children.push(s),Vl.push(s);else if(Vl.length===0)Vl.push(s);else throw new Error('There can be only one root. No parent could be found for ("'+s.descr+'")')},"addNode"),Ui={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Oqe=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Ui.RECT;case"(":return e===")"?Ui.ROUNDED_RECT:Ui.CLOUD;case"((":return Ui.CIRCLE;case")":return Ui.CLOUD;case"))":return Ui.BANG;case"{{":return Ui.HEXAGON;default:return Ui.DEFAULT}},"getType"),Pqe=o((t,e)=>{kP[t]=e},"setElementForId"),Bqe=o(t=>{if(!t)return;let e=de(),r=Vl[Vl.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.class=Tr(t.class,e))},"decorateNode"),Fqe=o(t=>{switch(t){case Ui.DEFAULT:return"no-border";case Ui.RECT:return"rect";case Ui.ROUNDED_RECT:return"rounded-rect";case Ui.CIRCLE:return"circle";case Ui.CLOUD:return"cloud";case Ui.BANG:return"bang";case Ui.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),zqe=o(()=>Y,"getLogger"),Gqe=o(t=>kP[t],"getElementById"),$qe={clear:Nqe,addNode:Iqe,getMindmap:Mqe,nodeType:Ui,getType:Oqe,setElementForId:Pqe,decorateNode:Bqe,type2Str:Fqe,getLogger:zqe,getElementById:Gqe},_pe=$qe});function Yi(t){"@babel/helpers - typeof";return Yi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Yi(t)}function JP(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Dpe(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[n++]}},"n"),e:o(function(u){throw u},"e"),f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,s=!1,l;return{s:o(function(){r=r.call(t)},"s"),n:o(function(){var u=r.next();return a=u.done,u},"n"),e:o(function(u){s=!0,l=u},"e"),f:o(function(){try{!a&&r.return!=null&&r.return()}finally{if(s)throw l}},"f")}}function pXe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function mXe(t,e){return e={exports:{}},t(e,e.exports),e.exports}function TXe(t){for(var e=t.length;e--&&wXe.test(t.charAt(e)););return e}function SXe(t){return t&&t.slice(0,kXe(t)+1).replace(EXe,"")}function DXe(t){var e=_Xe.call(t,Lx),r=t[Lx];try{t[Lx]=void 0;var n=!0}catch{}var i=LXe.call(t);return n&&(e?t[Lx]=r:delete t[Lx]),i}function IXe(t){return MXe.call(t)}function FXe(t){return t==null?t===void 0?BXe:PXe:Ipe&&Ipe in Object(t)?NXe(t):OXe(t)}function zXe(t){return t!=null&&typeof t=="object"}function VXe(t){return typeof t=="symbol"||GXe(t)&&tge(t)==$Xe}function qXe(t){if(typeof t=="number")return t;if(eb(t))return Ope;if(F0(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=F0(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=CXe(t);var r=HXe.test(t);return r||WXe.test(t)?YXe(t.slice(2),r?2:8):UXe.test(t)?Ope:+t}function QXe(t,e,r){var n,i,a,s,l,u,h=0,f=!1,d=!1,p=!0;if(typeof t!="function")throw new TypeError(XXe);e=Ppe(e)||0,F0(r)&&(f=!!r.leading,d="maxWait"in r,a=d?jXe(Ppe(r.maxWait)||0,e):a,p="trailing"in r?!!r.trailing:p);function m(E){var L=n,C=i;return n=i=void 0,h=E,s=t.apply(C,L),s}o(m,"invokeFunc");function g(E){return h=E,l=setTimeout(x,e),f?m(E):s}o(g,"leadingEdge");function y(E){var L=E-u,C=E-h,A=e-L;return d?KXe(A,a-C):A}o(y,"remainingWait");function v(E){var L=E-u,C=E-h;return u===void 0||L>=e||L<0||d&&C>=a}o(v,"shouldInvoke");function x(){var E=EP();if(v(E))return b(E);l=setTimeout(x,y(E))}o(x,"timerExpired");function b(E){return l=void 0,p&&n?m(E):(n=i=void 0,s)}o(b,"trailingEdge");function w(){l!==void 0&&clearTimeout(l),h=0,n=u=i=l=void 0}o(w,"cancel");function _(){return l===void 0?s:b(EP())}o(_,"flush");function T(){var E=EP(),L=v(E);if(n=arguments,i=this,u=E,L){if(l===void 0)return g(u);if(d)return clearTimeout(l),l=setTimeout(x,e),m(u)}return l===void 0&&(l=setTimeout(x,e)),s}return o(T,"debounced"),T.cancel=w,T.flush=_,T}function D6(t,e,r,n,i,a){var s;return ti(t)?s=t:s=u1[t]||u1.euclidean,e===0&&ti(t)?s(i,a):s(e,r,n,i,a)}function UKe(t,e){if(N6(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||eb(t)?!0:VKe.test(t)||!$Ke.test(t)||e!=null&&t in Object(e)}function jKe(t){if(!F0(t))return!1;var e=tge(t);return e==YKe||e==qKe||e==WKe||e==XKe}function ZKe(t){return!!rme&&rme in t}function rQe(t){if(t!=null){try{return tQe.call(t)}catch{}try{return t+""}catch{}}return""}function hQe(t){if(!F0(t)||JKe(t))return!1;var e=KKe(t)?uQe:aQe;return e.test(nQe(t))}function dQe(t,e){return t?.[e]}function mQe(t,e){var r=pQe(t,e);return fQe(r)?r:void 0}function yQe(){this.__data__=qx?qx(null):{},this.size=0}function xQe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function EQe(t){var e=this.__data__;if(qx){var r=e[t];return r===wQe?void 0:r}return kQe.call(e,t)?e[t]:void 0}function _Qe(t){var e=this.__data__;return qx?e[t]!==void 0:AQe.call(e,t)}function NQe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=qx&&e===void 0?DQe:e,this}function p1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1}function WQe(t,e){var r=this.__data__,n=R6(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function m1(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e-1&&t%1==0&&t0;){var f=i.shift();e(f),a.add(f.id()),l&&n(i,a,f)}return t}function Ige(t,e,r){if(r.isParent())for(var n=r._private.children,i=0;i0&&arguments[0]!==void 0?arguments[0]:LJe,e=arguments.length>1?arguments[1]:void 0,r=0;r0?k=S:D=S;while(Math.abs(R)>s&&++O=a?b(I,O):N===0?O:_(I,D,D+h)}o(T,"getTForX");var E=!1;function L(){E=!0,(t!==e||r!==n)&&w()}o(L,"precompute");var C=o(function(D){return E||L(),t===e&&r===n?D:D===0?0:D===1?1:v(T(D),e,n)},"f");C.getControlPoints=function(){return[{x:t,y:e},{x:r,y:n}]};var A="generateBezier("+[t,e,r,n]+")";return C.toString=function(){return A},C}function wme(t,e,r,n,i){if(n===1||e===r)return r;var a=i(e,r,n);return t==null||((t.roundValue||t.color)&&(a=Math.round(a)),t.min!==void 0&&(a=Math.max(a,t.min)),t.max!==void 0&&(a=Math.min(a,t.max))),a}function Tme(t,e){return t.pfValue!=null||t.value!=null?t.pfValue!=null&&(e==null||e.type.units!=="%")?t.pfValue:t.value:t}function Zg(t,e,r,n,i){var a=i!=null?i.type:null;r<0?r=0:r>1&&(r=1);var s=Tme(t,i),l=Tme(e,i);if(xt(s)&&xt(l))return wme(a,s,l,r,n);if(wn(s)&&wn(l)){for(var u=[],h=0;h0?(m==="spring"&&g.push(s.duration),s.easingImpl=c6[m].apply(null,g)):s.easingImpl=c6[m]}var y=s.easingImpl,v;if(s.duration===0?v=1:v=(r-u)/s.duration,s.applying&&(v=s.progress),v<0?v=0:v>1&&(v=1),s.delay==null){var x=s.startPosition,b=s.position;if(b&&i&&!t.locked()){var w={};Mx(x.x,b.x)&&(w.x=Zg(x.x,b.x,v,y)),Mx(x.y,b.y)&&(w.y=Zg(x.y,b.y,v,y)),t.position(w)}var _=s.startPan,T=s.pan,E=a.pan,L=T!=null&&n;L&&(Mx(_.x,T.x)&&(E.x=Zg(_.x,T.x,v,y)),Mx(_.y,T.y)&&(E.y=Zg(_.y,T.y,v,y)),t.emit("pan"));var C=s.startZoom,A=s.zoom,I=A!=null&&n;I&&(Mx(C,A)&&(a.zoom=Wx(a.minZoom,Zg(C,A,v,y),a.maxZoom)),t.emit("zoom")),(L||I)&&t.emit("viewport");var D=s.style;if(D&&D.length>0&&i){for(var k=0;k=0;L--){var C=E[L];C()}E.splice(0,E.length)},"callbacks"),b=m.length-1;b>=0;b--){var w=m[b],_=w._private;if(_.stopped){m.splice(b,1),_.hooked=!1,_.playing=!1,_.started=!1,x(_.frames);continue}!_.playing&&!_.applying||(_.playing&&_.applying&&(_.applying=!1),_.started||UJe(f,w,t),VJe(f,w,t,d),_.applying&&(_.applying=!1),x(_.frames),_.step!=null&&_.step(t),w.completed()&&(m.splice(b,1),_.hooked=!1,_.playing=!1,_.started=!1,x(_.completes)),y=!0)}return!d&&m.length===0&&g.length===0&&n.push(f),y}o(i,"stepOne");for(var a=!1,s=0;s0?e.notify("draw",r):e.notify("draw")),r.unmerge(n),e.emit("step")}function Qge(t){this.options=ir({},QJe,ZJe,t)}function Zge(t){this.options=ir({},JJe,t)}function Jge(t){this.options=ir({},eet,t)}function G6(t){this.options=ir({},tet,t),this.options.layout=this;var e=this.options.eles.nodes(),r=this.options.eles.edges(),n=r.filter(function(i){var a=i.source().data("id"),s=i.target().data("id"),l=e.some(function(h){return h.data("id")===a}),u=e.some(function(h){return h.data("id")===s});return!l||!u});this.options.eles=this.options.eles.not(n)}function t1e(t){this.options=ir({},xet,t)}function vB(t){this.options=ir({},bet,t)}function r1e(t){this.options=ir({},wet,t)}function n1e(t){this.options=ir({},Tet,t)}function i1e(t){this.options=t,this.notifications=0}function o1e(t,e){e.radius===0?t.lineTo(e.cx,e.cy):t.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function bB(t,e,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return n===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Cet(t,e,r,n,i),{cx:WP,cy:YP,radius:O0,startX:a1e,startY:s1e,stopX:qP,stopY:XP,startAngle:$c.ang+Math.PI/2*P0,endAngle:nl.ang-Math.PI/2*P0,counterClockwise:f6})}function l1e(t){var e=[];if(t!=null){for(var r=0;r5&&arguments[5]!==void 0?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;t.beginPath(),t.moveTo(e+a,r),t.lineTo(e+n-a,r),t.quadraticCurveTo(e+n,r,e+n,r+a),t.lineTo(e+n,r+i-a),t.quadraticCurveTo(e+n,r+i,e+n-a,r+i),t.lineTo(e+a,r+i),t.quadraticCurveTo(e,r+i,e,r+i-a),t.lineTo(e,r+a),t.quadraticCurveTo(e,r,e+a,r),t.closePath(),s?t.stroke():t.fill()}function ptt(t,e){for(var r=atob(t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a{"use strict";o(Yi,"_typeof");o(JP,"_classCallCheck");o(Dpe,"_defineProperties");o(eB,"_createClass");o(Hme,"_defineProperty$1");o(Ul,"_slicedToArray");o(Vqe,"_arrayWithHoles");o(Uqe,"_iterableToArrayLimit");o(Wme,"_unsupportedIterableToArray");o(Npe,"_arrayLikeToArray");o(Hqe,"_nonIterableRest");o(Yme,"_createForOfIteratorHelper");Hi=typeof window>"u"?null:window,Rpe=Hi?Hi.navigator:null;Hi&&Hi.document;Wqe=Yi(""),qme=Yi({}),Yqe=Yi(function(){}),qqe=typeof HTMLElement>"u"?"undefined":Yi(HTMLElement),Zx=o(function(e){return e&&e.instanceString&&ti(e.instanceString)?e.instanceString():null},"instanceStr"),Zt=o(function(e){return e!=null&&Yi(e)==Wqe},"string"),ti=o(function(e){return e!=null&&Yi(e)===Yqe},"fn"),wn=o(function(e){return!po(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Vr=o(function(e){return e!=null&&Yi(e)===qme&&!wn(e)&&e.constructor===Object},"plainObject"),Xqe=o(function(e){return e!=null&&Yi(e)===qme},"object"),xt=o(function(e){return e!=null&&Yi(e)===Yi(1)&&!isNaN(e)},"number"),jqe=o(function(e){return xt(e)&&Math.floor(e)===e},"integer"),p6=o(function(e){if(qqe!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),po=o(function(e){return Jx(e)||Xme(e)},"elementOrCollection"),Jx=o(function(e){return Zx(e)==="collection"&&e._private.single},"element"),Xme=o(function(e){return Zx(e)==="collection"&&!e._private.single},"collection"),tB=o(function(e){return Zx(e)==="core"},"core"),jme=o(function(e){return Zx(e)==="stylesheet"},"stylesheet"),Kqe=o(function(e){return Zx(e)==="event"},"event"),Sf=o(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),Qqe=o(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),Zqe=o(function(e){return Vr(e)&&xt(e.x1)&&xt(e.x2)&&xt(e.y1)&&xt(e.y2)},"boundingBox"),Jqe=o(function(e){return Xqe(e)&&ti(e.then)},"promise"),eXe=o(function(){return Rpe&&Rpe.userAgent.match(/msie|trident|edge/i)},"ms"),$x=o(function(e,r){r||(r=o(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var a=[],s=0;sr?1:0},"ascending"),oXe=o(function(e,r){return-1*Qme(e,r)},"descending"),ir=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(v-=1),v<1/6?g+(y-g)*6*v:v<1/2?y:v<2/3?g+(y-g)*(2/3-v)*6:g}o(f,"hue2rgb");var d=new RegExp("^"+nXe+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,i=parseFloat(d[2]),i<0||i>100||(i=i/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,s=d[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(i===0)l=u=h=Math.round(a*255);else{var p=a<.5?a*(1+i):a+i-a*i,m=2*a-p;l=Math.round(255*f(m,p,n+1/3)),u=Math.round(255*f(m,p,n)),h=Math.round(255*f(m,p,n-1/3))}r=[l,u,h,s]}return r},"hsl2tuple"),uXe=o(function(e){var r,n=new RegExp("^"+tXe+"$").exec(e);if(n){r=[];for(var i=[],a=1;a<=3;a++){var s=n[a];if(s[s.length-1]==="%"&&(i[a]=!0),s=parseFloat(s),i[a]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var l=i[1]||i[2]||i[3],u=i[1]&&i[2]&&i[3];if(l&&!u)return;var h=n[4];if(h!==void 0){if(h=parseFloat(h),h<0||h>1)return;r.push(h)}}return r},"rgb2tuple"),hXe=o(function(e){return dXe[e.toLowerCase()]},"colorname2tuple"),fXe=o(function(e){return(wn(e)?e:null)||hXe(e)||lXe(e)||uXe(e)||cXe(e)},"color2tuple"),dXe={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Zme=o(function(e){for(var r=e.map,n=e.keys,i=n.length,a=0;a1&&arguments[1]!==void 0?arguments[1]:t1,n=r,i;i=e.next(),!i.done;)n=n*nge+i.value|0;return n},"hashIterableInts"),Vx=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t1;return r*nge+e|0},"hashInt"),Ux=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ox;return(r<<5)+r+e|0},"hashIntAlt"),JXe=o(function(e,r){return e*2097152+r},"combineHashes"),xf=o(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),qE=o(function(e,r){return[Vx(e[0],r[0]),Ux(e[1],r[1])]},"hashArrays"),eje=o(function(e,r){var n={value:0,done:!1},i=0,a=e.length,s={next:o(function(){return i=0&&!(e[i]===r&&(e.splice(i,1),n));i--);},"removeFromArray"),aB=o(function(e){e.splice(0,e.length)},"clearArray"),oje=o(function(e,r){for(var n=0;n"u"?"undefined":Yi(Set))!==cje?Set:uje,_6=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!tB(e)){hi("An element must have a core reference and parameters set");return}var i=r.group;if(i==null&&(r.data&&r.data.source!=null&&r.data.target!=null?i="edges":i="nodes"),i!=="nodes"&&i!=="edges"){hi("An element must be of type `nodes` or `edges`; you specified `"+i+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?i==="edges":!!r.pannable,active:!1,classes:new f1,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),r.renderedPosition){var s=r.renderedPosition,l=e.pan(),u=e.zoom();a.position={x:(s.x-l.x)/u,y:(s.y-l.y)/u}}var h=[];wn(r.classes)?h=r.classes:Zt(r.classes)&&(h=r.classes.split(/\s+/));for(var f=0,d=h.length;fb?1:0},"defaultCmp"),f=o(function(x,b,w,_,T){var E;if(w==null&&(w=0),T==null&&(T=n),w<0)throw new Error("lo must be non-negative");for(_==null&&(_=x.length);w<_;)E=i((w+_)/2),T(b,x[E])<0?_=E:w=E+1;return[].splice.apply(x,[w,w-w].concat(b)),b},"insort"),l=o(function(x,b,w){return w==null&&(w=n),x.push(b),y(x,0,x.length-1,w)},"heappush"),s=o(function(x,b){var w,_;return b==null&&(b=n),w=x.pop(),x.length?(_=x[0],x[0]=w,v(x,0,b)):_=w,_},"heappop"),h=o(function(x,b,w){var _;return w==null&&(w=n),_=x[0],x[0]=b,v(x,0,w),_},"heapreplace"),u=o(function(x,b,w){var _;return w==null&&(w=n),x.length&&w(x[0],b)<0&&(_=[x[0],b],b=_[0],x[0]=_[1],v(x,0,w)),b},"heappushpop"),a=o(function(x,b){var w,_,T,E,L,C;for(b==null&&(b=n),E=function(){C=[];for(var A=0,I=i(x.length/2);0<=I?AI;0<=I?A++:A--)C.push(A);return C}.apply(this).reverse(),L=[],_=0,T=E.length;_D;0<=D?++C:--C)k.push(s(x,w));return k},"nsmallest"),y=o(function(x,b,w,_){var T,E,L;for(_==null&&(_=n),T=x[w];w>b;){if(L=w-1>>1,E=x[L],_(T,E)<0){x[w]=E,w=L;continue}break}return x[w]=T},"_siftdown"),v=o(function(x,b,w){var _,T,E,L,C;for(w==null&&(w=n),T=x.length,C=b,E=x[b],_=2*b+1;_0;){var E=b.pop(),L=v(E),C=E.id();if(p[C]=L,L!==1/0)for(var A=E.neighborhood().intersect(g),I=0;I0)for(F.unshift(P);d[$];){var z=d[$];F.unshift(z.edge),F.unshift(z.node),B=z.node,$=B.id()}return l.spawn(F)},"pathTo")}},"dijkstra")},pje={kruskal:o(function(e){e=e||function(w){return 1};for(var r=this.byGroup(),n=r.nodes,i=r.edges,a=n.length,s=new Array(a),l=n,u=o(function(_){for(var T=0;T0;){if(T(),L++,_===f){for(var C=[],A=a,I=f,D=x[I];C.unshift(A),D!=null&&C.unshift(D),A=v[I],A!=null;)I=A.id(),D=x[I];return{found:!0,distance:d[_],path:this.spawn(C),steps:L}}m[_]=!0;for(var k=w._private.edges,R=0;RD&&(g[I]=D,b[I]=A,w[I]=T),!a){var k=A*f+C;!a&&g[k]>D&&(g[k]=D,b[k]=C,w[k]=T)}}}for(var R=0;R1&&arguments[1]!==void 0?arguments[1]:s,Be=w(ke),Ve=[],Ge=Be;;){if(Ge==null)return r.spawn();var He=b(Ge),xe=He.edge,X=He.pred;if(Ve.unshift(Ge[0]),Ge.same(Fe)&&Ve.length>0)break;xe!=null&&Ve.unshift(xe),Ge=X}return u.spawn(Ve)},"pathTo"),E=0;E=0;f--){var d=h[f],p=d[1],m=d[2];(r[p]===l&&r[m]===u||r[p]===u&&r[m]===l)&&h.splice(f,1)}for(var g=0;gi;){var a=Math.floor(Math.random()*r.length);r=Tje(a,e,r),n--}return r},"contractUntil"),kje={kargerStein:o(function(){var e=this,r=this.byGroup(),n=r.nodes,i=r.edges;i.unmergeBy(function(F){return F.isLoop()});var a=n.length,s=i.length,l=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/wje);if(a<2){hi("At least 2 nodes are required for Karger-Stein algorithm");return}for(var h=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=-1/0,a=r;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=0,a=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;i?e=e.slice(r,n):(n0&&e.splice(0,r));for(var l=0,u=e.length-1;u>=0;u--){var h=e[u];s?isFinite(h)||(e[u]=-1/0,l++):e.splice(u,1)}a&&e.sort(function(p,m){return p-m});var f=e.length,d=Math.floor(f/2);return f%2!==0?e[d+1+l]:(e[d-1+l]+e[d+l])/2},"median"),Lje=o(function(e){return Math.PI*e/180},"deg2rad"),XE=o(function(e,r){return Math.atan2(r,e)-Math.PI/2},"getAngleFromDisp"),sB=Math.log2||function(t){return Math.log(t)/Math.log(2)},hge=o(function(e){return e>0?1:e<0?-1:0},"signum"),G0=o(function(e,r){return Math.sqrt(M0(e,r))},"dist"),M0=o(function(e,r){var n=r.x-e.x,i=r.y-e.y;return n*n+i*i},"sqdist"),Dje=o(function(e){for(var r=e.length,n=0,i=0;i=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),Rje=o(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),Mje=o(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Ije=o(function(e,r,n){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+n,y2:e.y2+n,w:e.w,h:e.h}},"shiftBoundingBox"),fge=o(function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},"updateBoundingBox"),Oje=o(function(e,r,n){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),a6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),s6=o(function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,i,a,s;if(r.length===1)n=i=a=s=r[0];else if(r.length===2)n=a=r[0],s=i=r[1];else if(r.length===4){var l=Ul(r,4);n=l[0],i=l[1],a=l[2],s=l[3]}return e.x1-=s,e.x2+=i,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Gpe=o(function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),oB=o(function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},"boundingBoxesIntersect"),c1=o(function(e,r,n){return e.x1<=r&&r<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),Pje=o(function(e,r){return c1(e,r.x,r.y)},"pointInBoundingBox"),dge=o(function(e,r){return c1(e,r.x1,r.y1)&&c1(e,r.x2,r.y2)},"boundingBoxInBoundingBox"),pge=o(function(e,r,n,i,a,s,l){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",h=u==="auto"?$0(a,s):u,f=a/2,d=s/2;h=Math.min(h,f,d);var p=h!==f,m=h!==d,g;if(p){var y=n-f+h-l,v=i-d-l,x=n+f-h+l,b=v;if(g=Tf(e,r,n,i,y,v,x,b,!1),g.length>0)return g}if(m){var w=n+f+l,_=i-d+h-l,T=w,E=i+d-h+l;if(g=Tf(e,r,n,i,w,_,T,E,!1),g.length>0)return g}if(p){var L=n-f+h-l,C=i+d+l,A=n+f-h+l,I=C;if(g=Tf(e,r,n,i,L,C,A,I,!1),g.length>0)return g}if(m){var D=n-f-l,k=i-d+h-l,R=D,S=i+d-h+l;if(g=Tf(e,r,n,i,D,k,R,S,!1),g.length>0)return g}var O;{var N=n-f+h,P=i-d+h;if(O=Px(e,r,n,i,N,P,h+l),O.length>0&&O[0]<=N&&O[1]<=P)return[O[0],O[1]]}{var F=n+f-h,B=i-d+h;if(O=Px(e,r,n,i,F,B,h+l),O.length>0&&O[0]>=F&&O[1]<=B)return[O[0],O[1]]}{var $=n+f-h,z=i+d-h;if(O=Px(e,r,n,i,$,z,h+l),O.length>0&&O[0]>=$&&O[1]>=z)return[O[0],O[1]]}{var W=n-f+h,j=i+d-h;if(O=Px(e,r,n,i,W,j,h+l),O.length>0&&O[0]<=W&&O[1]>=j)return[O[0],O[1]]}return[]},"roundRectangleIntersectLine"),Bje=o(function(e,r,n,i,a,s,l){var u=l,h=Math.min(n,a),f=Math.max(n,a),d=Math.min(i,s),p=Math.max(i,s);return h-u<=e&&e<=f+u&&d-u<=r&&r<=p+u},"inLineVicinity"),Fje=o(function(e,r,n,i,a,s,l,u,h){var f={x1:Math.min(n,l,a)-h,x2:Math.max(n,l,a)+h,y1:Math.min(i,u,s)-h,y2:Math.max(i,u,s)+h};return!(ef.x2||rf.y2)},"inBezierVicinity"),zje=o(function(e,r,n,i){n-=i;var a=r*r-4*e*n;if(a<0)return[];var s=Math.sqrt(a),l=2*e,u=(-r+s)/l,h=(-r-s)/l;return[u,h]},"solveQuadratic"),Gje=o(function(e,r,n,i,a){var s=1e-5;e===0&&(e=s),r/=e,n/=e,i/=e;var l,u,h,f,d,p,m,g;if(u=(3*n-r*r)/9,h=-(27*i)+r*(9*n-2*(r*r)),h/=54,l=u*u*u+h*h,a[1]=0,m=r/3,l>0){d=h+Math.sqrt(l),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),p=h-Math.sqrt(l),p=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),a[0]=-m+d+p,m+=(d+p)/2,a[4]=a[2]=-m,m=Math.sqrt(3)*(-p+d)/2,a[3]=m,a[5]=-m;return}if(a[5]=a[3]=0,l===0){g=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-m+2*g,a[4]=a[2]=-(g+m);return}u=-u,f=u*u*u,f=Math.acos(h/Math.sqrt(f)),g=2*Math.sqrt(u),a[0]=-m+g*Math.cos(f/3),a[2]=-m+g*Math.cos((f+2*Math.PI)/3),a[4]=-m+g*Math.cos((f+4*Math.PI)/3)},"solveCubic"),$je=o(function(e,r,n,i,a,s,l,u){var h=1*n*n-4*n*a+2*n*l+4*a*a-4*a*l+l*l+i*i-4*i*s+2*i*u+4*s*s-4*s*u+u*u,f=1*9*n*a-3*n*n-3*n*l-6*a*a+3*a*l+9*i*s-3*i*i-3*i*u-6*s*s+3*s*u,d=1*3*n*n-6*n*a+n*l-n*e+2*a*a+2*a*e-l*e+3*i*i-6*i*s+i*u-i*r+2*s*s+2*s*r-u*r,p=1*n*a-n*n+n*e-a*e+i*s-i*i+i*r-s*r,m=[];Gje(h,f,d,p,m);for(var g=1e-7,y=[],v=0;v<6;v+=2)Math.abs(m[v+1])=0&&m[v]<=1&&y.push(m[v]);y.push(1),y.push(0);for(var x=-1,b,w,_,T=0;T=0?_h?(e-a)*(e-a)+(r-s)*(r-s):f-p},"sqdistToFiniteLine"),Gs=o(function(e,r,n){for(var i,a,s,l,u,h=0,f=0;f=e&&e>=s||i<=e&&e<=s)u=(e-i)/(s-i)*(l-a)+a,u>r&&h++;else continue;return h%2!==0},"pointInsidePolygonPoints"),ju=o(function(e,r,n,i,a,s,l,u,h){var f=new Array(n.length),d;u[0]!=null?(d=Math.atan(u[1]/u[0]),u[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=u;for(var p=Math.cos(-d),m=Math.sin(-d),g=0;g0){var v=v6(f,-h);y=y6(v)}else y=f;return Gs(e,r,y)},"pointInsidePolygon"),Uje=o(function(e,r,n,i,a,s,l,u){for(var h=new Array(n.length*2),f=0;f=0&&v<=1&&b.push(v),x>=0&&x<=1&&b.push(x),b.length===0)return[];var w=b[0]*u[0]+e,_=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[w,_];var T=b[1]*u[0]+e,E=b[1]*u[1]+r;return[w,_,T,E]}else return[w,_]},"intersectLineCircle"),AP=o(function(e,r,n){return r<=e&&e<=n||n<=e&&e<=r?e:e<=r&&r<=n||n<=r&&r<=e?r:n},"midOfThree"),Tf=o(function(e,r,n,i,a,s,l,u,h){var f=e-a,d=n-e,p=l-a,m=r-s,g=i-r,y=u-s,v=p*m-y*f,x=d*m-g*f,b=y*d-p*g;if(b!==0){var w=v/b,_=x/b,T=.001,E=0-T,L=1+T;return E<=w&&w<=L&&E<=_&&_<=L?[e+w*d,r+w*g]:h?[e+w*d,r+w*g]:[]}else return v===0||x===0?AP(e,n,l)===l?[l,u]:AP(e,n,a)===a?[a,s]:AP(a,l,n)===n?[n,i]:[]:[]},"finiteLinesIntersect"),Yx=o(function(e,r,n,i,a,s,l,u){var h=[],f,d=new Array(n.length),p=!0;s==null&&(p=!1);var m;if(p){for(var g=0;g0){var y=v6(d,-u);m=y6(y)}else m=d}else m=n;for(var v,x,b,w,_=0;_2){for(var g=[f[0],f[1]],y=Math.pow(g[0]-e,2)+Math.pow(g[1]-r,2),v=1;vf&&(f=_)},"set"),get:o(function(w){return h[w]},"get")},p=0;p0?N=O.edgesTo(S)[0]:N=S.edgesTo(O)[0];var P=i(N);S=S.id(),C[S]>C[k]+P&&(C[S]=C[k]+P,A.nodes.indexOf(S)<0?A.push(S):A.updateItem(S),L[S]=0,E[S]=[]),C[S]==C[k]+P&&(L[S]=L[S]+L[k],E[S].push(k))}else for(var F=0;F0;){for(var W=T.pop(),j=0;j0&&l.push(n[u]);l.length!==0&&a.push(i.collection(l))}return a},"assign"),aKe=o(function(e,r){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:lKe,l=i,u,h,f=0;f=2?Dx(e,r,n,0,Wpe,cKe):Dx(e,r,n,0,Hpe)},"euclidean"),squaredEuclidean:o(function(e,r,n){return Dx(e,r,n,0,Wpe)},"squaredEuclidean"),manhattan:o(function(e,r,n){return Dx(e,r,n,0,Hpe)},"manhattan"),max:o(function(e,r,n){return Dx(e,r,n,-1/0,uKe)},"max")};u1["squared-euclidean"]=u1.squaredEuclidean;u1.squaredeuclidean=u1.squaredEuclidean;o(D6,"clusteringDistance");hKe=wa({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),cB=o(function(e){return hKe(e)},"setOptions"),x6=o(function(e,r,n,i,a){var s=a!=="kMedoids",l=s?function(d){return n[d]}:function(d){return i[d](n)},u=o(function(p){return i[p](r)},"getQ"),h=n,f=r;return D6(e,i.length,l,u,h,f)},"getDist"),_P=o(function(e,r,n){for(var i=n.length,a=new Array(i),s=new Array(i),l=new Array(r),u=null,h=0;hn)return!1}return!0},"haveMatricesConverged"),pKe=o(function(e,r,n){for(var i=0;il&&(l=r[h][f],u=f);a[u].push(e[h])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var g=r[s],y=r[i[s]],v;a.mode==="dendrogram"?v={left:g,right:y,key:g.key}:v={value:g.value.concat(y.value),key:g.key},e[g.index]=v,e.splice(y.index,1),r[g.key]=v;for(var x=0;xn[y.key][b.key]&&(u=n[y.key][b.key])):a.linkage==="max"?(u=n[g.key][b.key],n[g.key][b.key]0&&i.push(a);return i},"findExemplars"),Qpe=o(function(e,r,n){for(var i=[],a=0;al&&(s=h,l=r[a*e+h])}s>0&&i.push(s)}for(var f=0;fh&&(u=f,h=d)}n[a]=s[u]}return i=Qpe(e,r,n),i},"assign"),Zpe=o(function(e){for(var r=this.cy(),n=this.nodes(),i=_Ke(e),a={},s=0;s=D?(k=D,D=S,R=O):S>k&&(k=S);for(var N=0;N0?1:0;L[A%i.minIterations*l+W]=j,z+=j}if(z>0&&(A>=i.minIterations-1||A==i.maxIterations-1)){for(var K=0,ie=0;ie1||E>1)&&(l=!0),d[w]=[],b.outgoers().forEach(function(C){C.isEdge()&&d[w].push(C.id())})}else p[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var _=b.degree(!0);_%2&&(u?h?l=!0:h=w:u=w),d[w]=[],b.connectedEdges().forEach(function(T){return d[w].push(T.id())})}else p[w]=[b.source().id(),b.target().id()]});var m={found:!1,trail:void 0};if(l)return m;if(h&&u)if(a){if(f&&h!=f)return m;f=h}else{if(f&&h!=f&&u!=f)return m;f||(f=h)}else f||(f=s[0].id());var g=o(function(w){for(var _=w,T=[w],E,L,C;d[_].length;)E=d[_].shift(),L=p[E][0],C=p[E][1],_!=C?(d[C]=d[C].filter(function(A){return A!=E}),_=C):!a&&_!=L&&(d[L]=d[L].filter(function(A){return A!=E}),_=L),T.unshift(E),T.unshift(_);return T},"walk"),y=[],v=[];for(v=g(f);v.length!=1;)d[v[0]].length==0?(y.unshift(s.getElementById(v.shift())),y.unshift(s.getElementById(v.shift()))):v=g(v.shift()).concat(v);y.unshift(s.getElementById(v.shift()));for(var x in d)if(d[x].length)return m;return m.found=!0,m.trail=this.spawn(y,!0),m},"hierholzer")},QE=o(function(){var e=this,r={},n=0,i=0,a=[],s=[],l={},u=o(function(p,m){for(var g=s.length-1,y=[],v=e.spawn();s[g].x!=p||s[g].y!=m;)y.push(s.pop().edge),g--;y.push(s.pop().edge),y.forEach(function(x){var b=x.connectedNodes().intersection(e);v.merge(x),b.forEach(function(w){var _=w.id(),T=w.connectedEdges().intersection(e);v.merge(w),r[_].cutVertex?v.merge(T.filter(function(E){return E.isLoop()})):v.merge(T)})}),a.push(v)},"buildComponent"),h=o(function d(p,m,g){p===g&&(i+=1),r[m]={id:n,low:n++,cutVertex:!1};var y=e.getElementById(m).connectedEdges().intersection(e);if(y.size()===0)a.push(e.spawn(e.getElementById(m)));else{var v,x,b,w;y.forEach(function(_){v=_.source().id(),x=_.target().id(),b=v===m?x:v,b!==g&&(w=_.id(),l[w]||(l[w]=!0,s.push({x:m,y:b,edge:_})),b in r?r[m].low=Math.min(r[m].low,r[b].id):(d(p,b,m),r[m].low=Math.min(r[m].low,r[b].low),r[m].id<=r[b].low&&(r[m].cutVertex=!0,u(m,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var p=d.id();p in r||(i=0,h(p,p),r[p].cutVertex=i>1)}});var f=Object.keys(r).filter(function(d){return r[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(f),components:a}},"hopcroftTarjanBiconnected"),PKe={hopcroftTarjanBiconnected:QE,htbc:QE,htb:QE,hopcroftTarjanBiconnectedComponents:QE},ZE=o(function(){var e=this,r={},n=0,i=[],a=[],s=e.spawn(e),l=o(function u(h){a.push(h),r[h]={index:n,low:n++,explored:!1};var f=e.getElementById(h).connectedEdges().intersection(e);if(f.forEach(function(y){var v=y.target().id();v!==h&&(v in r||u(v),r[v].explored||(r[h].low=Math.min(r[h].low,r[v].low)))}),r[h].index===r[h].low){for(var d=e.spawn();;){var p=a.pop();if(d.merge(e.getElementById(p)),r[p].low=r[h].index,r[p].explored=!0,p===h)break}var m=d.edgesWith(d),g=d.merge(m);i.push(g),s=s.difference(g)}},"stronglyConnectedSearch");return e.forEach(function(u){if(u.isNode()){var h=u.id();h in r||l(h)}}),{cut:s,components:i}},"tarjanStronglyConnected"),BKe={tarjanStronglyConnected:ZE,tsc:ZE,tscc:ZE,tarjanStronglyConnectedComponents:ZE},wge={};[Hx,dje,pje,gje,vje,bje,kje,Xje,a1,s1,zP,oKe,bKe,CKe,MKe,OKe,PKe,BKe].forEach(function(t){ir(wge,t)});Tge=0,kge=1,Ege=2,Ku=o(function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Tge,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Ku.prototype={fulfill:o(function(e){return Jpe(this,kge,"fulfillValue",e)},"fulfill"),reject:o(function(e){return Jpe(this,Ege,"rejectReason",e)},"reject"),then:o(function(e,r){var n=this,i=new Ku;return n.onFulfilled.push(tme(e,i,"fulfill")),n.onRejected.push(tme(r,i,"reject")),Sge(n),i.proxy},"then")};Jpe=o(function(e,r,n,i){return e.state===Tge&&(e.state=r,e[n]=i,Sge(e)),e},"deliver"),Sge=o(function(e){e.state===kge?eme(e,"onFulfilled",e.fulfillValue):e.state===Ege&&eme(e,"onRejected",e.rejectReason)},"execute"),eme=o(function(e,r,n){if(e[r].length!==0){var i=e[r];e[r]=[];var a=o(function(){for(var l=0;l0},"animatedImpl")},"animated"),clearQueue:o(function(){return o(function(){var r=this,n=r.length!==void 0,i=n?r:[r],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var s=0;s0&&this.spawn(i).updateStyle().emit("class"),r},"classes"),addClass:o(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:o(function(e){var r=this[0];return r!=null&&r._private.classes.has(e)},"hasClass"),toggleClass:o(function(e,r){wn(e)||(e=e.match(/\S+/g)||[]);for(var n=this,i=r===void 0,a=[],s=0,l=n.length;s0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:o(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:o(function(e,r){var n=this;if(r==null)r=250;else if(r===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},r),n},"flashClass")};o6.className=o6.classNames=o6.classes;$r={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:Wi,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};$r.variable="(?:[\\w-.]|(?:\\\\"+$r.metaChar+"))+";$r.className="(?:[\\w-]|(?:\\\\"+$r.metaChar+"))+";$r.value=$r.string+"|"+$r.number;$r.id=$r.variable;(function(){var t,e,r;for(t=$r.comparatorOp.split("|"),r=0;r=0)&&e!=="="&&($r.comparatorOp+="|\\!"+e)})();pn=o(function(){return{checks:[]}},"newQuery"),Pt={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},$P=[{selector:":selected",matches:o(function(e){return e.selected()},"matches")},{selector:":unselected",matches:o(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:o(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:o(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:o(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:o(function(e){return!e.locked()},"matches")},{selector:":visible",matches:o(function(e){return e.visible()},"matches")},{selector:":hidden",matches:o(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:o(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:o(function(e){return e.grabbed()},"matches")},{selector:":free",matches:o(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:o(function(e){return e.removed()},"matches")},{selector:":inside",matches:o(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:o(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:o(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:o(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:o(function(e){return!e.animated()},"matches")},{selector:":parent",matches:o(function(e){return e.isParent()},"matches")},{selector:":childless",matches:o(function(e){return e.isChildless()},"matches")},{selector:":child",matches:o(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:o(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:o(function(e){return e.isChild()},"matches")},{selector:":compound",matches:o(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:o(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:o(function(e){return e.isSimple()},"matches")},{selector:":active",matches:o(function(e){return e.active()},"matches")},{selector:":inactive",matches:o(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:o(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:o(function(e){return!e.backgrounding()},"matches")}].sort(function(t,e){return oXe(t.selector,e.selector)}),KZe=function(){for(var t={},e,r=0;r<$P.length;r++)e=$P[r],t[e.selector]=e.matches;return t}(),QZe=o(function(e,r){return KZe[e](r)},"stateSelectorMatches"),ZZe="("+$P.map(function(t){return t.selector}).join("|")+")",Kg=o(function(e){return e.replace(new RegExp("\\\\("+$r.metaChar+")","g"),function(r,n){return n})},"cleanMetaChars"),bf=o(function(e,r,n){e[e.length-1]=n},"replaceLastQuery"),VP=[{name:"group",query:!0,regex:"("+$r.group+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.GROUP,value:a==="*"?a:a+"s"})},"populate")},{name:"state",query:!0,regex:ZZe,populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.STATE,value:a})},"populate")},{name:"id",query:!0,regex:"\\#("+$r.id+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.ID,value:Kg(a)})},"populate")},{name:"className",query:!0,regex:"\\.("+$r.className+")",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.CLASS,value:Kg(a)})},"populate")},{name:"dataExists",query:!0,regex:"\\[\\s*("+$r.variable+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,1),a=i[0];r.checks.push({type:Pt.DATA_EXIST,field:Kg(a)})},"populate")},{name:"dataCompare",query:!0,regex:"\\[\\s*("+$r.variable+")\\s*("+$r.comparatorOp+")\\s*("+$r.value+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,3),a=i[0],s=i[1],l=i[2],u=new RegExp("^"+$r.string+"$").exec(l)!=null;u?l=l.substring(1,l.length-1):l=parseFloat(l),r.checks.push({type:Pt.DATA_COMPARE,field:Kg(a),operator:s,value:l})},"populate")},{name:"dataBool",query:!0,regex:"\\[\\s*("+$r.boolOp+")\\s*("+$r.variable+")\\s*\\]",populate:o(function(e,r,n){var i=Ul(n,2),a=i[0],s=i[1];r.checks.push({type:Pt.DATA_BOOL,field:Kg(s),operator:a})},"populate")},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+$r.meta+")\\s*("+$r.comparatorOp+")\\s*("+$r.number+")\\s*\\]\\]",populate:o(function(e,r,n){var i=Ul(n,3),a=i[0],s=i[1],l=i[2];r.checks.push({type:Pt.META_COMPARE,field:Kg(a),operator:s,value:parseFloat(l)})},"populate")},{name:"nextQuery",separator:!0,regex:$r.separator,populate:o(function(e,r){var n=e.currentSubject,i=e.edgeCount,a=e.compoundCount,s=e[e.length-1];n!=null&&(s.subject=n,e.currentSubject=null),s.edgeCount=i,s.compoundCount=a,e.edgeCount=0,e.compoundCount=0;var l=e[e.length++]=pn();return l},"populate")},{name:"directedEdge",separator:!0,regex:$r.directedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=r,a=pn();return n.checks.push({type:Pt.DIRECTED_EDGE,source:i,target:a}),bf(e,r,n),e.edgeCount++,a}else{var s=pn(),l=r,u=pn();return s.checks.push({type:Pt.NODE_SOURCE,source:l,target:u}),bf(e,r,s),e.edgeCount++,u}},"populate")},{name:"undirectedEdge",separator:!0,regex:$r.undirectedEdge,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=r,a=pn();return n.checks.push({type:Pt.UNDIRECTED_EDGE,nodes:[i,a]}),bf(e,r,n),e.edgeCount++,a}else{var s=pn(),l=r,u=pn();return s.checks.push({type:Pt.NODE_NEIGHBOR,node:l,neighbor:u}),bf(e,r,s),u}},"populate")},{name:"child",separator:!0,regex:$r.child,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=pn(),a=e[e.length-1];return n.checks.push({type:Pt.CHILD,parent:a,child:i}),bf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=pn(),l=e[e.length-1],u=pn(),h=pn(),f=pn(),d=pn();return s.checks.push({type:Pt.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:Pt.TRUE}],d.checks.push({type:Pt.TRUE}),u.checks.push({type:Pt.PARENT,parent:d,child:f}),bf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=pn(),m=pn(),g=[{type:Pt.PARENT,parent:p,child:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"descendant",separator:!0,regex:$r.descendant,populate:o(function(e,r){if(e.currentSubject==null){var n=pn(),i=pn(),a=e[e.length-1];return n.checks.push({type:Pt.DESCENDANT,ancestor:a,descendant:i}),bf(e,r,n),e.compoundCount++,i}else if(e.currentSubject===r){var s=pn(),l=e[e.length-1],u=pn(),h=pn(),f=pn(),d=pn();return s.checks.push({type:Pt.COMPOUND_SPLIT,left:l,right:u,subject:h}),h.checks=r.checks,r.checks=[{type:Pt.TRUE}],d.checks.push({type:Pt.TRUE}),u.checks.push({type:Pt.ANCESTOR,ancestor:d,descendant:f}),bf(e,l,s),e.currentSubject=h,e.compoundCount++,f}else{var p=pn(),m=pn(),g=[{type:Pt.ANCESTOR,ancestor:p,descendant:m}];return p.checks=r.checks,r.checks=g,e.compoundCount++,m}},"populate")},{name:"subject",modifier:!0,regex:$r.subject,populate:o(function(e,r){if(e.currentSubject!=null&&e.currentSubject!==r)return on("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=r;var n=e[e.length-1],i=n.checks[0],a=i==null?null:i.type;a===Pt.DIRECTED_EDGE?i.type=Pt.NODE_TARGET:a===Pt.UNDIRECTED_EDGE&&(i.type=Pt.NODE_NEIGHBOR,i.node=i.nodes[1],i.neighbor=i.nodes[0],i.nodes=null)},"populate")}];VP.forEach(function(t){return t.regexObj=new RegExp("^"+t.regex)});JZe=o(function(e){for(var r,n,i,a=0;a0&&f.edgeCount>0)return on("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return on("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&on("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),rJe=o(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=o(function(f){return f??""},"clean"),r=o(function(f){return Zt(f)?'"'+f+'"':e(f)},"cleanVal"),n=o(function(f){return" "+f+" "},"space"),i=o(function(f,d){var p=f.type,m=f.value;switch(p){case Pt.GROUP:{var g=e(m);return g.substring(0,g.length-1)}case Pt.DATA_COMPARE:{var y=f.field,v=f.operator;return"["+y+n(e(v))+r(m)+"]"}case Pt.DATA_BOOL:{var x=f.operator,b=f.field;return"["+e(x)+b+"]"}case Pt.DATA_EXIST:{var w=f.field;return"["+w+"]"}case Pt.META_COMPARE:{var _=f.operator,T=f.field;return"[["+T+n(e(_))+r(m)+"]]"}case Pt.STATE:return m;case Pt.ID:return"#"+m;case Pt.CLASS:return"."+m;case Pt.PARENT:case Pt.CHILD:return a(f.parent,d)+n(">")+a(f.child,d);case Pt.ANCESTOR:case Pt.DESCENDANT:return a(f.ancestor,d)+" "+a(f.descendant,d);case Pt.COMPOUND_SPLIT:{var E=a(f.left,d),L=a(f.subject,d),C=a(f.right,d);return E+(E.length>0?" ":"")+L+C}case Pt.TRUE:return""}},"checkToString"),a=o(function(f,d){return f.checks.reduce(function(p,m,g){return p+(d===f&&g===0?"$":"")+i(m,d)},"")},"queryToString"),s="",l=0;l1&&l=0&&(r=r.replace("!",""),d=!0),r.indexOf("@")>=0&&(r=r.replace("@",""),f=!0),(a||l||f)&&(u=!a&&!s?"":""+e,h=""+n),f&&(e=u=u.toLowerCase(),n=h=h.toLowerCase()),r){case"*=":i=u.indexOf(h)>=0;break;case"$=":i=u.indexOf(h,u.length-h.length)>=0;break;case"^=":i=u.indexOf(h)===0;break;case"=":i=e===n;break;case">":p=!0,i=e>n;break;case">=":p=!0,i=e>=n;break;case"<":p=!0,i=e1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,Ige)};o(Oge,"addParent");h1.forEachUp=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,Oge)};o(uJe,"addParentAndChildren");h1.forEachUpAndDown=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return pB(this,t,e,uJe)};h1.ancestors=h1.parents;Xx=Pge={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:sn.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:sn.removeData({field:"rscratch",triggerEvent:!1}),id:o(function(){var e=this[0];if(e)return e._private.data.id},"id")};Xx.attr=Xx.data;Xx.removeAttr=Xx.removeData;hJe=Pge,I6={};o(DP,"defineDegreeFunction");ir(I6,{degree:DP(function(t,e){return e.source().same(e.target())?2:1}),indegree:DP(function(t,e){return e.target().same(t)?1:0}),outdegree:DP(function(t,e){return e.source().same(t)?1:0})});o(Qg,"defineDegreeBoundsFunction");ir(I6,{minDegree:Qg("degree",function(t,e){return te}),minIndegree:Qg("indegree",function(t,e){return te}),minOutdegree:Qg("outdegree",function(t,e){return te})});ir(I6,{totalDegree:o(function(e){for(var r=0,n=this.nodes(),i=0;i0,p=d;d&&(f=f[0]);var m=p?f.position():{x:0,y:0};r!==void 0?h.position(e,r+m[e]):a!==void 0&&h.position({x:a.x+m.x,y:a.y+m.y})}else{var g=n.position(),y=l?n.parent():null,v=y&&y.length>0,x=v;v&&(y=y[0]);var b=x?y.position():{x:0,y:0};return a={x:g.x-b.x,y:g.y-b.y},e===void 0?a:a[e]}else if(!s)return;return this},"relativePosition")};Yl.modelPosition=Yl.point=Yl.position;Yl.modelPositions=Yl.points=Yl.positions;Yl.renderedPoint=Yl.renderedPosition;Yl.relativePoint=Yl.relativePosition;fJe=Bge;o1=Df={};Df.renderedBoundingBox=function(t){var e=this.boundingBox(t),r=this.cy(),n=r.zoom(),i=r.pan(),a=e.x1*n+i.x,s=e.x2*n+i.x,l=e.y1*n+i.y,u=e.y2*n+i.y;return{x1:a,x2:s,y1:l,y2:u,w:s-a,h:u-l}};Df.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(r){if(r.isParent()){var n=r._private;n.compoundBoundsClean=!1,n.bbCache=null,t||r.emitAndNotify("bounds")}}),this)};Df.updateCompoundBounds=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function r(s){if(!s.isParent())return;var l=s._private,u=s.children(),h=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},d=u.boundingBox({includeLabels:h,includeOverlays:!1,useCache:!1}),p=l.position;(d.w===0||d.h===0)&&(d={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},d.x1=p.x-d.w/2,d.x2=p.x+d.w/2,d.y1=p.y-d.h/2,d.y2=p.y+d.h/2);function m(A,I,D){var k=0,R=0,S=I+D;return A>0&&S>0&&(k=I/S*A,R=D/S*A),{biasDiff:k,biasComplementDiff:R}}o(m,"computeBiasValues");function g(A,I,D,k){if(D.units==="%")switch(k){case"width":return A>0?D.pfValue*A:0;case"height":return I>0?D.pfValue*I:0;case"average":return A>0&&I>0?D.pfValue*(A+I)/2:0;case"min":return A>0&&I>0?A>I?D.pfValue*I:D.pfValue*A:0;case"max":return A>0&&I>0?A>I?D.pfValue*A:D.pfValue*I:0;default:return 0}else return D.units==="px"?D.pfValue:0}o(g,"computePaddingValues");var y=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(y=y*100/f.width.val);var v=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(v=v*100/f.width.val);var x=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(x=x*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=m(f.width.val-d.w,y,v),_=w.biasDiff,T=w.biasComplementDiff,E=m(f.height.val-d.h,x,b),L=E.biasDiff,C=E.biasComplementDiff;l.autoPadding=g(d.w,d.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),l.autoWidth=Math.max(d.w,f.width.val),p.x=(-_+d.x1+d.x2+T)/2,l.autoHeight=Math.max(d.h,f.height.val),p.y=(-L+d.y1+d.y2+C)/2}o(r,"update");for(var n=0;ne.x2?i:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),I0=o(function(e,r){return r==null?e:Hl(e,r.x1,r.y1,r.x2,r.y2)},"updateBoundsFromBox"),Nx=o(function(e,r,n){return Wl(e,r,n)},"prefixedProperty"),JE=o(function(e,r,n){if(!r.cy().headless()){var i=r._private,a=i.rstyle,s=a.arrowWidth/2,l=r.pstyle(n+"-arrow-shape").value,u,h;if(l!=="none"){n==="source"?(u=a.srcX,h=a.srcY):n==="target"?(u=a.tgtX,h=a.tgtY):(u=a.midX,h=a.midY);var f=i.arrowBounds=i.arrowBounds||{},d=f[n]=f[n]||{};d.x1=u-s,d.y1=h-s,d.x2=u+s,d.y2=h+s,d.w=d.x2-d.x1,d.h=d.y2-d.y1,a6(d,1),Hl(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),NP=o(function(e,r,n){if(!r.cy().headless()){var i;n?i=n+"-":i="";var a=r._private,s=a.rstyle,l=r.pstyle(i+"label").strValue;if(l){var u=r.pstyle("text-halign"),h=r.pstyle("text-valign"),f=Nx(s,"labelWidth",n),d=Nx(s,"labelHeight",n),p=Nx(s,"labelX",n),m=Nx(s,"labelY",n),g=r.pstyle(i+"text-margin-x").pfValue,y=r.pstyle(i+"text-margin-y").pfValue,v=r.isEdge(),x=r.pstyle(i+"text-rotation"),b=r.pstyle("text-outline-width").pfValue,w=r.pstyle("text-border-width").pfValue,_=w/2,T=r.pstyle("text-background-padding").pfValue,E=2,L=d,C=f,A=C/2,I=L/2,D,k,R,S;if(v)D=p-A,k=p+A,R=m-I,S=m+I;else{switch(u.value){case"left":D=p-C,k=p;break;case"center":D=p-A,k=p+A;break;case"right":D=p,k=p+C;break}switch(h.value){case"top":R=m-L,S=m;break;case"center":R=m-I,S=m+I;break;case"bottom":R=m,S=m+L;break}}D+=g-Math.max(b,_)-T-E,k+=g+Math.max(b,_)+T+E,R+=y-Math.max(b,_)-T-E,S+=y+Math.max(b,_)+T+E;var O=n||"main",N=a.labelBounds,P=N[O]=N[O]||{};P.x1=D,P.y1=R,P.x2=k,P.y2=S,P.w=k-D,P.h=S-R;var F=v&&x.strValue==="autorotate",B=x.pfValue!=null&&x.pfValue!==0;if(F||B){var $=F?Nx(a.rstyle,"labelAngle",n):x.pfValue,z=Math.cos($),W=Math.sin($),j=(D+k)/2,K=(R+S)/2;if(!v){switch(u.value){case"left":j=k;break;case"right":j=D;break}switch(h.value){case"top":K=S;break;case"bottom":K=R;break}}var ie=o(function(ue,ce){return ue=ue-j,ce=ce-K,{x:ue*z-ce*W+j,y:ue*W+ce*z+K}},"rotate"),Q=ie(D,R),ee=ie(D,S),J=ie(k,R),H=ie(k,S);D=Math.min(Q.x,ee.x,J.x,H.x),k=Math.max(Q.x,ee.x,J.x,H.x),R=Math.min(Q.y,ee.y,J.y,H.y),S=Math.max(Q.y,ee.y,J.y,H.y)}var q=O+"Rot",Z=N[q]=N[q]||{};Z.x1=D,Z.y1=R,Z.x2=k,Z.y2=S,Z.w=k-D,Z.h=S-R,Hl(e,D,R,k,S),Hl(a.labelBounds.all,D,R,k,S)}return e}},"updateBoundsFromLabel"),dJe=o(function(e,r){if(!r.cy().headless()){var n=r.pstyle("outline-opacity").value,i=r.pstyle("outline-width").value;if(n>0&&i>0){var a=r.pstyle("outline-offset").value,s=r.pstyle("shape").value,l=i+a,u=(e.w+l*2)/e.w,h=(e.h+l*2)/e.h,f=0,d=0;["diamond","pentagon","round-triangle"].includes(s)?(u=(e.w+l*2.4)/e.w,d=-l/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?u=(e.w+l*2.4)/e.w:s==="star"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.6)/e.h,d=-l/3.8):s==="triangle"?(u=(e.w+l*2.8)/e.w,h=(e.h+l*2.4)/e.h,d=-l/1.4):s==="vee"&&(u=(e.w+l*4.4)/e.w,h=(e.h+l*3.8)/e.h,d=-l*.5);var p=e.h*h-e.h,m=e.w*u-e.w;if(s6(e,[Math.ceil(p/2),Math.ceil(m/2)]),f!=0||d!==0){var g=Ije(e,f,d);fge(e,g)}}}},"updateBoundsFromOutline"),pJe=o(function(e,r){var n=e._private.cy,i=n.styleEnabled(),a=n.headless(),s=$s(),l=e._private,u=e.isNode(),h=e.isEdge(),f,d,p,m,g,y,v=l.rstyle,x=u&&i?e.pstyle("bounds-expansion").pfValue:[0],b=o(function(De){return De.pstyle("display").value!=="none"},"isDisplayed"),w=!i||b(e)&&(!h||b(e.source())&&b(e.target()));if(w){var _=0,T=0;i&&r.includeOverlays&&(_=e.pstyle("overlay-opacity").value,_!==0&&(T=e.pstyle("overlay-padding").value));var E=0,L=0;i&&r.includeUnderlays&&(E=e.pstyle("underlay-opacity").value,E!==0&&(L=e.pstyle("underlay-padding").value));var C=Math.max(T,L),A=0,I=0;if(i&&(A=e.pstyle("width").pfValue,I=A/2),u&&r.includeNodes){var D=e.position();g=D.x,y=D.y;var k=e.outerWidth(),R=k/2,S=e.outerHeight(),O=S/2;f=g-R,d=g+R,p=y-O,m=y+O,Hl(s,f,p,d,m),i&&r.includeOutlines&&dJe(s,e)}else if(h&&r.includeEdges)if(i&&!a){var N=e.pstyle("curve-style").strValue;if(f=Math.min(v.srcX,v.midX,v.tgtX),d=Math.max(v.srcX,v.midX,v.tgtX),p=Math.min(v.srcY,v.midY,v.tgtY),m=Math.max(v.srcY,v.midY,v.tgtY),f-=I,d+=I,p-=I,m+=I,Hl(s,f,p,d,m),N==="haystack"){var P=v.haystackPts;if(P&&P.length===2){if(f=P[0].x,p=P[0].y,d=P[1].x,m=P[1].y,f>d){var F=f;f=d,d=F}if(p>m){var B=p;p=m,m=B}Hl(s,f-I,p-I,d+I,m+I)}}else if(N==="bezier"||N==="unbundled-bezier"||N.endsWith("segments")||N.endsWith("taxi")){var $;switch(N){case"bezier":case"unbundled-bezier":$=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":$=v.linePts;break}if($!=null)for(var z=0;z<$.length;z++){var W=$[z];f=W.x-I,d=W.x+I,p=W.y-I,m=W.y+I,Hl(s,f,p,d,m)}}}else{var j=e.source(),K=j.position(),ie=e.target(),Q=ie.position();if(f=K.x,d=Q.x,p=K.y,m=Q.y,f>d){var ee=f;f=d,d=ee}if(p>m){var J=p;p=m,m=J}f-=I,d+=I,p-=I,m+=I,Hl(s,f,p,d,m)}if(i&&r.includeEdges&&h&&(JE(s,e,"mid-source"),JE(s,e,"mid-target"),JE(s,e,"source"),JE(s,e,"target")),i){var H=e.pstyle("ghost").value==="yes";if(H){var q=e.pstyle("ghost-offset-x").pfValue,Z=e.pstyle("ghost-offset-y").pfValue;Hl(s,s.x1+q,s.y1+Z,s.x2+q,s.y2+Z)}}var ae=l.bodyBounds=l.bodyBounds||{};Gpe(ae,s),s6(ae,x),a6(ae,1),i&&(f=s.x1,d=s.x2,p=s.y1,m=s.y2,Hl(s,f-C,p-C,d+C,m+C));var ue=l.overlayBounds=l.overlayBounds||{};Gpe(ue,s),s6(ue,x),a6(ue,1);var ce=l.labelBounds=l.labelBounds||{};ce.all!=null?Mje(ce.all):ce.all=$s(),i&&r.includeLabels&&(r.includeMainLabels&&NP(s,e,null),h&&(r.includeSourceLabels&&NP(s,e,"source"),r.includeTargetLabels&&NP(s,e,"target")))}return s.x1=il(s.x1),s.y1=il(s.y1),s.x2=il(s.x2),s.y2=il(s.y2),s.w=il(s.x2-s.x1),s.h=il(s.y2-s.y1),s.w>0&&s.h>0&&w&&(s6(s,x),a6(s,1)),s},"boundingBoxImpl"),zge=o(function(e){var r=0,n=o(function(s){return(s?1:0)<=0;l--)s(l);return this};Lf.removeAllListeners=function(){return this.removeListener("*")};Lf.emit=Lf.trigger=function(t,e,r){var n=this.listeners,i=n.length;return this.emitting++,wn(e)||(e=[e]),DJe(this,function(a,s){r!=null&&(n=[{event:s.event,type:s.type,namespace:s.namespace,callback:r}],i=n.length);for(var l=o(function(f){var d=n[f];if(d.type===s.type&&(!d.namespace||d.namespace===s.namespace||d.namespace===_Je)&&a.eventMatches(a.context,d,s)){var p=[s];e!=null&&oje(p,e),a.beforeEmit(a.context,d,s),d.conf&&d.conf.one&&(a.listeners=a.listeners.filter(function(y){return y!==d}));var m=a.callbackContext(a.context,d,s),g=d.callback.apply(m,p);a.afterEmit(a.context,d,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),u=0;u1&&!s){var l=this.length-1,u=this[l],h=u._private.data.id;this[l]=void 0,this[e]=u,a.set(h,{ele:u,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:o(function(e){e=e[0];var r=this._private,n=e._private.data.id,i=r.map,a=i.get(n);if(!a)return this;var s=a.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:o(function(e){var r=this._private.cy;if(!e)return this;if(e&&Zt(e)){var n=e;e=r.mutableElements().filter(n)}for(var i=0;i=0;r--){var n=this[r];e(n)&&this.unmergeAt(r)}return this},"unmergeBy"),map:o(function(e,r){for(var n=[],i=this,a=0;an&&(n=u,i=l)}return{value:n,ele:i}},"max"),min:o(function(e,r){for(var n=1/0,i,a=this,s=0;s=0&&a"u"?"undefined":Yi(Symbol))!=e&&Yi(Symbol.iterator)!=e;r&&(b6[Symbol.iterator]=function(){var n=this,i={value:void 0,done:!1},a=0,s=this.length;return Hme({next:o(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],i=n.cy();if(i.styleEnabled()&&n){this.cleanStyle();var a=n._private.style[e];return a??(r?i.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r){var n=r.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:o(function(e){var r=this[0];if(r.cy().styleEnabled()&&r)return r.pstyle(e).units},"numericStyleUnits"),renderedStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=this[0];if(n)return r.style().getRenderedStyle(n,e)},"renderedStyle"),style:o(function(e,r){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(Vr(e)){var s=e;a.applyBypass(this,s,i),this.emitAndNotify("style")}else if(Zt(e))if(r===void 0){var l=this[0];return l?a.getStylePropertyValue(l,e):void 0}else a.applyBypass(this,e,r,i),this.emitAndNotify("style");else if(e===void 0){var u=this[0];return u?a.getRawStyle(u):void 0}return this},"style"),removeStyle:o(function(e){var r=this.cy();if(!r.styleEnabled())return this;var n=!1,i=r.style(),a=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(l[0])}return this.spawn(e,!0).filter(t)},"neighborhood"),closedNeighborhood:o(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:o(function(e){return this.neighborhood(e)},"openNeighborhood")});Ba.neighbourhood=Ba.neighborhood;Ba.closedNeighbourhood=Ba.closedNeighborhood;Ba.openNeighbourhood=Ba.openNeighborhood;ir(Ba,{source:al(o(function(e){var r=this[0],n;return r&&(n=r._private.source||r.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:al(o(function(e){var r=this[0],n;return r&&(n=r._private.target||r.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:vme({attr:"source"}),targets:vme({attr:"target"})});o(vme,"defineSourceFunction");ir(Ba,{edgesWith:al(xme(),"edgesWith"),edgesTo:al(xme({thisIsSrc:!0}),"edgesTo")});o(xme,"defineEdgesWithFunction");ir(Ba,{connectedEdges:al(function(t){for(var e=[],r=this,n=0;n0);return s},"components"),component:o(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});Ba.componentsOf=Ba.components;ba=o(function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){hi("A collection must have a reference to the core");return}var a=new Uc,s=!1;if(!r)r=[];else if(r.length>0&&Vr(r[0])&&!Jx(r[0])){s=!0;for(var l=[],u=new f1,h=0,f=r.length;h0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=r.cy(),i=n._private,a=[],s=[],l,u=0,h=r.length;u0){for(var B=l.length===r.length?r:new ba(n,l),$=0;$0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this,n=[],i={},a=r._private.cy;function s(S){for(var O=S._private.edges,N=0;N0&&(t?D.emitAndNotify("remove"):e&&D.emit("remove"));for(var k=0;kf&&Math.abs(g.v)>f;);return p?function(y){return u[y*(u.length-1)|0]}:h},"springRK4Factory")}(),Dn=o(function(e,r,n,i){var a=GJe(e,r,n,i);return function(s,l,u){return s+(l-s)*a(u)}},"cubicBezier"),c6={linear:o(function(e,r,n){return e+(r-e)*n},"linear"),ease:Dn(.25,.1,.25,1),"ease-in":Dn(.42,0,1,1),"ease-out":Dn(0,0,.58,1),"ease-in-out":Dn(.42,0,.58,1),"ease-in-sine":Dn(.47,0,.745,.715),"ease-out-sine":Dn(.39,.575,.565,1),"ease-in-out-sine":Dn(.445,.05,.55,.95),"ease-in-quad":Dn(.55,.085,.68,.53),"ease-out-quad":Dn(.25,.46,.45,.94),"ease-in-out-quad":Dn(.455,.03,.515,.955),"ease-in-cubic":Dn(.55,.055,.675,.19),"ease-out-cubic":Dn(.215,.61,.355,1),"ease-in-out-cubic":Dn(.645,.045,.355,1),"ease-in-quart":Dn(.895,.03,.685,.22),"ease-out-quart":Dn(.165,.84,.44,1),"ease-in-out-quart":Dn(.77,0,.175,1),"ease-in-quint":Dn(.755,.05,.855,.06),"ease-out-quint":Dn(.23,1,.32,1),"ease-in-out-quint":Dn(.86,0,.07,1),"ease-in-expo":Dn(.95,.05,.795,.035),"ease-out-expo":Dn(.19,1,.22,1),"ease-in-out-expo":Dn(1,0,0,1),"ease-in-circ":Dn(.6,.04,.98,.335),"ease-out-circ":Dn(.075,.82,.165,1),"ease-in-out-circ":Dn(.785,.135,.15,.86),spring:o(function(e,r,n){if(n===0)return c6.linear;var i=$Je(e,r,n);return function(a,s,l){return a+(s-a)*i(l)}},"spring"),"cubic-bezier":Dn};o(wme,"getEasedValue");o(Tme,"getValue");o(Zg,"ease");o(VJe,"step$1");o(Mx,"valid");o(UJe,"startAnimation");o(kme,"stepAll");HJe={animate:sn.animate(),animation:sn.animation(),animated:sn.animated(),clearQueue:sn.clearQueue(),delay:sn.delay(),delayAnimation:sn.delayAnimation(),stop:sn.stop(),addToAnimationPool:o(function(e){var r=this;r.styleEnabled()&&r._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:o(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:o(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function r(){e._private.animationsRunning&&m6(o(function(a){kme(a,e),r()},"animationStep"))}o(r,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(o(function(a,s){kme(s,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):r()},"startAnimationLoop")},WJe={qualifierCompare:o(function(e,r){return e==null||r==null?e==null&&r==null:e.sameText(r)},"qualifierCompare"),eventMatches:o(function(e,r,n){var i=r.qualifier;return i!=null?e!==n.target&&Jx(n.target)&&i.matches(n.target):!0},"eventMatches"),addEventFields:o(function(e,r){r.cy=e,r.target=e},"addEventFields"),callbackContext:o(function(e,r,n){return r.qualifier!=null?n.target:e},"callbackContext")},r6=o(function(e){return Zt(e)?new Af(e):e},"argSelector"),Kge={createEmitter:o(function(){var e=this._private;return e.emitter||(e.emitter=new O6(WJe,this)),this},"createEmitter"),emitter:o(function(){return this._private.emitter},"emitter"),on:o(function(e,r,n){return this.emitter().on(e,r6(r),n),this},"on"),removeListener:o(function(e,r,n){return this.emitter().removeListener(e,r6(r),n),this},"removeListener"),removeAllListeners:o(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:o(function(e,r,n){return this.emitter().one(e,r6(r),n),this},"one"),once:o(function(e,r,n){return this.emitter().one(e,r6(r),n),this},"once"),emit:o(function(e,r){return this.emitter().emit(e,r),this},"emit"),emitAndNotify:o(function(e,r){return this.emit(e),this.notify(e,r),this},"emitAndNotify")};sn.eventAliasesOn(Kge);UP={png:o(function(e){var r=this._private.renderer;return e=e||{},r.png(e)},"png"),jpg:o(function(e){var r=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",r.jpg(e)},"jpg")};UP.jpeg=UP.jpg;u6={layout:o(function(e){var r=this;if(e==null){hi("Layout options must be specified to make a layout");return}if(e.name==null){hi("A `name` must be specified to make a layout");return}var n=e.name,i=r.extension("layout",n);if(i==null){hi("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;Zt(e.eles)?a=r.$(e.eles):a=e.eles!=null?e.eles:r.$();var s=new i(ir({},e,{cy:r,eles:a}));return s},"layout")};u6.createLayout=u6.makeLayout=u6.layout;YJe={notify:o(function(e,r){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();r!=null&&i.merge(r);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,r)}},"notify"),notifications:o(function(e){var r=this._private;return e===void 0?r.notificationsEnabled:(r.notificationsEnabled=!!e,this)},"notifications"),noNotifications:o(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:o(function(){return this._private.batchCount>0},"batching"),startBatch:o(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:o(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var i=e.batchNotifications[n];i.empty()?r.notify(n):r.notify(n,i)})}return this},"endBatch"),batch:o(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:o(function(e){var r=this;return this.batch(function(){for(var n=Object.keys(e),i=0;i0;)r.removeChild(r.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var i=n._private;i.rscratch={},i.rstyle={},i.animation.current=[],i.animation.queue=[]})},"destroyRenderer"),onRender:o(function(e){return this.on("render",e)},"onRender"),offRender:o(function(e){return this.off("render",e)},"offRender")};HP.invalidateDimensions=HP.resize;h6={collection:o(function(e,r){return Zt(e)?this.$(e):po(e)?e.collection():wn(e)?(r||(r={}),new ba(this,e,r.unique,r.removed)):new ba(this)},"collection"),nodes:o(function(e){var r=this.$(function(n){return n.isNode()});return e?r.filter(e):r},"nodes"),edges:o(function(e){var r=this.$(function(n){return n.isEdge()});return e?r.filter(e):r},"edges"),$:o(function(e){var r=this._private.elements;return e?r.filter(e):r.spawnSelf()},"$"),mutableElements:o(function(){return this._private.elements},"mutableElements")};h6.elements=h6.filter=h6.$;za={},zx="t",XJe="f";za.apply=function(t){for(var e=this,r=e._private,n=r.cy,i=n.collection(),a=0;a0;if(p||d&&m){var g=void 0;p&&m||p?g=h.properties:m&&(g=h.mappedProperties);for(var y=0;y1&&(_=1),l.color){var E=n.valueMin[0],L=n.valueMax[0],C=n.valueMin[1],A=n.valueMax[1],I=n.valueMin[2],D=n.valueMax[2],k=n.valueMin[3]==null?1:n.valueMin[3],R=n.valueMax[3]==null?1:n.valueMax[3],S=[Math.round(E+(L-E)*_),Math.round(C+(A-C)*_),Math.round(I+(D-I)*_),Math.round(k+(R-k)*_)];a={bypass:n.bypass,name:n.name,value:S,strValue:"rgb("+S[0]+", "+S[1]+", "+S[2]+")"}}else if(l.number){var O=n.valueMin+(n.valueMax-n.valueMin)*_;a=this.parse(n.name,O,n.bypass,p)}else return!1;if(!a)return y(),!1;a.mapping=n,n=a;break}case s.data:{for(var N=n.field.split("."),P=d.data,F=0;F0&&a>0){for(var l={},u=!1,h=0;h0?t.delayAnimation(s).play().promise().then(w):w()}).then(function(){return t.animation({style:l,duration:a,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){r.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1})}else n.transitioning&&(this.removeBypasses(t,i),t.emitAndNotify("style"),n.transitioning=!1)};za.checkTrigger=function(t,e,r,n,i,a){var s=this.properties[e],l=i(s);l!=null&&l(r,n)&&a(s)};za.checkZOrderTrigger=function(t,e,r,n){var i=this;this.checkTrigger(t,e,r,n,function(a){return a.triggersZOrder},function(){i._private.cy.notify("zorder",t)})};za.checkBoundsTrigger=function(t,e,r,n){this.checkTrigger(t,e,r,n,function(i){return i.triggersBounds},function(i){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),i.triggersBoundsOfParallelBeziers&&e==="curve-style"&&(r==="bezier"||n==="bezier")&&t.parallelEdges().forEach(function(a){a.isBundledBezier()&&a.dirtyBoundingBoxCache()}),i.triggersBoundsOfConnectedEdges&&e==="display"&&(r==="none"||n==="none")&&t.connectedEdges().forEach(function(a){a.dirtyBoundingBoxCache()})})};za.checkTriggers=function(t,e,r,n){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,r,n),this.checkBoundsTrigger(t,e,r,n)};nb={};nb.applyBypass=function(t,e,r,n){var i=this,a=[],s=!0;if(e==="*"||e==="**"){if(r!==void 0)for(var l=0;li.length?n=n.substr(i.length):n=""}o(l,"removeSelAndBlockFromRemaining");function u(){a.length>s.length?a=a.substr(s.length):a=""}for(o(u,"removePropAndValFromRem");;){var h=n.match(/^\s*$/);if(h)break;var f=n.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){on("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+n);break}i=f[0];var d=f[1];if(d!=="core"){var p=new Af(d);if(p.invalid){on("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),l();continue}}var m=f[2],g=!1;a=m;for(var y=[];;){var v=a.match(/^\s*$/);if(v)break;var x=a.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!x){on("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+m),g=!0;break}s=x[0];var b=x[1],w=x[2],_=e.properties[b];if(!_){on("Skipping property: Invalid property name in: "+s),u();continue}var T=r.parse(b,w);if(!T){on("Skipping property: Invalid property definition in: "+s),u();continue}y.push({name:b,val:w}),u()}if(g){l();break}r.selector(d);for(var E=0;E=7&&e[0]==="d"&&(f=new RegExp(l.data.regex).exec(e))){if(r)return!1;var p=l.data;return{name:t,value:f,strValue:""+e,mapped:p,field:f[1],bypass:r}}else if(e.length>=10&&e[0]==="m"&&(d=new RegExp(l.mapData.regex).exec(e))){if(r||h.multiple)return!1;var m=l.mapData;if(!(h.color||h.number))return!1;var g=this.parse(t,d[4]);if(!g||g.mapped)return!1;var y=this.parse(t,d[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return on("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(h.color){var v=g.value,x=y.value,b=v[0]===x[0]&&v[1]===x[1]&&v[2]===x[2]&&(v[3]===x[3]||(v[3]==null||v[3]===1)&&(x[3]==null||x[3]===1));if(b)return!1}return{name:t,value:d,strValue:""+e,mapped:m,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:g.value,valueMax:y.value,bypass:r}}}if(h.multiple&&n!=="multiple"){var w;if(u?w=e.split(/\s+/):wn(e)?w=e:w=[e],h.evenMultiple&&w.length%2!==0)return null;for(var _=[],T=[],E=[],L="",C=!1,A=0;A0?" ":"")+I.strValue}return h.validate&&!h.validate(_,T)?null:h.singleEnum&&C?_.length===1&&Zt(_[0])?{name:t,value:_[0],strValue:_[0],bypass:r}:null:{name:t,value:_,pfValue:E,strValue:L,bypass:r,units:T}}var D=o(function(){for(var H=0;Hh.max||h.strictMax&&e===h.max))return null;var N={name:t,value:e,strValue:""+e+(k||""),units:k,bypass:r};return h.unitless||k!=="px"&&k!=="em"?N.pfValue=e:N.pfValue=k==="px"||!k?e:this.getEmSizeInPixels()*e,(k==="ms"||k==="s")&&(N.pfValue=k==="ms"?e:1e3*e),(k==="deg"||k==="rad")&&(N.pfValue=k==="rad"?e:Lje(e)),k==="%"&&(N.pfValue=e/100),N}else if(h.propList){var P=[],F=""+e;if(F!=="none"){for(var B=F.split(/\s*,\s*|\s+/),$=0;$0&&l>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((s-2*r)/n.w,(l-2*r)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=r),this},"zoomRange"),minZoom:o(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:o(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:o(function(e){var r=this._private,n=r.pan,i=r.zoom,a,s,l=!1;if(r.zoomingEnabled||(l=!0),xt(e)?s=e:Vr(e)&&(s=e.level,e.position!=null?a=L6(e.position,i,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!r.panningEnabled&&(l=!0)),s=s>r.maxZoom?r.maxZoom:s,s=sr.maxZoom||!r.zoomingEnabled?s=!0:(r.zoom=u,a.push("zoom"))}if(i&&(!s||!e.cancelOnFailedZoom)&&r.panningEnabled){var h=e.pan;xt(h.x)&&(r.pan.x=h.x,l=!1),xt(h.y)&&(r.pan.y=h.y,l=!1),l||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:o(function(e){var r=this.getCenterPan(e);return r&&(this._private.pan=r,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:o(function(e,r){if(this._private.panningEnabled){if(Zt(e)){var n=e;e=this.mutableElements().filter(n)}else po(e)||(e=this.mutableElements());if(e.length!==0){var i=e.boundingBox(),a=this.width(),s=this.height();r=r===void 0?this._private.zoom:r;var l={x:(a-r*(i.x1+i.x2))/2,y:(s-r*(i.y1+i.y2))/2};return l}}},"getCenterPan"),reset:o(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:o(function(){this._private.sizeCache=null},"invalidateSize"),size:o(function(){var e=this._private,r=e.container,n=this;return e.sizeCache=e.sizeCache||(r?function(){var i=n.window().getComputedStyle(r),a=o(function(l){return parseFloat(i.getPropertyValue(l))},"val");return{width:r.clientWidth-a("padding-left")-a("padding-right"),height:r.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},"size"),width:o(function(){return this.size().width},"width"),height:o(function(){return this.size().height},"height"),extent:o(function(){var e=this._private.pan,r=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-e.x)/r,x2:(n.x2-e.x)/r,y1:(n.y1-e.y)/r,y2:(n.y2-e.y)/r};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},"extent"),renderedExtent:o(function(){var e=this.width(),r=this.height();return{x1:0,y1:0,x2:e,y2:r,w:e,h:r}},"renderedExtent"),multiClickDebounceTime:o(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};U0.centre=U0.center;U0.autolockNodes=U0.autolock;U0.autoungrabifyNodes=U0.autoungrabify;Kx={data:sn.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:sn.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:sn.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:sn.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Kx.attr=Kx.data;Kx.removeAttr=Kx.removeData;Qx=o(function(e){var r=this;e=ir({},e);var n=e.container;n&&!p6(n)&&p6(n[0])&&(n=n[0]);var i=n?n._cyreg:null;i=i||{},i&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=r;var s=Hi!==void 0&&n!==void 0&&!e.headless,l=e;l.layout=ir({name:s?"grid":"null"},l.layout),l.renderer=ir({name:s?"canvas":"null"},l.renderer);var u=o(function(g,y,v){return y!==void 0?y:v!==void 0?v:g},"defVal"),h=this._private={container:n,ready:!1,options:l,elements:new ba(this),listeners:[],aniEles:new ba(this),data:l.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:u(!0,l.zoomingEnabled),userZoomingEnabled:u(!0,l.userZoomingEnabled),panningEnabled:u(!0,l.panningEnabled),userPanningEnabled:u(!0,l.userPanningEnabled),boxSelectionEnabled:u(!0,l.boxSelectionEnabled),autolock:u(!1,l.autolock,l.autolockNodes),autoungrabify:u(!1,l.autoungrabify,l.autoungrabifyNodes),autounselectify:u(!1,l.autounselectify),styleEnabled:l.styleEnabled===void 0?s:l.styleEnabled,zoom:xt(l.zoom)?l.zoom:1,pan:{x:Vr(l.pan)&&xt(l.pan.x)?l.pan.x:0,y:Vr(l.pan)&&xt(l.pan.y)?l.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,l.multiClickDebounceTime)};this.createEmitter(),this.selectionType(l.selectionType),this.zoomRange({min:l.minZoom,max:l.maxZoom});var f=o(function(g,y){var v=g.some(Jqe);if(v)return d1.all(g).then(y);y(g)},"loadExtData");h.styleEnabled&&r.setStyle([]);var d=ir({},l,l.renderer);r.initRenderer(d);var p=o(function(g,y,v){r.notifications(!1);var x=r.mutableElements();x.length>0&&x.remove(),g!=null&&(Vr(g)||wn(g))&&r.add(g),r.one("layoutready",function(w){r.notifications(!0),r.emit(w),r.one("load",y),r.emitAndNotify("load")}).one("layoutstop",function(){r.one("done",v),r.emit("done")});var b=ir({},r._private.options.layout);b.eles=r.elements(),r.layout(b).run()},"setElesAndLayout");f([l.style,l.elements],function(m){var g=m[0],y=m[1];h.styleEnabled&&r.style().append(g),p(y,function(){r.startAnimationLoop(),h.ready=!0,ti(l.ready)&&r.on("ready",l.ready);for(var v=0;v0,u=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),h;if(po(e.roots))h=e.roots;else if(wn(e.roots)){for(var f=[],d=0;d0;){var O=S(),N=I(O,k);if(N)O.outgoers().filter(function(ce){return ce.isNode()&&n.has(ce)}).forEach(R);else if(N===null){on("Detected double maximal shift for node `"+O.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}A();var P=0;if(e.avoidOverlap)for(var F=0;F0&&x[0].length<=3?Ge/2:0),X=2*Math.PI/x[oe].length*ke;return oe===0&&x[0].length===1&&(xe=1),{x:Z.x+xe*Math.cos(X),y:Z.y+xe*Math.sin(X)}}else{var He={x:Z.x+(ke+1-(Fe+1)/2)*Be,y:(oe+1)*Ve};return He}},"getPosition");return n.nodes().layoutPositions(this,e,ue),this};JJe={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Zge,"CircleLayout");Zge.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=n.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));for(var s=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=e.sweep===void 0?2*Math.PI-2*Math.PI/a.length:e.sweep,h=u/Math.max(1,a.length-1),f,d=0,p=0;p1&&e.avoidOverlap){d*=1.75;var x=Math.cos(h)-Math.cos(0),b=Math.sin(h)-Math.sin(0),w=Math.sqrt(d*d/(x*x+b*b));f=Math.max(w,f)}var _=o(function(E,L){var C=e.startAngle+L*h*(i?1:-1),A=f*Math.cos(C),I=f*Math.sin(C),D={x:l.x+A,y:l.y+I};return D},"getPos");return n.nodes().layoutPositions(this,e,_),this};eet={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:o(function(e){return e.degree()},"concentric"),levelWidth:o(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(Jge,"ConcentricLayout");Jge.prototype.run=function(){for(var t=this.options,e=t,r=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,n=t.cy,i=e.eles,a=i.nodes().not(":parent"),s=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=[],h=0,f=0;f0){var T=Math.abs(b[0].value-_.value);T>=v&&(b=[],x.push(b))}b.push(_)}var E=h+e.minNodeSpacing;if(!e.avoidOverlap){var L=x.length>0&&x[0].length>1,C=Math.min(s.w,s.h)/2-E,A=C/(x.length+L?1:0);E=Math.min(E,A)}for(var I=0,D=0;D1&&e.avoidOverlap){var O=Math.cos(S)-Math.cos(0),N=Math.sin(S)-Math.sin(0),P=Math.sqrt(E*E/(O*O+N*N));I=Math.max(P,I)}k.r=I,I+=E}if(e.equidistant){for(var F=0,B=0,$=0;$=t.numIter||(cet(n,t),n.temperature=n.temperature*t.coolingFactor,n.temperature=t.animationThreshold&&a(),m6(d)}},"frame");f()}else{for(;h;)h=s(u),u++;Cme(n,t),l()}return this};G6.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};G6.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};ret=o(function(e,r,n){for(var i=n.eles.edges(),a=n.eles.nodes(),s=$s(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),l={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},u=n.eles.components(),h={},f=0;f0){l.graphSet.push(C);for(var f=0;fi.count?0:i.graph},"findLCA"),iet=o(function t(e,r,n,i){var a=i.graphSet[n];if(-10)var d=i.nodeOverlap*f,p=Math.sqrt(l*l+u*u),m=d*l/p,g=d*u/p;else var y=T6(e,l,u),v=T6(r,-1*l,-1*u),x=v.x-y.x,b=v.y-y.y,w=x*x+b*b,p=Math.sqrt(w),d=(e.nodeRepulsion+r.nodeRepulsion)/w,m=d*x/p,g=d*b/p;e.isLocked||(e.offsetX-=m,e.offsetY-=g),r.isLocked||(r.offsetX+=m,r.offsetY+=g)}},"nodeRepulsion"),fet=o(function(e,r,n,i){if(n>0)var a=e.maxX-r.minX;else var a=r.maxX-e.minX;if(i>0)var s=e.maxY-r.minY;else var s=r.maxY-e.minY;return a>=0&&s>=0?Math.sqrt(a*a+s*s):0},"nodesOverlap"),T6=o(function(e,r,n){var i=e.positionX,a=e.positionY,s=e.height||1,l=e.width||1,u=n/r,h=s/l,f={};return r===0&&0n?(f.x=i,f.y=a+s/2,f):0r&&-1*h<=u&&u<=h?(f.x=i-l/2,f.y=a-l*n/2/r,f):0=h)?(f.x=i+s*r/2/n,f.y=a+s/2,f):(0>n&&(u<=-1*h||u>=h)&&(f.x=i-s*r/2/n,f.y=a-s/2),f)},"findClippingPoint"),det=o(function(e,r){for(var n=0;nn){var v=r.gravity*m/y,x=r.gravity*g/y;p.offsetX+=v,p.offsetY+=x}}}}},"calculateGravityForces"),met=o(function(e,r){var n=[],i=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;i<=a;){var s=n[i++],l=e.idToIndex[s],u=e.layoutNodes[l],h=u.children;if(0n)var a={x:n*e/i,y:n*r/i};else var a={x:e,y:r};return a},"limitForce"),vet=o(function t(e,r){var n=e.parentId;if(n!=null){var i=r.layoutNodes[r.idToIndex[n]],a=!1;if((i.maxX==null||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0),(i.minX==null||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0),(i.minY==null||e.minY-i.padTopx&&(g+=v+r.componentSpacing,m=0,y=0,v=0)}}},"separateComponents"),xet={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:o(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:o(function(e,r){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:o(function(e,r){return r},"transform")};o(t1e,"GridLayout");t1e.prototype.run=function(){var t=this.options,e=t,r=t.cy,n=e.eles,i=n.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));var a=$s(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(a.h===0||a.w===0)n.nodes().layoutPositions(this,e,function(j){return{x:a.x1,y:a.y1}});else{var s=i.size(),l=Math.sqrt(s*a.h/a.w),u=Math.round(l),h=Math.round(a.w/a.h*l),f=o(function(K){if(K==null)return Math.min(u,h);var ie=Math.min(u,h);ie==u?u=K:h=K},"small"),d=o(function(K){if(K==null)return Math.max(u,h);var ie=Math.max(u,h);ie==u?u=K:h=K},"large"),p=e.rows,m=e.cols!=null?e.cols:e.columns;if(p!=null&&m!=null)u=p,h=m;else if(p!=null&&m==null)u=p,h=Math.ceil(s/u);else if(p==null&&m!=null)h=m,u=Math.ceil(s/h);else if(h*u>s){var g=f(),y=d();(g-1)*y>=s?f(g-1):(y-1)*g>=s&&d(y-1)}else for(;h*u=s?d(x+1):f(v+1)}var b=a.w/h,w=a.h/u;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var _=0;_=h&&(O=0,S++)},"moveToNextCell"),P={},F=0;F(O=Vje(t,e,N[P],N[P+1],N[P+2],N[P+3])))return v(L,O),!0}else if(A.edgeType==="bezier"||A.edgeType==="multibezier"||A.edgeType==="self"||A.edgeType==="compound"){for(var N=A.allpts,P=0;P+5(O=$je(t,e,N[P],N[P+1],N[P+2],N[P+3],N[P+4],N[P+5])))return v(L,O),!0}for(var F=F||C.source,B=B||C.target,$=i.getArrowWidth(I,D),z=[{name:"source",x:A.arrowStartX,y:A.arrowStartY,angle:A.srcArrowAngle},{name:"target",x:A.arrowEndX,y:A.arrowEndY,angle:A.tgtArrowAngle},{name:"mid-source",x:A.midX,y:A.midY,angle:A.midsrcArrowAngle},{name:"mid-target",x:A.midX,y:A.midY,angle:A.midtgtArrowAngle}],P=0;P0&&(x(F),x(B))}o(b,"checkEdge");function w(L,C,A){return Wl(L,C,A)}o(w,"preprop");function _(L,C){var A=L._private,I=p,D;C?D=C+"-":D="",L.boundingBox();var k=A.labelBounds[C||"main"],R=L.pstyle(D+"label").value,S=L.pstyle("text-events").strValue==="yes";if(!(!S||!R)){var O=w(A.rscratch,"labelX",C),N=w(A.rscratch,"labelY",C),P=w(A.rscratch,"labelAngle",C),F=L.pstyle(D+"text-margin-x").pfValue,B=L.pstyle(D+"text-margin-y").pfValue,$=k.x1-I-F,z=k.x2+I-F,W=k.y1-I-B,j=k.y2+I-B;if(P){var K=Math.cos(P),ie=Math.sin(P),Q=o(function(ue,ce){return ue=ue-O,ce=ce-N,{x:ue*K-ce*ie+O,y:ue*ie+ce*K+N}},"rotate"),ee=Q($,W),J=Q($,j),H=Q(z,W),q=Q(z,j),Z=[ee.x+F,ee.y+B,H.x+F,H.y+B,q.x+F,q.y+B,J.x+F,J.y+B];if(Gs(t,e,Z))return v(L),!0}else if(c1(k,t,e))return v(L),!0}}o(_,"checkLabel");for(var T=s.length-1;T>=0;T--){var E=s[T];E.isNode()?x(E)||_(E):b(E)||_(E)||_(E,"source")||_(E,"target")}return l};W0.getAllInBox=function(t,e,r,n){var i=this.getCachedZSortedEles().interactive,a=[],s=Math.min(t,r),l=Math.max(t,r),u=Math.min(e,n),h=Math.max(e,n);t=s,r=l,e=u,n=h;for(var f=$s({x1:t,y1:e,x2:r,y2:n}),d=0;d0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),Cet=o(function(e,r,n,i,a){if(e!==Nme?Rme(r,e,$c):Eet(nl,$c),Rme(r,n,nl),Lme=$c.nx*nl.ny-$c.ny*nl.nx,Dme=$c.nx*nl.nx-$c.ny*-nl.ny,qu=Math.asin(Math.max(-1,Math.min(1,Lme))),Math.abs(qu)<1e-6){WP=r.x,YP=r.y,O0=e1=0;return}P0=1,f6=!1,Dme<0?qu<0?qu=Math.PI+qu:(qu=Math.PI-qu,P0=-1,f6=!0):qu>0&&(P0=-1,f6=!0),r.radius!==void 0?e1=r.radius:e1=i,N0=qu/2,n6=Math.min($c.len/2,nl.len/2),a?(Gc=Math.abs(Math.cos(N0)*e1/Math.sin(N0)),Gc>n6?(Gc=n6,O0=Math.abs(Gc*Math.sin(N0)/Math.cos(N0))):O0=e1):(Gc=Math.min(n6,e1),O0=Math.abs(Gc*Math.sin(N0)/Math.cos(N0))),qP=r.x+nl.nx*Gc,XP=r.y+nl.ny*Gc,WP=qP-nl.ny*O0*P0,YP=XP+nl.nx*O0*P0,a1e=r.x+$c.nx*Gc,s1e=r.y+$c.ny*Gc,Nme=r},"calcCornerArc");o(o1e,"drawPreparedRoundCorner");o(bB,"getRoundCorner");Ga={};Ga.findMidptPtsEtc=function(t,e){var r=e.posPts,n=e.intersectionPts,i=e.vectorNormInverse,a,s=t.pstyle("source-endpoint"),l=t.pstyle("target-endpoint"),u=s.units!=null&&l.units!=null,h=o(function(T,E,L,C){var A=C-E,I=L-T,D=Math.sqrt(I*I+A*A);return{x:-A/D,y:I/D}},"recalcVectorNormInverse"),f=t.pstyle("edge-distances").value;switch(f){case"node-position":a=r;break;case"intersection":a=n;break;case"endpoints":{if(u){var d=this.manualEndptToPx(t.source()[0],s),p=Ul(d,2),m=p[0],g=p[1],y=this.manualEndptToPx(t.target()[0],l),v=Ul(y,2),x=v[0],b=v[1],w={x1:m,y1:g,x2:x,y2:b};i=h(m,g,x,b),a=w}else on("Edge ".concat(t.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),a=n;break}}return{midptPts:a,vectorNormInverse:i}};Ga.findHaystackPoints=function(t){for(var e=0;e0?Math.max(se-Ee,0):Math.min(se+Ee,0)},"subDWH"),R=k(I,C),S=k(D,A),O=!1;b===h?x=Math.abs(R)>Math.abs(S)?i:n:b===u||b===l?(x=n,O=!0):(b===a||b===s)&&(x=i,O=!0);var N=x===n,P=N?S:R,F=N?D:I,B=hge(F),$=!1;!(O&&(_||E))&&(b===l&&F<0||b===u&&F>0||b===a&&F>0||b===s&&F<0)&&(B*=-1,P=B*Math.abs(P),$=!0);var z;if(_){var W=T<0?1+T:T;z=W*P}else{var j=T<0?P:0;z=j+T*B}var K=o(function(se){return Math.abs(se)=Math.abs(P)},"getIsTooClose"),ie=K(z),Q=K(Math.abs(P)-Math.abs(z)),ee=ie||Q;if(ee&&!$)if(N){var J=Math.abs(F)<=p/2,H=Math.abs(I)<=m/2;if(J){var q=(f.x1+f.x2)/2,Z=f.y1,ae=f.y2;r.segpts=[q,Z,q,ae]}else if(H){var ue=(f.y1+f.y2)/2,ce=f.x1,te=f.x2;r.segpts=[ce,ue,te,ue]}else r.segpts=[f.x1,f.y2]}else{var De=Math.abs(F)<=d/2,oe=Math.abs(D)<=g/2;if(De){var ke=(f.y1+f.y2)/2,Fe=f.x1,Be=f.x2;r.segpts=[Fe,ke,Be,ke]}else if(oe){var Ve=(f.x1+f.x2)/2,Ge=f.y1,He=f.y2;r.segpts=[Ve,Ge,Ve,He]}else r.segpts=[f.x2,f.y1]}else if(N){var xe=f.y1+z+(v?p/2*B:0),X=f.x1,fe=f.x2;r.segpts=[X,xe,fe,xe]}else{var he=f.x1+z+(v?d/2*B:0),ge=f.y1,ne=f.y2;r.segpts=[he,ge,he,ne]}if(r.isRound){var ye=t.pstyle("taxi-radius").value,U=t.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ye),r.isArcRadius=new Array(r.segpts.length/2).fill(U)}};Ga.tryToCorrectInvalidPoints=function(t,e){var r=t._private.rscratch;if(r.edgeType==="bezier"){var n=e.srcPos,i=e.tgtPos,a=e.srcW,s=e.srcH,l=e.tgtW,u=e.tgtH,h=e.srcShape,f=e.tgtShape,d=e.srcCornerRadius,p=e.tgtCornerRadius,m=e.srcRs,g=e.tgtRs,y=!xt(r.startX)||!xt(r.startY),v=!xt(r.arrowStartX)||!xt(r.arrowStartY),x=!xt(r.endX)||!xt(r.endY),b=!xt(r.arrowEndX)||!xt(r.arrowEndY),w=3,_=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=w*_,E=G0({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY}),L=ES.poolIndex()){var O=R;R=S,S=O}var N=A.srcPos=R.position(),P=A.tgtPos=S.position(),F=A.srcW=R.outerWidth(),B=A.srcH=R.outerHeight(),$=A.tgtW=S.outerWidth(),z=A.tgtH=S.outerHeight(),W=A.srcShape=r.nodeShapes[e.getNodeShape(R)],j=A.tgtShape=r.nodeShapes[e.getNodeShape(S)],K=A.srcCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,ie=A.tgtCornerRadius=S.pstyle("corner-radius").value==="auto"?"auto":S.pstyle("corner-radius").pfValue,Q=A.tgtRs=S._private.rscratch,ee=A.srcRs=R._private.rscratch;A.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var J=0;J0){var ae=a,ue=M0(ae,r1(r)),ce=M0(ae,r1(Z)),te=ue;if(ce2){var De=M0(ae,{x:Z[2],y:Z[3]});De0){var ne=s,ye=M0(ne,r1(r)),U=M0(ne,r1(ge)),Te=ye;if(U2){var se=M0(ne,{x:ge[2],y:ge[3]});se=g||L){v={cp:_,segment:E};break}}if(v)break}var C=v.cp,A=v.segment,I=(g-x)/A.length,D=A.t1-A.t0,k=m?A.t0+D*I:A.t1-D*I;k=Wx(0,k,1),e=i1(C.p0,C.p1,C.p2,k),p=_et(C.p0,C.p1,C.p2,k);break}case"straight":case"segments":case"haystack":{for(var R=0,S,O,N,P,F=n.allpts.length,B=0;B+3=g));B+=2);var $=g-O,z=$/S;z=Wx(0,z,1),e=Nje(N,P,z),p=u1e(N,P);break}}s("labelX",d,e.x),s("labelY",d,e.y),s("labelAutoAngle",d,p)}},"calculateEndProjection");h("source"),h("target"),this.applyLabelDimensions(t)}};Wc.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))};Wc.applyPrefixedLabelDimensions=function(t,e){var r=t._private,n=this.getLabelText(t,e),i=this.calculateLabelDimensions(t,n),a=t.pstyle("line-height").pfValue,s=t.pstyle("text-wrap").strValue,l=Wl(r.rscratch,"labelWrapCachedLines",e)||[],u=s!=="wrap"?1:Math.max(l.length,1),h=i.height/u,f=h*a,d=i.width,p=i.height+(u-1)*(a-1)*h;wf(r.rstyle,"labelWidth",e,d),wf(r.rscratch,"labelWidth",e,d),wf(r.rstyle,"labelHeight",e,p),wf(r.rscratch,"labelHeight",e,p),wf(r.rscratch,"labelLineHeight",e,f)};Wc.getLabelText=function(t,e){var r=t._private,n=e?e+"-":"",i=t.pstyle(n+"label").strValue,a=t.pstyle("text-transform").value,s=o(function(j,K){return K?(wf(r.rscratch,j,e,K),K):Wl(r.rscratch,j,e)},"rscratch");if(!i)return"";a=="none"||(a=="uppercase"?i=i.toUpperCase():a=="lowercase"&&(i=i.toLowerCase()));var l=t.pstyle("text-wrap").value;if(l==="wrap"){var u=s("labelKey");if(u!=null&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var h="\u200B",f=i.split(` +`),d=t.pstyle("text-max-width").pfValue,p=t.pstyle("text-overflow-wrap").value,m=p==="anywhere",g=[],y=/[\s\u200b]+|$/g,v=0;vd){var T=x.matchAll(y),E="",L=0,C=Yme(T),A;try{for(C.s();!(A=C.n()).done;){var I=A.value,D=I[0],k=x.substring(L,I.index);L=I.index+D.length;var R=E.length===0?k:E+k+D,S=this.calculateLabelDimensions(t,R),O=S.width;O<=d?E+=k+D:(E&&g.push(E),E=k+D)}}catch(W){C.e(W)}finally{C.f()}E.match(/^[\s\u200b]+$/)||g.push(E)}else g.push(x)}s("labelWrapCachedLines",g),i=s("labelWrapCachedText",g.join(` +`)),s("labelWrapKey",u)}else if(l==="ellipsis"){var N=t.pstyle("text-max-width").pfValue,P="",F="\u2026",B=!1;if(this.calculateLabelDimensions(t,i).widthN)break;P+=i[$],$===i.length-1&&(B=!0)}return B||(P+=F),P}return i};Wc.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,r=t.pstyle("text-halign").strValue;if(e==="auto")if(t.isNode())switch(r){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Wc.calculateLabelDimensions=function(t,e){var r=this,n=r.cy.window(),i=n.document,a=z0(e,t._private.labelDimsKey),s=r.labelDimCache||(r.labelDimCache=[]),l=s[a];if(l!=null)return l;var u=0,h=t.pstyle("font-style").strValue,f=t.pstyle("font-size").pfValue,d=t.pstyle("font-family").strValue,p=t.pstyle("font-weight").strValue,m=this.labelCalcCanvas,g=this.labelCalcCanvasContext;if(!m){m=this.labelCalcCanvas=i.createElement("canvas"),g=this.labelCalcCanvasContext=m.getContext("2d");var y=m.style;y.position="absolute",y.left="-9999px",y.top="-9999px",y.zIndex="-1",y.visibility="hidden",y.pointerEvents="none"}g.font="".concat(h," ").concat(p," ").concat(f,"px ").concat(d);for(var v=0,x=0,b=e.split(` +`),w=0;w1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),l)for(var u=0;u=t.desktopTapThreshold2}var Tt=i(X);Re&&(t.hoverData.tapholdCancelled=!0);var $e=o(function(){var zt=t.hoverData.dragDelta=t.hoverData.dragDelta||[];zt.length===0?(zt.push(me[0]),zt.push(me[1])):(zt[0]+=me[0],zt[1]+=me[1])},"updateDragDelta");he=!0,n(Ae,["mousemove","vmousemove","tapdrag"],X,{x:U[0],y:U[1]});var rt=o(function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||ge.emit({originalEvent:X,type:"boxstart",position:{x:U[0],y:U[1]}}),Ee[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()},"goIntoBoxMode");if(t.hoverData.which===3){if(Re){var ft={originalEvent:X,type:"cxtdrag",position:{x:U[0],y:U[1]}};Me?Me.emit(ft):ge.emit(ft),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||Ae!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:X,type:"cxtdragout",position:{x:U[0],y:U[1]}}),t.hoverData.cxtOver=Ae,Ae&&Ae.emit({originalEvent:X,type:"cxtdragover",position:{x:U[0],y:U[1]}}))}}else if(t.hoverData.dragging){if(he=!0,ge.panningEnabled()&&ge.userPanningEnabled()){var kt;if(t.hoverData.justStartedPan){var er=t.hoverData.mdownPos;kt={x:(U[0]-er[0])*ne,y:(U[1]-er[1])*ne},t.hoverData.justStartedPan=!1}else kt={x:me[0]*ne,y:me[1]*ne};ge.panBy(kt),ge.emit("dragpan"),t.hoverData.dragged=!0}U=t.projectIntoViewport(X.clientX,X.clientY)}else if(Ee[4]==1&&(Me==null||Me.pannable())){if(Re){if(!t.hoverData.dragging&&ge.boxSelectionEnabled()&&(Tt||!ge.panningEnabled()||!ge.userPanningEnabled()))rt();else if(!t.hoverData.selecting&&ge.panningEnabled()&&ge.userPanningEnabled()){var dt=a(Me,t.hoverData.downs);dt&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,Ee[4]=0,t.data.bgActivePosistion=r1(Te),t.redrawHint("select",!0),t.redraw())}Me&&Me.pannable()&&Me.active()&&Me.unactivate()}}else{if(Me&&Me.pannable()&&Me.active()&&Me.unactivate(),(!Me||!Me.grabbed())&&Ae!=Pe&&(Pe&&n(Pe,["mouseout","tapdragout"],X,{x:U[0],y:U[1]}),Ae&&n(Ae,["mouseover","tapdragover"],X,{x:U[0],y:U[1]}),t.hoverData.last=Ae),Me)if(Re){if(ge.boxSelectionEnabled()&&Tt)Me&&Me.grabbed()&&(v(We),Me.emit("freeon"),We.emit("free"),t.dragData.didDrag&&(Me.emit("dragfreeon"),We.emit("dragfree"))),rt();else if(Me&&Me.grabbed()&&t.nodeIsDraggable(Me)){var Xe=!t.dragData.didDrag;Xe&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||g(We,{inDragLayer:!0});var ct={x:0,y:0};if(xt(me[0])&&xt(me[1])&&(ct.x+=me[0],ct.y+=me[1],Xe)){var Lt=t.hoverData.dragDelta;Lt&&xt(Lt[0])&&xt(Lt[1])&&(ct.x+=Lt[0],ct.y+=Lt[1])}t.hoverData.draggingEles=!0,We.silentShift(ct).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else $e();he=!0}if(Ee[2]=U[0],Ee[3]=U[1],he)return X.stopPropagation&&X.stopPropagation(),X.preventDefault&&X.preventDefault(),!1}},"mousemoveHandler"),!1);var I,D,k;t.registerBinding(e,"mouseup",o(function(X){if(!(t.hoverData.which===1&&X.which!==1&&t.hoverData.capture)){var fe=t.hoverData.capture;if(fe){t.hoverData.capture=!1;var he=t.cy,ge=t.projectIntoViewport(X.clientX,X.clientY),ne=t.selection,ye=t.findNearestElement(ge[0],ge[1],!0,!1),U=t.dragData.possibleDragElements,Te=t.hoverData.down,se=i(X);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,Te&&Te.unactivate(),t.hoverData.which===3){var Ee={originalEvent:X,type:"cxttapend",position:{x:ge[0],y:ge[1]}};if(Te?Te.emit(Ee):he.emit(Ee),!t.hoverData.cxtDragged){var Ae={originalEvent:X,type:"cxttap",position:{x:ge[0],y:ge[1]}};Te?Te.emit(Ae):he.emit(Ae)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(t.hoverData.which===1){if(n(ye,["mouseup","tapend","vmouseup"],X,{x:ge[0],y:ge[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(Te,["click","tap","vclick"],X,{x:ge[0],y:ge[1]}),D=!1,X.timeStamp-k<=he.multiClickDebounceTime()?(I&&clearTimeout(I),D=!0,k=null,n(Te,["dblclick","dbltap","vdblclick"],X,{x:ge[0],y:ge[1]})):(I=setTimeout(function(){D||n(Te,["oneclick","onetap","voneclick"],X,{x:ge[0],y:ge[1]})},he.multiClickDebounceTime()),k=X.timeStamp)),Te==null&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(X)&&(he.$(r).unselect(["tapunselect"]),U.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=U=he.collection()),ye==Te&&!t.dragData.didDrag&&!t.hoverData.selecting&&ye!=null&&ye._private.selectable&&(t.hoverData.dragging||(he.selectionType()==="additive"||se?ye.selected()?ye.unselect(["tapunselect"]):ye.select(["tapselect"]):se||(he.$(r).unmerge(ye).unselect(["tapunselect"]),ye.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var Pe=he.collection(t.getAllInBox(ne[0],ne[1],ne[2],ne[3]));t.redrawHint("select",!0),Pe.length>0&&t.redrawHint("eles",!0),he.emit({type:"boxend",originalEvent:X,position:{x:ge[0],y:ge[1]}});var Me=o(function(Re){return Re.selectable()&&!Re.selected()},"eleWouldBeSelected");he.selectionType()==="additive"||se||he.$(r).unmerge(Pe).unselect(),Pe.emit("box").stdFilter(Me).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!ne[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var me=Te&&Te.grabbed();v(U),me&&(Te.emit("freeon"),U.emit("free"),t.dragData.didDrag&&(Te.emit("dragfreeon"),U.emit("dragfree")))}}ne[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null,t.hoverData.which=null}}},"mouseupHandler"),!1);var R=o(function(X){if(!t.scrollingPage){var fe=t.cy,he=fe.zoom(),ge=fe.pan(),ne=t.projectIntoViewport(X.clientX,X.clientY),ye=[ne[0]*he+ge.x,ne[1]*he+ge.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||C()){X.preventDefault();return}if(fe.panningEnabled()&&fe.userPanningEnabled()&&fe.zoomingEnabled()&&fe.userZoomingEnabled()){X.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout(function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()},150);var U;X.deltaY!=null?U=X.deltaY/-250:X.wheelDeltaY!=null?U=X.wheelDeltaY/1e3:U=X.wheelDelta/1e3,U=U*t.wheelSensitivity;var Te=X.deltaMode===1;Te&&(U*=33);var se=fe.zoom()*Math.pow(10,U);X.type==="gesturechange"&&(se=t.gestureStartZoom*X.scale),fe.zoom({level:se,renderedPosition:{x:ye[0],y:ye[1]}}),fe.emit(X.type==="gesturechange"?"pinchzoom":"scrollzoom")}}},"wheelHandler");t.registerBinding(t.container,"wheel",R,!0),t.registerBinding(e,"scroll",o(function(X){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout(function(){t.scrollingPage=!1},250)},"scrollHandler"),!0),t.registerBinding(t.container,"gesturestart",o(function(X){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||X.preventDefault()},"gestureStartHandler"),!0),t.registerBinding(t.container,"gesturechange",function(xe){t.hasTouchStarted||R(xe)},!0),t.registerBinding(t.container,"mouseout",o(function(X){var fe=t.projectIntoViewport(X.clientX,X.clientY);t.cy.emit({originalEvent:X,type:"mouseout",position:{x:fe[0],y:fe[1]}})},"mouseOutHandler"),!1),t.registerBinding(t.container,"mouseover",o(function(X){var fe=t.projectIntoViewport(X.clientX,X.clientY);t.cy.emit({originalEvent:X,type:"mouseover",position:{x:fe[0],y:fe[1]}})},"mouseOverHandler"),!1);var S,O,N,P,F,B,$,z,W,j,K,ie,Q,ee=o(function(X,fe,he,ge){return Math.sqrt((he-X)*(he-X)+(ge-fe)*(ge-fe))},"distance"),J=o(function(X,fe,he,ge){return(he-X)*(he-X)+(ge-fe)*(ge-fe)},"distanceSq"),H;t.registerBinding(t.container,"touchstart",H=o(function(X){if(t.hasTouchStarted=!0,!!A(X)){b(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var fe=t.cy,he=t.touchData.now,ge=t.touchData.earlier;if(X.touches[0]){var ne=t.projectIntoViewport(X.touches[0].clientX,X.touches[0].clientY);he[0]=ne[0],he[1]=ne[1]}if(X.touches[1]){var ne=t.projectIntoViewport(X.touches[1].clientX,X.touches[1].clientY);he[2]=ne[0],he[3]=ne[1]}if(X.touches[2]){var ne=t.projectIntoViewport(X.touches[2].clientX,X.touches[2].clientY);he[4]=ne[0],he[5]=ne[1]}if(X.touches[1]){t.touchData.singleTouchMoved=!0,v(t.dragData.touchDragEles);var ye=t.findContainerClientCoords();W=ye[0],j=ye[1],K=ye[2],ie=ye[3],S=X.touches[0].clientX-W,O=X.touches[0].clientY-j,N=X.touches[1].clientX-W,P=X.touches[1].clientY-j,Q=0<=S&&S<=K&&0<=N&&N<=K&&0<=O&&O<=ie&&0<=P&&P<=ie;var U=fe.pan(),Te=fe.zoom();F=ee(S,O,N,P),B=J(S,O,N,P),$=[(S+N)/2,(O+P)/2],z=[($[0]-U.x)/Te,($[1]-U.y)/Te];var se=200,Ee=se*se;if(B=1){for(var gt=t.touchData.startPosition=[null,null,null,null,null,null],Et=0;Et=t.touchTapThreshold2}if(fe&&t.touchData.cxt){X.preventDefault();var gt=X.touches[0].clientX-W,Et=X.touches[0].clientY-j,vt=X.touches[1].clientX-W,Ye=X.touches[1].clientY-j,Tt=J(gt,Et,vt,Ye),$e=Tt/B,rt=150,ft=rt*rt,kt=1.5,er=kt*kt;if($e>=er||Tt>=ft){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var dt={originalEvent:X,type:"cxttapend",position:{x:ne[0],y:ne[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(dt),t.touchData.start=null):ge.emit(dt)}}if(fe&&t.touchData.cxt){var dt={originalEvent:X,type:"cxtdrag",position:{x:ne[0],y:ne[1]}};t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(dt):ge.emit(dt),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var Xe=t.findNearestElement(ne[0],ne[1],!0,!0);(!t.touchData.cxtOver||Xe!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:X,type:"cxtdragout",position:{x:ne[0],y:ne[1]}}),t.touchData.cxtOver=Xe,Xe&&Xe.emit({originalEvent:X,type:"cxtdragover",position:{x:ne[0],y:ne[1]}}))}else if(fe&&X.touches[2]&&ge.boxSelectionEnabled())X.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||ge.emit({originalEvent:X,type:"boxstart",position:{x:ne[0],y:ne[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,he[4]=1,!he||he.length===0||he[0]===void 0?(he[0]=(ne[0]+ne[2]+ne[4])/3,he[1]=(ne[1]+ne[3]+ne[5])/3,he[2]=(ne[0]+ne[2]+ne[4])/3+1,he[3]=(ne[1]+ne[3]+ne[5])/3+1):(he[2]=(ne[0]+ne[2]+ne[4])/3,he[3]=(ne[1]+ne[3]+ne[5])/3),t.redrawHint("select",!0),t.redraw();else if(fe&&X.touches[1]&&!t.touchData.didSelect&&ge.zoomingEnabled()&&ge.panningEnabled()&&ge.userZoomingEnabled()&&ge.userPanningEnabled()){X.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var ct=t.dragData.touchDragEles;if(ct){t.redrawHint("drag",!0);for(var Lt=0;Lt0&&!t.hoverData.draggingEles&&!t.swipePanning&&t.data.bgActivePosistion!=null&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},"touchmoveHandler"),!1);var Z;t.registerBinding(e,"touchcancel",Z=o(function(X){var fe=t.touchData.start;t.touchData.capture=!1,fe&&fe.unactivate()},"touchcancelHandler"));var ae,ue,ce,te;if(t.registerBinding(e,"touchend",ae=o(function(X){var fe=t.touchData.start,he=t.touchData.capture;if(he)X.touches.length===0&&(t.touchData.capture=!1),X.preventDefault();else return;var ge=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var ne=t.cy,ye=ne.zoom(),U=t.touchData.now,Te=t.touchData.earlier;if(X.touches[0]){var se=t.projectIntoViewport(X.touches[0].clientX,X.touches[0].clientY);U[0]=se[0],U[1]=se[1]}if(X.touches[1]){var se=t.projectIntoViewport(X.touches[1].clientX,X.touches[1].clientY);U[2]=se[0],U[3]=se[1]}if(X.touches[2]){var se=t.projectIntoViewport(X.touches[2].clientX,X.touches[2].clientY);U[4]=se[0],U[5]=se[1]}fe&&fe.unactivate();var Ee;if(t.touchData.cxt){if(Ee={originalEvent:X,type:"cxttapend",position:{x:U[0],y:U[1]}},fe?fe.emit(Ee):ne.emit(Ee),!t.touchData.cxtDragged){var Ae={originalEvent:X,type:"cxttap",position:{x:U[0],y:U[1]}};fe?fe.emit(Ae):ne.emit(Ae)}t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,t.redraw();return}if(!X.touches[2]&&ne.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var Pe=ne.collection(t.getAllInBox(ge[0],ge[1],ge[2],ge[3]));ge[0]=void 0,ge[1]=void 0,ge[2]=void 0,ge[3]=void 0,ge[4]=0,t.redrawHint("select",!0),ne.emit({type:"boxend",originalEvent:X,position:{x:U[0],y:U[1]}});var Me=o(function(ft){return ft.selectable()&&!ft.selected()},"eleWouldBeSelected");Pe.emit("box").stdFilter(Me).select().emit("boxselect"),Pe.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(fe?.unactivate(),X.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!X.touches[1]){if(!X.touches[0]){if(!X.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var me=t.dragData.touchDragEles;if(fe!=null){var We=fe._private.grabbed;v(me),t.redrawHint("drag",!0),t.redrawHint("eles",!0),We&&(fe.emit("freeon"),me.emit("free"),t.dragData.didDrag&&(fe.emit("dragfreeon"),me.emit("dragfree"))),n(fe,["touchend","tapend","vmouseup","tapdragout"],X,{x:U[0],y:U[1]}),fe.unactivate(),t.touchData.start=null}else{var Re=t.findNearestElement(U[0],U[1],!0,!0);n(Re,["touchend","tapend","vmouseup","tapdragout"],X,{x:U[0],y:U[1]})}var tt=t.touchData.startPosition[0]-U[0],gt=tt*tt,Et=t.touchData.startPosition[1]-U[1],vt=Et*Et,Ye=gt+vt,Tt=Ye*ye*ye;t.touchData.singleTouchMoved||(fe||ne.$(":selected").unselect(["tapunselect"]),n(fe,["tap","vclick"],X,{x:U[0],y:U[1]}),ue=!1,X.timeStamp-te<=ne.multiClickDebounceTime()?(ce&&clearTimeout(ce),ue=!0,te=null,n(fe,["dbltap","vdblclick"],X,{x:U[0],y:U[1]})):(ce=setTimeout(function(){ue||n(fe,["onetap","voneclick"],X,{x:U[0],y:U[1]})},ne.multiClickDebounceTime()),te=X.timeStamp)),fe!=null&&!t.dragData.didDrag&&fe._private.selectable&&Tt"u"){var De=[],oe=o(function(X){return{clientX:X.clientX,clientY:X.clientY,force:1,identifier:X.pointerId,pageX:X.pageX,pageY:X.pageY,radiusX:X.width/2,radiusY:X.height/2,screenX:X.screenX,screenY:X.screenY,target:X.target}},"makeTouch"),ke=o(function(X){return{event:X,touch:oe(X)}},"makePointer"),Fe=o(function(X){De.push(ke(X))},"addPointer"),Be=o(function(X){for(var fe=0;fe0)return W[0]}return null},"getCurveT"),g=Object.keys(p),y=0;y0?m:pge(a,s,e,r,n,i,l,u)},"intersectLine"),checkPoint:o(function(e,r,n,i,a,s,l,u){u=u==="auto"?$0(i,a):u;var h=2*u;if(ju(e,r,this.points,s,l,i,a-h,[0,-1],n)||ju(e,r,this.points,s,l,i-h,a,[0,-1],n))return!0;var f=i/2+2*n,d=a/2+2*n,p=[s-f,l-d,s-f,l,s+f,l,s+f,l-d];return!!(Gs(e,r,p)||B0(e,r,h,h,s+i/2-u,l+a/2-u,n)||B0(e,r,h,h,s-i/2+u,l+a/2-u,n))},"checkPoint")}};Qu.registerNodeShapes=function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",ls(3,0)),this.generateRoundPolygon("round-triangle",ls(3,0)),this.generatePolygon("rectangle",ls(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r),this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",ls(5,0)),this.generateRoundPolygon("round-pentagon",ls(5,0)),this.generatePolygon("hexagon",ls(6,0)),this.generateRoundPolygon("round-hexagon",ls(6,0)),this.generatePolygon("heptagon",ls(7,0)),this.generateRoundPolygon("round-heptagon",ls(7,0)),this.generatePolygon("octagon",ls(8,0)),this.generateRoundPolygon("round-octagon",ls(8,0));var n=new Array(20);{var i=BP(5,0),a=BP(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var l=0;l=e.deqFastCost*_)break}else if(h){if(b>=e.deqCost*m||b>=e.deqAvgCost*p)break}else if(w>=e.deqNoDrawCost*IP)break;var T=e.deq(n,v,y);if(T.length>0)for(var E=0;E0&&(e.onDeqd(n,g),!h&&e.shouldRedraw(n,g,v,y)&&a())},"dequeue"),l=e.priority||iB;i.beforeRender(s,l(n))}},"setupDequeueingImpl")},"setupDequeueing")},Det=function(){function t(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:g6;JP(this,t),this.idsByKey=new Uc,this.keyForId=new Uc,this.cachesByLvl=new Uc,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=r}return o(t,"ElementTextureCacheLookup"),eB(t,[{key:"getIdsFor",value:o(function(r){r==null&&hi("Can not get id list for null key");var n=this.idsByKey,i=this.idsByKey.get(r);return i||(i=new f1,n.set(r,i)),i},"getIdsFor")},{key:"addIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:o(function(r,n){r!=null&&this.getIdsFor(r).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:o(function(r){return r==null?0:this.getIdsFor(r).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);this.deleteIdForKey(i,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteIdForKey(i,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:o(function(r){var n=r.id(),i=this.keyForId.get(n),a=this.getKey(r);return i!==a},"keyHasChangedFor")},{key:"isInvalid",value:o(function(r){return this.keyHasChangedFor(r)||this.doesEleInvalidateKey(r)},"isInvalid")},{key:"getCachesAt",value:o(function(r){var n=this.cachesByLvl,i=this.lvls,a=n.get(r);return a||(a=new Uc,n.set(r,a),i.push(r)),a},"getCachesAt")},{key:"getCache",value:o(function(r,n){return this.getCachesAt(n).get(r)},"getCache")},{key:"get",value:o(function(r,n){var i=this.getKey(r),a=this.getCache(i,n);return a!=null&&this.updateKeyMappingFor(r),a},"get")},{key:"getForCachedKey",value:o(function(r,n){var i=this.keyForId.get(r.id()),a=this.getCache(i,n);return a},"getForCachedKey")},{key:"hasCache",value:o(function(r,n){return this.getCachesAt(n).has(r)},"hasCache")},{key:"has",value:o(function(r,n){var i=this.getKey(r);return this.hasCache(i,n)},"has")},{key:"setCache",value:o(function(r,n,i){i.key=r,this.getCachesAt(n).set(r,i)},"setCache")},{key:"set",value:o(function(r,n,i){var a=this.getKey(r);this.setCache(a,n,i),this.updateKeyMappingFor(r)},"set")},{key:"deleteCache",value:o(function(r,n){this.getCachesAt(n).delete(r)},"deleteCache")},{key:"delete",value:o(function(r,n){var i=this.getKey(r);this.deleteCache(i,n)},"_delete")},{key:"invalidateKey",value:o(function(r){var n=this;this.lvls.forEach(function(i){return n.deleteCache(r,i)})},"invalidateKey")},{key:"invalidate",value:o(function(r){var n=r.id(),i=this.keyForId.get(n);this.deleteKeyMappingFor(r);var a=this.doesEleInvalidateKey(r);return a&&this.invalidateKey(i),a||this.getNumberOfIdsForKey(i)===0},"invalidate")}]),t}(),Pme=25,i6=50,d6=-4,jP=3,Net=7.99,Ret=8,Met=1024,Iet=1024,Oet=1024,Pet=.2,Bet=.8,Fet=10,zet=.15,Get=.1,$et=.9,Vet=.9,Uet=100,Het=1,n1={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Wet=wa({getKey:null,doesEleInvalidateKey:g6,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:sge,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Fx=o(function(e,r){var n=this;n.renderer=e,n.onDequeues=[];var i=Wet(r);ir(n,i),n.lookup=new Det(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),qi=Fx.prototype;qi.reasons=n1;qi.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]};qi.getRetiredTextureQueue=function(t){var e=this,r=e.eleImgCaches.retired=e.eleImgCaches.retired||{},n=r[t]=r[t]||[];return n};qi.getElementQueue=function(){var t=this,e=t.eleCacheQueue=t.eleCacheQueue||new tb(function(r,n){return n.reqs-r.reqs});return e};qi.getElementKeyToQueue=function(){var t=this,e=t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{};return e};qi.getElement=function(t,e,r,n,i){var a=this,s=this.renderer,l=s.cy.zoom(),u=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!a.allowEdgeTxrCaching&&t.isEdge()||!a.allowParentTxrCaching&&t.isParent())return null;if(n==null&&(n=Math.ceil(sB(l*r))),n=Net||n>jP)return null;var h=Math.pow(2,n),f=e.h*h,d=e.w*h,p=s.eleTextBiggerThanMin(t,h);if(!this.isVisible(t,p))return null;var m=u.get(t,n);if(m&&m.invalidated&&(m.invalidated=!1,m.texture.invalidatedWidth-=m.width),m)return m;var g;if(f<=Pme?g=Pme:f<=i6?g=i6:g=Math.ceil(f/i6)*i6,f>Oet||d>Iet)return null;var y=a.getTextureQueue(g),v=y[y.length-2],x=o(function(){return a.recycleTexture(g,d)||a.addTexture(g,d)},"addNewTxr");v||(v=y[y.length-1]),v||(v=x()),v.width-v.usedWidthn;D--)A=a.getElement(t,e,r,D,n1.downscale);I()}else return a.queueElement(t,E.level-1),E;else{var k;if(!w&&!_&&!T)for(var R=n-1;R>=d6;R--){var S=u.get(t,R);if(S){k=S;break}}if(b(k))return a.queueElement(t,n),k;v.context.translate(v.usedWidth,0),v.context.scale(h,h),this.drawElement(v.context,t,e,p,!1),v.context.scale(1/h,1/h),v.context.translate(-v.usedWidth,0)}return m={x:v.usedWidth,texture:v,level:n,scale:h,width:d,height:f,scaledLabelShown:p},v.usedWidth+=Math.ceil(d+Ret),v.eleCaches.push(m),u.set(t,n,m),a.checkTextureFullness(v),m};qi.invalidateElements=function(t){for(var e=0;e=Pet*t.width&&this.retireTexture(t)};qi.checkTextureFullness=function(t){var e=this,r=e.getTextureQueue(t.height);t.usedWidth/t.width>Bet&&t.fullnessChecks>=Fet?Cf(r,t):t.fullnessChecks++};qi.retireTexture=function(t){var e=this,r=t.height,n=e.getTextureQueue(r),i=this.lookup;Cf(n,t),t.retired=!0;for(var a=t.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,aB(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),Cf(i,s),n.push(s),s}};qi.queueElement=function(t,e){var r=this,n=r.getElementQueue(),i=r.getElementKeyToQueue(),a=this.getKey(t),s=i[a];if(s)s.level=Math.max(s.level,e),s.eles.merge(t),s.reqs++,n.updateItem(s);else{var l={eles:t.spawn().merge(t),level:e,reqs:1,key:a};n.push(l),i[a]=l}};qi.dequeue=function(t){for(var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=[],a=e.lookup,s=0;s0;s++){var l=r.pop(),u=l.key,h=l.eles[0],f=a.hasCache(h,l.level);if(n[u]=null,f)continue;i.push(l);var d=e.getBoundingBox(h);e.getElement(h,d,t,l.level,n1.dequeue)}return i};qi.removeFromQueue=function(t){var e=this,r=e.getElementQueue(),n=e.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a!=null&&(a.eles.length===1?(a.reqs=nB,r.updateItem(a),r.pop(),n[i]=null):a.eles.unmerge(t))};qi.onDequeue=function(t){this.onDequeues.push(t)};qi.offDequeue=function(t){Cf(this.onDequeues,t)};qi.setupDequeueing=m1e.setupDequeueing({deqRedrawThreshold:Uet,deqCost:zet,deqAvgCost:Get,deqNoDrawCost:$et,deqFastCost:Vet,deq:o(function(e,r,n){return e.dequeue(r,n)},"deq"),onDeqd:o(function(e,r){for(var n=0;n=qet||r>E6)return null}n.validateLayersElesOrdering(r,t);var u=n.layersByLevel,h=Math.pow(2,r),f=u[r]=u[r]||[],d,p=n.levelIsComplete(r,t),m,g=o(function(){var I=o(function(O){if(n.validateLayersElesOrdering(O,t),n.levelIsComplete(O,t))return m=u[O],!0},"canUseAsTmpLvl"),D=o(function(O){if(!m)for(var N=r+O;Gx<=N&&N<=E6&&!I(N);N+=O);},"checkLvls");D(1),D(-1);for(var k=f.length-1;k>=0;k--){var R=f[k];R.invalid&&Cf(f,R)}},"checkTempLevels");if(!p)g();else return f;var y=o(function(){if(!d){d=$s();for(var I=0;Ittt)return null;var R=n.makeLayer(d,r);if(D!=null){var S=f.indexOf(D)+1;f.splice(S,0,R)}else(I.insert===void 0||I.insert)&&f.unshift(R);return R},"makeLayer");if(n.skipping&&!l)return null;for(var x=null,b=t.length/Yet,w=!l,_=0;_=b||!dge(x.bb,T.boundingBox()))&&(x=v({insert:!0,after:x}),!x))return null;m||w?n.queueLayer(x,T):n.drawEleInLayer(x,T,r,e),x.eles.push(T),L[r]=x}return m||(w?null:f)};Ta.getEleLevelForLayerLevel=function(t,e){return t};Ta.drawEleInLayer=function(t,e,r,n){var i=this,a=this.renderer,s=t.context,l=e.boundingBox();l.w===0||l.h===0||!e.visible()||(r=i.getEleLevelForLayerLevel(r,n),a.setImgSmoothing(s,!1),a.drawCachedElement(s,e,null,null,r,rtt),a.setImgSmoothing(s,!0))};Ta.levelIsComplete=function(t,e){var r=this,n=r.layersByLevel[t];if(!n||n.length===0)return!1;for(var i=0,a=0;a0||s.invalid)return!1;i+=s.eles.length}return i===e.length};Ta.validateLayersElesOrdering=function(t,e){var r=this.layersByLevel[t];if(r)for(var n=0;n0){e=!0;break}}return e};Ta.invalidateElements=function(t){var e=this;t.length!==0&&(e.lastInvalidationTime=Xu(),!(t.length===0||!e.haveLayers())&&e.updateElementsInLayers(t,o(function(n,i,a){e.invalidateLayer(n)},"invalAssocLayers")))};Ta.invalidateLayer=function(t){if(this.lastInvalidationTime=Xu(),!t.invalid){var e=t.level,r=t.eles,n=this.layersByLevel[e];Cf(n,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var i=0;i3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l=e._private.rscratch;if(!(a&&!e.visible())&&!(l.badLine||l.allpts==null||isNaN(l.allpts[0]))){var u;r&&(u=r,t.translate(-u.x1,-u.y1));var h=a?e.pstyle("opacity").value:1,f=a?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,p=e.pstyle("line-style").value,m=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,v=e.pstyle("line-outline-color").value,x=h*f,b=h*f,w=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;d==="straight-triangle"?(s.eleStrokeStyle(t,e,O),s.drawEdgeTrianglePath(e,t,l.allpts)):(t.lineWidth=m,t.lineCap=g,s.eleStrokeStyle(t,e,O),s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLine"),_=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:x;if(t.lineWidth=m+y,t.lineCap=g,y>0)s.colorStrokeStyle(t,v[0],v[1],v[2],O);else{t.lineCap="butt";return}d==="straight-triangle"?s.drawEdgeTrianglePath(e,t,l.allpts):(s.drawEdgePath(e,t,l.allpts,p),t.lineCap="butt")},"drawLineOutline"),T=o(function(){i&&s.drawEdgeOverlay(t,e)},"drawOverlay"),E=o(function(){i&&s.drawEdgeUnderlay(t,e)},"drawUnderlay"),L=o(function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(t,e,O)},"drawArrows"),C=o(function(){s.drawElementText(t,e,null,n)},"drawText");t.lineJoin="round";var A=e.pstyle("ghost").value==="yes";if(A){var I=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,R=x*k;t.translate(I,D),w(R),L(R),t.translate(-I,-D)}else _();E(),w(),L(),T(),C(),r&&t.translate(u.x1,u.y1)}};v1e=o(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(r,n){if(n.visible()){var i=n.pstyle("".concat(e,"-opacity")).value;if(i!==0){var a=this,s=a.usePaths(),l=n._private.rscratch,u=n.pstyle("".concat(e,"-padding")).pfValue,h=2*u,f=n.pstyle("".concat(e,"-color")).value;r.lineWidth=h,l.edgeType==="self"&&!s?r.lineCap="butt":r.lineCap="round",a.colorStrokeStyle(r,f[0],f[1],f[2],i),a.drawEdgePath(n,r,l.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");Zu.drawEdgeOverlay=v1e("overlay");Zu.drawEdgeUnderlay=v1e("underlay");Zu.drawEdgePath=function(t,e,r,n){var i=t._private.rscratch,a=e,s,l=!1,u=this.usePaths(),h=t.pstyle("line-dash-pattern").pfValue,f=t.pstyle("line-dash-offset").pfValue;if(u){var d=r.join("$"),p=i.pathCacheKey&&i.pathCacheKey===d;p?(s=e=i.pathCache,l=!0):(s=e=new Path2D,i.pathCacheKey=d,i.pathCache=s)}if(a.setLineDash)switch(n){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(h),a.lineDashOffset=f;break;case"solid":a.setLineDash([]);break}if(!l&&!i.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(r[0],r[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var m=2;m+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(n==null){if(a&&!s.eleTextBiggerThanMin(e))return}else if(n===!1)return;if(e.isNode()){var l=e.pstyle("label");if(!l||!l.value)return;var u=s.getLabelJustification(e);t.textAlign=u,t.textBaseline="bottom"}else{var h=e.element()._private.rscratch.badLine,f=e.pstyle("label"),d=e.pstyle("source-label"),p=e.pstyle("target-label");if(h||(!f||!f.value)&&(!d||!d.value)&&(!p||!p.value))return;t.textAlign="center",t.textBaseline="bottom"}var m=!r,g;r&&(g=r,t.translate(-g.x1,-g.y1)),i==null?(s.drawText(t,e,null,m,a),e.isEdge()&&(s.drawText(t,e,"source",m,a),s.drawText(t,e,"target",m,a))):s.drawText(t,e,i,m,a),r&&t.translate(g.x1,g.y1)};Y0.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==void 0?arguments[2]:!0,n=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue+"px",a=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,l=r?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,u=e.pstyle("text-outline-opacity").value*l,h=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;t.font=n+" "+s+" "+i+" "+a,t.lineJoin="round",this.colorFillStyle(t,h[0],h[1],h[2],l),this.colorStrokeStyle(t,f[0],f[1],f[2],u)};o(PP,"roundRect");Y0.getTextAngle=function(t,e){var r,n=t._private,i=n.rscratch,a=e?e+"-":"",s=t.pstyle(a+"text-rotation"),l=Wl(i,"labelAngle",e);return s.strValue==="autorotate"?r=t.isEdge()?l:0:s.strValue==="none"?r=0:r=s.pfValue,r};Y0.drawText=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=e._private,s=a.rscratch,l=i?e.effectiveOpacity():1;if(!(i&&(l===0||e.pstyle("text-opacity").value===0))){r==="main"&&(r=null);var u=Wl(s,"labelX",r),h=Wl(s,"labelY",r),f,d,p=this.getLabelText(e,r);if(p!=null&&p!==""&&!isNaN(u)&&!isNaN(h)){this.setupTextStyle(t,e,i);var m=r?r+"-":"",g=Wl(s,"labelWidth",r),y=Wl(s,"labelHeight",r),v=e.pstyle(m+"text-margin-x").pfValue,x=e.pstyle(m+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,_=e.pstyle("text-valign").value;b&&(w="center",_="center"),u+=v,h+=x;var T;switch(n?T=this.getTextAngle(e,r):T=0,T!==0&&(f=u,d=h,t.translate(f,d),t.rotate(T),u=0,h=0),_){case"top":break;case"center":h+=y/2;break;case"bottom":h+=y;break}var E=e.pstyle("text-background-opacity").value,L=e.pstyle("text-border-opacity").value,C=e.pstyle("text-border-width").pfValue,A=e.pstyle("text-background-padding").pfValue,I=e.pstyle("text-background-shape").strValue,D=I.indexOf("round")===0,k=2;if(E>0||C>0&&L>0){var R=u-A;switch(w){case"left":R-=g;break;case"center":R-=g/2;break}var S=h-y-A,O=g+2*A,N=y+2*A;if(E>0){var P=t.fillStyle,F=e.pstyle("text-background-color").value;t.fillStyle="rgba("+F[0]+","+F[1]+","+F[2]+","+E*l+")",D?PP(t,R,S,O,N,k):t.fillRect(R,S,O,N),t.fillStyle=P}if(C>0&&L>0){var B=t.strokeStyle,$=t.lineWidth,z=e.pstyle("text-border-color").value,W=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+z[0]+","+z[1]+","+z[2]+","+L*l+")",t.lineWidth=C,t.setLineDash)switch(W){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=C/4,t.setLineDash([]);break;case"solid":t.setLineDash([]);break}if(D?PP(t,R,S,O,N,k,"stroke"):t.strokeRect(R,S,O,N),W==="double"){var j=C/2;D?PP(t,R+j,S+j,O-j*2,N-j*2,k,"stroke"):t.strokeRect(R+j,S+j,O-j*2,N-j*2)}t.setLineDash&&t.setLineDash([]),t.lineWidth=$,t.strokeStyle=B}}var K=2*e.pstyle("text-outline-width").pfValue;if(K>0&&(t.lineWidth=K),e.pstyle("text-wrap").value==="wrap"){var ie=Wl(s,"labelWrapCachedLines",r),Q=Wl(s,"labelLineHeight",r),ee=g/2,J=this.getLabelJustification(e);switch(J==="auto"||(w==="left"?J==="left"?u+=-g:J==="center"&&(u+=-ee):w==="center"?J==="left"?u+=-ee:J==="right"&&(u+=ee):w==="right"&&(J==="center"?u+=ee:J==="right"&&(u+=g))),_){case"top":h-=(ie.length-1)*Q;break;case"center":case"bottom":h-=(ie.length-1)*Q;break}for(var H=0;H0&&t.strokeText(ie[H],u,h),t.fillText(ie[H],u,h),h+=Q}else K>0&&t.strokeText(p,u,h),t.fillText(p,u,h);T!==0&&(t.rotate(-T),t.translate(-f,-d))}}};w1={};w1.drawNode=function(t,e,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,l,u,h=e._private,f=h.rscratch,d=e.position();if(!(!xt(d.x)||!xt(d.y))&&!(a&&!e.visible())){var p=a?e.effectiveOpacity():1,m=s.usePaths(),g,y=!1,v=e.padding();l=e.width()+2*v,u=e.height()+2*v;var x;r&&(x=r,t.translate(-x.x1,-x.y1));for(var b=e.pstyle("background-image"),w=b.value,_=new Array(w.length),T=new Array(w.length),E=0,L=0;L0&&arguments[0]!==void 0?arguments[0]:R;s.eleFillStyle(t,e,ye)},"setupShapeColor"),H=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;s.colorStrokeStyle(t,S[0],S[1],S[2],ye)},"setupBorderColor"),q=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ie;s.colorStrokeStyle(t,j[0],j[1],j[2],ye)},"setupOutlineColor"),Z=o(function(ye,U,Te,se){var Ee=s.nodePathCache=s.nodePathCache||[],Ae=age(Te==="polygon"?Te+","+se.join(","):Te,""+U,""+ye,""+ee),Pe=Ee[Ae],Me,me=!1;return Pe!=null?(Me=Pe,me=!0,f.pathCache=Me):(Me=new Path2D,Ee[Ae]=f.pathCache=Me),{path:Me,cacheHit:me}},"getPath"),ae=e.pstyle("shape").strValue,ue=e.pstyle("shape-polygon-points").pfValue;if(m){t.translate(d.x,d.y);var ce=Z(l,u,ae,ue);g=ce.path,y=ce.cacheHit}var te=o(function(){if(!y){var ye=d;m&&(ye={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(g||t,ye.x,ye.y,l,u,ee,f)}m?t.fill(g):t.fill()},"drawShape"),De=o(function(){for(var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Te=h.backgrounding,se=0,Ee=0;Ee0&&arguments[0]!==void 0?arguments[0]:!1,U=arguments.length>1&&arguments[1]!==void 0?arguments[1]:p;s.hasPie(e)&&(s.drawPie(t,e,U),ye&&(m||s.nodeShapes[s.getNodeShape(e)].draw(t,d.x,d.y,l,u,ee,f)))},"drawPie"),ke=o(function(){var ye=arguments.length>0&&arguments[0]!==void 0?arguments[0]:p,U=(D>0?D:-D)*ye,Te=D>0?0:255;D!==0&&(s.colorFillStyle(t,Te,Te,Te,U),m?t.fill(g):t.fill())},"darken"),Fe=o(function(){if(k>0){if(t.lineWidth=k,t.lineCap=P,t.lineJoin=N,t.setLineDash)switch(O){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash(B),t.lineDashOffset=$;break;case"solid":case"double":t.setLineDash([]);break}if(F!=="center"){if(t.save(),t.lineWidth*=2,F==="inside")m?t.clip(g):t.clip();else{var ye=new Path2D;ye.rect(-l/2-k,-u/2-k,l+2*k,u+2*k),ye.addPath(g),t.clip(ye,"evenodd")}m?t.stroke(g):t.stroke(),t.restore()}else m?t.stroke(g):t.stroke();if(O==="double"){t.lineWidth=k/3;var U=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",m?t.stroke(g):t.stroke(),t.globalCompositeOperation=U}t.setLineDash&&t.setLineDash([])}},"drawBorder"),Be=o(function(){if(W>0){if(t.lineWidth=W,t.lineCap="butt",t.setLineDash)switch(K){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([]);break}var ye=d;m&&(ye={x:0,y:0});var U=s.getNodeShape(e),Te=k;F==="inside"&&(Te=0),F==="outside"&&(Te*=2);var se=(l+Te+(W+Q))/l,Ee=(u+Te+(W+Q))/u,Ae=l*se,Pe=u*Ee,Me=s.nodeShapes[U].points,me;if(m){var We=Z(Ae,Pe,U,Me);me=We.path}if(U==="ellipse")s.drawEllipsePath(me||t,ye.x,ye.y,Ae,Pe);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(U)){var Re=0,tt=0,gt=0;U==="round-diamond"?Re=(Te+Q+W)*1.4:U==="round-heptagon"?(Re=(Te+Q+W)*1.075,gt=-(Te/2+Q+W)/35):U==="round-hexagon"?Re=(Te+Q+W)*1.12:U==="round-pentagon"?(Re=(Te+Q+W)*1.13,gt=-(Te/2+Q+W)/15):U==="round-tag"?(Re=(Te+Q+W)*1.12,tt=(Te/2+W+Q)*.07):U==="round-triangle"&&(Re=(Te+Q+W)*(Math.PI/2),gt=-(Te+Q/2+W)/Math.PI),Re!==0&&(se=(l+Re)/l,Ae=l*se,["round-hexagon","round-tag"].includes(U)||(Ee=(u+Re)/u,Pe=u*Ee)),ee=ee==="auto"?gge(Ae,Pe):ee;for(var Et=Ae/2,vt=Pe/2,Ye=ee+(Te+W+Q)/2,Tt=new Array(Me.length/2),$e=new Array(Me.length/2),rt=0;rt0){if(i=i||n.position(),a==null||s==null){var m=n.padding();a=n.width()+2*m,s=n.height()+2*m}l.colorFillStyle(r,f[0],f[1],f[2],h),l.nodeShapes[d].draw(r,i.x,i.y,a+u*2,s+u*2,p),r.fill()}}}},"drawNodeOverlayUnderlay");w1.drawNodeOverlay=x1e("overlay");w1.drawNodeUnderlay=x1e("underlay");w1.hasPie=function(t){return t=t[0],t._private.hasPie};w1.drawPie=function(t,e,r,n){e=e[0],n=n||e.position();var i=e.cy().style(),a=e.pstyle("pie-size"),s=n.x,l=n.y,u=e.width(),h=e.height(),f=Math.min(u,h)/2,d=0,p=this.usePaths();p&&(s=0,l=0),a.units==="%"?f=f*a.pfValue:a.pfValue!==void 0&&(f=a.pfValue/2);for(var m=1;m<=i.pieBackgroundN;m++){var g=e.pstyle("pie-"+m+"-background-size").value,y=e.pstyle("pie-"+m+"-background-color").value,v=e.pstyle("pie-"+m+"-background-opacity").value*r,x=g/100;x+d>1&&(x=1-d);var b=1.5*Math.PI+2*Math.PI*d,w=2*Math.PI*x,_=b+w;g===0||d>=1||d+x>1||(t.beginPath(),t.moveTo(s,l),t.arc(s,l,f,b,_),t.closePath(),this.colorFillStyle(t,y[0],y[1],y[2],v),t.fill(),d+=x)}};mo={},dtt=100;mo.getPixelRatio=function(){var t=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),r=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/r};mo.paintCache=function(t){for(var e=this.paintCaches=this.paintCaches||[],r=!0,n,i=0;is.minMbLowQualFrames&&(s.motionBlurPxRatio=s.mbPxRBlurry)),s.clearingMotionBlur&&(s.motionBlurPxRatio=1),s.textureDrawLastFrame&&!d&&(f[s.NODE]=!0,f[s.SELECT_BOX]=!0);var b=u.style(),w=u.zoom(),_=i!==void 0?i:w,T=u.pan(),E={x:T.x,y:T.y},L={zoom:w,pan:{x:T.x,y:T.y}},C=s.prevViewport,A=C===void 0||L.zoom!==C.zoom||L.pan.x!==C.pan.x||L.pan.y!==C.pan.y;!A&&!(y&&!g)&&(s.motionBlurPxRatio=1),a&&(E=a),_*=l,E.x*=l,E.y*=l;var I=s.getCachedZSortedEles();function D(ce,te,De,oe,ke){var Fe=ce.globalCompositeOperation;ce.globalCompositeOperation="destination-out",s.colorFillStyle(ce,255,255,255,s.motionBlurTransparency),ce.fillRect(te,De,oe,ke),ce.globalCompositeOperation=Fe}o(D,"mbclear");function k(ce,te){var De,oe,ke,Fe;!s.clearingMotionBlur&&(ce===h.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]||ce===h.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG])?(De={x:T.x*m,y:T.y*m},oe=w*m,ke=s.canvasWidth*m,Fe=s.canvasHeight*m):(De=E,oe=_,ke=s.canvasWidth,Fe=s.canvasHeight),ce.setTransform(1,0,0,1,0,0),te==="motionBlur"?D(ce,0,0,ke,Fe):!e&&(te===void 0||te)&&ce.clearRect(0,0,ke,Fe),r||(ce.translate(De.x,De.y),ce.scale(oe,oe)),a&&ce.translate(a.x,a.y),i&&ce.scale(i,i)}if(o(k,"setContextTransform"),d||(s.textureDrawLastFrame=!1),d){if(s.textureDrawLastFrame=!0,!s.textureCache){s.textureCache={},s.textureCache.bb=u.mutableElements().boundingBox(),s.textureCache.texture=s.data.bufferCanvases[s.TEXTURE_BUFFER];var R=s.data.bufferContexts[s.TEXTURE_BUFFER];R.setTransform(1,0,0,1,0,0),R.clearRect(0,0,s.canvasWidth*s.textureMult,s.canvasHeight*s.textureMult),s.render({forcedContext:R,drawOnlyNodeLayer:!0,forcedPxRatio:l*s.textureMult});var L=s.textureCache.viewport={zoom:u.zoom(),pan:u.pan(),width:s.canvasWidth,height:s.canvasHeight};L.mpan={x:(0-L.pan.x)/L.zoom,y:(0-L.pan.y)/L.zoom}}f[s.DRAG]=!1,f[s.NODE]=!1;var S=h.contexts[s.NODE],O=s.textureCache.texture,L=s.textureCache.viewport;S.setTransform(1,0,0,1,0,0),p?D(S,0,0,L.width,L.height):S.clearRect(0,0,L.width,L.height);var N=b.core("outside-texture-bg-color").value,P=b.core("outside-texture-bg-opacity").value;s.colorFillStyle(S,N[0],N[1],N[2],P),S.fillRect(0,0,L.width,L.height);var w=u.zoom();k(S,!1),S.clearRect(L.mpan.x,L.mpan.y,L.width/L.zoom/l,L.height/L.zoom/l),S.drawImage(O,L.mpan.x,L.mpan.y,L.width/L.zoom/l,L.height/L.zoom/l)}else s.textureOnViewport&&!e&&(s.textureCache=null);var F=u.extent(),B=s.pinching||s.hoverData.dragging||s.swipePanning||s.data.wheelZooming||s.hoverData.draggingEles||s.cy.animated(),$=s.hideEdgesOnViewport&&B,z=[];if(z[s.NODE]=!f[s.NODE]&&p&&!s.clearedForMotionBlur[s.NODE]||s.clearingMotionBlur,z[s.NODE]&&(s.clearedForMotionBlur[s.NODE]=!0),z[s.DRAG]=!f[s.DRAG]&&p&&!s.clearedForMotionBlur[s.DRAG]||s.clearingMotionBlur,z[s.DRAG]&&(s.clearedForMotionBlur[s.DRAG]=!0),f[s.NODE]||r||n||z[s.NODE]){var W=p&&!z[s.NODE]&&m!==1,S=e||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_NODE]:h.contexts[s.NODE]),j=p&&!W?"motionBlur":void 0;k(S,j),$?s.drawCachedNodes(S,I.nondrag,l,F):s.drawLayeredElements(S,I.nondrag,l,F),s.debug&&s.drawDebugPoints(S,I.nondrag),!r&&!p&&(f[s.NODE]=!1)}if(!n&&(f[s.DRAG]||r||z[s.DRAG])){var W=p&&!z[s.DRAG]&&m!==1,S=e||(W?s.data.bufferContexts[s.MOTIONBLUR_BUFFER_DRAG]:h.contexts[s.DRAG]);k(S,p&&!W?"motionBlur":void 0),$?s.drawCachedNodes(S,I.drag,l,F):s.drawCachedElements(S,I.drag,l,F),s.debug&&s.drawDebugPoints(S,I.drag),!r&&!p&&(f[s.DRAG]=!1)}if(s.showFps||!n&&f[s.SELECT_BOX]&&!r){var S=e||h.contexts[s.SELECT_BOX];if(k(S),s.selection[4]==1&&(s.hoverData.selecting||s.touchData.selecting)){var w=s.cy.zoom(),K=b.core("selection-box-border-width").value/w;S.lineWidth=K,S.fillStyle="rgba("+b.core("selection-box-color").value[0]+","+b.core("selection-box-color").value[1]+","+b.core("selection-box-color").value[2]+","+b.core("selection-box-opacity").value+")",S.fillRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]),K>0&&(S.strokeStyle="rgba("+b.core("selection-box-border-color").value[0]+","+b.core("selection-box-border-color").value[1]+","+b.core("selection-box-border-color").value[2]+","+b.core("selection-box-opacity").value+")",S.strokeRect(s.selection[0],s.selection[1],s.selection[2]-s.selection[0],s.selection[3]-s.selection[1]))}if(h.bgActivePosistion&&!s.hoverData.selecting){var w=s.cy.zoom(),ie=h.bgActivePosistion;S.fillStyle="rgba("+b.core("active-bg-color").value[0]+","+b.core("active-bg-color").value[1]+","+b.core("active-bg-color").value[2]+","+b.core("active-bg-opacity").value+")",S.beginPath(),S.arc(ie.x,ie.y,b.core("active-bg-size").pfValue/w,0,2*Math.PI),S.fill()}var Q=s.lastRedrawTime;if(s.showFps&&Q){Q=Math.round(Q);var ee=Math.round(1e3/Q);S.setTransform(1,0,0,1,0,0),S.fillStyle="rgba(255, 0, 0, 0.75)",S.strokeStyle="rgba(255, 0, 0, 0.75)",S.lineWidth=1,S.fillText("1 frame = "+Q+" ms = "+ee+" fps",0,20);var J=60;S.strokeRect(0,30,250,20),S.fillRect(0,30,250*Math.min(ee/J,1),20)}r||(f[s.SELECT_BOX]=!1)}if(p&&m!==1){var H=h.contexts[s.NODE],q=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_NODE],Z=h.contexts[s.DRAG],ae=s.data.bufferCanvases[s.MOTIONBLUR_BUFFER_DRAG],ue=o(function(te,De,oe){te.setTransform(1,0,0,1,0,0),oe||!x?te.clearRect(0,0,s.canvasWidth,s.canvasHeight):D(te,0,0,s.canvasWidth,s.canvasHeight);var ke=m;te.drawImage(De,0,0,s.canvasWidth*ke,s.canvasHeight*ke,0,0,s.canvasWidth,s.canvasHeight)},"drawMotionBlur");(f[s.NODE]||z[s.NODE])&&(ue(H,q,z[s.NODE]),f[s.NODE]=!1),(f[s.DRAG]||z[s.DRAG])&&(ue(Z,ae,z[s.DRAG]),f[s.DRAG]=!1)}s.prevViewport=L,s.clearingMotionBlur&&(s.clearingMotionBlur=!1,s.motionBlurCleared=!0,s.motionBlur=!0),p&&(s.motionBlurTimeout=setTimeout(function(){s.motionBlurTimeout=null,s.clearedForMotionBlur[s.NODE]=!1,s.clearedForMotionBlur[s.DRAG]=!1,s.motionBlur=!1,s.clearingMotionBlur=!d,s.mbFrames=0,f[s.NODE]=!0,f[s.DRAG]=!0,s.redraw()},dtt)),e||u.emit("render")};Nf={};Nf.drawPolygonPath=function(t,e,r,n,i,a){var s=n/2,l=i/2;t.beginPath&&t.beginPath(),t.moveTo(e+s*a[0],r+l*a[1]);for(var u=1;u0&&s>0){m.clearRect(0,0,a,s),m.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(t.full)m.translate(-n.x1*h,-n.y1*h),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(n.x1*h,n.y1*h);else{var y=e.pan(),v={x:y.x*h,y:y.y*h};h*=e.zoom(),m.translate(v.x,v.y),m.scale(h,h),this.drawElements(m,g),m.scale(1/h,1/h),m.translate(-v.x,-v.y)}t.bg&&(m.globalCompositeOperation="destination-over",m.fillStyle=t.bg,m.rect(0,0,a,s),m.fill())}return p};o(ptt,"b64ToBlob");o(Ume,"b64UriToB64");o(w1e,"output");sb.png=function(t){return w1e(t,this.bufferCanvasImage(t),"image/png")};sb.jpg=function(t){return w1e(t,this.bufferCanvasImage(t),"image/jpeg")};T1e={};T1e.nodeShapeImpl=function(t,e,r,n,i,a,s,l){switch(t){case"ellipse":return this.drawEllipsePath(e,r,n,i,a);case"polygon":return this.drawPolygonPath(e,r,n,i,a,s);case"round-polygon":return this.drawRoundPolygonPath(e,r,n,i,a,s,l);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,r,n,i,a,l);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,r,n,i,a,s,l);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,r,n,i,a,l);case"barrel":return this.drawBarrelPath(e,r,n,i,a)}};mtt=k1e,Kr=k1e.prototype;Kr.CANVAS_LAYERS=3;Kr.SELECT_BOX=0;Kr.DRAG=1;Kr.NODE=2;Kr.BUFFER_COUNT=3;Kr.TEXTURE_BUFFER=0;Kr.MOTIONBLUR_BUFFER_NODE=1;Kr.MOTIONBLUR_BUFFER_DRAG=2;o(k1e,"CanvasRenderer");Kr.redrawHint=function(t,e){var r=this;switch(t){case"eles":r.data.canvasNeedsRedraw[Kr.NODE]=e;break;case"drag":r.data.canvasNeedsRedraw[Kr.DRAG]=e;break;case"select":r.data.canvasNeedsRedraw[Kr.SELECT_BOX]=e;break}};gtt=typeof Path2D<"u";Kr.path2dEnabled=function(t){if(t===void 0)return this.pathsEnabled;this.pathsEnabled=!!t};Kr.usePaths=function(){return gtt&&this.pathsEnabled};Kr.setImgSmoothing=function(t,e){t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)};Kr.getImgSmoothing=function(t){return t.imageSmoothingEnabled!=null?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled};Kr.makeOffscreenCanvas=function(t,e){var r;if((typeof OffscreenCanvas>"u"?"undefined":Yi(OffscreenCanvas))!=="undefined")r=new OffscreenCanvas(t,e);else{var n=this.cy.window(),i=n.document;r=i.createElement("canvas"),r.width=t,r.height=e}return r};[y1e,Yc,Zu,TB,Y0,w1,mo,Nf,sb,T1e].forEach(function(t){ir(Kr,t)});ytt=[{name:"null",impl:i1e},{name:"base",impl:p1e},{name:"canvas",impl:mtt}],vtt=[{type:"layout",extensions:ket},{type:"renderer",extensions:ytt}],E1e={},S1e={};o(C1e,"setExtension");o(A1e,"getExtension");o(xtt,"setModule");o(btt,"getModule");ZP=o(function(){if(arguments.length===2)return A1e.apply(null,arguments);if(arguments.length===3)return C1e.apply(null,arguments);if(arguments.length===4)return btt.apply(null,arguments);if(arguments.length===5)return xtt.apply(null,arguments);hi("Invalid extension access syntax")},"extension");Qx.prototype.extension=ZP;vtt.forEach(function(t){t.extensions.forEach(function(e){C1e(t.type,e.name,e.impl)})});_1e=o(function t(){if(!(this instanceof t))return new t;this.length=0},"Stylesheet"),H0=_1e.prototype;H0.instanceString=function(){return"stylesheet"};H0.selector=function(t){var e=this.length++;return this[e]={selector:t,properties:[]},this};H0.css=function(t,e){var r=this.length-1;if(Zt(t))this[r].properties.push({name:t,value:e});else if(Vr(t))for(var n=t,i=Object.keys(n),a=0;a{"use strict";o(function(e,r){typeof ob=="object"&&typeof EB=="object"?EB.exports=r():typeof define=="function"&&define.amd?define([],r):typeof ob=="object"?ob.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(ob,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=26)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(4);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp&&(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)),this.labelHeight>m&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-m)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-m),this.setHeight(this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(6),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var _=x.source.owner.getEdges().indexOf(x);if(_==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(_,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),_=w.length,T=0;T<_;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,_,T,E,L,C=this.nodes,A=C.length,I=0;Iw&&(y=w),v<_&&(v=_),x>T&&(x=T),bw&&(y=w),v<_&&(v=_),x>T&&(x=T),b=this.nodes.length){var A=0;v.forEach(function(I){I.owner==g&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(5),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=C,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):S===N&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===N?f>u?(l[2]=L,l[3]=C,R=!0):(l[2]=E,l[3]=T,R=!0):O===N&&(f>u?(l[2]=_,l[3]=T,R=!0):(l[2]=A,l[3]=C,R=!0)),k&&R)return!1;if(u>f?h>d?(P=this.getCardinalDirection(S,N,4),F=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-S,N,3),F=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-S,N,1),F=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(S,N,2),F=this.getCardinalDirection(O,N,4)),!k)switch(P){case 1:$=m,B=u+-w/N,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*N,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/N,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*N,l[0]=B,l[1]=$;break}if(!R)switch(F){case 1:W=T,z=f+-D/N,l[2]=z,l[3]=W;break;case 2:z=A,W=d+I*N,l[2]=z,l[3]=W;break;case 3:W=C,z=f+D/N,l[2]=z,l[3]=W;break;case 4:z=L,W=d+-I*N,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,_=void 0,T=void 0,E=void 0,L=void 0,C=void 0,A=void 0;return w=p-f,T=h-d,L=d*f-h*p,_=v-g,E=m-y,C=y*g-m*v,A=w*E-_*T,A===0?null:(x=(T*C-E*L)/A,b=(_*L-w*C)/A,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var L=E.getEdges(),x=0;x-1&&T.splice(D,1)}b=new Set,_=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(C,1);var A=_.getNeighborsList();A.forEach(function(k){if(y.indexOf(k)<0){var R=v.get(k),S=R-1;S==1&&E.push(k),v.set(k,S)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(4);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var _=0;_h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof lb=="object"&&typeof CB=="object"?CB.exports=r(SB()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof lb=="object"?lb.coseBase=r(SB()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(lb,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=7)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).FDLayoutConstants;function a(){}o(a,"CoSEConstants");for(var s in i)a[s]=i[s];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutEdge;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEEdge"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraph;function a(l,u,h){i.call(this,l,u,h)}o(a,"CoSEGraph"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).LGraphManager;function a(l){i.call(this,l)}o(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype);for(var s in i)a[s]=i[s];e.exports=a},function(e,r,n){"use strict";var i=n(0).FDLayoutNode,a=n(0).IMath;function s(u,h,f,d){i.call(this,u,h,f,d)}o(s,"CoSENode"),s.prototype=Object.create(i.prototype);for(var l in i)s[l]=i[l];s.prototype.move=function(){var u=this.graphManager.getLayout();this.displacementX=u.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=u.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementX=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>u.coolingFactor*u.maxNodeDisplacement&&(this.displacementY=u.coolingFactor*u.maxNodeDisplacement*a.sign(this.displacementY)),this.child==null?this.moveBy(this.displacementX,this.displacementY):this.child.getNodes().length==0?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),u.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(u,h){for(var f=this.getChild().getNodes(),d,p=0;p0)this.positionNodesRadially(T);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),L=this.nodesWithGravity.filter(function(C){return E.has(C)});this.graphManager.setAllNodesToApplyGravitation(L),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},w.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%f.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var T=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(A){return T.has(A)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=f.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var L=!this.isTreeGrowing&&!this.isGrowthFinished,C=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(L,C),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},w.prototype.getPositionsData=function(){for(var T=this.graphManager.getAllNodes(),E={},L=0;L1){var k;for(k=0;kC&&(C=Math.floor(D.y)),I=Math.floor(D.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new m(d.WORLD_CENTER_X-D.x/2,d.WORLD_CENTER_Y-D.y/2))},w.radialLayout=function(T,E,L){var C=Math.max(this.maxDiagonalInTree(T),h.DEFAULT_RADIAL_SEPARATION);w.branchRadialLayout(E,null,0,359,0,C);var A=x.calculateBounds(T),I=new b;I.setDeviceOrgX(A.getMinX()),I.setDeviceOrgY(A.getMinY()),I.setWorldOrgX(L.x),I.setWorldOrgY(L.y);for(var D=0;D1;){var j=W[0];W.splice(0,1);var K=P.indexOf(j);K>=0&&P.splice(K,1),$--,F--}E!=null?z=(P.indexOf(W[0])+1)%$:z=0;for(var ie=Math.abs(C-L)/F,Q=z;B!=F;Q=++Q%$){var ee=P[Q].getOtherEnd(T);if(ee!=E){var J=(L+B*ie)%360,H=(J+ie)%360;w.branchRadialLayout(ee,T,J,H,A+I,I),B++}}},w.maxDiagonalInTree=function(T){for(var E=y.MIN_VALUE,L=0;LE&&(E=A)}return E},w.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},w.prototype.groupZeroDegreeMembers=function(){var T=this,E={};this.memberGroups={},this.idToDummyNode={};for(var L=[],C=this.graphManager.getAllNodes(),A=0;A"u"&&(E[k]=[]),E[k]=E[k].concat(I)}Object.keys(E).forEach(function(R){if(E[R].length>1){var S="DummyCompound_"+R;T.memberGroups[S]=E[R];var O=E[R][0].getParent(),N=new l(T.graphManager);N.id=S,N.paddingLeft=O.paddingLeft||0,N.paddingRight=O.paddingRight||0,N.paddingBottom=O.paddingBottom||0,N.paddingTop=O.paddingTop||0,T.idToDummyNode[S]=N;var P=T.getGraphManager().add(T.newGraph(),N),F=O.getChild();F.add(N);for(var B=0;B=0;T--){var E=this.compoundOrder[T],L=E.id,C=E.paddingLeft,A=E.paddingTop;this.adjustLocations(this.tiledMemberPack[L],E.rect.x,E.rect.y,C,A)}},w.prototype.repopulateZeroDegreeMembers=function(){var T=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(L){var C=T.idToDummyNode[L],A=C.paddingLeft,I=C.paddingTop;T.adjustLocations(E[L],C.rect.x,C.rect.y,A,I)})},w.prototype.getToBeTiled=function(T){var E=T.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var L=T.getChild();if(L==null)return this.toBeTiled[E]=!1,!1;for(var C=L.getNodes(),A=0;A0)return this.toBeTiled[E]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},w.prototype.getNodeDegree=function(T){for(var E=T.id,L=T.getEdges(),C=0,A=0;AR&&(R=O.rect.height)}L+=R+T.verticalPadding}},w.prototype.tileCompoundMembers=function(T,E){var L=this;this.tiledMemberPack=[],Object.keys(T).forEach(function(C){var A=E[C];L.tiledMemberPack[C]=L.tileNodes(T[C],A.paddingLeft+A.paddingRight),A.rect.width=L.tiledMemberPack[C].width,A.rect.height=L.tiledMemberPack[C].height})},w.prototype.tileNodes=function(T,E){var L=h.TILING_PADDING_VERTICAL,C=h.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:L,horizontalPadding:C};T.sort(function(k,R){return k.rect.width*k.rect.height>R.rect.width*R.rect.height?-1:k.rect.width*k.rect.height0&&(D+=T.horizontalPadding),T.rowWidth[L]=D,T.width0&&(k+=T.verticalPadding);var R=0;k>T.rowHeight[L]&&(R=T.rowHeight[L],T.rowHeight[L]=k,R=T.rowHeight[L]-R),T.height+=R,T.rows[L].push(E)},w.prototype.getShortestRowIndex=function(T){for(var E=-1,L=Number.MAX_VALUE,C=0;CL&&(E=C,L=T.rowWidth[C]);return E},w.prototype.canAddHorizontal=function(T,E,L){var C=this.getShortestRowIndex(T);if(C<0)return!0;var A=T.rowWidth[C];if(A+T.horizontalPadding+E<=T.width)return!0;var I=0;T.rowHeight[C]0&&(I=L+T.verticalPadding-T.rowHeight[C]);var D;T.width-A>=E+T.horizontalPadding?D=(T.height+I)/(A+E+T.horizontalPadding):D=(T.height+I)/T.width,I=L+T.verticalPadding;var k;return T.widthI&&E!=L){C.splice(-1,1),T.rows[L].push(A),T.rowWidth[E]=T.rowWidth[E]-I,T.rowWidth[L]=T.rowWidth[L]+I,T.width=T.rowWidth[instance.getLongestRowIndex(T)];for(var D=Number.MIN_VALUE,k=0;kD&&(D=C[k].height);E>0&&(D+=T.verticalPadding);var R=T.rowHeight[E]+T.rowHeight[L];T.rowHeight[E]=D,T.rowHeight[L]0)for(var F=A;F<=I;F++)P[0]+=this.grid[F][D-1].length+this.grid[F][D].length-1;if(I0)for(var F=D;F<=k;F++)P[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var B=y.MAX_VALUE,$,z,W=0;W{"use strict";o(function(e,r){typeof cb=="object"&&typeof _B=="object"?_B.exports=r(AB()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof cb=="object"?cb.cytoscapeCoseBilkent=r(AB()):e.cytoscapeCoseBilkent=r(e.coseBase)},"webpackUniversalModuleDefinition")(cb,function(t){return function(e){var r={};function n(i){if(r[i])return r[i].exports;var a=r[i]={i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return o(n,"__webpack_require__"),n.m=e,n.c=r,n.i=function(i){return i},n.d=function(i,a,s){n.o(i,a)||Object.defineProperty(i,a,{configurable:!1,enumerable:!0,get:s})},n.n=function(i){var a=i&&i.__esModule?o(function(){return i.default},"getDefault"):o(function(){return i},"getModuleExports");return n.d(a,"a",a),a},n.o=function(i,a){return Object.prototype.hasOwnProperty.call(i,a)},n.p="",n(n.s=1)}([function(e,r){e.exports=t},function(e,r,n){"use strict";var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,s=n(0).CoSEConstants,l=n(0).CoSELayout,u=n(0).CoSENode,h=n(0).layoutBase.PointD,f=n(0).layoutBase.DimensionD,d={ready:o(function(){},"ready"),stop:o(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function p(v,x){var b={};for(var w in v)b[w]=v[w];for(var w in x)b[w]=x[w];return b}o(p,"extend");function m(v){this.options=p(d,v),g(this.options)}o(m,"_CoSELayout");var g=o(function(x){x.nodeRepulsion!=null&&(s.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=x.nodeRepulsion),x.idealEdgeLength!=null&&(s.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=x.idealEdgeLength),x.edgeElasticity!=null&&(s.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=x.edgeElasticity),x.nestingFactor!=null&&(s.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=x.nestingFactor),x.gravity!=null&&(s.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=x.gravity),x.numIter!=null&&(s.MAX_ITERATIONS=a.MAX_ITERATIONS=x.numIter),x.gravityRange!=null&&(s.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=x.gravityRange),x.gravityCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=x.gravityCompound),x.gravityRangeCompound!=null&&(s.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=x.gravityRangeCompound),x.initialEnergyOnIncremental!=null&&(s.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=x.initialEnergyOnIncremental),x.quality=="draft"?i.QUALITY=0:x.quality=="proof"?i.QUALITY=2:i.QUALITY=1,s.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=x.nodeDimensionsIncludeLabels,s.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!x.randomize,s.ANIMATE=a.ANIMATE=i.ANIMATE=x.animate,s.TILE=x.tile,s.TILING_PADDING_VERTICAL=typeof x.tilingPaddingVertical=="function"?x.tilingPaddingVertical.call():x.tilingPaddingVertical,s.TILING_PADDING_HORIZONTAL=typeof x.tilingPaddingHorizontal=="function"?x.tilingPaddingHorizontal.call():x.tilingPaddingHorizontal},"getUserOptions");m.prototype.run=function(){var v,x,b=this.options,w=this.idToLNode={},_=this.layout=new l,T=this;T.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var E=_.newGraphManager();this.gm=E;var L=this.options.eles.nodes(),C=this.options.eles.edges();this.root=E.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(L),_);for(var A=0;A0){var k;k=b.getGraphManager().add(b.newGraph(),L),this.processChildrenList(k,E,b)}}},m.prototype.stop=function(){return this.stopped=!0,this};var y=o(function(x){x("layout","cose-bilkent",m)},"register");typeof cytoscape<"u"&&y(cytoscape),e.exports=y}])})});function _tt(t,e,r,n,i){return t.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+(i.width-e)/2+", "+r+")")}var Ttt,ktt,Ett,Stt,Ctt,Att,Ltt,Dtt,D1e,N1e,R1e=M(()=>{"use strict";Dl();hr();Ttt=12,ktt=o(function(t,e,r,n){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${-r.height+2*5} q0,-5 5,-5 h${r.width-2*5} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),Ett=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),Stt=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n,s=.25*n,l=.35*n,u=.2*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${n*.25},${-1*n*.1} + a${l},${l} 1 0,1 ${n*.4},${-1*n*.1} + a${s},${s} 1 0,1 ${n*.35},${1*n*.2} + + a${a},${a} 1 0,1 ${n*.15},${1*i*.35} + a${u},${u} 1 0,1 ${-1*n*.15},${1*i*.65} + + a${s},${a} 1 0,1 ${-1*n*.25},${n*.15} + a${l},${l} 1 0,1 ${-1*n*.5},0 + a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15} + + a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35} + a${u},${u} 1 0,1 ${n*.1},${-1*i*.65} + + H0 V0 Z`)},"cloudBkg"),Ctt=o(function(t,e,r){let n=r.width,i=r.height,a=.15*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${n*.25},${-1*i*.1} + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},0 + a${a},${a} 1 0,0 ${n*.25},${1*i*.1} + + a${a},${a} 1 0,0 ${n*.15},${1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${1*i*.34} + a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33} + + a${a},${a} 1 0,0 ${-1*n*.25},${i*.15} + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},0 + a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15} + + a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33} + a${a*.8},${a*.8} 1 0,0 0,${-1*i*.34} + a${a},${a} 1 0,0 ${n*.1},${-1*i*.33} + + H0 V0 Z`)},"bangBkg"),Att=o(function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)},"circleBkg");o(_tt,"insertPolygonShape");Ltt=o(function(t,e,r){let n=r.height,a=n/4,s=r.width-r.padding+2*a,l=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-n/2},{x:s-a,y:-n},{x:a,y:-n},{x:0,y:-n/2}];_tt(e,s,n,l,r)},"hexagonBkg"),Dtt=o(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),D1e=o(async function(t,e,r,n,i){let a=i.htmlLabels,s=n%(Ttt-1),l=e.append("g");r.section=s;let u="section-"+s;s<0&&(u+=" section-root"),l.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+u);let h=l.append("g"),f=l.append("g"),d=r.descr.replace(/()/g,` +`);await Si(f,d,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||f.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle");let p=f.node().getBBox(),[m]=Fo(i.fontSize);if(r.height=p.height+m*1.1*.5+r.padding,r.width=p.width+2*r.padding,r.icon)if(r.type===t.nodeType.CIRCLE)r.height+=50,r.width+=50,l.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")");else{r.width+=50;let g=r.height;r.height=Math.max(g,60);let y=Math.abs(r.height-g);l.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+y/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),f.attr("transform","translate("+(25+r.width/2)+", "+(y/2+r.padding/2)+")")}else if(a){let g=(r.width-p.width)/2,y=(r.height-p.height)/2;f.attr("transform","translate("+g+", "+y+")")}else{let g=r.width/2,y=r.padding/2;f.attr("transform","translate("+g+", "+y+")")}switch(r.type){case t.nodeType.DEFAULT:ktt(t,h,r,s);break;case t.nodeType.ROUNDED_RECT:Dtt(t,h,r,s);break;case t.nodeType.RECT:Ett(t,h,r,s);break;case t.nodeType.CIRCLE:h.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),Att(t,h,r,s);break;case t.nodeType.CLOUD:Stt(t,h,r,s);break;case t.nodeType.BANG:Ctt(t,h,r,s);break;case t.nodeType.HEXAGON:Ltt(t,h,r,s);break}return t.setElementForId(r.id,l),r.height},"drawNode"),N1e=o(function(t,e){let r=t.getElementById(e.id),n=e.x||0,i=e.y||0;r.attr("transform","translate("+n+","+i+")")},"positionNode")});async function I1e(t,e,r,n,i){await D1e(t,e,r,n,i),r.children&&await Promise.all(r.children.map((a,s)=>I1e(t,e,a,n<0?s:n,i)))}function Ntt(t,e){e.edges().map((r,n)=>{let i=r.data();if(r[0]._private.bodyBounds){let a=r[0]._private.rscratch;Y.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}})}function O1e(t,e,r,n){e.add({group:"nodes",data:{id:t.id.toString(),labelText:t.descr,height:t.height,width:t.width,level:n,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach(i=>{O1e(i,e,r,n+1),e.add({group:"edges",data:{id:`${t.id}_${i.id}`,source:t.id,target:i.id,depth:n,section:i.section}})})}function Rtt(t,e){return new Promise(r=>{let n=ze("body").append("div").attr("id","cy").attr("style","display:none"),i=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});n.remove(),O1e(t,i,e,0),i.nodes().forEach(function(a){a.layoutDimensions=()=>{let s=a.data();return{w:s.width,h:s.height}}}),i.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),i.ready(a=>{Y.info("Ready",a),r(i)})})}function Mtt(t,e){e.nodes().map((r,n)=>{let i=r.data();i.x=r.position().x,i.y=r.position().y,N1e(t,i);let a=t.getElementById(i.nodeId);Y.info("Id:",n,"Position: (",r.position().x,", ",r.position().y,")",i),a.attr("transform",`translate(${r.position().x-i.width/2}, ${r.position().y-i.height/2})`),a.attr("attr",`apa-${n})`)})}var M1e,Itt,P1e,B1e=M(()=>{"use strict";kB();M1e=ka(L1e(),1);mr();Vt();ht();Hu();ni();R1e();hs();sl.use(M1e.default);o(I1e,"drawNodes");o(Ntt,"drawEdges");o(O1e,"addNodes");o(Rtt,"layoutMindmap");o(Mtt,"positionNodes");Itt=o(async(t,e,r,n)=>{Y.debug(`Rendering mindmap diagram +`+t);let i=n.db,a=i.getMindmap();if(!a)return;let s=de();s.htmlLabels=!1;let l=Oa(e),u=l.append("g");u.attr("class","mindmap-edges");let h=l.append("g");h.attr("class","mindmap-nodes"),await I1e(i,h,a,-1,s);let f=await Rtt(a,s);Ntt(u,f),Mtt(i,f),_o(void 0,l,s.mindmap?.padding??ur.mindmap.padding,s.mindmap?.useMaxWidth??ur.mindmap.useMaxWidth)},"draw"),P1e={draw:Itt}});var Ott,Ptt,F1e,z1e=M(()=>{"use strict";To();Ott=o(t=>{let e="";for(let r=0;r` + .edge { + stroke-width: 3; + } + ${Ott(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .mindmap-node-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),F1e=Ptt});var G1e={};vr(G1e,{diagram:()=>Btt});var Btt,$1e=M(()=>{"use strict";Cpe();Lpe();B1e();z1e();Btt={db:_pe,renderer:P1e,parser:Spe,styles:F1e}});var LB,H1e,W1e=M(()=>{"use strict";LB=function(){var t=o(function(L,C,A,I){for(A=A||{},I=L.length;I--;A[L[I]]=C);return A},"o"),e=[1,4],r=[1,13],n=[1,12],i=[1,15],a=[1,16],s=[1,20],l=[1,19],u=[6,7,8],h=[1,26],f=[1,24],d=[1,25],p=[6,7,11],m=[1,31],g=[6,7,11,24],y=[1,6,13,16,17,20,23],v=[1,35],x=[1,36],b=[1,6,7,11,13,16,17,20,23],w=[1,38],_={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(C,A,I,D,k,R,S){var O=R.length-1;switch(k){case 6:case 7:return D;case 8:D.getLogger().trace("Stop NL ");break;case 9:D.getLogger().trace("Stop EOF ");break;case 11:D.getLogger().trace("Stop NL2 ");break;case 12:D.getLogger().trace("Stop EOF2 ");break;case 15:D.getLogger().info("Node: ",R[O-1].id),D.addNode(R[O-2].length,R[O-1].id,R[O-1].descr,R[O-1].type,R[O]);break;case 16:D.getLogger().info("Node: ",R[O].id),D.addNode(R[O-1].length,R[O].id,R[O].descr,R[O].type);break;case 17:D.getLogger().trace("Icon: ",R[O]),D.decorateNode({icon:R[O]});break;case 18:case 23:D.decorateNode({class:R[O]});break;case 19:D.getLogger().trace("SPACELIST");break;case 20:D.getLogger().trace("Node: ",R[O-1].id),D.addNode(0,R[O-1].id,R[O-1].descr,R[O-1].type,R[O]);break;case 21:D.getLogger().trace("Node: ",R[O].id),D.addNode(0,R[O].id,R[O].descr,R[O].type);break;case 22:D.decorateNode({icon:R[O]});break;case 27:D.getLogger().trace("node found ..",R[O-2]),this.$={id:R[O-1],descr:R[O-1],type:D.getType(R[O-2],R[O])};break;case 28:this.$={id:R[O],descr:R[O],type:0};break;case 29:D.getLogger().trace("node found ..",R[O-3]),this.$={id:R[O-3],descr:R[O-1],type:D.getType(R[O-2],R[O])};break;case 30:this.$=R[O-1]+R[O];break;case 31:this.$=R[O];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:r,7:[1,10],9:9,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(u,[2,3]),{1:[2,2]},t(u,[2,4]),t(u,[2,5]),{1:[2,6],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:r,9:22,12:11,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},{6:h,7:f,10:23,11:d},t(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:s,23:l}),t(p,[2,19]),t(p,[2,21],{15:30,24:m}),t(p,[2,22]),t(p,[2,23]),t(g,[2,25]),t(g,[2,26]),t(g,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:f,10:34,11:d},{1:[2,7],6:r,12:21,13:n,14:14,16:i,17:a,18:17,19:18,20:s,23:l},t(y,[2,14],{7:v,11:x}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(p,[2,16],{15:37,24:m}),t(p,[2,17]),t(p,[2,18]),t(p,[2,20],{24:w}),t(g,[2,31]),{21:[1,39]},{22:[1,40]},t(y,[2,13],{7:v,11:x}),t(b,[2,11]),t(b,[2,12]),t(p,[2,15],{24:w}),t(g,[2,30]),{22:[1,41]},t(g,[2,27]),t(g,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(C,A){if(A.recoverable)this.trace(C);else{var I=new Error(C);throw I.hash=A,I}},"parseError"),parse:o(function(C){var A=this,I=[0],D=[],k=[null],R=[],S=this.table,O="",N=0,P=0,F=0,B=2,$=1,z=R.slice.call(arguments,1),W=Object.create(this.lexer),j={yy:{}};for(var K in this.yy)Object.prototype.hasOwnProperty.call(this.yy,K)&&(j.yy[K]=this.yy[K]);W.setInput(C,j.yy),j.yy.lexer=W,j.yy.parser=this,typeof W.yylloc>"u"&&(W.yylloc={});var ie=W.yylloc;R.push(ie);var Q=W.options&&W.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ee(Ve){I.length=I.length-2*Ve,k.length=k.length-Ve,R.length=R.length-Ve}o(ee,"popStack");function J(){var Ve;return Ve=D.pop()||W.lex()||$,typeof Ve!="number"&&(Ve instanceof Array&&(D=Ve,Ve=D.pop()),Ve=A.symbols_[Ve]||Ve),Ve}o(J,"lex");for(var H,q,Z,ae,ue,ce,te={},De,oe,ke,Fe;;){if(Z=I[I.length-1],this.defaultActions[Z]?ae=this.defaultActions[Z]:((H===null||typeof H>"u")&&(H=J()),ae=S[Z]&&S[Z][H]),typeof ae>"u"||!ae.length||!ae[0]){var Be="";Fe=[];for(De in S[Z])this.terminals_[De]&&De>B&&Fe.push("'"+this.terminals_[De]+"'");W.showPosition?Be="Parse error on line "+(N+1)+`: +`+W.showPosition()+` +Expecting `+Fe.join(", ")+", got '"+(this.terminals_[H]||H)+"'":Be="Parse error on line "+(N+1)+": Unexpected "+(H==$?"end of input":"'"+(this.terminals_[H]||H)+"'"),this.parseError(Be,{text:W.match,token:this.terminals_[H]||H,line:W.yylineno,loc:ie,expected:Fe})}if(ae[0]instanceof Array&&ae.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Z+", token: "+H);switch(ae[0]){case 1:I.push(H),k.push(W.yytext),R.push(W.yylloc),I.push(ae[1]),H=null,q?(H=q,q=null):(P=W.yyleng,O=W.yytext,N=W.yylineno,ie=W.yylloc,F>0&&F--);break;case 2:if(oe=this.productions_[ae[1]][1],te.$=k[k.length-oe],te._$={first_line:R[R.length-(oe||1)].first_line,last_line:R[R.length-1].last_line,first_column:R[R.length-(oe||1)].first_column,last_column:R[R.length-1].last_column},Q&&(te._$.range=[R[R.length-(oe||1)].range[0],R[R.length-1].range[1]]),ce=this.performAction.apply(te,[O,P,N,j.yy,ae[1],k,R].concat(z)),typeof ce<"u")return ce;oe&&(I=I.slice(0,-1*oe*2),k=k.slice(0,-1*oe),R=R.slice(0,-1*oe)),I.push(this.productions_[ae[1]][0]),k.push(te.$),R.push(te._$),ke=S[I[I.length-2]][I[I.length-1]],I.push(ke);break;case 3:return!0}}return!0},"parse")},T=function(){var L={EOF:1,parseError:o(function(A,I){if(this.yy.parser)this.yy.parser.parseError(A,I);else throw new Error(A)},"parseError"),setInput:o(function(C,A){return this.yy=A||this.yy||{},this._input=C,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var C=this._input[0];this.yytext+=C,this.yyleng++,this.offset++,this.match+=C,this.matched+=C;var A=C.match(/(?:\r\n?|\n).*/g);return A?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),C},"input"),unput:o(function(C){var A=C.length,I=C.split(/(?:\r\n?|\n)/g);this._input=C+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-A),this.offset-=A;var D=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),I.length-1&&(this.yylineno-=I.length-1);var k=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:I?(I.length===D.length?this.yylloc.first_column:0)+D[D.length-I.length].length-I[0].length:this.yylloc.first_column-A},this.options.ranges&&(this.yylloc.range=[k[0],k[0]+this.yyleng-A]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(C){this.unput(this.match.slice(C))},"less"),pastInput:o(function(){var C=this.matched.substr(0,this.matched.length-this.match.length);return(C.length>20?"...":"")+C.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var C=this.match;return C.length<20&&(C+=this._input.substr(0,20-C.length)),(C.substr(0,20)+(C.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var C=this.pastInput(),A=new Array(C.length+1).join("-");return C+this.upcomingInput()+` +`+A+"^"},"showPosition"),test_match:o(function(C,A){var I,D,k;if(this.options.backtrack_lexer&&(k={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(k.yylloc.range=this.yylloc.range.slice(0))),D=C[0].match(/(?:\r\n?|\n).*/g),D&&(this.yylineno+=D.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:D?D[D.length-1].length-D[D.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+C[0].length},this.yytext+=C[0],this.match+=C[0],this.matches=C,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(C[0].length),this.matched+=C[0],I=this.performAction.call(this,this.yy,this,A,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),I)return I;if(this._backtrack){for(var R in k)this[R]=k[R];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var C,A,I,D;this._more||(this.yytext="",this.match="");for(var k=this._currentRules(),R=0;RA[0].length)){if(A=I,D=R,this.options.backtrack_lexer){if(C=this.test_match(I,k[R]),C!==!1)return C;if(this._backtrack){A=!1;continue}else return!1}else if(!this.options.flex)break}return A?(C=this.test_match(A,k[D]),C!==!1?C:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var A=this.next();return A||this.lex()},"lex"),begin:o(function(A){this.conditionStack.push(A)},"begin"),popState:o(function(){var A=this.conditionStack.length-1;return A>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(A){return A=this.conditionStack.length-1-Math.abs(A||0),A>=0?this.conditionStack[A]:"INITIAL"},"topState"),pushState:o(function(A){this.begin(A)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(A,I,D,k){var R=k;switch(D){case 0:return this.pushState("shapeData"),I.yytext="",24;break;case 1:return this.pushState("shapeDataStr"),24;break;case 2:return this.popState(),24;break;case 3:let S=/\n\s*/g;return I.yytext=I.yytext.replace(S,"
    "),24;break;case 4:return 24;case 5:this.popState();break;case 6:return A.getLogger().trace("Found comment",I.yytext),6;break;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;break;case 10:this.popState();break;case 11:A.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return A.getLogger().trace("SPACELINE"),6;break;case 13:return 7;case 14:return 16;case 15:A.getLogger().trace("end icon"),this.popState();break;case 16:return A.getLogger().trace("Exploding node"),this.begin("NODE"),20;break;case 17:return A.getLogger().trace("Cloud"),this.begin("NODE"),20;break;case 18:return A.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;break;case 19:return A.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;break;case 20:return this.begin("NODE"),20;break;case 21:return this.begin("NODE"),20;break;case 22:return this.begin("NODE"),20;break;case 23:return this.begin("NODE"),20;break;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:A.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return A.getLogger().trace("description:",I.yytext),"NODE_DESCR";break;case 32:this.popState();break;case 33:return this.popState(),A.getLogger().trace("node end ))"),"NODE_DEND";break;case 34:return this.popState(),A.getLogger().trace("node end )"),"NODE_DEND";break;case 35:return this.popState(),A.getLogger().trace("node end ...",I.yytext),"NODE_DEND";break;case 36:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 37:return this.popState(),A.getLogger().trace("node end (-"),"NODE_DEND";break;case 38:return this.popState(),A.getLogger().trace("node end (-"),"NODE_DEND";break;case 39:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 40:return this.popState(),A.getLogger().trace("node end (("),"NODE_DEND";break;case 41:return A.getLogger().trace("Long description:",I.yytext),21;break;case 42:return A.getLogger().trace("Long description:",I.yytext),21;break}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};return L}();_.lexer=T;function E(){this.yy={}}return o(E,"Parser"),E.prototype=_,_.Parser=E,new E}();LB.parser=LB;H1e=LB});var ol,NB,DB,RB,$tt,Vtt,Y1e,Utt,Htt,Xi,Wtt,Ytt,qtt,Xtt,jtt,Ktt,Qtt,q1e,X1e=M(()=>{"use strict";Vt();fr();ht();hs();V5();ol=[],NB=[],DB=0,RB={},$tt=o(()=>{ol=[],NB=[],DB=0,RB={}},"clear"),Vtt=o(t=>{if(ol.length===0)return null;let e=ol[0].level,r=null;for(let n=ol.length-1;n>=0;n--)if(ol[n].level===e&&!r&&(r=ol[n]),ol[n].levell.parentId===i.id);for(let l of s){let u={id:l.id,parentId:i.id,label:Tr(l.label??"",n),isGroup:!1,ticket:l?.ticket,priority:l?.priority,assigned:l?.assigned,icon:l?.icon,shape:"kanbanItem",level:l.level,rx:5,ry:5,cssStyles:["text-align: left"]};e.push(u)}}return{nodes:e,edges:t,other:{},config:de()}},"getData"),Htt=o((t,e,r,n,i)=>{let a=de(),s=a.mindmap?.padding??ur.mindmap.padding;switch(n){case Xi.ROUNDED_RECT:case Xi.RECT:case Xi.HEXAGON:s*=2}let l={id:Tr(e,a)||"kbn"+DB++,level:t,label:Tr(r,a),width:a.mindmap?.maxNodeWidth??ur.mindmap.maxNodeWidth,padding:s,isGroup:!1};if(i!==void 0){let h;i.includes(` +`)?h=i+` +`:h=`{ +`+i+` +}`;let f=fm(h,{schema:hm});if(f.shape&&(f.shape!==f.shape.toLowerCase()||f.shape.includes("_")))throw new Error(`No such shape: ${f.shape}. Shape names should be lowercase.`);f?.shape&&f.shape==="kanbanItem"&&(l.shape=f?.shape),f?.label&&(l.label=f?.label),f?.icon&&(l.icon=f?.icon.toString()),f?.assigned&&(l.assigned=f?.assigned.toString()),f?.ticket&&(l.ticket=f?.ticket.toString()),f?.priority&&(l.priority=f?.priority)}let u=Vtt(t);u?l.parentId=u.id||"kbn"+DB++:NB.push(l),ol.push(l)},"addNode"),Xi={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Wtt=o((t,e)=>{switch(Y.debug("In get type",t,e),t){case"[":return Xi.RECT;case"(":return e===")"?Xi.ROUNDED_RECT:Xi.CLOUD;case"((":return Xi.CIRCLE;case")":return Xi.CLOUD;case"))":return Xi.BANG;case"{{":return Xi.HEXAGON;default:return Xi.DEFAULT}},"getType"),Ytt=o((t,e)=>{RB[t]=e},"setElementForId"),qtt=o(t=>{if(!t)return;let e=de(),r=ol[ol.length-1];t.icon&&(r.icon=Tr(t.icon,e)),t.class&&(r.cssClasses=Tr(t.class,e))},"decorateNode"),Xtt=o(t=>{switch(t){case Xi.DEFAULT:return"no-border";case Xi.RECT:return"rect";case Xi.ROUNDED_RECT:return"rounded-rect";case Xi.CIRCLE:return"circle";case Xi.CLOUD:return"cloud";case Xi.BANG:return"bang";case Xi.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),jtt=o(()=>Y,"getLogger"),Ktt=o(t=>RB[t],"getElementById"),Qtt={clear:$tt,addNode:Htt,getSections:Y1e,getData:Utt,nodeType:Xi,getType:Wtt,setElementForId:Ytt,decorateNode:qtt,type2Str:Xtt,getLogger:jtt,getElementById:Ktt},q1e=Qtt});var Ztt,j1e,K1e=M(()=>{"use strict";Vt();ht();Hu();ni();hs();K5();sw();Ztt=o(async(t,e,r,n)=>{Y.debug(`Rendering kanban diagram +`+t);let a=n.db.getData(),s=de();s.htmlLabels=!1;let l=Oa(e),u=l.append("g");u.attr("class","sections");let h=l.append("g");h.attr("class","items");let f=a.nodes.filter(v=>v.isGroup),d=0,p=10,m=[],g=25;for(let v of f){let x=s?.kanban?.sectionWidth||200;d=d+1,v.x=x*d+(d-1)*p/2,v.width=x,v.y=0,v.height=x*3,v.rx=5,v.ry=5,v.cssClasses=v.cssClasses+" section-"+d;let b=await mm(u,v);g=Math.max(g,b?.labelBBox?.height),m.push(b)}let y=0;for(let v of f){let x=m[y];y=y+1;let b=s?.kanban?.sectionWidth||200,w=-b*3/2+g,_=w,T=a.nodes.filter(C=>C.parentId===v.id);for(let C of T){if(C.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");C.x=v.x,C.width=b-1.5*p;let I=(await gm(h,C,{config:s})).node().getBBox();C.y=_+I.height/2,await _v(C),_=C.y+I.height/2+p/2}let E=x.cluster.select("rect"),L=Math.max(_-w+3*p,50)+(g-25);E.attr("height",L)}_o(void 0,l,s.mindmap?.padding??ur.kanban.padding,s.mindmap?.useMaxWidth??ur.kanban.useMaxWidth)},"draw"),j1e={draw:Ztt}});var Jtt,ert,Q1e,Z1e=M(()=>{"use strict";To();Jtt=o(t=>{let e="";for(let n=0;nt.darkMode?Bt(n,i):Dt(n,i),"adjuster");for(let n=0;n` + .edge { + stroke-width: 3; + } + ${Jtt(t)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${t.git0}; + } + .section-root text { + fill: ${t.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .cluster-label, .label { + color: ${t.textColor}; + fill: ${t.textColor}; + } + .kanban-label { + dy: 1em; + alignment-baseline: middle; + text-anchor: middle; + dominant-baseline: middle; + text-align: center; + } +`,"getStyles"),Q1e=ert});var J1e={};vr(J1e,{diagram:()=>trt});var trt,eye=M(()=>{"use strict";W1e();X1e();K1e();Z1e();trt={db:q1e,renderer:j1e,parser:H1e,styles:Q1e}});var MB,ub,nye=M(()=>{"use strict";MB=function(){var t=o(function(l,u,h,f){for(h=h||{},f=l.length;f--;h[l[f]]=u);return h},"o"),e=[1,9],r=[1,10],n=[1,5,10,12],i={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:o(function(u,h,f,d,p,m,g){var y=m.length-1;switch(p){case 7:let v=d.findOrCreateNode(m[y-4].trim().replaceAll('""','"')),x=d.findOrCreateNode(m[y-2].trim().replaceAll('""','"')),b=parseFloat(m[y].trim());d.addLink(v,x,b);break;case 8:case 9:case 11:this.$=m[y];break;case 10:this.$=m[y-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:e,20:r},{1:[2,6],7:11,10:[1,12]},t(r,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(n,[2,8]),t(n,[2,9]),{19:[1,16]},t(n,[2,11]),{1:[2,1]},{1:[2,5]},t(r,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:e,20:r},{15:18,16:7,17:8,18:e,20:r},{18:[1,19]},t(r,[2,3]),{12:[1,20]},t(n,[2,10]),{15:21,16:7,17:8,18:e,20:r},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:o(function(u,h){if(h.recoverable)this.trace(u);else{var f=new Error(u);throw f.hash=h,f}},"parseError"),parse:o(function(u){var h=this,f=[0],d=[],p=[null],m=[],g=this.table,y="",v=0,x=0,b=0,w=2,_=1,T=m.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var C in this.yy)Object.prototype.hasOwnProperty.call(this.yy,C)&&(L.yy[C]=this.yy[C]);E.setInput(u,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var A=E.yylloc;m.push(A);var I=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function D(ie){f.length=f.length-2*ie,p.length=p.length-ie,m.length=m.length-ie}o(D,"popStack");function k(){var ie;return ie=d.pop()||E.lex()||_,typeof ie!="number"&&(ie instanceof Array&&(d=ie,ie=d.pop()),ie=h.symbols_[ie]||ie),ie}o(k,"lex");for(var R,S,O,N,P,F,B={},$,z,W,j;;){if(O=f[f.length-1],this.defaultActions[O]?N=this.defaultActions[O]:((R===null||typeof R>"u")&&(R=k()),N=g[O]&&g[O][R]),typeof N>"u"||!N.length||!N[0]){var K="";j=[];for($ in g[O])this.terminals_[$]&&$>w&&j.push("'"+this.terminals_[$]+"'");E.showPosition?K="Parse error on line "+(v+1)+`: +`+E.showPosition()+` +Expecting `+j.join(", ")+", got '"+(this.terminals_[R]||R)+"'":K="Parse error on line "+(v+1)+": Unexpected "+(R==_?"end of input":"'"+(this.terminals_[R]||R)+"'"),this.parseError(K,{text:E.match,token:this.terminals_[R]||R,line:E.yylineno,loc:A,expected:j})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+R);switch(N[0]){case 1:f.push(R),p.push(E.yytext),m.push(E.yylloc),f.push(N[1]),R=null,S?(R=S,S=null):(x=E.yyleng,y=E.yytext,v=E.yylineno,A=E.yylloc,b>0&&b--);break;case 2:if(z=this.productions_[N[1]][1],B.$=p[p.length-z],B._$={first_line:m[m.length-(z||1)].first_line,last_line:m[m.length-1].last_line,first_column:m[m.length-(z||1)].first_column,last_column:m[m.length-1].last_column},I&&(B._$.range=[m[m.length-(z||1)].range[0],m[m.length-1].range[1]]),F=this.performAction.apply(B,[y,x,v,L.yy,N[1],p,m].concat(T)),typeof F<"u")return F;z&&(f=f.slice(0,-1*z*2),p=p.slice(0,-1*z),m=m.slice(0,-1*z)),f.push(this.productions_[N[1]][0]),p.push(B.$),m.push(B._$),W=g[f[f.length-2]][f[f.length-1]],f.push(W);break;case 3:return!0}}return!0},"parse")},a=function(){var l={EOF:1,parseError:o(function(h,f){if(this.yy.parser)this.yy.parser.parseError(h,f);else throw new Error(h)},"parseError"),setInput:o(function(u,h){return this.yy=h||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var h=u.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},"input"),unput:o(function(u){var h=u.length,f=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===d.length?this.yylloc.first_column:0)+d[d.length-f.length].length-f[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(u){this.unput(this.match.slice(u))},"less"),pastInput:o(function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var u=this.pastInput(),h=new Array(u.length+1).join("-");return u+this.upcomingInput()+` +`+h+"^"},"showPosition"),test_match:o(function(u,h){var f,d,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),d=u[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+u[0].length},this.yytext+=u[0],this.match+=u[0],this.matches=u,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(u[0].length),this.matched+=u[0],f=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var m in p)this[m]=p[m];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var u,h,f,d;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),m=0;mh[0].length)){if(h=f,d=m,this.options.backtrack_lexer){if(u=this.test_match(f,p[m]),u!==!1)return u;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(u=this.test_match(h,p[d]),u!==!1?u:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var h=this.next();return h||this.lex()},"lex"),begin:o(function(h){this.conditionStack.push(h)},"begin"),popState:o(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:o(function(h){this.begin(h)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(h,f,d,p){var m=p;switch(d){case 0:return this.pushState("csv"),4;break;case 1:return 10;case 2:return 5;case 3:return 12;case 4:return this.pushState("escaped_text"),18;break;case 5:return 20;case 6:return this.popState("escaped_text"),18;break;case 7:return 19}},"anonymous"),rules:[/^(?:sankey-beta\b)/i,/^(?:$)/i,/^(?:((\u000D\u000A)|(\u000A)))/i,/^(?:(\u002C))/i,/^(?:(\u0022))/i,/^(?:([\u0020-\u0021\u0023-\u002B\u002D-\u007E])*)/i,/^(?:(\u0022)(?!(\u0022)))/i,/^(?:(([\u0020-\u0021\u0023-\u002B\u002D-\u007E])|(\u002C)|(\u000D)|(\u000A)|(\u0022)(\u0022))*)/i],conditions:{csv:{rules:[1,2,3,4,5,6,7],inclusive:!1},escaped_text:{rules:[6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}};return l}();i.lexer=a;function s(){this.yy={}}return o(s,"Parser"),s.prototype=i,i.Parser=s,new s}();MB.parser=MB;ub=MB});var H6,W6,U6,art,IB,srt,OB,ort,lrt,crt,urt,iye,aye=M(()=>{"use strict";Vt();fr();ki();H6=[],W6=[],U6=new Map,art=o(()=>{H6=[],W6=[],U6=new Map,_r()},"clear"),IB=class{constructor(e,r,n=0){this.source=e;this.target=r;this.value=n}static{o(this,"SankeyLink")}},srt=o((t,e,r)=>{H6.push(new IB(t,e,r))},"addLink"),OB=class{constructor(e){this.ID=e}static{o(this,"SankeyNode")}},ort=o(t=>{t=je.sanitizeText(t,de());let e=U6.get(t);return e===void 0&&(e=new OB(t),U6.set(t,e),W6.push(e)),e},"findOrCreateNode"),lrt=o(()=>W6,"getNodes"),crt=o(()=>H6,"getLinks"),urt=o(()=>({nodes:W6.map(t=>({id:t.ID})),links:H6.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),iye={nodesMap:U6,getConfig:o(()=>de().sankey,"getConfig"),getNodes:lrt,getLinks:crt,getGraph:urt,addLink:srt,findOrCreateNode:ort,getAccTitle:Pr,setAccTitle:Rr,getAccDescription:Fr,setAccDescription:Br,getDiagramTitle:Jr,setDiagramTitle:ln,clear:art}});function hb(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}var sye=M(()=>{"use strict";o(hb,"max")});function T1(t,e){let r;if(e===void 0)for(let n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}var oye=M(()=>{"use strict";o(T1,"min")});function k1(t,e){let r=0;if(e===void 0)for(let n of t)(n=+n)&&(r+=n);else{let n=-1;for(let i of t)(i=+e(i,++n,t))&&(r+=i)}return r}var lye=M(()=>{"use strict";o(k1,"sum")});var PB=M(()=>{"use strict";sye();oye();lye()});function hrt(t){return t.target.depth}function BB(t){return t.depth}function FB(t,e){return e-1-t.height}function fb(t,e){return t.sourceLinks.length?t.depth:e-1}function zB(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?T1(t.sourceLinks,hrt)-1:0}var GB=M(()=>{"use strict";PB();o(hrt,"targetDepth");o(BB,"left");o(FB,"right");o(fb,"justify");o(zB,"center")});function E1(t){return function(){return t}}var cye=M(()=>{"use strict";o(E1,"constant")});function uye(t,e){return Y6(t.source,e.source)||t.index-e.index}function hye(t,e){return Y6(t.target,e.target)||t.index-e.index}function Y6(t,e){return t.y0-e.y0}function $B(t){return t.value}function frt(t){return t.index}function drt(t){return t.nodes}function prt(t){return t.links}function fye(t,e){let r=t.get(e);if(!r)throw new Error("missing: "+e);return r}function dye({nodes:t}){for(let e of t){let r=e.y0,n=r;for(let i of e.sourceLinks)i.y0=r+i.width/2,r+=i.width;for(let i of e.targetLinks)i.y1=n+i.width/2,n+=i.width}}function q6(){let t=0,e=0,r=1,n=1,i=24,a=8,s,l=frt,u=fb,h,f,d=drt,p=prt,m=6;function g(){let O={nodes:d.apply(null,arguments),links:p.apply(null,arguments)};return y(O),v(O),x(O),b(O),T(O),dye(O),O}o(g,"sankey"),g.update=function(O){return dye(O),O},g.nodeId=function(O){return arguments.length?(l=typeof O=="function"?O:E1(O),g):l},g.nodeAlign=function(O){return arguments.length?(u=typeof O=="function"?O:E1(O),g):u},g.nodeSort=function(O){return arguments.length?(h=O,g):h},g.nodeWidth=function(O){return arguments.length?(i=+O,g):i},g.nodePadding=function(O){return arguments.length?(a=s=+O,g):a},g.nodes=function(O){return arguments.length?(d=typeof O=="function"?O:E1(O),g):d},g.links=function(O){return arguments.length?(p=typeof O=="function"?O:E1(O),g):p},g.linkSort=function(O){return arguments.length?(f=O,g):f},g.size=function(O){return arguments.length?(t=e=0,r=+O[0],n=+O[1],g):[r-t,n-e]},g.extent=function(O){return arguments.length?(t=+O[0][0],r=+O[1][0],e=+O[0][1],n=+O[1][1],g):[[t,e],[r,n]]},g.iterations=function(O){return arguments.length?(m=+O,g):m};function y({nodes:O,links:N}){for(let[F,B]of O.entries())B.index=F,B.sourceLinks=[],B.targetLinks=[];let P=new Map(O.map((F,B)=>[l(F,B,O),F]));for(let[F,B]of N.entries()){B.index=F;let{source:$,target:z}=B;typeof $!="object"&&($=B.source=fye(P,$)),typeof z!="object"&&(z=B.target=fye(P,z)),$.sourceLinks.push(B),z.targetLinks.push(B)}if(f!=null)for(let{sourceLinks:F,targetLinks:B}of O)F.sort(f),B.sort(f)}o(y,"computeNodeLinks");function v({nodes:O}){for(let N of O)N.value=N.fixedValue===void 0?Math.max(k1(N.sourceLinks,$B),k1(N.targetLinks,$B)):N.fixedValue}o(v,"computeNodeValues");function x({nodes:O}){let N=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.depth=B;for(let{target:z}of $.sourceLinks)F.add(z)}if(++B>N)throw new Error("circular link");P=F,F=new Set}}o(x,"computeNodeDepths");function b({nodes:O}){let N=O.length,P=new Set(O),F=new Set,B=0;for(;P.size;){for(let $ of P){$.height=B;for(let{source:z}of $.targetLinks)F.add(z)}if(++B>N)throw new Error("circular link");P=F,F=new Set}}o(b,"computeNodeHeights");function w({nodes:O}){let N=hb(O,B=>B.depth)+1,P=(r-t-i)/(N-1),F=new Array(N);for(let B of O){let $=Math.max(0,Math.min(N-1,Math.floor(u.call(null,B,N))));B.layer=$,B.x0=t+$*P,B.x1=B.x0+i,F[$]?F[$].push(B):F[$]=[B]}if(h)for(let B of F)B.sort(h);return F}o(w,"computeNodeLayers");function _(O){let N=T1(O,P=>(n-e-(P.length-1)*s)/k1(P,$B));for(let P of O){let F=e;for(let B of P){B.y0=F,B.y1=F+B.value*N,F=B.y1+s;for(let $ of B.sourceLinks)$.width=$.value*N}F=(n-F+s)/(P.length+1);for(let B=0;BP.length)-1)),_(N);for(let P=0;P0))continue;let K=(W/j-z.y0)*N;z.y0+=K,z.y1+=K,D(z)}h===void 0&&$.sort(Y6),C($,P)}}o(E,"relaxLeftToRight");function L(O,N,P){for(let F=O.length,B=F-2;B>=0;--B){let $=O[B];for(let z of $){let W=0,j=0;for(let{target:ie,value:Q}of z.sourceLinks){let ee=Q*(ie.layer-z.layer);W+=S(z,ie)*ee,j+=ee}if(!(j>0))continue;let K=(W/j-z.y0)*N;z.y0+=K,z.y1+=K,D(z)}h===void 0&&$.sort(Y6),C($,P)}}o(L,"relaxRightToLeft");function C(O,N){let P=O.length>>1,F=O[P];I(O,F.y0-s,P-1,N),A(O,F.y1+s,P+1,N),I(O,n,O.length-1,N),A(O,e,0,N)}o(C,"resolveCollisions");function A(O,N,P,F){for(;P1e-6&&(B.y0+=$,B.y1+=$),N=B.y1+s}}o(A,"resolveCollisionsTopToBottom");function I(O,N,P,F){for(;P>=0;--P){let B=O[P],$=(B.y1-N)*F;$>1e-6&&(B.y0-=$,B.y1-=$),N=B.y0-s}}o(I,"resolveCollisionsBottomToTop");function D({sourceLinks:O,targetLinks:N}){if(f===void 0){for(let{source:{sourceLinks:P}}of N)P.sort(hye);for(let{target:{targetLinks:P}}of O)P.sort(uye)}}o(D,"reorderNodeLinks");function k(O){if(f===void 0)for(let{sourceLinks:N,targetLinks:P}of O)N.sort(hye),P.sort(uye)}o(k,"reorderLinks");function R(O,N){let P=O.y0-(O.sourceLinks.length-1)*s/2;for(let{target:F,width:B}of O.sourceLinks){if(F===N)break;P+=B+s}for(let{source:F,width:B}of N.targetLinks){if(F===O)break;P-=B}return P}o(R,"targetTop");function S(O,N){let P=N.y0-(N.targetLinks.length-1)*s/2;for(let{source:F,width:B}of N.targetLinks){if(F===O)break;P+=B+s}for(let{target:F,width:B}of O.sourceLinks){if(F===N)break;P-=B}return P}return o(S,"sourceTop"),g}var pye=M(()=>{"use strict";PB();GB();cye();o(uye,"ascendingSourceBreadth");o(hye,"ascendingTargetBreadth");o(Y6,"ascendingBreadth");o($B,"value");o(frt,"defaultId");o(drt,"defaultNodes");o(prt,"defaultLinks");o(fye,"find");o(dye,"computeLinkBreadths");o(q6,"Sankey")});function HB(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function mye(){return new HB}var VB,UB,q0,mrt,WB,gye=M(()=>{"use strict";VB=Math.PI,UB=2*VB,q0=1e-6,mrt=UB-q0;o(HB,"Path");o(mye,"path");HB.prototype=mye.prototype={constructor:HB,moveTo:o(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:o(function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:o(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:o(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:o(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:o(function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var a=this._x1,s=this._y1,l=r-t,u=n-e,h=a-t,f=s-e,d=h*h+f*f;if(i<0)throw new Error("negative radius: "+i);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>q0)if(!(Math.abs(f*l-u*h)>q0)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-a,m=n-s,g=l*l+u*u,y=p*p+m*m,v=Math.sqrt(g),x=Math.sqrt(d),b=i*Math.tan((VB-Math.acos((g+d-y)/(2*v*x)))/2),w=b/x,_=b/v;Math.abs(w-1)>q0&&(this._+="L"+(t+w*h)+","+(e+w*f)),this._+="A"+i+","+i+",0,0,"+ +(f*p>h*m)+","+(this._x1=t+_*l)+","+(this._y1=e+_*u)}},"arcTo"),arc:o(function(t,e,r,n,i,a){t=+t,e=+e,r=+r,a=!!a;var s=r*Math.cos(n),l=r*Math.sin(n),u=t+s,h=e+l,f=1^a,d=a?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+u+","+h:(Math.abs(this._x1-u)>q0||Math.abs(this._y1-h)>q0)&&(this._+="L"+u+","+h),r&&(d<0&&(d=d%UB+UB),d>mrt?this._+="A"+r+","+r+",0,1,"+f+","+(t-s)+","+(e-l)+"A"+r+","+r+",0,1,"+f+","+(this._x1=u)+","+(this._y1=h):d>q0&&(this._+="A"+r+","+r+",0,"+ +(d>=VB)+","+f+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},"arc"),rect:o(function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},"rect"),toString:o(function(){return this._},"toString")};WB=mye});var yye=M(()=>{"use strict";gye()});function X6(t){return o(function(){return t},"constant")}var vye=M(()=>{"use strict";o(X6,"default")});function xye(t){return t[0]}function bye(t){return t[1]}var wye=M(()=>{"use strict";o(xye,"x");o(bye,"y")});var Tye,kye=M(()=>{"use strict";Tye=Array.prototype.slice});function grt(t){return t.source}function yrt(t){return t.target}function vrt(t){var e=grt,r=yrt,n=xye,i=bye,a=null;function s(){var l,u=Tye.call(arguments),h=e.apply(this,u),f=r.apply(this,u);if(a||(a=l=WB()),t(a,+n.apply(this,(u[0]=h,u)),+i.apply(this,u),+n.apply(this,(u[0]=f,u)),+i.apply(this,u)),l)return a=null,l+""||null}return o(s,"link"),s.source=function(l){return arguments.length?(e=l,s):e},s.target=function(l){return arguments.length?(r=l,s):r},s.x=function(l){return arguments.length?(n=typeof l=="function"?l:X6(+l),s):n},s.y=function(l){return arguments.length?(i=typeof l=="function"?l:X6(+l),s):i},s.context=function(l){return arguments.length?(a=l??null,s):a},s}function xrt(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function YB(){return vrt(xrt)}var Eye=M(()=>{"use strict";yye();kye();vye();wye();o(grt,"linkSource");o(yrt,"linkTarget");o(vrt,"link");o(xrt,"curveHorizontal");o(YB,"linkHorizontal")});var Sye=M(()=>{"use strict";Eye()});function brt(t){return[t.source.x1,t.y0]}function wrt(t){return[t.target.x0,t.y1]}function j6(){return YB().source(brt).target(wrt)}var Cye=M(()=>{"use strict";Sye();o(brt,"horizontalSource");o(wrt,"horizontalTarget");o(j6,"default")});var Aye=M(()=>{"use strict";pye();GB();Cye()});var db,_ye=M(()=>{"use strict";db=class t{static{o(this,"Uid")}static{this.count=0}static next(e){return new t(e+ ++t.count)}constructor(e){this.id=e,this.href=`#${e}`}toString(){return"url("+this.href+")"}}});var Trt,krt,Lye,Dye=M(()=>{"use strict";Vt();mr();Aye();ni();_ye();Trt={left:BB,right:FB,center:zB,justify:fb},krt=o(function(t,e,r,n){let{securityLevel:i,sankey:a}=de(),s=S4.sankey,l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):ze(`[id="${e}"]`),f=a?.width??s.width,d=a?.height??s.width,p=a?.useMaxWidth??s.useMaxWidth,m=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,y=a?.suffix??s.suffix,v=a?.showValues??s.showValues,x=n.db.getGraph(),b=Trt[m];q6().nodeId(I=>I.id).nodeWidth(10).nodePadding(10+(v?15:0)).nodeAlign(b).extent([[0,0],[f,d]])(x);let T=du(Z8);h.append("g").attr("class","nodes").selectAll(".node").data(x.nodes).join("g").attr("class","node").attr("id",I=>(I.uid=db.next("node-")).id).attr("transform",function(I){return"translate("+I.x0+","+I.y0+")"}).attr("x",I=>I.x0).attr("y",I=>I.y0).append("rect").attr("height",I=>I.y1-I.y0).attr("width",I=>I.x1-I.x0).attr("fill",I=>T(I.id));let E=o(({id:I,value:D})=>v?`${I} +${g}${Math.round(D*100)/100}${y}`:I,"getText");h.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(x.nodes).join("text").attr("x",I=>I.x0(I.y1+I.y0)/2).attr("dy",`${v?"0":"0.35"}em`).attr("text-anchor",I=>I.x0(D.uid=db.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",D=>D.source.x1).attr("x2",D=>D.target.x0);I.append("stop").attr("offset","0%").attr("stop-color",D=>T(D.source.id)),I.append("stop").attr("offset","100%").attr("stop-color",D=>T(D.target.id))}let A;switch(C){case"gradient":A=o(I=>I.uid,"coloring");break;case"source":A=o(I=>T(I.source.id),"coloring");break;case"target":A=o(I=>T(I.target.id),"coloring");break;default:A=C}L.append("path").attr("d",j6()).attr("stroke",A).attr("stroke-width",I=>Math.max(1,I.width)),_o(void 0,h,0,p)},"draw"),Lye={draw:krt}});var Nye,Rye=M(()=>{"use strict";Nye=o(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing")});var Mye={};vr(Mye,{diagram:()=>Srt});var Ert,Srt,Iye=M(()=>{"use strict";nye();aye();Dye();Rye();Ert=ub.parse.bind(ub);ub.parse=t=>Ert(Nye(t));Srt={parser:ub,db:iye,renderer:Lye}});var Bye,qB,Lrt,Drt,Nrt,Rrt,Mrt,Rf,XB=M(()=>{"use strict";Ua();hs();hr();ki();Bye={packet:[]},qB=structuredClone(Bye),Lrt=ur.packet,Drt=o(()=>{let t=ws({...Lrt,...Sr().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),Nrt=o(()=>qB.packet,"getPacket"),Rrt=o(t=>{t.length>0&&qB.packet.push(t)},"pushWord"),Mrt=o(()=>{_r(),qB=structuredClone(Bye)},"clear"),Rf={pushWord:Rrt,getPacket:Nrt,getConfig:Drt,clear:Mrt,setAccTitle:Rr,getAccTitle:Pr,setDiagramTitle:ln,getDiagramTitle:Jr,getAccDescription:Fr,setAccDescription:Br}});var Irt,Ort,Prt,Fye,zye=M(()=>{"use strict";Ng();ht();ox();XB();Irt=1e4,Ort=o(t=>{lf(t,Rf);let e=-1,r=[],n=1,{bitsPerRow:i}=Rf.getConfig();for(let{start:a,end:s,label:l}of t.blocks){if(s&&s{if(t.end===void 0&&(t.end=t.start),t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);return t.end+1<=e*r?[t,void 0]:[{start:t.start,end:e*r-1,label:t.label},{start:e*r,end:t.end,label:t.label}]},"getNextFittingBlock"),Fye={parse:o(async t=>{let e=await Gl("packet",t);Y.debug(e),Ort(e)},"parse")}});var Brt,Frt,Gye,$ye=M(()=>{"use strict";Hu();ni();Brt=o((t,e,r,n)=>{let i=n.db,a=i.getConfig(),{rowHeight:s,paddingY:l,bitWidth:u,bitsPerRow:h}=a,f=i.getPacket(),d=i.getDiagramTitle(),p=s+l,m=p*(f.length+1)-(d?0:s),g=u*h+2,y=Oa(e);y.attr("viewbox",`0 0 ${g} ${m}`),Zr(y,m,g,a.useMaxWidth);for(let[v,x]of f.entries())Frt(y,x,v,a);y.append("text").text(d).attr("x",g/2).attr("y",m-p/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),Frt=o((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:l,showBits:u})=>{let h=t.append("g"),f=r*(n+a)+a;for(let d of e){let p=d.start%l*s+1,m=(d.end-d.start+1)*s-i;if(h.append("rect").attr("x",p).attr("y",f).attr("width",m).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",p+m/2).attr("y",f+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(d.label),!u)continue;let g=d.end===d.start,y=f-2;h.append("text").attr("x",p+(g?m/2:0)).attr("y",y).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",g?"middle":"start").text(d.start),g||h.append("text").attr("x",p+m).attr("y",y).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(d.end)}},"drawWord"),Gye={draw:Brt}});var zrt,Vye,Uye=M(()=>{"use strict";hr();zrt={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},Vye=o(({packet:t}={})=>{let e=ws(zrt,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles")});var Hye={};vr(Hye,{diagram:()=>Grt});var Grt,Wye=M(()=>{"use strict";XB();zye();$ye();Uye();Grt={parser:Fye,db:Rf,renderer:Gye,styles:Vye}});var jB,Xye,jye=M(()=>{"use strict";jB=function(){var t=o(function(w,_,T,E){for(T=T||{},E=w.length;E--;T[w[E]]=_);return T},"o"),e=[1,7],r=[1,13],n=[1,14],i=[1,15],a=[1,19],s=[1,16],l=[1,17],u=[1,18],h=[8,30],f=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],m=[8,15,16,21,28,29,30,31,32,40,44,47],g=[8,15,16,21,27,28,29,30,31,32,40,44,47],y=[1,49],v={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:o(function(_,T,E,L,C,A,I){var D=A.length-1;switch(C){case 4:L.getLogger().debug("Rule: separator (NL) ");break;case 5:L.getLogger().debug("Rule: separator (Space) ");break;case 6:L.getLogger().debug("Rule: separator (EOF) ");break;case 7:L.getLogger().debug("Rule: hierarchy: ",A[D-1]),L.setHierarchy(A[D-1]);break;case 8:L.getLogger().debug("Stop NL ");break;case 9:L.getLogger().debug("Stop EOF ");break;case 10:L.getLogger().debug("Stop NL2 ");break;case 11:L.getLogger().debug("Stop EOF2 ");break;case 12:L.getLogger().debug("Rule: statement: ",A[D]),typeof A[D].length=="number"?this.$=A[D]:this.$=[A[D]];break;case 13:L.getLogger().debug("Rule: statement #2: ",A[D-1]),this.$=[A[D-1]].concat(A[D]);break;case 14:L.getLogger().debug("Rule: link: ",A[D],_),this.$={edgeTypeStr:A[D],label:""};break;case 15:L.getLogger().debug("Rule: LABEL link: ",A[D-3],A[D-1],A[D]),this.$={edgeTypeStr:A[D],label:A[D-1]};break;case 18:let k=parseInt(A[D]),R=L.generateId();this.$={id:R,type:"space",label:"",width:k,children:[]};break;case 23:L.getLogger().debug("Rule: (nodeStatement link node) ",A[D-2],A[D-1],A[D]," typestr: ",A[D-1].edgeTypeStr);let S=L.edgeStrToEdgeData(A[D-1].edgeTypeStr);this.$=[{id:A[D-2].id,label:A[D-2].label,type:A[D-2].type,directions:A[D-2].directions},{id:A[D-2].id+"-"+A[D].id,start:A[D-2].id,end:A[D].id,label:A[D-1].label,type:"edge",directions:A[D].directions,arrowTypeEnd:S,arrowTypeStart:"arrow_open"},{id:A[D].id,label:A[D].label,type:L.typeStr2Type(A[D].typeStr),directions:A[D].directions}];break;case 24:L.getLogger().debug("Rule: nodeStatement (abc88 node size) ",A[D-1],A[D]),this.$={id:A[D-1].id,label:A[D-1].label,type:L.typeStr2Type(A[D-1].typeStr),directions:A[D-1].directions,widthInColumns:parseInt(A[D],10)};break;case 25:L.getLogger().debug("Rule: nodeStatement (node) ",A[D]),this.$={id:A[D].id,label:A[D].label,type:L.typeStr2Type(A[D].typeStr),directions:A[D].directions,widthInColumns:1};break;case 26:L.getLogger().debug("APA123",this?this:"na"),L.getLogger().debug("COLUMNS: ",A[D]),this.$={type:"column-setting",columns:A[D]==="auto"?-1:parseInt(A[D])};break;case 27:L.getLogger().debug("Rule: id-block statement : ",A[D-2],A[D-1]);let O=L.generateId();this.$={...A[D-2],type:"composite",children:A[D-1]};break;case 28:L.getLogger().debug("Rule: blockStatement : ",A[D-2],A[D-1],A[D]);let N=L.generateId();this.$={id:N,type:"composite",label:"",children:A[D-1]};break;case 29:L.getLogger().debug("Rule: node (NODE_ID separator): ",A[D]),this.$={id:A[D]};break;case 30:L.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",A[D-1],A[D]),this.$={id:A[D-1],label:A[D].label,typeStr:A[D].typeStr,directions:A[D].directions};break;case 31:L.getLogger().debug("Rule: dirList: ",A[D]),this.$=[A[D]];break;case 32:L.getLogger().debug("Rule: dirList: ",A[D-1],A[D]),this.$=[A[D-1]].concat(A[D]);break;case 33:L.getLogger().debug("Rule: nodeShapeNLabel: ",A[D-2],A[D-1],A[D]),this.$={typeStr:A[D-2]+A[D],label:A[D-1]};break;case 34:L.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",A[D-3],A[D-2]," #3:",A[D-1],A[D]),this.$={typeStr:A[D-3]+A[D],label:A[D-2],directions:A[D-1]};break;case 35:case 36:this.$={type:"classDef",id:A[D-1].trim(),css:A[D].trim()};break;case 37:this.$={type:"applyClass",id:A[D-1].trim(),styleClass:A[D].trim()};break;case 38:this.$={type:"applyStyles",id:A[D-1].trim(),stylesStr:A[D].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{8:[1,20]},t(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:e,28:r,29:n,31:i,32:a,40:s,44:l,47:u}),t(f,[2,16],{14:22,15:d,16:p}),t(f,[2,17]),t(f,[2,18]),t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),t(f,[2,22]),t(m,[2,25],{27:[1,25]}),t(f,[2,26]),{19:26,26:12,32:a},{11:27,13:4,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},t(g,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},t(h,[2,13]),{26:35,32:a},{32:[2,14]},{17:[1,36]},t(m,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:e,22:8,23:9,24:10,25:11,26:12,28:r,29:n,31:i,32:a,40:s,44:l,47:u},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},t(g,[2,30]),{18:[1,43]},{18:[1,44]},t(m,[2,23]),{18:[1,45]},{30:[1,46]},t(f,[2,28]),t(f,[2,35]),t(f,[2,36]),t(f,[2,37]),t(f,[2,38]),{37:[1,47]},{34:48,35:y},{15:[1,50]},t(f,[2,27]),t(g,[2,33]),{39:[1,51]},{34:52,35:y,39:[2,31]},{32:[2,15]},t(g,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:o(function(_,T){if(T.recoverable)this.trace(_);else{var E=new Error(_);throw E.hash=T,E}},"parseError"),parse:o(function(_){var T=this,E=[0],L=[],C=[null],A=[],I=this.table,D="",k=0,R=0,S=0,O=2,N=1,P=A.slice.call(arguments,1),F=Object.create(this.lexer),B={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(B.yy[$]=this.yy[$]);F.setInput(_,B.yy),B.yy.lexer=F,B.yy.parser=this,typeof F.yylloc>"u"&&(F.yylloc={});var z=F.yylloc;A.push(z);var W=F.options&&F.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function j(oe){E.length=E.length-2*oe,C.length=C.length-oe,A.length=A.length-oe}o(j,"popStack");function K(){var oe;return oe=L.pop()||F.lex()||N,typeof oe!="number"&&(oe instanceof Array&&(L=oe,oe=L.pop()),oe=T.symbols_[oe]||oe),oe}o(K,"lex");for(var ie,Q,ee,J,H,q,Z={},ae,ue,ce,te;;){if(ee=E[E.length-1],this.defaultActions[ee]?J=this.defaultActions[ee]:((ie===null||typeof ie>"u")&&(ie=K()),J=I[ee]&&I[ee][ie]),typeof J>"u"||!J.length||!J[0]){var De="";te=[];for(ae in I[ee])this.terminals_[ae]&&ae>O&&te.push("'"+this.terminals_[ae]+"'");F.showPosition?De="Parse error on line "+(k+1)+`: +`+F.showPosition()+` +Expecting `+te.join(", ")+", got '"+(this.terminals_[ie]||ie)+"'":De="Parse error on line "+(k+1)+": Unexpected "+(ie==N?"end of input":"'"+(this.terminals_[ie]||ie)+"'"),this.parseError(De,{text:F.match,token:this.terminals_[ie]||ie,line:F.yylineno,loc:z,expected:te})}if(J[0]instanceof Array&&J.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ee+", token: "+ie);switch(J[0]){case 1:E.push(ie),C.push(F.yytext),A.push(F.yylloc),E.push(J[1]),ie=null,Q?(ie=Q,Q=null):(R=F.yyleng,D=F.yytext,k=F.yylineno,z=F.yylloc,S>0&&S--);break;case 2:if(ue=this.productions_[J[1]][1],Z.$=C[C.length-ue],Z._$={first_line:A[A.length-(ue||1)].first_line,last_line:A[A.length-1].last_line,first_column:A[A.length-(ue||1)].first_column,last_column:A[A.length-1].last_column},W&&(Z._$.range=[A[A.length-(ue||1)].range[0],A[A.length-1].range[1]]),q=this.performAction.apply(Z,[D,R,k,B.yy,J[1],C,A].concat(P)),typeof q<"u")return q;ue&&(E=E.slice(0,-1*ue*2),C=C.slice(0,-1*ue),A=A.slice(0,-1*ue)),E.push(this.productions_[J[1]][0]),C.push(Z.$),A.push(Z._$),ce=I[E[E.length-2]][E[E.length-1]],E.push(ce);break;case 3:return!0}}return!0},"parse")},x=function(){var w={EOF:1,parseError:o(function(T,E){if(this.yy.parser)this.yy.parser.parseError(T,E);else throw new Error(T)},"parseError"),setInput:o(function(_,T){return this.yy=T||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var T=_.match(/(?:\r\n?|\n).*/g);return T?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},"input"),unput:o(function(_){var T=_.length,E=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-T),this.offset-=T;var L=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),E.length-1&&(this.yylineno-=E.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:E?(E.length===L.length?this.yylloc.first_column:0)+L[L.length-E.length].length-E[0].length:this.yylloc.first_column-T},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-T]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(_){this.unput(this.match.slice(_))},"less"),pastInput:o(function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var _=this.pastInput(),T=new Array(_.length+1).join("-");return _+this.upcomingInput()+` +`+T+"^"},"showPosition"),test_match:o(function(_,T){var E,L,C;if(this.options.backtrack_lexer&&(C={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(C.yylloc.range=this.yylloc.range.slice(0))),L=_[0].match(/(?:\r\n?|\n).*/g),L&&(this.yylineno+=L.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:L?L[L.length-1].length-L[L.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+_[0].length},this.yytext+=_[0],this.match+=_[0],this.matches=_,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(_[0].length),this.matched+=_[0],E=this.performAction.call(this,this.yy,this,T,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),E)return E;if(this._backtrack){for(var A in C)this[A]=C[A];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var _,T,E,L;this._more||(this.yytext="",this.match="");for(var C=this._currentRules(),A=0;AT[0].length)){if(T=E,L=A,this.options.backtrack_lexer){if(_=this.test_match(E,C[A]),_!==!1)return _;if(this._backtrack){T=!1;continue}else return!1}else if(!this.options.flex)break}return T?(_=this.test_match(T,C[L]),_!==!1?_:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:o(function(){var T=this.next();return T||this.lex()},"lex"),begin:o(function(T){this.conditionStack.push(T)},"begin"),popState:o(function(){var T=this.conditionStack.length-1;return T>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:o(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:o(function(T){return T=this.conditionStack.length-1-Math.abs(T||0),T>=0?this.conditionStack[T]:"INITIAL"},"topState"),pushState:o(function(T){this.begin(T)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:o(function(T,E,L,C){var A=C;switch(L){case 0:return 10;case 1:return T.getLogger().debug("Found space-block"),31;break;case 2:return T.getLogger().debug("Found nl-block"),31;break;case 3:return T.getLogger().debug("Found space-block"),29;break;case 4:T.getLogger().debug(".",E.yytext);break;case 5:T.getLogger().debug("_",E.yytext);break;case 6:return 5;case 7:return E.yytext=-1,28;break;case 8:return E.yytext=E.yytext.replace(/columns\s+/,""),T.getLogger().debug("COLUMNS (LEX)",E.yytext),28;break;case 9:this.pushState("md_string");break;case 10:return"MD_STR";case 11:this.popState();break;case 12:this.pushState("string");break;case 13:T.getLogger().debug("LEX: POPPING STR:",E.yytext),this.popState();break;case 14:return T.getLogger().debug("LEX: STR end:",E.yytext),"STR";break;case 15:return E.yytext=E.yytext.replace(/space\:/,""),T.getLogger().debug("SPACE NUM (LEX)",E.yytext),21;break;case 16:return E.yytext="1",T.getLogger().debug("COLUMNS (LEX)",E.yytext),21;break;case 17:return 43;case 18:return"LINKSTYLE";case 19:return"INTERPOLATE";case 20:return this.pushState("CLASSDEF"),40;break;case 21:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 22:return this.popState(),this.pushState("CLASSDEFID"),41;break;case 23:return this.popState(),42;break;case 24:return this.pushState("CLASS"),44;break;case 25:return this.popState(),this.pushState("CLASS_STYLE"),45;break;case 26:return this.popState(),46;break;case 27:return this.pushState("STYLE_STMNT"),47;break;case 28:return this.popState(),this.pushState("STYLE_DEFINITION"),48;break;case 29:return this.popState(),49;break;case 30:return this.pushState("acc_title"),"acc_title";break;case 31:return this.popState(),"acc_title_value";break;case 32:return this.pushState("acc_descr"),"acc_descr";break;case 33:return this.popState(),"acc_descr_value";break;case 34:this.pushState("acc_descr_multiline");break;case 35:this.popState();break;case 36:return"acc_descr_multiline_value";case 37:return 30;case 38:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 40:return this.popState(),T.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 41:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 43:return this.popState(),T.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 44:return this.popState(),T.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 45:return this.popState(),T.getLogger().debug("Lex: (("),"NODE_DEND";break;case 46:return this.popState(),T.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 47:return this.popState(),T.getLogger().debug("Lex: ("),"NODE_DEND";break;case 48:return this.popState(),T.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 49:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),T.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 51:return this.popState(),T.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 52:return this.popState(),T.getLogger().debug("Lex: )"),"NODE_DEND";break;case 53:return this.popState(),T.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 54:return this.popState(),T.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 55:return T.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;break;case 56:return T.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;break;case 57:return T.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;break;case 58:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 59:return T.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;break;case 60:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 61:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 62:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 63:return T.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;break;case 64:return T.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;break;case 65:return T.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;break;case 66:return this.pushState("NODE"),36;break;case 67:return this.pushState("NODE"),36;break;case 68:return this.pushState("NODE"),36;break;case 69:return this.pushState("NODE"),36;break;case 70:return this.pushState("NODE"),36;break;case 71:return this.pushState("NODE"),36;break;case 72:return this.pushState("NODE"),36;break;case 73:return T.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;break;case 74:return this.pushState("BLOCK_ARROW"),T.getLogger().debug("LEX ARR START"),38;break;case 75:return T.getLogger().debug("Lex: NODE_ID",E.yytext),32;break;case 76:return T.getLogger().debug("Lex: EOF",E.yytext),8;break;case 77:this.pushState("md_string");break;case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:T.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:T.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return T.getLogger().debug("LEX: NODE_DESCR:",E.yytext),"NODE_DESCR";break;case 84:T.getLogger().debug("LEX POPPING"),this.popState();break;case 85:T.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (right): dir:",E.yytext),"DIR";break;case 87:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (left):",E.yytext),"DIR";break;case 88:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (x):",E.yytext),"DIR";break;case 89:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (y):",E.yytext),"DIR";break;case 90:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (up):",E.yytext),"DIR";break;case 91:return E.yytext=E.yytext.replace(/^,\s*/,""),T.getLogger().debug("Lex (down):",E.yytext),"DIR";break;case 92:return E.yytext="]>",T.getLogger().debug("Lex (ARROW_DIR end):",E.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 93:return T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 94:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 95:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 96:return T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 97:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 98:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 99:return T.getLogger().debug("Lex: START_LINK",E.yytext),this.pushState("LLABEL"),16;break;case 100:this.pushState("md_string");break;case 101:return T.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 102:return this.popState(),T.getLogger().debug("Lex: LINK","#"+E.yytext+"#"),15;break;case 103:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 104:return this.popState(),T.getLogger().debug("Lex: LINK",E.yytext),15;break;case 105:return T.getLogger().debug("Lex: COLON",E.yytext),E.yytext=E.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};return w}();v.lexer=x;function b(){this.yy={}}return o(b,"Parser"),b.prototype=v,v.Parser=b,new b}();jB.parser=jB;Xye=jB});function Krt(t){switch(Y.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return Y.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function Qrt(t){switch(Y.debug("typeStr2Type",t),t){case"==":return"thick";default:return"normal"}}function Zrt(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var ql,QB,KB,Kye,Qye,Urt,Jye,Hrt,K6,Wrt,Yrt,qrt,Xrt,eve,ZB,pb,jrt,Zye,Jrt,ent,tnt,rnt,nnt,int,ant,snt,ont,lnt,cnt,tve,rve=M(()=>{"use strict";SL();Ua();Vt();ht();fr();ki();ql=new Map,QB=[],KB=new Map,Kye="color",Qye="fill",Urt="bgFill",Jye=",",Hrt=de(),K6=new Map,Wrt=o(t=>je.sanitizeText(t,Hrt),"sanitizeText"),Yrt=o(function(t,e=""){let r=K6.get(t);r||(r={id:t,styles:[],textStyles:[]},K6.set(t,r)),e?.split(Jye).forEach(n=>{let i=n.replace(/([^;]*);/,"$1").trim();if(RegExp(Kye).exec(n)){let s=i.replace(Qye,Urt).replace(Kye,Qye);r.textStyles.push(s)}r.styles.push(i)})},"addStyleClass"),qrt=o(function(t,e=""){let r=ql.get(t);e!=null&&(r.styles=e.split(Jye))},"addStyle2Node"),Xrt=o(function(t,e){t.split(",").forEach(function(r){let n=ql.get(r);if(n===void 0){let i=r.trim();n={id:i,type:"na",children:[]},ql.set(i,n)}n.classes||(n.classes=[]),n.classes.push(e)})},"setCssClass"),eve=o((t,e)=>{let r=t.flat(),n=[];for(let i of r){if(i.label&&(i.label=Wrt(i.label)),i.type==="classDef"){Yrt(i.id,i.css);continue}if(i.type==="applyClass"){Xrt(i.id,i?.styleClass??"");continue}if(i.type==="applyStyles"){i?.stylesStr&&qrt(i.id,i?.stylesStr);continue}if(i.type==="column-setting")e.columns=i.columns??-1;else if(i.type==="edge"){let a=(KB.get(i.id)??0)+1;KB.set(i.id,a),i.id=a+"-"+i.id,QB.push(i)}else{i.label||(i.type==="composite"?i.label="":i.label=i.id);let a=ql.get(i.id);if(a===void 0?ql.set(i.id,i):(i.type!=="na"&&(a.type=i.type),i.label!==i.id&&(a.label=i.label)),i.children&&eve(i.children,i),i.type==="space"){let s=i.width??1;for(let l=0;l{Y.debug("Clear called"),_r(),pb={id:"root",type:"composite",children:[],columns:-1},ql=new Map([["root",pb]]),ZB=[],K6=new Map,QB=[],KB=new Map},"clear");o(Krt,"typeStr2Type");o(Qrt,"edgeTypeStr2Type");o(Zrt,"edgeStrToEdgeData");Zye=0,Jrt=o(()=>(Zye++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Zye),"generateId"),ent=o(t=>{pb.children=t,eve(t,pb),ZB=pb.children},"setHierarchy"),tnt=o(t=>{let e=ql.get(t);return e?e.columns?e.columns:e.children?e.children.length:-1:-1},"getColumns"),rnt=o(()=>[...ql.values()],"getBlocksFlat"),nnt=o(()=>ZB||[],"getBlocks"),int=o(()=>QB,"getEdges"),ant=o(t=>ql.get(t),"getBlock"),snt=o(t=>{ql.set(t.id,t)},"setBlock"),ont=o(()=>console,"getLogger"),lnt=o(function(){return K6},"getClasses"),cnt={getConfig:o(()=>Sr().block,"getConfig"),typeStr2Type:Krt,edgeTypeStr2Type:Qrt,edgeStrToEdgeData:Zrt,getLogger:ont,getBlocksFlat:rnt,getBlocks:nnt,getEdges:int,setHierarchy:ent,getBlock:ant,setBlock:snt,getColumns:tnt,getClasses:lnt,clear:jrt,generateId:Jrt},tve=cnt});var Q6,unt,nve,ive=M(()=>{"use strict";To();Q6=o((t,e)=>{let r=z1,n=r(t,"r"),i=r(t,"g"),a=r(t,"b");return Hs(n,i,a,e)},"fade"),unt=o(t=>`.label { + font-family: ${t.fontFamily}; + color: ${t.nodeTextColor||t.textColor}; + } + .cluster-label text { + fill: ${t.titleColor}; + } + .cluster-label span,p { + color: ${t.titleColor}; + } + + + + .label text,span,p { + fill: ${t.nodeTextColor||t.textColor}; + color: ${t.nodeTextColor||t.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${t.arrowheadColor}; + } + + .edgePath .path { + stroke: ${t.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${t.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${t.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${Q6(t.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${Q6(t.mainBkg,.5)}; + fill: ${Q6(t.clusterBkg,.5)}; + stroke: ${Q6(t.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${t.titleColor}; + } + + .cluster span,p { + color: ${t.titleColor}; + } + /* .cluster div { + color: ${t.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${t.fontFamily}; + font-size: 12px; + background: ${t.tertiaryColor}; + border: 1px solid ${t.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; + } +`,"getStyles"),nve=unt});var hnt,fnt,dnt,pnt,mnt,gnt,ynt,vnt,xnt,bnt,wnt,ave,sve=M(()=>{"use strict";ht();hnt=o((t,e,r,n)=>{e.forEach(i=>{wnt[i](t,r,n)})},"insertMarkers"),fnt=o((t,e,r)=>{Y.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},"extension"),dnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"composition"),pnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},"aggregation"),mnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},"dependency"),gnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},"lollipop"),ynt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"point"),vnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},"circle"),xnt=o((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},"cross"),bnt=o((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),wnt={extension:fnt,composition:dnt,aggregation:pnt,dependency:mnt,lollipop:gnt,point:ynt,circle:vnt,cross:xnt,barb:bnt},ave=hnt});function Tnt(t,e){if(t===0||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);if(t<0)return{px:e,py:0};if(t===1)return{px:0,py:e};let r=e%t,n=Math.floor(e/t);return{px:r,py:n}}function JB(t,e,r=0,n=0){Y.debug("setBlockSizes abc95 (start)",t.id,t?.size?.x,"block width =",t?.size,"sieblingWidth",r),t?.size?.width||(t.size={width:r,height:n,x:0,y:0});let i=0,a=0;if(t.children?.length>0){for(let m of t.children)JB(m,e);let s=knt(t);i=s.width,a=s.height,Y.debug("setBlockSizes abc95 maxWidth of",t.id,":s children is ",i,a);for(let m of t.children)m.size&&(Y.debug(`abc95 Setting size of children of ${t.id} id=${m.id} ${i} ${a} ${JSON.stringify(m.size)}`),m.size.width=i*(m.widthInColumns??1)+xi*((m.widthInColumns??1)-1),m.size.height=a,m.size.x=0,m.size.y=0,Y.debug(`abc95 updating size of ${t.id} children child:${m.id} maxWidth:${i} maxHeight:${a}`));for(let m of t.children)JB(m,e,i,a);let l=t.columns??-1,u=0;for(let m of t.children)u+=m.widthInColumns??1;let h=t.children.length;l>0&&l0?Math.min(t.children.length,l):t.children.length;if(m>0){let g=(d-m*xi-xi)/m;Y.debug("abc95 (growing to fit) width",t.id,d,t.size?.width,g);for(let y of t.children)y.size&&(y.size.width=g)}}t.size={width:d,height:p,x:0,y:0}}Y.debug("setBlockSizes abc94 (done)",t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}function ove(t,e){Y.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(Y.debug("layoutBlocks columns abc95",t.id,"=>",r,t),t.children&&t.children.length>0){let n=t?.children[0]?.size?.width??0,i=t.children.length*n+(t.children.length-1)*xi;Y.debug("widthOfChildren 88",i,"posX");let a=0;Y.debug("abc91 block?.size?.x",t.id,t?.size?.x);let s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-xi,l=0;for(let u of t.children){let h=t;if(!u.size)continue;let{width:f,height:d}=u.size,{px:p,py:m}=Tnt(r,a);if(m!=l&&(l=m,s=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-xi,Y.debug("New row in layout for block",t.id," and child ",u.id,l)),Y.debug(`abc89 layout blocks (child) id: ${u.id} Pos: ${a} (px, py) ${p},${m} (${h?.size?.x},${h?.size?.y}) parent: ${h.id} width: ${f}${xi}`),h.size){let g=f/2;u.size.x=s+xi+g,Y.debug(`abc91 layout blocks (calc) px, pyid:${u.id} startingPos=X${s} new startingPosX${u.size.x} ${g} padding=${xi} width=${f} halfWidth=${g} => x:${u.size.x} y:${u.size.y} ${u.widthInColumns} (width * (child?.w || 1)) / 2 ${f*(u?.widthInColumns??1)/2}`),s=u.size.x+g,u.size.y=h.size.y-h.size.height/2+m*(d+xi)+d/2+xi,Y.debug(`abc88 layout blocks (calc) px, pyid:${u.id}startingPosX${s}${xi}${g}=>x:${u.size.x}y:${u.size.y}${u.widthInColumns}(width * (child?.w || 1)) / 2${f*(u?.widthInColumns??1)/2}`)}u.children&&ove(u,e),a+=u?.widthInColumns??1,Y.debug("abc88 columnsPos",u,a)}}Y.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}function lve(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(t.size&&t.id!=="root"){let{x:a,y:s,width:l,height:u}=t.size;a-l/2n&&(n=a+l/2),s+u/2>i&&(i=s+u/2)}if(t.children)for(let a of t.children)({minX:e,minY:r,maxX:n,maxY:i}=lve(a,{minX:e,minY:r,maxX:n,maxY:i}));return{minX:e,minY:r,maxX:n,maxY:i}}function cve(t){let e=t.getBlock("root");if(!e)return;JB(e,t,0,0),ove(e,t),Y.debug("getBlocks",JSON.stringify(e,null,2));let{minX:r,minY:n,maxX:i,maxY:a}=lve(e),s=a-n,l=i-r;return{x:r,y:n,width:l,height:s}}var xi,knt,uve=M(()=>{"use strict";ht();Vt();xi=de()?.block?.padding??8;o(Tnt,"calculateBlockPosition");knt=o(t=>{let e=0,r=0;for(let n of t.children){let{width:i,height:a,x:s,y:l}=n.size??{width:0,height:0,x:0,y:0};Y.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",l,n.type),n.type!=="space"&&(i>e&&(e=i/(t.widthInColumns??1)),a>r&&(r=a))}return{width:e,height:r}},"getMaxChildSize");o(JB,"setBlockSizes");o(ove,"layoutBlocks");o(lve,"findBounds");o(cve,"layout")});function hve(t,e){e&&t.attr("style",e)}function Ent(t){let e=ze(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label,i=t.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),hve(a,t.labelStyle),a.attr("class",i),hve(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var Snt,cs,Z6=M(()=>{"use strict";mr();ht();Vt();fr();hr();Dl();o(hve,"applyStyle");o(Ent,"addHtmlLabel");Snt=o((t,e,r,n)=>{let i=t||"";if(typeof i=="object"&&(i=i[0]),xr(de().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),Y.debug("vertexText"+i);let a={isNode:n,label:x9(Ca(i)),labelStyle:e.replace("fill:","color:")};return Ent(a)}else{let a=document.createElementNS("http://www.w3.org/2000/svg","text");a.setAttribute("style",e.replace("color:","fill:"));let s=[];typeof i=="string"?s=i.split(/\\n|\n|/gi):Array.isArray(i)?s=i:s=[];for(let l of s){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),r?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=l.trim(),a.appendChild(u)}return a}},"createLabel"),cs=Snt});var dve,Cnt,fve,pve=M(()=>{"use strict";ht();dve=o((t,e,r,n,i)=>{e.arrowTypeStart&&fve(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&fve(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),Cnt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},fve=o((t,e,r,n,i,a)=>{let s=Cnt[r];if(!s){Y.warn(`Unknown arrow type: ${r}`);return}let l=e==="start"?"Start":"End";t.attr(`marker-${e}`,`url(${n}#${i}_${a}-${s}${l})`)},"addEdgeMarker")});function J6(t,e){de().flowchart.htmlLabels&&t&&(t.style.width=e.length*9+"px",t.style.height="12px")}var eF,$a,gve,yve,Ant,_nt,mve,vve,xve=M(()=>{"use strict";ht();Z6();Dl();mr();Vt();hr();fr();lL();Cv();pve();eF={},$a={},gve=o((t,e)=>{let r=de(),n=xr(r.flowchart.htmlLabels),i=e.labelType==="markdown"?Si(t,e.label,{style:e.labelStyle,useHtmlLabels:n,addSvgBackground:!0},r):cs(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(i);let l=i.getBBox();if(n){let h=i.children[0],f=ze(i);l=h.getBoundingClientRect(),f.attr("width",l.width),f.attr("height",l.height)}s.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),eF[e.id]=a,e.width=l.width,e.height=l.height;let u;if(e.startLabelLeft){let h=cs(e.startLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),$a[e.id]||($a[e.id]={}),$a[e.id].startLeft=f,J6(u,e.startLabelLeft)}if(e.startLabelRight){let h=cs(e.startLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=f.node().appendChild(h),d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),$a[e.id]||($a[e.id]={}),$a[e.id].startRight=f,J6(u,e.startLabelRight)}if(e.endLabelLeft){let h=cs(e.endLabelLeft,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),$a[e.id]||($a[e.id]={}),$a[e.id].endLeft=f,J6(u,e.endLabelLeft)}if(e.endLabelRight){let h=cs(e.endLabelRight,e.labelStyle),f=t.insert("g").attr("class","edgeTerminals"),d=f.insert("g").attr("class","inner");u=d.node().appendChild(h);let p=h.getBBox();d.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),f.node().appendChild(h),$a[e.id]||($a[e.id]={}),$a[e.id].endRight=f,J6(u,e.endLabelRight)}return i},"insertEdgeLabel");o(J6,"setTerminalWidth");yve=o((t,e)=>{Y.debug("Moving label abc88 ",t.id,t.label,eF[t.id],e);let r=e.updatedPath?e.updatedPath:e.originalPath,n=de(),{subGraphTitleTotalMargin:i}=_u(n);if(t.label){let a=eF[t.id],s=t.x,l=t.y;if(r){let u=Ut.calcLabelPosition(r);Y.debug("Moving label "+t.label+" from (",s,",",l,") to (",u.x,",",u.y,") abc88"),e.updatedPath&&(s=u.x,l=u.y)}a.attr("transform",`translate(${s}, ${l+i/2})`)}if(t.startLabelLeft){let a=$a[t.id].startLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.startLabelRight){let a=$a[t.id].startRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelLeft){let a=$a[t.id].endLeft,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}if(t.endLabelRight){let a=$a[t.id].endRight,s=t.x,l=t.y;if(r){let u=Ut.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",r);s=u.x,l=u.y}a.attr("transform",`translate(${s}, ${l})`)}},"positionEdgeLabel"),Ant=o((t,e)=>{let r=t.x,n=t.y,i=Math.abs(e.x-r),a=Math.abs(e.y-n),s=t.width/2,l=t.height/2;return i>=s||a>=l},"outsideNode"),_nt=o((t,e,r)=>{Y.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(e)} + insidePoint : ${JSON.stringify(r)} + node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let n=t.x,i=t.y,a=Math.abs(n-r.x),s=t.width/2,l=r.xMath.abs(n-e.x)*u){let d=r.y{Y.debug("abc88 cutPathAtIntersect",t,e);let r=[],n=t[0],i=!1;return t.forEach(a=>{if(!Ant(e,a)&&!i){let s=_nt(e,n,a),l=!1;r.forEach(u=>{l=l||u.x===s.x&&u.y===s.y}),r.some(u=>u.x===s.x&&u.y===s.y)||r.push(s),i=!0}else n=a,i||r.push(a)}),r},"cutPathAtIntersect"),vve=o(function(t,e,r,n,i,a,s){let l=r.points;Y.debug("abc88 InsertEdge: edge=",r,"e=",e);let u=!1,h=a.node(e.v);var f=a.node(e.w);f?.intersect&&h?.intersect&&(l=l.slice(1,r.points.length-1),l.unshift(h.intersect(l[0])),l.push(f.intersect(l[l.length-1]))),r.toCluster&&(Y.debug("to cluster abc88",n[r.toCluster]),l=mve(r.points,n[r.toCluster].node),u=!0),r.fromCluster&&(Y.debug("from cluster abc88",n[r.fromCluster]),l=mve(l.reverse(),n[r.fromCluster].node).reverse(),u=!0);let d=l.filter(_=>!Number.isNaN(_.y)),p=Do;r.curve&&(i==="graph"||i==="flowchart")&&(p=r.curve);let{x:m,y:g}=Z5(r),y=Ka().x(m).y(g).curve(p),v;switch(r.thickness){case"normal":v="edge-thickness-normal";break;case"thick":v="edge-thickness-thick";break;case"invisible":v="edge-thickness-thick";break;default:v=""}switch(r.pattern){case"solid":v+=" edge-pattern-solid";break;case"dotted":v+=" edge-pattern-dotted";break;case"dashed":v+=" edge-pattern-dashed";break}let x=t.append("path").attr("d",y(d)).attr("id",r.id).attr("class"," "+v+(r.classes?" "+r.classes:"")).attr("style",r.style),b="";(de().flowchart.arrowMarkerAbsolute||de().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),dve(x,r,b,s,i);let w={};return u&&(w.updatedPath=l),w.originalPath=r.points,w},"insertEdge")});var Lnt,bve,wve=M(()=>{"use strict";Lnt=o(t=>{let e=new Set;for(let r of t)switch(r){case"x":e.add("right"),e.add("left");break;case"y":e.add("up"),e.add("down");break;default:e.add(r);break}return e},"expandAndDeduplicateDirections"),bve=o((t,e,r)=>{let n=Lnt(t),i=2,a=e.height+2*r.padding,s=a/i,l=e.width+2*s+r.padding,u=r.padding/2;return n.has("right")&&n.has("left")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:s,y:0},{x:l/2,y:2*u},{x:l-s,y:0},{x:l,y:0},{x:l,y:-a/3},{x:l+2*u,y:-a/2},{x:l,y:-2*a/3},{x:l,y:-a},{x:l-s,y:-a},{x:l/2,y:-a-2*u},{x:s,y:-a},{x:0,y:-a},{x:0,y:-2*a/3},{x:-2*u,y:-a/2},{x:0,y:-a/3}]:n.has("right")&&n.has("left")&&n.has("up")?[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}]:n.has("right")&&n.has("left")&&n.has("down")?[{x:0,y:0},{x:s,y:-a},{x:l-s,y:-a},{x:l,y:0}]:n.has("right")&&n.has("up")&&n.has("down")?[{x:0,y:0},{x:l,y:-s},{x:l,y:-a+s},{x:0,y:-a}]:n.has("left")&&n.has("up")&&n.has("down")?[{x:l,y:0},{x:0,y:-s},{x:0,y:-a+s},{x:l,y:-a}]:n.has("right")&&n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")&&n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:n.has("right")&&n.has("up")?[{x:0,y:0},{x:l,y:-s},{x:0,y:-a}]:n.has("right")&&n.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-a}]:n.has("left")&&n.has("up")?[{x:l,y:0},{x:0,y:-s},{x:l,y:-a}]:n.has("left")&&n.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-a}]:n.has("right")?[{x:s,y:-u},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a+u}]:n.has("left")?[{x:s,y:0},{x:s,y:-u},{x:l-s,y:-u},{x:l-s,y:-a+u},{x:s,y:-a+u},{x:s,y:-a},{x:0,y:-a/2}]:n.has("up")?[{x:s,y:-u},{x:s,y:-a+u},{x:0,y:-a+u},{x:l/2,y:-a},{x:l,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u}]:n.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:s,y:-u},{x:s,y:-a+u},{x:l-s,y:-a+u},{x:l-s,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints")});function Dnt(t,e){return t.intersect(e)}var Tve,kve=M(()=>{"use strict";o(Dnt,"intersectNode");Tve=Dnt});function Nnt(t,e,r,n){var i=t.x,a=t.y,s=i-n.x,l=a-n.y,u=Math.sqrt(e*e*l*l+r*r*s*s),h=Math.abs(e*r*s/u);n.x{"use strict";o(Nnt,"intersectEllipse");eS=Nnt});function Rnt(t,e,r){return eS(t,e,e,r)}var Eve,Sve=M(()=>{"use strict";tF();o(Rnt,"intersectCircle");Eve=Rnt});function Mnt(t,e,r,n){var i,a,s,l,u,h,f,d,p,m,g,y,v,x,b;if(i=e.y-t.y,s=t.x-e.x,u=e.x*t.y-t.x*e.y,p=i*r.x+s*r.y+u,m=i*n.x+s*n.y+u,!(p!==0&&m!==0&&Cve(p,m))&&(a=n.y-r.y,l=r.x-n.x,h=n.x*r.y-r.x*n.y,f=a*t.x+l*t.y+h,d=a*e.x+l*e.y+h,!(f!==0&&d!==0&&Cve(f,d))&&(g=i*l-a*s,g!==0)))return y=Math.abs(g/2),v=s*h-l*u,x=v<0?(v-y)/g:(v+y)/g,v=a*u-i*h,b=v<0?(v-y)/g:(v+y)/g,{x,y:b}}function Cve(t,e){return t*e>0}var Ave,_ve=M(()=>{"use strict";o(Mnt,"intersectLine");o(Cve,"sameSign");Ave=Mnt});function Int(t,e,r){var n=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY;typeof e.forEach=="function"?e.forEach(function(g){s=Math.min(s,g.x),l=Math.min(l,g.y)}):(s=Math.min(s,e.x),l=Math.min(l,e.y));for(var u=n-t.width/2-s,h=i-t.height/2-l,f=0;f1&&a.sort(function(g,y){var v=g.x-r.x,x=g.y-r.y,b=Math.sqrt(v*v+x*x),w=y.x-r.x,_=y.y-r.y,T=Math.sqrt(w*w+_*_);return b{"use strict";_ve();Lve=Int;o(Int,"intersectPolygon")});var Ont,Nve,Rve=M(()=>{"use strict";Ont=o((t,e)=>{var r=t.x,n=t.y,i=e.x-r,a=e.y-n,s=t.width/2,l=t.height/2,u,h;return Math.abs(a)*s>Math.abs(i)*l?(a<0&&(l=-l),u=a===0?0:l*i/a,h=l):(i<0&&(s=-s),u=s,h=i===0?0:s*a/i),{x:r+u,y:n+h}},"intersectRect"),Nve=Ont});var Rn,rF=M(()=>{"use strict";kve();Sve();tF();Dve();Rve();Rn={node:Tve,circle:Eve,ellipse:eS,polygon:Lve,rect:Nve}});function Xl(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var _i,qn,nF=M(()=>{"use strict";Z6();Dl();Vt();mr();fr();hr();_i=o(async(t,e,r,n)=>{let i=de(),a,s=e.useHtmlLabels||xr(i.flowchart.htmlLabels);r?a=r:a="node default";let l=t.insert("g").attr("class",a).attr("id",e.domId||e.id),u=l.insert("g").attr("class","label").attr("style",e.labelStyle),h;e.labelText===void 0?h="":h=typeof e.labelText=="string"?e.labelText:e.labelText[0];let f=u.node(),d;e.labelType==="markdown"?d=Si(u,Tr(Ca(h),i),{useHtmlLabels:s,width:e.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):d=f.appendChild(cs(Tr(Ca(h),i),e.labelStyle,!1,n));let p=d.getBBox(),m=e.padding/2;if(xr(i.flowchart.htmlLabels)){let g=d.children[0],y=ze(d),v=g.getElementsByTagName("img");if(v){let x=h.replace(/]*>/g,"").trim()==="";await Promise.all([...v].map(b=>new Promise(w=>{function _(){if(b.style.display="flex",b.style.flexDirection="column",x){let T=i.fontSize?i.fontSize:window.getComputedStyle(document.body).fontSize,L=parseInt(T,10)*5+"px";b.style.minWidth=L,b.style.maxWidth=L}else b.style.width="100%";w(b)}o(_,"setupImage"),setTimeout(()=>{b.complete&&_()}),b.addEventListener("error",_),b.addEventListener("load",_)})))}p=g.getBoundingClientRect(),y.attr("width",p.width),y.attr("height",p.height)}return s?u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"):u.attr("transform","translate(0, "+-p.height/2+")"),e.centerLabel&&u.attr("transform","translate("+-p.width/2+", "+-p.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:l,bbox:p,halfPadding:m,label:u}},"labelHelper"),qn=o((t,e)=>{let r=e.node().getBBox();t.width=r.width,t.height=r.height},"updateNodeBounds");o(Xl,"insertPolygonShape")});var Pnt,Mve,Ive=M(()=>{"use strict";nF();ht();Vt();rF();Pnt=o(async(t,e)=>{e.useHtmlLabels||de().flowchart.htmlLabels||(e.centerLabel=!0);let{shapeSvg:n,bbox:i,halfPadding:a}=await _i(t,e,"node "+e.classes,!0);Y.info("Classes = ",e.classes);let s=n.insert("rect",":first-child");return s.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),qn(e,s),e.intersect=function(l){return Rn.rect(e,l)},n},"note"),Mve=Pnt});function iF(t,e,r,n){let i=[],a=o(l=>{i.push(l,0)},"addBorder"),s=o(l=>{i.push(0,l)},"skipBorder");e.includes("t")?(Y.debug("add top border"),a(r)):s(r),e.includes("r")?(Y.debug("add right border"),a(n)):s(n),e.includes("b")?(Y.debug("add bottom border"),a(r)):s(r),e.includes("l")?(Y.debug("add left border"),a(n)):s(n),t.attr("stroke-dasharray",i.join(" "))}var Ove,go,Pve,Bnt,Fnt,znt,Gnt,$nt,Vnt,Unt,Hnt,Wnt,Ynt,qnt,Xnt,jnt,Knt,Qnt,Znt,Jnt,eit,tit,Bve,rit,nit,Fve,tS,aF,zve,Gve=M(()=>{"use strict";mr();Vt();fr();ht();wve();Z6();rF();Ive();nF();Ove=o(t=>t?" "+t:"","formatClass"),go=o((t,e)=>`${e||"node default"}${Ove(t.classes)} ${Ove(t.class)}`,"getClassesFromNode"),Pve=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,l=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];Y.info("Question main (Circle)");let u=Xl(r,s,s,l);return u.attr("style",e.style),qn(e,u),e.intersect=function(h){return Y.warn("Intersect called"),Rn.polygon(e,l,h)},r},"question"),Bnt=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=28,i=[{x:0,y:n/2},{x:n/2,y:0},{x:0,y:-n/2},{x:-n/2,y:0}];return r.insert("polygon",":first-child").attr("points",i.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(s){return Rn.circle(e,14,s)},r},"choice"),Fnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=4,a=n.height+e.padding,s=a/i,l=n.width+2*s+e.padding,u=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],h=Xl(r,l,a,u);return h.attr("style",e.style),qn(e,h),e.intersect=function(f){return Rn.polygon(e,u,f)},r},"hexagon"),znt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,void 0,!0),i=2,a=n.height+2*e.padding,s=a/i,l=n.width+2*s+e.padding,u=bve(e.directions,n,e),h=Xl(r,l,a,u);return h.attr("style",e.style),qn(e,h),e.intersect=function(f){return Rn.polygon(e,u,f)},r},"block_arrow"),Gnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Xl(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(u){return Rn.polygon(e,s,u)},r},"rect_left_inv_arrow"),$nt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"lean_right"),Vnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"lean_left"),Unt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"trapezoid"),Hnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"inv_trapezoid"),Wnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"rect_right_inv_arrow"),Ynt=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=i/2,s=a/(2.5+i/50),l=n.height+s+e.padding,u="M 0,"+s+" a "+a+","+s+" 0,0,0 "+i+" 0 a "+a+","+s+" 0,0,0 "+-i+" 0 l 0,"+l+" a "+a+","+s+" 0,0,0 "+i+" 0 l 0,"+-l,h=r.attr("label-offset-y",s).insert("path",":first-child").attr("style",e.style).attr("d",u).attr("transform","translate("+-i/2+","+-(l/2+s)+")");return qn(e,h),e.intersect=function(f){let d=Rn.rect(e,f),p=d.x-e.x;if(a!=0&&(Math.abs(p)e.height/2-s)){let m=s*s*(1-p*p/(a*a));m!=0&&(m=Math.sqrt(m)),m=s-m,f.y-e.y>0&&(m=-m),d.y+=m}return d},r},"cylinder"),qnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,"node "+e.classes+" "+e.class,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(iF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return qn(e,a),e.intersect=function(f){return Rn.rect(e,f)},r},"rect"),Xnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,"node "+e.classes,!0),a=r.insert("rect",":first-child"),s=e.positioned?e.width:n.width+e.padding,l=e.positioned?e.height:n.height+e.padding,u=e.positioned?-s/2:-n.width/2-i,h=e.positioned?-l/2:-n.height/2-i;if(a.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",u).attr("y",h).attr("width",s).attr("height",l),e.props){let f=new Set(Object.keys(e.props));e.props.borders&&(iF(a,e.props.borders,s,l),f.delete("borders")),f.forEach(d=>{Y.warn(`Unknown node property ${d}`)})}return qn(e,a),e.intersect=function(f){return Rn.rect(e,f)},r},"composite"),jnt=o(async(t,e)=>{let{shapeSvg:r}=await _i(t,e,"label",!0);Y.trace("Classes = ",e.class);let n=r.insert("rect",":first-child"),i=0,a=0;if(n.attr("width",i).attr("height",a),r.attr("class","label edgeLabel"),e.props){let s=new Set(Object.keys(e.props));e.props.borders&&(iF(n,e.props.borders,i,a),s.delete("borders")),s.forEach(l=>{Y.warn(`Unknown node property ${l}`)})}return qn(e,n),e.intersect=function(s){return Rn.rect(e,s)},r},"labelRect");o(iF,"applyNodePropertyBorders");Knt=o((t,e)=>{let r;e.classes?r="node "+e.classes:r="node default";let n=t.insert("g").attr("class",r).attr("id",e.domId||e.id),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),l=e.labelText.flat?e.labelText.flat():e.labelText,u="";typeof l=="object"?u=l[0]:u=l,Y.info("Label text abc79",u,l,typeof l=="object");let h=s.node().appendChild(cs(u,e.labelStyle,!0,!0)),f={width:0,height:0};if(xr(de().flowchart.htmlLabels)){let y=h.children[0],v=ze(h);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}Y.info("Text 2",l);let d=l.slice(1,l.length),p=h.getBBox(),m=s.node().appendChild(cs(d.join?d.join("
    "):d,e.labelStyle,!0,!0));if(xr(de().flowchart.htmlLabels)){let y=m.children[0],v=ze(m);f=y.getBoundingClientRect(),v.attr("width",f.width),v.attr("height",f.height)}let g=e.padding/2;return ze(m).attr("transform","translate( "+(f.width>p.width?0:(p.width-f.width)/2)+", "+(p.height+g+5)+")"),ze(h).attr("transform","translate( "+(f.width{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.height+e.padding,a=n.width+i/4+e.padding,s=r.insert("rect",":first-child").attr("style",e.style).attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return qn(e,s),e.intersect=function(l){return Rn.rect(e,l)},r},"stadium"),Znt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,go(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("Circle main"),qn(e,a),e.intersect=function(s){return Y.info("Circle intersect",e,n.width/2+i,s),Rn.circle(e,n.width/2+i,s)},r},"circle"),Jnt=o(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await _i(t,e,go(e,void 0),!0),a=5,s=r.insert("g",":first-child"),l=s.insert("circle"),u=s.insert("circle");return s.attr("class",e.class),l.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+a).attr("width",n.width+e.padding+a*2).attr("height",n.height+e.padding+a*2),u.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),Y.info("DoubleCircle main"),qn(e,l),e.intersect=function(h){return Y.info("DoubleCircle intersect",e,n.width/2+i+a,h),Rn.circle(e,n.width/2+i+a,h)},r},"doublecircle"),eit=o(async(t,e)=>{let{shapeSvg:r,bbox:n}=await _i(t,e,go(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],l=Xl(r,i,a,s);return l.attr("style",e.style),qn(e,l),e.intersect=function(u){return Rn.polygon(e,s,u)},r},"subroutine"),tit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),qn(e,n),e.intersect=function(i){return Rn.circle(e,7,i)},r},"start"),Bve=o((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;r==="LR"&&(i=10,a=70);let s=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join");return qn(e,s),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(l){return Rn.rect(e,l)},n},"forkJoin"),rit=o((t,e)=>{let r=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),n=r.insert("circle",":first-child"),i=r.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),n.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),qn(e,i),e.intersect=function(a){return Rn.circle(e,7,a)},r},"end"),nit=o((t,e)=>{let r=e.padding/2,n=4,i=8,a;e.classes?a="node "+e.classes:a="node default";let s=t.insert("g").attr("class",a).attr("id",e.domId||e.id),l=s.insert("rect",":first-child"),u=s.insert("line"),h=s.insert("line"),f=0,d=n,p=s.insert("g").attr("class","label"),m=0,g=e.classData.annotations?.[0],y=e.classData.annotations[0]?"\xAB"+e.classData.annotations[0]+"\xBB":"",v=p.node().appendChild(cs(y,e.labelStyle,!0,!0)),x=v.getBBox();if(xr(de().flowchart.htmlLabels)){let C=v.children[0],A=ze(v);x=C.getBoundingClientRect(),A.attr("width",x.width),A.attr("height",x.height)}e.classData.annotations[0]&&(d+=x.height+n,f+=x.width);let b=e.classData.label;e.classData.type!==void 0&&e.classData.type!==""&&(de().flowchart.htmlLabels?b+="<"+e.classData.type+">":b+="<"+e.classData.type+">");let w=p.node().appendChild(cs(b,e.labelStyle,!0,!0));ze(w).attr("class","classTitle");let _=w.getBBox();if(xr(de().flowchart.htmlLabels)){let C=w.children[0],A=ze(w);_=C.getBoundingClientRect(),A.attr("width",_.width),A.attr("height",_.height)}d+=_.height+n,_.width>f&&(f=_.width);let T=[];e.classData.members.forEach(C=>{let A=C.getDisplayDetails(),I=A.displayText;de().flowchart.htmlLabels&&(I=I.replace(//g,">"));let D=p.node().appendChild(cs(I,A.cssStyle?A.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(xr(de().flowchart.htmlLabels)){let R=D.children[0],S=ze(D);k=R.getBoundingClientRect(),S.attr("width",k.width),S.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,T.push(D)}),d+=i;let E=[];if(e.classData.methods.forEach(C=>{let A=C.getDisplayDetails(),I=A.displayText;de().flowchart.htmlLabels&&(I=I.replace(//g,">"));let D=p.node().appendChild(cs(I,A.cssStyle?A.cssStyle:e.labelStyle,!0,!0)),k=D.getBBox();if(xr(de().flowchart.htmlLabels)){let R=D.children[0],S=ze(D);k=R.getBoundingClientRect(),S.attr("width",k.width),S.attr("height",k.height)}k.width>f&&(f=k.width),d+=k.height+n,E.push(D)}),d+=i,g){let C=(f-x.width)/2;ze(v).attr("transform","translate( "+(-1*f/2+C)+", "+-1*d/2+")"),m=x.height+n}let L=(f-_.width)/2;return ze(w).attr("transform","translate( "+(-1*f/2+L)+", "+(-1*d/2+m)+")"),m+=_.height+n,u.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,T.forEach(C=>{ze(C).attr("transform","translate( "+-f/2+", "+(-1*d/2+m+i/2)+")");let A=C?.getBBox();m+=(A?.height??0)+n}),m+=i,h.attr("class","divider").attr("x1",-f/2-r).attr("x2",f/2+r).attr("y1",-d/2-r+i+m).attr("y2",-d/2-r+i+m),m+=i,E.forEach(C=>{ze(C).attr("transform","translate( "+-f/2+", "+(-1*d/2+m)+")");let A=C?.getBBox();m+=(A?.height??0)+n}),l.attr("style",e.style).attr("class","outer title-state").attr("x",-f/2-r).attr("y",-(d/2)-r).attr("width",f+e.padding).attr("height",d+e.padding),qn(e,l),e.intersect=function(C){return Rn.rect(e,C)},s},"class_box"),Fve={rhombus:Pve,composite:Xnt,question:Pve,rect:qnt,labelRect:jnt,rectWithTitle:Knt,choice:Bnt,circle:Znt,doublecircle:Jnt,stadium:Qnt,hexagon:Fnt,block_arrow:znt,rect_left_inv_arrow:Gnt,lean_right:$nt,lean_left:Vnt,trapezoid:Unt,inv_trapezoid:Hnt,rect_right_inv_arrow:Wnt,cylinder:Ynt,start:tit,end:rit,note:Mve,subroutine:eit,fork:Bve,join:Bve,class_box:nit},tS={},aF=o(async(t,e,r)=>{let n,i;if(e.link){let a;de().securityLevel==="sandbox"?a="_top":e.linkTarget&&(a=e.linkTarget||"_blank"),n=t.insert("svg:a").attr("xlink:href",e.link).attr("target",a),i=await Fve[e.shape](n,e,r)}else i=await Fve[e.shape](t,e,r),n=i;return e.tooltip&&i.attr("title",e.tooltip),e.class&&i.attr("class","node default "+e.class),tS[e.id]=n,e.haveCallback&&tS[e.id].attr("class",tS[e.id].attr("class")+" clickable"),n},"insertNode"),zve=o(t=>{let e=tS[t.id];Y.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");let r=8,n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-r)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},"positionNode")});function $ve(t,e,r=!1){let n=t,i="default";(n?.classes?.length||0)>0&&(i=(n?.classes??[]).join(" ")),i=i+" flowchart-label";let a=0,s="",l;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",l=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}let u=J_(n?.styles??[]),h=n.label,f=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:u.labelStyle,shape:s,labelText:h,rx:a,ry:a,class:i,style:u.style,id:n.id,directions:n.directions,width:f.width,height:f.height,x:f.x,y:f.y,positioned:r,intersect:void 0,type:n.type,padding:l??Sr()?.block?.padding??0}}async function iit(t,e,r){let n=$ve(e,r,!1);if(n.type==="group")return;let i=Sr(),a=await aF(t,n,{config:i}),s=a.node().getBBox(),l=r.getBlock(n.id);l.size={width:s.width,height:s.height,x:0,y:0,node:a},r.setBlock(l),a.remove()}async function ait(t,e,r){let n=$ve(e,r,!0);if(r.getBlock(n.id).type!=="space"){let a=Sr();await aF(t,n,{config:a}),e.intersect=n?.intersect,zve(n)}}async function sF(t,e,r,n){for(let i of e)await n(t,i,r),i.children&&await sF(t,i.children,r,n)}async function Vve(t,e,r){await sF(t,e,r,iit)}async function Uve(t,e,r){await sF(t,e,r,ait)}async function Hve(t,e,r,n,i){let a=new Mr({multigraph:!0,compound:!0});a.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let s of r)s.size&&a.setNode(s.id,{width:s.size.width,height:s.size.height,intersect:s.intersect});for(let s of e)if(s.start&&s.end){let l=n.getBlock(s.start),u=n.getBlock(s.end);if(l?.size&&u?.size){let h=l.size,f=u.size,d=[{x:h.x,y:h.y},{x:h.x+(f.x-h.x)/2,y:h.y+(f.y-h.y)/2},{x:f.x,y:f.y}];vve(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",a,i),s.label&&(await gve(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:d,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),yve({...s,x:d[1].x,y:d[1].y},{originalPath:d}))}}}var Wve=M(()=>{"use strict";Ns();Ua();xve();Gve();hr();o($ve,"getNodeFromBlock");o(iit,"calculateBlockSize");o(ait,"insertBlockPositioned");o(sF,"performOperations");o(Vve,"calculateBlockSizes");o(Uve,"insertBlocks");o(Hve,"insertEdges")});var sit,oit,Yve,qve=M(()=>{"use strict";mr();Ua();sve();ht();ni();uve();Wve();sit=o(function(t,e){return e.db.getClasses()},"getClasses"),oit=o(async function(t,e,r,n){let{securityLevel:i,block:a}=Sr(),s=n.db,l;i==="sandbox"&&(l=ze("#i"+e));let u=i==="sandbox"?ze(l.nodes()[0].contentDocument.body):ze("body"),h=i==="sandbox"?u.select(`[id="${e}"]`):ze(`[id="${e}"]`);ave(h,["point","circle","cross"],n.type,e);let d=s.getBlocks(),p=s.getBlocksFlat(),m=s.getEdges(),g=h.insert("g").attr("class","block");await Vve(g,d,s);let y=cve(s);if(await Uve(g,d,s),await Hve(g,m,p,s,e),y){let v=y,x=Math.max(1,Math.round(.125*(v.width/v.height))),b=v.height+x+10,w=v.width+10,{useMaxWidth:_}=a;Zr(h,b,w,!!_),Y.debug("Here Bounds",y,v),h.attr("viewBox",`${v.x-5} ${v.y-5} ${v.width+10} ${v.height+10}`)}},"draw"),Yve={draw:oit,getClasses:sit}});var Xve={};vr(Xve,{diagram:()=>lit});var lit,jve=M(()=>{"use strict";jye();rve();ive();qve();lit={parser:Xye,db:tve,renderer:Yve,styles:nve}});var oF,lF,mb,Zve,cF,us,qc,rS,Jve,fit,gb,e2e,t2e,r2e,n2e,nS,Mf,iS=M(()=>{"use strict";oF={L:"left",R:"right",T:"top",B:"bottom"},lF={L:o(t=>`${t},${t/2} 0,${t} 0,0`,"L"),R:o(t=>`0,${t/2} ${t},0 ${t},${t}`,"R"),T:o(t=>`0,0 ${t},0 ${t/2},${t}`,"T"),B:o(t=>`${t/2},0 ${t},${t} 0,${t}`,"B")},mb={L:o((t,e)=>t-e+2,"L"),R:o((t,e)=>t-2,"R"),T:o((t,e)=>t-e+2,"T"),B:o((t,e)=>t-2,"B")},Zve=o(function(t){return us(t)?t==="L"?"R":"L":t==="T"?"B":"T"},"getOppositeArchitectureDirection"),cF=o(function(t){let e=t;return e==="L"||e==="R"||e==="T"||e==="B"},"isArchitectureDirection"),us=o(function(t){let e=t;return e==="L"||e==="R"},"isArchitectureDirectionX"),qc=o(function(t){let e=t;return e==="T"||e==="B"},"isArchitectureDirectionY"),rS=o(function(t,e){let r=us(t)&&qc(e),n=qc(t)&&us(e);return r||n},"isArchitectureDirectionXY"),Jve=o(function(t){let e=t[0],r=t[1],n=us(e)&&qc(r),i=qc(e)&&us(r);return n||i},"isArchitecturePairXY"),fit=o(function(t){return t!=="LL"&&t!=="RR"&&t!=="TT"&&t!=="BB"},"isValidArchitectureDirectionPair"),gb=o(function(t,e){let r=`${t}${e}`;return fit(r)?r:void 0},"getArchitectureDirectionPair"),e2e=o(function([t,e],r){let n=r[0],i=r[1];return us(n)?qc(i)?[t+(n==="L"?-1:1),e+(i==="T"?1:-1)]:[t+(n==="L"?-1:1),e]:us(i)?[t+(i==="L"?1:-1),e+(n==="T"?1:-1)]:[t,e+(n==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),t2e=o(function(t){return t==="LT"||t==="TL"?[1,1]:t==="BL"||t==="LB"?[1,-1]:t==="BR"||t==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),r2e=o(function(t){return t.type==="service"},"isArchitectureService"),n2e=o(function(t){return t.type==="junction"},"isArchitectureJunction"),nS=o(t=>t.data(),"edgeData"),Mf=o(t=>t.data(),"nodeData")});function Li(t){let e=de().architecture;return e?.[t]?e[t]:i2e[t]}var i2e,gr,dit,pit,mit,git,yit,vit,xit,bit,wit,Tit,kit,Eit,Sit,Cit,X0,yb=M(()=>{"use strict";hs();Vt();tE();ki();iS();i2e=ur.architecture,gr=new cf(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:i2e,dataStructures:void 0,elements:{}})),dit=o(()=>{gr.reset(),_r()},"clear"),pit=o(function({id:t,icon:e,in:r,title:n,iconText:i}){if(gr.records.registeredIds[t]!==void 0)throw new Error(`The service id [${t}] is already in use by another ${gr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(gr.records.registeredIds[r]===void 0)throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if(gr.records.registeredIds[r]==="node")throw new Error(`The service [${t}]'s parent is not a group`)}gr.records.registeredIds[t]="node",gr.records.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}},"addService"),mit=o(()=>Object.values(gr.records.nodes).filter(r2e),"getServices"),git=o(function({id:t,in:e}){gr.records.registeredIds[t]="node",gr.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),yit=o(()=>Object.values(gr.records.nodes).filter(n2e),"getJunctions"),vit=o(()=>Object.values(gr.records.nodes),"getNodes"),xit=o(t=>gr.records.nodes[t],"getNode"),bit=o(function({id:t,icon:e,in:r,title:n}){if(gr.records.registeredIds[t]!==void 0)throw new Error(`The group id [${t}] is already in use by another ${gr.records.registeredIds[t]}`);if(r!==void 0){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(gr.records.registeredIds[r]===void 0)throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if(gr.records.registeredIds[r]==="node")throw new Error(`The group [${t}]'s parent is not a group`)}gr.records.registeredIds[t]="group",gr.records.groups[t]={id:t,icon:e,title:n,in:r}},"addGroup"),wit=o(()=>Object.values(gr.records.groups),"getGroups"),Tit=o(function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:l,title:u}){if(!cF(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${r}`);if(!cF(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got ${n}`);if(gr.records.nodes[t]===void 0&&gr.records.groups[t]===void 0)throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(gr.records.nodes[e]===void 0&&gr.records.groups[t]===void 0)throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);let h=gr.records.nodes[t].in,f=gr.records.nodes[e].in;if(s&&h&&f&&h==f)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(l&&h&&f&&h==f)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let d={lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:l,title:u};gr.records.edges.push(d),gr.records.nodes[t]&&gr.records.nodes[e]&&(gr.records.nodes[t].edges.push(gr.records.edges[gr.records.edges.length-1]),gr.records.nodes[e].edges.push(gr.records.edges[gr.records.edges.length-1]))},"addEdge"),kit=o(()=>gr.records.edges,"getEdges"),Eit=o(()=>{if(gr.records.dataStructures===void 0){let t=Object.entries(gr.records.nodes).reduce((s,[l,u])=>(s[l]=u.edges.reduce((h,f)=>{if(f.lhsId===l){let d=gb(f.lhsDir,f.rhsDir);d&&(h[d]=f.rhsId)}else{let d=gb(f.rhsDir,f.lhsDir);d&&(h[d]=f.lhsId)}return h},{}),s),{}),e=Object.keys(t)[0],r={[e]:1},n=Object.keys(t).reduce((s,l)=>l===e?s:{...s,[l]:1},{}),i=o(s=>{let l={[s]:[0,0]},u=[s];for(;u.length>0;){let h=u.shift();if(h){r[h]=1,delete n[h];let f=t[h],[d,p]=l[h];Object.entries(f).forEach(([m,g])=>{r[g]||(l[g]=e2e([d,p],m),u.push(g))})}}return l},"BFS"),a=[i(e)];for(;Object.keys(n).length>0;)a.push(i(Object.keys(n)[0]));gr.records.dataStructures={adjList:t,spatialMaps:a}}return gr.records.dataStructures},"getDataStructures"),Sit=o((t,e)=>{gr.records.elements[t]=e},"setElementForId"),Cit=o(t=>gr.records.elements[t],"getElementById"),X0={clear:dit,setDiagramTitle:ln,getDiagramTitle:Jr,setAccTitle:Rr,getAccTitle:Pr,setAccDescription:Br,getAccDescription:Fr,addService:pit,getServices:mit,addJunction:git,getJunctions:yit,getNodes:vit,getNode:xit,addGroup:bit,getGroups:wit,addEdge:Tit,getEdges:kit,setElementForId:Sit,getElementById:Cit,getDataStructures:Eit};o(Li,"getConfigField")});var Ait,a2e,s2e=M(()=>{"use strict";Ng();ht();ox();yb();Ait=o((t,e)=>{lf(t,e),t.groups.map(e.addGroup),t.services.map(r=>e.addService({...r,type:"service"})),t.junctions.map(r=>e.addJunction({...r,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),a2e={parse:o(async t=>{let e=await Gl("architecture",t);Y.debug(e),Ait(e,X0)},"parse")}});var _it,o2e,l2e=M(()=>{"use strict";_it=o(t=>` + .edge { + stroke-width: ${t.archEdgeWidth}; + stroke: ${t.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${t.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${t.archGroupBorderColor}; + stroke-width: ${t.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),o2e=_it});var hF=Ni((vb,uF)=>{"use strict";o(function(e,r){typeof vb=="object"&&typeof uF=="object"?uF.exports=r():typeof define=="function"&&define.amd?define([],r):typeof vb=="object"?vb.layoutBase=r():e.layoutBase=r()},"webpackUniversalModuleDefinition")(vb,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return o(r,"__webpack_require__"),r.m=t,r.c=e,r.i=function(n){return n},r.d=function(n,i,a){r.o(n,i)||Object.defineProperty(n,i,{configurable:!1,enumerable:!0,get:a})},r.n=function(n){var i=n&&n.__esModule?o(function(){return n.default},"getDefault"):o(function(){return n},"getModuleExports");return r.d(i,"a",i),i},r.o=function(n,i){return Object.prototype.hasOwnProperty.call(n,i)},r.p="",r(r.s=28)}([function(t,e,r){"use strict";function n(){}o(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_SIZE=40,n.SIMPLE_NODE_HALF_SIZE=n.SIMPLE_NODE_SIZE/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.WORLD_BOUNDARY=1e6,n.INITIAL_WORLD_BOUNDARY=n.WORLD_BOUNDARY/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(8),a=r(9);function s(u,h,f){n.call(this,f),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=f,this.bendpoints=[],this.source=u,this.target=h}o(s,"LEdge"),s.prototype=Object.create(n.prototype);for(var l in n)s[l]=n[l];s.prototype.getSource=function(){return this.source},s.prototype.getTarget=function(){return this.target},s.prototype.isInterGraph=function(){return this.isInterGraph},s.prototype.getLength=function(){return this.length},s.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},s.prototype.getBendpoints=function(){return this.bendpoints},s.prototype.getLca=function(){return this.lca},s.prototype.getSourceInLca=function(){return this.sourceInLca},s.prototype.getTargetInLca=function(){return this.targetInLca},s.prototype.getOtherEnd=function(u){if(this.source===u)return this.target;if(this.target===u)return this.source;throw"Node is not incident with this edge"},s.prototype.getOtherEndInGraph=function(u,h){for(var f=this.getOtherEnd(u),d=h.getGraphManager().getRoot();;){if(f.getOwner()==h)return f;if(f.getOwner()==d)break;f=f.getOwner().getParent()}return null},s.prototype.updateLength=function(){var u=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),u),this.isOverlapingSourceAndTarget||(this.lengthX=u[0]-u[2],this.lengthY=u[1]-u[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},s.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=s},function(t,e,r){"use strict";function n(i){this.vGraphObject=i}o(n,"LGraphObject"),t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(13),s=r(0),l=r(16),u=r(5);function h(d,p,m,g){m==null&&g==null&&(g=p),n.call(this,g),d.graphManager!=null&&(d=d.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=g,this.edges=[],this.graphManager=d,m!=null&&p!=null?this.rect=new a(p.x,p.y,m.width,m.height):this.rect=new a}o(h,"LNode"),h.prototype=Object.create(n.prototype);for(var f in n)h[f]=n[f];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(d){this.rect.width=d},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(d){this.rect.height=d},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new u(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new u(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(d,p){this.rect.x=d.x,this.rect.y=d.y,this.rect.width=p.width,this.rect.height=p.height},h.prototype.setCenter=function(d,p){this.rect.x=d-this.rect.width/2,this.rect.y=p-this.rect.height/2},h.prototype.setLocation=function(d,p){this.rect.x=d,this.rect.y=p},h.prototype.moveBy=function(d,p){this.rect.x+=d,this.rect.y+=p},h.prototype.getEdgeListToNode=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(y.target==d){if(y.source!=g)throw"Incorrect edge source!";p.push(y)}}),p},h.prototype.getEdgesBetween=function(d){var p=[],m,g=this;return g.edges.forEach(function(y){if(!(y.source==g||y.target==g))throw"Incorrect edge source and/or target";(y.target==d||y.source==d)&&p.push(y)}),p},h.prototype.getNeighborsList=function(){var d=new Set,p=this;return p.edges.forEach(function(m){if(m.source==p)d.add(m.target);else{if(m.target!=p)throw"Incorrect incidency!";d.add(m.source)}}),d},h.prototype.withChildren=function(){var d=new Set,p,m;if(d.add(this),this.child!=null)for(var g=this.child.getNodes(),y=0;yp?(this.rect.x-=(this.labelWidth-p)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(p+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(m+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>m?(this.rect.y-=(this.labelHeight-m)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(m+this.labelHeight))}}},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(d){var p=this.rect.x;p>s.WORLD_BOUNDARY?p=s.WORLD_BOUNDARY:p<-s.WORLD_BOUNDARY&&(p=-s.WORLD_BOUNDARY);var m=this.rect.y;m>s.WORLD_BOUNDARY?m=s.WORLD_BOUNDARY:m<-s.WORLD_BOUNDARY&&(m=-s.WORLD_BOUNDARY);var g=new u(p,m),y=d.inverseTransformPoint(g);this.setLocation(y.x,y.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},t.exports=h},function(t,e,r){"use strict";var n=r(0);function i(){}o(i,"FDLayoutConstants");for(var a in n)i[a]=n[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=i.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=i},function(t,e,r){"use strict";function n(i,a){i==null&&a==null?(this.x=0,this.y=0):(this.x=i,this.y=a)}o(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(i){this.x=i},n.prototype.setY=function(i){this.y=i},n.prototype.getDifference=function(i){return new DimensionD(this.x-i.x,this.y-i.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(i){return this.x+=i.width,this.y+=i.height,this},t.exports=n},function(t,e,r){"use strict";var n=r(2),i=r(10),a=r(0),s=r(7),l=r(3),u=r(1),h=r(13),f=r(12),d=r(11);function p(g,y,v){n.call(this,v),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=g,y!=null&&y instanceof s?this.graphManager=y:y!=null&&y instanceof Layout&&(this.graphManager=y.graphManager)}o(p,"LGraph"),p.prototype=Object.create(n.prototype);for(var m in n)p[m]=n[m];p.prototype.getNodes=function(){return this.nodes},p.prototype.getEdges=function(){return this.edges},p.prototype.getGraphManager=function(){return this.graphManager},p.prototype.getParent=function(){return this.parent},p.prototype.getLeft=function(){return this.left},p.prototype.getRight=function(){return this.right},p.prototype.getTop=function(){return this.top},p.prototype.getBottom=function(){return this.bottom},p.prototype.isConnected=function(){return this.isConnected},p.prototype.add=function(g,y,v){if(y==null&&v==null){var x=g;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(x)>-1)throw"Node already in graph!";return x.owner=this,this.getNodes().push(x),x}else{var b=g;if(!(this.getNodes().indexOf(y)>-1&&this.getNodes().indexOf(v)>-1))throw"Source or target not in graph!";if(!(y.owner==v.owner&&y.owner==this))throw"Both owners must be this graph!";return y.owner!=v.owner?null:(b.source=y,b.target=v,b.isInterGraph=!1,this.getEdges().push(b),y.edges.push(b),v!=y&&v.edges.push(b),b)}},p.prototype.remove=function(g){var y=g;if(g instanceof l){if(y==null)throw"Node is null!";if(!(y.owner!=null&&y.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var v=y.edges.slice(),x,b=v.length,w=0;w-1&&E>-1))throw"Source and/or target doesn't know this edge!";x.source.edges.splice(T,1),x.target!=x.source&&x.target.edges.splice(E,1);var _=x.source.owner.getEdges().indexOf(x);if(_==-1)throw"Not in owner's edge list!";x.source.owner.getEdges().splice(_,1)}},p.prototype.updateLeftTop=function(){for(var g=i.MAX_VALUE,y=i.MAX_VALUE,v,x,b,w=this.getNodes(),_=w.length,T=0;T<_;T++){var E=w[T];v=E.getTop(),x=E.getLeft(),g>v&&(g=v),y>x&&(y=x)}return g==i.MAX_VALUE?null:(w[0].getParent().paddingLeft!=null?b=w[0].getParent().paddingLeft:b=this.margin,this.left=y-b,this.top=g-b,new f(this.left,this.top))},p.prototype.updateBounds=function(g){for(var y=i.MAX_VALUE,v=-i.MAX_VALUE,x=i.MAX_VALUE,b=-i.MAX_VALUE,w,_,T,E,L,C=this.nodes,A=C.length,I=0;Iw&&(y=w),v<_&&(v=_),x>T&&(x=T),bw&&(y=w),v<_&&(v=_),x>T&&(x=T),b=this.nodes.length){var A=0;v.forEach(function(I){I.owner==g&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},t.exports=p},function(t,e,r){"use strict";var n,i=r(1);function a(s){n=r(6),this.layout=s,this.graphs=[],this.edges=[]}o(a,"LGraphManager"),a.prototype.addRoot=function(){var s=this.layout.newGraph(),l=this.layout.newNode(null),u=this.add(s,l);return this.setRootGraph(u),this.rootGraph},a.prototype.add=function(s,l,u,h,f){if(u==null&&h==null&&f==null){if(s==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(s)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(s),s.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return s.parent=l,l.child=s,s}else{f=u,h=l,u=s;var d=h.getOwner(),p=f.getOwner();if(!(d!=null&&d.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(p!=null&&p.getGraphManager()==this))throw"Target not in this graph mgr!";if(d==p)return u.isInterGraph=!1,d.add(u,h,f);if(u.isInterGraph=!0,u.source=h,u.target=f,this.edges.indexOf(u)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(u),!(u.source!=null&&u.target!=null))throw"Edge source and/or target is null!";if(!(u.source.edges.indexOf(u)==-1&&u.target.edges.indexOf(u)==-1))throw"Edge already in source and/or target incidency list!";return u.source.edges.push(u),u.target.edges.push(u),u}},a.prototype.remove=function(s){if(s instanceof n){var l=s;if(l.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(l==this.rootGraph||l.parent!=null&&l.parent.graphManager==this))throw"Invalid parent node!";var u=[];u=u.concat(l.getEdges());for(var h,f=u.length,d=0;d=s.getRight()?l[0]+=Math.min(s.getX()-a.getX(),a.getRight()-s.getRight()):s.getX()<=a.getX()&&s.getRight()>=a.getRight()&&(l[0]+=Math.min(a.getX()-s.getX(),s.getRight()-a.getRight())),a.getY()<=s.getY()&&a.getBottom()>=s.getBottom()?l[1]+=Math.min(s.getY()-a.getY(),a.getBottom()-s.getBottom()):s.getY()<=a.getY()&&s.getBottom()>=a.getBottom()&&(l[1]+=Math.min(a.getY()-s.getY(),s.getBottom()-a.getBottom()));var f=Math.abs((s.getCenterY()-a.getCenterY())/(s.getCenterX()-a.getCenterX()));s.getCenterY()===a.getCenterY()&&s.getCenterX()===a.getCenterX()&&(f=1);var d=f*l[0],p=l[1]/f;l[0]d)return l[0]=u,l[1]=m,l[2]=f,l[3]=C,!1;if(hf)return l[0]=p,l[1]=h,l[2]=E,l[3]=d,!1;if(uf?(l[0]=y,l[1]=v,k=!0):(l[0]=g,l[1]=m,k=!0):S===N&&(u>f?(l[0]=p,l[1]=m,k=!0):(l[0]=x,l[1]=v,k=!0)),-O===N?f>u?(l[2]=L,l[3]=C,R=!0):(l[2]=E,l[3]=T,R=!0):O===N&&(f>u?(l[2]=_,l[3]=T,R=!0):(l[2]=A,l[3]=C,R=!0)),k&&R)return!1;if(u>f?h>d?(P=this.getCardinalDirection(S,N,4),F=this.getCardinalDirection(O,N,2)):(P=this.getCardinalDirection(-S,N,3),F=this.getCardinalDirection(-O,N,1)):h>d?(P=this.getCardinalDirection(-S,N,1),F=this.getCardinalDirection(-O,N,3)):(P=this.getCardinalDirection(S,N,2),F=this.getCardinalDirection(O,N,4)),!k)switch(P){case 1:$=m,B=u+-w/N,l[0]=B,l[1]=$;break;case 2:B=x,$=h+b*N,l[0]=B,l[1]=$;break;case 3:$=v,B=u+w/N,l[0]=B,l[1]=$;break;case 4:B=y,$=h+-b*N,l[0]=B,l[1]=$;break}if(!R)switch(F){case 1:W=T,z=f+-D/N,l[2]=z,l[3]=W;break;case 2:z=A,W=d+I*N,l[2]=z,l[3]=W;break;case 3:W=C,z=f+D/N,l[2]=z,l[3]=W;break;case 4:z=L,W=d+-I*N,l[2]=z,l[3]=W;break}}return!1},i.getCardinalDirection=function(a,s,l){return a>s?l:1+l%4},i.getIntersection=function(a,s,l,u){if(u==null)return this.getIntersection2(a,s,l);var h=a.x,f=a.y,d=s.x,p=s.y,m=l.x,g=l.y,y=u.x,v=u.y,x=void 0,b=void 0,w=void 0,_=void 0,T=void 0,E=void 0,L=void 0,C=void 0,A=void 0;return w=p-f,T=h-d,L=d*f-h*p,_=v-g,E=m-y,C=y*g-m*v,A=w*E-_*T,A===0?null:(x=(T*C-E*L)/A,b=(_*L-w*C)/A,new n(x,b))},i.angleOfVector=function(a,s,l,u){var h=void 0;return a!==l?(h=Math.atan((u-s)/(l-a)),l=0){var v=(-m+Math.sqrt(m*m-4*p*g))/(2*p),x=(-m-Math.sqrt(m*m-4*p*g))/(2*p),b=null;return v>=0&&v<=1?[v]:x>=0&&x<=1?[x]:b}else return null},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,t.exports=i},function(t,e,r){"use strict";function n(){}o(n,"IMath"),n.sign=function(i){return i>0?1:i<0?-1:0},n.floor=function(i){return i<0?Math.ceil(i):Math.floor(i)},n.ceil=function(i){return i<0?Math.floor(i):Math.ceil(i)},t.exports=n},function(t,e,r){"use strict";function n(){}o(n,"Integer"),n.MAX_VALUE=2147483647,n.MIN_VALUE=-2147483648,t.exports=n},function(t,e,r){"use strict";var n=function(){function h(f,d){for(var p=0;p"u"?"undefined":n(a);return a==null||s!="object"&&s!="function"},t.exports=i},function(t,e,r){"use strict";function n(m){if(Array.isArray(m)){for(var g=0,y=Array(m.length);g0&&g;){for(w.push(T[0]);w.length>0&&g;){var E=w[0];w.splice(0,1),b.add(E);for(var L=E.getEdges(),x=0;x-1&&T.splice(D,1)}b=new Set,_=new Map}}return m},p.prototype.createDummyNodesForBendpoints=function(m){for(var g=[],y=m.source,v=this.graphManager.calcLowestCommonAncestor(m.source,m.target),x=0;x0){for(var v=this.edgeToDummyNodes.get(y),x=0;x=0&&g.splice(C,1);var A=_.getNeighborsList();A.forEach(function(k){if(y.indexOf(k)<0){var R=v.get(k),S=R-1;S==1&&E.push(k),v.set(k,S)}})}y=y.concat(E),(g.length==1||g.length==2)&&(x=!0,b=g[0])}return b},p.prototype.setGraphManager=function(m){this.graphManager=m},t.exports=p},function(t,e,r){"use strict";function n(){}o(n,"RandomSeed"),n.seed=1,n.x=0,n.nextDouble=function(){return n.x=Math.sin(n.seed++)*1e4,n.x-Math.floor(n.x)},t.exports=n},function(t,e,r){"use strict";var n=r(5);function i(a,s){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}o(i,"Transform"),i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(a){this.lworldOrgX=a},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(a){this.lworldOrgY=a},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(a){this.lworldExtX=a},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(a){this.lworldExtY=a},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(a){this.ldeviceOrgX=a},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(a){this.ldeviceOrgY=a},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(a){this.ldeviceExtX=a},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(a){this.ldeviceExtY=a},i.prototype.transformX=function(a){var s=0,l=this.lworldExtX;return l!=0&&(s=this.ldeviceOrgX+(a-this.lworldOrgX)*this.ldeviceExtX/l),s},i.prototype.transformY=function(a){var s=0,l=this.lworldExtY;return l!=0&&(s=this.ldeviceOrgY+(a-this.lworldOrgY)*this.ldeviceExtY/l),s},i.prototype.inverseTransformX=function(a){var s=0,l=this.ldeviceExtX;return l!=0&&(s=this.lworldOrgX+(a-this.ldeviceOrgX)*this.lworldExtX/l),s},i.prototype.inverseTransformY=function(a){var s=0,l=this.ldeviceExtY;return l!=0&&(s=this.lworldOrgY+(a-this.ldeviceOrgY)*this.lworldExtY/l),s},i.prototype.inverseTransformPoint=function(a){var s=new n(this.inverseTransformX(a.x),this.inverseTransformY(a.y));return s},t.exports=i},function(t,e,r){"use strict";function n(d){if(Array.isArray(d)){for(var p=0,m=Array(d.length);pa.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*a.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-a.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT_INCREMENTAL):(d>a.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(a.COOLING_ADAPTATION_FACTOR,1-(d-a.ADAPTATION_LOWER_NODE_LIMIT)/(a.ADAPTATION_UPPER_NODE_LIMIT-a.ADAPTATION_LOWER_NODE_LIMIT)*(1-a.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=a.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*a.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},h.prototype.calcSpringForces=function(){for(var d=this.getAllEdges(),p,m=0;m0&&arguments[0]!==void 0?arguments[0]:!0,p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,m,g,y,v,x=this.getAllNodes(),b;if(this.useFRGridVariant)for(this.totalIterations%a.GRID_CALCULATION_CHECK_PERIOD==1&&d&&this.updateGrid(),b=new Set,m=0;mw||b>w)&&(d.gravitationForceX=-this.gravityConstant*y,d.gravitationForceY=-this.gravityConstant*v)):(w=p.getEstimatedSize()*this.compoundGravityRangeFactor,(x>w||b>w)&&(d.gravitationForceX=-this.gravityConstant*y*this.compoundGravityConstant,d.gravitationForceY=-this.gravityConstant*v*this.compoundGravityConstant))},h.prototype.isConverged=function(){var d,p=!1;return this.totalIterations>this.maxIterations/3&&(p=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),d=this.totalDisplacement=x.length||w>=x[0].length)){for(var _=0;_h},"_defaultCompareFunction")}]),l}();t.exports=s},function(t,e,r){"use strict";function n(){}o(n,"SVD"),n.svd=function(i){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=i.length,this.n=i[0].length;var a=Math.min(this.m,this.n);this.s=function(dt){for(var Xe=[];dt-- >0;)Xe.push(0);return Xe}(Math.min(this.m+1,this.n)),this.U=function(dt){var Xe=o(function ct(Lt){if(Lt.length==0)return 0;for(var Rt=[],zt=0;zt0;)Xe.push(0);return Xe}(this.n),l=function(dt){for(var Xe=[];dt-- >0;)Xe.push(0);return Xe}(this.m),u=!0,h=!0,f=Math.min(this.m-1,this.n),d=Math.max(0,Math.min(this.n-2,this.m)),p=0;p=0;N--)if(this.s[N]!==0){for(var P=N+1;P=0;K--){if(function(dt,Xe){return dt&&Xe}(K0;){var ce=void 0,te=void 0;for(ce=R-2;ce>=-1&&ce!==-1;ce--)if(Math.abs(s[ce])<=ue+ae*(Math.abs(this.s[ce])+Math.abs(this.s[ce+1]))){s[ce]=0;break}if(ce===R-2)te=4;else{var De=void 0;for(De=R-1;De>=ce&&De!==ce;De--){var oe=(De!==R?Math.abs(s[De]):0)+(De!==ce+1?Math.abs(s[De-1]):0);if(Math.abs(this.s[De])<=ue+ae*oe){this.s[De]=0;break}}De===ce?te=3:De===R-1?te=1:(te=2,ce=De)}switch(ce++,te){case 1:{var ke=s[R-2];s[R-2]=0;for(var Fe=R-2;Fe>=ce;Fe--){var Be=n.hypot(this.s[Fe],ke),Ve=this.s[Fe]/Be,Ge=ke/Be;if(this.s[Fe]=Be,Fe!==ce&&(ke=-Ge*s[Fe-1],s[Fe-1]=Ve*s[Fe-1]),h)for(var He=0;He=this.s[ce+1]);){var rt=this.s[ce];if(this.s[ce]=this.s[ce+1],this.s[ce+1]=rt,h&&ceMath.abs(a)?(s=a/i,s=Math.abs(i)*Math.sqrt(1+s*s)):a!=0?(s=i/a,s=Math.abs(a)*Math.sqrt(1+s*s)):s=0,s},t.exports=n},function(t,e,r){"use strict";var n=function(){function s(l,u){for(var h=0;h2&&arguments[2]!==void 0?arguments[2]:1,f=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;i(this,s),this.sequence1=l,this.sequence2=u,this.match_score=h,this.mismatch_penalty=f,this.gap_penalty=d,this.iMax=l.length+1,this.jMax=u.length+1,this.grid=new Array(this.iMax);for(var p=0;p=0;l--){var u=this.listeners[l];u.event===a&&u.callback===s&&this.listeners.splice(l,1)}},i.emit=function(a,s){for(var l=0;l{"use strict";o(function(e,r){typeof xb=="object"&&typeof fF=="object"?fF.exports=r(hF()):typeof define=="function"&&define.amd?define(["layout-base"],r):typeof xb=="object"?xb.coseBase=r(hF()):e.coseBase=r(e.layoutBase)},"webpackUniversalModuleDefinition")(xb,function(t){return(()=>{"use strict";var e={45:(a,s,l)=>{var u={};u.layoutBase=l(551),u.CoSEConstants=l(806),u.CoSEEdge=l(767),u.CoSEGraph=l(880),u.CoSEGraphManager=l(578),u.CoSELayout=l(765),u.CoSENode=l(991),u.ConstraintHandler=l(902),a.exports=u},806:(a,s,l)=>{var u=l(551).FDLayoutConstants;function h(){}o(h,"CoSEConstants");for(var f in u)h[f]=u[f];h.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,h.DEFAULT_RADIAL_SEPARATION=u.DEFAULT_EDGE_LENGTH,h.DEFAULT_COMPONENT_SEPERATION=60,h.TILE=!0,h.TILING_PADDING_VERTICAL=10,h.TILING_PADDING_HORIZONTAL=10,h.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,h.ENFORCE_CONSTRAINTS=!0,h.APPLY_LAYOUT=!0,h.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,h.TREE_REDUCTION_ON_INCREMENTAL=!0,h.PURE_INCREMENTAL=h.DEFAULT_INCREMENTAL,a.exports=h},767:(a,s,l)=>{var u=l(551).FDLayoutEdge;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEEdge"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},880:(a,s,l)=>{var u=l(551).LGraph;function h(d,p,m){u.call(this,d,p,m)}o(h,"CoSEGraph"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},578:(a,s,l)=>{var u=l(551).LGraphManager;function h(d){u.call(this,d)}o(h,"CoSEGraphManager"),h.prototype=Object.create(u.prototype);for(var f in u)h[f]=u[f];a.exports=h},765:(a,s,l)=>{var u=l(551).FDLayout,h=l(578),f=l(880),d=l(991),p=l(767),m=l(806),g=l(902),y=l(551).FDLayoutConstants,v=l(551).LayoutConstants,x=l(551).Point,b=l(551).PointD,w=l(551).DimensionD,_=l(551).Layout,T=l(551).Integer,E=l(551).IGeometry,L=l(551).LGraph,C=l(551).Transform,A=l(551).LinkedList;function I(){u.call(this),this.toBeTiled={},this.constraints={}}o(I,"CoSELayout"),I.prototype=Object.create(u.prototype);for(var D in u)I[D]=u[D];I.prototype.newGraphManager=function(){var k=new h(this);return this.graphManager=k,k},I.prototype.newGraph=function(k){return new f(null,this.graphManager,k)},I.prototype.newNode=function(k){return new d(this.graphManager,k)},I.prototype.newEdge=function(k){return new p(null,null,k)},I.prototype.initParameters=function(){u.prototype.initParameters.call(this,arguments),this.isSubLayout||(m.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=m.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=m.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=y.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=y.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=y.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},I.prototype.initSpringEmbedder=function(){u.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/y.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},I.prototype.layout=function(){var k=v.DEFAULT_CREATE_BENDS_AS_NEEDED;return k&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},I.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(m.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var R=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(P){return R.has(P)});this.graphManager.setAllNodesToApplyGravitation(S)}}else{var k=this.getFlatForest();if(k.length>0)this.positionNodesRadially(k);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var R=new Set(this.getAllNodes()),S=this.nodesWithGravity.filter(function(O){return R.has(O)});this.graphManager.setAllNodesToApplyGravitation(S),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(g.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),m.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},I.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%y.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var k=new Set(this.getAllNodes()),R=this.nodesWithGravity.filter(function(N){return k.has(N)});this.graphManager.setAllNodesToApplyGravitation(R),this.graphManager.updateBounds(),this.updateGrid(),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),m.PURE_INCREMENTAL?this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=y.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var S=!this.isTreeGrowing&&!this.isGrowthFinished,O=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(S,O),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},I.prototype.getPositionsData=function(){for(var k=this.graphManager.getAllNodes(),R={},S=0;S0&&this.updateDisplacements();for(var S=0;S0&&(O.fixedNodeWeight=P)}}if(this.constraints.relativePlacementConstraint){var F=new Map,B=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(ee){k.fixedNodesOnHorizontal.add(ee),k.fixedNodesOnVertical.add(ee)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var $=this.constraints.alignmentConstraint.vertical,S=0;S<$.length;S++)this.dummyToNodeForVerticalAlignment.set("dummy"+S,[]),$[S].forEach(function(J){F.set(J,"dummy"+S),k.dummyToNodeForVerticalAlignment.get("dummy"+S).push(J),k.fixedNodeSet.has(J)&&k.fixedNodesOnHorizontal.add("dummy"+S)});if(this.constraints.alignmentConstraint.horizontal)for(var z=this.constraints.alignmentConstraint.horizontal,S=0;S=2*ee.length/3;q--)J=Math.floor(Math.random()*(q+1)),H=ee[q],ee[q]=ee[J],ee[J]=H;return ee},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(ee){if(ee.left){var J=F.has(ee.left)?F.get(ee.left):ee.left,H=F.has(ee.right)?F.get(ee.right):ee.right;k.nodesInRelativeHorizontal.includes(J)||(k.nodesInRelativeHorizontal.push(J),k.nodeToRelativeConstraintMapHorizontal.set(J,[]),k.dummyToNodeForVerticalAlignment.has(J)?k.nodeToTempPositionMapHorizontal.set(J,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(J)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(J,k.idToNodeMap.get(J).getCenterX())),k.nodesInRelativeHorizontal.includes(H)||(k.nodesInRelativeHorizontal.push(H),k.nodeToRelativeConstraintMapHorizontal.set(H,[]),k.dummyToNodeForVerticalAlignment.has(H)?k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(k.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):k.nodeToTempPositionMapHorizontal.set(H,k.idToNodeMap.get(H).getCenterX())),k.nodeToRelativeConstraintMapHorizontal.get(J).push({right:H,gap:ee.gap}),k.nodeToRelativeConstraintMapHorizontal.get(H).push({left:J,gap:ee.gap})}else{var q=B.has(ee.top)?B.get(ee.top):ee.top,Z=B.has(ee.bottom)?B.get(ee.bottom):ee.bottom;k.nodesInRelativeVertical.includes(q)||(k.nodesInRelativeVertical.push(q),k.nodeToRelativeConstraintMapVertical.set(q,[]),k.dummyToNodeForHorizontalAlignment.has(q)?k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(q)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(q,k.idToNodeMap.get(q).getCenterY())),k.nodesInRelativeVertical.includes(Z)||(k.nodesInRelativeVertical.push(Z),k.nodeToRelativeConstraintMapVertical.set(Z,[]),k.dummyToNodeForHorizontalAlignment.has(Z)?k.nodeToTempPositionMapVertical.set(Z,k.idToNodeMap.get(k.dummyToNodeForHorizontalAlignment.get(Z)[0]).getCenterY()):k.nodeToTempPositionMapVertical.set(Z,k.idToNodeMap.get(Z).getCenterY())),k.nodeToRelativeConstraintMapVertical.get(q).push({bottom:Z,gap:ee.gap}),k.nodeToRelativeConstraintMapVertical.get(Z).push({top:q,gap:ee.gap})}});else{var W=new Map,j=new Map;this.constraints.relativePlacementConstraint.forEach(function(ee){if(ee.left){var J=F.has(ee.left)?F.get(ee.left):ee.left,H=F.has(ee.right)?F.get(ee.right):ee.right;W.has(J)?W.get(J).push(H):W.set(J,[H]),W.has(H)?W.get(H).push(J):W.set(H,[J])}else{var q=B.has(ee.top)?B.get(ee.top):ee.top,Z=B.has(ee.bottom)?B.get(ee.bottom):ee.bottom;j.has(q)?j.get(q).push(Z):j.set(q,[Z]),j.has(Z)?j.get(Z).push(q):j.set(Z,[q])}});var K=o(function(J,H){var q=[],Z=[],ae=new A,ue=new Set,ce=0;return J.forEach(function(te,De){if(!ue.has(De)){q[ce]=[],Z[ce]=!1;var oe=De;for(ae.push(oe),ue.add(oe),q[ce].push(oe);ae.length!=0;){oe=ae.shift(),H.has(oe)&&(Z[ce]=!0);var ke=J.get(oe);ke.forEach(function(Fe){ue.has(Fe)||(ae.push(Fe),ue.add(Fe),q[ce].push(Fe))})}ce++}}),{components:q,isFixed:Z}},"constructComponents"),ie=K(W,k.fixedNodesOnHorizontal);this.componentsOnHorizontal=ie.components,this.fixedComponentsOnHorizontal=ie.isFixed;var Q=K(j,k.fixedNodesOnVertical);this.componentsOnVertical=Q.components,this.fixedComponentsOnVertical=Q.isFixed}}},I.prototype.updateDisplacements=function(){var k=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(Q){var ee=k.idToNodeMap.get(Q.nodeId);ee.displacementX=0,ee.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var R=this.constraints.alignmentConstraint.vertical,S=0;S1){var B;for(B=0;BO&&(O=Math.floor(F.y)),P=Math.floor(F.x+m.DEFAULT_COMPONENT_SEPERATION)}this.transform(new b(v.WORLD_CENTER_X-F.x/2,v.WORLD_CENTER_Y-F.y/2))},I.radialLayout=function(k,R,S){var O=Math.max(this.maxDiagonalInTree(k),m.DEFAULT_RADIAL_SEPARATION);I.branchRadialLayout(R,null,0,359,0,O);var N=L.calculateBounds(k),P=new C;P.setDeviceOrgX(N.getMinX()),P.setDeviceOrgY(N.getMinY()),P.setWorldOrgX(S.x),P.setWorldOrgY(S.y);for(var F=0;F1;){var q=H[0];H.splice(0,1);var Z=K.indexOf(q);Z>=0&&K.splice(Z,1),ee--,ie--}R!=null?J=(K.indexOf(H[0])+1)%ee:J=0;for(var ae=Math.abs(O-S)/ie,ue=J;Q!=ie;ue=++ue%ee){var ce=K[ue].getOtherEnd(k);if(ce!=R){var te=(S+Q*ae)%360,De=(te+ae)%360;I.branchRadialLayout(ce,k,te,De,N+P,P),Q++}}},I.maxDiagonalInTree=function(k){for(var R=T.MIN_VALUE,S=0;SR&&(R=N)}return R},I.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},I.prototype.groupZeroDegreeMembers=function(){var k=this,R={};this.memberGroups={},this.idToDummyNode={};for(var S=[],O=this.graphManager.getAllNodes(),N=0;N"u"&&(R[B]=[]),R[B]=R[B].concat(P)}Object.keys(R).forEach(function($){if(R[$].length>1){var z="DummyCompound_"+$;k.memberGroups[z]=R[$];var W=R[$][0].getParent(),j=new d(k.graphManager);j.id=z,j.paddingLeft=W.paddingLeft||0,j.paddingRight=W.paddingRight||0,j.paddingBottom=W.paddingBottom||0,j.paddingTop=W.paddingTop||0,k.idToDummyNode[z]=j;var K=k.getGraphManager().add(k.newGraph(),j),ie=W.getChild();ie.add(j);for(var Q=0;QN?(O.rect.x-=(O.labelWidth-N)/2,O.setWidth(O.labelWidth),O.labelMarginLeft=(O.labelWidth-N)/2):O.labelPosHorizontal=="right"&&O.setWidth(N+O.labelWidth)),O.labelHeight&&(O.labelPosVertical=="top"?(O.rect.y-=O.labelHeight,O.setHeight(P+O.labelHeight),O.labelMarginTop=O.labelHeight):O.labelPosVertical=="center"&&O.labelHeight>P?(O.rect.y-=(O.labelHeight-P)/2,O.setHeight(O.labelHeight),O.labelMarginTop=(O.labelHeight-P)/2):O.labelPosVertical=="bottom"&&O.setHeight(P+O.labelHeight))}})},I.prototype.repopulateCompounds=function(){for(var k=this.compoundOrder.length-1;k>=0;k--){var R=this.compoundOrder[k],S=R.id,O=R.paddingLeft,N=R.paddingTop,P=R.labelMarginLeft,F=R.labelMarginTop;this.adjustLocations(this.tiledMemberPack[S],R.rect.x,R.rect.y,O,N,P,F)}},I.prototype.repopulateZeroDegreeMembers=function(){var k=this,R=this.tiledZeroDegreePack;Object.keys(R).forEach(function(S){var O=k.idToDummyNode[S],N=O.paddingLeft,P=O.paddingTop,F=O.labelMarginLeft,B=O.labelMarginTop;k.adjustLocations(R[S],O.rect.x,O.rect.y,N,P,F,B)})},I.prototype.getToBeTiled=function(k){var R=k.id;if(this.toBeTiled[R]!=null)return this.toBeTiled[R];var S=k.getChild();if(S==null)return this.toBeTiled[R]=!1,!1;for(var O=S.getNodes(),N=0;N0)return this.toBeTiled[R]=!1,!1;if(P.getChild()==null){this.toBeTiled[P.id]=!1;continue}if(!this.getToBeTiled(P))return this.toBeTiled[R]=!1,!1}return this.toBeTiled[R]=!0,!0},I.prototype.getNodeDegree=function(k){for(var R=k.id,S=k.getEdges(),O=0,N=0;NW&&(W=K.rect.height)}S+=W+k.verticalPadding}},I.prototype.tileCompoundMembers=function(k,R){var S=this;this.tiledMemberPack=[],Object.keys(k).forEach(function(O){var N=R[O];if(S.tiledMemberPack[O]=S.tileNodes(k[O],N.paddingLeft+N.paddingRight),N.rect.width=S.tiledMemberPack[O].width,N.rect.height=S.tiledMemberPack[O].height,N.setCenter(S.tiledMemberPack[O].centerX,S.tiledMemberPack[O].centerY),N.labelMarginLeft=0,N.labelMarginTop=0,m.NODE_DIMENSIONS_INCLUDE_LABELS){var P=N.rect.width,F=N.rect.height;N.labelWidth&&(N.labelPosHorizontal=="left"?(N.rect.x-=N.labelWidth,N.setWidth(P+N.labelWidth),N.labelMarginLeft=N.labelWidth):N.labelPosHorizontal=="center"&&N.labelWidth>P?(N.rect.x-=(N.labelWidth-P)/2,N.setWidth(N.labelWidth),N.labelMarginLeft=(N.labelWidth-P)/2):N.labelPosHorizontal=="right"&&N.setWidth(P+N.labelWidth)),N.labelHeight&&(N.labelPosVertical=="top"?(N.rect.y-=N.labelHeight,N.setHeight(F+N.labelHeight),N.labelMarginTop=N.labelHeight):N.labelPosVertical=="center"&&N.labelHeight>F?(N.rect.y-=(N.labelHeight-F)/2,N.setHeight(N.labelHeight),N.labelMarginTop=(N.labelHeight-F)/2):N.labelPosVertical=="bottom"&&N.setHeight(F+N.labelHeight))}})},I.prototype.tileNodes=function(k,R){var S=this.tileNodesByFavoringDim(k,R,!0),O=this.tileNodesByFavoringDim(k,R,!1),N=this.getOrgRatio(S),P=this.getOrgRatio(O),F;return PB&&(B=Q.getWidth())});var $=P/N,z=F/N,W=Math.pow(S-O,2)+4*($+O)*(z+S)*N,j=(O-S+Math.sqrt(W))/(2*($+O)),K;R?(K=Math.ceil(j),K==j&&K++):K=Math.floor(j);var ie=K*($+O)-O;return B>ie&&(ie=B),ie+=O*2,ie},I.prototype.tileNodesByFavoringDim=function(k,R,S){var O=m.TILING_PADDING_VERTICAL,N=m.TILING_PADDING_HORIZONTAL,P=m.TILING_COMPARE_BY,F={rows:[],rowWidth:[],rowHeight:[],width:0,height:R,verticalPadding:O,horizontalPadding:N,centerX:0,centerY:0};P&&(F.idealRowWidth=this.calcIdealRowWidth(k,S));var B=o(function(ee){return ee.rect.width*ee.rect.height},"getNodeArea"),$=o(function(ee,J){return B(J)-B(ee)},"areaCompareFcn");k.sort(function(Q,ee){var J=$;return F.idealRowWidth?(J=P,J(Q.id,ee.id)):J(Q,ee)});for(var z=0,W=0,j=0;j0&&(F+=k.horizontalPadding),k.rowWidth[S]=F,k.width0&&(B+=k.verticalPadding);var $=0;B>k.rowHeight[S]&&($=k.rowHeight[S],k.rowHeight[S]=B,$=k.rowHeight[S]-$),k.height+=$,k.rows[S].push(R)},I.prototype.getShortestRowIndex=function(k){for(var R=-1,S=Number.MAX_VALUE,O=0;OS&&(R=O,S=k.rowWidth[O]);return R},I.prototype.canAddHorizontal=function(k,R,S){if(k.idealRowWidth){var O=k.rows.length-1,N=k.rowWidth[O];return N+R+k.horizontalPadding<=k.idealRowWidth}var P=this.getShortestRowIndex(k);if(P<0)return!0;var F=k.rowWidth[P];if(F+k.horizontalPadding+R<=k.width)return!0;var B=0;k.rowHeight[P]0&&(B=S+k.verticalPadding-k.rowHeight[P]);var $;k.width-F>=R+k.horizontalPadding?$=(k.height+B)/(F+R+k.horizontalPadding):$=(k.height+B)/k.width,B=S+k.verticalPadding;var z;return k.widthP&&R!=S){O.splice(-1,1),k.rows[S].push(N),k.rowWidth[R]=k.rowWidth[R]-P,k.rowWidth[S]=k.rowWidth[S]+P,k.width=k.rowWidth[instance.getLongestRowIndex(k)];for(var F=Number.MIN_VALUE,B=0;BF&&(F=O[B].height);R>0&&(F+=k.verticalPadding);var $=k.rowHeight[R]+k.rowHeight[S];k.rowHeight[R]=F,k.rowHeight[S]0)for(var ie=N;ie<=P;ie++)K[0]+=this.grid[ie][F-1].length+this.grid[ie][F].length-1;if(P0)for(var ie=F;ie<=B;ie++)K[3]+=this.grid[N-1][ie].length+this.grid[N][ie].length-1;for(var Q=T.MAX_VALUE,ee,J,H=0;H{var u=l(551).FDLayoutNode,h=l(551).IMath;function f(p,m,g,y){u.call(this,p,m,g,y)}o(f,"CoSENode"),f.prototype=Object.create(u.prototype);for(var d in u)f[d]=u[d];f.prototype.calculateDisplacement=function(){var p=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=p.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=p.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementX=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementX)),Math.abs(this.displacementY)>p.coolingFactor*p.maxNodeDisplacement&&(this.displacementY=p.coolingFactor*p.maxNodeDisplacement*h.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},f.prototype.propogateDisplacementToChildren=function(p,m){for(var g=this.getChild().getNodes(),y,v=0;v{function u(g){if(Array.isArray(g)){for(var y=0,v=Array(g.length);y0){var Tt=0;Ye.forEach(function(rt){Te=="horizontal"?(me.set(rt,x.has(rt)?b[x.get(rt)]:Ee.get(rt)),Tt+=me.get(rt)):(me.set(rt,x.has(rt)?w[x.get(rt)]:Ee.get(rt)),Tt+=me.get(rt))}),Tt=Tt/Ye.length,vt.forEach(function(rt){se.has(rt)||me.set(rt,Tt)})}else{var $e=0;vt.forEach(function(rt){Te=="horizontal"?$e+=x.has(rt)?b[x.get(rt)]:Ee.get(rt):$e+=x.has(rt)?w[x.get(rt)]:Ee.get(rt)}),$e=$e/vt.length,vt.forEach(function(rt){me.set(rt,$e)})}});for(var tt=o(function(){var Ye=Re.shift(),Tt=U.get(Ye);Tt.forEach(function($e){if(me.get($e.id)rt&&(rt=Rt),zt<$e&&($e=zt),zt>ft&&(ft=zt)}}catch(yt){er=!0,dt=yt}finally{try{!kt&&Xe.return&&Xe.return()}finally{if(er)throw dt}}var Xn=(Tt+rt)/2-($e+ft)/2,or=!0,hn=!1,Tn=void 0;try{for(var Ur=vt[Symbol.iterator](),ri;!(or=(ri=Ur.next()).done);or=!0){var Mn=ri.value;me.set(Mn,me.get(Mn)+Xn)}}catch(yt){hn=!0,Tn=yt}finally{try{!or&&Ur.return&&Ur.return()}finally{if(hn)throw Tn}}})}return me},"findAppropriatePositionForRelativePlacement"),D=o(function(U){var Te=0,se=0,Ee=0,Ae=0;if(U.forEach(function(We){We.left?b[x.get(We.left)]-b[x.get(We.right)]>=0?Te++:se++:w[x.get(We.top)]-w[x.get(We.bottom)]>=0?Ee++:Ae++}),Te>se&&Ee>Ae)for(var Pe=0;Pese)for(var Me=0;MeAe)for(var me=0;me1)y.fixedNodeConstraint.forEach(function(ye,U){O[U]=[ye.position.x,ye.position.y],N[U]=[b[x.get(ye.nodeId)],w[x.get(ye.nodeId)]]}),P=!0;else if(y.alignmentConstraint)(function(){var ye=0;if(y.alignmentConstraint.vertical){for(var U=y.alignmentConstraint.vertical,Te=o(function(me){var We=new Set;U[me].forEach(function(gt){We.add(gt)});var Re=new Set([].concat(u(We)).filter(function(gt){return B.has(gt)})),tt=void 0;Re.size>0?tt=b[x.get(Re.values().next().value)]:tt=A(We).x,U[me].forEach(function(gt){O[ye]=[tt,w[x.get(gt)]],N[ye]=[b[x.get(gt)],w[x.get(gt)]],ye++})},"_loop2"),se=0;se0?tt=b[x.get(Re.values().next().value)]:tt=A(We).y,Ee[me].forEach(function(gt){O[ye]=[b[x.get(gt)],tt],N[ye]=[b[x.get(gt)],w[x.get(gt)]],ye++})},"_loop3"),Pe=0;Pej&&(j=W[ie].length,K=ie);if(j0){var Ve={x:0,y:0};y.fixedNodeConstraint.forEach(function(ye,U){var Te={x:b[x.get(ye.nodeId)],y:w[x.get(ye.nodeId)]},se=ye.position,Ee=C(se,Te);Ve.x+=Ee.x,Ve.y+=Ee.y}),Ve.x/=y.fixedNodeConstraint.length,Ve.y/=y.fixedNodeConstraint.length,b.forEach(function(ye,U){b[U]+=Ve.x}),w.forEach(function(ye,U){w[U]+=Ve.y}),y.fixedNodeConstraint.forEach(function(ye){b[x.get(ye.nodeId)]=ye.position.x,w[x.get(ye.nodeId)]=ye.position.y})}if(y.alignmentConstraint){if(y.alignmentConstraint.vertical)for(var Ge=y.alignmentConstraint.vertical,He=o(function(U){var Te=new Set;Ge[U].forEach(function(Ae){Te.add(Ae)});var se=new Set([].concat(u(Te)).filter(function(Ae){return B.has(Ae)})),Ee=void 0;se.size>0?Ee=b[x.get(se.values().next().value)]:Ee=A(Te).x,Te.forEach(function(Ae){B.has(Ae)||(b[x.get(Ae)]=Ee)})},"_loop4"),xe=0;xe0?Ee=w[x.get(se.values().next().value)]:Ee=A(Te).y,Te.forEach(function(Ae){B.has(Ae)||(w[x.get(Ae)]=Ee)})},"_loop5"),he=0;he{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(45);return i})()})});var c2e=Ni((bb,pF)=>{"use strict";o(function(e,r){typeof bb=="object"&&typeof pF=="object"?pF.exports=r(dF()):typeof define=="function"&&define.amd?define(["cose-base"],r):typeof bb=="object"?bb.cytoscapeFcose=r(dF()):e.cytoscapeFcose=r(e.coseBase)},"webpackUniversalModuleDefinition")(bb,function(t){return(()=>{"use strict";var e={658:a=>{a.exports=Object.assign!=null?Object.assign.bind(Object):function(s){for(var l=arguments.length,u=Array(l>1?l-1:0),h=1;h{var u=function(){function d(p,m){var g=[],y=!0,v=!1,x=void 0;try{for(var b=p[Symbol.iterator](),w;!(y=(w=b.next()).done)&&(g.push(w.value),!(m&&g.length===m));y=!0);}catch(_){v=!0,x=_}finally{try{!y&&b.return&&b.return()}finally{if(v)throw x}}return g}return o(d,"sliceIterator"),function(p,m){if(Array.isArray(p))return p;if(Symbol.iterator in Object(p))return d(p,m);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=l(140).layoutBase.LinkedList,f={};f.getTopMostNodes=function(d){for(var p={},m=0;m0&&P.merge(z)});for(var F=0;F1){w=x[0],_=w.connectedEdges().length,x.forEach(function(N){N.connectedEdges().length<_&&(_=N.connectedEdges().length,w=N)}),L.push(w.id());var O=d.collection();O.merge(x[0]),x.forEach(function(N){O.merge(N)}),x=[],m=m.difference(O),E++}},"_loop");do A();while(!T);return g&&L.length>0&&g.set("dummy"+(g.size+1),L),C},f.relocateComponent=function(d,p,m){if(!m.fixedNodeConstraint){var g=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY,v=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY;if(m.quality=="draft"){var b=!0,w=!1,_=void 0;try{for(var T=p.nodeIndexes[Symbol.iterator](),E;!(b=(E=T.next()).done);b=!0){var L=E.value,C=u(L,2),A=C[0],I=C[1],D=m.cy.getElementById(A);if(D){var k=D.boundingBox(),R=p.xCoords[I]-k.w/2,S=p.xCoords[I]+k.w/2,O=p.yCoords[I]-k.h/2,N=p.yCoords[I]+k.h/2;Ry&&(y=S),Ox&&(x=N)}}}catch(z){w=!0,_=z}finally{try{!b&&T.return&&T.return()}finally{if(w)throw _}}var P=d.x-(y+g)/2,F=d.y-(x+v)/2;p.xCoords=p.xCoords.map(function(z){return z+P}),p.yCoords=p.yCoords.map(function(z){return z+F})}else{Object.keys(p).forEach(function(z){var W=p[z],j=W.getRect().x,K=W.getRect().x+W.getRect().width,ie=W.getRect().y,Q=W.getRect().y+W.getRect().height;jy&&(y=K),iex&&(x=Q)});var B=d.x-(y+g)/2,$=d.y-(x+v)/2;Object.keys(p).forEach(function(z){var W=p[z];W.setCenter(W.getCenterX()+B,W.getCenterY()+$)})}}},f.calcBoundingBox=function(d,p,m,g){for(var y=Number.MAX_SAFE_INTEGER,v=Number.MIN_SAFE_INTEGER,x=Number.MAX_SAFE_INTEGER,b=Number.MIN_SAFE_INTEGER,w=void 0,_=void 0,T=void 0,E=void 0,L=d.descendants().not(":parent"),C=L.length,A=0;Aw&&(y=w),v<_&&(v=_),x>T&&(x=T),b{var u=l(548),h=l(140).CoSELayout,f=l(140).CoSENode,d=l(140).layoutBase.PointD,p=l(140).layoutBase.DimensionD,m=l(140).layoutBase.LayoutConstants,g=l(140).layoutBase.FDLayoutConstants,y=l(140).CoSEConstants,v=o(function(b,w){var _=b.cy,T=b.eles,E=T.nodes(),L=T.edges(),C=void 0,A=void 0,I=void 0,D={};b.randomize&&(C=w.nodeIndexes,A=w.xCoords,I=w.yCoords);var k=o(function(z){return typeof z=="function"},"isFn"),R=o(function(z,W){return k(z)?z(W):z},"optFn"),S=u.calcParentsWithoutChildren(_,T),O=o(function $(z,W,j,K){for(var ie=W.length,Q=0;Q0){var ae=void 0;ae=j.getGraphManager().add(j.newGraph(),H),$(ae,J,j,K)}}},"processChildrenList"),N=o(function(z,W,j){for(var K=0,ie=0,Q=0;Q0?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=K/ie:k(b.idealEdgeLength)?y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=50:y.DEFAULT_EDGE_LENGTH=g.DEFAULT_EDGE_LENGTH=b.idealEdgeLength,y.MIN_REPULSION_DIST=g.MIN_REPULSION_DIST=g.DEFAULT_EDGE_LENGTH/10,y.DEFAULT_RADIAL_SEPARATION=g.DEFAULT_EDGE_LENGTH)},"processEdges"),P=o(function(z,W){W.fixedNodeConstraint&&(z.constraints.fixedNodeConstraint=W.fixedNodeConstraint),W.alignmentConstraint&&(z.constraints.alignmentConstraint=W.alignmentConstraint),W.relativePlacementConstraint&&(z.constraints.relativePlacementConstraint=W.relativePlacementConstraint)},"processConstraints");b.nestingFactor!=null&&(y.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=g.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=b.nestingFactor),b.gravity!=null&&(y.DEFAULT_GRAVITY_STRENGTH=g.DEFAULT_GRAVITY_STRENGTH=b.gravity),b.numIter!=null&&(y.MAX_ITERATIONS=g.MAX_ITERATIONS=b.numIter),b.gravityRange!=null&&(y.DEFAULT_GRAVITY_RANGE_FACTOR=g.DEFAULT_GRAVITY_RANGE_FACTOR=b.gravityRange),b.gravityCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_STRENGTH=g.DEFAULT_COMPOUND_GRAVITY_STRENGTH=b.gravityCompound),b.gravityRangeCompound!=null&&(y.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=g.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=b.gravityRangeCompound),b.initialEnergyOnIncremental!=null&&(y.DEFAULT_COOLING_FACTOR_INCREMENTAL=g.DEFAULT_COOLING_FACTOR_INCREMENTAL=b.initialEnergyOnIncremental),b.tilingCompareBy!=null&&(y.TILING_COMPARE_BY=b.tilingCompareBy),b.quality=="proof"?m.QUALITY=2:m.QUALITY=0,y.NODE_DIMENSIONS_INCLUDE_LABELS=g.NODE_DIMENSIONS_INCLUDE_LABELS=m.NODE_DIMENSIONS_INCLUDE_LABELS=b.nodeDimensionsIncludeLabels,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!b.randomize,y.ANIMATE=g.ANIMATE=m.ANIMATE=b.animate,y.TILE=b.tile,y.TILING_PADDING_VERTICAL=typeof b.tilingPaddingVertical=="function"?b.tilingPaddingVertical.call():b.tilingPaddingVertical,y.TILING_PADDING_HORIZONTAL=typeof b.tilingPaddingHorizontal=="function"?b.tilingPaddingHorizontal.call():b.tilingPaddingHorizontal,y.DEFAULT_INCREMENTAL=g.DEFAULT_INCREMENTAL=m.DEFAULT_INCREMENTAL=!0,y.PURE_INCREMENTAL=!b.randomize,m.DEFAULT_UNIFORM_LEAF_NODE_SIZES=b.uniformNodeDimensions,b.step=="transformed"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!1),b.step=="enforced"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!1),b.step=="cose"&&(y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!1,y.APPLY_LAYOUT=!0),b.step=="all"&&(b.randomize?y.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:y.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,y.ENFORCE_CONSTRAINTS=!0,y.APPLY_LAYOUT=!0),b.fixedNodeConstraint||b.alignmentConstraint||b.relativePlacementConstraint?y.TREE_REDUCTION_ON_INCREMENTAL=!1:y.TREE_REDUCTION_ON_INCREMENTAL=!0;var F=new h,B=F.newGraphManager();return O(B.addRoot(),u.getTopMostNodes(E),F,b),N(F,B,L),P(F,b),F.runLayout(),D},"coseLayout");a.exports={coseLayout:v}},212:(a,s,l)=>{var u=function(){function b(w,_){for(var T=0;T<_.length;T++){var E=_[T];E.enumerable=E.enumerable||!1,E.configurable=!0,"value"in E&&(E.writable=!0),Object.defineProperty(w,E.key,E)}}return o(b,"defineProperties"),function(w,_,T){return _&&b(w.prototype,_),T&&b(w,T),w}}();function h(b,w){if(!(b instanceof w))throw new TypeError("Cannot call a class as a function")}o(h,"_classCallCheck");var f=l(658),d=l(548),p=l(657),m=p.spectralLayout,g=l(816),y=g.coseLayout,v=Object.freeze({quality:"default",randomize:!0,animate:!0,animationDuration:1e3,animationEasing:void 0,fit:!0,padding:30,nodeDimensionsIncludeLabels:!1,uniformNodeDimensions:!1,packComponents:!0,step:"all",samplingType:!0,sampleSize:25,nodeSeparation:75,piTol:1e-7,nodeRepulsion:o(function(w){return 4500},"nodeRepulsion"),idealEdgeLength:o(function(w){return 50},"idealEdgeLength"),edgeElasticity:o(function(w){return .45},"edgeElasticity"),nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,tilingCompareBy:void 0,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.3,fixedNodeConstraint:void 0,alignmentConstraint:void 0,relativePlacementConstraint:void 0,ready:o(function(){},"ready"),stop:o(function(){},"stop")}),x=function(){function b(w){h(this,b),this.options=f({},v,w)}return o(b,"Layout"),u(b,[{key:"run",value:o(function(){var _=this,T=this.options,E=T.cy,L=T.eles,C=[],A=void 0,I=void 0,D=[],k=void 0,R=[];T.fixedNodeConstraint&&(!Array.isArray(T.fixedNodeConstraint)||T.fixedNodeConstraint.length==0)&&(T.fixedNodeConstraint=void 0),T.alignmentConstraint&&(T.alignmentConstraint.vertical&&(!Array.isArray(T.alignmentConstraint.vertical)||T.alignmentConstraint.vertical.length==0)&&(T.alignmentConstraint.vertical=void 0),T.alignmentConstraint.horizontal&&(!Array.isArray(T.alignmentConstraint.horizontal)||T.alignmentConstraint.horizontal.length==0)&&(T.alignmentConstraint.horizontal=void 0)),T.relativePlacementConstraint&&(!Array.isArray(T.relativePlacementConstraint)||T.relativePlacementConstraint.length==0)&&(T.relativePlacementConstraint=void 0);var S=T.fixedNodeConstraint||T.alignmentConstraint||T.relativePlacementConstraint;S&&(T.tile=!1,T.packComponents=!1);var O=void 0,N=!1;if(E.layoutUtilities&&T.packComponents&&(O=E.layoutUtilities("get"),O||(O=E.layoutUtilities()),N=!0),L.nodes().length>0)if(N){var B=d.getTopMostNodes(T.eles.nodes());if(k=d.connectComponents(E,T.eles,B),k.forEach(function(oe){var ke=oe.boundingBox();R.push({x:ke.x1+ke.w/2,y:ke.y1+ke.h/2})}),T.randomize&&k.forEach(function(oe){T.eles=oe,C.push(m(T))}),T.quality=="default"||T.quality=="proof"){var $=E.collection();if(T.tile){var z=new Map,W=[],j=[],K=0,ie={nodeIndexes:z,xCoords:W,yCoords:j},Q=[];if(k.forEach(function(oe,ke){oe.edges().length==0&&(oe.nodes().forEach(function(Fe,Be){$.merge(oe.nodes()[Be]),Fe.isParent()||(ie.nodeIndexes.set(oe.nodes()[Be].id(),K++),ie.xCoords.push(oe.nodes()[0].position().x),ie.yCoords.push(oe.nodes()[0].position().y))}),Q.push(ke))}),$.length>1){var ee=$.boundingBox();R.push({x:ee.x1+ee.w/2,y:ee.y1+ee.h/2}),k.push($),C.push(ie);for(var J=Q.length-1;J>=0;J--)k.splice(Q[J],1),C.splice(Q[J],1),R.splice(Q[J],1)}}k.forEach(function(oe,ke){T.eles=oe,D.push(y(T,C[ke])),d.relocateComponent(R[ke],D[ke],T)})}else k.forEach(function(oe,ke){d.relocateComponent(R[ke],C[ke],T)});var H=new Set;if(k.length>1){var q=[],Z=L.filter(function(oe){return oe.css("display")=="none"});k.forEach(function(oe,ke){var Fe=void 0;if(T.quality=="draft"&&(Fe=C[ke].nodeIndexes),oe.nodes().not(Z).length>0){var Be={};Be.edges=[],Be.nodes=[];var Ve=void 0;oe.nodes().not(Z).forEach(function(Ge){if(T.quality=="draft")if(!Ge.isParent())Ve=Fe.get(Ge.id()),Be.nodes.push({x:C[ke].xCoords[Ve]-Ge.boundingbox().w/2,y:C[ke].yCoords[Ve]-Ge.boundingbox().h/2,width:Ge.boundingbox().w,height:Ge.boundingbox().h});else{var He=d.calcBoundingBox(Ge,C[ke].xCoords,C[ke].yCoords,Fe);Be.nodes.push({x:He.topLeftX,y:He.topLeftY,width:He.width,height:He.height})}else D[ke][Ge.id()]&&Be.nodes.push({x:D[ke][Ge.id()].getLeft(),y:D[ke][Ge.id()].getTop(),width:D[ke][Ge.id()].getWidth(),height:D[ke][Ge.id()].getHeight()})}),oe.edges().forEach(function(Ge){var He=Ge.source(),xe=Ge.target();if(He.css("display")!="none"&&xe.css("display")!="none")if(T.quality=="draft"){var X=Fe.get(He.id()),fe=Fe.get(xe.id()),he=[],ge=[];if(He.isParent()){var ne=d.calcBoundingBox(He,C[ke].xCoords,C[ke].yCoords,Fe);he.push(ne.topLeftX+ne.width/2),he.push(ne.topLeftY+ne.height/2)}else he.push(C[ke].xCoords[X]),he.push(C[ke].yCoords[X]);if(xe.isParent()){var ye=d.calcBoundingBox(xe,C[ke].xCoords,C[ke].yCoords,Fe);ge.push(ye.topLeftX+ye.width/2),ge.push(ye.topLeftY+ye.height/2)}else ge.push(C[ke].xCoords[fe]),ge.push(C[ke].yCoords[fe]);Be.edges.push({startX:he[0],startY:he[1],endX:ge[0],endY:ge[1]})}else D[ke][He.id()]&&D[ke][xe.id()]&&Be.edges.push({startX:D[ke][He.id()].getCenterX(),startY:D[ke][He.id()].getCenterY(),endX:D[ke][xe.id()].getCenterX(),endY:D[ke][xe.id()].getCenterY()})}),Be.nodes.length>0&&(q.push(Be),H.add(ke))}});var ae=O.packComponents(q,T.randomize).shifts;if(T.quality=="draft")C.forEach(function(oe,ke){var Fe=oe.xCoords.map(function(Ve){return Ve+ae[ke].dx}),Be=oe.yCoords.map(function(Ve){return Ve+ae[ke].dy});oe.xCoords=Fe,oe.yCoords=Be});else{var ue=0;H.forEach(function(oe){Object.keys(D[oe]).forEach(function(ke){var Fe=D[oe][ke];Fe.setCenter(Fe.getCenterX()+ae[ue].dx,Fe.getCenterY()+ae[ue].dy)}),ue++})}}}else{var P=T.eles.boundingBox();if(R.push({x:P.x1+P.w/2,y:P.y1+P.h/2}),T.randomize){var F=m(T);C.push(F)}T.quality=="default"||T.quality=="proof"?(D.push(y(T,C[0])),d.relocateComponent(R[0],D[0],T)):d.relocateComponent(R[0],C[0],T)}var ce=o(function(ke,Fe){if(T.quality=="default"||T.quality=="proof"){typeof ke=="number"&&(ke=Fe);var Be=void 0,Ve=void 0,Ge=ke.data("id");return D.forEach(function(xe){Ge in xe&&(Be={x:xe[Ge].getRect().getCenterX(),y:xe[Ge].getRect().getCenterY()},Ve=xe[Ge])}),T.nodeDimensionsIncludeLabels&&(Ve.labelWidth&&(Ve.labelPosHorizontal=="left"?Be.x+=Ve.labelWidth/2:Ve.labelPosHorizontal=="right"&&(Be.x-=Ve.labelWidth/2)),Ve.labelHeight&&(Ve.labelPosVertical=="top"?Be.y+=Ve.labelHeight/2:Ve.labelPosVertical=="bottom"&&(Be.y-=Ve.labelHeight/2))),Be==null&&(Be={x:ke.position("x"),y:ke.position("y")}),{x:Be.x,y:Be.y}}else{var He=void 0;return C.forEach(function(xe){var X=xe.nodeIndexes.get(ke.id());X!=null&&(He={x:xe.xCoords[X],y:xe.yCoords[X]})}),He==null&&(He={x:ke.position("x"),y:ke.position("y")}),{x:He.x,y:He.y}}},"getPositions");if(T.quality=="default"||T.quality=="proof"||T.randomize){var te=d.calcParentsWithoutChildren(E,L),De=L.filter(function(oe){return oe.css("display")=="none"});T.eles=L.not(De),L.nodes().not(":parent").not(De).layoutPositions(_,T,ce),te.length>0&&te.forEach(function(oe){oe.position(ce(oe))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")},"run")}]),b}();a.exports=x},657:(a,s,l)=>{var u=l(548),h=l(140).layoutBase.Matrix,f=l(140).layoutBase.SVD,d=o(function(m){var g=m.cy,y=m.eles,v=y.nodes(),x=y.nodes(":parent"),b=new Map,w=new Map,_=new Map,T=[],E=[],L=[],C=[],A=[],I=[],D=[],k=[],R=void 0,S=void 0,O=1e8,N=1e-9,P=m.piTol,F=m.samplingType,B=m.nodeSeparation,$=void 0,z=o(function(){for(var Te=0,se=0,Ee=!1;se<$;){Te=Math.floor(Math.random()*S),Ee=!1;for(var Ae=0;Ae=Pe;){me=Ae[Pe++];for(var vt=T[me],Ye=0;Yett&&(tt=A[$e],gt=$e)}return gt},"BFS"),j=o(function(Te){var se=void 0;if(Te){se=Math.floor(Math.random()*S),R=se;for(var Ae=0;Ae=1)break;tt=Re}for(var vt=0;vt=1)break;tt=Re}for(var Tt=0;Tt0&&(se.isParent()?T[Te].push(_.get(se.id())):T[Te].push(se.id()))})});var te=o(function(Te){var se=w.get(Te),Ee=void 0;b.get(Te).forEach(function(Ae){g.getElementById(Ae).isParent()?Ee=_.get(Ae):Ee=Ae,T[se].push(Ee),T[w.get(Ee)].push(Te)})},"_loop"),De=!0,oe=!1,ke=void 0;try{for(var Fe=b.keys()[Symbol.iterator](),Be;!(De=(Be=Fe.next()).done);De=!0){var Ve=Be.value;te(Ve)}}catch(U){oe=!0,ke=U}finally{try{!De&&Fe.return&&Fe.return()}finally{if(oe)throw ke}}S=w.size;var Ge=void 0;if(S>2){$=S{var u=l(212),h=o(function(d){d&&d("layout","fcose",u)},"register");typeof cytoscape<"u"&&h(cytoscape),a.exports=h},140:a=>{a.exports=t}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return e[a](l,l.exports,n),l.exports}o(n,"__webpack_require__");var i=n(579);return i})()})});var S1,j0,mF=M(()=>{"use strict";Kc();S1=o(t=>`${t}`,"wrapIcon"),j0={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:S1('')},server:{body:S1('')},disk:{body:S1('')},internet:{body:S1('')},cloud:{body:S1('')},unknown:RS,blank:{body:S1("")}}}});var u2e,h2e,f2e,d2e,p2e=M(()=>{"use strict";Kc();Vt();Dl();yb();mF();iS();u2e=o(async function(t,e){let r=Li("padding"),n=Li("iconSize"),i=n/2,a=n/6,s=a/2;await Promise.all(e.edges().map(async l=>{let{source:u,sourceDir:h,sourceArrow:f,sourceGroup:d,target:p,targetDir:m,targetArrow:g,targetGroup:y,label:v}=nS(l),{x,y:b}=l[0].sourceEndpoint(),{x:w,y:_}=l[0].midpoint(),{x:T,y:E}=l[0].targetEndpoint(),L=r+4;if(d&&(us(h)?x+=h==="L"?-L:L:b+=h==="T"?-L:L+18),y&&(us(m)?T+=m==="L"?-L:L:E+=m==="T"?-L:L+18),!d&&X0.getNode(u)?.type==="junction"&&(us(h)?x+=h==="L"?i:-i:b+=h==="T"?i:-i),!y&&X0.getNode(p)?.type==="junction"&&(us(m)?T+=m==="L"?i:-i:E+=m==="T"?i:-i),l[0]._private.rscratch){let C=t.insert("g");if(C.insert("path").attr("d",`M ${x},${b} L ${w},${_} L${T},${E} `).attr("class","edge"),f){let A=us(h)?mb[h](x,a):x-s,I=qc(h)?mb[h](b,a):b-s;C.insert("polygon").attr("points",lF[h](a)).attr("transform",`translate(${A},${I})`).attr("class","arrow")}if(g){let A=us(m)?mb[m](T,a):T-s,I=qc(m)?mb[m](E,a):E-s;C.insert("polygon").attr("points",lF[m](a)).attr("transform",`translate(${A},${I})`).attr("class","arrow")}if(v){let A=rS(h,m)?"XY":us(h)?"X":"Y",I=0;A==="X"?I=Math.abs(x-T):A==="Y"?I=Math.abs(b-E)/1.5:I=Math.abs(x-T)/2;let D=C.append("g");if(await Si(D,v,{useHtmlLabels:!1,width:I,classes:"architecture-service-label"},de()),D.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),A==="X")D.attr("transform","translate("+w+", "+_+")");else if(A==="Y")D.attr("transform","translate("+w+", "+_+") rotate(-90)");else if(A==="XY"){let k=gb(h,m);if(k&&Jve(k)){let R=D.node().getBoundingClientRect(),[S,O]=t2e(k);D.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*S*O*45})`);let N=D.node().getBoundingClientRect();D.attr("transform",` + translate(${w}, ${_-R.height/2}) + translate(${S*N.width/2}, ${O*N.height/2}) + rotate(${-1*S*O*45}, 0, ${R.height/2}) + `)}}}}}))},"drawEdges"),h2e=o(async function(t,e){let n=Li("padding")*.75,i=Li("fontSize"),s=Li("iconSize")/2;await Promise.all(e.nodes().map(async l=>{let u=Mf(l);if(u.type==="group"){let{h,w:f,x1:d,y1:p}=l.boundingBox();t.append("rect").attr("x",d+s).attr("y",p+s).attr("width",f).attr("height",h).attr("class","node-bkg");let m=t.append("g"),g=d,y=p;if(u.icon){let v=m.append("g");v.html(`${await wo(u.icon,{height:n,width:n,fallbackPrefix:j0.prefix})}`),v.attr("transform","translate("+(g+s+1)+", "+(y+s+1)+")"),g+=n,y+=i/2-1-2}if(u.label){let v=m.append("g");await Si(v,u.label,{useHtmlLabels:!1,width:f,classes:"architecture-service-label"},de()),v.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),v.attr("transform","translate("+(g+s+4)+", "+(y+s+2)+")")}}}))},"drawGroups"),f2e=o(async function(t,e,r){for(let n of r){let i=e.append("g"),a=Li("iconSize");if(n.title){let h=i.append("g");await Si(h,n.title,{useHtmlLabels:!1,width:a*1.5,classes:"architecture-service-label"},de()),h.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),h.attr("transform","translate("+a/2+", "+a+")")}let s=i.append("g");if(n.icon)s.html(`${await wo(n.icon,{height:a,width:a,fallbackPrefix:j0.prefix})}`);else if(n.iconText){s.html(`${await wo("blank",{height:a,width:a,fallbackPrefix:j0.prefix})}`);let d=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),p=parseInt(window.getComputedStyle(d.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;d.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/p)};`)}else s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`);i.attr("class","architecture-service");let{width:l,height:u}=i._groups[0][0].getBBox();n.width=l,n.height=u,t.setElementForId(n.id,i)}return 0},"drawServices"),d2e=o(function(t,e,r){r.forEach(n=>{let i=e.append("g"),a=Li("iconSize");i.append("g").append("rect").attr("id","node-"+n.id).attr("fill-opacity","0").attr("width",a).attr("height",a),i.attr("class","architecture-junction");let{width:l,height:u}=i._groups[0][0].getBBox();i.width=l,i.height=u,t.setElementForId(n.id,i)})},"drawJunctions")});function Lit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"service",id:r.id,icon:r.icon,label:r.title,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-service"})})}function Dit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"junction",id:r.id,parent:r.in,width:Li("iconSize"),height:Li("iconSize")},classes:"node-junction"})})}function Nit(t,e){e.nodes().map(r=>{let n=Mf(r);if(n.type==="group")return;n.x=r.position().x,n.y=r.position().y,t.getElementById(n.id).attr("transform","translate("+(n.x||0)+","+(n.y||0)+")")})}function Rit(t,e){t.forEach(r=>{e.add({group:"nodes",data:{type:"group",id:r.id,icon:r.icon,label:r.title,parent:r.in},classes:"node-group"})})}function Mit(t,e){t.forEach(r=>{let{lhsId:n,rhsId:i,lhsInto:a,lhsGroup:s,rhsInto:l,lhsDir:u,rhsDir:h,rhsGroup:f,title:d}=r,p=rS(r.lhsDir,r.rhsDir)?"segments":"straight",m={id:`${n}-${i}`,label:d,source:n,sourceDir:u,sourceArrow:a,sourceGroup:s,sourceEndpoint:u==="L"?"0 50%":u==="R"?"100% 50%":u==="T"?"50% 0":"50% 100%",target:i,targetDir:h,targetArrow:l,targetGroup:f,targetEndpoint:h==="L"?"0 50%":h==="R"?"100% 50%":h==="T"?"50% 0":"50% 100%"};e.add({group:"edges",data:m,classes:p})})}function Iit(t){let e=t.map(i=>{let a={},s={};return Object.entries(i).forEach(([l,[u,h]])=>{a[h]||(a[h]=[]),s[u]||(s[u]=[]),a[h].push(l),s[u].push(l)}),{horiz:Object.values(a).filter(l=>l.length>1),vert:Object.values(s).filter(l=>l.length>1)}}),[r,n]=e.reduce(([i,a],{horiz:s,vert:l})=>[[...i,...s],[...a,...l]],[[],[]]);return{horizontal:r,vertical:n}}function Oit(t){let e=[],r=o(i=>`${i[0]},${i[1]}`,"posToStr"),n=o(i=>i.split(",").map(a=>parseInt(a)),"strToPos");return t.forEach(i=>{let a=Object.fromEntries(Object.entries(i).map(([h,f])=>[r(f),h])),s=[r([0,0])],l={},u={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;s.length>0;){let h=s.shift();if(h){l[h]=1;let f=a[h];if(f){let d=n(h);Object.entries(u).forEach(([p,m])=>{let g=r([d[0]+m[0],d[1]+m[1]]),y=a[g];y&&!l[g]&&(s.push(g),e.push({[oF[p]]:y,[oF[Zve(p)]]:f,gap:1.5*Li("iconSize")}))})}}}}),e}function Pit(t,e,r,n,{spatialMaps:i}){return new Promise(a=>{let s=ze("body").append("div").attr("id","cy").attr("style","display:none"),l=sl({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":`${Li("fontSize")}px`}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:`${Li("padding")}px`}}]});s.remove(),Rit(r,l),Lit(t,l),Dit(e,l),Mit(n,l);let u=Iit(i),h=Oit(i),f=l.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(d){let[p,m]=d.connectedNodes(),{parent:g}=Mf(p),{parent:y}=Mf(m);return g===y?1.5*Li("iconSize"):.5*Li("iconSize")},edgeElasticity(d){let[p,m]=d.connectedNodes(),{parent:g}=Mf(p),{parent:y}=Mf(m);return g===y?.45:.001},alignmentConstraint:u,relativePlacementConstraint:h});f.one("layoutstop",()=>{function d(p,m,g,y){let v,x,{x:b,y:w}=p,{x:_,y:T}=m;x=(y-w+(b-g)*(w-T)/(b-_))/Math.sqrt(1+Math.pow((w-T)/(b-_),2)),v=Math.sqrt(Math.pow(y-w,2)+Math.pow(g-b,2)-Math.pow(x,2));let E=Math.sqrt(Math.pow(_-b,2)+Math.pow(T-w,2));v=v/E;let L=(_-b)*(y-w)-(T-w)*(g-b);switch(!0){case L>=0:L=1;break;case L<0:L=-1;break}let C=(_-b)*(g-b)+(T-w)*(y-w);switch(!0){case C>=0:C=1;break;case C<0:C=-1;break}return x=Math.abs(x)*L,v=v*C,{distances:x,weights:v}}o(d,"getSegmentWeights"),l.startBatch();for(let p of Object.values(l.edges()))if(p.data?.()){let{x:m,y:g}=p.source().position(),{x:y,y:v}=p.target().position();if(m!==y&&g!==v){let x=p.sourceEndpoint(),b=p.targetEndpoint(),{sourceDir:w}=nS(p),[_,T]=qc(w)?[x.x,b.y]:[b.x,x.y],{weights:E,distances:L}=d(x,b,_,T);p.style("segment-distances",L),p.style("segment-weights",E)}}l.endBatch(),f.run()}),f.run(),l.ready(d=>{Y.info("Ready",d),a(l)})})}var m2e,Bit,g2e,y2e=M(()=>{"use strict";Kc();kB();m2e=ka(c2e(),1);mr();ht();Hu();ni();yb();mF();iS();p2e();Mb([{name:j0.prefix,icons:j0}]);sl.use(m2e.default);o(Lit,"addServices");o(Dit,"addJunctions");o(Nit,"positionNodes");o(Rit,"addGroups");o(Mit,"addEdges");o(Iit,"getAlignments");o(Oit,"getRelativeConstraints");o(Pit,"layoutArchitecture");Bit=o(async(t,e,r,n)=>{let i=n.db,a=i.getServices(),s=i.getJunctions(),l=i.getGroups(),u=i.getEdges(),h=i.getDataStructures(),f=Oa(e),d=f.append("g");d.attr("class","architecture-edges");let p=f.append("g");p.attr("class","architecture-services");let m=f.append("g");m.attr("class","architecture-groups"),await f2e(i,p,a),d2e(i,p,s);let g=await Pit(a,s,l,u,h);await u2e(d,g),await h2e(m,g),Nit(i,g),_o(void 0,f,Li("padding"),Li("useMaxWidth"))},"draw"),g2e={draw:Bit}});var v2e={};vr(v2e,{diagram:()=>Fit});var Fit,x2e=M(()=>{"use strict";s2e();yb();l2e();y2e();Fit={parser:a2e,db:X0,renderer:g2e,styles:o2e}});var Eat={};vr(Eat,{default:()=>kat});Kc();MS();$f();var WX="c4",s7e=o(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),o7e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(HX(),UX));return{id:WX,diagram:t}},"loader"),l7e={id:WX,detector:s7e,loader:o7e},YX=l7e;var jie="flowchart",dPe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-wrapper"||e?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(t),"detector"),pPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:jie,diagram:t}},"loader"),mPe={id:jie,detector:dPe,loader:pPe},Kie=mPe;var Qie="flowchart-v2",gPe=o((t,e)=>e?.flowchart?.defaultRenderer==="dagre-d3"?!1:(e?.flowchart?.defaultRenderer==="elk"&&(e.layout="elk"),/^\s*graph/.test(t)&&e?.flowchart?.defaultRenderer==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)),"detector"),yPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:Qie,diagram:t}},"loader"),vPe={id:Qie,detector:gPe,loader:yPe},Zie=vPe;var Aae="er",qPe=o(t=>/^\s*erDiagram/.test(t),"detector"),XPe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Cae(),Sae));return{id:Aae,diagram:t}},"loader"),jPe={id:Aae,detector:qPe,loader:XPe},_ae=jPe;var Fue="gitGraph",x$e=o(t=>/^\s*gitGraph/.test(t),"detector"),b$e=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Bue(),Pue));return{id:Fue,diagram:t}},"loader"),w$e={id:Fue,detector:x$e,loader:b$e},zue=w$e;var mhe="gantt",lVe=o(t=>/^\s*gantt/.test(t),"detector"),cVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(phe(),dhe));return{id:mhe,diagram:t}},"loader"),uVe={id:mhe,detector:lVe,loader:cVe},ghe=uVe;var She="info",gVe=o(t=>/^\s*info/.test(t),"detector"),yVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ehe(),khe));return{id:She,diagram:t}},"loader"),Che={id:She,detector:gVe,loader:yVe};var Phe="pie",DVe=o(t=>/^\s*pie/.test(t),"detector"),NVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Ohe(),Ihe));return{id:Phe,diagram:t}},"loader"),Bhe={id:Phe,detector:DVe,loader:NVe};var Khe="quadrantChart",jVe=o(t=>/^\s*quadrantChart/.test(t),"detector"),KVe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(jhe(),Xhe));return{id:Khe,diagram:t}},"loader"),QVe={id:Khe,detector:jVe,loader:KVe},Qhe=QVe;var Efe="xychart",dUe=o(t=>/^\s*xychart-beta/.test(t),"detector"),pUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(kfe(),Tfe));return{id:Efe,diagram:t}},"loader"),mUe={id:Efe,detector:dUe,loader:pUe},Sfe=mUe;var $fe="requirement",UUe=o(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),HUe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Gfe(),zfe));return{id:$fe,diagram:t}},"loader"),WUe={id:$fe,detector:UUe,loader:HUe},Vfe=WUe;var mde="sequence",XHe=o(t=>/^\s*sequenceDiagram/.test(t),"detector"),jHe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(pde(),dde));return{id:mde,diagram:t}},"loader"),KHe={id:mde,detector:XHe,loader:jHe},gde=KHe;var Lde="class",_We=o((t,e)=>e?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t),"detector"),LWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_de(),Ade));return{id:Lde,diagram:t}},"loader"),DWe={id:Lde,detector:_We,loader:LWe},Dde=DWe;var Mde="classDiagram",RWe=o((t,e)=>/^\s*classDiagram/.test(t)&&e?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t),"detector"),MWe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Rde(),Nde));return{id:Mde,diagram:t}},"loader"),IWe={id:Mde,detector:RWe,loader:MWe},Ide=IWe;var S0e="state",LYe=o((t,e)=>e?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t),"detector"),DYe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(E0e(),k0e));return{id:S0e,diagram:t}},"loader"),NYe={id:S0e,detector:LYe,loader:DYe},C0e=NYe;var L0e="stateDiagram",MYe=o((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&e?.state?.defaultRenderer==="dagre-wrapper"),"detector"),IYe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(_0e(),A0e));return{id:L0e,diagram:t}},"loader"),OYe={id:L0e,detector:MYe,loader:IYe},D0e=OYe;var Y0e="journey",rqe=o(t=>/^\s*journey/.test(t),"detector"),nqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(W0e(),H0e));return{id:Y0e,diagram:t}},"loader"),iqe={id:Y0e,detector:rqe,loader:nqe},q0e=iqe;ht();Hu();ni();var aqe=o((t,e,r)=>{Y.debug(`rendering svg for syntax error +`);let n=Oa(e),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Zr(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),yP={draw:aqe},X0e=yP;var sqe={db:{},renderer:yP,parser:{parse:o(()=>{},"parse")}},j0e=sqe;var K0e="flowchart-elk",oqe=o((t,e={})=>/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&e?.flowchart?.defaultRenderer==="elk"?(e.layout="elk",!0):!1,"detector"),lqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(fT(),hT));return{id:K0e,diagram:t}},"loader"),cqe={id:K0e,detector:oqe,loader:lqe},Q0e=cqe;var kpe="timeline",_qe=o(t=>/^\s*timeline/.test(t),"detector"),Lqe=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Tpe(),wpe));return{id:kpe,diagram:t}},"loader"),Dqe={id:kpe,detector:_qe,loader:Lqe},Epe=Dqe;var V1e="mindmap",Ftt=o(t=>/^\s*mindmap/.test(t),"detector"),ztt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>($1e(),G1e));return{id:V1e,diagram:t}},"loader"),Gtt={id:V1e,detector:Ftt,loader:ztt},U1e=Gtt;var tye="kanban",rrt=o(t=>/^\s*kanban/.test(t),"detector"),nrt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(eye(),J1e));return{id:tye,diagram:t}},"loader"),irt={id:tye,detector:rrt,loader:nrt},rye=irt;var Oye="sankey",Crt=o(t=>/^\s*sankey-beta/.test(t),"detector"),Art=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Iye(),Mye));return{id:Oye,diagram:t}},"loader"),_rt={id:Oye,detector:Crt,loader:Art},Pye=_rt;var Yye="packet",$rt=o(t=>/^\s*packet-beta/.test(t),"detector"),Vrt=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(Wye(),Hye));return{id:Yye,diagram:t}},"loader"),qye={id:Yye,detector:$rt,loader:Vrt};var Kve="block",cit=o(t=>/^\s*block-beta/.test(t),"detector"),uit=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(jve(),Xve));return{id:Kve,diagram:t}},"loader"),hit={id:Kve,detector:cit,loader:uit},Qve=hit;var b2e="architecture",zit=o(t=>/^\s*architecture/.test(t),"detector"),Git=o(async()=>{let{diagram:t}=await Promise.resolve().then(()=>(x2e(),v2e));return{id:b2e,diagram:t}},"loader"),$it={id:b2e,detector:zit,loader:Git},w2e=$it;$f();Vt();var T2e=!1,C1=o(()=>{T2e||(T2e=!0,Qf("error",j0e,t=>t.toLowerCase().trim()==="error"),Qf("---",{db:{clear:o(()=>{},"clear")},styles:{},renderer:{draw:o(()=>{},"draw")},parser:{parse:o(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:o(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),Bb(YX,rye,Ide,Dde,_ae,ghe,Che,Bhe,Vfe,gde,Q0e,Zie,Kie,U1e,Epe,zue,D0e,C0e,q0e,Qhe,Pye,qye,Sfe,Qve,w2e))},"addDiagrams");ht();$f();Vt();var k2e=o(async()=>{Y.debug("Loading registered diagrams");let e=(await Promise.allSettled(Object.entries(Gf).map(async([r,{detector:n,loader:i}])=>{if(i)try{ay(r)}catch{try{let{diagram:a,id:s}=await i();Qf(s,a,n)}catch(a){throw Y.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Gf[r],a}}}))).filter(r=>r.status==="rejected");if(e.length>0){Y.error(`Failed to load ${e.length} external diagrams`);for(let r of e)Y.error(r);throw new Error(`Failed to load ${e.length} external diagrams`)}},"loadRegisteredDiagrams");ht();mr();var aS="comm",sS="rule",oS="decl";var E2e="@import";var S2e="@keyframes";var C2e="@layer";var gF=Math.abs,wb=String.fromCharCode;function lS(t){return t.trim()}o(lS,"trim");function Tb(t,e,r){return t.replace(e,r)}o(Tb,"replace");function A2e(t,e,r){return t.indexOf(e,r)}o(A2e,"indexof");function K0(t,e){return t.charCodeAt(e)|0}o(K0,"charat");function If(t,e,r){return t.slice(e,r)}o(If,"substr");function yo(t){return t.length}o(yo,"strlen");function _2e(t){return t.length}o(_2e,"sizeof");function A1(t,e){return e.push(t),t}o(A1,"append");var cS=1,_1=1,L2e=0,ll=0,Di=0,D1="";function uS(t,e,r,n,i,a,s,l){return{value:t,root:e,parent:r,type:n,props:i,children:a,line:cS,column:_1,length:s,return:"",siblings:l}}o(uS,"node");function D2e(){return Di}o(D2e,"char");function N2e(){return Di=ll>0?K0(D1,--ll):0,_1--,Di===10&&(_1=1,cS--),Di}o(N2e,"prev");function cl(){return Di=ll2||L1(Di)>3?"":" "}o(I2e,"whitespace");function O2e(t,e){for(;--e&&cl()&&!(Di<48||Di>102||Di>57&&Di<65||Di>70&&Di<97););return hS(t,kb()+(e<6&&Ju()==32&&cl()==32))}o(O2e,"escaping");function yF(t){for(;cl();)switch(Di){case t:return ll;case 34:case 39:t!==34&&t!==39&&yF(Di);break;case 40:t===41&&yF(t);break;case 92:cl();break}return ll}o(yF,"delimiter");function P2e(t,e){for(;cl()&&t+Di!==57;)if(t+Di===84&&Ju()===47)break;return"/*"+hS(e,ll-1)+"*"+wb(t===47?t:cl())}o(P2e,"commenter");function B2e(t){for(;!L1(Ju());)cl();return hS(t,ll)}o(B2e,"identifier");function G2e(t){return M2e(dS("",null,null,null,[""],t=R2e(t),0,[0],t))}o(G2e,"compile");function dS(t,e,r,n,i,a,s,l,u){for(var h=0,f=0,d=s,p=0,m=0,g=0,y=1,v=1,x=1,b=0,w="",_=i,T=a,E=n,L=w;v;)switch(g=b,b=cl()){case 40:if(g!=108&&K0(L,d-1)==58){A2e(L+=Tb(fS(b),"&","&\f"),"&\f",gF(h?l[h-1]:0))!=-1&&(x=-1);break}case 34:case 39:case 91:L+=fS(b);break;case 9:case 10:case 13:case 32:L+=I2e(g);break;case 92:L+=O2e(kb()-1,7);continue;case 47:switch(Ju()){case 42:case 47:A1(Vit(P2e(cl(),kb()),e,r,u),u),(L1(g||1)==5||L1(Ju()||1)==5)&&yo(L)&&If(L,-1,void 0)!==" "&&(L+=" ");break;default:L+="/"}break;case 123*y:l[h++]=yo(L)*x;case 125*y:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+f:x==-1&&(L=Tb(L,/\f/g,"")),m>0&&(yo(L)-d||y===0&&g===47)&&A1(m>32?z2e(L+";",n,r,d-1,u):z2e(Tb(L," ","")+";",n,r,d-2,u),u);break;case 59:L+=";";default:if(A1(E=F2e(L,e,r,h,f,i,l,w,_=[],T=[],d,a),a),b===123)if(f===0)dS(L,e,E,E,_,a,d,l,T);else switch(p===99&&K0(L,3)===110?100:p){case 100:case 108:case 109:case 115:dS(t,E,E,n&&A1(F2e(t,E,E,0,0,i,l,w,i,_=[],d,T),T),i,T,d,l,n?_:T);break;default:dS(L,E,E,E,[""],T,0,l,T)}}h=f=m=0,y=x=1,w=L="",d=s;break;case 58:d=1+yo(L),m=g;default:if(y<1){if(b==123)--y;else if(b==125&&y++==0&&N2e()==125)continue}switch(L+=wb(b),b*y){case 38:x=f>0?1:(L+="\f",-1);break;case 44:l[h++]=(yo(L)-1)*x,x=1;break;case 64:Ju()===45&&(L+=fS(cl())),p=Ju(),f=d=yo(w=L+=B2e(kb())),b++;break;case 45:g===45&&yo(L)==2&&(y=0)}}return a}o(dS,"parse");function F2e(t,e,r,n,i,a,s,l,u,h,f,d){for(var p=i-1,m=i===0?a:[""],g=_2e(m),y=0,v=0,x=0;y0?m[b]+" "+w:Tb(w,/&\f/g,m[b])))&&(u[x++]=_);return uS(t,e,r,i===0?sS:l,u,h,f,d)}o(F2e,"ruleset");function Vit(t,e,r,n){return uS(t,e,r,aS,wb(D2e()),If(t,2,-2),0,n)}o(Vit,"comment");function z2e(t,e,r,n,i){return uS(t,e,r,oS,If(t,0,n),If(t,n+1,-1),n,i)}o(z2e,"declaration");function pS(t,e){for(var r="",n=0;n{H2e.forEach(t=>{t()}),H2e=[]},"attachFunctions");ht();var Y2e=o(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");Pb();V5();function q2e(t){let e=t.match(Ob);if(!e)return{text:t,metadata:{}};let r=fm(e[1],{schema:hm})??{};r=typeof r=="object"&&!Array.isArray(r)?r:{};let n={};return r.displayMode&&(n.displayMode=r.displayMode.toString()),r.title&&(n.title=r.title.toString()),r.config&&(n.config=r.config),{text:t.slice(e[0].length),metadata:n}}o(q2e,"extractFrontMatter");hr();var Hit=o(t=>t.replace(/\r\n?/g,` +`).replace(/<(\w+)([^>]*)>/g,(e,r,n)=>"<"+r+n.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),Wit=o(t=>{let{text:e,metadata:r}=q2e(t),{displayMode:n,title:i,config:a={}}=r;return n&&(a.gantt||(a.gantt={}),a.gantt.displayMode=n),{title:i,config:a,text:e}},"processFrontmatter"),Yit=o(t=>{let e=Ut.detectInit(t)??{},r=Ut.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:n})=>n==="wrap"):r?.type==="wrap"&&(e.wrap=!0),{text:RX(t),directive:e}},"processDirectives");function vF(t){let e=Hit(t),r=Wit(e),n=Yit(r.text),i=ws(r.config,n.directive);return t=Y2e(n.text),{code:t,title:r.title,config:i}}o(vF,"preprocessDiagram");QC();Hb();hr();function X2e(t){let e=new TextEncoder().encode(t),r=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(r)}o(X2e,"toBase64");var qit=5e4,Xit="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",jit="sandbox",Kit="loose",Qit="http://www.w3.org/2000/svg",Zit="http://www.w3.org/1999/xlink",Jit="http://www.w3.org/1999/xhtml",eat="100%",tat="100%",rat="border:0;margin:0;",nat="margin:0",iat="allow-top-navigation-by-user-activation allow-popups",aat='The "iframe" tag is not supported by your browser.',sat=["foreignobject"],oat=["dominant-baseline"];function Z2e(t){let e=vF(t);return V1(),Hz(e.config??{}),e}o(Z2e,"processAndSetConfigs");async function lat(t,e){C1();try{let{code:r,config:n}=Z2e(t);return{diagramType:(await J2e(r)).type,config:n}}catch(r){if(e?.suppressErrors)return!1;throw r}}o(lat,"parse");var j2e=o((t,e,r=[])=>` +.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),cat=o((t,e=new Map)=>{let r="";if(t.themeCSS!==void 0&&(r+=` +${t.themeCSS}`),t.fontFamily!==void 0&&(r+=` +:root { --mermaid-font-family: ${t.fontFamily}}`),t.altFontFamily!==void 0&&(r+=` +:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),e instanceof Map){let s=t.htmlLabels??t.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];e.forEach(l=>{cr(l.styles)||s.forEach(u=>{r+=j2e(l.id,u,l.styles)}),cr(l.textStyles)||(r+=j2e(l.id,"tspan",(l?.textStyles||[]).map(u=>u.replace("color","fill"))))})}return r},"createCssStyles"),uat=o((t,e,r,n)=>{let i=cat(t,r),a=F$(e,i,t.themeVariables);return pS(G2e(`${n}{${a}}`),$2e)},"createUserStyles"),hat=o((t="",e,r)=>{let n=t;return!r&&!e&&(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=Ca(n),n=n.replace(/
    /g,"
    "),n},"cleanUpSvgCode"),fat=o((t="",e)=>{let r=e?.viewBox?.baseVal?.height?e.viewBox.baseVal.height+"px":tat,n=X2e(`${t}`);return``},"putIntoIFrame"),K2e=o((t,e,r,n,i)=>{let a=t.append("div");a.attr("id",r),n&&a.attr("style",n);let s=a.append("svg").attr("id",e).attr("width","100%").attr("xmlns",Qit);return i&&s.attr("xmlns:xlink",i),s.append("g"),t},"appendDivSvgG");function Q2e(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}o(Q2e,"sandboxedIframe");var dat=o((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),pat=o(async function(t,e,r){C1();let n=Z2e(e);e=n.code;let i=Sr();Y.debug(i),e.length>(i?.maxTextSize??qit)&&(e=Xit);let a="#"+t,s="i"+t,l="#"+s,u="d"+t,h="#"+u,f=o(()=>{let R=ze(p?l:h).node();R&&"remove"in R&&R.remove()},"removeTempElements"),d=ze("body"),p=i.securityLevel===jit,m=i.securityLevel===Kit,g=i.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),p){let k=Q2e(ze(r),s);d=ze(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ze(r);K2e(d,t,u,`font-family: ${g}`,Zit)}else{if(dat(document,t,u,s),p){let k=Q2e(ze("body"),s);d=ze(k.nodes()[0].contentDocument.body),d.node().style.margin=0}else d=ze("body");K2e(d,t,u)}let y,v;try{y=await N1.fromText(e,{title:n.title})}catch(k){if(i.suppressErrorRendering)throw f(),k;y=await N1.fromText("error"),v=k}let x=d.select(h).node(),b=y.type,w=x.firstChild,_=w.firstChild,T=y.renderer.getClasses?.(e,y),E=uat(i,b,T,a),L=document.createElement("style");L.innerHTML=E,w.insertBefore(L,_);try{await y.renderer.draw(e,t,dx,y)}catch(k){throw i.suppressErrorRendering?f():X0e.draw(e,t,dx),k}let C=d.select(`${h} svg`),A=y.db.getAccTitle?.(),I=y.db.getAccDescription?.();gat(b,C,A,I),d.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",Jit);let D=d.select(h).node().innerHTML;if(Y.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),D=hat(D,p,xr(i.arrowMarkerAbsolute)),p){let k=d.select(h+" svg").node();D=fat(D,k)}else m||(D=ah.sanitize(D,{ADD_TAGS:sat,ADD_ATTR:oat,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(W2e(),v)throw v;return f(),{diagramType:b,svg:D,bindFunctions:y.db.bindFunctions}},"render");function mat(t={}){let e=Gn({},t);e?.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables||(e.themeVariables={}),e.themeVariables.fontFamily=e.fontFamily),$z(e),e?.theme&&e.theme in ko?e.themeVariables=ko[e.theme].getThemeVariables(e.themeVariables):e&&(e.themeVariables=ko.default.getThemeVariables(e.themeVariables));let r=typeof e=="object"?QS(e):ZS();M1(r.logLevel),C1()}o(mat,"initialize");var J2e=o((t,e={})=>{let{code:r}=vF(t);return N1.fromText(r,e)},"getDiagramFromText");function gat(t,e,r,n){V2e(e,t),U2e(e,r,n,e.attr("id"))}o(gat,"addA11yInfo");var Of=Object.freeze({render:pat,parse:lat,getDiagramFromText:J2e,initialize:mat,getConfig:Sr,setConfig:Yb,getSiteConfig:ZS,updateSiteConfig:Vz,reset:o(()=>{V1()},"reset"),globalReset:o(()=>{V1(ih)},"globalReset"),defaultConfig:ih});M1(Sr().logLevel);V1(Sr());Fv();hr();var yat=o((t,e,r)=>{Y.warn(t),i9(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError"),exe=o(async function(t={querySelector:".mermaid"}){try{await vat(t)}catch(e){if(i9(e)&&Y.error(e.str),eh.parseError&&eh.parseError(e),!t.suppressErrors)throw Y.error("Use the suppressErrors option to suppress these errors"),e}},"run"),vat=o(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){let n=Of.getConfig();Y.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else if(e)i=document.querySelectorAll(e);else throw new Error("Nodes and querySelector are both undefined");Y.debug(`Found ${i.length} diagrams`),n?.startOnLoad!==void 0&&(Y.debug("Start On Load: "+n?.startOnLoad),Of.updateSiteConfig({startOnLoad:n?.startOnLoad}));let a=new Ut.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),s,l=[];for(let u of Array.from(i)){Y.info("Rendering diagram: "+u.id);if(u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");let h=`mermaid-${a.next()}`;s=u.innerHTML,s=Ib(Ut.entityDecode(s)).trim().replace(//gi,"
    ");let f=Ut.detectInit(s);f&&Y.debug("Detected early reinit: ",f);try{let{svg:d,bindFunctions:p}=await ixe(h,s,u);u.innerHTML=d,t&&await t(h),p&&p(u)}catch(d){yat(d,l,eh.parseError)}}if(l.length>0)throw l[0]},"runThrowsErrors"),txe=o(function(t){Of.initialize(t)},"initialize"),xat=o(async function(t,e,r){Y.warn("mermaid.init is deprecated. Please use run instead."),t&&txe(t);let n={postRenderCallback:r,querySelector:".mermaid"};typeof e=="string"?n.querySelector=e:e&&(e instanceof HTMLElement?n.nodes=[e]:n.nodes=e),await exe(n)},"init"),bat=o(async(t,{lazyLoad:e=!0}={})=>{C1(),Bb(...t),e===!1&&await k2e()},"registerExternalDiagrams"),rxe=o(function(){if(eh.startOnLoad){let{startOnLoad:t}=Of.getConfig();t&&eh.run().catch(e=>Y.error("Mermaid failed to initialize",e))}},"contentLoaded");if(typeof document<"u"){window.addEventListener("load",rxe,!1)}var wat=o(function(t){eh.parseError=t},"setParseErrorHandler"),mS=[],xF=!1,nxe=o(async()=>{if(!xF){for(xF=!0;mS.length>0;){let t=mS.shift();if(t)try{await t()}catch(e){Y.error("Error executing queue",e)}}xF=!1}},"executeQueue"),Tat=o(async(t,e)=>new Promise((r,n)=>{let i=o(()=>new Promise((a,s)=>{Of.parse(t,e).then(l=>{a(l),r(l)},l=>{Y.error("Error parsing",l),eh.parseError?.(l),s(l),n(l)})}),"performCall");mS.push(i),nxe().catch(n)}),"parse"),ixe=o((t,e,r)=>new Promise((n,i)=>{let a=o(()=>new Promise((s,l)=>{Of.render(t,e,r).then(u=>{s(u),n(u)},u=>{Y.error("Error parsing",u),eh.parseError?.(u),l(u),i(u)})}),"performCall");mS.push(a),nxe().catch(i)}),"render"),eh={startOnLoad:!0,mermaidAPI:Of,parse:Tat,render:ixe,init:xat,run:exe,registerExternalDiagrams:bat,registerLayoutLoaders:CD,initialize:txe,parseError:void 0,contentLoaded:rxe,setParseErrorHandler:wat,detectType:np,registerIconPacks:Mb},kat=eh;return pxe(Eat);})(); +/*! Check if previously processed */ +/*! + * Wait for document loaded before starting the execution + */ +/*! Bundled license information: + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.2.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.1/LICENSE *) + +js-yaml/dist/js-yaml.mjs: + (*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +cytoscape/dist/cytoscape.esm.mjs: + (*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + *) + (*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + *) + (*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License *) + (*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License *) +*/ +globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default; diff --git a/copy.bara.sky b/copy.bara.sky new file mode 100644 index 0000000..d6befd6 --- /dev/null +++ b/copy.bara.sky @@ -0,0 +1,13 @@ +core.workflow( + name = "default", + origin = git.origin( + url = 'git@gitlab.anthaathi.net:madari-media/madari.git', + ref = "main", + ), + destination = git.destination( + url = 'git@github.com:madari-media/madari-oss.git', + push = "main", + fetch = "main", + ), + authoring = authoring.pass_thru("Madari Developers "), +) diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/drift_schemas/app_database/drift_schema_v1.json b/drift_schemas/app_database/drift_schema_v1.json new file mode 100644 index 0000000..0e2135f --- /dev/null +++ b/drift_schemas/app_database/drift_schema_v1.json @@ -0,0 +1 @@ +{"_meta":{"description":"This file contains a serialized version of schema entities for drift.","version":"1.2.0"},"options":{"store_date_time_values_as_text":false},"entities":[{"id":0,"references":[],"type":"table","data":{"name":"app_connection","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment","unknown"]},{"name":"title","getter_name":"title","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":6,"max":32}}]},{"name":"created_at","getter_name":"createdAt","moor_type":"dateTime","nullable":true,"customConstraints":null,"default_dart":"currentDate","default_client_dart":null,"dsl_features":[]},{"name":"connection_params","getter_name":"connectionParams","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":null,"max":5000}}]},{"name":"status","getter_name":"status","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumIndexConverter(ConnectionType.values)","dart_type_name":"ConnectionType"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":1,"references":[],"type":"table","data":{"name":"media","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"UNIQUE","dialectAwareDefaultConstraints":{"sqlite":"UNIQUE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"type","getter_name":"type","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":null,"max":10}}]},{"name":"title","getter_name":"title","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"description","getter_name":"description","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"poster","getter_name":"poster","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"background_poster","getter_name":"backgroundPoster","moor_type":"string","nullable":true,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":2,"references":[1],"type":"table","data":{"name":"season","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"UNIQUE","dialectAwareDefaultConstraints":{"sqlite":"UNIQUE"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"media_id","getter_name":"mediaId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES media (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES media (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown",{"allowed-lengths":{"min":0,"max":50}}]},{"name":"season_id","getter_name":"seasonId","moor_type":"string","nullable":true,"customConstraints":null,"defaultConstraints":"REFERENCES season (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES season (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":0,"max":50}},"unknown"]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":3,"references":[],"type":"table","data":{"name":"episode","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"name","getter_name":"name","moor_type":"string","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]}],"is_virtual":false,"without_rowid":false,"constraints":[]}},{"id":4,"references":[0,1,2,3],"type":"table","data":{"name":"media_watch_history","was_declared_in_moor":false,"columns":[{"name":"id","getter_name":"id","moor_type":"int","nullable":false,"customConstraints":null,"defaultConstraints":"PRIMARY KEY AUTOINCREMENT","dialectAwareDefaultConstraints":{"sqlite":"PRIMARY KEY AUTOINCREMENT"},"default_dart":null,"default_client_dart":null,"dsl_features":["auto-increment","unknown"]},{"name":"category","getter_name":"category","moor_type":"int","nullable":true,"customConstraints":null,"defaultConstraints":"REFERENCES app_connection (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES app_connection (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown"]},{"name":"media_id","getter_name":"mediaId","moor_type":"string","nullable":false,"customConstraints":null,"defaultConstraints":"REFERENCES media (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES media (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":["unknown",{"allowed-lengths":{"min":0,"max":50}}]},{"name":"season_id","getter_name":"seasonId","moor_type":"string","nullable":true,"customConstraints":null,"defaultConstraints":"REFERENCES season (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES season (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":0,"max":50}},"unknown"]},{"name":"episode_id","getter_name":"episodeId","moor_type":"string","nullable":true,"customConstraints":null,"defaultConstraints":"REFERENCES episode (id)","dialectAwareDefaultConstraints":{"sqlite":"REFERENCES episode (id)"},"default_dart":null,"default_client_dart":null,"dsl_features":[{"allowed-lengths":{"min":0,"max":50}},"unknown"]},{"name":"start_watch_time","getter_name":"startWatchTime","moor_type":"dateTime","nullable":false,"customConstraints":null,"default_dart":"currentDate","default_client_dart":null,"dsl_features":[]},{"name":"duration_watched","getter_name":"durationWatched","moor_type":"double","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[]},{"name":"playback_status","getter_name":"playbackStatus","moor_type":"int","nullable":false,"customConstraints":null,"default_dart":null,"default_client_dart":null,"dsl_features":[],"type_converter":{"dart_expr":"const EnumIndexConverter(PlaybackStatus.values)","dart_type_name":"PlaybackStatus"}}],"is_virtual":false,"without_rowid":false,"constraints":[]}}]} \ No newline at end of file diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..40c28de --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,62 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '15.5.0' + +$iOSVersion = '15.5.0' + +pod 'GoogleMLKit/TextRecognitionChinese', '~> 7.0.0' +pod 'GoogleMLKit/TextRecognitionDevanagari', '~> 7.0.0' +pod 'GoogleMLKit/TextRecognitionJapanese', '~> 7.0.0' +pod 'GoogleMLKit/TextRecognitionKorean', '~> 7.0.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.build_configurations.each do |config| + config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7" + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion + end + + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + + target.build_configurations.each do |config| + if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']) + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion + end + end + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..3d61967 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,351 @@ +PODS: + - audio_session (0.0.1): + - Flutter + - background_downloader (0.0.1): + - Flutter + - DKImagePickerController/Core (4.3.9): + - DKImagePickerController/ImageDataManager + - DKImagePickerController/Resource + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): + - DKImagePickerController/Core + - DKPhotoGallery + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Core (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Preview + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Model (0.0.19): + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Preview (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Resource + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Resource (0.0.19): + - SDWebImage + - SwiftyGif + - file_picker (0.0.1): + - DKImagePickerController/PhotoGallery + - Flutter + - Flutter (1.0.0) + - flutter_inappwebview_ios (0.0.1): + - Flutter + - flutter_inappwebview_ios/Core (= 0.0.1) + - OrderedSet (~> 6.0.3) + - flutter_inappwebview_ios/Core (0.0.1): + - Flutter + - OrderedSet (~> 6.0.3) + - google_mlkit_commons (0.9.0): + - Flutter + - MLKitVision + - google_mlkit_text_recognition (0.14.0): + - Flutter + - google_mlkit_commons + - GoogleMLKit/TextRecognition (~> 7.0.0) + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleMLKit/MLKitCore (7.0.0): + - MLKitCommon (~> 12.0.0) + - GoogleMLKit/TextRecognition (7.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognition (~> 5.0.0) + - GoogleMLKit/TextRecognitionChinese (7.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognitionChinese (~> 4.0.0) + - GoogleMLKit/TextRecognitionDevanagari (7.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognitionDevanagari (~> 4.0.0) + - GoogleMLKit/TextRecognitionJapanese (7.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognitionJapanese (~> 4.0.0) + - GoogleMLKit/TextRecognitionKorean (7.0.0): + - GoogleMLKit/MLKitCore + - MLKitTextRecognitionKorean (~> 4.0.0) + - GoogleToolboxForMac/Defines (4.2.1) + - GoogleToolboxForMac/Logger (4.2.1): + - GoogleToolboxForMac/Defines (= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (4.2.1)": + - GoogleToolboxForMac/Defines (= 4.2.1) + - GoogleUtilities/Environment (8.0.2): + - GoogleUtilities/Privacy + - GoogleUtilities/Logger (8.0.2): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (8.0.2) + - GoogleUtilities/UserDefaults (8.0.2): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy + - GTMSessionFetcher/Core (3.5.0) + - image_picker_ios (0.0.1): + - Flutter + - just_audio (0.0.1): + - Flutter + - media_kit_libs_ios_video (1.0.4): + - Flutter + - media_kit_native_event_loop (1.0.0): + - Flutter + - media_kit_video (0.0.1): + - Flutter + - MLImage (1.0.0-beta6) + - MLKitCommon (12.0.0): + - GoogleDataTransport (~> 10.0) + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GoogleUtilities/Logger (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLKitTextRecognition (5.0.0): + - MLKitCommon (~> 12.0) + - MLKitTextRecognitionCommon (= 4.0.0) + - MLKitVision (~> 8.0) + - MLKitTextRecognitionChinese (4.0.0): + - MLKitCommon (~> 12.0) + - MLKitTextRecognitionCommon (= 4.0.0) + - MLKitVision (~> 8.0) + - MLKitTextRecognitionCommon (4.0.0): + - MLKitCommon (~> 12.0) + - MLKitVision (~> 8.0) + - MLKitTextRecognitionDevanagari (4.0.0): + - MLKitCommon (~> 12.0) + - MLKitTextRecognitionCommon (= 4.0.0) + - MLKitVision (~> 8.0) + - MLKitTextRecognitionJapanese (4.0.0): + - MLKitCommon (~> 12.0) + - MLKitTextRecognitionCommon (= 4.0.0) + - MLKitVision (~> 8.0) + - MLKitTextRecognitionKorean (4.0.0): + - MLKitCommon (~> 12.0) + - MLKitTextRecognitionCommon (= 4.0.0) + - MLKitVision (~> 8.0) + - MLKitVision (8.0.0): + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLImage (= 1.0.0-beta6) + - MLKitCommon (~> 12.0) + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) + - OrderedSet (6.0.3) + - package_info_plus (0.4.5): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - pdfrx (0.0.3): + - Flutter + - FlutterMacOS + - PromisesObjC (2.4.0) + - screen_brightness_ios (0.1.0): + - Flutter + - SDWebImage (5.20.0): + - SDWebImage/Core (= 5.20.0) + - SDWebImage/Core (5.20.0) + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - sqlite3 (3.47.1): + - sqlite3/common (= 3.47.1) + - sqlite3/common (3.47.1) + - sqlite3/dbstatvtab (3.47.1): + - sqlite3/common + - sqlite3/fts5 (3.47.1): + - sqlite3/common + - sqlite3/perf-threadsafe (3.47.1): + - sqlite3/common + - sqlite3/rtree (3.47.1): + - sqlite3/common + - sqlite3_flutter_libs (0.0.1): + - Flutter + - FlutterMacOS + - sqlite3 (~> 3.47.1) + - sqlite3/dbstatvtab + - sqlite3/fts5 + - sqlite3/perf-threadsafe + - sqlite3/rtree + - SwiftyGif (5.4.5) + - url_launcher_ios (0.0.1): + - Flutter + - video_player_avfoundation (0.0.1): + - Flutter + - FlutterMacOS + - volume_controller (0.0.1): + - Flutter + - wakelock_plus (0.0.1): + - Flutter + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - audio_session (from `.symlinks/plugins/audio_session/ios`) + - background_downloader (from `.symlinks/plugins/background_downloader/ios`) + - file_picker (from `.symlinks/plugins/file_picker/ios`) + - Flutter (from `Flutter`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) + - google_mlkit_commons (from `.symlinks/plugins/google_mlkit_commons/ios`) + - google_mlkit_text_recognition (from `.symlinks/plugins/google_mlkit_text_recognition/ios`) + - GoogleMLKit/TextRecognitionChinese (~> 7.0.0) + - GoogleMLKit/TextRecognitionDevanagari (~> 7.0.0) + - GoogleMLKit/TextRecognitionJapanese (~> 7.0.0) + - GoogleMLKit/TextRecognitionKorean (~> 7.0.0) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) + - just_audio (from `.symlinks/plugins/just_audio/ios`) + - media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`) + - media_kit_native_event_loop (from `.symlinks/plugins/media_kit_native_event_loop/ios`) + - media_kit_video (from `.symlinks/plugins/media_kit_video/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - pdfrx (from `.symlinks/plugins/pdfrx/darwin`) + - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) + - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) + - volume_controller (from `.symlinks/plugins/volume_controller/ios`) + - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) + +SPEC REPOS: + trunk: + - DKImagePickerController + - DKPhotoGallery + - GoogleDataTransport + - GoogleMLKit + - GoogleToolboxForMac + - GoogleUtilities + - GTMSessionFetcher + - MLImage + - MLKitCommon + - MLKitTextRecognition + - MLKitTextRecognitionChinese + - MLKitTextRecognitionCommon + - MLKitTextRecognitionDevanagari + - MLKitTextRecognitionJapanese + - MLKitTextRecognitionKorean + - MLKitVision + - nanopb + - OrderedSet + - PromisesObjC + - SDWebImage + - sqlite3 + - SwiftyGif + +EXTERNAL SOURCES: + audio_session: + :path: ".symlinks/plugins/audio_session/ios" + background_downloader: + :path: ".symlinks/plugins/background_downloader/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" + Flutter: + :path: Flutter + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" + google_mlkit_commons: + :path: ".symlinks/plugins/google_mlkit_commons/ios" + google_mlkit_text_recognition: + :path: ".symlinks/plugins/google_mlkit_text_recognition/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" + just_audio: + :path: ".symlinks/plugins/just_audio/ios" + media_kit_libs_ios_video: + :path: ".symlinks/plugins/media_kit_libs_ios_video/ios" + media_kit_native_event_loop: + :path: ".symlinks/plugins/media_kit_native_event_loop/ios" + media_kit_video: + :path: ".symlinks/plugins/media_kit_video/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + pdfrx: + :path: ".symlinks/plugins/pdfrx/darwin" + screen_brightness_ios: + :path: ".symlinks/plugins/screen_brightness_ios/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sqflite_darwin: + :path: ".symlinks/plugins/sqflite_darwin/darwin" + sqlite3_flutter_libs: + :path: ".symlinks/plugins/sqlite3_flutter_libs/darwin" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + video_player_avfoundation: + :path: ".symlinks/plugins/video_player_avfoundation/darwin" + volume_controller: + :path: ".symlinks/plugins/volume_controller/ios" + wakelock_plus: + :path: ".symlinks/plugins/wakelock_plus/ios" + webview_flutter_wkwebview: + :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" + +SPEC CHECKSUMS: + audio_session: 088d2483ebd1dc43f51d253d4a1c517d9a2e7207 + background_downloader: 9f788ffc5de45acf87d6380e91ca0841066c18cf + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 + file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 + google_mlkit_commons: 384e4e206e122b6dad430d3158205e0b2fac6789 + google_mlkit_text_recognition: e540f2aff997f2b0daaa1b4fd5ead3b0b7030adc + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleMLKit: eff9e23ec1d90ea4157a1ee2e32a4f610c5b3318 + GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 + GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d + GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 + image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa + media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 + media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a + media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e + MLImage: 0ad1c5f50edd027672d8b26b0fee78a8b4a0fc56 + MLKitCommon: 07c2c33ae5640e5380beaaa6e4b9c249a205542d + MLKitTextRecognition: 3b41f3ff084a79afb214408d25d2068d77ab322c + MLKitTextRecognitionChinese: a7e2d3e54d8be80091f7064741c54e2298a9d498 + MLKitTextRecognitionCommon: cd44577a8c506fc6bba065096de03bec0d01a213 + MLKitTextRecognitionDevanagari: b7a59a5e337ccb669eae82a503aa8e9287ba0c58 + MLKitTextRecognitionJapanese: 4a62c24ecf1cbaeccc8a235c81c0ba397807d7d8 + MLKitTextRecognitionKorean: b86e13e4a648efc7727d3261ddbf8afbf467c5c1 + MLKitVision: 45e79d68845a2de77e2dd4d7f07947f0ed157b0e + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 + OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 + package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + pdfrx: 07fc287c47ea8d027c4ed56457f8a1aa74d73594 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 + SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sqlite3: 1e522f0938463e44b7faf50393b40bdc1e1e456d + sqlite3_flutter_libs: 1b4e98da20ebd4e9b1240269b78cdcf492dbe9f3 + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 + wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 + webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 + +PODFILE CHECKSUM: b02c94e3a8abdba64191e66ef2b4faf4842a32c2 + +COCOAPODS: 1.16.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..995448a --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,757 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3119135A6BFCE036234BB8C6 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82592F36F298B166B1866452 /* Pods_Runner.framework */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 9F99491DB3A95B9B76E4A383 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A4AF313A330A1252B35DCA3 /* Pods_RunnerTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0DF8FE26D5A19C8FFB977B0E /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 1A4AF313A330A1252B35DCA3 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C134E69A142BD6AA676F65D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 661A6A46AC16C4DCFB9B5754 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 80556EEBF8D0870CF6309BE1 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 82592F36F298B166B1866452 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A835FC48B685AA61310C51BF /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + E07E37C0E53FCE83C8A3F277 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3119135A6BFCE036234BB8C6 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C333CB8807E80A9B30F7CE7C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F99491DB3A95B9B76E4A383 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 663CB87E33C292949D6B6185 /* Pods */ = { + isa = PBXGroup; + children = ( + E07E37C0E53FCE83C8A3F277 /* Pods-Runner.debug.xcconfig */, + 661A6A46AC16C4DCFB9B5754 /* Pods-Runner.release.xcconfig */, + 1C134E69A142BD6AA676F65D /* Pods-Runner.profile.xcconfig */, + A835FC48B685AA61310C51BF /* Pods-RunnerTests.debug.xcconfig */, + 0DF8FE26D5A19C8FFB977B0E /* Pods-RunnerTests.release.xcconfig */, + 80556EEBF8D0870CF6309BE1 /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 6F5F8062AA4AAAF12D9A01C8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 82592F36F298B166B1866452 /* Pods_Runner.framework */, + 1A4AF313A330A1252B35DCA3 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + 663CB87E33C292949D6B6185 /* Pods */, + 6F5F8062AA4AAAF12D9A01C8 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + C3DF1EACDDD92F15ABC1AA10 /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + C333CB8807E80A9B30F7CE7C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 54ED7A9E96D262D2CCA09D2A /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + AD4B367B8BD09307A47F69E6 /* [CP] Embed Pods Frameworks */, + 7BB64F6B2C5FC255ED8AB5CD /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 54ED7A9E96D262D2CCA09D2A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 7BB64F6B2C5FC255ED8AB5CD /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; + AD4B367B8BD09307A47F69E6 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C3DF1EACDDD92F15ABC1AA10 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 2HH8RQ9RR6; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Madari; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A835FC48B685AA61310C51BF /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0DF8FE26D5A19C8FFB977B0E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 80556EEBF8D0870CF6309BE1 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 2HH8RQ9RR6; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Madari; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 2HH8RQ9RR6; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Madari; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..8e3ca5d --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@main +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d0d98aa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1 @@ +{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..26ee2c09dd6b33e951ecae83bd079a4d5a6fddd0 GIT binary patch literal 136326 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�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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a88e33f18b4b88f45c781a5f50823b6f0baba2a1 GIT binary patch literal 487 zcmVdFM@$UV*-`6}lc+h3z zdPYV@Vm04bzC!lFLjiX7zkmL`-Lvn}_8szGo_4)I?wsw6%;V(abaQ^g?3%ycx%>6ZSvD4CHfEMxVd>b zIIsNwtJl@R%FDxpEl^Q3GqbT7cXb>J3}FR@8S~?B-xRyrfjV);2zpe>d3uPrI)B=K zkb#Nmxtgj+bQCU~STqCEkmI5SH|H&QaObvPaWNAU6A7Au0GNjLON#XIXu_kJctDwE dvWp=g008NXn;{~on-~B9002ovPDHLkV1h&r^gsXr literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32926edcbca2fd16e52507f1f5e83af4bc3569b5 GIT binary patch literal 1192 zcmV;Z1XufsP)2Lts~#S0hS zt;@68ub9oY^@05ADsM^gii3YW^F_Nc*L4cRjYF(C@uRcx1DJK%U1*pCbzx+p4{8}VD>H4qzjw~L{kYD2^nrY zH*oe#|3f=g1T2TfI^K9I-<6(ju|^dIs3O-GA(Uvah?bWsbBc?JC@eD=W){ck){tw;m*l%rkmEMxx98em@I0XaYC^MQ>IQ$|5*L% z10Q~{P^=dOvq+@x=&{-M4gp~^$fAOof~ojgXmq5x`PK|qW_sEL*Deo_HeMgP&y%&* zZfD#WY(u>U&Xe9xKHaeAIZrUS1Tbj5xcix@@4mN+qD`O{L9_~jE{I^`rT(5QcbYfX zXDQt+>iXdE<8H<~#>WB<2T%pg7%_os0w#>}i+lGy-1ybJqUQ&PySxARy2%P4RV4@! z6#v9wWp+fF^*f#D$*0zomBEvWrrVCZb9pi>b0bRv=SG^15hIk7KfgII4GubezJ#sT zO$t}BiU9`pQXDT8-af(9A;wa*x%N8|%0_q~Hev#T1sbBMkt<^zs@eD+@c79mKlphE8c0)t$DX>OZ9q} z0EVvIbENic;r$Bd1axDSs>pB~<9jnatz#i+U@-LdQ3pc9l5|~?HWU?^(=$w*VFpjC zqRMQVmJCq5V?WUs~$EE12NnpC}j#c7WeLs-Nxd z0mXnfvj+IY@LRLpZQyj==ga{U|klqV-QAu!BJLG7ETn>Hz`N@Jo2qwJb2KmFPv z!E8y6nh+Qyx%2Y2G@Nd$s-C*iH8L~Pt;`gZm*?-?nKU&aaJ+n5i{Y9cA0PPX=Usl^ znm{0Fla~gLV^ZAi{F1Hzg|}qzveznj6})ob|K;x{sJ{Thb;;N`0}7k~0000}3f1dM#CZ$AQr~+W^dNa(Wa?shT9CWrS2c50TL1(LS(AlbNK*Mw+ zrH~jAgrVmDf|-Se;by4!!l_-mF8=Lx1EZCz8>_$b?V?qyoXaZ7Jm@nB4a5W8-G{&V zt*Jm@S)Sv|hAr{(tMC8$rI=ve=H`Z9J*`>vxxI2Gp@n#U(}Q9nxHQjESKy4Xgp^ni zOa<<5KdCwMSMGfhqq+DcQ_vuD*B_o8d9TYxwVPdT3_~!c97~FcMkphq_wbR*_3Mgi zY7k19I#bY*Q0R?atvV)Ob-D92J;oU!f>Mx~P$@J_IAd>bZD~67BFLYr*cpKancv#G zKR)bp8%B-O$vD>};e>EO2$2N1DWH>~zjpM$^vaSocc&_LMxgzdE`509h(_?&i%WD$ zg_Q6{2{9i+1I;C2m{2U<+1lc5T&-CwC>6ES4-JTCx9z0yM5)8!b>znw16DyKNDH`1 zZ}?1@&m{@>^>rWqb^R|MPD$$YLx1}E-v?iQ#X{*Vo>IU~!U3oz6!BHPP2m9@lkT=B zs_wflZ{dRL2F(+RbK7@l1XVcQ1%@Gn061l0Q(y?Y&rCAC9zo*4&|8l`e&?~Hv)_;D zga%{u9zPNJ_jxNOF2fiMhwPeW)Agi@lQL^UuxrIOcjm_@PgZT*xM<~y>i`|``OZJN zAGQ?C8Xx+GV^YL~uu!eWU07CSn=bo!ww=QkaV9o#huKmivXGkCbI}9GWMh&Xznx>w^cEV_QGJJV>kV#Zo=BezYnr!o<+fNCFEC`v_r*)J8i$HX7l)YEh}zQxdY-wcGE|C7S5$v=1 z{9tUn!dnjRR$>FL#Dw4^v~sy5vB9Aa4jx*ubLWgZa%Sk*#KcE!PiTTMK{4kPVS>5I zjTzvopKA-kQe7zzZ)fbmRv@;Rs`P!vG7LnJu_EionG(T~1*piG@O==iXm* z+pY73mXN-XQ_2hq7SsiJA`nwM5uU&oNnD6YxCoq&aImYy(?6#^=EJuU&cirLl@pYM zm4~Or2A^;#OruL~_L>=aW(8ezQ#~?_L@W-7RB$E`Seb$ql-QW5C2-hZVa~(BU{QjP zzt*wrfoA98#lRi8@(J(gbb-fWF&iOnt5vy6l~C=Fz(SQVG$OefDOQK8xV|n8&{mhL zdh^eE_8!1+Jx!Id>1mK&Ia_gar>0wVEfi0T`bH`|xT|^n;>Oihj1wK5&d_AP-w!8( z605DiV#FCUCqCGMm`a))q~J=Lb07W6j%^nE42GT+G~m@e`bgjJpJl_o#5E=XD^oK` zlt~D`wZ!v}{|*LxBa?)dOUz#Q3;4s1rVr{8>6*>!)n|QVoNY&}`oZ^mPy9A; z=4{dx@Lmbb;R6Vdh)^c^n%iA!vwb`ffRyl0O~J86!^-=5fwOMU9&0LdTza4(ks1yi zJhkc@%GqYjkz|r^Q)m4~K#FHjTM#>b6Uht2@ytjPMZq2ZykvKJID7&YmZu|DGt&aki8GlK! z)yShfBh2I$io0ucB*w+!rlv17u1+s;%Fu9)Z~W;`dXFEETl}ry$U<`9kGgG`jGUboQ9Sb}SkF})b9_jyA%Fqf!qJ{(e zp6}@3oSPdFs{vJYN5q)?Xd)<(xP8}7yUUdcVl=liA{?~}tE+1_|GekGQ>ulVCINJ? zNzY_3!dcl(^|x%;kRh4T91phU?eT^^ZLvV`QhU1!X`#-HeN&VD(J6a@bM3LCu$FYA zeqM7wjZ=$$=ds@`fB2!1GjH~sKK*WIXToCKxaO`kt*vFXHJOtc&GQxlY`dbGYIs!r zaQ!_k07*qoM6N<$f`x1&-~a#s literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..49d14b6ed64d522130669f67231a7995996dd30a GIT binary patch literal 789 zcmV+w1M2*VP)O~O2reMRAVdt{f)qWFfJ@YyO8|){#e+c*B7!Fs zNWgf|L@%h9VqzktB8eUZIg~^jwP0$o%PgIl)>nFCYm4<@;+L1X%`gA?-kZ#zP$)zs zI@m-BMh-#l@rf?RMAD3#A++5yU;>Lp9#tpOVCc7}W=t+sm>C z(hb-RSAk^j*KhA{w(V%SwqWFiF8AH}df$GPAS6+gI=oarI4&Ugx0jW!sW~nT430m4 z`GsW-6g5vvBvO9tyuJC{S#?InO785a&FA__;JYA103s;jXXn)_P<<@5tZZ8_#Ep!~ z93MtyjN(Ehf#;o8Yqr_ElDlsAPEm;r?ma|XMSRjSv!1A%}jx;bud=PgZ9ArUQ0oHHfObL6>!Lbh)|NXHHMw>qR1*ljWHdO~y{DR+7Qd{kadB`3nMbQOR2?B=_&~(rMiQ?WtGl}VbMD{xKg0PAaXJ;K TzI6Ei00000NkvXXu0mjf*0pT( literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c7cf907d692bb32469a53c0867a8797ceeccf2da GIT binary patch literal 2038 zcmV_6W0lGmeQ_i5`&WnrKI6#OQV{A)T*thQU%hqsFxtNOOXmG zPC(=kqCiwCwMd0>h!7waIZ8>Dbx7hkwhI`DO|hM993Sho_nvq3dvBbGBBWifca=uk zZ{_uPZO{JZKmYIly%}23Hn@QOVWb zvYT)E^1VN|x}2HqHizoI-qd{JnP)r}>&oI1&RH@R3mrds!Qa;Z#v8XDXtg?B8SFDx zxaZ${@8pwzv?9EswA7Apf(n8$!JJ?cJbtpHWqaL2zsJ+JL{4zI5QiI^b;cJK7J00; z1fvXNCULQjIYsz`UAt?3d{@b$MgJGLAGfv+96apQ^`)hyNC+Z;QUE0}i3w&2H7r|52io%Z3{c1Ug%`>zLHdo@>Ea z2(T;y*Mh(d{D27&TsM8p@p#AS5B~J*HTP^xKZdi33(|HzvP}zzD_sTi3JMu#AS^)y z6y;_t5J?F~p?VHef!iN^aN(Wn9bobFh_i+ZtfSrCXPsnt<34FDR%21FcAQ!DB&0Y zT3jOTdFpBJ-5Wh#Z#n{}i!0Rq2qE~z<;v&pP7LgQeZ=nmm9in zAv%Z>r}Sk1e+Y%kg{+nbb4%TMVW_iumq7KV`{<)sV?jU;iLEdvZCv>#crPwE=c>y z-<}_BI|f=(NF;b1-@GNT~Alnp^f)=%gf)N zoID?mU^H8;86X(YRF+Nk93h;C&-C{E<*#44J4L9aRyXj^capM!I6UMzM6k(am@>_P zeRC9NG?+Aqg~SPr-DSXv)jE8R&$ndNs^~jM0(J+b)L`b>7b=7K)Ob^&hSf2gd;4v` zosqgwj0?({A>{;8DJp;xxeeT~jSV5f3{I~$Oqq)dC63S(agl}`8ggQ6sHFmoFD4Zw zR1OPi39JN$nB$0KCmH6fzM=nx7Y(44>H;m3tXx@wA_GzAHbWEPSnO;xrXTg!bai=r zKBS3AcQ^L8*(uc+Ez)(D)oM^C{eT3RRdK6bLRQG2;}u`Oai+L%#5F(s!M}Ixiud*r zWeK1(q$nZI^z#ckgXyt!YBs*(ZrYsk;)10lOkZmFp751kK(C)@j?#a62Y11^QD3D{Wn z)RX1wZ~yE*vBW~=)u#Y-lId=%OkJ7b%0J87tSiW=w>EGLa4-Qy|r>d??h-M z78TH*0@;*~v#ziI(jDuer@mN=G~a$&xNzvDOKNIB6;ZmaMxi>#UjJLbT-zhsWPN0lHEomnxj{j_4%V*4ALpheP4; zpfMTMv=u+uuPN&0*7C9 UKu4u>r2qf`07*qoM6N<$g4YP~JOBUy literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bad8748eab4a130e6c626a8543411a04199694d1 GIT binary patch literal 3818 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..32926edcbca2fd16e52507f1f5e83af4bc3569b5 GIT binary patch literal 1192 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 FV1oStG^_vs literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d18d8f9d8ef6b00314579a8561af6bc9ef63785c GIT binary patch literal 6134 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..25519a7f9137afef0b931799a9a88e3a4e52c0e9 GIT binary patch literal 1628 zcmV-i2BZ0jP)qvuF`EFL4Br?c{i9~m z>CMrZ%9%1}vN9Fz4>28+DJl?xk+(4rx#Qs8xV_!y*?zlAO@9=)aK6mMk7aq5yV?8f z@B4ke&o1z)s&aQ&0TO?^8UDS-vCPysmYEvIGE?JNW-7v1`jVjzdc9IGn2?$Z2T1!y zw-XB%4PUS8@P-Zb$G%SEh3sk5Gw04pf9lE1M;}2Z$s&w(XywY*nsaj!>`8=3ZS9>c zEzKW&oV$Bx?&eLV$RdeV_u1j@A1>S@+9t(VL$ab^%wxi1R#(0~bLkR$cJ_^fMGQ*{ z1kP?Nw-TIhw_~^kz>FuDG7Nh~mM?C8ZSgn945!^XERgTwp1o36SDxKr6NHeW01eOZ zUk#%@r%tzjdpv9Dl3R*3(9!YRJMSh&Ma@WbgsIF^LZMq)!;sc6ObBL|O3EfITF6I5 z-6AY#RqeKN9F_}G(=3FjDpLsK)gc-JV+v#JZ*H!CZ(m;V#vAeeSh0Yq=lq4MUmZ&q z#fi3fg;9buKT$v-NYfE%bOIv^cz?&PyVtG}oz4--#)?H1rLLsRg18JZ)-@Ou1%W4o zXIjJHOV^Q5IMhsrLwKMD6eCItStu)PTTN;GcRxWhK+y)8io5j?o-v&Qz1{?yXm=zkk1d)~ zyh&y3$EvEN+j-J{(rxFTZ-*JED03 zh=2)bFj6q$WTcJyB+08NDPl|yRcCH27Q|T4d{${m@Wg47kkBcG1F{U!$}=tT6Na%e7=?g#YNmhJxBhAWcM0JGAk6Kt0mJo;4N+~l`gSi4pp@8u*G!I*+X4`XeMu`Or#mu)VYSyd+`G_u@ zA)hv;2)sYpX6y9%!!EaU;^gJ(GjSXzQr7P24@%OcxcF!yNUCh8W^~I)4KXcs_Mrn{ zxlv+4O| zM5#{-we-0X^JiwQer7C8BV!p=uxm%hmq%q^01shlCIb|0hGOj|2J$K1V!7<@l{hYM z*G{Cb0XG*5W^%04nY*>@r`JnCIDmiz(DMTLxFJC)?h5pG2ZNB^&Ie|hf6_6JWz>w9 zUTpf{!_bvBBP_J|rcBoPKuVQUe|Gh9V$7_a+s!`Yj0sDKj-I`D&zWV*p*_0y(cc?j z{qFO6W%;4v(%AI0u``*#g35Ygaq8oRJtt2QJ@EDDX9O{?8g3dGh`VcI!7DFEq*dmy zz-Du*DvwrI%Z%zh)9uetz1KI$*z(E>izr5f$s86m!ZCe%LB;Oc(k(+VhS4=S+!-3Y zcj3aEqM}GKnZwe_(0!X}{re*$-srFlvIz_3XD*ok zAjkE0cY|=&xHxz$MK}CtdQ-55(Da{)>FE(f`Dgt<{=OBd8pkqI<5*^D9Lr4cci_J{ aq5cGIxSdK$NzA_h00006JlUskSHt3Y5lj>|1Zz5{_Ce;ENl!63U+0=cRIe9 z$0kJ3%vrCFe~(X6b)@Y!Z0zE1YHSPx&4)#=h&5Hs7ZZuuU9exxO!Ov-z6L1A9Y6cX zk0254#Y+{%A@)n8u>YE_Di~fsq8t~B5Vz&O=3tW!y-&0rh8wg_bv*gIjf?rv^srA4 zLUKbDGU*ZH}1EVdfOpj68UE-%7*8@J)_F}kCqUXLoii)hl#>UzK zh9*qIIenvMl%Xb%VTH1iE1mbKod@ZgQX#=SQOe9&Q-Qlkz7>;cPu=}{1vg!4J0qw7 zCg^LYxdXBH-nPDJo4>9nlkg#UZ4R{I()GJ4cmYx}a9RHMP`94ESj|lv1rD>#OVNKRsMFG^~jTi}0=7Px$Uy zK8A8=4`x?2f9GJL*@9F%ahE|NwmG@dbc~j;{;2cl2oYsT-|jUe8|sgk`bBY+pNkht z;Hq%dKdqV49_>}Xs1>gIdsp0Yl%f^tkqGKeEsBknCbUo{$-BG?BMm&N%|6Eqb6%bj z(CChhM7B0MdpYomHR66WFdo98%rG?O!Am5-ReqLRAJG-k7Uw&D@9t3e{qld?u(;^L;83_VKPQ+XngMwz8U8ekTHbiH4TN~)k&kzScj91jTIXM z3r~`dc?iX2wrJp4x*aY=l*en~vfDD^sQY3oV=8eY!BY-e$|aIyJOsO{Sc6XUbQaK{ zS5?tW1~O?4pBW4Vaj7+poR$3waifDvgbETO(xa>?P-FSW?=f(t&^gDurVpoM`hfv` zquKPNj@#r0=-JD2vxl;~xlY9TL4DQ^sUAL-79<~%m=j8#8?AkYH2@*%eqV^dG3UaB@!m9+p~X1 zGNw+Bjj?G+)?4@BvFoeXOJ#RWl|MAIpvJQhWVBMn<#qG!pzaWQ<`7r%ifB*55$b#U z+$N{37vP@P;GCm@E70z0ZCOdV7Fw9$FD|%gY+iG3f>Hx{$y2m~%+NOlydKR%Yq9HG zJR>J}K+JLKW-3KoSjov)IQ^tQ2y!}XaLV?TXauG6nPa-F2KxS@KZ^Plq2gASp=I67 zq4%yAYZMbds4rS6I=Wkl&P9U-y_1THWD2@XZ}wR+toQu@Fwr*+#s=RM=PIZ#r+qBtBi|MqyBehX^FturTf6>orF_Yg*xuH~mqk zY!@%SPtjEtqpey~hyJ=mwj(M)B~cdr^Z4zx++oePZ(8P zdltBwAn@~;J&gLe^(^Z2#1fslj>R$k#Wt9{#2dn9@Wm1o`5q*@@vBJn#^CugcYrzP z0ogPfDe?mz4WRP)sx|eg`$y4c->lceA$uxz&bfu8I_;-3iuh@`7CN4 zNA|Ix(^*Jxpsm@C-Sfa++!#Y9bIRQjb{1QzJ%lAC!(C~hv!A7TZSA(!97n@cs1@J- z+rN9$I{=mlmI}?I8o!84e^itK5GwbPTQl#PowX&mcEZ;x+}gUG=M0864boF->EG5} zb>yx+jsbyr*wHyeHPtsV=fU{EtlAu;27ku%XR$FvrTRc4RRgEqbiBiB>O!tQOQZgJ zbxxrEBE#AE)lGY0pW@n~D#TdKxfNQ8(nr^J&5I-LfdGc*958UgN!)#uTEaPrb@%#Y zpU6KJ_*FBm)8imLb}I@;kDLB(?W0>l#{)o@mNK?K6-&LZZ8c?TQb`yvSd!Y)+{`?EKEMTc2SLEM9qN(qV z=uj`u1gAv~a4OBE3)`Pe-sA1(t0ba{9HE|#6s&@onW@cE>OS&C)3T%8oH)a(Y?7lA$%%IlO0h27#sB)GwJ;O{D2Mg}e3}820(;`#~fX}Za(c86@g9LHq%Y2R$JeA?&U-swv=jr@ydFipK~e0YPb*6 z&f}uDNlj>QZAdCMM!61=wbz7;NJ&6@!Mu+wqNlC&)_>1E$x~#JZAq}zQN_& z+74NFSVECLz{nw}UlPoY#ie)MHblX)wlB^04a0M0b3A{^nS!b54;+^y52r;wyDCY; ztMiKA#)v{JepucDg7FewoF~2Ztt6DRiqx}(>6C8hu$C6&7tU>c=AxbkZ(QLq><02n z?+Ng^*+07tJ4qrZ-F;Uj0@T1T;HoC-HO=tYuM_9U&qiEB`^ge6RH=n!DPogJvn9sn z)$&`>lVS3UIBU86An^!?=s6IgXX_$g4~VZWP#5F*m=>9Ht_N`{api)~MZc%k(AvB| zcf+KL6~!-TlMx=U_hes`H^RZAp3}#jnk_$hRvv~!vOWIymWrkn0xaE5MB#T6=k6t;iELqFsxt>ZmWi6nv?FucSp zUp#yY^=s#5{$A3e#4VqKth18gWXGkJQ{enynP}5{DPYoipRqbe;bUP_E+!|v_$M@StD^GCM{>knAi&Xl0?BA?I?T)W$AY9N zXc`$wx)*LEAc-4(QNYgrS{qM%nc;=kL&mJD@2UM)Scd!ywuYAwee(=|e|EUFu`#1rQeH4K>~}D+VdYcde)n)T&lKZZ z?~TnwE6xNUL0P#TWnN#HBh(H})5U7&WY({{&s1o=MpF9zDVh|j#Q`hL6eqs8_rX;G ztJ-=k7n6!ttA9EE92!r70V>QVqGA3Ss|<2NYJah~KlJu)Q|p=}S#V7fUU+)lQSMHJMVD87x^e4RQ|wYw=xlmly@)KMv*)KA)H3wUp77v`NarkH z?7TVJ{Cx~%K(U@%VG)s~dF&2ZjY~^6+3|I;`oTMkHAl)9$Yn56BC^)l^Yh+Bb7i|! zq#6B1H8X$tEFvDzAx;mN)7MSCg_iH<>FmeJz2yS{dh>yfLTKO*A)gKq*^G`W;xnEi z##4tDZ(&!QK@(wtb53(F+c&M%WSN{&hsB>fJU~9?yL&fPbMn5vKgZ&x%{xZ9(fsrz zse(NeC1%_%HS3iOA7mLK$FXu8BiFu{XSka~yA()lH+(PF7iyV+q%FDgF>>57rD_V@ z#1%y=w>};|$Gud7`Pmoipoh`h^_SXji}>%vBvbi>d`)NTd~bIjuZ}bVA%z4>ESX5C zP(+UabJoky$Yc%A{8icfe~z47T<(TZw|8{5WJys71HlNn&^Rh+;67Kx_TTX*l){f` zt7V;DFyldis#?B*y{2y%T^}Zy3I_4u4LVOsh4s z@%9C|X+;RpeC61@z^y6bP`EOjxT1cpX6L&;Z~1!9pf!7{>SnCu)x62Z3(wsQn%TM8 zsz+9iIqRdKak($HXU2R@Pfnn$rw^MWhU)T(MF6C53=Sh)FV65!@>Kr#oA#u4B+My( z?Wyuo+%C62iP|Z4B}LWkon5_~QNrjEWi%eRX@WJ#{Jf#U|Fnt7pXuV9^Nlqd?YRb> zev-OsT%BsV812+Zo0irlk^!GGrgnqBI0W7|#WC&H?B_0K!>VXLDOvTj>;mfe*Yh~H z$gXD3sBH40l=?$_kqHj@d$y8_f^E&RbhP#OA7>Vs<0rVVW4rIu}=-$+vKQ`7iL^3Iw!CaatCRVL!_RDq+fG%EFRg4QXcJ z^!O|jEC5V$*kBRSgYu-pcRbvG!u7zr<{<{S#k0KgGoQ@0i8LdPsYNhgLJkVSI4#w9a_aPBI@?ND4I{QxOa>jy1#mSM2|^jru0PXtXqQ@<)vINK{ot>^24 zto{ke)F)l2&7056%#7~U@s_nU&cn7F?%UTFDBxDjT=yUNH@BzXZm!J{65OLMnqh)0 znwGY0jzcWZIY%AWWWcK=l0vEB84P+eE525bC8;qmOd?(wN-aqDZcyXuemBUXa2mYA zyqUAmq^Z6F7!942U9Vf0vB$6;2??CoZaG1?sSkjj)yAD;#zjK)8>P-`8|JJfLLNw_ zQL^dV@~N)HxsXi}nKMtYV2UR+wrWAwsl!+@C@?T7*0QaE5i@7^G1VsqE~dxmg+H`%5J4j#LrNj&c!VXz&`*|A4sok#KDIU=wK@JH)J~ za7I}dtp@l0@KU{h>kSZ7Z>7$DlF3JP1V2lWe5>{EIK}T!{}W|n;$t_zi6np!gR@c% zV_7n``hg5Pv8M`b=N#^~+B{9+7fbac%_Ujo_ljA-ikF+@natWryC{Ay>B)b8gS6E} zPW-w!xw#&qXv{Ki&I>7_Qu$wC_`~s?d}b}^owauQ{e3{aPiBDK)04#Cww>kc6D%b`^Z(#V{y(PW h2>E1tF`n>*{itUjx$Go3|DQI(P?lGht9)-B`akvR1?B(% literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b90611b3a05cc02d825ddf21b3b47a869ab6823 GIT binary patch literal 1956 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d18d8f9d8ef6b00314579a8561af6bc9ef63785c GIT binary patch literal 6134 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6c26676ed079150133d70bc2cd633010157a888b GIT binary patch literal 11598 zcmd5?RZ|=c&&A!{p}4cSyHlXR;_mKFad&rjcWsg4x=`HR-L|-Y&-*XFizG9-IFp>4 zOp+6=qAZJwM1%wZ0f8znC#CjZZ2O-fK>g=i8j~#`AXsqarNq^}A+P)q^Yk^+KmR=a zsX0IQ|L#Ti&3p&ZM3oXLG^U7(1IiRfOUzwNR$P`Mx(-B^waZb(#~2e71;v3h#2AV! zxhi2AWKXR$FW)8jr?T75=Vtp$_+;~~MnL7+DnL?Wq!%6`T|uL~>-uT>U;a(rzjU>! z?ADbmxCo>3r`XnnzJN)dAMBgXjZWQ?^4@s3?mZLe){Ebea@pc^+aq( z-9MS8f)D=c^k-FOv8CgrT<=XWUFrS2_+K(xCgM=7CP@^7Yn%l6#UOFB5y>*bz2;Uu|2kI{^ z-fy${T}LJ66E)gZ**loAk4xeR8M$6xRlY<)j}d2^DnusH1qMw1!7nJhzFL7NMfyOt zC=CHO(PUUZV51r`XDBE7y>+7pzWJ&RRhP6_g1^C&JZ%#e3bC-esQHP8M?jBV5S8T= z&#Ow3UywV#Py6E=R*7RVqQVm{B#4EE-2I#>G}>CN%7;3n;D8a`8@WdvIl8^QE&Tco zj;33#)93%%yu%B;+SHaV_Y`GsE({(HKJZYi%qo6FPHF7CYuI7yp4AFgF$}_G+Kq_3 zW4bt@!7eZ-{E$K7Dgpin6WJT8+l z)Pk-77SUxp3c=iHi!9aoq=~E_btCMcNnH6H#3b6QLr47xO-yk@4#EU{yZZ0qPrmavZzlL3GiMf&&NxT+s;R5F6yr? z(JbgOf>JhuiF!o2BrrK}yzy7#_G6zM+wrG1s~wGm!NjpIw&Y6}eq~ik5O(Hb5X(a5mjY_qnPgFa?uY7S4pkW|I*cc zv;DqXO6E**yjnJvV;0Tt@t_#d`;R(;=pIYE?64bE4uI1_632lX&Ng*s5)&DMOry53 zQON(*QX1G4Bgvz-Uijve^t|aw%pt;YB zIgJHkZW*FM(YW%}oGSjiF&rwnKwqk#w){%aG!)BXhNaa->hqHB4!szl}o| zaKByBXcgWTdNH9xp#lSZGFbkDO{w(lE_^>ucXxS`gkOW9z=`M<=P=$F)F;cR@p2{1=qD^K#j`5$H-6dN7QKXqm!3a>C0k-Zq;M zMmQhyUBE=Ty&(>Sm#ZyT)|-SI?n{#nAo*tMigsmNhGXjf@!c-ad7-4ykEMa@7Svor zy0fdIQhA>BwKJ&+;0A?9jv>cog9fX3Xl{b!t2lmf(Hp=hAC1`52?IOM$&!;RvI1pzi<0NikHbp+5@R z0rC$iGK6+v95GRPJoSua?_&?FKFA^vV`x68wTEBN5SLkVdR0yNrePGH5;o!oev$l&=>MI){wdJwLD=hhE#@I z`b9Cp6a{GvGXgc&R9SP;IRMr{DpP)d5vl;Q!K{2RA55N*PgLWqn`ggbK!RoYNbvSv1 z1QmvPm|&?WRd=lUP{%yePvE4cq99n38=E%mn#zZixNtY9^-Sj@a~hs3j&l|cnUSNs zF5x9MM~|@dkh0Io)ag*bmWPwOV4NCRJ459*m`@Tm0hH?ta+;iT;y&j1Fqkp&9hzG) z8d4{$78<4EYZD!h_}6Kn<(x5pgec1a^o8<&n?2^)W1wb`u$XX~g>hBn+&c^d!%sCG ztL{dbm+^3_E*5hmu}>-OMq><9gW!wlM_1CK0pNM19XG+Y9c^+sKTtDr^3`3p|>?{hIyH5AGEOIoy7eq`DtQ ze~~GQ2uh)+mHPj&E6Ob9v>#Ts?DxM#WoH$Ps0~njjF`(k%U1l z+KWL((ovQrK?tL!?c737#QTTK4^uiIe0nW|MNP_#`Irn(7(&OBNu#nNpJT0htViXm z!tBXyr{}dwgEvhGOn|@Jzn(S;`147eY0X9Lk&m=Z6#X6Te$lAoPfB_*H9A{5owo(E zW~v+yb*hra1c4L`^{PXQyaGVJC$m}zH5SD1)YNI4_WRHq4T+L=jC;Z!O#o}Pt$ycg zFRyhbhtEpfX2wcCC=?p%FhkGr#;~t~Q7`$CGvZo44TL3F~y^|DD)1Av5|mtj?LX-I-AB}pTUz+F1O-6yD_4-Vg$cfG`%qAp!>I}GS~ z^bJ_~96o?2yE7d3&pt^v^&k2T5$TCw*VtqD=pi0&%BlN&>c*v2G?raWeGXuGyLC!K&Vaf0Gx!XWU$ z_d!C_LyP3S&eN4zqDL!>@~Sxu5iXDk14_9aJ3eC~c3-E@4+B8?Z-}VRPEp#)tER|j z0qSuNRkwYf?#wohIB0=CEj`4JPxiPBW20e*#)dW!2_Nj7nNUC>Fv?5_Q|2oTT`qH0KYny5({tE2 z{wRczG3$Nn!lFbd3I@M|K+)|UO5C^;F;Y`^Eh#ssp~31kcE;XXfq^@>&IBX)*g@I~ zO=AL2F!Or)E4vH~r6^oqjmP7T@EA zPFt8g!MOM&F+X+b=Q4^a&%6(dr*oZ@K4y&gc=*fcOi!z#buqk=GfEJy-4O2k?FT&~ zcu!3zkdL*Mu8}b&LO+x5C%XmR$Ct;)y}3Z+EeOf4-Xr@qK;jyvhoSq<(=QHv3y(`o z!+awH0}Y@4GDP19+0U+ae+Y^}`s=XQnNTs=?6EGdrI8PY2}U3&1O+9U&9pNO=2frDe{TQ% zi>X&cpzK=wG{(~7XG{$^ z%yat@aOgGo9U)=KtGRC61eQcrV5%+f>+MQwi()7aelmsNfr?&P_9a|A? zbSfQpm)S})0{c4^BGMvabykVc@20k<$-xRUaVdguuh2NLYBoq~aY*Qe+_mkDh|}Lg zhQ?17CH~>S|H3G8k~34z(GY^BY7kf+uSi%b>lPj7^Ap4nd! z!}1Hss2;?Y5(i++JgGtnom==L9d2}l2-~|tw%D3H?f+V=Ous$baOmhLs?}BPVoYs- zXQ?(cKZ)b8hr(~Z;lv?D)TCfYu@BQjt3>f(ES^KevXYLJB!BaZX({9bD{Q>IsTGgH zAltr^Fr9(~;G@+yt)+OHFJaWRfjp*r`3G7^Mrmyz`L1MC$27Tu7c9>w$ z`Ep0JLANK;0%b7OVzJfT?rurf&rM!yc{O73Iy%4}AdnfP&eH}v+)~+z!@bT9hmFEK z+Vh#Ox3cATw|7#YHFd{G#&;hackkZ#wV$cR7{`RoW^V);iA8fr$^()M|CG!Il+aVx z>g)6L(J0UNK%vkeE<&_wy}|<&DGs99%X=yLeOLG|pNS6Aufq}U>%*$zsin^Wa(ShD@R8;2m zSfyOqx2B;{LsW{ZlW}4G zuO8ixXo;uRVq9<~3R?BCmCC^qII39|j3eqL4fPgBM zdctdqSf%q&luP_{9>EhmbSRfDSl#HURm;eC@qt$&m?}m*4i}naF#_ayxqf@GqYlyh zExM2+yJ8Q8VGmFkTU62Ez$^D0_P6p|cH4g4_!>btu7BRE=hLYio>7oC(#K^E$Xv-I zomJAEK3E94K$m~7>pQj^8rEVUrv>bj{fGgl|MlL^pNcOtD+TUzm*+B5l|Jf=+8UV% zAQJwaH{bXof6K4Vl7e~6R4Vobk5*AaP(LN%w@E~p>~C^w1n`_P0aGSCX!|wm?vq!t zhCb;=$!$8%dUn!COs|aVul>;Ax=%%60crh;Qp!KEEvU6so7@Z$<(bZh7$iuFf>aHZ zOMNU>Q^5PspTJT=3Mv|~79=*OZ7rwT3I!IU1`4l6Wu6MJ6{aPp;^m#rK|lghbx!3> zj>kGf5IUcs&0gIOorPe;cK z{lzm2sq^`n<(*$=pF1;xN2UKUODYW&DN;5)R)}EyrOVYOP8WA4fgwvD1>t7jqF}Me zBgN>l@LW*|tpfN{IsH4P%Z6)dJy*UpDA$mQ{-?S>caWrPDhhjn+SJRq>_jE9Z?&xD zv954YF`nN)Y*MdHLS#%rmEtNyjdnquU&Uv)5Rs7gM96ztCU((z@Vz*^m;B1oE|#{s zmgBBA-Cmmj@~Pc8IEsI+1o6`J312zxk zap4uQ!ue!<8v}l&vtXZBC@VSHt;n}Erp;&=Q0`Hcfp_;dsb8r@$85Eaes246s>3Im ziwLc>#hw#c{)pJ6$S;Aed7FFsec++!!0dif#a*1<6iHURZDB4ftx(C_^qfP zg+Oweq%^hti=a72DczSLEC$dnCIhGQ4u@iHs+w2)rE63MR?c^}_FLrr6~6oY72!7O zx^8EaySTPpkOY8j{K|m2qiA6d=7;Bp9Val;mmZA#uVc$TEUTW%l3qx1BS?Cr>`jmiFOQIquKsY zV8c;^|BWKq6lGcFgYh%wNWnuIn*s!dpcbc#YxC|ciEHVx&Zf;GiFf7n$Khj>0PC(x zIU4bbKPVfleOd|xJIiSHF^EMA>jwi}uo#h|NxE=&a$7bWibwZ4!^=U+OULF@ToAz_ z6s>o`>`X|_=?0i}d?v76-@vb<_HUk?;uTrKE;1;Q**8rA+&k?3W7P38#y-W71epKW z=RQaT-JE%_hV^kY?{_#;CSJk6;o?1siRcZw1^rNLoZk6;n}oO&Z?<({+wx;fFd>8c zvGFi4^o5)i3zpngH#v#;0J;U^CRv5aMdEhDaYIE4w6-(HB+=i#yCXDMJ03~P^JzB^ zBDu5ISp6l@@0L;dKoo&kH2^>xmY7`AuRq!3hZi2HoehN}3gq=4NU_7T*;|)r5U}SQ^hU_Bi)S z>4-t*?8M=Ldm9@tv2K`m#+7-y$EK1Pf;$FfGoU!&$_UTeY(A(W{Gc9S4&5WX2;j4(%itP z^F@Y=745_EV=3Tw6FJ;2HC{sHBCn>TF@Qw}1&8_X?vKvIue;&Ie4(oa@S?5vqamXmRGoADXSq5*o&^RRZAHA-U`0UNG0wJiSq3`(-0DB9 z^_l3BqFDzWGnw7~F!sUHr)9yiL2%6I?sm&=ONhf1`WuzniNx8*fK{O}Cvfcl7 zRr^xR_GfCt@!eBnLkc+A+*i7dl-f{0!1F45cl{EKP+sR$ z|79Kcu++Iwp+&MMgFwsJN|tL6_OhxiEvfodb+~!)Eie;1?PzHbbSf3 zz1?LMd&G5$_tR*75KvoCmnZtwbfL*Z-Wm4FVY*ZD zR^Lt;D(T&%&F*rqRC_Ia=$wt%sU(Dw=%^!+8&+a8;y!3b;1x$7@iRR}hqmCz8av4< zOfHN%i?7CEKhWbcZVv)c4L4;J!PDI<9_7k_&qYm=qnaI)sxTOB6h5-J6_pSmk~Gn? z+SyIVX^X5S7By`S{V`_9SJ^2|7t@hD?JSIpGn2)5pb0mXAcTT3dj$Cn*&A*XHuMAP za0R?ZAVzTqu~stbzqJ30-1+gWRaqqag?)Y}mVSdimV#rS#Q>UJhDqWGSZDbN*j(_-u>6)`ZiOxoH zJz-b!vI;~UH1OXoBs&FhX{z?=sKNIq;q#-7rD=gqPs>|)A4J?BIXYMQW1BD$ zQn&r?oY8-&rR&$^N+--U2fQ-^Q00=8bc;)%r+n-VFbp8c57EK~X&IupqNAASS%^sHLF6=>GHG!XZX8tLNICg+Juw zA$8x@S}|xM>14LZX+G@?cThV(6&#ex#iVZ|c7U%TQCF@Vy7D3*c#;&)0k1uvzLpnU zTr3)bPUyufxI`;eK;gCGgk7G zd!uyT@E&YBLDO}O_4QHpSJz}nl2t}w9F(Fmk&R*5gGW5qMHwgDX1|F@>gn>=y=O~G z0*z^!=7XSr^(ypr9RCr09WcB3@9l{~R#kMPHpJ&Jte%1W3sDsDzxOF{kcwl@_9fgO zGc`}`3lHZi?@g_PCgm@%!twlOOJFha2c9;&X^&VJES($Sghc)JY7PgQg8DM~&ov~~ z45PaHK*w@Ocp0N-KRPyk+x6_ipD$ygAvYMi6~&|3OQY;+$qX@U5ib-1FcX#*$m+HO z7$Q@jEbp;6nivIxVAv}0=aA9kHB_Z;xJXYFRMbfnI7V1TGMQKdinN}ND~4}Nx2=>y z&ndB3Ky+pcN);(4FcO@9G5Jq$%%k270+7llx+fapAJjjFYPTD{quKH|XS;$7NJ z^oejGgUzN!n}ms-?>C(tEg9e-FL1l<9B#sz59gYf5gGU4`^o9V-n*sfTvvtX_Ca%y{0pQpK5s;Z8O$X;IQZQ5ewfub#787Kqpx1@F2& zGATK`R;8ASDczFN=pWL!Cwy3PXY}&75jP4!)!LpPJy#`1?@-jb2XW&mt12V}zXUk| z^Uu9dYg=NP4?XU|JXHKQ?Kl+dlL`p!Syhc*3=xm<>~(=vQGzmDM=#6@S*#9{ug?s# zodalGL%47$)w;!8|D@W6dK-~{UFnJb@7U~{e8$nG^qvHJ?WlOFys6KqmL-Tht%_7D zF;{Uo2*e%R1Txh7%BN(5)cy2Hwq`R07|CON@kv1yrh75Ch#LRws;e~j3ztKkQiBLz z2^p~6S@ObhCR<|+Dw z@l?6J^qiRIN7vWtZSs&7)V*r(0iSWBp~nZBec*i_?TLZnA4|-EINO4nhF&|EH-~Ft zCF^6SmPHzHW!_vcqt)DY)CHrmhZ)?nwCFjc62Bmr#$D(mj%bat^0P|fM|OXn7JM$A zW()+(oJybmu}B3T_g=Nc7U>w(fgd@VUBRgmV8lE0f)4ky+P>d^@u=WPm`#737V|5i z!bbULavxHv-s{(XOg08tqcK)eO6u(_MW=4gBhc|-P~K(cXUZ)n(LZRX3cHn_k2uPfO-R3f9{P!Yi%|MwE zaGBI~$#VHAcf4f@K=EumtmuC9S)pcql zCZ6`cxiIXG(nKC%7V}&b|4mwS^A-th4f2KFSYGlwbceC`P+8j;EI%@uj(<>*4ffa% z@i)3YR|i&kXz@UQQnL#pFRy*^{jA(^|3FxRWP`a^Wo82~+4@!xI_HN_m6P!){jjXh zVy}iPA93%dpqO4A7*;2vl>j|czeNbr)`EwXuW?1&Cpgqh0C198>DYCZxrHtaIFChY zZ5_~mvc!YDz&Ky#=vl4)X_6OF^}tc&NjCq(MJf9@)1z{zx3Cyms; z)8Ko{3$zh@zb!$DN~=yM<*##dh16nXW&b$nFW+8c{JAa={Bo~=1R;48D z+p_w2WT}M_%MdUOdlCyGx*H)pSOTGtB)jw;5>H;gEIEzH6{=YZLZfaG)2yyG)LDo; zuP!^Xf~QWl(n%E-zwCAdd+1U%GoFSidFq6ocRR`Xm#iheKOm+Br!(-~`z$LKx{P~h z34O2`VJ6WHe#-coQ0>*LFPa{C{v1i;r3Y40W|;x;3^A955lrYHCESH16?zvJuqpZ+ z6)1{@a7B;LYu~-&G7>XyCFwi=gKUe9ns5eZTlKz^|B4go6PPq**RD0;!DXUi;I^f( z>3+%UEtgum4T2WEXANoOh> zaF+tF{MnSUmerzL&|^~R*Non}N2T`E)YB4vBuyBdTq%mM9tpqe8^nh=T&!GOQxo{q zzJkDg{oJt9?g|TUp4zWU_MABOga0!uAAJ)aV3aj7^4Oh-aupoo!1S&-cBL<@91yB}~0T(NSf3Y6bJlpiX}d zvc_$GJRK9zS*ik(V{dl|ui&FRey2ORw_9iJFI|NLv5mA&0!Lz2q8|-IDN%`|fAjmx%lDUK!uM~mSEZVkV76(= zIVo=3!nVp}odNih`z?Eb5(WS_)z8k>{D(k1aVMn#W8q5zO{}O}PU3md3QBW4kSWl) zznGS>7VT{mHc;py_M3laxY%)O2QPcB$*RFC7p**U8MQFcR@@_Mb5f%7=f7D9=05<* z&)aA1slc75zDx{uHP|>iSE?BhDG8ZH1+&Nruu#|cpzo>P2s>31V7r=N?PoI85>b_) znw)}@TbnBbw*b0+8y4sND1)`~>+tx5IvbqOX7X~DT4_2N%c$!)-@{g(+BX+G6M~_s z%F1JG-GqHw*qigU?8HKXcaf|AVcCItgX&@!aqtwza7LF~^94@%{>Nq0n92MIEx}q& zxA3*iEV0mMIXlM7oFcEF^cp~TcmD3Bdg zTVFkpzZN(44#7n5(S!m_t^6zeerI*{=Fc=e`$+8Uy-Tq_asCW{-SzhQMB4YutXpKA zfb)9>K?b#FEml@9VLwCzYeaGRe1Wn9!5Z>p)7ixYY;BUhx<=mpLM~H^yhfYB-COz< z?`~9`%jndTDEO2-qk!jrDo4yZ(RhXTP>C#ywjQT%d)7U~cg3uw_Lfx6 zyUBM%dgBf*OS%f&O$y;v%KqFNBh&lyFQRYzw*tx)EMir@8Z|$KWQp+Mnlh^)A>kD= zG_~Yj?N*#-Huyl(@8Gso<&vo!BUW6d!83aM3b!0SW|4&q(R=ZALEsOH$p(}<)+{SdK7h* z!aLyLvG})<*~n-5!jU15e!ZD}eG~Y~`y}*PT3F`mEBPD%6QKt|!~9Pzpx?W$`myT2 ziT8ZhtG}^s*?m8awEl^Vw!R+jOZq^lrM{?KNa*_bIfN$cIr1{I?Y0vkOTN)=d8K0Y z>k&=E;V%$P(0$tFM(`4v&U;CtVC`-~pXhb8qc0@%PTyuw=_@0EV5YVv@T5}YWBP}m zKqwZu(AVq%8HSNhj7el{pUoQ+-)9D7JW*@BSFvduF35&!JMBX_1lk{JzJd&OU6M(Q ze`_bVqfgTL_MI4xe((tY3;9hDCbIR5>HoFJ*Y7P~YdY`B?hD=T#KPJ*d5z~koiv2J Mw6au#gmK9K0hv-j_5c6? literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..0595fc77d8439a0dbf339caa3b567d456daa9785 GIT binary patch literal 2810 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 M07*qoM6N<$g7&IDWB>pF literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1c0b3965304845adc5f3eddd08910e2c221ec20 GIT binary patch literal 8140 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 ogOSqa$67~B^8o# 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..36dfc1425eec4955b7605e5153b93f44cf6f9311 GIT binary patch literal 10174 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..a52b9eb --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,86 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Madari Client + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + madari_client + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + CFBundleDocumentTypes + + + CFBundleTypeName + Document Types + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + LSItemContentTypes + + + com.adobe.pdf + + + public.mpeg-4 + public.avi + com.apple.quicktime-movie + public.3gpp + public.mpeg + + + public.mp3 + public.wav + public.aiff-audio + public.aac-audio + public.m4a-audio + + + public.jpeg + public.png + com.compuserve.gif + public.heic + com.adobe.raw-image + + + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/database/app_database.dart b/lib/database/app_database.dart new file mode 100644 index 0000000..6ac6dba --- /dev/null +++ b/lib/database/app_database.dart @@ -0,0 +1,28 @@ +import 'package:drift/drift.dart'; +import 'package:drift_flutter/drift_flutter.dart'; +import 'package:madari_client/database/quries/watch_history_queries.dart'; +import 'package:madari_client/database/tables/watch_history_table.dart'; + +part 'app_database.g.dart'; + +@DriftDatabase(tables: [ + WatchHistoryTable, +], queries: {}, daos: [ + WatchHistoryQueries, +]) +class AppDatabase extends _$AppDatabase { + AppDatabase() : super(_openConnection()); + + @override + int get schemaVersion => 1; + + static QueryExecutor _openConnection() { + return driftDatabase( + name: 'madari_db', + web: DriftWebOptions( + sqlite3Wasm: Uri.parse('sqlite3.wasm'), + driftWorker: Uri.parse('assets/assets/drift_worker.dart.js'), + ), + ); + } +} diff --git a/lib/database/database_provider.dart b/lib/database/database_provider.dart new file mode 100644 index 0000000..609389b --- /dev/null +++ b/lib/database/database_provider.dart @@ -0,0 +1,13 @@ +import 'package:madari_client/database/app_database.dart'; + +class DatabaseProvider { + late final AppDatabase database; + + DatabaseProvider() { + database = AppDatabase(); + } + + Future close() async { + await database.close(); + } +} diff --git a/lib/database/quries/watch_history_queries.dart b/lib/database/quries/watch_history_queries.dart new file mode 100644 index 0000000..a6ff6a7 --- /dev/null +++ b/lib/database/quries/watch_history_queries.dart @@ -0,0 +1,38 @@ +import 'package:drift/drift.dart'; + +import '../app_database.dart'; +import '../tables/watch_history_table.dart'; + +part 'watch_history_queries.g.dart'; + +@DriftAccessor(tables: [WatchHistoryTable]) +class WatchHistoryQueries extends DatabaseAccessor + with _$WatchHistoryQueriesMixin { + WatchHistoryQueries(super.db); + + Future> getWatchHistoryByIds(List ids) { + return (select(watchHistoryTable)..where((t) => t.id.isIn(ids))).get(); + } + + Future> getUnsyncedRecords() { + return (select(watchHistoryTable) + ..where((t) => + t.lastSyncedAt.isNull() | + t.updatedAt.isBiggerThan(t.lastSyncedAt))) + .get(); + } + + Future insertOrUpdateWatchHistory(WatchHistoryTableCompanion entry) { + return into(watchHistoryTable).insertOnConflictUpdate(entry); + } + + Future updateSyncStatus(String id, DateTime syncTime) { + return (update(watchHistoryTable)..where((t) => t.id.equals(id))) + .write(WatchHistoryTableCompanion(lastSyncedAt: Value(syncTime))); + } + + Future getWatchHistoryById(String id) { + return (select(watchHistoryTable)..where((t) => t.id.equals(id))) + .getSingleOrNull(); + } +} diff --git a/lib/database/tables/watch_history_table.dart b/lib/database/tables/watch_history_table.dart new file mode 100644 index 0000000..44d8bfa --- /dev/null +++ b/lib/database/tables/watch_history_table.dart @@ -0,0 +1,15 @@ +import 'package:drift/drift.dart'; + +class WatchHistoryTable extends Table { + TextColumn get id => text()(); + TextColumn get originalId => text()(); + TextColumn get season => text().nullable()(); + TextColumn get episode => text().nullable()(); + IntColumn get progress => integer().withDefault(const Constant(0))(); + RealColumn get duration => real().withDefault(const Constant(0))(); + DateTimeColumn get updatedAt => dateTime()(); + DateTimeColumn get lastSyncedAt => dateTime().nullable()(); + + @override + Set get primaryKey => {id}; +} diff --git a/lib/engine/connection.dart b/lib/engine/connection.dart new file mode 100644 index 0000000..9391674 --- /dev/null +++ b/lib/engine/connection.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/features/settings/types/connection.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +import 'engine.dart'; + +part 'connection.g.dart'; + +@riverpod +Future> getConnections(Ref ref) async { + final List returnValue = []; + + final result = await AppEngine.engine.pb + .collection("connection") + .getFullList(expand: "type"); + + for (final item in result) { + if (item.id == "telegram") { + continue; + } + returnValue.add( + Connection( + id: item.id, + title: item.getStringValue("title"), + type: item.getStringValue("expand.type.type"), + config: jsonEncode(item.get("config")), + ), + ); + } + + return returnValue; +} diff --git a/lib/engine/connection_type.dart b/lib/engine/connection_type.dart new file mode 100644 index 0000000..f44b37b --- /dev/null +++ b/lib/engine/connection_type.dart @@ -0,0 +1,67 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +part 'connection_type.g.dart'; + +@riverpod +Future> connectionTypeList(Ref ref, + {int page = 1}) async { + final result = await AppEngine.engine.pb + .collection("connection_type") + .getList(page: page, sort: "order"); + + return ResultList( + items: result.items + .map( + (item) => ConnectionTypeRecord.fromRecord(item), + ) + .toList(), + page: result.page, + perPage: result.perPage, + totalItems: result.totalItems, + totalPages: result.totalPages, + ); +} + +class ConnectionTypeRecord extends Jsonable { + final String title; + final String icon; + final String type; + final String id; + + ConnectionTypeRecord({ + required this.title, + required this.icon, + required this.type, + required this.id, + }); + + factory ConnectionTypeRecord.fromRecord(RecordModel record) => + ConnectionTypeRecord.fromJson(record.toJson()); + + factory ConnectionTypeRecord.fromJson(Map json) => + _$ConnectionTypeRecordFromJson(json); + + @override + Map toJson() => _$ConnectionTypeRecordToJson(this); +} + +ConnectionTypeRecord _$ConnectionTypeRecordFromJson( + Map json) => + ConnectionTypeRecord( + id: json['id'] as String, + title: json['title'] as String, + icon: json['icon'] as String, + type: json['type'] as String, + ); + +Map _$ConnectionTypeRecordToJson( + ConnectionTypeRecord instance) => + { + 'title': instance.title, + 'icon': instance.icon, + 'type': instance.type, + 'id': instance.id, + }; diff --git a/lib/engine/engine.dart b/lib/engine/engine.dart new file mode 100644 index 0000000..0f40860 --- /dev/null +++ b/lib/engine/engine.dart @@ -0,0 +1,49 @@ +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart' as http_client; +import 'package:pocketbase/pocketbase.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../database/app_database.dart'; +import '../database/database_provider.dart'; + +class AppEngine { + static late AppEngine _instance; + late final DatabaseProvider _databaseProvider; + + static Future ensureInitialized() async { + final prefs = await SharedPreferences.getInstance(); + + final store = AsyncAuthStore( + save: (String data) async => prefs.setString('pb_auth', data), + initial: prefs.getString('pb_auth'), + clear: prefs.clear, + ); + + _instance = AppEngine(store); + } + + static AppEngine get engine => _instance; + + late final PocketBase pb; + late final http_client.Client http; + + AppDatabase get database => _databaseProvider.database; + + Future dispose() async { + await _databaseProvider.close(); + } + + AppEngine(AuthStore authStore) { + pb = PocketBase( + // 'https://zeee.fly.dev' ?? + (kDebugMode ? 'http://100.64.0.1:8090' : 'https://zeee.fly.dev'), + authStore: authStore, + ); + _databaseProvider = DatabaseProvider(); + http = pb.httpClientFactory(); + } + + Future signIn(String username, String password) { + return pb.collection('users').authWithPassword(username, password); + } +} diff --git a/lib/engine/library.dart b/lib/engine/library.dart new file mode 100644 index 0000000..0d7a855 --- /dev/null +++ b/lib/engine/library.dart @@ -0,0 +1,139 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/watch_history/service/base_watch_history.dart'; +import 'package:pocketbase/pocketbase.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +import '../features/connections/types/base/base.dart'; +import '../features/watch_history/service/zeee_watch_history.dart'; + +export '../features/connections/types/base/base.dart'; + +part 'library.g.dart'; + +final Map> _libraryListCache = {}; + +@riverpod +Future> libraryList(Ref ref, int page) async { + if (_libraryListCache.containsKey(page.toString())) { + return _libraryListCache[page.toString()]!; + } + + final result = await AppEngine.engine.pb.collection("library").getList( + page: page, + sort: "+order", + ); + + final returnValue = ResultList(); + + returnValue.totalItems = result.totalItems; + returnValue.perPage = result.perPage; + returnValue.page = result.page; + returnValue.totalPages = result.totalPages; + returnValue.items = result.items.where((item) { + final connectionType = item.getStringValue("connectionType"); + + if (connectionType != "telegram") { + return true; + } + + return false; + }).map((item) { + final i = item; + return LibraryRecord.fromJson({ + "id": i.id, + "connectionType": i.getStringValue("connectionType"), + "icon": i.getStringValue("icon"), + "title": i.getStringValue("title"), + "types": i.getListValue("types"), + "config": i.getStringValue("config"), + "connection": i.getStringValue("connection"), + }); + }).toList(); + + _libraryListCache[page.toString()] = returnValue; + + return returnValue; +} + +final Map> _cache = {}; + +@riverpod +Future> libraryItemList( + Ref ref, + LibraryRecord library, + List? item, + int page, + String? search, +) async { + final cache = "${library.id}_${page}_$search"; + + final history = ZeeeWatchHistoryStatic.service; + + final result = _cache[cache]!.items.map((item) { + return WatchHistoryGetRequest( + id: item.id, + ); + }).toList(); + + final watchHistory = await history!.getItemWatchHistory(ids: result); + + _cache[cache]!.items = _cache[cache]!.items.map((item) { + final history = watchHistory.where((history) => history.id == item.id); + + item.history = history.isEmpty ? null : history.first; + return item; + }).toList(); + + return _cache[cache]!; +} + +@JsonSerializable() +class LibraryItemList extends Jsonable { + final String title; + final String? logo; + final int? size; + final String? extra; + final dynamic id; + final String? config; + final DateTime? date; + final double? popularity; + WatchHistory? history; + + LibraryItemList({ + required this.id, + required this.title, + this.config, + this.logo, + this.size, + this.date, + this.extra, + this.popularity = 0, + this.history, + }); + + factory LibraryItemList.fromRecord(RecordModel record) => + LibraryItemList.fromJson(record.toJson()); + + factory LibraryItemList.fromJson(Map json) => + _$LibraryItemListFromJson(json); + + @override + Map toJson() => _$LibraryItemListToJson(this); +} + +class FolderItem { + final String title; + final String id; + final Widget? icon; + final String? config; + + FolderItem({ + required this.title, + required this.id, + this.icon, + this.config, + }); +} diff --git a/lib/extension/image_to_bytes.dart b/lib/extension/image_to_bytes.dart new file mode 100644 index 0000000..910467b --- /dev/null +++ b/lib/extension/image_to_bytes.dart @@ -0,0 +1,27 @@ +import 'dart:io'; +import 'dart:ui' as ui; + +import 'package:path_provider/path_provider.dart'; + +extension UIImageToInputImage on ui.Image { + Future toFile({String? fileName}) async { + // Convert image to byte data + final byteData = await toByteData(format: ui.ImageByteFormat.png); + + if (byteData == null) { + throw Exception('Failed to convert ui.Image to ByteData'); + } + + // Get the application temporary directory + final directory = await getTemporaryDirectory(); + + // Create a file with a unique name if not provided + final file = File( + '${directory.path}/${fileName ?? 'image_${DateTime.now().millisecondsSinceEpoch}.png'}'); + + // Write bytes to file + await file.writeAsBytes(byteData.buffer.asUint8List()); + + return file; + } +} diff --git a/lib/features/chat/container/chat_action.dart b/lib/features/chat/container/chat_action.dart new file mode 100644 index 0000000..027c0d2 --- /dev/null +++ b/lib/features/chat/container/chat_action.dart @@ -0,0 +1,155 @@ +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/utils/ocr_file.dart'; + +class ChatAction extends StatefulWidget { + final void Function({ + String? actionId, + Map? files, + }) onClose; + final String? actionId; + + const ChatAction({ + super.key, + required this.onClose, + this.actionId, + }); + + @override + State createState() => _ChatActionState(); +} + +class _ChatActionState extends State { + final List> _commandItems = [ + { + 'id': 'file-upload', + 'title': 'Upload File', + 'description': 'Share a document or image', + }, + ]; + String? content; + + bool _isLoading = true; + + @override + void initState() { + super.initState(); + + AppEngine.engine.pb + .collection("ai_action") + .getList(perPage: 50) + .then((docs) { + if (!mounted) { + return; + } + + for (final item in docs.items) { + _commandItems.add({ + 'id': item.id, + 'title': item.getStringValue("title"), + 'description': item.getStringValue("description"), + }); + } + + setState(() { + _isLoading = false; + }); + }).catchError((err) { + setState(() { + _isLoading = false; + }); + }); + } + + void attachItem() async { + FilePickerResult? result = await FilePicker.platform.pickFiles( + allowMultiple: true, + type: FileType.custom, + allowedExtensions: [ + "pdf", + "png", + "bpm", + "jpeg", + "jpg", + ], + ); + + if ((result?.count ?? 0) == 0) { + widget.onClose(); + return; + } + + final images = await ocrFiles(result!.files); + Map files = {}; + + for (final (index, image) in images.indexed) { + files[result.files[index].name] = image; + } + + widget.onClose( + files: files, + ); + } + + @override + Widget build(BuildContext context) { + return ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Material( + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 16), + decoration: BoxDecoration( + color: Theme.of(context).cardColor, + borderRadius: BorderRadius.circular(8), + border: Border.all( + color: Colors.grey.withOpacity(0.2), + ), + ), + child: ListView.builder( + shrinkWrap: true, + padding: EdgeInsets.zero, + itemCount: _commandItems.length + (_isLoading ? 1 : 0), + itemBuilder: (context, index) { + if (index == _commandItems.length) { + return Container( + padding: const EdgeInsets.only( + bottom: 24, + ), + child: const Center( + child: CircularProgressIndicator(), + ), + ); + } + + final item = _commandItems[index]; + return ListTile( + selected: item['id'] == widget.actionId, + leading: Icon( + item['id'] == 'file-upload' + ? Icons.file_present + : Icons.chat_bubble_outline, + ), + title: Text(item['title'] ?? ''), + subtitle: Text( + item['description'] ?? '', + maxLines: 3, + overflow: TextOverflow.ellipsis, + ), + onTap: () { + if (item['id'] == 'file-upload') { + return attachItem(); + } + + widget.onClose( + actionId: item['id'], + ); + }, + ); + }, + ), + ), + ), + ); + } +} diff --git a/lib/features/chat/container/chat_bubble.dart b/lib/features/chat/container/chat_bubble.dart new file mode 100644 index 0000000..a5c4453 --- /dev/null +++ b/lib/features/chat/container/chat_bubble.dart @@ -0,0 +1,158 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; + +class ChatBubble extends StatelessWidget { + final String message; + final bool isUser; + final bool isComplete; + final VoidCallback? onCancel; + final bool isStreaming = false; + final int length; + + const ChatBubble({ + super.key, + required this.message, + required this.isUser, + this.isComplete = true, + this.onCancel, + this.length = 0, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 4.0), + child: Column( + crossAxisAlignment: + isUser ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + isUser ? MainAxisAlignment.end : MainAxisAlignment.start, + children: [ + const SizedBox(width: 8), + Flexible( + child: Container( + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 5, + offset: const Offset(0, 2), + ), + ], + ), + child: GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => BackdropFilter( + filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), + child: AlertDialog( + contentPadding: const EdgeInsets.only( + bottom: 12, + ), + insetPadding: const EdgeInsets.all(10), + title: const Text("Message"), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text('Close'), + ), + TextButton.icon( + onPressed: () { + Clipboard.setData( + ClipboardData(text: message), + ); + }, + label: const Text('Copy'), + icon: const Icon(Icons.copy), + ), + ], + content: Container( + constraints: BoxConstraints( + maxHeight: + MediaQuery.of(context).size.height - 220, + ), + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 20), + MarkdownBody( + data: message, + selectable: true, + ), + ], + ), + ), + ), + ), + ), + ), + ); + }, + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: isUser + ? Theme.of(context).primaryColor.withOpacity(0.9) + : Theme.of(context).cardColor, + borderRadius: BorderRadius.circular(20), + border: !isUser + ? Border.all(color: Colors.grey.withOpacity(0.2)) + : null, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + message.trim().isEmpty && isUser + ? Column( + children: [ + const Icon(Icons.file_present), + Text("Files Attached $length"), + ], + ) + : MarkdownBody( + data: message, + styleSheet: MarkdownStyleSheet( + p: TextStyle( + color: isUser + ? Colors.white + : Theme.of(context) + .textTheme + .bodyLarge + ?.color, + fontSize: 16, + ), + ), + ), + ], + ), + ), + ), + ), + ), + if (isUser) _buildAvatar(true), + ], + ), + ], + ), + ); + } + + Widget _buildAvatar(bool isUser) { + return CircleAvatar( + backgroundColor: isUser ? Colors.blue.shade700 : Colors.grey.shade900, + child: Icon( + isUser ? Icons.person : Icons.auto_awesome, + color: Colors.white, + ), + ); + } +} diff --git a/lib/features/chat/container/chat_container.dart b/lib/features/chat/container/chat_container.dart new file mode 100644 index 0000000..b36f15f --- /dev/null +++ b/lib/features/chat/container/chat_container.dart @@ -0,0 +1,150 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/chat/container/chat_empty_state.dart'; + +import 'chat_bubble.dart'; +import 'chat_input_area.dart'; + +class ChatMessage { + final String message; + final bool isUser; + final bool isComplete; + final List files; + final CancellationToken? cancellationToken; + final String? actionId; + + ChatMessage({ + required this.message, + required this.isUser, + this.files = const [], + this.isComplete = true, + this.cancellationToken, + this.actionId, + }); +} + +class CancellationToken { + bool _isCancelled = false; + bool get isCancelled => _isCancelled; + void cancel() => _isCancelled = true; +} + +class ChatContainer extends StatefulWidget { + final List? initialMessages; + final Future Function(String, List?, String?)? onSendMessage; + final ScrollController scrollController; + + const ChatContainer({ + super.key, + this.initialMessages, + this.onSendMessage, + required this.scrollController, + }); + + @override + State createState() => _ChatContainerState(); +} + +class _ChatContainerState extends State { + List messages = []; + bool isLoading = false; + final FocusNode _focusNode = FocusNode(); + bool _isExpanded = false; + + @override + void initState() { + super.initState(); + if (widget.initialMessages != null) { + messages = widget.initialMessages!; + } + _focusNode.addListener(() { + setState(() { + _isExpanded = _focusNode.hasFocus; + }); + }); + } + + Future _handleSubmit( + String text, + String? actionId, + List files, + ) async { + if (text.trim().isEmpty && actionId == null) return; + + setState(() { + isLoading = true; + }); + + if (widget.onSendMessage != null) { + await widget.onSendMessage!(text, files, actionId); + } + + setState(() { + isLoading = false; + files = []; + }); + } + + @override + void dispose() { + _focusNode.dispose(); + super.dispose(); + } + + Widget _buildEmptyState() { + return ChatEmpty( + handleSubmit: (text) => _handleSubmit( + text, + null, + [], + ), + ); + } + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Expanded( + child: messages.isEmpty + ? _buildEmptyState() + : Container( + constraints: const BoxConstraints( + maxWidth: 1100, + ), + child: ListView.builder( + controller: widget.scrollController, + padding: const EdgeInsets.all(8.0), + itemCount: messages.length, + itemBuilder: (context, index) { + final message = messages[index]; + return ChatBubble( + message: message.message, + isUser: message.isUser, + isComplete: message.isComplete, + length: message.files.length, + ); + }, + ), + ), + ), + Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 1100, + ), + child: ChatInputArea( + isLoading: isLoading, + onSubmitted: (text, files, actionId) => _handleSubmit( + text, + actionId, + files, + ), + focusNode: _focusNode, + cancellationToken: messages.lastOrNull?.cancellationToken, + ), + ), + ), + ], + ); + } +} diff --git a/lib/features/chat/container/chat_empty_state.dart b/lib/features/chat/container/chat_empty_state.dart new file mode 100644 index 0000000..dc2d4ae --- /dev/null +++ b/lib/features/chat/container/chat_empty_state.dart @@ -0,0 +1,207 @@ +import 'package:flutter/material.dart'; + +class ChatEmpty extends StatefulWidget { + final Function(String input) handleSubmit; + + const ChatEmpty({ + super.key, + required this.handleSubmit, + }); + + @override + State createState() => _ChatEmptyState(); +} + +class _ChatEmptyState extends State { + @override + Widget build(BuildContext context) { + final suggestions = [ + "📚 How to create a study schedule?", + "🧠 Best memory techniques for exams", + "⏰ Time management tips for exam prep", + "📝 Practice test strategies", + "📱 Best study apps and tools", + "🎯 How to stay focused while studying", + "💡 Active recall techniques", + "📊 Spaced repetition methods", + "🌟 Exam day preparation tips", + "✍️ Note-taking strategies", + "🧘‍♂️ Study break activities", + "👥 Group study benefits", + ]; + + final isDarkMode = Theme.of(context).brightness == Brightness.dark; + final primaryColor = + isDarkMode ? Colors.blue[400]! : Theme.of(context).primaryColor; + + return Center( + child: SingleChildScrollView( + child: Center( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Animated gradient container + Container( + padding: const EdgeInsets.all(24), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + primaryColor.withOpacity(0.3), + primaryColor.withOpacity(0.1), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(24), + border: Border.all( + color: primaryColor.withOpacity(0.2), + width: 1, + ), + boxShadow: [ + BoxShadow( + color: primaryColor.withOpacity(0.1), + blurRadius: 20, + offset: const Offset(0, 10), + ), + ], + ), + child: Icon( + Icons.chat_bubble_outline, + size: 48, + color: primaryColor, + ), + ), + const SizedBox(height: 32), + Text( + 'How can I help you today?', + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + fontWeight: FontWeight.bold, + color: isDarkMode ? Colors.white : primaryColor, + ), + ), + const SizedBox(height: 12), + Text( + 'Choose a suggestion or type your own question', + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyLarge?.copyWith( + color: isDarkMode ? Colors.grey[400] : Colors.grey[600], + ), + ), + const SizedBox(height: 32), + SizedBox( + height: 100, + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: suggestions + .sublist(0, suggestions.length ~/ 2) + .map((suggestion) => Padding( + padding: const EdgeInsets.only(right: 12), + child: _buildSuggestionChip( + suggestion, + isDarkMode: isDarkMode, + primaryColor: primaryColor, + ), + )) + .toList(), + ), + ), + ), + Expanded( + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: suggestions + .sublist(suggestions.length ~/ 2) + .map((suggestion) => Padding( + padding: const EdgeInsets.only(right: 12), + child: _buildSuggestionChip( + suggestion, + isDarkMode: isDarkMode, + primaryColor: primaryColor, + ), + )) + .toList(), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } + + Widget _buildSuggestionChip( + String suggestion, { + required bool isDarkMode, + required Color primaryColor, + }) { + return Material( + color: Colors.transparent, + child: InkWell( + onTap: () => widget.handleSubmit(suggestion), + borderRadius: BorderRadius.circular(16), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(16), + gradient: LinearGradient( + colors: [ + isDarkMode ? Colors.grey[850]! : Theme.of(context).cardColor, + isDarkMode + ? Colors.grey[900]! + : Theme.of(context).cardColor.withOpacity(0.9), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + border: Border.all( + color: isDarkMode + ? Colors.grey[800]! + : primaryColor.withOpacity(0.1), + ), + boxShadow: [ + if (!isDarkMode) + BoxShadow( + color: primaryColor.withOpacity(0.1), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.lightbulb_outline, + size: 16, + color: primaryColor, + ), + const SizedBox(width: 8), + Flexible( + child: Text( + suggestion, + style: TextStyle( + color: isDarkMode ? Colors.grey[300] : primaryColor, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/features/chat/container/chat_history.dart b/lib/features/chat/container/chat_history.dart new file mode 100644 index 0000000..5d95586 --- /dev/null +++ b/lib/features/chat/container/chat_history.dart @@ -0,0 +1,157 @@ +import 'package:cached_query_flutter/cached_query_flutter.dart'; +import 'package:flutter/material.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; + +class ChatHistory extends StatefulWidget { + const ChatHistory({super.key}); + + @override + State createState() => _ChatHistoryState(); +} + +class _ChatHistoryState extends State { + final pb = AppEngine.engine.pb; + late final InfiniteQuery, int> chatHistoryQuery; + final ScrollController _scrollController = ScrollController(); + + @override + void initState() { + super.initState(); + chatHistoryQuery = InfiniteQuery, int>( + key: "chat_history", + queryFn: (page) async { + try { + final result = await pb.collection("chat").getList( + page: page, + perPage: 10, // Adjust perPage as needed + sort: '-created', // Assuming you want the latest chats first + ); + return result.items.toList(); + } catch (e) { + debugPrint('Error fetching chat history: $e'); + throw e; + } + }, + getNextArg: (state) { + if (state.lastPage?.isEmpty ?? false) return null; + return state.length; + }, + ); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Drawer( + child: SafeArea( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + "Chat History", + style: Theme.of(context).textTheme.titleLarge, + ), + ), + const Spacer(), + TextButton.icon( + onPressed: () { + pb.collection("chat").create( + body: {}, + ); + }, + icon: const Icon( + Icons.create_new_folder_outlined, + ), + label: const Text("New Chat"), + ), + const SizedBox( + width: 8, + ), + ], + ), + const Divider(), + Expanded( + child: InfiniteQueryBuilder( + query: chatHistoryQuery, + builder: (ctx, state, query) { + if (state.status == QueryStatus.loading && + state.data == null) { + return const Center(child: CircularProgressIndicator()); + } + + if (state.status == QueryStatus.error) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Failed to load chat history.', + style: TextStyle(color: Colors.red.shade700), + ), + const SizedBox(height: 8), + ElevatedButton( + onPressed: query.refetch, + child: const Text('Retry'), + ), + ], + ), + ); + } + + final items = state.data?.expand((e) => e).toList() ?? []; + + if (items.isEmpty) { + return const Center(child: Text("No chat history yet.")); + } + + return RefreshIndicator( + onRefresh: query.refetch, + child: ListView.separated( + controller: _scrollController, + itemCount: items.length + (!state.hasReachedMax ? 1 : 0), + separatorBuilder: (_, __) => const Divider(), + itemBuilder: (context, index) { + if (index < items.length) { + final chat = items[index]; + return ListTile( + title: Text( + chat.getStringValue("title") ?? "Untitled Chat", + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Text( + 'Created: ${chat.created}', // Display creation date + style: Theme.of(context).textTheme.bodyLarge, + ), + ); + } else if (!query.hasReachedMax()) { + return const Padding( + padding: EdgeInsets.all(16.0), + child: Center(child: CircularProgressIndicator()), + ); + } else { + return const SizedBox.shrink(); + } + }, + ), + ); + }, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/chat/container/chat_input_area.dart b/lib/features/chat/container/chat_input_area.dart new file mode 100644 index 0000000..2b57f75 --- /dev/null +++ b/lib/features/chat/container/chat_input_area.dart @@ -0,0 +1,328 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/chat/container/chat_container.dart'; + +import 'chat_action.dart'; + +class ChatInputArea extends StatefulWidget { + final bool isLoading; + final Future Function( + String text, + List files, + String? actionId, + ) onSubmitted; + final FocusNode focusNode; + final CancellationToken? cancellationToken; + + const ChatInputArea({ + super.key, + required this.isLoading, + required this.onSubmitted, + required this.focusNode, + this.cancellationToken, + }); + + @override + State createState() => _ChatInputAreaState(); +} + +class _ChatInputAreaState extends State { + final TextEditingController _textController = TextEditingController(); + final LayerLink _layerLink = LayerLink(); + OverlayEntry? _overlayEntry; + final Map files = + {}; // key is file name and string is the content + String? actionId; + + @override + void initState() { + super.initState(); + _textController.addListener(_handleTextChange); + + AppEngine.engine.pb + .collection("ai_action") + .getList(perPage: 50) + .then((docs) {}); + } + + @override + void dispose() { + _hideCommandPalette(); + _textController.removeListener(_handleTextChange); + super.dispose(); + } + + void _handleTextChange() { + if (_textController.text == '/') { + _showCommandPalette(); + } else if (_textController.text.isEmpty) { + _hideCommandPalette(); + } + } + + void _showCommandPalette() { + _hideCommandPalette(); + + _overlayEntry = OverlayEntry( + builder: (context) => Positioned( + width: MediaQuery.of(context).size.width, + child: CompositedTransformFollower( + link: _layerLink, + showWhenUnlinked: false, + offset: const Offset(0, -5), + targetAnchor: Alignment.topCenter, + followerAnchor: Alignment.bottomCenter, + child: TweenAnimationBuilder( + duration: const Duration(milliseconds: 200), + curve: Curves.easeOutCubic, + tween: Tween(begin: 0, end: 1), + builder: (context, value, child) => Transform.scale( + scale: value, + child: Opacity( + opacity: value, + child: child, + ), + ), + child: ChatAction( + actionId: actionId, + onClose: ({ + actionId, + files, + }) { + _textController.clear(); + _hideCommandPalette(); + + setState(() { + this.files.addAll(files ?? {}); + if (actionId != null) this.actionId = actionId; + }); + }, + ), + ), + ), + ), + ); + + Overlay.of(context).insert(_overlayEntry!); + + setState(() {}); + } + + void _hideCommandPalette() { + _overlayEntry?.remove(); + _overlayEntry = null; + if (mounted && context.mounted) { + setState(() {}); + } + } + + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (files.isNotEmpty) + Container( + height: 40, + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: files.length, + itemBuilder: (context, index) { + final fileName = files.keys.elementAt(index); + return Padding( + padding: const EdgeInsets.only(right: 8.0), + child: GestureDetector( + onTap: () { + showDialog( + context: context, + builder: (context) => AlertDialog( + insetPadding: const EdgeInsets.all(4), + actions: [ + TextButton.icon( + onPressed: () { + Navigator.of(context).pop(); + }, + label: const Text("Close"), + ), + TextButton.icon( + onPressed: () { + Navigator.of(context).pop(); + }, + label: const Text("Copy"), + icon: const Icon(Icons.copy), + ), + ], + title: Text( + fileName, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + content: SingleChildScrollView( + child: Text( + files[fileName]!, + ), + ), + ), + ); + }, + child: Chip( + visualDensity: VisualDensity.compact, + label: Row( + children: [ + const Icon( + Icons.picture_as_pdf_outlined, + size: 16, + ), + const SizedBox( + width: 12, + ), + Container( + constraints: const BoxConstraints( + maxWidth: 100, + ), + child: Text( + fileName, + style: const TextStyle( + fontSize: 12, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + onDeleted: () { + setState(() { + files.remove(fileName); + }); + }, + deleteIcon: const Icon(Icons.close, size: 16), + backgroundColor: + Theme.of(context).primaryColor.withOpacity(0.1), + ), + ), + ); + }, + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + decoration: BoxDecoration( + color: Theme.of(context).cardColor, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + IconButton( + icon: _overlayEntry == null + ? const Icon(Icons.add_circle_outline) + : const Icon(Icons.close), + onPressed: _overlayEntry == null + ? _showCommandPalette + : _hideCommandPalette, + tooltip: 'Open commands', + padding: EdgeInsets.zero, + constraints: const BoxConstraints( + minWidth: 32, + minHeight: 32, + ), + ), + const SizedBox( + width: 8, + ), + Expanded( + child: CompositedTransformTarget( + link: _layerLink, + child: Container( + constraints: const BoxConstraints( + minHeight: 40, + maxHeight: 120, + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: Colors.grey.withOpacity(0.2)), + color: Theme.of(context).scaffoldBackgroundColor, + ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: TextField( + controller: _textController, + focusNode: widget.focusNode, + maxLines: null, + decoration: const InputDecoration( + hintText: 'Message...', + border: InputBorder.none, + hintStyle: TextStyle(color: Colors.grey), + ), + onSubmitted: (value) async { + await widget.onSubmitted( + value, + files.values.toList(), + actionId, + ); + setState(() { + files.clear(); + actionId = null; + }); + _textController.clear(); + }, + enabled: !widget.isLoading, + ), + ), + ), + ), + ), + const SizedBox(width: 8), + Container( + margin: const EdgeInsets.only(bottom: 2), + child: AnimatedScale( + duration: const Duration(milliseconds: 200), + scale: _textController.text.isEmpty ? 0.8 : 1.0, + child: Container( + height: 40, + width: 40, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: widget.isLoading + ? Colors.grey + : Theme.of(context).primaryColor.withOpacity(0.9), + ), + child: widget.cancellationToken == null || + widget.cancellationToken?.isCancelled == true + ? IconButton( + padding: EdgeInsets.zero, + icon: const Icon(Icons.send, + color: Colors.white, size: 20), + onPressed: widget.isLoading + ? null + : () async { + await widget.onSubmitted( + _textController.text, + files.values.toList(), + actionId, + ); + setState(() { + files.clear(); + actionId = null; + }); + _textController.clear(); + }, + ) + : IconButton( + onPressed: () { + widget.cancellationToken?.cancel(); + }, + icon: const Icon( + Icons.stop_circle, + ), + ), + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/features/collection/container/add_collection_item.dart b/lib/features/collection/container/add_collection_item.dart new file mode 100644 index 0000000..41c397f --- /dev/null +++ b/lib/features/collection/container/add_collection_item.dart @@ -0,0 +1,217 @@ +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/utils/ocr_file.dart'; + +import '../service/service.dart'; + +class AddCollectionItemSheet extends StatefulWidget { + final String listId; + + const AddCollectionItemSheet({ + super.key, + required this.listId, + }); + + @override + State createState() => _AddCollectionItemSheetState(); +} + +class _AddCollectionItemSheetState extends State + with SingleTickerProviderStateMixin { + final _titleController = TextEditingController(); + late TabController _tabController; + PlatformFile? _selectedFile; + String? _fileType; + + @override + void initState() { + super.initState(); + _tabController = TabController(length: 2, vsync: this); + } + + @override + void dispose() { + _titleController.dispose(); + _tabController.dispose(); + super.dispose(); + } + + Future _pickFile() async { + try { + FilePickerResult? result = await FilePicker.platform.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'jpg', 'jpeg', 'png'], + withData: true, + ); + + if (result != null) { + setState(() { + _selectedFile = result.files.single; + _fileType = result.files.single.extension; + _titleController.text = result.files.single.name; + }); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error picking file: $e')), + ); + } + } + } + + bool _isLoading = false; + + Future _saveItem() async { + if (_titleController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Please enter a title')), + ); + return; + } + if (_selectedFile == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Please select a file')), + ); + return; + } + + setState(() { + _isLoading = true; + }); + + try { + await CollectionService.addItem( + listId: widget.listId, + name: _titleController.text, + type: "file", + file: _selectedFile!, + content: (await ocrFiles([_selectedFile!])).first, + ); + + if (mounted) { + Navigator.pop(context, true); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Add New Item'), + leading: IconButton( + icon: const Icon(Icons.close), + onPressed: () => Navigator.pop(context), + ), + ), + floatingActionButton: FloatingActionButton.extended( + label: _isLoading ? const Text("Uploading...") : const Text("Upload"), + icon: _isLoading + ? const SizedBox( + height: 24, + width: 24, + child: CircularProgressIndicator(), + ) + : const Icon(Icons.upload_file), + onPressed: _isLoading ? null : _saveItem, + ), + body: Column( + mainAxisSize: MainAxisSize.min, + children: [ + _buildFileUploadTab(), + ], + ), + ); + } + + Widget _buildFileUploadTab() { + return SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + if (_selectedFile != null) + TextField( + controller: _titleController, + decoration: const InputDecoration( + labelText: 'Title', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 24), + _selectedFile == null + ? Center( + child: Column( + children: [ + const Icon(Icons.upload_file, + size: 48, color: Colors.grey), + const SizedBox(height: 16), + ElevatedButton.icon( + onPressed: _pickFile, + icon: const Icon(Icons.add), + label: const Text('Select File'), + ), + const SizedBox(height: 8), + const Text( + 'Supported formats: PDF, JPG, PNG', + style: TextStyle(color: Colors.grey), + ), + ], + ), + ) + : Card( + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + _fileType == 'pdf' + ? Icons.picture_as_pdf + : Icons.image, + color: Colors.blue, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + _selectedFile!.path?.split('/').last ?? "", + style: const TextStyle( + fontWeight: FontWeight.bold), + ), + ), + IconButton( + icon: const Icon(Icons.close), + onPressed: () => setState(() { + _selectedFile = null; + _fileType = null; + }), + ), + ], + ), + const SizedBox(height: 8), + Text( + 'File type: ${_fileType?.toUpperCase()}', + style: const TextStyle(color: Colors.grey), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/collection/container/collection_item_renderer.dart b/lib/features/collection/container/collection_item_renderer.dart new file mode 100644 index 0000000..9386f5b --- /dev/null +++ b/lib/features/collection/container/collection_item_renderer.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; + +import '../types/collection_item_model.dart'; +import 'collection_markdown_renderer.dart'; + +class CollectionItemRenderer extends StatelessWidget { + final CollectionItemModel item; + + const CollectionItemRenderer({ + super.key, + required this.item, + }); + + @override + Widget build(BuildContext context) { + switch (item.type) { + case 'markdown': + return MarkdownRenderer(content: item.content?['text'] ?? ''); + // case 'file': + // return FileRenderer(filePath: item.file!); + default: + return Text('Unsupported type: ${item.type}'); + } + } +} diff --git a/lib/features/collection/container/collection_list_item_list.dart b/lib/features/collection/container/collection_list_item_list.dart new file mode 100644 index 0000000..8b6f5ef --- /dev/null +++ b/lib/features/collection/container/collection_list_item_list.dart @@ -0,0 +1,237 @@ +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:madari_client/features/doc_viewer/container/doc_viewer.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; + +import '../../../engine/engine.dart'; +import '../service/service.dart'; +import '../types/collection_item_model.dart'; +import 'add_collection_item.dart'; +import 'collection_markdown_renderer.dart'; +import 'collection_search_delegate.dart'; + +class CollectionListItemsScreen extends StatefulWidget { + final String listId; + final bool isPublic; + final String title; + + const CollectionListItemsScreen({ + super.key, + required this.listId, + required this.isPublic, + required this.title, + }); + + @override + State createState() => + _CollectionListItemsScreenState(); +} + +class _CollectionListItemsScreenState extends State { + String _sortBy = 'created'; + bool _ascending = false; + late Future> _itemsFuture; + + Future _showAddItemSheet() async { + final result = await showModalBottomSheet( + context: context, + builder: (context) => AddCollectionItemSheet(listId: widget.listId), + ); + + if (result == true) { + setState(() => _refreshItems()); + } + } + + @override + void initState() { + super.initState(); + _refreshItems(); + } + + void _refreshItems() { + _itemsFuture = CollectionService.getCollectionItems( + listId: widget.listId, + searchQuery: '', + sortBy: _sortBy, + ascending: _ascending, + ); + } + + @override + Widget build(BuildContext context) { + return FutureBuilder>( + future: _itemsFuture, + builder: (context, snapshot) { + return Scaffold( + floatingActionButton: snapshot.hasData && + !widget.isPublic && + !kIsWeb && + (Platform.isIOS || Platform.isAndroid) + ? FloatingActionButton( + onPressed: _showAddItemSheet, + child: const Icon(Icons.add), + ) + : null, + appBar: AppBar( + title: Text(widget.title), + actions: [ + // Search action + IconButton( + icon: const Icon(Icons.search), + onPressed: () { + showSearch( + context: context, + delegate: CollectionSearchDelegate(widget.listId), + ); + }, + ), + // Sort menu + PopupMenuButton( + icon: const Icon(Icons.sort), + onSelected: (value) { + setState(() { + if (value == _sortBy) { + _ascending = !_ascending; + } else { + _sortBy = value; + } + _refreshItems(); + }); + }, + itemBuilder: (context) => [ + CheckedPopupMenuItem( + value: 'created', + checked: _sortBy == 'created', + child: Row( + children: [ + const Text('Created'), + if (_sortBy == 'created') + Icon(_ascending + ? Icons.arrow_upward + : Icons.arrow_downward), + ], + ), + ), + CheckedPopupMenuItem( + value: 'updated', + checked: _sortBy == 'updated', + child: Row( + children: [ + const Text('Updated'), + if (_sortBy == 'updated') + Icon(_ascending + ? Icons.arrow_upward + : Icons.arrow_downward), + ], + ), + ), + ], + ), + // Refresh button + IconButton( + icon: const Icon(Icons.refresh), + onPressed: () => setState(() => _refreshItems()), + ), + ], + ), + body: FutureBuilder( + future: Future.delayed(Duration.zero), + builder: (ctx, _) { + if (snapshot.hasError) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon(Icons.error_outline, + size: 48, color: Colors.red), + const SizedBox(height: 16), + Text('Error: ${snapshot.error}'), + ], + ), + ); + } + + if (!snapshot.hasData) { + return const Center(child: CircularProgressIndicator()); + } + + final items = snapshot.data!; + + if (items.isEmpty) { + return const Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.inbox, size: 48, color: Colors.grey), + SizedBox(height: 16), + Text('No items found'), + ], + ), + ); + } + + return ListView.builder( + padding: const EdgeInsets.all(8), + itemCount: items.length, + itemBuilder: (context, index) { + final item = items[index]; + return ListTile( + onTap: () async { + if (item.file != null && item.file != "") { + final fileToken = + await AppEngine.engine.pb.files.getToken(); + + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return DocViewer( + source: URLSource( + title: item.name, + url: "${item.file}?token=$fileToken", + id: item.id, + ), + ); + }, + ), + ); + return; + } + + final file = await AppEngine.engine.pb + .collection("collection_item") + .getOne(item.id); + + if (context.mounted && mounted) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) => FullMarkdownSheet( + content: file.getStringValue("content") ?? "", + ), + ); + } + }, + leading: item.type == "markdown" + ? const Icon(Icons.document_scanner_outlined) + : const Icon(Icons.file_present), + title: Text(item.name), + subtitle: Text(formatDate(item.updated)), + ); + }, + ); + }, + ), + ); + }, + ); + } + + String formatDate(DateTime created) { + return DateFormat("dd MMM yyyy").format(created); + } +} diff --git a/lib/features/collection/container/collection_markdown_renderer.dart b/lib/features/collection/container/collection_markdown_renderer.dart new file mode 100644 index 0000000..a7db6c8 --- /dev/null +++ b/lib/features/collection/container/collection_markdown_renderer.dart @@ -0,0 +1,155 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_markdown/flutter_markdown.dart'; + +class MarkdownRenderer extends StatelessWidget { + final String content; + final int previewLines; + + const MarkdownRenderer({ + super.key, + required this.content, + this.previewLines = 3, + }); + + @override + Widget build(BuildContext context) { + final String previewText = + content.split('\n').take(previewLines).join('\n'); + + final bool hasMore = content.split('\n').length > previewLines; + + return InkWell( + onTap: () => _showFullMarkdown(context), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + MarkdownBody( + data: previewText, + shrinkWrap: true, + styleSheet: MarkdownStyleSheet( + p: Theme.of(context).textTheme.bodyMedium, + h1: Theme.of(context).textTheme.headlineSmall, + h2: Theme.of(context).textTheme.titleLarge, + ), + ), + if (hasMore) ...[ + const SizedBox(height: 8), + Text( + 'Tap to read more...', + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Theme.of(context).colorScheme.primary, + ), + ), + ], + ], + ), + ), + ); + } + + void _showFullMarkdown(BuildContext context) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) => FullMarkdownSheet(content: content), + ); + } +} + +class FullMarkdownSheet extends StatelessWidget { + final String content; + + const FullMarkdownSheet({ + super.key, + required this.content, + }); + + @override + Widget build(BuildContext context) { + return DraggableScrollableSheet( + initialChildSize: 0.9, + minChildSize: 0.5, + maxChildSize: 0.95, + builder: (context, scrollController) { + return Container( + decoration: BoxDecoration( + color: Theme.of(context).scaffoldBackgroundColor, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(16), + ), + ), + child: Column( + children: [ + // Handle bar + Container( + margin: const EdgeInsets.symmetric(vertical: 8), + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + // Actions bar + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon(Icons.close), + onPressed: () => Navigator.pop(context), + ), + Row( + children: [ + IconButton( + icon: const Icon(Icons.copy), + onPressed: () { + // Copy to clipboard + // You might want to add feedback when copied + }, + ), + IconButton( + icon: const Icon(Icons.share), + onPressed: () { + // Implement share functionality + }, + ), + ], + ), + ], + ), + ), + // Markdown content + Expanded( + child: Markdown( + controller: scrollController, + data: content, + styleSheet: MarkdownStyleSheet( + p: Theme.of(context).textTheme.bodyLarge, + h1: Theme.of(context).textTheme.headlineMedium, + h2: Theme.of(context).textTheme.headlineSmall, + h3: Theme.of(context).textTheme.titleLarge, + code: Theme.of(context).textTheme.bodyMedium?.copyWith( + fontFamily: 'monospace', + backgroundColor: Colors.grey[200], + ), + codeblockDecoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(8), + ), + ), + selectable: true, + padding: const EdgeInsets.all(16), + ), + ), + ], + ), + ); + }, + ); + } +} diff --git a/lib/features/collection/container/collection_search_delegate.dart b/lib/features/collection/container/collection_search_delegate.dart new file mode 100644 index 0000000..133e829 --- /dev/null +++ b/lib/features/collection/container/collection_search_delegate.dart @@ -0,0 +1,149 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../../../engine/engine.dart'; +import '../../doc_viewer/container/doc_viewer.dart'; +import '../../doc_viewer/types/doc_source.dart'; +import '../service/service.dart'; +import '../types/collection_item_model.dart'; +import 'collection_markdown_renderer.dart'; + +class CollectionSearchDelegate extends SearchDelegate { + final String listId; + + CollectionSearchDelegate(this.listId); + + @override + List buildActions(BuildContext context) { + return [ + IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + query = ''; + }, + ), + ]; + } + + @override + Widget buildLeading(BuildContext context) { + return IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + close(context, ''); + }, + ); + } + + @override + Widget buildResults(BuildContext context) { + return _buildSearchResults(); + } + + @override + Widget buildSuggestions(BuildContext context) { + return _buildSearchResults(); + } + + Widget _buildSearchResults() { + if (query.isEmpty) { + return const Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.search, size: 64, color: Colors.grey), + SizedBox(height: 16), + Text('Start typing to search'), + ], + ), + ); + } + + return FutureBuilder>( + future: CollectionService.getCollectionItems( + listId: listId, + searchQuery: query, + sortBy: 'created', + ascending: false, + ), + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + + if (!snapshot.hasData) { + return const Center(child: CircularProgressIndicator()); + } + + final items = snapshot.data!; + + if (items.isEmpty) { + return const Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.search_off, size: 64, color: Colors.grey), + SizedBox(height: 16), + Text('No results found'), + ], + ), + ); + } + + return ListView.builder( + padding: const EdgeInsets.all(8), + itemCount: items.length, + itemBuilder: (context, index) { + final item = items[index]; + return ListTile( + onTap: () async { + if (item.file != null && item.file != "") { + final fileToken = await AppEngine.engine.pb.files.getToken(); + + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return DocViewer( + source: URLSource( + title: item.name, + url: "${item.file}?token=$fileToken", + id: item.id, + ), + ); + }, + ), + ); + return; + } + + final file = await AppEngine.engine.pb + .collection("collection_item") + .getOne(item.id); + + if (context.mounted) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) => FullMarkdownSheet( + content: file.getStringValue("content") ?? "", + ), + ); + } + }, + leading: item.type == "markdown" + ? const Icon(Icons.document_scanner_outlined) + : const Icon(Icons.file_present), + title: Text(item.name), + subtitle: Text(formatDate(item.updated)), + ); + }, + ); + }, + ); + } + + String formatDate(DateTime created) { + return DateFormat("dd MMM yyyy").format(created); + } +} diff --git a/lib/features/collection/container/create_new_collection.dart b/lib/features/collection/container/create_new_collection.dart new file mode 100644 index 0000000..76cba62 --- /dev/null +++ b/lib/features/collection/container/create_new_collection.dart @@ -0,0 +1,147 @@ +import 'package:flutter/material.dart'; + +import '../../../engine/engine.dart'; + +class CreateCollectionBottomSheet extends StatefulWidget { + final Function() onCollectionCreated; + + const CreateCollectionBottomSheet({ + super.key, + required this.onCollectionCreated, + }); + + @override + State createState() => + _CreateCollectionBottomSheetState(); +} + +class _CreateCollectionBottomSheetState + extends State { + final _formKey = GlobalKey(); + final _nameController = TextEditingController(); + final _descriptionController = TextEditingController(); + bool _isPublic = false; + bool _isLoading = false; + + @override + void dispose() { + _nameController.dispose(); + _descriptionController.dispose(); + super.dispose(); + } + + Future _createCollection() async { + if (!_formKey.currentState!.validate()) return; + + setState(() => _isLoading = true); + + try { + final pb = AppEngine.engine.pb; + + await pb.collection('collection').create(body: { + 'name': _nameController.text.trim(), + 'description': _descriptionController.text.trim(), + 'is_public': _isPublic, + 'order': 0, + 'user': pb.authStore.record!.id, + }); + + if (mounted) { + Navigator.pop(context); + widget.onCollectionCreated(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to create collection: ${e.toString()}')), + ); + } + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + left: 16, + right: 16, + top: 16, + ), + child: Form( + key: _formKey, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Create New Collection', + style: Theme.of(context).textTheme.titleLarge, + ), + IconButton( + onPressed: () => Navigator.pop(context), + icon: const Icon(Icons.close), + ), + ], + ), + const SizedBox(height: 16), + TextFormField( + controller: _nameController, + decoration: const InputDecoration( + labelText: 'Collection Name', + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.trim().isEmpty) { + return 'Please enter a name'; + } + return null; + }, + textCapitalization: TextCapitalization.words, + ), + const SizedBox(height: 16), + TextFormField( + controller: _descriptionController, + decoration: const InputDecoration( + labelText: 'Description (Optional)', + border: OutlineInputBorder(), + ), + maxLines: 3, + textCapitalization: TextCapitalization.sentences, + ), + const SizedBox(height: 16), + SwitchListTile( + title: const Text('Make Public'), + subtitle: const Text('Allow others to view this collection'), + value: _isPublic, + onChanged: (value) => setState(() => _isPublic = value), + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: _isLoading ? null : _createCollection, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + ), + child: _isLoading + ? const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Create Collection'), + ), + const SizedBox(height: 16), + ], + ), + ), + ); + } +} diff --git a/lib/features/collection/service/service.dart b/lib/features/collection/service/service.dart new file mode 100644 index 0000000..3c0108b --- /dev/null +++ b/lib/features/collection/service/service.dart @@ -0,0 +1,116 @@ +import 'package:file_picker/file_picker.dart'; +import 'package:http/http.dart' as http; +import 'package:path/path.dart'; + +import '../../../engine/engine.dart'; +import '../types/collection_item_model.dart'; + +class CollectionService { + static Future> getCollectionItems({ + required String listId, + String searchQuery = '', + String sortBy = 'created', + bool ascending = false, + }) async { + try { + final List filters = ['list = "$listId"']; + + if (searchQuery.isNotEmpty) { + filters.add('name ~ "$searchQuery"'); + } + + final String sort = ascending ? sortBy : '-$sortBy'; + + final result = + await AppEngine.engine.pb.collection('collection_item').getList( + filter: filters.join(' && '), + sort: sort, + fields: "file, id, name, type, updated, list, user, created", + ); + + return result.items.map( + (item) { + final res = CollectionItemModel.fromJson(item.toJson()); + + if (res.file != null) { + final url = AppEngine.engine.pb.files.getURL( + item, + item.getStringValue('file'), + ); + + res.file = url.toString().replaceFirst( + "api/files//", + "api/files/pbc_2910457697/", + ); + } + + return res; + }, + ).toList(); + } catch (e) { + print('Error fetching collection items: $e'); + rethrow; + } + } + + // Add new item + static Future addItem({ + required String listId, + required String name, + required String type, + PlatformFile? file, + dynamic content, + }) async { + final data = { + 'list': listId, + 'name': name, + 'type': type, + 'content': content, + 'user': AppEngine.engine.pb.authStore.record!.id, + }; + + final record = + await AppEngine.engine.pb.collection('collection_item').create( + body: data, + files: [ + if (file != null) + http.MultipartFile.fromBytes( + "file", + (file.bytes)!.toList(), + filename: basename(file.path!), + ), + ], + ); + + return CollectionItemModel.fromJson(record.toJson()); + } + + // Update existing item + static Future updateItem({ + required String itemId, + String? name, + String? type, + String? file, + Map? content, + }) async { + final data = { + if (name != null) 'name': name, + if (type != null) 'type': type, + if (file != null) 'file': file, + if (content != null) 'content': content, + }; + + final record = + await AppEngine.engine.pb.collection('collection_item').update( + itemId, + body: data, + ); + + return CollectionItemModel.fromJson(record.toJson()); + } + + // Delete item + static Future deleteItem(String itemId) async { + await AppEngine.engine.pb.collection('collection_item').delete(itemId); + } +} diff --git a/lib/features/collection/types/collection_item_model.dart b/lib/features/collection/types/collection_item_model.dart new file mode 100644 index 0000000..d9b3cb8 --- /dev/null +++ b/lib/features/collection/types/collection_item_model.dart @@ -0,0 +1,43 @@ +class CollectionItemModel { + final String id; + final String name; + String? file; + final String listId; + final String userId; + final dynamic content; + final String type; + final DateTime created; + final DateTime updated; + + CollectionItemModel({ + required this.id, + required this.name, + this.file, + required this.listId, + required this.userId, + this.content, + required this.type, + required this.created, + required this.updated, + }); + + factory CollectionItemModel.fromJson(Map json) { + try { + return CollectionItemModel( + id: json['id'], + name: json['name'], + file: json['file'], + listId: json['list'], + userId: json['user'], + content: json['content'], + type: json['type'], + created: DateTime.parse(json['created']), + updated: DateTime.parse(json['updated']), + ); + } catch (e, stack) { + print(e); + print(stack); + rethrow; + } + } +} diff --git a/lib/features/collection/widgets/collection_card.dart b/lib/features/collection/widgets/collection_card.dart new file mode 100644 index 0000000..6a20ca4 --- /dev/null +++ b/lib/features/collection/widgets/collection_card.dart @@ -0,0 +1,313 @@ +import 'package:flutter/material.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../container/collection_list_item_list.dart'; + +class CollectionListModel { + final String id; + final String collectionId; + final String name; + final String? description; + final int order; + final String? background; + final DateTime created; + final DateTime updated; + final String userId; + final bool isPublic; + + CollectionListModel({ + required this.id, + required this.collectionId, + required this.name, + this.description, + required this.order, + this.background, + required this.created, + required this.updated, + required this.userId, + required this.isPublic, + }); + + factory CollectionListModel.fromRecord(RecordModel record) { + return CollectionListModel( + id: record.id, + collectionId: record.collectionId, + name: record.data['name'], + description: record.data['description'], + order: record.data['order'], + background: record.data['background'], + created: DateTime.parse(record.get("created")), + updated: DateTime.parse(record.get("updated")), + userId: record.data['user'], + isPublic: record.data['isPublic'], + ); + } +} + +class CollectionCard extends StatefulWidget { + final CollectionListModel collection; + final double width; + + const CollectionCard({ + super.key, + required this.collection, + this.width = 480, + }); + + @override + State createState() => _CollectionCardState(); +} + +class _CollectionCardState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _scaleAnimation; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + duration: const Duration(milliseconds: 200), + vsync: this, + ); + _scaleAnimation = Tween(begin: 1.0, end: 1.05).animate( + CurvedAnimation(parent: _controller, curve: Curves.easeInOut), + ); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return MouseRegion( + onEnter: (_) => _controller.forward(), + onExit: (_) => _controller.reverse(), + child: AnimatedBuilder( + animation: _scaleAnimation, + builder: (context, child) => Transform.scale( + scale: _scaleAnimation.value, + child: child, + ), + child: Container( + width: widget.width, + height: widget.width * .6, + margin: const EdgeInsets.all(12), + child: Card( + elevation: 8, + shadowColor: Colors.black26, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + clipBehavior: Clip.antiAlias, + child: Stack( + fit: StackFit.expand, + children: [ + // Background Image or Gradient + _buildBackground(), + + // Gradient Overlay + Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.transparent, + Colors.black.withOpacity(0.3), + Colors.black.withOpacity(0.8), + ], + ), + ), + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Spacer(), + // Collection Name + Text( + widget.collection.name, + style: const TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.bold, + shadows: [ + Shadow( + offset: Offset(1, 1), + blurRadius: 3, + color: Colors.black45, + ), + ], + ), + ), + const SizedBox(height: 8), + // Description + if (widget.collection.description != null) + Text( + widget.collection.description!, + style: const TextStyle( + color: Colors.white70, + fontSize: 16, + shadows: [ + Shadow( + offset: Offset(1, 1), + blurRadius: 2, + color: Colors.black45, + ), + ], + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 16), + // Metadata Row + Row( + children: [ + _buildMetadataChip( + Icons.calendar_today, + _formatDate(widget.collection.updated), + ), + const Spacer(), + _buildInteractionButton(), + ], + ), + ], + ), + ), + + // Optional: Add a subtle overlay pattern + CustomPaint( + painter: PatternPainter(), + ), + + // Material Ink Effect for Ripple + Material( + color: Colors.transparent, + child: InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (ctx) => CollectionListItemsScreen( + listId: widget.collection.id, + title: widget.collection.name, + isPublic: widget.collection.isPublic, + ), + ), + ); + }, + ), + ), + ], + ), + ), + ), + ), + ); + } + + Widget _buildBackground() { + if (widget.collection.background != null) { + return Hero( + tag: 'collection-${widget.collection.id}', + child: Image.network( + '${AppEngine.engine.pb.baseURL}/api/files/${widget.collection.collectionId}/${widget.collection.id}/${widget.collection.background}', + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) => + _buildFallbackBackground(), + ), + ); + } + return _buildFallbackBackground(); + } + + Widget _buildFallbackBackground() { + // Generate a unique but consistent color based on collection ID + final color = Color( + (widget.collection.id.hashCode & 0xFFFFFF) | 0xFF000000, + ); + + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + color, + Color.lerp(color, Colors.white, 0.2)!, + ], + ), + ), + child: const Icon( + Icons.collections, + size: 80, + color: Colors.white24, + ), + ); + } + + Widget _buildMetadataChip(IconData icon, String label) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: Colors.black26, + borderRadius: BorderRadius.circular(12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon, size: 16, color: Colors.white70), + const SizedBox(width: 4), + Text( + label, + style: const TextStyle(color: Colors.white70), + ), + ], + ), + ); + } + + Widget _buildInteractionButton() { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + ), + child: IconButton( + icon: const Icon(Icons.arrow_forward, color: Colors.black87), + visualDensity: VisualDensity.compact, + onPressed: () { + // Handle interaction + }, + ), + ); + } + + String _formatDate(DateTime date) { + return '${date.day}/${date.month}/${date.year}'; + } +} + +// Custom Pattern Painter for subtle overlay +class PatternPainter extends CustomPainter { + @override + void paint(Canvas canvas, Size size) { + final paint = Paint() + ..color = Colors.white.withOpacity(0.05) + ..strokeWidth = 1; + + for (var i = 0; i < size.width; i += 20) { + for (var j = 0; j < size.height; j += 20) { + canvas.drawCircle(Offset(i.toDouble(), j.toDouble()), 1, paint); + } + } + } + + @override + bool shouldRepaint(CustomPainter oldDelegate) => false; +} diff --git a/lib/features/connection/containers/auto_import.dart b/lib/features/connection/containers/auto_import.dart new file mode 100644 index 0000000..d68fe23 --- /dev/null +++ b/lib/features/connection/containers/auto_import.dart @@ -0,0 +1,172 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; + +import '../../../engine/engine.dart'; +import '../../settings/types/connection.dart'; + +class AutoImport extends StatefulWidget { + final Connection item; + final VoidCallback? onImport; + + const AutoImport({ + super.key, + required this.item, + this.onImport, + }); + + @override + State createState() => _AutoImportState(); +} + +class _AutoImportState extends State { + late StremioService _stremio; + final List _selected = []; + bool _isLoading = false; + + Future>? _folders; + + @override + void initState() { + super.initState(); + + initialValueImport(); + } + + void initialValueImport() { + if ("stremio_addons" == widget.item.type) { + _stremio = StremioService( + connectionId: Future.delayed( + Duration.zero, + () => widget.item.id, + ), + config: widget.item.config!, + ); + + _folders = _stremio.getFolders(); + } + } + + void createLibraryInBulk() async { + setState(() { + _isLoading = true; + }); + + int loaded = 0; + for (var item in _selected) { + try { + await AppEngine.engine.pb.collection("library").create(body: { + "title": item.title, + "icon": Icons.video_library.codePoint.toString(), + "types": ["video"], + "user": AppEngine.engine.pb.authStore.record!.id, + "config": [item.config ?? item.id], + "connection": widget.item.id, + }); + + loaded += 1; + } catch (e, stack) { + if (kDebugMode) print("Failed to $e"); + if (kDebugMode) print(stack); + } + } + + if (context.mounted && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + "Imported Libraries $loaded failed ${_selected.length - loaded}", + ), + ), + ); + + setState(() { + _isLoading = false; + }); + + if (widget.onImport != null) widget.onImport!(); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.transparent, + appBar: AppBar( + title: const Text("Import Libraries"), + backgroundColor: Colors.transparent, + actions: [ + ElevatedButton.icon( + onPressed: _selected.isNotEmpty + ? () { + createLibraryInBulk(); + } + : null, + label: const Text("Import"), + icon: _isLoading + ? const SizedBox( + width: 12, + height: 12, + child: CircularProgressIndicator(), + ) + : const Icon(Icons.save), + ), + const SizedBox( + width: 6, + ), + ], + ), + body: FutureBuilder( + future: _folders, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Text("Error: ${snapshot.error}"); + } + + if (!snapshot.hasData) { + return const Center( + child: CircularProgressIndicator(), + ); + } + + return ListView.builder( + itemCount: snapshot.data?.length ?? 0, + itemBuilder: (item, index) { + final item = snapshot.data![index]; + + final selected = + _selected.where((selected) => selected.id == item.id); + + return ListTile( + onTap: () { + setState(() { + if (selected.isEmpty) { + _selected.add(item); + } else { + _selected.remove(item); + } + }); + }, + leading: selected.isNotEmpty + ? const Icon(Icons.check) + : const Icon(Icons.check_box_outline_blank), + title: Text(item.title), + ); + }, + ); + }, + ), + ); + } +} + +class AutoImportData { + final String id; + final String title; + + AutoImportData({ + required this.id, + required this.title, + }); +} diff --git a/lib/features/connection/containers/configure_neo_connection.dart b/lib/features/connection/containers/configure_neo_connection.dart new file mode 100644 index 0000000..ad6a233 --- /dev/null +++ b/lib/features/connection/containers/configure_neo_connection.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/connection_type.dart'; + +class ConfigureNeoConnection extends StatefulWidget { + final ConnectionTypeRecord item; + final void Function(String id) onConnectionComplete; + + const ConfigureNeoConnection({ + super.key, + required this.item, + required this.onConnectionComplete, + }); + + @override + State createState() => _ConfigureNeoConnectionState(); +} + +class _ConfigureNeoConnectionState extends State { + final _formKey = GlobalKey(); + final _urlController = TextEditingController(); + final _usernameController = TextEditingController(); + final _passwordController = TextEditingController(); + bool _isLoading = false; + + @override + void dispose() { + _urlController.dispose(); + _usernameController.dispose(); + _passwordController.dispose(); + super.dispose(); + } + + Future _saveConnection() async { + if (!_formKey.currentState!.validate()) { + return; + } + + setState(() => _isLoading = true); + + try { + if (!mounted) return; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Connection saved successfully'), + backgroundColor: Colors.green, + ), + ); + + // widget.onConnectionComplete(""); + } catch (e) { + if (!mounted) return; + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Error saving connection: ${e.toString()}'), + backgroundColor: Colors.red, + ), + ); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(16.0), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + controller: _urlController, + autofocus: true, + decoration: const InputDecoration( + labelText: 'Server URL', + prefixIcon: Icon(Icons.sensors_rounded), + hintText: 'https://neo.example.com', + border: OutlineInputBorder(), + ), + keyboardType: TextInputType.url, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter server URL'; + } + if (!(Uri.tryParse(value)?.hasAuthority ?? true)) { + return 'Please enter a valid URL'; + } + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: 'Username', + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter username'; + } + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _passwordController, + decoration: const InputDecoration( + labelText: 'Password', + border: OutlineInputBorder(), + ), + obscureText: true, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter password'; + } + return null; + }, + ), + const SizedBox(height: 24), + ElevatedButton( + onPressed: _isLoading ? null : _saveConnection, + child: _isLoading + ? const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Save Connection'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/connection/containers/configure_stremio_connection.dart b/lib/features/connection/containers/configure_stremio_connection.dart new file mode 100644 index 0000000..2ca874a --- /dev/null +++ b/lib/features/connection/containers/configure_stremio_connection.dart @@ -0,0 +1,306 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:madari_client/engine/connection_type.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../../settings/types/connection.dart'; + +class StremioAddonConnection extends StatefulWidget { + final void Function(Connection connection) onConnectionComplete; + final ConnectionTypeRecord item; + + const StremioAddonConnection({ + super.key, + required this.onConnectionComplete, + required this.item, + }); + + @override + State createState() => _StremioAddonConnectionState(); +} + +class _StremioAddonConnectionState extends State { + final PocketBase pb = AppEngine.engine.pb; + final _formKey = GlobalKey(); + final _urlController = TextEditingController(); + final _nameController = TextEditingController(text: "Stremio"); + + static const String cinemetaURL = + 'https://v3-cinemeta.strem.io/manifest.json'; + + bool _isLoading = false; + String? _errorMessage; + + final List> _addons = []; + + Future _validateAddonUrl(String url) async { + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final response = await http.get(Uri.parse(url)); + if (response.statusCode == 200) { + final manifest = json.decode(response.body); + + if (manifest['name'] == null || manifest['id'] == null) { + throw 'Invalid addon manifest'; + } + + if (_addons.any((addon) => addon['url'] == url)) { + throw 'Addon already added to the list'; + } + + setState(() { + _addons.add({ + 'name': manifest['name'], + 'icon': manifest['logo'] ?? manifest['icon'], + 'url': url, + }); + _urlController.clear(); + }); + } else { + throw 'Failed to fetch addon manifest'; + } + } catch (e) { + if (e is FormatException) { + setState(() { + _errorMessage = 'Invalid addon URL'; + }); + } else { + setState(() { + _errorMessage = 'Invalid addon URL: ${e.toString()}'; + }); + } + } finally { + setState(() { + _isLoading = false; + }); + } + } + + Future _saveAddons() async { + if (!_formKey.currentState!.validate() || _addons.isEmpty) return; + + try { + setState(() => _isLoading = true); + + final body = await pb.collection('connection').create(body: { + 'title': _nameController.text, + 'user': pb.authStore.record!.id, + 'type': widget.item.id, + 'config': { + 'addons': _addons + .map( + (item) => item["url"], + ) + .toList() + }, + }); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Saved successfully"), + ), + ); + } + + widget.onConnectionComplete( + Connection( + title: body.getStringValue("title"), + id: body.id, + config: jsonEncode({ + 'addons': _addons + .map( + (item) => item["url"], + ) + .toList() + }), + type: "stremio_addons", + ), + ); + } catch (e) { + if (e is ClientException) { + final response = e.response["data"]; + + final result = response.values.map((item) => item["message"]).join(" "); + + setState(() { + if (kDebugMode) print(result); + _errorMessage = "Error: $result"; + }); + + return; + } + + setState(() { + _errorMessage = "Error: ${e.toString()}"; + }); + } finally { + setState(() => _isLoading = false); + } + } + + void _removeAddon(int index) { + setState(() { + _addons.removeAt(index); + }); + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only( + left: 16.0, + right: 16.0, + bottom: 16.0, + ), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextFormField( + controller: _nameController, + decoration: const InputDecoration( + labelText: 'Connection name', + ), + validator: (value) { + if (value != null && value.isNotEmpty) { + return null; + } + return "Connection name is required"; + }, + ), + const SizedBox( + height: 12, + ), + TextFormField( + controller: _urlController, + decoration: InputDecoration( + labelText: 'Addon URL', + hintText: 'https://example.com/manifest.json', + suffixIcon: IconButton( + icon: const Icon(Icons.add), + onPressed: () => _validateAddonUrl(_urlController.text), + ), + ), + validator: (value) { + if (_addons.isEmpty) { + return 'Please add at least one addon'; + } + if (value != null && value.isNotEmpty) { + try { + final uri = Uri.parse(value); + if (!uri.isScheme('http') && !uri.isScheme('https')) { + return 'Please enter a valid HTTP/HTTPS URL'; + } + } catch (e) { + return 'Please enter a valid URL'; + } + } + return null; + }, + ), + if (_isLoading) const Center(child: CircularProgressIndicator()), + if (_errorMessage != null) + Padding( + padding: const EdgeInsets.only( + top: 8.0, + ), + child: Text( + _errorMessage!, + style: const TextStyle(color: Colors.red), + ), + ), + const SizedBox( + height: 12, + ), + Text( + 'Suggested Addons:', + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox( + height: 6, + ), + Row( + children: [ + ActionChip.elevated( + label: const Text("Cinemeta"), + onPressed: () { + _validateAddonUrl(cinemetaURL); + }, + avatar: const Icon(Icons.extension), + ) + ], + ), + if (_addons.isNotEmpty) ...[ + const SizedBox(height: 16), + Text( + 'Added Addons:', + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox( + height: 6, + ), + ListView.builder( + shrinkWrap: true, + itemCount: _addons.length, + itemBuilder: (context, index) { + final addon = _addons[index]; + return Container( + padding: const EdgeInsets.only(bottom: 12), + child: Card( + margin: EdgeInsets.zero, + child: ListTile( + leading: addon['icon'] != null + ? Image.network( + addon['icon'], + width: 40, + height: 40, + errorBuilder: (_, __, ___) => + const Icon(Icons.extension), + ) + : const Icon( + Icons.extension, + size: 40, + ), + title: Text(addon['name']), + subtitle: Text( + addon['url'], + maxLines: 1, + ), + trailing: IconButton( + icon: const Icon(Icons.remove_circle_outline), + onPressed: () => _removeAddon(index), + color: Colors.red, + ), + ), + ), + ); + }, + ), + ], + const SizedBox(height: 16), + ElevatedButton( + onPressed: _addons.isNotEmpty && !_isLoading ? _saveAddons : null, + child: const Text('Save Configuration'), + ), + ], + ), + ), + ); + } + + @override + void dispose() { + _urlController.dispose(); + super.dispose(); + } +} diff --git a/lib/features/connection/containers/connection_manager.dart b/lib/features/connection/containers/connection_manager.dart new file mode 100644 index 0000000..297a3d3 --- /dev/null +++ b/lib/features/connection/containers/connection_manager.dart @@ -0,0 +1,270 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/features/connection/containers/auto_import.dart'; +import 'package:madari_client/features/settings/types/connection.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../../../engine/library.dart'; +import '../../library/screen/create_new_library.dart'; + +class ConnectionManager extends StatefulWidget { + final Connection item; + + const ConnectionManager({ + super.key, + required this.item, + }); + + @override + State createState() => _ConnectionManagerState(); +} + +class _ConnectionManagerState extends State { + final PocketBase pb = AppEngine.engine.pb; + late Future> _items; + bool _isLoading = false; + bool _isDragging = false; + + @override + void initState() { + super.initState(); + _refreshItems(); + } + + void _refreshItems() { + setState(() { + _items = pb.collection("library").getList( + filter: "connection.id = ${jsonEncode(widget.item.id)}", + sort: "+order", + ); + }); + } + + Future _updateOrder( + int oldIndex, int newIndex, List items) async { + setState(() => _isDragging = true); + try { + if (oldIndex < newIndex) { + newIndex -= 1; + } + + final item = items.removeAt(oldIndex); + items.insert(newIndex, item); + + // Update order for all affected items + for (int i = 0; i < items.length; i++) { + await pb.collection("library").update( + items[i].id, + body: {"order": i}, + ); + } + } finally { + setState(() => _isDragging = false); + _refreshItems(); + } + } + + Future _showEditDialog(RecordModel item) async { + final TextEditingController titleController = TextEditingController( + text: item.getStringValue("title"), + ); + + return showDialog( + context: context, + barrierDismissible: !_isLoading, + builder: (context) => AlertDialog( + title: const Text('Edit Library'), + content: TextField( + controller: titleController, + decoration: const InputDecoration(labelText: 'Library Name'), + autofocus: true, + enabled: !_isLoading, + ), + actions: [ + TextButton( + onPressed: _isLoading ? null : () => Navigator.pop(context), + child: const Text('Cancel'), + ), + TextButton( + onPressed: _isLoading + ? null + : () async { + setState(() => _isLoading = true); + try { + await pb.collection("library").update( + item.id, + body: {"title": titleController.text}, + ); + if (context.mounted) if (mounted) Navigator.pop(context); + _refreshItems(); + } finally { + setState(() => _isLoading = false); + } + }, + child: _isLoading + ? const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Save'), + ), + ], + ), + ); + } + + Future _confirmDelete(RecordModel item) async { + return showDialog( + context: context, + barrierDismissible: !_isLoading, + builder: (context) => AlertDialog( + title: const Text('Confirm Delete'), + content: const Text('Are you sure you want to delete this library?'), + actions: [ + TextButton( + onPressed: _isLoading ? null : () => Navigator.pop(context), + child: const Text('Cancel'), + ), + TextButton( + onPressed: _isLoading + ? null + : () async { + setState(() => _isLoading = true); + try { + await pb.collection("library").delete(item.id); + if (mounted && context.mounted) Navigator.pop(context); + _refreshItems(); + } finally { + setState(() => _isLoading = false); + } + }, + child: _isLoading + ? const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Delete', style: TextStyle(color: Colors.red)), + ), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Connection ${widget.item.title}"), + actions: [ + TextButton.icon( + onPressed: () {}, + label: const Text("Settings"), + icon: const Icon(Icons.settings), + ), + const SizedBox(width: 6), + ElevatedButton.icon( + onPressed: _isDragging || _isLoading + ? null + : () { + showModalBottomSheet( + context: context, + builder: (ctx) => AutoImport(item: widget.item), + ).then((_) => _refreshItems()); + }, + label: const Text("Auto Import"), + icon: const Icon(Icons.auto_awesome), + ), + const SizedBox(width: 10), + ], + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: _isDragging || _isLoading + ? null + : () { + showModalBottomSheet( + context: context, + builder: (context) => Consumer( + builder: (context, ref, child) => CreateNewLibrary( + item: widget.item, + onCreatedAnother: () {}, + onCreated: () { + Navigator.pop(context); + ref.refresh(libraryListProvider(1).future); + _refreshItems(); + }, + ), + ), + ); + }, + label: const Text("Add new library"), + icon: const Icon(Icons.add), + ), + body: Center( + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 800), + child: FutureBuilder( + future: _items, + builder: (ctx, result) { + if (result.hasError) { + return Center( + child: Text("Error: ${result.error}"), + ); + } + + if (!result.hasData) { + return const Center( + child: CircularProgressIndicator(), + ); + } + + final items = result.data!.items; + + return ReorderableListView.builder( + padding: const EdgeInsets.all(8.0), + itemCount: items.length, + onReorder: (oldIndex, newIndex) => + _updateOrder(oldIndex, newIndex, items), + itemBuilder: (context, index) { + final item = items[index]; + return Card( + key: ValueKey(item.id), + margin: + const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + child: ListTile( + title: Text( + item.getStringValue("title"), + style: Theme.of(context).textTheme.titleMedium, + ), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + IconButton( + icon: const Icon(Icons.edit), + onPressed: _isDragging || _isLoading + ? null + : () => _showEditDialog(item), + ), + IconButton( + icon: const Icon(Icons.delete), + onPressed: _isDragging || _isLoading + ? null + : () => _confirmDelete(item), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + ), + ); + } +} diff --git a/lib/features/connection/containers/create_new_connection.dart b/lib/features/connection/containers/create_new_connection.dart new file mode 100644 index 0000000..5f555cf --- /dev/null +++ b/lib/features/connection/containers/create_new_connection.dart @@ -0,0 +1,208 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/engine/connection_type.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class CreateNewConnection extends StatefulWidget { + final void Function(ConnectionTypeRecord record)? onCallback; + + const CreateNewConnection({ + super.key, + this.onCallback, + }); + + @override + State createState() => _CreateNewConnectionState(); +} + +class _CreateNewConnectionState extends State { + @override + Widget build(BuildContext context) { + return Container( + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.85, + minHeight: MediaQuery.of(context).size.height * 0.5, + ), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: const BorderRadius.vertical(top: Radius.circular(28)), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + _buildBottomSheetHandle(), + _buildHeader(context), + Expanded( + child: Consumer( + builder: (context, ref, child) { + final activity = ref.watch(connectionTypeListProvider(page: 1)); + + return activity.when( + data: (result) => _buildConnectionList(result), + error: (error, trace) => _buildError(error), + loading: () => const Center( + child: CircularProgressIndicator(), + ), + ); + }, + ), + ), + ], + ), + ); + } + + Widget _buildBottomSheetHandle() { + return Padding( + padding: const EdgeInsets.only(top: 12, bottom: 8), + child: Container( + width: 32, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ); + } + + Widget _buildHeader(BuildContext context) { + return Container( + padding: const EdgeInsets.fromLTRB(24, 8, 24, 16), + child: Column( + children: [ + Text( + "Add New Connection", + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + "Select a connection type to configure", + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Colors.grey[600], + ), + ), + ], + ), + ); + } + + Widget _buildConnectionList(ResultList result) { + return ListView.builder( + padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + itemCount: result.items.length, + itemBuilder: (context, index) => _buildConnectionTile( + context, + result.items[index], + ), + ); + } + + Widget _buildConnectionTile(BuildContext context, ConnectionTypeRecord item) { + return InkWell( + onTap: () { + final callback = widget.onCallback; + + if (callback != null) { + callback(item); + } + }, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + border: Border.all( + color: Colors.grey[200]!, + width: 1, + ), + borderRadius: BorderRadius.circular(12), + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Theme.of(context) + .colorScheme + .primaryContainer + .withOpacity(0.2), + borderRadius: BorderRadius.circular(12), + ), + child: Icon( + getIcon(item.icon), + color: Theme.of(context).colorScheme.primary, + size: 24, + ), + ), + const SizedBox(width: 16), + Expanded( + child: Text( + item.title, + style: Theme.of(context).textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.w500, + ), + ), + ), + Icon( + Icons.chevron_right, + color: Colors.grey[400], + size: 20, + ), + ], + ), + ), + ), + ), + ); + } + + Widget _buildError(Object error) { + return Padding( + padding: const EdgeInsets.all(24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: 48, + color: Colors.red[300], + ), + const SizedBox(height: 16), + Text( + 'Unable to load connection types', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.grey[800], + ), + ), + const SizedBox(height: 8), + Text( + 'Please try again later', + style: TextStyle(color: Colors.grey[600]), + ), + ], + ), + ); + } + + IconData getIcon(String input) { + switch (input) { + case "drive_file_move": + return Icons.drive_file_move; + case "sensors_rounded": + return Icons.sensors_rounded; + case "telegram": + return Icons.telegram; + case "video": + return Icons.stream; + default: + return Icons.ac_unit; + } + } +} diff --git a/lib/features/connection/containers/folder_selector.dart b/lib/features/connection/containers/folder_selector.dart new file mode 100644 index 0000000..0cbe65e --- /dev/null +++ b/lib/features/connection/containers/folder_selector.dart @@ -0,0 +1,170 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/settings/types/connection.dart'; + +import '../../../engine/library.dart'; +import '../services/base_connection_service.dart'; + +class FolderSelector extends StatefulWidget { + final void Function(List) onFolderSelected; + final Connection item; + + const FolderSelector({ + super.key, + required this.onFolderSelected, + required this.item, + }); + + @override + createState() => _FolderSelectorState(); +} + +class _FolderSelectorState extends State { + List _folders = []; + final List _selectedFolder = []; + bool _isLoading = true; + String? _errorMessage; + late final BaseConnectionService connectionService; + + final TextEditingController _searchController = TextEditingController(); + List _filteredFolders = []; + + @override + void initState() { + super.initState(); + + final connectionId = Future.delayed( + Duration.zero, + () => widget.item.id, + ); + + switch (widget.item.type) { + case "stremio_addons": + connectionService = StremioService( + connectionId: connectionId, + config: widget.item.config ?? "{}", + ); + + default: + throw TypeError(); + } + + _loadFolders(); + _searchController.addListener(_filterFolders); + } + + void _filterFolders() { + final query = _searchController.text.toLowerCase(); + setState(() { + _filteredFolders = _folders.where((folder) { + return folder.title.toLowerCase().contains(query); + }).toList(); + }); + } + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + Future _loadFolders() async { + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final folders = await _fetchFolders(); + + setState(() { + _folders = folders; + _filteredFolders = _folders; + _isLoading = false; + }); + + _filterFolders(); + } catch (e) { + setState(() { + _errorMessage = 'Failed to load folders'; + _isLoading = false; + }); + rethrow; + } + } + + Future> _fetchFolders() async { + return connectionService.getFolders(); + } + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Select', + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox(height: 10), + TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: 'Search folders...', + prefixIcon: const Icon(Icons.search), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + contentPadding: + const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + ), + ), + const SizedBox(height: 16), + if (_isLoading) + const Center(child: CircularProgressIndicator()) + else if (_errorMessage != null) + Text( + _errorMessage!, + style: const TextStyle(color: Colors.red), + ) + else if (_filteredFolders.isEmpty) + const Text('No folders available') + else + ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: _filteredFolders.length, + itemBuilder: (context, index) { + final folder = _filteredFolders[index]; + + final selected = + _selectedFolder.where((i) => i.id == folder.id).isNotEmpty; + + return ListTile( + title: Text(folder.title), + leading: folder.icon, + trailing: selected + ? Icon( + Icons.check, + color: Theme.of(context).primaryColorLight, + ) + : const Icon(Icons.circle_outlined), + selected: selected, + selectedTileColor: Colors.blue.withOpacity(0.1), + onTap: () { + setState(() { + if (!selected) { + _selectedFolder.add(folder); + } else { + _selectedFolder.remove(folder); + } + widget.onFolderSelected(_selectedFolder); + }); + }, + ); + }, + ), + ], + ); + } +} diff --git a/lib/features/connection/containers/show_handle_connection_type.dart b/lib/features/connection/containers/show_handle_connection_type.dart new file mode 100644 index 0000000..01b74c8 --- /dev/null +++ b/lib/features/connection/containers/show_handle_connection_type.dart @@ -0,0 +1,94 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/settings/types/connection.dart'; + +import '../../../engine/connection_type.dart'; +import 'configure_stremio_connection.dart'; + +class ShowHandleConnectionType extends StatelessWidget { + final ConnectionTypeRecord item; + final void Function(Connection id) onFinish; + + const ShowHandleConnectionType({ + super.key, + required this.item, + required this.onFinish, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + ), + constraints: BoxConstraints( + // Remove fixed height constraints to allow content to resize + maxHeight: MediaQuery.of(context).size.height * .9, + minWidth: double.infinity, + ), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: const BorderRadius.vertical(top: Radius.circular(28)), + ), + child: SafeArea( + child: SingleChildScrollView( + child: _build(context), + ), + ), + ); + } + + _build(BuildContext context) { + Widget child = Container(); + + switch (item.type) { + case "stremio_addons": + child = StremioAddonConnection( + item: item, + onConnectionComplete: (id) { + onFinish(id); + }, + ); + break; + } + + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + _buildBottomSheetHandle(), + _buildHeader(context), + child, + ], + ); + } + + Widget _buildBottomSheetHandle() { + return Padding( + padding: const EdgeInsets.only(top: 12, bottom: 8), + child: Container( + width: 32, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ); + } + + Widget _buildHeader(BuildContext context) { + return Container( + padding: const EdgeInsets.fromLTRB(24, 8, 24, 16), + child: Column( + children: [ + Text( + "Configure connection", + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + ], + ), + ); + } +} diff --git a/lib/features/connection/services/base_connection_service.dart b/lib/features/connection/services/base_connection_service.dart new file mode 100644 index 0000000..50691bd --- /dev/null +++ b/lib/features/connection/services/base_connection_service.dart @@ -0,0 +1,37 @@ +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/library.dart'; + +abstract class BaseConnectionService { + Future> getFolders(); + Future> getList({ + int page = 1, + required String config, + List? lastItem, + required List type, + String? search, + }); + abstract Future connectionId; + + Future createLibrary({ + required String title, + required String icon, + required List types, + required String config, + }) async { + AppEngine.engine.pb.collection("library").create( + body: { + "title": title, + "icon": icon, + "types": types, + "user": AppEngine.engine.pb.authStore.record?.id, + "config": config, + "connection": connectionId, + }, + ); + } + + Stream> getItem(LibraryItemList item); +} diff --git a/lib/features/connection/services/stremio_service.dart b/lib/features/connection/services/stremio_service.dart new file mode 100644 index 0000000..a025c68 --- /dev/null +++ b/lib/features/connection/services/stremio_service.dart @@ -0,0 +1,266 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:json_annotation/json_annotation.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/connection/services/base_connection_service.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; + +part 'stremio_service.g.dart'; + +class StremioService extends BaseConnectionService { + @override + Future connectionId; + String config; + + static final Map _cache = {}; + + late StremioConfig configParsed; + + StremioService({ + required this.connectionId, + required this.config, + }) { + configParsed = StremioConfig.fromJson(jsonDecode(config)); + + connectionId.then((item) { + AppEngine.engine.pb.collection("connection").getOne(item).then((docs) { + configParsed = StremioConfig.fromJson(docs.get("config")); + }); + }); + } + + Future getManifest(String url) async { + if (_cache.containsKey(url)) { + return _cache[url]!; + } + + final result = await http.get(Uri.parse(url)); + final resultFinal = StremioManifest.fromJson(jsonDecode(result.body)); + _cache[url] = resultFinal; + + return resultFinal; + } + + Future getItemMetaById(String type, String id) async { + for (final addon in configParsed.addons) { + final manifest = await getManifest(addon); + + if (manifest.resources?.contains("meta") != true) { + if (kDebugMode) print("ignoring because meta is not there"); + continue; + } + + final ids = manifest.idPrefixes + ?.firstWhere((item) => id.startsWith(item), orElse: () => ""); + + if (ids == null) { + continue; + } + + final result = await http.get( + Uri.parse("${_getAddonBaseURL(addon)}/meta/$type/$id.json"), + ); + + return StreamMetaResponse.fromJson(jsonDecode(result.body)).meta; + } + + return null; + } + + @override + Future> getFolders() async { + final List result = []; + + for (final addon in configParsed.addons) { + final manifest = await getManifest(addon); + + final List resources = (manifest.resources ?? []).map( + (item) { + return item.name; + }, + ).toList(); + + if (resources.contains("catalog")) { + for (final item + in (manifest.catalogs ?? [] as List)) { + print(item.toJson()); + result.add( + FolderItem( + title: item.name == null + ? "${manifest.name} - ${item.type.capitalize()}".trim() + : "${item.type.capitalize()} - ${item.name}", + id: "${item.type}-${item.id}", + icon: const Icon(Icons.movie), + config: jsonEncode( + { + "type": item.type, + "id": "${item.type}-${item.id}", + "title": + "${item.type} ${item.name?.trim() != "" ? item.name : ""}" + .trim(), + 'addon': addon, + 'item': item, + }, + ), + ), + ); + } + } + } + + return result; + } + + @override + Stream> getItem(LibraryItemList item) { + throw UnimplementedError(); + } + + @override + Future> getList({ + int page = 1, + required String config, + List? lastItem, + required List type, + String? search, + }) async { + final configOutput = jsonDecode(config); + + final List items = []; + + for (final item in configOutput) { + final itemToPush = InternalManifestItemConfig.fromJson(item); + items.add(itemToPush); + } + + final result = ResultList(); + result.page = page; + result.perPage = 50; + result.items = List.empty(growable: true); + + for (final item in items) { + String url = + "${_getAddonBaseURL(item.addon)}/catalog/${item.item.type}/${item.item.id}.json"; + + if (page != 1) { + final skip = result.perPage * (page - 1); + + url = + "${_getAddonBaseURL(item.addon)}/catalog/${item.item.type}/${item.item.id}/skip=${Uri.encodeComponent(skip.toString())}.json"; + } + + if ((search ?? "").isNotEmpty) { + url = + "${_getAddonBaseURL(item.addon)}/catalog/${item.item.type}/${item.item.id}/search=${Uri.encodeComponent(search!)}.json"; + } + + final httpBody = await http.get( + Uri.parse( + url, + ), + ); + + final meta = StrmioMeta.fromJson(json.decode(httpBody.body)); + + for (final meta in meta.metas ?? []) { + result.items.add( + LibraryItemList( + id: meta.id, + title: meta.name!, + logo: meta.poster, + extra: meta.description, + config: jsonEncode(meta), + popularity: (meta.popularity ?? 0), + ), + ); + } + } + + return result; + } + + _getAddonBaseURL(String input) { + return input.endsWith("/manifest.json") + ? input.replaceAll("/manifest.json", "") + : input; + } + + Stream> getStreams( + String type, + String id, { + String? season, + String? episode, + }) async* { + final List streams = []; + + for (final addon in configParsed.addons) { + final addonManifest = await getManifest(addon); + + for (final resource in (addonManifest.resources ?? [])) { + if ((resource is String && resource == "stream") || + ((resource is ResourceObject) && + resource.types?.contains(type) == true)) { + final url = + "${_getAddonBaseURL(addon)}/stream/$type/${Uri.encodeComponent(id)}.json"; + + final result = await http.get(Uri.parse(url), headers: {}); + + final body = StreamResponse.fromJson(jsonDecode(result.body)); + + streams.addAll(body.streams); + + yield streams; + } + } + } + + return; + } +} + +extension StringExtension on String { + String capitalize() { + return "${this[0].toUpperCase()}${substring(1).toLowerCase()}"; + } +} + +@JsonSerializable() +class InternalManifestItemConfig { + final InternalItem item; + final String addon; + + InternalManifestItemConfig({ + required this.item, + required this.addon, + }); + + factory InternalManifestItemConfig.fromJson(Map json) => + _$InternalManifestItemConfigFromJson(json); + + Map toJson() => _$InternalManifestItemConfigToJson(this); +} + +@JsonSerializable() +class InternalItem { + final String id; + final String? name; + final String type; + + InternalItem({ + required this.id, + this.name, + required this.type, + }); + + factory InternalItem.fromJson(Map json) => + _$InternalItemFromJson(json); + + Map toJson() => _$InternalItemToJson(this); +} diff --git a/lib/features/connection/types/stremio.dart b/lib/features/connection/types/stremio.dart new file mode 100644 index 0000000..d1799ae --- /dev/null +++ b/lib/features/connection/types/stremio.dart @@ -0,0 +1 @@ +export '../../connections/types/stremio/stremio_base.types.dart'; diff --git a/lib/features/connections/service/base_connection_service.dart b/lib/features/connections/service/base_connection_service.dart new file mode 100644 index 0000000..aaabcb7 --- /dev/null +++ b/lib/features/connections/service/base_connection_service.dart @@ -0,0 +1,241 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/connection_type.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/connections/service/stremio_connection_service.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../settings/types/connection.dart'; +import '../types/base/base.dart'; +import '../widget/stremio/stremio_create.dart'; + +abstract class BaseConnectionService { + Widget renderCard(LibraryRecord library, LibraryItem item, String heroPrefix); + Widget renderList(LibraryRecord library, LibraryItem item, String heroPrefix); + + final String connectionId; + + static Future getLibraries() async { + final library = + await AppEngine.engine.pb.collection("library").getFullList(); + + return LibraryRecordResponse( + data: library + .map( + (item) => LibraryRecord.fromRecord(item), + ) + .toList(), + ); + } + + factory BaseConnectionService.create( + Connection item, + ConnectionTypeRecord type, + ) { + print(type); + switch (type.type) { + case "stremio_addons": + return StremioConnectionService( + connectionId: item.id, + config: StremioConfig.fromJson(item.config), + ); + } + + throw ErrorDescription("Connection is not supported"); + } + + static Future connectionByIdRaw( + String connectionId, + ) async { + final result = await AppEngine.engine.pb + .collection("connection") + .getOne(connectionId, expand: "type"); + + return ConnectionResponse( + connection: Connection.fromRecord(result), + connectionTypeRecord: ConnectionTypeRecord.fromRecord( + result.get("expand.type"), + ), + ); + } + + static BaseConnectionService connectionById( + ConnectionResponse connection, + ) { + return BaseConnectionService.create( + connection.connection, + connection.connectionTypeRecord, + ); + } + + static Widget createTypeWidget(String type, OnSuccessCallback onSuccess) { + switch (type) { + case "stremio": + return const StremioCreateConnection(); + } + + throw ErrorDescription("Connection is not supported"); + } + + Future> getItems( + LibraryRecord library, { + List? items, + int? page, + int? perPage, + String? cursor, + }); + + Future>> getFilters( + LibraryRecord library, + ); + + Future getItemById(LibraryItem id); + + Stream> getStreams(LibraryRecord library, LibraryItem id, + {String? season, String? episode}); + + BaseConnectionService({ + required this.connectionId, + }); +} + +class StreamList { + final String title; + final String? description; + final DocSource source; + + StreamList({ + required this.title, + this.description, + required this.source, + }); +} + +class ConnectionResponse { + final Connection connection; + final ConnectionTypeRecord connectionTypeRecord; + + ConnectionResponse({ + required this.connectionTypeRecord, + required this.connection, + }); + + Map toJson() { + return { + "connection": connection, + "connectionTypeRecord": connectionTypeRecord, + }; + } +} + +typedef OnSuccessCallback = void Function(String connectionId); + +class LibraryRecordResponse extends Jsonable { + final List data; + + LibraryRecordResponse({ + required this.data, + }); + + @override + Map toJson() { + return { + "data": data.map((item) => item.toJson()).toList(), + }; + } +} + +class ConnectionFilter { + final String title; + final ConnectionFilterType type; + final List? values; + + ConnectionFilter({ + required this.title, + required this.type, + this.values, + }); +} + +enum ConnectionFilterType { + text, + options, +} + +class ConnectionFilterItem { + final String title; + final dynamic value; + + ConnectionFilterItem({ + required this.title, + required this.value, + }); +} + +abstract class LibraryItem extends Jsonable { + late final String id; + + @override + Map toJson(); +} + +abstract class PaginatedResult { + List get items; + bool get hasMore; + + Map toJson() { + return { + "items": items.map((res) => res.toJson()), + "hasMore": hasMore, + }; + } +} + +class CursorPaginatedResult + implements PaginatedResult { + @override + final List items; + @override + final bool hasMore; + final String? nextCursor; + + CursorPaginatedResult({ + required this.items, + required this.hasMore, + this.nextCursor, + }); + + Map toJson() { + return { + "items": items.map((res) => res.toJson()), + "hasMore": hasMore, + "nextCursor": nextCursor, + }; + } +} + +class PagePaginatedResult implements PaginatedResult { + @override + final List items; + @override + final bool hasMore; + final int totalPages; + final int currentPage; + + PagePaginatedResult({ + required this.items, + required this.hasMore, + required this.totalPages, + required this.currentPage, + }); + + @override + Map toJson() { + return { + "items": items.map((res) => res.toJson()).toList(), + "hasMore": hasMore, + "totalPages": totalPages, + "currentPage": currentPage, + }; + } +} diff --git a/lib/features/connections/service/stremio_connection_service.dart b/lib/features/connections/service/stremio_connection_service.dart new file mode 100644 index 0000000..7878e16 --- /dev/null +++ b/lib/features/connections/service/stremio_connection_service.dart @@ -0,0 +1,290 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:json_annotation/json_annotation.dart'; +import 'package:madari_client/features/connections/types/base/base.dart'; +import 'package:madari_client/features/connections/widget/stremio/stremio_card.dart'; +import 'package:madari_client/features/connections/widget/stremio/stremio_list_item.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../connection/services/stremio_service.dart'; +import '../types/stremio/stremio_base.types.dart'; +import './base_connection_service.dart'; + +part 'stremio_connection_service.g.dart'; + +class StremioConnectionService extends BaseConnectionService { + final StremioConfig config; + + StremioConnectionService({ + required super.connectionId, + required this.config, + }); + + @override + Future getItemById(LibraryItem id) async { + for (final addon in config.addons) { + final manifest = await _getManifest(addon); + + if (manifest.resources?.contains("meta") != true) { + continue; + } + + final ids = manifest.idPrefixes + ?.firstWhere((item) => id.id.startsWith(item), orElse: () => ""); + + if (ids == null) { + continue; + } + + final result = await http.get( + Uri.parse( + "${_getAddonBaseURL(addon)}/meta/${(id as Meta).type}/${id.id}.json", + ), + ); + + return StreamMetaResponse.fromJson(jsonDecode(result.body)).meta; + } + + return null; + } + + List getConfig(dynamic configOutput) { + final List configItems = []; + + for (final item in configOutput) { + final itemToPush = InternalManifestItemConfig.fromJson( + jsonDecode(item), + ); + configItems.add(itemToPush); + } + + return configItems; + } + + @override + Future> getItems( + LibraryRecord library, { + List? items, + int? page, + int? perPage, + String? cursor, + }) async { + final List returnValue = []; + final configItems = getConfig(library.config); + + bool hasMore = false; + + const perPage = 50; + + items = [...(items ?? [])]; + + if (page != null) { + items.add( + ConnectionFilterItem( + title: "skip", + value: page * perPage, + ), + ); + } + + for (final item in configItems) { + String url = + "${_getAddonBaseURL(item.addon)}/catalog/${item.item.type}/${item.item.id}"; + + if (items.isNotEmpty) { + String filterPath = items.map((filter) { + return "${filter.title}=${Uri.encodeComponent(filter.value.toString())}"; + }).join('&'); + + // Add filters to URL + if (filterPath.isNotEmpty) { + url += "/$filterPath"; + } + } + + url += ".json"; + + final httpBody = await http.get( + Uri.parse(url), + ); + + final result = StrmioMeta.fromJson(jsonDecode(httpBody.body)); + + hasMore = result.hasMore ?? false; + returnValue.addAll(result.metas ?? []); + } + + return PagePaginatedResult( + items: returnValue.toList(), + currentPage: page ?? 1, + totalPages: 0, + hasMore: hasMore, + ); + } + + @override + Widget renderCard( + LibraryRecord library, LibraryItem item, String heroPrefix) { + return StremioCard( + item: item, + prefix: heroPrefix, + connectionId: connectionId, + libraryId: library.id, + ); + } + + @override + Widget renderList( + LibraryRecord library, LibraryItem item, String heroPrefix) { + return StremioListItem(item: item); + } + + Future _getManifest(String url) async { + final result = await http.get(Uri.parse(url)); + final body = jsonDecode(result.body); + final resultFinal = StremioManifest.fromJson(body); + return resultFinal; + } + + _getAddonBaseURL(String input) { + return input.endsWith("/manifest.json") + ? input.replaceAll("/manifest.json", "") + : input; + } + + @override + Future>> getFilters(LibraryRecord library) async { + return []; + } + + @override + Stream> getStreams( + LibraryRecord library, + LibraryItem id, { + String? season, + String? episode, + }) async* { + final List streams = []; + final meta = id as Meta; + + for (final addon in config.addons) { + final addonManifest = await _getManifest(addon); + + for (final _resource in (addonManifest.resources ?? [])) { + final resource = _resource as ResourceObject; + + if (resource.name != "stream") { + continue; + } + + final idPrefixes = resource.idPrefixes ?? addonManifest.idPrefixes; + final types = resource.types ?? addonManifest.types; + + if (types == null || !types.contains(meta.type)) { + continue; + } + + final hasIdPrefix = + (idPrefixes ?? []).where((item) => meta.id.startsWith(item)); + + if (hasIdPrefix.isEmpty) { + continue; + } + + final url = + "${_getAddonBaseURL(addon)}/stream/${meta.type}/${Uri.encodeComponent(id.id)}.json"; + + final result = await http.get(Uri.parse(url), headers: {}); + + if (result.statusCode == 404) { + continue; + } + + final body = StreamResponse.fromJson(jsonDecode(result.body)); + + streams.addAll( + body.streams + .map((item) { + String streamTitle = item.title ?? item.name ?? "No title"; + + try { + streamTitle = utf8.decode( + (item.title ?? item.name ?? "No Title").runes.toList(), + ); + } catch (e) {} + + final streamDescription = item.description != null + ? utf8.decode( + (item.description!).runes.toList(), + ) + : null; + + String title = meta.name ?? item.title ?? "No title"; + + if (season != null) title += " S$season"; + if (episode != null) title += " E$episode"; + + DocSource? source; + + if (item.url != null) { + source = MediaURLSource( + title: title, + url: item.url!, + id: meta.id, + ); + } + + if (item.infoHash != null) { + source = TorrentSource( + title: title, + infoHash: item.infoHash!, + id: meta.id, + fileName: "$title.mp4", + season: season, + episode: episode, + ); + } + + if (source == null) { + return null; + } + + return StreamList( + title: streamTitle, + description: streamDescription, + source: source, + ); + }) + .whereType() + .toList(), + ); + + yield streams; + } + } + + yield streams; + + return; + } +} + +@JsonSerializable() +class StremioConfig { + List addons; + + StremioConfig({ + required this.addons, + }); + + factory StremioConfig.fromRecord(RecordModel record) => + StremioConfig.fromJson(record.toJson()); + + factory StremioConfig.fromJson(Map json) => + _$StremioConfigFromJson(json); + + Map toJson() => _$StremioConfigToJson(this); +} diff --git a/lib/features/connections/types/base/base.dart b/lib/features/connections/types/base/base.dart new file mode 100644 index 0000000..d34eb0e --- /dev/null +++ b/lib/features/connections/types/base/base.dart @@ -0,0 +1,34 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:pocketbase/pocketbase.dart'; + +part 'base.g.dart'; + +@JsonSerializable() +class LibraryRecord extends Jsonable { + final String id; + final String icon; + final String title; + final List types; + final dynamic config; + final String connection; + final String connectionType; + + LibraryRecord({ + required this.id, + required this.icon, + required this.title, + required this.types, + required this.config, + required this.connection, + required this.connectionType, + }); + + factory LibraryRecord.fromRecord(RecordModel record) => + LibraryRecord.fromJson(record.toJson()); + + factory LibraryRecord.fromJson(Map json) => + _$LibraryRecordFromJson(json); + + @override + Map toJson() => _$LibraryRecordToJson(this); +} diff --git a/lib/features/connections/types/stremio/stremio_base.types.dart b/lib/features/connections/types/stremio/stremio_base.types.dart new file mode 100644 index 0000000..d2b496e --- /dev/null +++ b/lib/features/connections/types/stremio/stremio_base.types.dart @@ -0,0 +1,745 @@ +import 'package:flutter/foundation.dart'; +import 'package:json_annotation/json_annotation.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../service/base_connection_service.dart'; + +part 'stremio_base.types.g.dart'; + +class ResourceConverter implements JsonConverter { + const ResourceConverter(); + + @override + ResourceObject fromJson(dynamic json) { + if (json is String) { + return ResourceObject( + name: json, + ); + } + if (json is Map) { + return ResourceObject.fromJson(json); + } + throw ArgumentError('Invalid resource type: $json'); + } + + @override + dynamic toJson(dynamic object) { + if (object is String) { + return object; + } + if (object is ResourceObject) { + return object.toJson(); + } + throw ArgumentError('Invalid resource type: $object'); + } +} + +@JsonSerializable() +class ResourceObject { + final String name; + final List? types; + final List? idPrefixes; + + ResourceObject({ + required this.name, + this.types, + this.idPrefixes, + }); + + factory ResourceObject.fromJson(Map json) => + _$ResourceObjectFromJson(json); + + Map toJson() => _$ResourceObjectToJson(this); +} + +@JsonSerializable() +class StremioManifest { + final String id; + final String name; + final List? catalogs; + final List? idPrefixes; + final String? icon; + final List? types; + + @ResourceConverter() + final List? resources; + + StremioManifest({ + required this.id, + required this.name, + required this.catalogs, + this.idPrefixes, + this.resources, + this.icon, + this.types, + }); + + factory StremioManifest.fromRecord(RecordModel record) => + StremioManifest.fromJson(record.toJson()); + + factory StremioManifest.fromJson(Map json) { + final result = json['resources'] as List; + final resources = []; + + for (final item in result) { + if (item is String) { + final obj = ResourceObject( + name: item, + ); + resources.add(obj.toJson()); + } else { + resources.add(item); + } + } + + json['resources'] = resources; + + return _$StremioManifestFromJson(json); + } + + Map toJson() => _$StremioManifestToJson(this); +} + +@JsonSerializable() +class StremioManifestCatalog { + String type; + String id; + String? name; + + StremioManifestCatalog({ + required this.id, + required this.type, + this.name, + }); + + factory StremioManifestCatalog.fromRecord(RecordModel record) => + StremioManifestCatalog.fromJson(record.toJson()); + + factory StremioManifestCatalog.fromJson(Map json) => + _$StremioManifestCatalogFromJson(json); + + Map toJson() => _$StremioManifestCatalogToJson(this); +} + +@JsonSerializable() +class StremioConfig { + List addons; + List? movieIframe; + List? seriesIframe; + + StremioConfig({ + required this.addons, + required this.movieIframe, + required this.seriesIframe, + }); + + factory StremioConfig.fromRecord(RecordModel record) => + StremioConfig.fromJson(record.toJson()); + + factory StremioConfig.fromJson(Map json) => + _$StremioConfigFromJson(json); + + Map toJson() => _$StremioConfigToJson(this); +} + +@JsonSerializable() +class StreamMetaResponse { + final Meta meta; + + StreamMetaResponse({ + required this.meta, + }); + + factory StreamMetaResponse.fromJson(Map json) => + _$StreamMetaResponseFromJson(json); + + Map toJson() => _$StreamMetaResponseToJson(this); +} + +@JsonSerializable() +class StrmioMeta { + @JsonKey(name: "metas") + final List? metas; + @JsonKey(name: "hasMore") + final bool? hasMore; + @JsonKey(name: "cacheMaxAge") + final int? cacheMaxAge; + @JsonKey(name: "staleRevalidate") + final int? staleRevalidate; + @JsonKey(name: "staleError") + final int? staleError; + + StrmioMeta({ + required this.metas, + this.hasMore, + this.cacheMaxAge, + this.staleRevalidate, + this.staleError, + }); + + StrmioMeta copyWith({ + List? metas, + bool? hasMore, + int? cacheMaxAge, + int? staleRevalidate, + int? staleError, + }) => + StrmioMeta( + metas: metas ?? this.metas, + hasMore: hasMore ?? this.hasMore, + cacheMaxAge: cacheMaxAge ?? this.cacheMaxAge, + staleRevalidate: staleRevalidate ?? this.staleRevalidate, + staleError: staleError ?? this.staleError, + ); + + factory StrmioMeta.fromJson(Map json) => + _$StrmioMetaFromJson(json); + + Map toJson() => _$StrmioMetaToJson(this); +} + +@JsonSerializable() +class Meta extends LibraryItem { + @JsonKey(name: "imdb_id") + final String? imdbId; + @JsonKey(name: "name") + final String? name; + @JsonKey(name: "popularities") + final Map? popularities; + @JsonKey(name: "type") + final String type; + @JsonKey(name: "cast") + final List? cast; + @JsonKey(name: "country") + final String? country; + @JsonKey(name: "description") + final String? description; + @JsonKey(name: "genre") + final List? genre; + @JsonKey(name: "imdbRating") + final String? imdbRating; + @JsonKey(name: "poster") + String? poster; + @JsonKey(name: "released") + final DateTime? released; + @JsonKey(name: "slug") + final String? slug; + @JsonKey(name: "year") + final String? year; + @JsonKey(name: "status") + final String? status; + @JsonKey(name: "tvdb_id") + final dynamic tvdbId; + @JsonKey(name: "director") + final List? director; + @JsonKey(name: "writer") + final List? writer; + @JsonKey(name: "background") + String? background; + @JsonKey(name: "logo") + final String? logo; + @JsonKey(name: "awards") + final String? awards; + @JsonKey(name: "moviedb_id") + final int? moviedbId; + @JsonKey(name: "runtime") + final String? runtime; + @JsonKey(name: "trailers") + final List? trailers; + @JsonKey(name: "popularity") + final double? popularity; + @JsonKey(name: "id") + final String id; + @JsonKey(name: "videos") + final List

    + ${widget.html} +
    + + + """; + + @override + void initState() { + super.initState(); + + controller = WebViewController() + ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..addJavaScriptChannel( + 'flutter_inappwebview', + onMessageReceived: (message) { + setState(() { + hasError = true; + }); + }, + ) + ..loadHtmlString(html); + } + + @override + Widget build(BuildContext context) { + if (hasError) { + return Container( + height: 100, + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + border: Border.all(color: Colors.red), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + 'Unable to render diagram.\nPlease check the syntax.', + textAlign: TextAlign.center, + style: TextStyle(color: Colors.red), + ), + ), + ); + } + + return Stack( + children: [ + ClipRRect( + borderRadius: + isFullScreen ? BorderRadius.zero : BorderRadius.circular(10), + child: WebViewWidget( + controller: controller, + ), + ), + Positioned( + top: 8, + right: 8, + child: IconButton( + icon: Icon( + isFullScreen ? Icons.fullscreen_exit : Icons.fullscreen, + color: Colors.grey[800], + ), + onPressed: () { + setState(() { + isFullScreen = !isFullScreen; + }); + if (isFullScreen) { + final controller = WebViewController() + ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..loadHtmlString(html); + + Navigator.of(context) + .push( + MaterialPageRoute( + fullscreenDialog: true, + builder: (context) => Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon(Icons.close), + onPressed: () => Navigator.of(context).pop(), + ), + title: const Text("Diagram"), + ), + body: WebViewWidget(controller: controller), + ), + ), + ) + .then((_) { + setState(() { + isFullScreen = false; + }); + }); + } + }, + ), + ), + ], + ); + } +} diff --git a/lib/features/doc_viewer/container/pdf/markers_view.dart b/lib/features/doc_viewer/container/pdf/markers_view.dart new file mode 100644 index 0000000..eb7c7db --- /dev/null +++ b/lib/features/doc_viewer/container/pdf/markers_view.dart @@ -0,0 +1,63 @@ +import 'package:flutter/material.dart'; +import 'package:pdfrx/pdfrx.dart'; + +class Marker { + final Color color; + final PdfTextRanges ranges; + + Marker(this.color, this.ranges); +} + +class MarkersView extends StatefulWidget { + const MarkersView({ + super.key, + required this.markers, + this.onTap, + this.onDeleteTap, + }); + + final List markers; + final void Function(Marker ranges)? onTap; + final void Function(Marker ranges)? onDeleteTap; + + @override + State createState() => _MarkersViewState(); +} + +class _MarkersViewState extends State { + @override + Widget build(BuildContext context) { + return ListView.builder( + itemBuilder: (context, index) { + final marker = widget.markers[index]; + return Padding( + padding: const EdgeInsets.only(bottom: 1), + child: Stack( + children: [ + Material( + color: marker.color.withAlpha(100), + child: InkWell( + onTap: () => widget.onTap?.call(marker), + child: SizedBox( + width: double.infinity, + height: 40, + child: Text( + 'Page #${marker.ranges.pageNumber} - ${marker.ranges.text}'), + ), + ), + ), + Align( + alignment: Alignment.centerRight, + child: IconButton( + icon: const Icon(Icons.delete), + onPressed: () => widget.onDeleteTap?.call(marker), + ), + ), + ], + ), + ); + }, + itemCount: widget.markers.length, + ); + } +} diff --git a/lib/features/doc_viewer/container/pdf/outline_view.dart b/lib/features/doc_viewer/container/pdf/outline_view.dart new file mode 100644 index 0000000..45762b8 --- /dev/null +++ b/lib/features/doc_viewer/container/pdf/outline_view.dart @@ -0,0 +1,54 @@ +// +// Just a rough implementation of the document index +// +import 'package:flutter/material.dart'; +import 'package:pdfrx/pdfrx.dart'; + +class OutlineView extends StatelessWidget { + const OutlineView({ + super.key, + required this.outline, + required this.controller, + }); + + final List? outline; + final PdfViewerController controller; + + @override + Widget build(BuildContext context) { + final list = _getOutlineList(outline, 0).toList(); + return SizedBox( + width: list.isEmpty ? 0 : 200, + child: ListView.builder( + itemCount: list.length, + itemBuilder: (context, index) { + final item = list[index]; + return InkWell( + onTap: () => controller.goToDest(item.node.dest), + child: Container( + margin: EdgeInsets.only( + left: item.level * 16.0 + 8, + top: 8, + bottom: 8, + ), + child: Text( + item.node.title, + softWrap: false, + ), + ), + ); + }, + ), + ); + } + + /// Recursively create outline indent structure + Iterable<({PdfOutlineNode node, int level})> _getOutlineList( + List? outline, int level) sync* { + if (outline == null) return; + for (var node in outline) { + yield (node: node, level: level); + yield* _getOutlineList(node.children, level + 1); + } + } +} diff --git a/lib/features/doc_viewer/container/pdf/password_dialog.dart b/lib/features/doc_viewer/container/pdf/password_dialog.dart new file mode 100644 index 0000000..611a79e --- /dev/null +++ b/lib/features/doc_viewer/container/pdf/password_dialog.dart @@ -0,0 +1,34 @@ +// +// Simple password dialog +// +import 'package:flutter/material.dart'; + +Future passwordDialog(BuildContext context) async { + final textController = TextEditingController(); + return await showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + return AlertDialog( + title: const Text('Enter password'), + content: TextField( + controller: textController, + autofocus: true, + keyboardType: TextInputType.visiblePassword, + obscureText: true, + onSubmitted: (value) => Navigator.of(context).pop(value), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(null), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.of(context).pop(textController.text), + child: const Text('OK'), + ), + ], + ); + }, + ); +} diff --git a/lib/features/doc_viewer/container/pdf/search_view.dart b/lib/features/doc_viewer/container/pdf/search_view.dart new file mode 100644 index 0000000..0eee9da --- /dev/null +++ b/lib/features/doc_viewer/container/pdf/search_view.dart @@ -0,0 +1,376 @@ +import 'package:flutter/material.dart'; +import 'package:pdfrx/pdfrx.dart'; +import 'package:synchronized/extension.dart'; + +class TextSearchView extends StatefulWidget { + const TextSearchView({ + super.key, + required this.textSearcher, + }); + + final PdfTextSearcher textSearcher; + + @override + State createState() => _TextSearchViewState(); +} + +class _TextSearchViewState extends State { + final focusNode = FocusNode(); + final searchTextController = TextEditingController(); + late final pageTextStore = + PdfPageTextCache(textSearcher: widget.textSearcher); + final scrollController = ScrollController(); + + @override + void initState() { + widget.textSearcher.addListener(_searchResultUpdated); + searchTextController.addListener(_searchTextUpdated); + super.initState(); + } + + @override + void dispose() { + scrollController.dispose(); + widget.textSearcher.removeListener(_searchResultUpdated); + searchTextController.removeListener(_searchTextUpdated); + searchTextController.dispose(); + focusNode.dispose(); + super.dispose(); + } + + void _searchTextUpdated() { + widget.textSearcher.startTextSearch(searchTextController.text); + } + + int? _currentSearchSession; + final _matchIndexToListIndex = []; + final _listIndexToMatchIndex = []; + + void _searchResultUpdated() { + if (_currentSearchSession != widget.textSearcher.searchSession) { + _currentSearchSession = widget.textSearcher.searchSession; + _matchIndexToListIndex.clear(); + _listIndexToMatchIndex.clear(); + } + for (int i = _matchIndexToListIndex.length; + i < widget.textSearcher.matches.length; + i++) { + if (i == 0 || + widget.textSearcher.matches[i - 1].pageNumber != + widget.textSearcher.matches[i].pageNumber) { + _listIndexToMatchIndex.add(-widget.textSearcher.matches[i] + .pageNumber); // negative index to indicate page header + } + _matchIndexToListIndex.add(_listIndexToMatchIndex.length); + _listIndexToMatchIndex.add(i); + } + + if (mounted) setState(() {}); + } + + static const double itemHeight = 50; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + widget.textSearcher.isSearching + ? LinearProgressIndicator( + value: widget.textSearcher.searchProgress, + minHeight: 4, + ) + : const SizedBox(height: 4), + Row( + children: [ + const SizedBox(width: 8), + Expanded( + child: Stack( + alignment: Alignment.centerLeft, + children: [ + TextField( + autofocus: true, + focusNode: focusNode, + controller: searchTextController, + decoration: const InputDecoration( + contentPadding: EdgeInsets.only(right: 50), + ), + textInputAction: TextInputAction.search, + onSubmitted: (value) { + focusNode.requestFocus(); + }, + ), + if (widget.textSearcher.hasMatches) + Align( + alignment: Alignment.centerRight, + child: Text( + '${widget.textSearcher.currentIndex! + 1} / ${widget.textSearcher.matches.length}', + style: const TextStyle( + fontSize: 12, + color: Colors.grey, + ), + ), + ), + ], + ), + ), + const SizedBox(width: 4), + IconButton( + onPressed: (widget.textSearcher.currentIndex ?? 0) < + widget.textSearcher.matches.length + ? () async { + await widget.textSearcher.goToNextMatch(); + _conditionScrollPosition(); + } + : null, + icon: const Icon(Icons.arrow_downward), + iconSize: 20, + ), + IconButton( + onPressed: (widget.textSearcher.currentIndex ?? 0) > 0 + ? () async { + await widget.textSearcher.goToPrevMatch(); + _conditionScrollPosition(); + } + : null, + icon: const Icon(Icons.arrow_upward), + iconSize: 20, + ), + ], + ), + const SizedBox(height: 4), + Expanded( + child: ListView.builder( + key: Key(searchTextController.text), + controller: scrollController, + itemCount: _listIndexToMatchIndex.length, + itemBuilder: (context, index) { + final matchIndex = _listIndexToMatchIndex[index]; + if (matchIndex >= 0 && + matchIndex < widget.textSearcher.matches.length) { + final match = widget.textSearcher.matches[matchIndex]; + return SearchResultTile( + key: ValueKey(index), + match: match, + onTap: () async { + await widget.textSearcher.goToMatchOfIndex(matchIndex); + if (mounted) setState(() {}); + }, + pageTextStore: pageTextStore, + height: itemHeight, + isCurrent: matchIndex == widget.textSearcher.currentIndex, + ); + } else { + return Container( + height: itemHeight, + alignment: Alignment.bottomLeft, + padding: const EdgeInsets.only(bottom: 10), + child: Text( + 'Page ${-matchIndex}', + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ); + } + }, + ), + ), + ], + ); + } + + void _conditionScrollPosition() { + final pos = scrollController.position; + final newPos = + itemHeight * _matchIndexToListIndex[widget.textSearcher.currentIndex!]; + if (newPos + itemHeight > pos.pixels + pos.viewportDimension) { + scrollController.animateTo( + newPos + itemHeight - pos.viewportDimension, + duration: const Duration(milliseconds: 300), + curve: Curves.decelerate, + ); + } else if (newPos < pos.pixels) { + scrollController.animateTo( + newPos, + duration: const Duration(milliseconds: 300), + curve: Curves.decelerate, + ); + } + + if (mounted) setState(() {}); + } +} + +class SearchResultTile extends StatefulWidget { + const SearchResultTile({ + super.key, + required this.match, + required this.onTap, + required this.pageTextStore, + required this.height, + required this.isCurrent, + }); + + final PdfTextRangeWithFragments match; + final void Function() onTap; + final PdfPageTextCache pageTextStore; + final double height; + final bool isCurrent; + + @override + State createState() => _SearchResultTileState(); +} + +class _SearchResultTileState extends State { + PdfPageText? pageText; + + @override + void initState() { + super.initState(); + _load(); + } + + void _release() { + if (pageText != null) { + widget.pageTextStore.releaseText(pageText!.pageNumber); + } + } + + Future _load() async { + _release(); + pageText = await widget.pageTextStore.loadText(widget.match.pageNumber); + if (mounted) { + setState(() {}); + } + } + + @override + void dispose() { + _release(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final text = Text.rich(createTextSpanForMatch(pageText, widget.match)); + + return SizedBox( + height: widget.height, + child: Material( + color: widget.isCurrent + ? DefaultSelectionStyle.of(context).selectionColor! + : null, + child: InkWell( + onTap: () => widget.onTap(), + child: Container( + decoration: const BoxDecoration( + border: Border( + bottom: BorderSide( + color: Colors.black12, + width: 0.5, + ), + ), + ), + padding: const EdgeInsets.all(3), + child: text, + ), + ), + ), + ); + } + + TextSpan createTextSpanForMatch( + PdfPageText? pageText, PdfTextRangeWithFragments match, + {TextStyle? style}) { + style ??= const TextStyle( + fontSize: 14, + ); + if (pageText == null) { + return TextSpan( + text: match.fragments.map((f) => f.text).join(), + style: style, + ); + } + final fullText = pageText.fullText; + int first = 0; + for (int i = match.fragments.first.index - 1; i >= 0;) { + if (fullText[i] == '\n') { + first = i + 1; + break; + } + i--; + } + int last = fullText.length; + for (int i = match.fragments.last.end; i < fullText.length; i++) { + if (fullText[i] == '\n') { + last = i; + break; + } + } + + final header = + fullText.substring(first, match.fragments.first.index + match.start); + final body = fullText.substring(match.fragments.first.index + match.start, + match.fragments.last.index + match.end); + final footer = + fullText.substring(match.fragments.last.index + match.end, last); + + return TextSpan( + children: [ + TextSpan(text: header), + TextSpan( + text: body, + style: const TextStyle( + backgroundColor: Colors.yellow, + ), + ), + TextSpan(text: footer), + ], + style: style, + ); + } +} + +/// A helper class to cache loaded page texts. +class PdfPageTextCache { + final PdfTextSearcher textSearcher; + PdfPageTextCache({ + required this.textSearcher, + }); + + final _pageTextRefs = {}; + + /// load the text of the given page number. + Future loadText(int pageNumber) async { + final ref = _pageTextRefs[pageNumber]; + if (ref != null) { + ref.refCount++; + return ref.pageText; + } + return await synchronized(() async { + var ref = _pageTextRefs[pageNumber]; + if (ref == null) { + final pageText = await textSearcher.loadText(pageNumber: pageNumber); + ref = _pageTextRefs[pageNumber] = _PdfPageTextRefCount(pageText!); + } + ref.refCount++; + return ref.pageText; + }); + } + + /// Release the text of the given page number. + void releaseText(int pageNumber) { + final ref = _pageTextRefs[pageNumber]!; + ref.refCount--; + if (ref.refCount == 0) { + _pageTextRefs.remove(pageNumber); + } + } +} + +class _PdfPageTextRefCount { + _PdfPageTextRefCount(this.pageText); + final PdfPageText pageText; + int refCount = 0; +} diff --git a/lib/features/doc_viewer/container/pdf/thumbnails_view.dart b/lib/features/doc_viewer/container/pdf/thumbnails_view.dart new file mode 100644 index 0000000..c223947 --- /dev/null +++ b/lib/features/doc_viewer/container/pdf/thumbnails_view.dart @@ -0,0 +1,55 @@ +// +// Super simple thumbnails view +// +import 'package:flutter/material.dart'; +import 'package:pdfrx/pdfrx.dart'; + +class ThumbnailsView extends StatelessWidget { + const ThumbnailsView( + {super.key, required this.documentRef, required this.controller}); + + final PdfDocumentRef? documentRef; + final PdfViewerController? controller; + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.grey, + child: documentRef == null + ? null + : PdfDocumentViewBuilder( + documentRef: documentRef!, + builder: (context, document) => ListView.builder( + itemCount: document?.pages.length ?? 0, + itemBuilder: (context, index) { + return Container( + margin: const EdgeInsets.all(8), + height: 240, + child: Column( + children: [ + SizedBox( + height: 220, + child: InkWell( + onTap: () => controller!.goToPage( + pageNumber: index + 1, + anchor: PdfPageAnchor.top, + ), + child: PdfPageView( + document: document, + pageNumber: index + 1, + alignment: Alignment.center, + ), + ), + ), + Text( + '${index + 1}', + ), + ], + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/features/doc_viewer/container/pdf_viewer.dart b/lib/features/doc_viewer/container/pdf_viewer.dart new file mode 100644 index 0000000..9065873 --- /dev/null +++ b/lib/features/doc_viewer/container/pdf_viewer.dart @@ -0,0 +1,389 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/doc_viewer/container/pdf/magic_show_markdown.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pdfrx/pdfrx.dart'; +import 'package:pocketbase/pocketbase.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import 'pdf/magic_bottom_sheet.dart'; +import 'pdf/markers_view.dart'; +import 'pdf/outline_view.dart'; +import 'pdf/password_dialog.dart'; +import 'pdf/search_view.dart'; + +class PDFViewerContainer extends StatefulWidget { + final DocSource source; + + const PDFViewerContainer({ + super.key, + required this.source, + }); + + @override + State createState() => _PDFViewerContainerState(); +} + +class _PDFViewerContainerState extends State { + final documentRef = ValueNotifier(null); + final controller = PdfViewerController(); + final showLeftPane = ValueNotifier(false); + final outline = ValueNotifier?>(null); + late final textSearcher = PdfTextSearcher(controller)..addListener(_update); + final _markers = >{}; + List? _textSelections; + + void _update() { + if (mounted) { + setState(() {}); + } + } + + @override + void dispose() { + textSearcher.removeListener(_update); + textSearcher.dispose(); + showLeftPane.dispose(); + outline.dispose(); + documentRef.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.black, + title: Text( + widget.source.title, + style: Theme.of(context).textTheme.bodyLarge, + ), + actions: [ + IconButton( + icon: const Icon(Icons.list), + onPressed: () { + showLeftPane.value = !showLeftPane.value; + }, + ), + IconButton( + onPressed: () { + showModalBottomSheet( + context: context, + builder: (context) { + return Padding( + padding: const EdgeInsets.all(12), + child: search(), + ); + }, + ); + }, + icon: const Icon( + Icons.search, + ), + ) + ], + ), + floatingActionButton: Row( + children: [ + const Spacer(), + IconButton.filledTonal( + icon: const Icon(Icons.zoom_in), + onPressed: () => controller.zoomUp(), + ), + IconButton.filledTonal( + icon: const Icon(Icons.zoom_out), + onPressed: () => controller.zoomDown(), + ), + const SizedBox( + width: 8, + ), + FloatingActionButton.extended( + label: const Text("Magic"), + onPressed: () async { + final result = await showModalBottomSheet( + context: context, + builder: (ctx) { + return MagicBottomSheet( + controller: controller, + ); + }, + ); + + if (result == null || + !context.mounted || + (result is List) && result.length != 2) { + return; + } + + if (result[1] == null || result[0] == null) { + return; + } + + Navigator.of(context).push( + MaterialPageRoute( + builder: (ctx) { + return MagicShowMarkdown( + record: result[0] as RecordModel, + pages: result[1] as List, + controller: controller, + fileName: widget.source.title, + ); + }, + ), + ); + }, + icon: const Icon( + Icons.auto_awesome, + ), + ) + ], + ), + body: Row( + children: [ + AnimatedSize( + duration: const Duration(milliseconds: 300), + child: ValueListenableBuilder( + valueListenable: showLeftPane, + builder: (context, showLeftPane, child) => SizedBox( + width: showLeftPane ? 300 : 0, + child: child!, + ), + child: Padding( + padding: const EdgeInsets.fromLTRB(1, 0, 4, 0), + child: ValueListenableBuilder( + valueListenable: outline, + builder: (context, outline, child) => OutlineView( + outline: outline, + controller: controller, + ), + ), + ), + ), + ), + Expanded( + child: Stack( + children: [ + if (widget.source is FileSource) + PdfViewer.file( + (widget.source as FileSource).filePath, + passwordProvider: () => passwordDialog(context), + controller: controller, + params: params, + ), + if (widget.source is URLSource) + PdfViewer.uri( + Uri.parse((widget.source as URLSource).url), + passwordProvider: () => passwordDialog(context), + headers: (widget.source as URLSource).headers, + controller: controller, + params: params, + ), + ], + ), + ), + ], + ), + ); + } + + Widget search() { + return ValueListenableBuilder( + valueListenable: documentRef, + builder: (context, documentRef, child) => TextSearchView( + textSearcher: textSearcher, + ), + ); + } + + PdfViewerParams get params { + return PdfViewerParams( + enableTextSelection: true, + maxScale: 8, + onViewSizeChanged: (viewSize, oldViewSize, controller) { + if (oldViewSize != null) { + final centerPosition = controller.value.calcPosition(oldViewSize); + final newMatrix = controller.calcMatrixFor(centerPosition); + Future.delayed( + const Duration(milliseconds: 200), + () => controller.goTo(newMatrix), + ); + } + }, + viewerOverlayBuilder: (context, size, handleLinkTap) => [ + GestureDetector( + behavior: HitTestBehavior.translucent, + onTapUp: (details) { + handleLinkTap(details.localPosition); + }, + onDoubleTap: () { + if (controller.currentZoom <= 1) { + controller.zoomUp(loop: true); + } else { + controller.zoomDown( + loop: false, + ); + } + }, + child: IgnorePointer( + child: SizedBox(width: size.width, height: size.height), + ), + ), + PdfViewerScrollThumb( + controller: controller, + orientation: ScrollbarOrientation.right, + thumbSize: const Size(44, 28), + thumbBuilder: (context, thumbSize, pageNumber, controller) => + ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Container( + color: Colors.black, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const SizedBox( + width: 4, + ), + const Icon( + Icons.drag_indicator, + size: 14, + ), + Center( + child: Text( + pageNumber.toString(), + style: const TextStyle(color: Colors.white), + ), + ), + const SizedBox( + width: 8, + ), + ], + ), + ), + ), + ), + PdfViewerScrollThumb( + controller: controller, + orientation: ScrollbarOrientation.bottom, + thumbSize: const Size(80, 22), + thumbBuilder: (context, thumbSize, pageNumber, controller) => + ClipRRect( + borderRadius: BorderRadius.circular(22), + child: Container( + color: Colors.black, + child: const Center( + child: Icon( + Icons.drag_indicator_outlined, + size: 18, + ), + ), + ), + ), + ), + ], + loadingBannerBuilder: (context, bytesDownloaded, totalBytes) => Center( + child: CircularProgressIndicator( + value: totalBytes != null ? bytesDownloaded / totalBytes : null, + backgroundColor: Colors.grey, + ), + ), + linkHandlerParams: PdfLinkHandlerParams( + onLinkTap: (link) { + if (link.url != null) { + navigateToUrl(link.url!); + } else if (link.dest != null) { + controller.goToDest(link.dest); + } + }, + ), + pagePaintCallbacks: [ + textSearcher.pageTextMatchPaintCallback, + _paintMarkers, + ], + onDocumentChanged: (document) async { + if (document == null) { + documentRef.value = null; + outline.value = null; + _textSelections = null; + _markers.clear(); + } + }, + onViewerReady: (document, controller) async { + documentRef.value = controller.documentRef; + outline.value = await document.loadOutline(); + }, + onTextSelectionChange: (selections) { + _textSelections = selections; + }, + ); + } + + void _paintMarkers(Canvas canvas, Rect pageRect, PdfPage page) { + final markers = _markers[page.pageNumber]; + if (markers == null) { + return; + } + for (final marker in markers) { + final paint = Paint() + ..color = marker.color.withAlpha(100) + ..style = PaintingStyle.fill; + + for (final range in marker.ranges.ranges) { + final f = PdfTextRangeWithFragments.fromTextRange( + marker.ranges.pageText, + range.start, + range.end, + ); + if (f != null) { + canvas.drawRect( + f.bounds.toRectInPageRect(page: page, pageRect: pageRect), + paint, + ); + } + } + } + } + + Future navigateToUrl(Uri url) async { + if (await shouldOpenUrl(context, url)) { + await launchUrl(url); + } + } + + Future shouldOpenUrl(BuildContext context, Uri url) async { + final result = await showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + return AlertDialog( + title: const Text('Navigate to URL?'), + content: SelectionArea( + child: Text.rich( + TextSpan( + children: [ + const TextSpan( + text: + 'Do you want to navigate to the following location?\n'), + TextSpan( + text: url.toString(), + style: const TextStyle(color: Colors.blue), + ), + ], + ), + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(false), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.of(context).pop(true), + child: const Text('Go'), + ), + ], + ); + }, + ); + return result ?? false; + } +} diff --git a/lib/features/doc_viewer/container/photo_viewer.dart b/lib/features/doc_viewer/container/photo_viewer.dart new file mode 100644 index 0000000..94956dd --- /dev/null +++ b/lib/features/doc_viewer/container/photo_viewer.dart @@ -0,0 +1,35 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:photo_view/photo_view.dart'; + +class PhotoViewer extends StatelessWidget { + final DocSource source; + const PhotoViewer({ + super.key, + required this.source, + }); + + @override + Widget build(BuildContext context) { + ImageProvider provider; + + if (source is FileSource) { + provider = FileImage(File((source as FileSource).filePath)); + } else if (source is URLSource) { + provider = NetworkImage((source as URLSource).url); + } else { + throw TypeError(); + } + + return Scaffold( + appBar: AppBar( + title: Text(source.title), + ), + body: PhotoView( + imageProvider: provider, + ), + ); + } +} diff --git a/lib/features/doc_viewer/container/video_viewer.dart b/lib/features/doc_viewer/container/video_viewer.dart new file mode 100644 index 0000000..45084b7 --- /dev/null +++ b/lib/features/doc_viewer/container/video_viewer.dart @@ -0,0 +1,472 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:madari_client/features/connections/service/base_connection_service.dart'; +import 'package:madari_client/features/watch_history/service/base_watch_history.dart'; +import 'package:media_kit/media_kit.dart'; +import 'package:media_kit_video/media_kit_video.dart'; + +import '../../../utils/load_language.dart'; +import '../../connections/types/stremio/stremio_base.types.dart' as types; +import '../../connections/widget/stremio/stremio_season_selector.dart'; +import '../../watch_history/service/zeee_watch_history.dart'; +import '../types/doc_source.dart'; +import 'video_viewer/desktop_video_player.dart'; +import 'video_viewer/mobile_video_player.dart'; + +class VideoViewer extends StatefulWidget { + final DocSource source; + final LibraryItem? meta; + final BaseConnectionService? service; + final String? currentSeason; + final String? library; + + const VideoViewer({ + super.key, + required this.source, + this.meta, + this.service, + this.currentSeason, + this.library, + }); + + @override + State createState() => _VideoViewerState(); +} + +class _VideoViewerState extends State { + StreamSubscription? _subTracks; + final zeeeWatchHistory = ZeeeWatchHistoryStatic.service; + Timer? _timer; + late final player = Player( + configuration: const PlayerConfiguration( + title: "Madari", + ), + ); + late final GlobalKey key = GlobalKey(); + + saveWatchHistory() { + final duration = player.state.duration.inSeconds; + final position = player.state.position.inSeconds; + final progress = duration > 0 ? (position / duration * 100).round() : 0; + + if (progress == 0) { + return; + } + + zeeeWatchHistory!.saveWatchHistory( + history: WatchHistory( + id: _source.id, + progress: progress, + duration: duration.toDouble(), + episode: _source.episode, + season: _source.season, + ), + ); + } + + late final controller = VideoController( + player, + configuration: const VideoControllerConfiguration( + enableHardwareAcceleration: true, + ), + ); + List subtitles = []; + List audioTracks = []; + Map languages = {}; + + late DocSource _source; + + void setDefaultAudioTracks(Tracks tracks) { + if (defaultConfigSelected == true && + (tracks.audio.length <= 1 || tracks.audio.length <= 1)) { + return; + } + + defaultConfigSelected = true; + + controller.player.setRate(config.playbackSpeed); + + final defaultSubtitle = config.defaultSubtitleTrack; + final defaultAudio = config.defaultAudioTrack; + + for (final item in tracks.audio) { + if (defaultAudio == item.id || + defaultAudio == item.language || + defaultAudio == item.title) { + controller.player.setAudioTrack(item); + break; + } + } + + for (final item in tracks.subtitle) { + if (defaultSubtitle == item.id || + defaultSubtitle == item.language || + defaultSubtitle == item.title) { + controller.player.setSubtitleTrack(item); + break; + } + } + } + + void onPlaybackReady(Tracks tracks) { + setState(() { + audioTracks = tracks.audio.where((item) { + return item.id != "auto" && item.id != "no"; + }).toList(); + + subtitles = tracks.subtitle.where((item) { + return item.id != "auto"; + }).toList(); + }); + } + + PlaybackConfig config = getPlaybackConfig(); + + bool defaultConfigSelected = false; + + @override + void initState() { + super.initState(); + _source = widget.source; + + SystemChrome.setEnabledSystemUIMode( + SystemUiMode.immersiveSticky, + overlays: [], + ); + + if (!kIsWeb) { + if (Platform.isAndroid || Platform.isIOS) { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + key.currentState?.enterFullscreen(); + }); + } + } + + _streamComplete = player.stream.completed.listen((completed) { + if (completed) { + onLibrarySelect(); + } + }); + + _subTracks = player.stream.tracks.listen((tracks) { + if (mounted) { + setDefaultAudioTracks(tracks); + onPlaybackReady(tracks); + } + }); + + loadLanguages(context).then((language) { + if (mounted) { + setState(() { + languages = language; + }); + } + }); + + loadFile(); + + if (player.platform is NativePlayer && !kIsWeb) { + Future.microtask(() async { + await (player.platform as dynamic).setProperty('network-timeout', '60'); + }); + } + + _timer = Timer.periodic(const Duration(minutes: 1), (timer) { + saveWatchHistory(); + }); + + this._streamListen = player.stream.playing.listen((playing) { + if (playing) { + saveWatchHistory(); + } + }); + } + + loadFile() async { + final item = await zeeeWatchHistory!.getItemWatchHistory( + ids: [ + WatchHistoryGetRequest( + id: _source.id, + season: _source.season, + episode: _source.episode, + ), + ], + ); + + final duration = Duration( + seconds: item.isEmpty + ? 0 + : calculateSecondsFromProgress( + item.first.duration, + item.first.progress.toDouble(), + ), + ); + + switch (_source.runtimeType) { + case const (FileSource): + if (kIsWeb) { + return; + } + player.open( + Media( + (_source as FileSource).filePath, + start: duration, + ), + play: true, + ); + case const (URLSource): + case const (MediaURLSource): + case const (TorrentSource): + player.open( + Media( + (_source as URLSource).url, + httpHeaders: (_source as URLSource).headers, + start: duration, + ), + play: true, + ); + } + } + + bool isScaled = false; + + late StreamSubscription _streamComplete; + late StreamSubscription _streamListen; + + onLibrarySelect() async { + controller.player.pause(); + + final result = await showCupertinoDialog( + context: context, + builder: (context) { + return Scaffold( + appBar: AppBar( + title: const Text("Seasons"), + ), + body: CustomScrollView( + slivers: [ + StremioItemSeasonSelector( + service: widget.service, + library: widget.library!, + meta: widget.meta as types.Meta, + shouldPop: true, + season: int.tryParse(widget.currentSeason!), + ), + ], + ), + ); + }, + ); + + if (result is MediaURLSource) { + _source = result; + + loadFile(); + } + } + + @override + void dispose() { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + DeviceOrientation.landscapeLeft, + DeviceOrientation.landscapeRight, + ]); + SystemChrome.setEnabledSystemUIMode( + SystemUiMode.edgeToEdge, + overlays: [], + ); + _timer?.cancel(); + _subTracks?.cancel(); + _streamComplete.cancel(); + _streamListen.cancel(); + player.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: _buildBody(context), + ); + } + + _buildBody(BuildContext context) { + switch (Theme.of(context).platform) { + case TargetPlatform.android: + case TargetPlatform.iOS: + final mobile = getMobileVideoPlayer( + context, + onLibrarySelect: onLibrarySelect, + hasLibrary: widget.service != null && + widget.library != null && + widget.meta != null, + audioTracks: audioTracks, + player: player, + source: _source, + subtitles: subtitles, + onSubtitleClick: onSubtitleSelect, + onAudioClick: onAudioSelect, + toggleScale: () { + setState(() { + isScaled = !isScaled; + }); + }, + ); + + return MaterialVideoControlsTheme( + fullscreen: mobile, + normal: mobile, + child: Video( + fit: isScaled ? BoxFit.fitWidth : BoxFit.fitHeight, + pauseUponEnteringBackgroundMode: true, + key: key, + onExitFullscreen: () async { + await defaultExitNativeFullscreen(); + if (context.mounted) Navigator.of(context).pop(); + }, + controller: controller, + controls: MaterialVideoControls, + ), + ); + default: + final desktop = getDesktopControls( + context, + audioTracks: audioTracks, + player: player, + source: _source, + subtitles: subtitles, + onAudioSelect: onAudioSelect, + onSubtitleSelect: onSubtitleSelect, + ); + + return MaterialDesktopVideoControlsTheme( + normal: desktop, + fullscreen: desktop, + child: Video( + key: key, + width: MediaQuery.of(context).size.width, + fit: BoxFit.fitWidth, + controller: controller, + controls: MaterialDesktopVideoControls, + ), + ); + } + } + + onSubtitleSelect() { + showCupertinoModalPopup( + context: context, + builder: (ctx) => Card( + child: Container( + height: MediaQuery.of(context).size.height * 0.4, + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: const BorderRadius.vertical(top: Radius.circular(12)), + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Select Subtitle', + style: Theme.of(context).textTheme.titleMedium, + ), + ), + Expanded( + child: ListView.builder( + itemCount: subtitles.length, + itemBuilder: (context, index) { + final currentItem = subtitles[index]; + + final title = currentItem.language ?? + currentItem.title ?? + currentItem.id; + + return ListTile( + title: Text( + languages.containsKey(title) + ? languages[title]! + : title, + ), + selected: + player.state.track.subtitle.id == currentItem.id, + onTap: () { + player.setSubtitleTrack(currentItem); + Navigator.pop(context); + }, + ); + }, + ), + ), + ], + ), + ), + ), + ); + } + + onAudioSelect() { + showCupertinoModalPopup( + context: context, + builder: (ctx) => Card( + child: Container( + height: MediaQuery.of(context).size.height * 0.4, + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: const BorderRadius.vertical(top: Radius.circular(12)), + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Select Audio Track', + style: Theme.of(context).textTheme.titleMedium, + ), + ), + Expanded( + child: ListView.builder( + itemCount: audioTracks.length, + itemBuilder: (context, index) { + final currentItem = audioTracks[index]; + final title = currentItem.language ?? + currentItem.title ?? + currentItem.id; + return ListTile( + title: Text( + languages.containsKey(title) + ? languages[title]! + : title, + ), + selected: player.state.track.audio.id == currentItem.id, + onTap: () { + player.setAudioTrack(currentItem); + Navigator.pop(context); + }, + ); + }, + ), + ), + ], + ), + ), + ), + ); + } +} + +int calculateSecondsFromProgress( + double duration, + double progressPercentage, +) { + final clampedProgress = progressPercentage.clamp(0.0, 100.0); + final currentSeconds = (duration * (clampedProgress / 100)).round(); + return currentSeconds; +} diff --git a/lib/features/doc_viewer/container/video_viewer/desktop_video_player.dart b/lib/features/doc_viewer/container/video_viewer/desktop_video_player.dart new file mode 100644 index 0000000..11c97c2 --- /dev/null +++ b/lib/features/doc_viewer/container/video_viewer/desktop_video_player.dart @@ -0,0 +1,192 @@ +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/features/doc_viewer/container/video_viewer/torrent_stat.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:media_kit/media_kit.dart'; +import 'package:media_kit_video/media_kit_video.dart'; +import 'package:window_manager/window_manager.dart'; + +MaterialDesktopVideoControlsThemeData getDesktopControls( + BuildContext context, { + required DocSource source, + required List subtitles, + required List audioTracks, + required Player player, + Widget? library, + required Function() onSubtitleSelect, + required Function() onAudioSelect, +}) { + return MaterialDesktopVideoControlsThemeData( + toggleFullscreenOnDoublePress: false, + topButtonBar: [ + SafeArea( + child: MaterialDesktopCustomButton( + onPressed: () { + Navigator.of(context).pop(); + }, + icon: const Icon(Icons.arrow_back), + ), + ), + SafeArea( + child: Center( + child: SizedBox( + width: MediaQuery.of(context).size.width - 120, + child: Text( + source.title.endsWith(".mp4") + ? source.title.substring(0, source.title.length - 4) + : source.title, + style: Theme.of(context).textTheme.bodyLarge, + ), + ), + ), + ), + ], + bufferingIndicatorBuilder: source is TorrentSource + ? (ctx) { + return TorrentStats( + torrentHash: source.infoHash, + ); + } + : null, + bottomButtonBar: [ + const MaterialDesktopSkipPreviousButton(), + const MaterialDesktopPlayOrPauseButton(), + const MaterialDesktopSkipNextButton(), + const MaterialDesktopVolumeButton(), + const MaterialDesktopPositionIndicator(), + const Spacer(), + MaterialCustomButton( + onPressed: () { + final speeds = [ + 0.5, + 0.75, + 1.0, + 1.25, + 1.5, + 1.75, + 2.0, + 2.5, + 3.0, + 3.5, + 4.0, + 4.5, + 5.0 + ]; + showCupertinoModalPopup( + context: context, + builder: (ctx) => Card( + child: Container( + height: MediaQuery.of(context).size.height * 0.4, + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: + const BorderRadius.vertical(top: Radius.circular(12)), + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Select Playback Speed', + style: Theme.of(context).textTheme.titleMedium, + ), + ), + Expanded( + child: ListView.builder( + itemCount: speeds.length, + itemBuilder: (context, index) { + final speed = speeds[index]; + return ListTile( + title: Text('${speed}x'), + selected: player.state.rate == speed, + onTap: () { + player.setRate(speed); + Navigator.pop(context); + }, + ); + }, + ), + ), + ], + ), + ), + ), + ); + }, + icon: const Icon(Icons.speed), + ), + MaterialDesktopCustomButton( + onPressed: onSubtitleSelect, + icon: const Icon(Icons.subtitles), + ), + const SizedBox( + width: 12, + ), + MaterialDesktopCustomButton( + onPressed: onAudioSelect, + icon: const Icon(Icons.audiotrack), + ), + if (!kIsWeb && + (Platform.isLinux || Platform.isWindows || Platform.isMacOS)) + const AlwaysOnTopButton(), + const MaterialDesktopFullscreenButton(), + ], + ); +} + +class AlwaysOnTopButton extends StatefulWidget { + const AlwaysOnTopButton({super.key}); + + @override + State createState() => _AlwaysOnTopButtonState(); +} + +class _AlwaysOnTopButtonState extends State { + bool alwaysOnTop = false; + + @override + void initState() { + super.initState(); + + windowManager.isAlwaysOnTop().then((value) { + if (mounted) { + setState(() { + alwaysOnTop = value; + }); + } + }); + } + + @override + Widget build(BuildContext context) { + return Tooltip( + message: "Always on top", + child: MaterialDesktopCustomButton( + onPressed: () async { + if (await windowManager.isAlwaysOnTop()) { + windowManager.setAlwaysOnTop(false); + windowManager.setTitleBarStyle(TitleBarStyle.normal); + setState(() { + alwaysOnTop = false; + }); + windowManager.setVisibleOnAllWorkspaces(false); + } else { + windowManager.setAlwaysOnTop(true); + windowManager.setVisibleOnAllWorkspaces(true); + windowManager.setTitleBarStyle(TitleBarStyle.hidden); + setState(() { + alwaysOnTop = true; + }); + } + }, + icon: Icon( + alwaysOnTop ? Icons.push_pin : Icons.push_pin_outlined, + ), + iconSize: 22, + ), + ); + } +} diff --git a/lib/features/doc_viewer/container/video_viewer/mobile_video_player.dart b/lib/features/doc_viewer/container/video_viewer/mobile_video_player.dart new file mode 100644 index 0000000..8e902d3 --- /dev/null +++ b/lib/features/doc_viewer/container/video_viewer/mobile_video_player.dart @@ -0,0 +1,164 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/features/doc_viewer/container/video_viewer/torrent_stat.dart'; +import 'package:media_kit/media_kit.dart'; +import 'package:media_kit_video/media_kit_video.dart'; + +import '../../types/doc_source.dart'; + +MaterialVideoControlsThemeData getMobileVideoPlayer( + BuildContext context, { + required DocSource source, + required List subtitles, + required List audioTracks, + required Player player, + required VoidCallback onSubtitleClick, + required VoidCallback onAudioClick, + required VoidCallback toggleScale, + required bool hasLibrary, + required VoidCallback onLibrarySelect, +}) { + final mediaQuery = MediaQuery.of(context); + + return MaterialVideoControlsThemeData( + topButtonBar: [ + MaterialCustomButton( + onPressed: () { + Navigator.of(context).pop(); + }, + icon: const Icon( + Icons.arrow_back, + ), + ), + Text( + source.title.endsWith(".mp4") + ? source.title.substring(0, source.title.length - 4) + : source.title, + style: Theme.of(context).textTheme.bodyLarge, + ), + const Spacer(), + if (hasLibrary) + MaterialCustomButton( + icon: const Icon(Icons.library_books), + onPressed: () { + onLibrarySelect(); + }, + ), + ], + bufferingIndicatorBuilder: (source is TorrentSource) + ? (ctx) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 10.0), + child: TorrentStats( + torrentHash: (source).infoHash, + ), + ); + } + : null, + brightnessGesture: true, + seekGesture: true, + seekOnDoubleTap: true, + gesturesEnabledWhileControlsVisible: true, + shiftSubtitlesOnControlsVisibilityChange: true, + seekBarMargin: const EdgeInsets.only(bottom: 54), + speedUpOnLongPress: true, + speedUpFactor: 2, + volumeGesture: true, + bottomButtonBar: [ + const MaterialPlayOrPauseButton(), + const MaterialPositionIndicator(), + const Spacer(), + MaterialCustomButton( + onPressed: () { + final speeds = [ + 0.5, + 0.75, + 1.0, + 1.25, + 1.5, + 1.75, + 2.0, + 2.25, + 2.5, + 3.0, + 3.25, + 3.5, + 3.75, + 4.0, + 4.25, + 4.5, + 4.75, + 5.0 + ]; + showCupertinoModalPopup( + context: context, + builder: (ctx) => Card( + child: Container( + height: MediaQuery.of(context).size.height * 0.4, + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: + const BorderRadius.vertical(top: Radius.circular(12)), + ), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Select Playback Speed', + style: Theme.of(context).textTheme.titleMedium, + ), + ), + Expanded( + child: ListView.builder( + itemCount: speeds.length, + itemBuilder: (context, index) { + final speed = speeds[index]; + return ListTile( + title: Text('${speed}x'), + selected: player.state.rate == speed, + onTap: () { + player.setRate(speed); + Navigator.pop(context); + }, + ); + }, + ), + ), + ], + ), + ), + ), + ); + }, + icon: const Icon(Icons.speed), + ), + MaterialCustomButton( + onPressed: () { + onSubtitleClick(); + }, + icon: const Icon(Icons.subtitles), + ), + MaterialCustomButton( + onPressed: () { + onAudioClick(); + }, + icon: const Icon(Icons.audio_file), + ), + MaterialCustomButton( + onPressed: () { + toggleScale(); + }, + icon: const Icon(Icons.fit_screen_outlined), + ), + ], + topButtonBarMargin: EdgeInsets.only( + top: mediaQuery.padding.top, + ), + bottomButtonBarMargin: EdgeInsets.only( + bottom: mediaQuery.viewInsets.bottom, + left: 4.0, + right: 4.0, + ), + ); +} diff --git a/lib/features/doc_viewer/container/video_viewer/torrent_stat.dart b/lib/features/doc_viewer/container/video_viewer/torrent_stat.dart new file mode 100644 index 0000000..e76a4e7 --- /dev/null +++ b/lib/features/doc_viewer/container/video_viewer/torrent_stat.dart @@ -0,0 +1,527 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:json_annotation/json_annotation.dart'; + +part 'torrent_stat.g.dart'; + +class TorrentStats extends StatefulWidget { + final String torrentHash; + + const TorrentStats({ + super.key, + required this.torrentHash, + }); + + @override + State createState() => _TorrentStatsState(); +} + +class _TorrentStatsState extends State { + late Timer _timer; + TorrentStat? stat; + bool hasOpenOnce = false; + + String _formatBytes(int bytes) { + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(2)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(2)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(2)} GB'; + } + + @override + void initState() { + super.initState(); + _timer = Timer.periodic( + const Duration(seconds: 1), + (_) { + getStats(); + }, + ); + } + + getStats() async { + final result = await http.get( + Uri.parse( + "http://localhost:64544/torrents/${widget.torrentHash}/stats/v1"), + ); + + final data = TorrentStat.fromJson(jsonDecode(result.body)); + + if (mounted) { + setState(() { + stat = data; + hasOpenOnce = true; + }); + } + } + + @override + void dispose() { + super.dispose(); + + _timer.cancel(); + } + + @override + Widget build(BuildContext context) { + final media = MediaQuery.of(context); + final isSmallScreen = media.size.width < 600; + + if (stat == null) { + return Container( + width: min(media.size.width, 800), + height: min(media.size.height, 180), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + ), + child: const Center(child: CircularProgressIndicator()), + ); + } + + return Container( + width: min(media.size.width, 800), + decoration: BoxDecoration( + color: Colors.black54, + borderRadius: BorderRadius.circular(8), + ), + child: Padding( + padding: EdgeInsets.all(isSmallScreen ? 12.0 : 16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + // Status and Progress Row + if (stat?.live != null) ...[ + Row( + children: [ + // Status Indicator + Container( + width: 8, + height: 8, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: stat?.state == 'Downloading' + ? Colors.green + : Colors.grey, + ), + ), + const SizedBox(width: 8), + Text( + stat?.state ?? 'Loading...', + style: const TextStyle( + color: Colors.white70, + fontSize: 14, + ), + ), + const Spacer(), + Text( + '${((stat!.progressBytes / stat!.totalBytes) * 100).toStringAsFixed(1)}%', + style: const TextStyle( + color: Color(0xFFE50914), + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + const SizedBox(height: 8), + + // Progress Bar + LinearProgressIndicator( + value: stat!.progressBytes / stat!.totalBytes, + backgroundColor: Colors.grey[800], + valueColor: + const AlwaysStoppedAnimation(Color(0xFFE50914)), + ), + const SizedBox(height: 12), + + // Main Stats Grid + Wrap( + spacing: 16, + runSpacing: 12, + children: [ + _buildCompactStat( + Icons.download, + Colors.green, + stat!.live!.downloadSpeed.humanReadable, + ), + _buildCompactStat( + Icons.upload, + Colors.blue, + stat!.live!.uploadSpeed.humanReadable, + ), + if (stat!.live!.timeRemaining?.humanReadable != null) + _buildCompactStat( + Icons.timer, + Colors.orange, + stat!.live!.timeRemaining!.humanReadable, + ), + ], + ), + const SizedBox(height: 12), + + // Advanced Stats + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4), + ), + padding: const EdgeInsets.all(8), + child: Column( + children: [ + _buildAdvancedStatRow( + 'Peers', + '${stat!.live!.snapshot.peerStats.live}/${stat!.live!.snapshot.peerStats.seen}', + ), + if (stat!.live!.averagePieceDownloadTime?.secs != null) + _buildAdvancedStatRow( + 'Avg Download', + '${stat!.live!.averagePieceDownloadTime?.secs}s', + ), + _buildAdvancedStatRow( + 'Downloaded', + _formatBytes( + stat!.live!.snapshot.downloadedAndCheckedBytes), + ), + _buildAdvancedStatRow( + 'Uploaded', + _formatBytes(stat!.live!.snapshot.uploadedBytes), + ), + ], + ), + ), + ], + ], + ), + ), + ); + } + + Widget _buildCompactStat(IconData icon, Color color, String value) { + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon, color: color, size: 16), + const SizedBox(width: 4), + Text( + value, + style: const TextStyle( + color: Colors.white, + fontSize: 13, + ), + ), + ], + ); + } + + Widget _buildAdvancedStatRow(String label, String value) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 2), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + label, + style: TextStyle( + color: Colors.grey[400], + fontSize: 12, + ), + ), + Text( + value, + style: const TextStyle( + color: Colors.white, + fontSize: 12, + ), + ), + ], + ), + ); + } +} + +@JsonSerializable() +class TorrentStat { + @JsonKey(name: "state") + final String state; + @JsonKey(name: "file_progress") + final List fileProgress; + @JsonKey(name: "error") + final dynamic error; + @JsonKey(name: "progress_bytes") + final int progressBytes; + @JsonKey(name: "uploaded_bytes") + final int uploadedBytes; + @JsonKey(name: "total_bytes") + final int totalBytes; + @JsonKey(name: "finished") + final bool finished; + @JsonKey(name: "live") + final Live? live; + + TorrentStat({ + required this.state, + required this.fileProgress, + required this.error, + required this.progressBytes, + required this.uploadedBytes, + required this.totalBytes, + required this.finished, + required this.live, + }); + + TorrentStat copyWith({ + String? state, + List? fileProgress, + dynamic error, + int? progressBytes, + int? uploadedBytes, + int? totalBytes, + bool? finished, + Live? live, + }) => + TorrentStat( + state: state ?? this.state, + fileProgress: fileProgress ?? this.fileProgress, + error: error ?? this.error, + progressBytes: progressBytes ?? this.progressBytes, + uploadedBytes: uploadedBytes ?? this.uploadedBytes, + totalBytes: totalBytes ?? this.totalBytes, + finished: finished ?? this.finished, + live: live ?? this.live, + ); + + factory TorrentStat.fromJson(Map json) => + _$TorrentStatFromJson(json); + + Map toJson() => _$TorrentStatToJson(this); +} + +@JsonSerializable() +class Live { + @JsonKey(name: "snapshot") + final Snapshot snapshot; + @JsonKey(name: "average_piece_download_time") + final AveragePieceDownloadTime? averagePieceDownloadTime; + @JsonKey(name: "download_speed") + final LoadSpeed downloadSpeed; + @JsonKey(name: "upload_speed") + final LoadSpeed uploadSpeed; + @JsonKey(name: "time_remaining") + final TimeRemaining? timeRemaining; + + Live({ + required this.snapshot, + this.averagePieceDownloadTime, + required this.downloadSpeed, + required this.uploadSpeed, + required this.timeRemaining, + }); + + Live copyWith({ + Snapshot? snapshot, + AveragePieceDownloadTime? averagePieceDownloadTime, + LoadSpeed? downloadSpeed, + LoadSpeed? uploadSpeed, + TimeRemaining? timeRemaining, + }) => + Live( + snapshot: snapshot ?? this.snapshot, + averagePieceDownloadTime: + averagePieceDownloadTime ?? this.averagePieceDownloadTime, + downloadSpeed: downloadSpeed ?? this.downloadSpeed, + uploadSpeed: uploadSpeed ?? this.uploadSpeed, + timeRemaining: timeRemaining ?? this.timeRemaining, + ); + + factory Live.fromJson(Map json) => _$LiveFromJson(json); + + Map toJson() => _$LiveToJson(this); +} + +@JsonSerializable() +class AveragePieceDownloadTime { + @JsonKey(name: "secs") + final int secs; + @JsonKey(name: "nanos") + final int nanos; + + AveragePieceDownloadTime({ + required this.secs, + required this.nanos, + }); + + AveragePieceDownloadTime copyWith({ + int? secs, + int? nanos, + }) => + AveragePieceDownloadTime( + secs: secs ?? this.secs, + nanos: nanos ?? this.nanos, + ); + + factory AveragePieceDownloadTime.fromJson(Map json) => + _$AveragePieceDownloadTimeFromJson(json); + + Map toJson() => _$AveragePieceDownloadTimeToJson(this); +} + +@JsonSerializable() +class LoadSpeed { + @JsonKey(name: "mbps") + final double mbps; + @JsonKey(name: "human_readable") + final String humanReadable; + + LoadSpeed({ + required this.mbps, + required this.humanReadable, + }); + + LoadSpeed copyWith({ + double? mbps, + String? humanReadable, + }) => + LoadSpeed( + mbps: mbps ?? this.mbps, + humanReadable: humanReadable ?? this.humanReadable, + ); + + factory LoadSpeed.fromJson(Map json) => + _$LoadSpeedFromJson(json); + + Map toJson() => _$LoadSpeedToJson(this); +} + +@JsonSerializable() +class Snapshot { + @JsonKey(name: "downloaded_and_checked_bytes") + final int downloadedAndCheckedBytes; + @JsonKey(name: "fetched_bytes") + final int fetchedBytes; + @JsonKey(name: "uploaded_bytes") + final int uploadedBytes; + @JsonKey(name: "downloaded_and_checked_pieces") + final int downloadedAndCheckedPieces; + @JsonKey(name: "total_piece_download_ms") + final int totalPieceDownloadMs; + @JsonKey(name: "peer_stats") + final PeerStats peerStats; + + Snapshot({ + required this.downloadedAndCheckedBytes, + required this.fetchedBytes, + required this.uploadedBytes, + required this.downloadedAndCheckedPieces, + required this.totalPieceDownloadMs, + required this.peerStats, + }); + + Snapshot copyWith({ + int? downloadedAndCheckedBytes, + int? fetchedBytes, + int? uploadedBytes, + int? downloadedAndCheckedPieces, + int? totalPieceDownloadMs, + PeerStats? peerStats, + }) => + Snapshot( + downloadedAndCheckedBytes: + downloadedAndCheckedBytes ?? this.downloadedAndCheckedBytes, + fetchedBytes: fetchedBytes ?? this.fetchedBytes, + uploadedBytes: uploadedBytes ?? this.uploadedBytes, + downloadedAndCheckedPieces: + downloadedAndCheckedPieces ?? this.downloadedAndCheckedPieces, + totalPieceDownloadMs: totalPieceDownloadMs ?? this.totalPieceDownloadMs, + peerStats: peerStats ?? this.peerStats, + ); + + factory Snapshot.fromJson(Map json) => + _$SnapshotFromJson(json); + + Map toJson() => _$SnapshotToJson(this); +} + +@JsonSerializable() +class PeerStats { + @JsonKey(name: "queued") + final int queued; + @JsonKey(name: "connecting") + final int connecting; + @JsonKey(name: "live") + final int live; + @JsonKey(name: "seen") + final int seen; + @JsonKey(name: "dead") + final int dead; + @JsonKey(name: "not_needed") + final int notNeeded; + @JsonKey(name: "steals") + final int steals; + + PeerStats({ + required this.queued, + required this.connecting, + required this.live, + required this.seen, + required this.dead, + required this.notNeeded, + required this.steals, + }); + + PeerStats copyWith({ + int? queued, + int? connecting, + int? live, + int? seen, + int? dead, + int? notNeeded, + int? steals, + }) => + PeerStats( + queued: queued ?? this.queued, + connecting: connecting ?? this.connecting, + live: live ?? this.live, + seen: seen ?? this.seen, + dead: dead ?? this.dead, + notNeeded: notNeeded ?? this.notNeeded, + steals: steals ?? this.steals, + ); + + factory PeerStats.fromJson(Map json) => + _$PeerStatsFromJson(json); + + Map toJson() => _$PeerStatsToJson(this); +} + +@JsonSerializable() +class TimeRemaining { + @JsonKey(name: "duration") + final AveragePieceDownloadTime duration; + @JsonKey(name: "human_readable") + final String humanReadable; + + TimeRemaining({ + required this.duration, + required this.humanReadable, + }); + + TimeRemaining copyWith({ + AveragePieceDownloadTime? duration, + String? humanReadable, + }) => + TimeRemaining( + duration: duration ?? this.duration, + humanReadable: humanReadable ?? this.humanReadable, + ); + + factory TimeRemaining.fromJson(Map json) => + _$TimeRemainingFromJson(json); + + Map toJson() => _$TimeRemainingToJson(this); +} diff --git a/lib/features/doc_viewer/types/doc_source.dart b/lib/features/doc_viewer/types/doc_source.dart new file mode 100644 index 0000000..a803e09 --- /dev/null +++ b/lib/features/doc_viewer/types/doc_source.dart @@ -0,0 +1,365 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'dart:math'; + +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart' as http; +import 'package:json_annotation/json_annotation.dart'; +import 'package:path/path.dart' as path; + +import '../utils/get_types.dart'; + +part 'doc_source.g.dart'; + +enum DocType { pdf, video, audio, photo, unknown } + +sealed class DocSource { + String title; + String id; + String? season; + String? episode; + + DocSource({ + required this.title, + required this.id, + this.season, + this.episode, + }); + + DocType getType(); + + Future init() async {} + + void dispose(); +} + +class IframeSource extends DocSource { + late final String url; + + IframeSource({ + required this.url, + required super.title, + required super.id, + super.season, + super.episode, + }); + + @override + void dispose() {} + + @override + DocType getType() { + throw UnimplementedError(); + } +} + +class ProgressStatus extends DocSource { + final double? percentage; + final String? progressText; + + @override + DocType getType() { + return DocType.unknown; + } + + ProgressStatus({ + required super.id, + required super.title, + this.progressText, + this.percentage, + }); + + @override + void dispose() {} +} + +class URLSource extends DocSource { + String url; + String? fileName; + Map headers = {}; + + URLSource({ + required super.title, + required this.url, + required super.id, + super.season, + super.episode, + this.fileName, + this.headers = const {}, + }); + + @override + DocType getType() { + String cleanUrl = (url).split('?').first; + String extension = (fileName ?? cleanUrl).split('.').last.toLowerCase(); + + return getTypeFromExtension(extension.trim()); + } + + @override + void dispose() {} +} + +class MediaURLSource extends URLSource { + MediaURLSource({required super.title, required super.url, required super.id}); + + @override + DocType getType() { + return DocType.video; + } +} + +class TorrentSource extends URLSource { + final String infoHash; + @override + final String fileName; + final List? trackers; + bool disposed = false; + + TorrentSource({ + required super.id, + required super.title, + required this.infoHash, + required this.fileName, + super.season, + super.episode, + this.trackers, + super.url = "", + }); + + @override + DocType getType() { + String extension = fileName.split('.').last.toLowerCase(); + + return getTypeFromExtension(extension); + } + + @override + Future init() async { + final trackers = [ + "udp://47.ip-51-68-199.eu:6969/announce", + "udp://9.rarbg.me:2940", + "udp://9.rarbg.to:2820", + "udp://exodus.desync.com:6969/announce", + "udp://explodie.org:6969/announce", + "udp://ipv4.tracker.harry.lu:80/announce", + "udp://open.stealth.si:80/announce", + "udp://opentor.org:2710/announce", + "udp://opentracker.i2p.rocks:6969/announce", + "udp://retracker.lanta-net.ru:2710/announce", + "udp://tracker.cyberia.is:6969/announce", + "udp://tracker.dler.org:6969/announce", + "udp://tracker.ds.is:6969/announce", + "udp://tracker.internetwarriors.net:1337", + "udp://tracker.openbittorrent.com:6969/announce", + "udp://tracker.opentrackr.org:1337/announce", + "udp://tracker.tiny-vps.com:6969/announce", + "udp://tracker.torrent.eu.org:451/announce", + "udp://valakas.rollo.dnsabr.com:2710/announce", + "udp://www.torrent.eu.org:451/announce" + ]; + + final value1 = + await http.get(Uri.parse("http://localhost:64544/torrents/$infoHash")); + + if (jsonDecode(value1.body)["error_kind"] == "torrent_not_found") { + await http.post( + Uri.parse("http://localhost:64544/torrents?overwrite=true"), + body: addTrackersToMagnet( + "magnet:?xt=urn:btih:${Uri.encodeComponent(infoHash)}", + trackers, + ), + ); + } else { + await http.post( + Uri.parse("http://localhost:64544/torrents/$infoHash/start"), + ); + } + + final value = await http.get( + Uri.parse("http://localhost:64544/torrents/$infoHash"), + ); + + final obj = jsonDecode( + value.body, + ); + + final objTorrent = TorrentInfoObject.fromJson(obj); + + for (final (index, file) in objTorrent.files.indexed) { + if (path.basename(file.name) == fileName) { + url = "http://localhost:64544/torrents/$infoHash/stream/$index"; + + await http.post( + Uri.parse( + "http://localhost:64544/torrents/$infoHash/update_only_files"), + headers: { + "Content-Type": "application/json", + }, + body: jsonEncode( + { + "only_files": [index] + }, + ), + ); + break; + } + } + + if (url == "") throw AssertionError(); + + return super.init(); + } + + @override + void dispose() { + super.dispose(); + + disposed = true; + + http + .post( + Uri.parse( + "http://localhost:64544/torrents/$infoHash/pause", + ), + ) + .then( + (docs) { + if (kDebugMode) { + print(docs.statusCode); + print("Stopped downloading file"); + } + }, + ); + } + + Future readFirst1MBFromUrl(String url) async { + final client = http.Client(); + + try { + int attempts = 0; + const maxAttempts = 10; + + while (attempts < maxAttempts) { + if (kDebugMode) { + print("Reading $attempts at $url"); + } + + if (disposed) { + break; + } + + try { + final request = http.Request('GET', Uri.parse(url)); + request.headers['range'] = 'bytes=0-${1024 * 1}'; + + final streamedResponse = await client.send(request); + + // Check if the response is successful + if (streamedResponse.statusCode >= 200 && + streamedResponse.statusCode < 300) { + final bytes = + await streamedResponse.stream.take(1024 * 1024).fold>( + [], + (previous, element) => previous..addAll(element), + ); + return Uint8List.fromList(bytes); + } + + throw HttpException( + 'Failed with status: ${streamedResponse.statusCode}'); + } catch (e) { + attempts++; + if (attempts >= maxAttempts) { + throw Exception('Failed after $maxAttempts attempts: $e'); + } + + if (kDebugMode) { + print(e); + } + + await Future.delayed( + Duration(milliseconds: pow(2, attempts).toInt() * 100), + ); + } + } + throw Exception('Unexpected error'); + } finally { + client.close(); + } + } +} + +@JsonSerializable() +class TorrentInfoObject { + final List files; + + TorrentInfoObject({ + required this.files, + }); + + factory TorrentInfoObject.fromJson(Map json) => + _$TorrentInfoObjectFromJson(json); + + Map toJson() => _$TorrentInfoObjectToJson(this); +} + +@JsonSerializable() +class TorrentFile { + final String name; + + TorrentFile({ + required this.name, + }); + + factory TorrentFile.fromJson(Map json) => + _$TorrentFileFromJson(json); + + Map toJson() => _$TorrentFileToJson(this); +} + +String escapeRegex(String input) { + const specialChars = r'[.*+?^${}()|[\]\\]'; + + return input.replaceAllMapped( + RegExp(specialChars), (Match match) => '\\${match.group(0)}'); +} + +class FileSource extends DocSource { + String filePath; + + FileSource({ + required super.title, + required this.filePath, + required super.id, + }); + + @override + DocType getType() { + String extension = filePath.split('.').last.toLowerCase(); + return getTypeFromExtension(extension); + } + + @override + void dispose() {} +} + +String addTrackersToMagnet(String magnetLink, List trackers) { + final uri = Uri.parse(magnetLink); + + if (!uri.scheme.contains("magnet")) { + throw ArgumentError("Invalid magnet link"); + } + + final existingTrackers = uri.queryParametersAll['tr'] ?? []; + final updatedTrackers = [...existingTrackers, ...trackers]; + + final updatedQueryParameters = + Map>.from(uri.queryParametersAll) + ..['tr'] = updatedTrackers; + + final updatedUri = uri.replace(queryParameters: updatedQueryParameters); + + return updatedUri.toString(); +} diff --git a/lib/features/doc_viewer/utils/get_types.dart b/lib/features/doc_viewer/utils/get_types.dart new file mode 100644 index 0000000..74c278a --- /dev/null +++ b/lib/features/doc_viewer/utils/get_types.dart @@ -0,0 +1,50 @@ +import '../types/doc_source.dart'; + +DocType getTypeFromExtension(String extension) { + switch (extension) { + // PDF extensions + case 'pdf': + return DocType.pdf; + + // Video extensions + case 'mp4': + case 'avi': + case 'mov': + case 'wmv': + case 'mkv': + case 'webm': + case 'flv': + case 'm4v': + case 'mpg': + case 'mpeg': + case '3gp': + return DocType.video; + + // Audio extensions + case 'mp3': + case 'wav': + case 'flac': + case 'aac': + case 'm4a': + case 'wma': + case 'ogg': + case 'opus': + return DocType.audio; + + // Photo extensions + case 'jpg': + case 'jpeg': + case 'png': + case 'gif': + case 'bmp': + case 'tiff': + case 'webp': + case 'svg': + case 'heic': + case 'raw': + return DocType.photo; + + default: + return DocType.unknown; + } +} diff --git a/lib/features/downloads/container/index.dart b/lib/features/downloads/container/index.dart new file mode 100644 index 0000000..81f3544 --- /dev/null +++ b/lib/features/downloads/container/index.dart @@ -0,0 +1,324 @@ +import 'package:background_downloader/background_downloader.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:path/path.dart' as path; +import 'package:url_launcher/url_launcher.dart'; + +class DownloadDialog extends StatefulWidget { + const DownloadDialog({super.key}); + + @override + State createState() => _DownloadDialogState(); +} + +class _DownloadDialogState extends State { + final _formKey = GlobalKey(); + final _urlController = TextEditingController(); + final _nameController = TextEditingController(); + bool _isValidating = false; + String? _validationError; + Map? _fileInfo; + + Future _startDownload() async { + if (!_formKey.currentState!.validate()) return; + + final task = DownloadTask( + url: _urlController.text, + filename: '${_nameController.text}.mp4', + directory: 'downloads', + updates: Updates.statusAndProgress, + allowPause: true, + displayName: _nameController.text, + ); + + await FileDownloader().enqueue(task); + if (mounted) Navigator.of(context).pop(); + } + + Future _validateUrl() async { + if (_urlController.text.isEmpty) return; + + setState(() { + _isValidating = true; + _validationError = null; + _fileInfo = null; + }); + + try { + final uri = Uri.parse(_urlController.text); + if (!await canLaunchUrl(uri)) { + throw Exception('Invalid URL'); + } + + // Make a HEAD request to get file information + final response = await http.head(uri); + + if (response.statusCode != 200) { + throw Exception('Could not access file'); + } + + // Get file size from headers + final contentLength = response.headers['content-length']; + final fileSize = contentLength != null + ? _formatFileSize(int.parse(contentLength)) + : 'Unknown size'; + + // Get content type from headers + final contentType = response.headers['content-type'] ?? 'Unknown type'; + + // Extract filename from URL or Content-Disposition header + String fileName = ''; + final disposition = response.headers['content-disposition']; + if (disposition != null && disposition.contains('filename=')) { + fileName = disposition.split('filename=')[1].replaceAll('"', ''); + } else { + fileName = path.basename(uri.path); + } + + // Remove extension from filename for display name + _nameController.text = path.basenameWithoutExtension(fileName); + + _fileInfo = { + 'size': fileSize, + 'type': contentType, + 'filename': fileName, + }; + } catch (e) { + _validationError = 'Invalid URL: ${e.toString()}'; + } finally { + setState(() { + _isValidating = false; + }); + } + } + + String _formatFileSize(int bytes) { + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(1)} GB'; + } + + @override + Widget build(BuildContext context) { + return Dialog( + backgroundColor: Colors.grey[900], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: Container( + width: MediaQuery.of(context).size.width < 600 ? double.infinity : 500, + padding: const EdgeInsets.all(24), + child: Form( + key: _formKey, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Header + const Row( + children: [ + Icon( + Icons.download_rounded, + size: 30, + ), + SizedBox(width: 12), + Text( + 'Add New Download', + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + const SizedBox(height: 24), + + // URL Input Field + TextFormField( + controller: _urlController, + style: const TextStyle(color: Colors.white), + decoration: InputDecoration( + labelText: 'URL', + hintText: 'Paste your download URL here', + filled: true, + prefixIcon: const Icon(Icons.link, color: Colors.grey), + suffixIcon: _isValidating + ? const Padding( + padding: EdgeInsets.all(12), + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: + AlwaysStoppedAnimation(Colors.red), + ), + ) + : IconButton( + icon: const Icon(Icons.check_circle_outline, + color: Colors.white), + onPressed: _validateUrl, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter a URL'; + } + return null; + }, + keyboardType: TextInputType.url, + onChanged: (_) => setState(() => _fileInfo = null), + ), + + // Validation Error + if (_validationError != null) ...[ + const SizedBox(height: 8), + Row( + children: [ + const Icon( + Icons.error_outline, + color: Colors.red, + size: 16, + ), + const SizedBox(width: 8), + Text( + _validationError!, + style: const TextStyle( + color: Colors.red, + fontSize: 12, + ), + ), + ], + ), + ], + + // File Information + if (_fileInfo != null) ...[ + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.grey[850], + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.grey[700]!), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _infoRow(Icons.folder_outlined, 'File Size:', + _fileInfo?['size'] ?? ''), + const SizedBox(height: 12), + _infoRow(Icons.description_outlined, 'Type:', + _fileInfo?['type'] ?? ''), + const SizedBox(height: 12), + _infoRow(Icons.insert_drive_file_outlined, 'File:', + _fileInfo?['filename'] ?? ''), + ], + ), + ), + + // Display Name Input + const SizedBox(height: 16), + TextFormField( + controller: _nameController, + style: const TextStyle(color: Colors.white), + decoration: const InputDecoration( + labelText: 'Display Name', + hintText: 'Enter a name for this download', + filled: true, + prefixIcon: Icon(Icons.edit, color: Colors.grey), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter a name'; + } + return null; + }, + ), + ], + + // Action Buttons + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric( + horizontal: 16, vertical: 12), + ), + child: Text( + 'Cancel', + style: TextStyle(color: Colors.grey[400]), + ), + ), + const SizedBox(width: 16), + ElevatedButton( + onPressed: _fileInfo != null ? _startDownload : null, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric( + horizontal: 24, + vertical: 12, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + disabledBackgroundColor: Colors.grey[700], + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.download_rounded, size: 20), + SizedBox(width: 8), + Text( + 'Download', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ), + ], + ), + ], + ), + ), + ), + ); + } + + Widget _infoRow(IconData icon, String label, String value) { + return Row( + children: [ + Icon(icon, color: Colors.grey[400], size: 20), + const SizedBox(width: 8), + Text( + label, + style: TextStyle(color: Colors.grey[400]), + ), + const SizedBox(width: 8), + Expanded( + child: Text( + value, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ); + } + + @override + void dispose() { + _urlController.dispose(); + _nameController.dispose(); + super.dispose(); + } +} diff --git a/lib/features/downloads/service/service.dart b/lib/features/downloads/service/service.dart new file mode 100644 index 0000000..f155e4b --- /dev/null +++ b/lib/features/downloads/service/service.dart @@ -0,0 +1,72 @@ +import 'dart:async'; + +import 'package:background_downloader/background_downloader.dart'; +import 'package:flutter/material.dart'; + +class DownloadService { + static final DownloadService _instance = DownloadService._internal(); + static DownloadService get instance => _instance; + + final FileDownloader _downloader = FileDownloader(); + final _updateController = StreamController.broadcast(); + + Stream get updates => _updateController.stream; + StreamSubscription? _downloadSubscription; + + DownloadService._internal(); + + Future initialize() async { + await _downloader.trackTasks(); + + // Subscribe to FileDownloader updates and broadcast them + _downloadSubscription = _downloader.updates.listen( + (update) => _updateController.add(update), + onError: (error) => _updateController.addError(error), + ); + + FileDownloader().configureNotification( + running: const TaskNotification('Downloading', 'File: {filename}'), + complete: const TaskNotification('Download finished', 'File: {filename}'), + progressBar: true, + ); + } + + void dispose() { + _downloadSubscription?.cancel(); + _updateController.close(); + } + + Future> getAllDownloads() async { + return await _downloader.database.allRecords(); + } + + Future getById(String taskId) async { + return await _downloader.database.recordForId(taskId); + } + + Future pauseDownload(DownloadTask task) async { + await _downloader.pause(task); + } + + Future resumeDownload(DownloadTask task) async { + await _downloader.resume(task); + } + + Future deleteDownload(String taskId) async { + await _downloader.database.deleteRecordWithId(taskId); + } + + Future startDownload(DownloadTask task) async { + const permissionType = PermissionType.notifications; + var status = await FileDownloader().permissions.status(permissionType); + if (status != PermissionStatus.granted) { + if (await FileDownloader() + .permissions + .shouldShowRationale(permissionType)) {} + status = await FileDownloader().permissions.request(permissionType); + debugPrint('Permission for $permissionType was $status'); + } + + await _downloader.enqueue(task); + } +} diff --git a/lib/features/files/container/file.container.dart b/lib/features/files/container/file.container.dart new file mode 100644 index 0000000..7104846 --- /dev/null +++ b/lib/features/files/container/file.container.dart @@ -0,0 +1,169 @@ +import 'package:flutter/material.dart'; + +class FileItem { + final String name; + final bool isDirectory; + final String? path; + + FileItem({ + required this.name, + required this.isDirectory, + this.path, + }); +} + +class FilesManagerContainer extends StatefulWidget { + final Future> Function(String? path) onLoadFiles; + final Future Function(String path, String name) onCreateFolder; + + const FilesManagerContainer({ + super.key, + required this.onLoadFiles, + required this.onCreateFolder, + }); + + @override + State createState() => _FilesManagerContainerState(); +} + +class _FilesManagerContainerState extends State { + late Future> _filesFuture; + String _currentPath = ''; + final List _navigationStack = []; + + @override + void initState() { + super.initState(); + _loadFiles(); + } + + void _loadFiles() { + _filesFuture = widget.onLoadFiles(_currentPath); + } + + void _navigateToFolder(String path) { + setState(() { + _navigationStack.add(_currentPath); + _currentPath = path; + _loadFiles(); + }); + } + + bool _navigateBack() { + if (_navigationStack.isNotEmpty) { + setState(() { + _currentPath = _navigationStack.removeLast(); + _loadFiles(); + }); + return true; + } + return false; + } + + Future _createFolder() async { + final controller = TextEditingController(); + final result = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Create New Folder'), + content: TextField( + controller: controller, + decoration: const InputDecoration( + hintText: 'Folder name', + ), + autofocus: true, + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text('Cancel'), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: const Text('Create'), + ), + ], + ), + ); + + if (result == true && controller.text.isNotEmpty && mounted) { + try { + await widget.onCreateFolder(_currentPath, controller.text); + setState(() { + _loadFiles(); + }); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Failed to create folder: $e')), + ); + } + } + } + } + + @override + Widget build(BuildContext context) { + return WillPopScope( + onWillPop: () async { + return !_navigateBack(); // Return true to exit app, false to stay + }, + child: Scaffold( + appBar: AppBar( + leading: _navigationStack.isNotEmpty + ? IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: _navigateBack, + ) + : null, + title: Text(_currentPath.isEmpty ? 'Files' : _currentPath), + actions: [ + IconButton( + icon: const Icon(Icons.create_new_folder), + onPressed: _createFolder, + ), + ], + ), + body: FutureBuilder>( + future: _filesFuture, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + if (snapshot.hasError) { + return Center( + child: Text('Error: ${snapshot.error}'), + ); + } + + final files = snapshot.data ?? []; + + if (files.isEmpty) { + return const Center( + child: Text('No files found'), + ); + } + + return ListView.builder( + itemCount: files.length, + itemBuilder: (context, index) { + final file = files[index]; + return ListTile( + leading: Icon( + file.isDirectory ? Icons.folder : Icons.insert_drive_file, + color: file.isDirectory ? Colors.amber : Colors.blue, + ), + title: Text(file.name), + onTap: file.isDirectory + ? () => _navigateToFolder(file.path!) + : null, + ); + }, + ); + }, + ), + ), + ); + } +} diff --git a/lib/features/getting_started/container/create_connection.dart b/lib/features/getting_started/container/create_connection.dart new file mode 100644 index 0000000..a7e3642 --- /dev/null +++ b/lib/features/getting_started/container/create_connection.dart @@ -0,0 +1,392 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:http/http.dart' as http; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../../settings/types/connection.dart'; + +class CreateConnectionStep extends StatefulWidget { + final void Function(Connection connection) onConnectionComplete; + + const CreateConnectionStep({ + super.key, + required this.onConnectionComplete, + }); + + @override + State createState() => _CreateConnectionStepState(); +} + +class _CreateConnectionStepState extends State { + final PocketBase pb = AppEngine.engine.pb; + final _formKey = GlobalKey(); + final _urlController = TextEditingController(); + final _nameController = TextEditingController(text: "Stremio Addons"); + Connection? _existingConnection; + + bool _isLoading = false; + String? _errorMessage; + + final List> _addons = []; + + @override + void initState() { + super.initState(); + + loadExistingConnection(); + } + + loadExistingConnection() async { + try { + final existingConnection = await pb + .collection("connection") + .getFirstListItem("type.type = 'stremio_addons'"); + + final connection = Connection.fromRecord(existingConnection); + + _nameController.text = connection.title; + final config = connection.config; + + if (config['addons'] != null) { + for (var url in config['addons']) { + _validateAddonUrl(url); + } + } + + _existingConnection = connection; + } catch (e) { + if (e is! ClientException) { + rethrow; + } + } + } + + Future _validateAddonUrl(String url) async { + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final response = await http.get(Uri.parse(url)); + if (response.statusCode == 200) { + final manifest = json.decode(response.body); + + final _manifest = StremioManifest.fromJson(manifest); + + if (manifest['name'] == null || manifest['id'] == null) { + throw 'Invalid addon manifest'; + } + + if (_addons.any((addon) => addon['url'] == url)) { + throw 'Addon already added to the list'; + } + + List supportedTypes = []; + + _manifest.resources?.forEach((item) { + supportedTypes.add(item.name); + }); + + setState(() { + _addons.add({ + 'name': _manifest.name, + 'icon': manifest['logo'] ?? manifest['icon'], + 'url': url, + 'addons': manifest, + 'types': supportedTypes, + }); + _urlController.clear(); + }); + } else { + throw 'Failed to fetch addon manifest'; + } + } catch (e) { + setState(() { + _errorMessage = 'Invalid addon URL: ${e.toString()}'; + }); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + Future _saveConnection() async { + if (!_formKey.currentState!.validate() || _addons.isEmpty) return; + + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final connectionType = + await pb.collection("connection_type").getFirstListItem( + "type = \"stremio_addons\"", + ); + + final body = { + 'title': _nameController.text, + 'user': pb.authStore.record!.id, + 'type': connectionType.id, + 'config': jsonEncode({ + 'addons': _addons.map((item) => item['url']).toList(), + }), + }; + + if (_existingConnection != null) { + // Update existing connection + await pb + .collection('connection') + .update(_existingConnection!.id, body: body); + } else { + // Create new connection + final result = await pb.collection('connection').create(body: body); + + _existingConnection = Connection.fromRecord(result); + } + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Connection saved successfully"), + ), + ); + } + + widget.onConnectionComplete( + Connection( + title: _nameController.text, + id: _existingConnection!.id ?? '', + config: jsonEncode({ + 'addons': _addons.map((item) => item['url']).toList(), + }), + type: 'stremio_addons', + ), + ); + } catch (e) { + setState(() { + _errorMessage = "Error: ${e.toString()}"; + }); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + final Map _items = { + "Cinemeta": "https://v3-cinemeta.strem.io/manifest.json", + "Watchhub": "https://watchhub.strem.io/manifest.json", + }; + + void _removeAddon(int index) { + setState(() { + _addons.removeAt(index); + }); + } + + @override + Widget build(BuildContext context) { + return Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisSize: + MainAxisSize.min, // Add this to shrink-wrap the Column + children: [ + TextFormField( + controller: _nameController, + decoration: const InputDecoration( + labelText: 'Connection Name', + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter a connection name'; + } + return null; + }, + ), + const SizedBox(height: 20), + TextFormField( + controller: _urlController, + decoration: InputDecoration( + labelText: 'Addon URL', + hintText: 'https://example.com/manifest.json', + suffixIcon: IconButton( + icon: const Icon(Icons.add), + onPressed: () => _validateAddonUrl(_urlController.text), + ), + ), + validator: (value) { + if (_addons.isEmpty) { + return 'Please add at least one addon'; + } + if (value != null && value.isNotEmpty) { + try { + final uri = Uri.parse(value); + if (!uri.isScheme('http') && !uri.isScheme('https')) { + return 'Please enter a valid HTTP/HTTPS URL'; + } + } catch (e) { + return 'Please enter a valid URL'; + } + } + return null; + }, + ), + const SizedBox(height: 12), + SizedBox( + height: 36, + child: ListView.builder( + itemCount: _items.length, + scrollDirection: Axis.horizontal, + itemBuilder: (context, index) { + return Container( + margin: const EdgeInsets.only(right: 4), + child: ActionChip( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + label: Text(_items.keys.toList()[index]), + avatar: const Icon(Icons.add), + onPressed: () { + _validateAddonUrl(_items.values.toList()[index]); + }, + ), + ); + }, + ), + ), + if (_isLoading) const Center(child: CircularProgressIndicator()), + if (_errorMessage != null) + Padding( + padding: const EdgeInsets.only(top: 8.0), + child: Text( + _errorMessage!, + style: const TextStyle(color: Colors.red), + ), + ), + const SizedBox(height: 20), + if (_addons.isNotEmpty) ...[ + const Text( + 'Added Addons:', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 10), + Flexible( + fit: FlexFit.loose, + child: ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: _addons.length, + itemBuilder: (context, index) { + final addon = _addons[index]; + return Card( + margin: EdgeInsets.only( + bottom: index + 1 != _addons.length ? 10 : 0, + ), + child: ListTile( + leading: addon['icon'] != null + ? Image.network( + addon['icon'], + width: 40, + height: 40, + errorBuilder: (_, __, ___) => + const Icon(Icons.extension), + ) + : const Icon(Icons.extension, size: 40), + title: Text(addon['name'] ?? 'Unknown Addon'), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + addon['url'], + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox( + height: 4, + ), + SizedBox( + height: 40, + child: ListView( + scrollDirection: Axis.horizontal, + children: [ + for (int i = 0; + i < addon['types'].length; + i++) + Padding( + padding: + const EdgeInsets.only(right: 4), + child: RawChip( + padding: EdgeInsets.zero, + label: Text( + (addon['types'][i] as String) + .capitalize(), + ), + visualDensity: VisualDensity.compact, + ), + ), + ], + ), + ) + ], + ), + trailing: IconButton( + icon: const Icon(Icons.remove_circle_outline, + color: Colors.red), + onPressed: () => _removeAddon(index), + ), + ), + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.only( + bottom: 10.0, + ), + child: ElevatedButton( + onPressed: _addons.isEmpty ? null : _saveConnection, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white70, + foregroundColor: Colors.black, + ), + child: Text( + 'Next', + style: GoogleFonts.exo2().copyWith( + fontWeight: FontWeight.w600, + fontSize: 16, + ), + ), + ), + ) + ], + ], + ), + ], + ), + ); + } + + @override + void dispose() { + _urlController.dispose(); + _nameController.dispose(); + super.dispose(); + } +} diff --git a/lib/features/getting_started/container/getting_started.dart b/lib/features/getting_started/container/getting_started.dart new file mode 100644 index 0000000..09d4ffc --- /dev/null +++ b/lib/features/getting_started/container/getting_started.dart @@ -0,0 +1,245 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/features/connection/containers/auto_import.dart'; + +import '../../settings/types/connection.dart'; +import 'create_connection.dart'; + +class GettingStartedScreen extends StatefulWidget { + final VoidCallback onCallback; + + const GettingStartedScreen({ + super.key, + required this.onCallback, + }); + + @override + State createState() => _GettingStartedScreenState(); +} + +class _GettingStartedScreenState extends State + with TickerProviderStateMixin { + final PageController _pageController = PageController(); + int _currentPage = 0; + late AnimationController _animationController; + Connection? _connection; + + late final List steps = [ + OnboardingStep( + key: 'create_connection', + title: 'Create Connection', + description: 'Connect your database securely with just a few clicks', + icon: Icons.link_rounded, + gradientColors: [Colors.purple.shade800, Colors.blue.shade900], + ), + OnboardingStep( + key: 'create_library', + title: 'Create Library', + description: 'Organize your data into libraries for better management', + icon: Icons.library_books_rounded, + gradientColors: [Colors.blue.shade900, Colors.teal.shade800], + ), + ]; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 2000), + )..repeat(); + } + + @override + void dispose() { + _animationController.dispose(); + _pageController.dispose(); + super.dispose(); + } + + void _nextPage() { + if (_currentPage < steps.length - 1) { + _pageController.nextPage( + duration: const Duration(milliseconds: 500), + curve: Curves.easeInOut, + ); + } + } + + void _previousPage() { + if (_currentPage > 0) { + _pageController.previousPage( + duration: const Duration(milliseconds: 500), + curve: Curves.easeInOut, + ); + } + } + + @override + Widget build(BuildContext context) { + final isDesktop = MediaQuery.of(context).size.width > 800; + + return Stack( + children: [ + AnimatedContainer( + duration: const Duration(milliseconds: 500), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: steps[_currentPage].gradientColors, + ), + ), + ), + // Content + Center( + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: isDesktop ? 1200 : double.infinity, + maxHeight: 800, + ), + child: Card( + margin: EdgeInsets.symmetric( + horizontal: isDesktop ? 48.0 : 0, + vertical: isDesktop ? 32.0 : 0, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(32), + ), + color: isDesktop ? null : Colors.transparent, + elevation: 0, + child: ClipRRect( + borderRadius: BorderRadius.circular(32), + child: Stack( + children: [ + Stack( + children: [ + PageView.builder( + physics: const NeverScrollableScrollPhysics(), + controller: _pageController, + onPageChanged: (index) { + setState(() => _currentPage = index); + _animationController.reset(); + _animationController.forward(); + }, + itemCount: steps.length, + itemBuilder: (context, index) { + return _buildPage(steps[index], index); + }, + ), + ], + ), + ], + ), + ), + ), + ), + ), + ], + ); + } + + Widget _buildPage( + OnboardingStep step, + int index, + ) { + return SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 22), + Padding( + padding: const EdgeInsets.all(12.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + if (index != 0) + IconButton( + onPressed: () { + _previousPage(); + }, + icon: const Icon( + Icons.arrow_back, + ), + ), + const SizedBox( + width: 6, + ), + Text( + step.title, + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ], + ), + ), + const SizedBox(height: 4), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + ), + child: Text( + step.description, + textAlign: TextAlign.start, + style: GoogleFonts.poppins( + fontSize: 16, + color: Colors.white.withOpacity(0.8), + ), + ), + ), + const SizedBox(height: 0), + if (step.key == 'create_library') + ConstrainedBox( + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * + 0.6, // Adjust this value as needed + ), + child: Padding( + padding: const EdgeInsets.only(top: 8.0), + child: AutoImport( + item: _connection!, + onImport: () { + widget.onCallback(); + }, + ), + ), + ), + if (step.key == 'create_connection') + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + ), + child: CreateConnectionStep( + onConnectionComplete: (Connection connection) { + _connection = connection; + _nextPage(); + }, + ), + ), + ], + ), + ); + } +} + +class OnboardingStep { + final String title; + final String description; + final IconData icon; + final List gradientColors; + final String key; + + OnboardingStep({ + required this.title, + required this.description, + required this.icon, + required this.gradientColors, + required this.key, + }); +} diff --git a/lib/features/home/screen/home_items.dart b/lib/features/home/screen/home_items.dart new file mode 100644 index 0000000..0796397 --- /dev/null +++ b/lib/features/home/screen/home_items.dart @@ -0,0 +1,318 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/features/connection/services/base_connection_service.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/library_item/container/stremio_item_card.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../../../engine/library.dart'; +import '../../connections/types/stremio/stremio_base.types.dart'; +import '../../library_item/container/item_list.dart'; +import '../../library_item/container/item_viewer.dart'; + +class HomeItems extends ConsumerStatefulWidget { + final LibraryRecord library; + const HomeItems({ + super.key, + required this.library, + }); + + @override + createState() => _HomeItemsState(); +} + +class _HomeItemsState extends ConsumerState { + List _items = []; + bool _hasInitiallyLoaded = false; + late BaseConnectionService _client; + bool _unsupportedClient = false; + + @override + void initState() { + super.initState(); + + Future.microtask(() async { + _fetchInitialItems(); + }); + } + + double _getItemWidth(BuildContext context) { + double screenWidth = MediaQuery.of(context).size.width; + return screenWidth > 800 ? 200.0 : 120.0; + } + + double _getListHeight(BuildContext context) { + double screenWidth = MediaQuery.of(context).size.width; + return screenWidth > 800 ? 300.0 : 180.0; + } + + void _fetchInitialItems() async { + if (widget.library.connection == "telegram" && + (kIsWeb || !Platform.isAndroid)) { + setState(() { + _items = []; + _hasInitiallyLoaded = true; + _unsupportedClient = true; + }); + } + + if (!mounted) { + return; + } + + final result = ref.read( + libraryItemListProvider( + widget.library, + _items, + 1, + "", + ), + ); + + if (result.value != null && mounted) { + setState(() { + _items = result.value!.items; + _hasInitiallyLoaded = true; + }); + } + + ref + .read(libraryItemListProvider( + widget.library, + _items, + 1, // First page only + null, + ).future) + .then((result) { + if (mounted) { + Future.microtask(() { + setState(() { + _items = result.items; + _hasInitiallyLoaded = true; + }); + }); + } + }); + } + + StremioService? _item; + + StremioService get service { + if (_item != null) { + return _item!; + } + _item = _client as StremioService; + return _item!; + } + + @override + Widget build(BuildContext context) { + final itemWidth = _getItemWidth(context); + final listHeight = _getListHeight(context); + + if (_items.isEmpty && _hasInitiallyLoaded) { + return SizedBox( + height: listHeight, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon( + Icons.hourglass_empty, + size: 60, + color: Colors.grey, + ), + const SizedBox(height: 16), + Text( + _unsupportedClient + ? 'Telegram is not supported' + : 'No items found', + style: const TextStyle( + fontSize: 18, + color: Colors.grey, + ), + ), + ], + ), + ), + ); + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + widget.library.title, + style: Theme.of(context).textTheme.titleLarge, + ), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ItemList( + library: widget.library, + ), + ), + ); + }, + child: const Text('See All'), + ), + ], + ), + ), + const SizedBox(height: 8), + SizedBox( + height: listHeight, + child: _items.isEmpty && !_hasInitiallyLoaded + ? _buildLoadingList(itemWidth) + : ListView.builder( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 12), + itemCount: _items.length, + itemBuilder: (context, index) { + final item = _items[index]; + + if (widget.library.connectionType == "stremio_addons") { + final parsed = Meta.fromJson( + jsonDecode(item.config!), + ); + return StremioItemCard( + item: item, + parsed: parsed, + service: service, + heroPrefix: widget.library.id, + ); + } + + return Container( + margin: const EdgeInsets.only(right: 6), + child: SizedBox( + width: itemWidth, + child: Card( + margin: const EdgeInsets.symmetric(horizontal: 4), + child: ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Stack( + children: [ + InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ItemViewer( + item: item, + library: widget.library, + ), + ), + ); + }, + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + if (item.logo != null) + Expanded( + child: AspectRatio( + aspectRatio: 10 / 2, + child: ClipRRect( + borderRadius: + BorderRadius.circular(10), + child: Hero( + tag: item.id, + child: _buildImage(item.logo!), + ), + ), + ), + ), + if (item.logo == null) + const Expanded( + child: Center( + child: Icon( + Icons.video_library, + size: 44, + ), + ), + ) + ], + ), + ), + if (item.history != null) + Positioned( + child: LinearProgressIndicator( + minHeight: 4, + value: + (item.history?.progress ?? 0) / 100, + ), + ), + ], + ), + ), + ), + ), + ); + }, + ), + ), + ], + ); + } + + Widget _buildLoadingList(double itemWidth) { + return ListView.builder( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric(horizontal: 12), + itemCount: 14, + itemBuilder: (context, index) => SizedBox( + width: itemWidth, + child: Card( + margin: const EdgeInsets.symmetric(horizontal: 4), + child: ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Shimmer.fromColors( + baseColor: Colors.grey[800]!, + highlightColor: Colors.grey[600]!, + child: Container( + color: Colors.grey[800], + ), + ), + ), + ), + ), + ); + } + + Widget _buildImage(String logo) { + if (logo == "") { + return const Center( + child: Icon(Icons.browse_gallery), + ); + } + + if (logo.startsWith("/9j")) { + return Image.memory( + base64Decode(logo), + fit: BoxFit.cover, + ); + } else if (logo.startsWith("http://") || logo.startsWith("https://")) { + return Image.network( + logo, + fit: BoxFit.cover, + ); + } else { + return Image.file( + File(logo), + fit: BoxFit.cover, + ); + } + } +} diff --git a/lib/features/library/component/library_search.dart b/lib/features/library/component/library_search.dart new file mode 100644 index 0000000..4dd9b84 --- /dev/null +++ b/lib/features/library/component/library_search.dart @@ -0,0 +1,272 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/features/connection/services/base_connection_service.dart'; + +import '../../../engine/library.dart'; +import '../../connection/services/stremio_service.dart'; +import '../../connection/types/stremio.dart'; +import '../../connections/types/stremio/stremio_base.types.dart'; +import '../../library_item/container/stremio_item_list.dart'; + +class LibraryItemSearchDelegate extends SearchDelegate { + final LibraryRecord library; + final List items; + final WidgetRef ref; + Timer? _debounceTimer; + final _debounceDuration = const Duration(milliseconds: 300); + String _debouncedQuery = ''; + BaseConnectionService? service; + + LibraryItemSearchDelegate({ + required this.library, + required this.items, + required this.ref, + this.service, + }); + + @override + void dispose() { + _debounceTimer?.cancel(); + super.dispose(); + } + + @override + List buildActions(BuildContext context) { + return [ + IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + query = ''; + }, + ), + ]; + } + + @override + Widget buildLeading(BuildContext context) { + return IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + close(context, null); + }, + ); + } + + @override + Widget buildResults(BuildContext context) { + return _buildSearchResults(); + } + + double _calculateRelevance(LibraryItemList item, String searchQuery) { + final queryLower = searchQuery.toLowerCase(); + final titleLower = item.title.toLowerCase(); + final extraLower = (item.extra ?? '').toLowerCase(); + + double score = 0.0; + + // Exact matches get highest score + if (titleLower == queryLower) { + score += 100; + } + // Title starts with query + else if (titleLower.startsWith(queryLower)) { + score += 75; + } + // Title contains query + else if (titleLower.contains(queryLower)) { + score += 50; + } + + // Extra field matches + if (extraLower.contains(queryLower)) { + score += 25; + } + + if (item.popularity != null) { + score += (item.popularity!) * 10000000; + } + + return score; + } + + @override + Widget buildSuggestions(BuildContext context) { + return _buildSearchResults(); + } + + Widget _buildSearchResults() { + if (query.isEmpty) { + return const Center( + child: Text('Type to search...'), + ); + } + + return LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + final isMobile = constraints.maxWidth < 600; + + return StreamBuilder( + stream: Stream.fromFuture(() async { + // Create a completer that will be completed after debounce + final completer = Completer(); + + // Cancel any existing timer + _debounceTimer?.cancel(); + + // Only update if query changed + if (_debouncedQuery != query) { + _debounceTimer = Timer(_debounceDuration, () { + _debouncedQuery = query; + completer.complete(); + }); + } else { + completer.complete(); + } + + await completer.future; + + return ref.read( + libraryItemListProvider( + library, + items, + 1, + _debouncedQuery, + ).future, + ); + }()), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + + final searchResults = snapshot.data?.items ?? []; + + if (searchResults.isEmpty) { + return const Center(child: Text('No results found')); + } + + searchResults.sort((a, b) { + final scoreA = _calculateRelevance(a, query); + final scoreB = _calculateRelevance(b, query); + return scoreB.compareTo(scoreA); + }); + + return GridView.builder( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: isMobile + ? 1 + : (constraints.maxWidth ~/ 300), // Reduced from 300 to 200 + childAspectRatio: + isMobile ? 2.3 : 1.63, // Adjusted ratios for both layouts + mainAxisSpacing: 4, // Reduced spacing + crossAxisSpacing: 4, + ), + padding: const EdgeInsets.all(8), + itemCount: searchResults.length, + itemBuilder: (context, index) { + final item = searchResults[index]; + + if (library.connectionType == "stremio_addons") { + final parsed = Meta.fromJson(jsonDecode(item.config!)); + return StremioItemList( + item: item, + parsed: parsed, + service: service as StremioService, + ); + } + + return Card( + margin: + const EdgeInsets.symmetric(vertical: 2, horizontal: 4), + child: InkWell( + onTap: () => close(context, item), + child: isMobile + ? ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, + ), + leading: item.logo != null + ? SizedBox( + width: 40, // Fixed size for consistency + height: 40, + child: Image.network( + item.logo!, + fit: BoxFit.cover, + ), + ) + : null, + title: Text( + item.title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 14), + ), + subtitle: item.extra != null + ? Text( + item.extra!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 12), + ) + : null, + ) + : Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + if (item.logo != null) + SizedBox( + width: 50, // Fixed size for desktop + height: 50, + child: Image.network( + item.logo!, + fit: BoxFit.cover, + ), + ), + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + item.title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + if (item.extra != null) + Text( + item.extra!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 12), + ), + ], + ), + ), + ], + ), + ), + ), + ); + }, + ); + }, + ); + }, + ); + } +} diff --git a/lib/features/library/component/libray_card.dart b/lib/features/library/component/libray_card.dart new file mode 100644 index 0000000..ef7b823 --- /dev/null +++ b/lib/features/library/component/libray_card.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/library_item/container/item_list.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class LibraryCard extends StatefulWidget { + final LibraryRecord library; + + const LibraryCard({ + super.key, + required this.library, + }); + + @override + State createState() => _LibraryCardState(); +} + +class _LibraryCardState extends State { + final PocketBase pb = AppEngine.engine.pb; + + @override + Widget build(BuildContext context) { + return Card( + elevation: 3, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(18), + ), + child: InkWell( + borderRadius: BorderRadius.circular(18), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => ItemList( + library: widget.library, + ), + ), + ); + }, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 16), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + widget.library.title, + style: Theme.of(context).textTheme.titleMedium?.copyWith( + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/features/library/containers/connection_list.dart b/lib/features/library/containers/connection_list.dart new file mode 100644 index 0000000..ba369e7 --- /dev/null +++ b/lib/features/library/containers/connection_list.dart @@ -0,0 +1,180 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/engine/connection.dart'; + +import '../../../engine/engine.dart'; +import '../../../engine/library.dart'; +import '../../settings/types/connection.dart'; + +class ConnectionList extends StatefulWidget { + final bool canDisconnect; + final void Function(Connection item)? onTap; + final bool shrinkWrap; + + const ConnectionList({ + super.key, + this.canDisconnect = false, + this.onTap, + this.shrinkWrap = true, + }); + + @override + State createState() => _ConnectionListState(); +} + +class _ConnectionListState extends State { + @override + void initState() { + super.initState(); + } + + void _refresh() { + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (BuildContext context, WidgetRef ref, Widget? child) { + final result = ref.watch(getConnectionsProvider); + + return result.when( + data: (data) { + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: data.length, + shrinkWrap: widget.shrinkWrap, + itemBuilder: (context, index) { + return ConnectionCard( + onTap: () { + widget.onTap != null ? widget.onTap!(data[index]) : () {}; + }, + connection: data[index], + canDisconnect: widget.canDisconnect, + onRefresh: () { + _refresh(); + ref.refresh(libraryListProvider(1)); + }, + ); + }, + ); + }, + error: (err, o) { + return Text("Something went wrong $err"); + }, + loading: () { + return const Center( + child: CircularProgressIndicator(), + ); + }, + ); + }, + ); + } +} + +class ConnectionCard extends StatefulWidget { + final Connection connection; + final VoidCallback onRefresh; + final bool canDisconnect; + final VoidCallback onTap; + + const ConnectionCard({ + super.key, + required this.connection, + required this.onRefresh, + required this.canDisconnect, + required this.onTap, + }); + + @override + State createState() => _ConnectionCardState(); +} + +class _ConnectionCardState extends State { + bool isLoading = false; + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (BuildContext context, WidgetRef ref, Widget? child) { + return Card( + elevation: 0, + margin: const EdgeInsets.only(bottom: 12), + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: ListTile( + shape: + RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + onTap: () { + widget.onTap(); + }, + title: Text(widget.connection.title, + style: const TextStyle(fontWeight: FontWeight.bold)), + trailing: widget.canDisconnect + ? TextButton( + onPressed: () => showDialog( + builder: (ctx) { + return AlertDialog( + title: const Text("Confirmation"), + content: SizedBox( + width: MediaQuery.of(context).size.width, + child: Text( + "Are your sure you want to delete ${widget.connection.title}?", + ), + ), + actions: [ + ElevatedButton( + onPressed: () { + Navigator.of(ctx).pop(); + }, + child: const Text("CANCEL"), + ), + FilledButton( + onPressed: () { + _handleConnection(context, ref); + Navigator.of(context).pop(); + }, + child: const Text("DISCONNECT"), + ), + ], + ); + }, + context: context, + ), + child: isLoading + ? const CircularProgressIndicator() + : const Text("Disconnect"), + ) + : null, + ), + ); + }, + ); + } + + void _handleConnection(BuildContext context, WidgetRef ref) async { + if (widget.connection.id == "telegram") { + try { + setState(() { + isLoading = true; + }); + widget.onRefresh(); + } finally { + setState(() { + isLoading = false; + }); + } + + return; + } + + await AppEngine.engine.pb + .collection("connection") + .delete(widget.connection.id); + + widget.onRefresh(); + + ref.refresh(getConnectionsProvider); + } +} diff --git a/lib/features/library/screen/create_new_library.dart b/lib/features/library/screen/create_new_library.dart new file mode 100644 index 0000000..d72e92a --- /dev/null +++ b/lib/features/library/screen/create_new_library.dart @@ -0,0 +1,293 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/settings/types/connection.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/library.dart'; +import '../../connection/containers/folder_selector.dart'; + +class CreateNewLibrary extends StatefulWidget { + final PocketBase engine = AppEngine.engine.pb; + final Connection item; + final VoidCallback onCreated; + final VoidCallback onCreatedAnother; + final ScrollController? scrollController; + + CreateNewLibrary({ + super.key, + required this.item, + required this.onCreated, + required this.onCreatedAnother, + this.scrollController, + }); + + @override + createState() => _CreateNewLibraryState(); +} + +class _CreateNewLibraryState extends State { + final _formKey = GlobalKey(); + String _libraryName = ''; + IconData _selectedIcon = Icons.folder; + final List _selectedTypes = []; + List _folder = []; + + final List _libraryTypes = [ + 'Document', + 'Video', + 'Audio', + 'Photo', + ]; + + final List _availableIcons = [ + // Media Type Icons + Icons.video_library, + Icons.music_note, + Icons.movie, + Icons.library_music, + Icons.photo_library, + Icons.book, + Icons.library_books, + Icons.library_add, + + // Folder and Collection Icons + Icons.folder, + Icons.folder_open, + Icons.create_new_folder, + Icons.collections_bookmark, + Icons.collections, + Icons.local_library, + + // Specific Media Icons + Icons.headphones, + Icons.camera_alt, + Icons.slideshow, + Icons.movie_filter, + Icons.featured_video, + + // Abstract and Conceptual Icons + Icons.category, + Icons.inventory, + Icons.storage, + Icons.my_library_add, + Icons.my_library_books, + Icons.list, + + // Additional Representational Icons + Icons.article, + Icons.topic, + Icons.bookmark, + Icons.label, + Icons.turned_in, + Icons.palette, + + // Device and Storage Icons + Icons.sd_storage, + Icons.cloud, + Icons.cloud_circle, + Icons.device_hub, + + // Miscellaneous + Icons.view_module, + Icons.view_list, + Icons.dashboard, + Icons.grid_view, + Icons.apps, + ]; + + void _saveLibrary() async { + if (_formKey.currentState!.validate()) { + if (_selectedTypes.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text( + "Select at-least one type", + ), + ), + ); + return; + } + + if (_folder.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text( + "Folder is required", + ), + ), + ); + return; + } + + _formKey.currentState!.save(); + + try { + await AppEngine.engine.pb.collection("library").create(body: { + "title": _libraryName, + "icon": _selectedIcon.codePoint.toString(), + "types": _selectedTypes.map((item) { + return item.toLowerCase(); + }).toList(), + "user": AppEngine.engine.pb.authStore.record!.id, + "config": _folder.map((item) => item.config ?? item.id).toList(), + "connection": widget.item.id, + }); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Library "$_libraryName" created'), + ), + ); + + widget.onCreated(); + } + } catch (e) { + if (mounted) { + if (e is ClientException) { + final data = e.response["data"] as Map?; + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Error ${data?.values.first?["message"] ?? e.response["message"]}'), + ), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error ${e.toString()}')), + ); + } + } + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("Create Library"), + leading: GestureDetector( + onTap: () { + Navigator.of(context).pop(); + }, + child: const Icon( + Icons.close, + ), + ), + ), + body: Form( + key: _formKey, + child: ListView( + controller: widget.scrollController, + padding: const EdgeInsets.all(16.0), + children: [ + TextFormField( + textCapitalization: TextCapitalization.sentences, + autofocus: true, + decoration: InputDecoration( + labelText: 'Library Name', + hintText: 'Enter library name', + filled: true, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter a library name'; + } + return null; + }, + onSaved: (value) { + _libraryName = value ?? ""; + }, + ), + const SizedBox(height: 16), + + // Library Icon Selection + Text( + 'Select Library Icon', + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox( + height: 4, + ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: _availableIcons.map((icon) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: ChoiceChip( + label: Icon(icon), + visualDensity: VisualDensity.compact, + selected: _selectedIcon == icon, + onSelected: (bool selected) { + setState(() { + _selectedIcon = icon; + }); + }, + ), + ); + }).toList(), + ), + ), + + const SizedBox(height: 16), + + // Library Types Selection + Text( + 'Select Content Types', + style: Theme.of(context).textTheme.titleMedium, + ), + + Wrap( + spacing: 8.0, + children: _libraryTypes.map((type) { + return FilterChip( + label: Text(type), + selected: _selectedTypes.contains(type), + onSelected: (bool selected) { + setState(() { + if (selected) { + _selectedTypes.add(type); + } else { + _selectedTypes.remove(type); + } + }); + }, + ); + }).toList(), + ), + + const SizedBox(height: 16), + + FolderSelector( + item: widget.item, + onFolderSelected: (item) { + setState(() { + _folder = item; + }); + }, + ), + ], + ), + ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + width: double.infinity, + child: FilledButton( + style: OutlinedButton.styleFrom(), + onPressed: () { + _saveLibrary(); + }, + child: const Text("SAVE"), + ), + ), + ), + ); + } +} diff --git a/lib/features/library/screen/library_screen.dart b/lib/features/library/screen/library_screen.dart new file mode 100644 index 0000000..6ea8c5f --- /dev/null +++ b/lib/features/library/screen/library_screen.dart @@ -0,0 +1,94 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:pocketbase/src/dtos/result_list.dart'; + +import '../../../utils/grid.dart'; +import '../component/libray_card.dart'; + +class LibraryScreen extends StatelessWidget { + final bool minimal; + + const LibraryScreen({ + super.key, + this.minimal = false, + }); + + @override + Widget build(BuildContext context) { + return _buildBody(context); + } + + Widget _buildAppBar() { + return SliverAppBar( + floating: true, + leading: null, + backgroundColor: Colors.black.withOpacity(0.7), + title: const Text( + 'My Libraries', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + ); + } + + Widget _buildLibraryGrid( + BuildContext context, + ResultList result, + ) { + final count = getGridResponsiveColumnCount(context); + + return SliverPadding( + padding: EdgeInsets.all(getGridResponsivePadding(context)), + sliver: SliverGrid( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: count == 3 ? 2 : count, + mainAxisSpacing: getGridResponsiveSpacing(context), + crossAxisSpacing: getGridResponsiveSpacing(context), + childAspectRatio: getGridResponsiveAspectRatio(context), + ), + delegate: SliverChildBuilderDelegate( + (context, index) => LibraryCard( + library: result.items[index], + ), + childCount: result.items.length, + ), + ), + ); + } + + Widget _buildBody(BuildContext context) { + final isDesktop = MediaQuery.of(context).size.width > 800; + + return Consumer(builder: (ctx, ref, child) { + final result = ref.watch(libraryListProvider(1)); + + return result.when( + data: (data) { + if (data.items.isEmpty) { + return const Center( + child: Text("No Libraries Found"), + ); + } + + return CustomScrollView( + slivers: [ + if (!isDesktop) _buildAppBar(), + _buildLibraryGrid(context, result.value!), + ], + ); + }, + error: (c, err) { + return Text("Something went wrong $c"); + }, + loading: () { + return const Center( + child: CircularProgressIndicator(), + ); + }, + ); + }); + } +} diff --git a/lib/features/library/types/library_item.dart b/lib/features/library/types/library_item.dart new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/features/library/types/library_item.dart @@ -0,0 +1 @@ + diff --git a/lib/features/library_item/container/item_list.dart b/lib/features/library_item/container/item_list.dart new file mode 100644 index 0000000..10d4eea --- /dev/null +++ b/lib/features/library_item/container/item_list.dart @@ -0,0 +1,528 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:intl/intl.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/connection/services/base_connection_service.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:madari_client/features/library_item/container/stremio_item_card.dart'; +import 'package:madari_client/features/library_item/container/stremio_item_list.dart'; +import 'package:shimmer/shimmer.dart'; + +import '../../../utils/grid.dart'; +import '../../library/component/library_search.dart'; +import 'item_viewer.dart'; + +class ItemList extends ConsumerStatefulWidget { + final LibraryRecord library; + + const ItemList({ + super.key, + required this.library, + }); + + @override + createState() => _ItemListState(); +} + +class _ItemListState extends ConsumerState { + int _currentPage = 1; + final ScrollController _scrollController = ScrollController(); + List _items = []; + bool _isLoading = false; + bool _hasMoreItems = true; + bool _hasInitiallyLoaded = false; + late bool _isGridView; + + bool get isStremio { + return widget.library.connectionType == "stremio_addons"; + } + + late BaseConnectionService _service; + + @override + void initState() { + super.initState(); + if (isStremio) { + _isGridView = true; + } else { + _isGridView = false; + } + _scrollController.addListener(_onScroll); + + Future.microtask(() async { + _fetchInitialItems(); + }); + } + + BaseConnectionService? _item; + BaseConnectionService? get service { + if (_item != null) { + return _item; + } + + _item = _service; + + return _item as BaseConnectionService; + } + + Widget _buildItem(LibraryItemList item) { + if (isStremio) { + final parsed = Meta.fromJson( + jsonDecode(item.config!), + ); + + if (_isGridView) { + return StremioItemCard( + heroPrefix: widget.library.id, + item: item, + parsed: parsed, + service: service as StremioService, + ); + } else { + return StremioItemList( + item: item, + parsed: parsed, + service: service as StremioService, + ); + } + } + + Widget image; + + if (item.logo == "" || item.logo == null) { + image = Icon( + Icons.file_copy, + size: _isGridView ? 46 : 32, + ); + } else { + if (item.logo?.startsWith("/9j") == true) { + image = Image.memory( + base64Decode(item.logo!), + fit: BoxFit.cover, + width: 64, + height: 64, + ); + } else if (item.logo?.startsWith("http://") == true || + item.logo?.startsWith("https://") == true) { + image = Image.network( + item.logo!, + fit: BoxFit.cover, + width: 64, + height: 64, + ); + } else { + image = Image.file( + File(item.logo!), + fit: BoxFit.cover, + width: 64, + height: 64, + ); + } + } + + onTap() => Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return ItemViewer( + item: item, + library: widget.library, + ); + }, + ), + ); + + return Container( + margin: _isGridView + ? const EdgeInsets.all(8) + : const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + child: _isGridView + ? ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Stack( + children: [ + Card( + elevation: 0, + child: InkWell( + onTap: onTap, + child: Stack( + children: [ + Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 24.0), + child: AspectRatio( + aspectRatio: 16 / 9, + child: image, + ), + ), + ), + Positioned( + bottom: 0, + right: 0, + left: 0, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + item.title, + style: Theme.of(context).textTheme.titleMedium, + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + ), + ], + ), + ), + ), + if (item.history != null) + Positioned( + child: LinearProgressIndicator( + minHeight: 4, + value: item.history!.progress / 100, + ), + ), + ], + ), + ) + : InkWell( + onTap: onTap, + child: ListTile( + leading: item.logo == null + ? SizedBox( + width: 64, + height: 64, + child: Stack( + children: [ + SizedBox( + width: 64, + height: 64, + child: image, + ), + if (item.history != null) + Positioned( + top: 0, + bottom: 0, + left: 0, + right: 0, + child: Center( + child: CircularProgressIndicator( + value: item.history!.progress / 100, + ), + ), + ), + ], + ), + ) + : ClipRRect( + borderRadius: BorderRadius.circular(4), + child: SizedBox( + height: 40, + child: image, + ), + ), + title: Text( + item.title, + maxLines: 1, + ), + subtitle: subtitleBuilder(item), + ), + ), + ); + } + + Widget subtitleBuilder(LibraryItemList item) { + String data = ""; + + if ((item.size ?? 0) > 0) { + data += "${_formatSize(item.size!)}\n"; + } + + if (item.date != null) { + data += "${_formatDate(item.date ?? DateTime.now())}\n"; + } + + if (item.extra != null) { + data += item.extra!; + } + + return Text(data); + } + + String _formatDate(DateTime date) { + final now = DateTime.now(); + + if (DateFormat('yyyy-MM-dd').format(now) == + DateFormat('yyyy-MM-dd').format(date)) { + return 'Today'; + } else if (DateFormat('yyyy-MM-dd') + .format(now.subtract(const Duration(days: 1))) == + date) { + return 'Yesterday'; + } + return DateFormat('MMMM d, yyyy').format(date); + } + + String _formatSize(int size) { + if (size == 0) return ''; + const suffixes = ['B', 'KB', 'MB', 'GB', 'TB']; + var i = 0; + double formattedSize = size.toDouble(); + while (formattedSize >= 1024 && i < suffixes.length - 1) { + formattedSize /= 1024; + i++; + } + return '${formattedSize.toStringAsFixed(1)} ${suffixes[i]}'; + } + + Widget _buildShimmerItem() { + return ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Shimmer.fromColors( + baseColor: Colors.grey[800]!, + highlightColor: Colors.grey[600]!, + child: ClipRRect( + borderRadius: BorderRadius.circular(10), + child: _isGridView + ? ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Card( + elevation: 0, + margin: const EdgeInsets.all(8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Image placeholder + AspectRatio( + aspectRatio: isStremio ? 2 / 3 : 16 / 9, + child: Container( + color: Colors.grey[800], + ), + ), + // Title placeholder + if (!isStremio) + Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + height: 16, + width: double.infinity, + color: Colors.grey[800], + ), + ), + ], + ), + ), + ) + : ListTile( + leading: ClipRRect( + borderRadius: BorderRadius.circular(4), + child: Container( + width: 40, + height: 40, + color: Colors.grey[800], + ), + ), + title: Container( + height: 16, + color: Colors.grey[800], + ), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 8), + Container( + height: 12, + width: 100, + color: Colors.grey[800], + ), + const SizedBox(height: 4), + Container( + height: 12, + width: 150, + color: Colors.grey[800], + ), + ], + ), + ), + ), + ), + ); + } + + void _fetchInitialItems() async { + ref + .read(libraryItemListProvider( + widget.library, + _items, + _currentPage, + null, + ).future) + .then((result) { + if (mounted) { + setState(() { + _items = result.items; + _hasMoreItems = result.items.isNotEmpty; + _hasInitiallyLoaded = true; + }); + } + }); + } + + void _onScroll() { + if (_scrollController.position.pixels >= + _scrollController.position.maxScrollExtent - 200 && + !_isLoading && + _hasMoreItems) { + _loadMoreItems(); + } + } + + Future _loadMoreItems() async { + if (_isLoading) return; + + setState(() { + _isLoading = true; + }); + + try { + _currentPage++; + final result = await ref.read( + libraryItemListProvider( + widget.library, + _items, + _currentPage, + null, + ).future, + ); + + setState(() { + _items.addAll(result.items); + _hasMoreItems = result.items.isNotEmpty; + _isLoading = false; + }); + } catch (err) { + if (mounted) { + setState(() { + _isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Failed to load more items: $err')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(widget.library.title), + actions: [ + IconButton( + icon: Icon(_isGridView ? Icons.list : Icons.grid_view), + onPressed: () { + setState(() { + _isGridView = !_isGridView; + }); + }, + ), + IconButton( + onPressed: () async { + final result = await showSearch( + context: context, + delegate: LibraryItemSearchDelegate( + library: widget.library, + items: _items, + ref: ref, + service: service, + ), + ); + + if (result != null && context.mounted) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => ItemViewer( + item: result, + library: widget.library, + ), + ), + ); + } + }, + icon: const Icon(Icons.search), + ), + ], + ), + body: _items.isEmpty && (_isLoading || !_hasInitiallyLoaded) + ? GridView.builder( + padding: const EdgeInsets.all(8), + gridDelegate: isStremio + ? SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: getGridResponsiveColumnCount(context), + mainAxisSpacing: getGridResponsiveSpacing(context), + crossAxisSpacing: getGridResponsiveSpacing(context), + childAspectRatio: 2 / 3, + ) + : const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + childAspectRatio: 1, + crossAxisSpacing: 8, + mainAxisSpacing: 8, + ), + itemCount: 12, + itemBuilder: (context, index) => _buildShimmerItem(), + ) + : _isGridView + ? GridView.builder( + controller: _scrollController, + gridDelegate: isStremio + ? SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: getGridResponsiveColumnCount(context), + mainAxisSpacing: getGridResponsiveSpacing(context), + crossAxisSpacing: getGridResponsiveSpacing(context), + childAspectRatio: 2 / 3, + ) + : SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: getGridResponsiveColumnCount(context), + childAspectRatio: 1, + crossAxisSpacing: isStremio ? 0 : 8, + mainAxisSpacing: isStremio ? 0 : 8, + ), + itemCount: _items.length + (_isLoading ? 1 : 0), + itemBuilder: (context, index) { + if (index < _items.length) { + return _buildItem(_items[index]); + } else { + return _buildShimmerItem(); + } + }, + ) + : Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 600, + ), + child: ListView.builder( + controller: _scrollController, + itemCount: _items.length + (_isLoading ? 1 : 0), + itemBuilder: (context, index) { + if (index < _items.length) { + return _buildItem(_items[index]); + } else { + return _buildShimmerItem(); + } + }, + ), + ), + ), + ); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } +} diff --git a/lib/features/library_item/container/item_viewer.dart b/lib/features/library_item/container/item_viewer.dart new file mode 100644 index 0000000..c1e855a --- /dev/null +++ b/lib/features/library_item/container/item_viewer.dart @@ -0,0 +1,167 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/doc_viewer/container/doc_viewer.dart'; + +import '../../doc_viewer/types/doc_source.dart'; + +class ItemViewer extends StatefulWidget { + final LibraryRecord library; + final LibraryItemList item; + + const ItemViewer({ + super.key, + required this.library, + required this.item, + }); + + @override + State createState() => _ItemViewerState(); +} + +class _ItemViewerState extends State { + Stream>? source; + + @override + void initState() { + super.initState(); + + Future.microtask(() async { + setState(() { + this.source = source; + }); + }); + } + + @override + Widget build(BuildContext context) { + if (source == null) { + return const Scaffold( + body: Center( + child: CircularProgressIndicator(), + ), + ); + } + + return StreamBuilder( + stream: source, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Scaffold( + body: Text("Something went wrong ${snapshot.error}"), + ); + } + + final hasData = snapshot.data ?? []; + + if (hasData.isEmpty) { + return const Scaffold( + body: Center( + child: CircularProgressIndicator(), + ), + ); + } + + final firstData = snapshot.data!.first; + + if (firstData is ProgressStatus) { + final result = firstData; + + final bool isDarkMode = + Theme.of(context).brightness == Brightness.dark; + final ColorScheme colorScheme = isDarkMode + ? ColorScheme.dark( + primary: Colors.blue.shade300, + surface: Colors.black, + onSurface: Colors.white, + ) + : ColorScheme.light( + primary: Colors.blue.shade600, + surface: Colors.white, + onSurface: Colors.black87, + ); + + return Theme( + data: ThemeData( + colorScheme: colorScheme, + scaffoldBackgroundColor: colorScheme.surface, + ), + child: Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: Colors.transparent, + title: Text( + result.title, + style: TextStyle( + color: colorScheme.onSurface, + fontWeight: FontWeight.bold, + ), + ), + centerTitle: true, + ), + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Stack( + alignment: Alignment.center, + children: [ + SizedBox( + width: 200, + height: 200, + child: CircularProgressIndicator( + value: result.percentage, + strokeWidth: 12, + backgroundColor: isDarkMode + ? Colors.grey.shade800 + : Colors.grey.shade300, + valueColor: AlwaysStoppedAnimation( + colorScheme.primary, + ), + ), + ), + Text( + '${result.percentage?.toStringAsFixed(0)}%', + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: colorScheme.primary, + ), + ), + ], + ), + const SizedBox(height: 24), + Text( + result.progressText ?? 'Downloading...', + style: TextStyle( + fontSize: 16, + color: isDarkMode + ? Colors.grey.shade300 + : Colors.grey.shade700, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ), + ); + } + + if (snapshot.connectionState != ConnectionState.done) { + return const Scaffold( + body: Center( + child: CircularProgressIndicator(), + ), + ); + } + + return DocViewer( + source: firstData, + ); + }, + ); + } +} diff --git a/lib/features/library_item/container/stremio_item_card.dart b/lib/features/library_item/container/stremio_item_card.dart new file mode 100644 index 0000000..0bc8007 --- /dev/null +++ b/lib/features/library_item/container/stremio_item_card.dart @@ -0,0 +1,110 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:cached_network_image_platform_interface/cached_network_image_platform_interface.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/library_item/container/stremio_item_viewer.dart'; + +import '../../../engine/library.dart'; +import '../../connection/types/stremio.dart'; + +class StremioItemCard extends StatelessWidget { + final LibraryItemList item; + final Meta parsed; + final StremioService service; + final String heroPrefix; + + const StremioItemCard({ + super.key, + required this.item, + required this.parsed, + required this.service, + required this.heroPrefix, + }); + + @override + Widget build(BuildContext context) { + return Card( + margin: const EdgeInsets.all(8), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: InkWell( + borderRadius: BorderRadius.circular(12), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return StremioItemViewer( + item: parsed, + service: service, + heroPrefix: heroPrefix, + ); + }, + ), + ); + }, + child: Hero( + tag: "$heroPrefix${parsed.id}", + child: AspectRatio( + aspectRatio: 2 / 3, // Typical poster aspect ratio + child: (parsed.poster == null) + ? Container() + : Container( + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + parsed.poster!, + imageRenderMethodForWeb: + ImageRenderMethodForWeb.HttpGet, + ), + fit: BoxFit.cover, + ), + ), + child: + parsed.imdbRating != null && parsed.imdbRating != "" + ? Align( + alignment: Alignment.topRight, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Container( + decoration: BoxDecoration( + color: Colors.black54, + borderRadius: BorderRadius.circular(8), + ), + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.star, + color: Colors.amber, + size: 16, + ), + const SizedBox(width: 4), + Text( + parsed.imdbRating!, + style: const TextStyle( + color: Colors.white, + fontSize: 12, + ), + ), + ], + ), + ), + ), + ) + : const SizedBox.shrink(), + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/features/library_item/container/stremio_item_list.dart b/lib/features/library_item/container/stremio_item_list.dart new file mode 100644 index 0000000..4ea00e9 --- /dev/null +++ b/lib/features/library_item/container/stremio_item_list.dart @@ -0,0 +1,130 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:madari_client/features/library_item/container/stremio_item_viewer.dart'; + +class StremioItemList extends StatelessWidget { + final LibraryItemList item; + final Meta parsed; + final StremioService service; + + const StremioItemList({ + super.key, + required this.item, + required this.parsed, + required this.service, + }); + + @override + Widget build(BuildContext context) { + return Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ClipRRect( + child: InkWell( + borderRadius: BorderRadius.circular(12), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return StremioItemViewer( + item: parsed, + service: service, + heroPrefix: item.id, + ); + }, + ), + ); + }, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 1, + child: Hero( + tag: parsed.id, + child: Container( + height: 180, + decoration: BoxDecoration( + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(12), + bottomLeft: Radius.circular(12), + ), + image: parsed.poster == null + ? null + : DecorationImage( + image: NetworkImage(parsed.poster!), + fit: BoxFit.cover, + ), + ), + ), + ), + ), + // Content on the right side + Expanded( + flex: 2, + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + parsed.name!, + style: Theme.of(context).textTheme.titleLarge, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + if (parsed.description != null) const SizedBox(height: 8), + if (parsed.description != null) + Text( + parsed.description!, + maxLines: 3, + overflow: TextOverflow.ellipsis, + style: Theme.of(context).textTheme.bodyMedium, + ), + const SizedBox(height: 12), + Row( + children: [ + if (parsed.year != null) + Chip( + label: Text( + parsed.year!, + style: const TextStyle(fontSize: 12), + ), + padding: + const EdgeInsets.symmetric(horizontal: 8), + ), + const SizedBox(width: 8), + if (parsed.imdbRating != null && + parsed.imdbRating != "") + Row( + children: [ + const Icon( + Icons.star, + color: Colors.amber, + size: 16, + ), + const SizedBox(width: 4), + Text( + parsed.imdbRating!, + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ], + ), + ], + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/features/library_item/container/stremio_item_season_selector.dart b/lib/features/library_item/container/stremio_item_season_selector.dart new file mode 100644 index 0000000..e378e68 --- /dev/null +++ b/lib/features/library_item/container/stremio_item_season_selector.dart @@ -0,0 +1,201 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart' as intl; +import 'package:madari_client/features/connection/types/stremio.dart'; + +class StremioItemSeasonSelector extends StatefulWidget { + final Meta meta; + final int? season; + final bool needToPopBeforeSelection; + + const StremioItemSeasonSelector({ + super.key, + required this.meta, + this.season, + this.needToPopBeforeSelection = false, + }); + + @override + State createState() => + _StremioItemSeasonSelectorState(); +} + +class _StremioItemSeasonSelectorState extends State + with SingleTickerProviderStateMixin { + int? selectedSeason; + late TabController _tabController; + late final Map> seasonMap; + + @override + void initState() { + super.initState(); + seasonMap = _organizeEpisodes(); + selectedSeason = widget.season; + + _tabController = TabController( + length: seasonMap.keys.length, + vsync: this, + initialIndex: selectedSeason ?? (seasonMap.keys.first == 0 ? 1 : 0), + ); + } + + @override + void dispose() { + _tabController.dispose(); + super.dispose(); + } + + Map> _organizeEpisodes() { + final episodes = widget.meta.videos ?? []; + return groupBy(episodes, (Video video) => video.season); + } + + @override + Widget build(BuildContext context) { + final seasons = seasonMap.keys.toList()..sort(); + + return CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: TabBar( + controller: _tabController, + isScrollable: true, + splashBorderRadius: BorderRadius.circular(50), + automaticIndicatorColorAdjustment: true, + dividerColor: Colors.transparent, + tabs: seasons.map((season) { + if (season == 0) { + return const Tab(text: "Specials"); + } + return Tab(text: 'Season $season'); + }).toList(), + ), + ), + const SliverToBoxAdapter( + child: SizedBox(height: 16), + ), + SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + final season = seasons[_tabController.index]; + final episodes = seasonMap[season]!; + if (index >= episodes.length) return null; + + final episode = episodes[index]; + return Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: InkWell( + borderRadius: BorderRadius.circular(12), + onTap: () { + if (widget.needToPopBeforeSelection) { + Navigator.of(context).pop(); + } + }, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Episode number + SizedBox( + width: 30, + child: Text( + '${episode.episode}', + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.grey, + ), + ), + ), + // Thumbnail + if (episode.thumbnail != null && + episode.thumbnail!.isNotEmpty) + ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + episode.thumbnail!, + width: 160, + height: 90, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Container( + width: 160, + height: 90, + color: Colors.grey[800], + ); + }, + ), + ) + else + Container( + width: 160, + height: 90, + decoration: BoxDecoration( + color: Colors.grey[800], + borderRadius: BorderRadius.circular(8), + ), + ), + const SizedBox(width: 16), + // Episode details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + episode.name ?? 'Episode ${episode.episode}', + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + if (episode.released != null) ...[ + const SizedBox(height: 4), + Text( + intl.DateFormat('MMMM dd yyyy') + .format(episode.released!), + style: TextStyle( + fontSize: 12, + color: Colors.grey[400], + ), + ), + ], + if (episode.overview != null) ...[ + const SizedBox(height: 4), + Text( + episode.overview!, + maxLines: 3, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: Colors.grey[300], + ), + ), + ], + ], + ), + ), + ], + ), + ), + ); + }, + childCount: seasonMap[seasons[_tabController.index]]?.length ?? 0, + ), + ), + ], + ); + } +} + +Map> groupBy(Iterable items, T Function(E) key) { + final map = >{}; + + for (final item in items) { + final keyValue = key(item); + if (!map.containsKey(keyValue)) { + map[keyValue] = []; + } + map[keyValue]!.add(item); + } + + return map; +} diff --git a/lib/features/library_item/container/stremio_item_viewer.dart b/lib/features/library_item/container/stremio_item_viewer.dart new file mode 100644 index 0000000..005113f --- /dev/null +++ b/lib/features/library_item/container/stremio_item_viewer.dart @@ -0,0 +1,467 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/connection/services/stremio_service.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:madari_client/features/library_item/container/stremio_stream_selector.dart'; + +import 'stremio_item_season_selector.dart'; + +class StremioItemViewer extends StatefulWidget { + final Meta item; + final StremioService service; + final String heroPrefix; + + const StremioItemViewer({ + super.key, + required this.item, + required this.service, + required this.heroPrefix, + }); + + @override + State createState() => _StremioItemViewerState(); +} + +class _StremioItemViewerState extends State { + bool _isLoading = true; + String? _errorMessage; + + @override + void initState() { + widget.service + .getItemMetaById(widget.item.type, widget.item.id) + .then((itemGet) { + if (mounted) { + setState(() { + _item = itemGet; + _isLoading = false; + }); + } + }).catchError((err) { + setState(() { + _isLoading = false; + _errorMessage = err.toString(); + }); + }); + + super.initState(); + } + + Meta? _item; + + Meta get item { + return _item ?? widget.item; + } + + void _onPlayPressed(BuildContext context) { + if (item.type == "series") { + showModalBottomSheet( + context: context, + builder: (context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + onPressed: () { + Navigator.of(context).pop(); + }, + icon: const Icon(Icons.close), + ), + title: const Text("Seasons"), + ), + body: StremioItemSeasonSelector( + meta: item, + ), + ); + }, + ); + } else { + showModalBottomSheet( + context: context, + builder: (context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + onPressed: () { + Navigator.of(context).pop(); + }, + icon: const Icon(Icons.close), + ), + title: const Text("Streams"), + ), + body: StremioStreamSelector( + stremio: widget.service, + item: item, + id: item.id, + ), + ); + }, + ); + } + } + + @override + Widget build(BuildContext context) { + final screenWidth = MediaQuery.of(context).size.width; + final isWideScreen = screenWidth > 900; + final contentWidth = isWideScreen ? 900.0 : screenWidth; + + if (_errorMessage != null) { + return Text("Failed $_errorMessage"); + } + + return Scaffold( + body: CustomScrollView( + slivers: [ + SliverAppBar( + expandedHeight: isWideScreen ? 600 : 500, + pinned: true, + // Add bottom widget to keep controls visible + bottom: PreferredSize( + preferredSize: const Size.fromHeight(40), + child: Container( + width: double.infinity, + color: Colors.black, + padding: EdgeInsets.symmetric( + horizontal: + isWideScreen ? (screenWidth - contentWidth) / 2 : 16, + vertical: 16, + ), + child: Row( + children: [ + Expanded( + child: Text( + item.name!, + style: Theme.of(context).textTheme.titleLarge, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 16), + ElevatedButton.icon( + icon: _isLoading + ? Container( + margin: const EdgeInsets.only(right: 6), + child: const SizedBox( + width: 12, + height: 12, + child: CircularProgressIndicator(), + ), + ) + : const Icon( + Icons.play_arrow_rounded, + size: 24, + color: Colors.black87, + ), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white, + ), + onPressed: () { + if (item.type == "series" && _isLoading) { + return; + } + + _onPlayPressed(context); + }, + label: Text( + "Play", + style: Theme.of(context) + .primaryTextTheme + .bodyMedium + ?.copyWith( + color: Colors.black87, + ), + ), + ), + ], + ), + ), + ), + flexibleSpace: FlexibleSpaceBar( + background: Stack( + fit: StackFit.expand, + children: [ + if (item.background != null) + Image.network( + item.background!, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + if (item.poster == null) { + return Container(); + } + return Image.network(item.poster!, fit: BoxFit.cover); + }, + ), + // Gradient overlay + DecoratedBox( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.transparent, + Colors.black.withOpacity(0.8), + ], + ), + ), + ), + Positioned( + bottom: 86, // Adjusted to account for bottom widget + left: 16, + right: 16, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: isWideScreen + ? (screenWidth - contentWidth) / 2 + : 16, + vertical: 16, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Hero( + tag: "${widget.heroPrefix}${item.id}", + child: Container( + width: 150, + height: 225, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + image: item.poster == null + ? null + : DecorationImage( + image: NetworkImage(item.poster!), + fit: BoxFit.cover, + ), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + spreadRadius: 2, + blurRadius: 8, + ), + ], + ), + ), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + if (item.year != null) + Chip( + label: Text(item.year!), + backgroundColor: Colors.white24, + labelStyle: const TextStyle( + color: Colors.white), + ), + const SizedBox(width: 8), + if (item.imdbRating != null) + Row( + children: [ + const Icon( + Icons.star, + color: Colors.amber, + size: 20, + ), + const SizedBox(width: 4), + Text( + item.imdbRating!, + style: Theme.of(context) + .textTheme + .bodyMedium + ?.copyWith(color: Colors.white), + ), + ], + ), + ], + ), + ], + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + SliverPadding( + padding: EdgeInsets.symmetric( + horizontal: isWideScreen ? (screenWidth - contentWidth) / 2 : 16, + vertical: 16, + ), + sliver: SliverList( + delegate: SliverChildListDelegate([ + const SizedBox( + height: 12, + ), + // Description + Text( + 'Description', + style: Theme.of(context).textTheme.titleLarge, + ), + if (item.description != null) const SizedBox(height: 8), + if (item.description != null) + Text( + item.description!, + style: Theme.of(context).textTheme.bodyMedium, + ), + const SizedBox(height: 16), + + // Additional Details + _buildDetailSection(context, 'Additional Information', [ + if (item.genre != null) + _buildDetailRow('Genres', item.genre!.join(', ')), + if (item.country != null) + _buildDetailRow('Country', item.country!), + if (item.runtime != null) + _buildDetailRow('Runtime', item.runtime!), + if (item.language != null) + _buildDetailRow('Language', item.language!), + ]), + + // Cast + if (item.creditsCast != null && item.creditsCast!.isNotEmpty) + _buildCastSection(context, item.creditsCast!), + + // Trailers + if (item.trailerStreams != null && + item.trailerStreams!.isNotEmpty) + _buildTrailersSection(context, item.trailerStreams!), + ]), + ), + ), + ], + ), + ); + } + + Widget _buildDetailSection( + BuildContext context, String title, List details) { + if (details.isEmpty) return const SizedBox.shrink(); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: Theme.of(context).textTheme.titleLarge, + ), + const SizedBox(height: 8), + ...details, + const SizedBox(height: 16), + ], + ); + } + + Widget _buildDetailRow(String label, String value) { + return Padding( + padding: const EdgeInsets.only(bottom: 8), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 120, + child: Text( + '$label:', + style: const TextStyle(fontWeight: FontWeight.bold), + ), + ), + Expanded(child: Text(value)), + ], + ), + ); + } + + Widget _buildCastSection(BuildContext context, List cast) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Cast', + style: Theme.of(context).textTheme.titleLarge, + ), + const SizedBox(height: 8), + SizedBox( + height: 150, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: cast.length, + itemBuilder: (context, index) { + final actor = cast[index]; + return Padding( + padding: const EdgeInsets.only(right: 16), + child: Column( + children: [ + CircleAvatar( + radius: 50, + backgroundImage: actor.profilePath != null + ? NetworkImage(actor.profilePath!) + : null, + child: actor.profilePath == null + ? Icon(Icons.person, + size: 50, color: Colors.grey[300]) + : null, + ), + const SizedBox(height: 8), + Text( + actor.name, + style: Theme.of(context).textTheme.bodyMedium, + ), + Text( + actor.character, + style: Theme.of(context).textTheme.bodySmall, + ), + ], + ), + ); + }, + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _buildTrailersSection( + BuildContext context, List trailers) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Trailers', + style: Theme.of(context).textTheme.titleLarge, + ), + const SizedBox(height: 8), + SizedBox( + height: 100, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: trailers.length, + itemBuilder: (context, index) { + final trailer = trailers[index]; + return Padding( + padding: const EdgeInsets.only(right: 16), + child: Container( + width: 160, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.black26, + ), + child: Center( + child: Text( + trailer.title, + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.white), + ), + ), + ), + ); + }, + ), + ), + ], + ); + } +} diff --git a/lib/features/library_item/container/stremio_stream_selector.dart b/lib/features/library_item/container/stremio_stream_selector.dart new file mode 100644 index 0000000..045b23b --- /dev/null +++ b/lib/features/library_item/container/stremio_stream_selector.dart @@ -0,0 +1,330 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:background_downloader/background_downloader.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/features/connection/types/stremio.dart'; +import 'package:madari_client/features/doc_viewer/container/doc_viewer.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../connection/services/stremio_service.dart'; +import '../../downloads/service/service.dart'; + +class StremioStreamSelector extends StatefulWidget { + final StremioService stremio; + final Meta item; + final String? episode; + final String? season; + final String id; + final Widget? library; + + const StremioStreamSelector({ + super.key, + required this.id, + required this.stremio, + required this.item, + this.episode, + this.season, + this.library, + }); + + @override + State createState() => _StremioStreamSelectorState(); +} + +class _StremioStreamSelectorState extends State { + late final Stream> _stream; + final Map _downloadStatus = {}; + final Map _downloadProgress = {}; + DownloadService? _downloadService; + StreamSubscription? _downloadSubscription; + + @override + void initState() { + super.initState(); + + if (!kIsWeb) _downloadService = DownloadService.instance; + + _stream = widget.stremio + .getStreams( + widget.item.type, + widget.id, + episode: widget.episode, + season: widget.season, + ) + .map((item) { + return [ + if (widget.item.type == "movie") + for (final item in (widget.stremio.configParsed.movieIframe ?? [])) + VideoStream( + title: widget.item.name, + behaviorHints: { + "filename": widget.item.name, + "iframe": item, + }, + ), + if (widget.item.type == "series") + for (final item in (widget.stremio.configParsed.seriesIframe ?? [])) + VideoStream( + title: widget.item.name, + behaviorHints: { + "filename": widget.item.name, + "iframe": item, + }, + ), + ...item, + ]; + }); + _setupDownloadListener(); + _checkExistingDownloads(); + } + + @override + void dispose() { + _downloadSubscription?.cancel(); + super.dispose(); + } + + void _setupDownloadListener() { + _downloadSubscription = _downloadService?.updates.listen((update) { + if (!mounted) return; + + switch (update) { + case TaskStatusUpdate(): + final index = int.tryParse(update.task.taskId.split('_').last); + if (index != null) { + setState(() { + _downloadStatus[index] = update.status; + }); + } + + case TaskProgressUpdate(): + final index = int.tryParse(update.task.taskId.split('_').last); + if (index != null) { + setState(() { + _downloadProgress[index] = update.progress; + }); + } + } + }); + } + + Future _checkExistingDownloads() async { + final downloads = await _downloadService?.getAllDownloads(); + if (!mounted) return; + + setState(() { + for (var record in (downloads ?? [])) { + final index = int.tryParse(record.task.taskId.split('_').last); + if (index != null) { + _downloadStatus[index] = record.status; + _downloadProgress[index] = record.progress; + } + } + }); + } + + String _getFileName(VideoStream item) { + return item.behaviorHints?["filename"] ?? "${widget.item.name}.mp4"; + } + + Future _startDownload(VideoStream item, int index) async { + final fileName = _getFileName(item); + final url = item.url; + + if (url == null) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('No URL available for download')), + ); + } + return; + } + + final task = DownloadTask( + taskId: 'download_$index', + url: url, + displayName: fileName.split("/").last, + filename: fileName.split("/").last, + baseDirectory: BaseDirectory.applicationDocuments, + updates: Updates.statusAndProgress, + ); + + try { + await _downloadService?.startDownload(task); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Download failed: $e')), + ); + } + } + } + + Widget _buildDownloadButton(VideoStream item, int index) { + if (isWeb) { + return const SizedBox( + width: 1, + height: 1, + ); + } + + final status = _downloadStatus[index]; + final progress = _downloadProgress[index] ?? 0.0; + + switch (status) { + case TaskStatus.complete: + return IconButton( + icon: const Icon(Icons.play_circle, color: Colors.green), + onPressed: () => _playDownloadedFile(item), + ); + + case TaskStatus.running: + return Stack( + alignment: Alignment.center, + children: [ + CircularProgressIndicator(value: progress), + IconButton( + icon: const Icon(Icons.pause), + onPressed: () => _downloadService?.pauseDownload( + DownloadTask( + taskId: 'download_$index', + url: item.url!, + filename: _getFileName(item), + ), + ), + ), + ], + ); + + case TaskStatus.paused: + return IconButton( + icon: const Icon(Icons.play_arrow), + onPressed: () => _downloadService?.resumeDownload( + DownloadTask( + taskId: 'download_$index', + url: item.url!, + filename: _getFileName(item), + ), + ), + ); + + default: + return IconButton( + icon: const Icon(Icons.download), + onPressed: () => _startDownload(item, index), + ); + } + } + + Future _playDownloadedFile(VideoStream item) async {} + + @override + Widget build(BuildContext context) { + return StreamBuilder( + stream: _stream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Text("Something went wrong: ${snapshot.error}"); + } + + if (!snapshot.hasData && + snapshot.connectionState == ConnectionState.done) { + return const Center( + child: Text("No streams available"), + ); + } + + if (!snapshot.hasData) { + return const Center( + child: CircularProgressIndicator(), + ); + } + + if (snapshot.data?.isEmpty == true) { + return const Center( + child: Text("No streams available"), + ); + } + + return ListView.builder( + itemCount: snapshot.data!.length, + itemBuilder: (ctx, index) { + final item = snapshot.data![index]; + + return ListTile( + onTap: () { + DocSource? source; + + if ((item.behaviorHints)?.containsKey("iframe") == true) { + final url = + (item.behaviorHints!["iframe"] as String).replaceAll( + "{imdb}", + widget.item.imdbId!, + ); + + source = IframeSource( + url: url, + title: widget.item.name!, + id: widget.item.id, + season: widget.season, + episode: widget.episode, + ); + } + + if (item.infoHash != null) { + source = TorrentSource( + id: widget.item.id, + title: widget.item.name!, + infoHash: item.infoHash!, + fileName: + "${item.behaviorHints?["filename"] as String}.mp4", + season: widget.season, + episode: widget.episode, + ); + } + + if (item.url != null) { + source = URLSource( + title: "${utf8.decode( + widget.item.name!.runes.toList(), + )}.mp4", + url: item.url!, + id: widget.item.id, + fileName: "${_getFileName(item)}.mp4", + season: widget.season, + episode: widget.episode, + ); + } + + if (source == null) { + return; + } + + Navigator.of(context).push( + MaterialPageRoute(builder: (ctx) { + return DocViewer( + source: source!, + ); + }), + ); + }, + enabled: item.behaviorHints?["filename"] != null, + leading: const Icon(Icons.stream), + title: Text( + utf8.decode((item.name ?? item.title ?? "").runes.toList()), + ), + subtitle: Text( + utf8.decode( + (item.description ?? item.title ?? '').runes.toList()), + ), + trailing: _buildDownloadButton(item, index), + ); + }, + ); + }, + ); + } +} diff --git a/lib/features/playlist/service/playlist_service.dart b/lib/features/playlist/service/playlist_service.dart new file mode 100644 index 0000000..9b45675 --- /dev/null +++ b/lib/features/playlist/service/playlist_service.dart @@ -0,0 +1,146 @@ +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../types/playlist.dart'; +import '../types/playlist_item.dart'; + +class PlaylistServiceException implements Exception { + final String message; + final dynamic originalError; + + PlaylistServiceException(this.message, [this.originalError]); + + @override + String toString() => 'PlaylistServiceException: $message'; +} + +class PlaylistService { + static const int _itemsPerPage = 20; + late final PocketBase _pb; + + static PlaylistService? _instance; + PlaylistService._(); + + static void initialize() { + _instance ??= PlaylistService._(); + _instance!._pb = AppEngine.engine.pb; + } + + PlaylistService(this._pb); + + static PlaylistService get instance { + if (_instance == null) { + throw PlaylistServiceException( + 'PlaylistService not initialized. Call PlaylistService.initialize() first.', + ); + } + return _instance!; + } + + /// Creates a new playlist + Future createPlaylist(String name) async { + try { + final record = await _pb.collection('playlist').create(body: { + 'name': name, + 'user': _pb.authStore.record!.id, + }); + + return Playlist.fromJson(record.toJson()); + } catch (e) { + throw PlaylistServiceException('Failed to create playlist', e); + } + } + + /// Gets items from a playlist with pagination + Future> getItems(String playlistId, {int page = 1}) async { + try { + final result = await _pb.collection('playlist_item').getList( + page: page, + perPage: _itemsPerPage, + filter: 'playlist = "$playlistId"', + sort: '-created', + ); + + return result.items + .map((record) => PlaylistItem.fromJson(record.toJson())) + .toList(); + } catch (e) { + throw PlaylistServiceException('Failed to fetch playlist items', e); + } + } + + /// Adds an item to a playlist + Future addToPlaylist( + String playlistId, + ) async { + try { + // Verify if the item already exists in the playlist + final existing = await _pb.collection('playlist_item').getList( + filter: 'playlist = "$playlistId"', + page: 1, + perPage: 1, + ); + + if (existing.items.isNotEmpty) { + throw PlaylistServiceException('Item already exists in playlist'); + } + + final record = await _pb.collection('playlist_item').create(body: { + 'playlist': playlistId, + }); + + return PlaylistItem.fromJson(record.toJson()); + } catch (e) { + if (e is PlaylistServiceException) rethrow; + throw PlaylistServiceException('Failed to add item to playlist', e); + } + } + + /// Removes an item from a playlist + Future removeFromPlaylist(String itemId) async { + try { + await _pb.collection('playlist_item').delete(itemId); + } catch (e) { + throw PlaylistServiceException('Failed to remove item from playlist', e); + } + } + + /// Gets all playlists for a user + Future> getUserPlaylists({int page = 1}) async { + try { + final result = await _pb.collection('playlist').getList( + page: page, + perPage: _itemsPerPage, + filter: 'user = "${_pb.authStore.record!.id}"', + sort: '-created', + ); + + return result.items + .map((record) => Playlist.fromJson(record.toJson())) + .toList(); + } catch (e) { + throw PlaylistServiceException('Failed to fetch user playlists', e); + } + } + + /// Deletes a playlist and all its items + Future deletePlaylist(String playlistId) async { + try { + // First, delete all items in the playlist + final items = await _pb.collection('playlist_item').getList( + filter: 'playlist = "$playlistId"', + page: 1, + perPage: 500, // Use a large number to get all items + ); + + for (final item in items.items) { + await _pb.collection('playlist_item').delete(item.id); + } + + // Then delete the playlist itself + await _pb.collection('playlist').delete(playlistId); + } catch (e) { + throw PlaylistServiceException('Failed to delete playlist', e); + } + } +} diff --git a/lib/features/playlist/types/playlist.dart b/lib/features/playlist/types/playlist.dart new file mode 100644 index 0000000..e4280ae --- /dev/null +++ b/lib/features/playlist/types/playlist.dart @@ -0,0 +1,41 @@ +class Playlist { + final String id; + final String collectionId; + final String collectionName; + final String name; + final String userId; + final DateTime created; + final DateTime updated; + + Playlist({ + required this.id, + required this.collectionId, + required this.collectionName, + required this.name, + required this.userId, + required this.created, + required this.updated, + }); + + factory Playlist.fromJson(Map json) { + return Playlist( + id: json['id'], + collectionId: json['collectionId'], + collectionName: json['collectionName'], + name: json['name'], + userId: json['user'], + created: DateTime.parse(json['created']), + updated: DateTime.parse(json['updated']), + ); + } + + Map toJson() => { + 'id': id, + 'collectionId': collectionId, + 'collectionName': collectionName, + 'name': name, + 'user': userId, + 'created': created.toIso8601String(), + 'updated': updated.toIso8601String(), + }; +} diff --git a/lib/features/playlist/types/playlist_item.dart b/lib/features/playlist/types/playlist_item.dart new file mode 100644 index 0000000..0df2e81 --- /dev/null +++ b/lib/features/playlist/types/playlist_item.dart @@ -0,0 +1,49 @@ +class PlaylistItem { + final String id; + final String collectionId; + final String collectionName; + final String playlistId; + final String libraryId; + final Map item; + final String itemId; + final DateTime created; + final DateTime updated; + + PlaylistItem({ + required this.id, + required this.collectionId, + required this.collectionName, + required this.playlistId, + required this.libraryId, + required this.item, + required this.itemId, + required this.created, + required this.updated, + }); + + factory PlaylistItem.fromJson(Map json) { + return PlaylistItem( + id: json['id'], + collectionId: json['collectionId'], + collectionName: json['collectionName'], + playlistId: json['playlist'], + libraryId: json['library'], + item: json['item'], + itemId: json['item_id'], + created: DateTime.parse(json['created']), + updated: DateTime.parse(json['updated']), + ); + } + + Map toJson() => { + 'id': id, + 'collectionId': collectionId, + 'collectionName': collectionName, + 'playlist': playlistId, + 'library': libraryId, + 'item': item, + 'item_id': itemId, + 'created': created.toIso8601String(), + 'updated': updated.toIso8601String(), + }; +} diff --git a/lib/features/settings/navigation/account_navigation.dart b/lib/features/settings/navigation/account_navigation.dart new file mode 100644 index 0000000..debcc41 --- /dev/null +++ b/lib/features/settings/navigation/account_navigation.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +import '../screen/email_settings_screen.dart'; +import '../screen/help_screen.dart'; +import '../screen/notification_screen.dart'; +import '../screen/payment_screen.dart'; +import '../screen/profile_setting.dart'; +import '../screen/security_screen.dart'; + +class AccountNavigation { + static void navigateToProfile(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ProfileScreen()), + ); + } + + static void navigateToEmailSettings(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const EmailSettingsScreen()), + ); + } + + static void navigateToSecurity(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const SecurityScreen()), + ); + } + + static void navigateToNotifications(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const NotificationsScreen()), + ); + } + + static void navigateToPayments(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const PaymentScreen()), + ); + } + + static void navigateToHelp(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const HelpScreen()), + ); + } +} diff --git a/lib/features/settings/screen/account_screen.dart b/lib/features/settings/screen/account_screen.dart new file mode 100644 index 0000000..57ea65a --- /dev/null +++ b/lib/features/settings/screen/account_screen.dart @@ -0,0 +1,89 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/settings/screen/profile_button.dart'; + +import '../../../engine/engine.dart'; +import '../navigation/account_navigation.dart'; + +class AccountScreen extends StatelessWidget { + const AccountScreen({super.key}); + + Widget _buildDivider() { + return const Divider(height: 1, thickness: 1); + } + + Widget _buildSectionHeader(String title) { + return Padding( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 8), + child: Text( + title, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + color: Colors.grey, + ), + ), + ); + } + + AppEngine get engine => AppEngine.engine; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + title: const Text('My Account'), + elevation: 0, + ), + body: Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 600, + ), + child: ListView( + children: [ + ProfileButton(), + _buildDivider(), + _buildSectionHeader('ACCOUNT SETTINGS'), + ListTile( + leading: const Icon(Icons.email), + title: const Text('Email Settings'), + subtitle: const Text('Manage your email preferences'), + onTap: () => AccountNavigation.navigateToEmailSettings(context), + ), + _buildDivider(), + ListTile( + leading: const Icon(Icons.security), + title: const Text('Security'), + subtitle: const Text('Password and security settings'), + onTap: () => AccountNavigation.navigateToSecurity(context), + ), + _buildDivider(), + ListTile( + leading: const Icon(Icons.notifications), + title: const Text('Notifications'), + subtitle: const Text('Manage notification preferences'), + onTap: () => AccountNavigation.navigateToNotifications(context), + ), + _buildSectionHeader('PAYMENT'), + ListTile( + leading: const Icon(Icons.payment), + title: const Text('Payment Methods'), + subtitle: const Text('Manage your payment options'), + onTap: () => AccountNavigation.navigateToPayments(context), + ), + _buildSectionHeader('SUPPORT'), + ListTile( + leading: const Icon(Icons.help), + title: const Text('Help Center'), + subtitle: const Text('Get help and contact support'), + onTap: () => AccountNavigation.navigateToHelp(context), + ), + const SizedBox(height: 32), + ], + ), + ), + ), + ); + } +} diff --git a/lib/features/settings/screen/connection_screen.dart b/lib/features/settings/screen/connection_screen.dart new file mode 100644 index 0000000..837f460 --- /dev/null +++ b/lib/features/settings/screen/connection_screen.dart @@ -0,0 +1,111 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:madari_client/features/connection/containers/connection_manager.dart'; +import 'package:madari_client/features/connection/containers/create_new_connection.dart'; +import 'package:madari_client/features/connection/containers/show_handle_connection_type.dart'; +import 'package:madari_client/features/library/containers/connection_list.dart'; +import 'package:madari_client/features/library/screen/create_new_library.dart'; + +import '../../../engine/connection.dart'; + +class ConnectionsScreen extends StatefulWidget { + const ConnectionsScreen({super.key}); + + @override + State createState() => _ConnectionsScreenState(); +} + +class _ConnectionsScreenState extends State { + final scaffoldState = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (BuildContext context, WidgetRef ref, Widget? child) { + return Scaffold( + key: scaffoldState, + appBar: AppBar( + title: const Text("My Connections"), + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: () { + showModalBottomSheet( + context: context, + isScrollControlled: true, + isDismissible: true, + builder: (context) { + return CreateNewConnection( + onCallback: (item) { + Navigator.of(context).pop(); + + showModalBottomSheet( + context: context, + isScrollControlled: true, + isDismissible: true, + builder: (context) { + return Scaffold( + body: ShowHandleConnectionType( + item: item, + onFinish: (item) async { + Navigator.of(context).pop(); + ref.refresh(getConnectionsProvider); + + if (context.mounted) { + showCupertinoModalPopup( + context: context, + builder: (ctx) { + onCreated() { + Navigator.of(ctx).pop(); + } + + return CreateNewLibrary( + onCreatedAnother: () {}, + item: item, + onCreated: () { + onCreated(); + }, + ); + }, + ); + } + }, + ), + ); + }, + ); + }, + ); + }, + ); + }, + icon: const Icon(Icons.add), + label: const Text( + "New connection", + ), + ), + body: Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 600, + ), + child: ConnectionList( + shrinkWrap: false, + canDisconnect: true, + onTap: (item) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (ctx) => ConnectionManager( + item: item, + ), + ), + ); + }, + ), + ), + ), + ); + }, + ); + } +} diff --git a/lib/features/settings/screen/email_settings_screen.dart b/lib/features/settings/screen/email_settings_screen.dart new file mode 100644 index 0000000..40c7198 --- /dev/null +++ b/lib/features/settings/screen/email_settings_screen.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; + +class EmailSettingsScreen extends StatefulWidget { + const EmailSettingsScreen({super.key}); + + @override + State createState() => _EmailSettingsScreenState(); +} + +class _EmailSettingsScreenState extends State { + bool marketingEmails = true; + bool newsLetters = true; + bool accountAlerts = true; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Email Settings'), + ), + body: ListView( + children: [ + SwitchListTile( + title: const Text('Marketing Emails'), + subtitle: const Text('Receive promotional offers and updates'), + value: marketingEmails, + onChanged: (bool value) { + setState(() { + marketingEmails = value; + }); + }, + ), + SwitchListTile( + title: const Text('Newsletters'), + subtitle: const Text('Receive weekly newsletters'), + value: newsLetters, + onChanged: (bool value) { + setState(() { + newsLetters = value; + }); + }, + ), + SwitchListTile( + title: const Text('Account Alerts'), + subtitle: const Text('Receive important account notifications'), + value: accountAlerts, + onChanged: (bool value) { + setState(() { + accountAlerts = value; + }); + }, + ), + ], + ), + ); + } +} diff --git a/lib/features/settings/screen/help_screen.dart b/lib/features/settings/screen/help_screen.dart new file mode 100644 index 0000000..c619331 --- /dev/null +++ b/lib/features/settings/screen/help_screen.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; + +class HelpScreen extends StatelessWidget { + const HelpScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Help Center'), + ), + body: ListView( + children: [ + ListTile( + leading: const Icon(Icons.article), + title: const Text('FAQs'), + onTap: () { + // Navigate to FAQs + }, + ), + ListTile( + leading: const Icon(Icons.chat), + title: const Text('Contact Support'), + onTap: () { + // Open chat support + }, + ), + ListTile( + leading: const Icon(Icons.email), + title: const Text('Email Support'), + onTap: () { + // Open email support + }, + ), + ListTile( + leading: const Icon(Icons.phone), + title: const Text('Call Support'), + onTap: () { + // Make support call + }, + ), + const Padding( + padding: EdgeInsets.all(16), + child: Text( + 'Support Hours:\nMonday - Friday: 9:00 AM - 5:00 PM\nWeekends: 10:00 AM - 3:00 PM', + style: TextStyle(color: Colors.grey), + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/settings/screen/notification_screen.dart b/lib/features/settings/screen/notification_screen.dart new file mode 100644 index 0000000..08ba9ce --- /dev/null +++ b/lib/features/settings/screen/notification_screen.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; + +class NotificationsScreen extends StatefulWidget { + const NotificationsScreen({super.key}); + + @override + State createState() => _NotificationsScreenState(); +} + +class _NotificationsScreenState extends State { + bool pushNotifications = true; + bool soundEnabled = true; + bool vibrationEnabled = true; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Notifications'), + ), + body: ListView( + children: [ + SwitchListTile( + title: const Text('Push Notifications'), + subtitle: const Text('Enable push notifications'), + value: pushNotifications, + onChanged: (bool value) { + setState(() { + pushNotifications = value; + }); + }, + ), + SwitchListTile( + title: const Text('Sound'), + subtitle: const Text('Play sound for notifications'), + value: soundEnabled, + onChanged: (bool value) { + setState(() { + soundEnabled = value; + }); + }, + ), + SwitchListTile( + title: const Text('Vibration'), + subtitle: const Text('Vibrate for notifications'), + value: vibrationEnabled, + onChanged: (bool value) { + setState(() { + vibrationEnabled = value; + }); + }, + ), + ], + ), + ); + } +} diff --git a/lib/features/settings/screen/payment_screen.dart b/lib/features/settings/screen/payment_screen.dart new file mode 100644 index 0000000..d33f197 --- /dev/null +++ b/lib/features/settings/screen/payment_screen.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; + +class PaymentScreen extends StatelessWidget { + const PaymentScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Payment Methods'), + ), + body: ListView( + children: [ + ListTile( + leading: const Icon(Icons.add_circle_outline), + title: const Text('Add Payment Method'), + onTap: () { + // Implement add payment method logic + }, + ), + const Divider(), + ListTile( + leading: const Icon(Icons.credit_card), + title: const Text('•••• •••• •••• 1234'), + subtitle: const Text('Expires 12/24'), + trailing: IconButton( + icon: const Icon(Icons.more_vert), + onPressed: () { + // Show card options + }, + ), + ), + ListTile( + leading: const Icon(Icons.payment), + title: const Text('PayPal'), + subtitle: const Text('john.doe@example.com'), + trailing: IconButton( + icon: const Icon(Icons.more_vert), + onPressed: () { + // Show PayPal options + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/settings/screen/playback_settings_screen.dart b/lib/features/settings/screen/playback_settings_screen.dart new file mode 100644 index 0000000..b2c5d72 --- /dev/null +++ b/lib/features/settings/screen/playback_settings_screen.dart @@ -0,0 +1,197 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../../../engine/engine.dart'; +import '../../../utils/load_language.dart'; + +class PlaybackSettingsScreen extends StatefulWidget { + const PlaybackSettingsScreen({super.key}); + + @override + State createState() => _PlaybackSettingsScreenState(); +} + +class _PlaybackSettingsScreenState extends State { + String? _error; + Timer? _saveDebouncer; + + // Playback settings + bool _autoPlay = true; + double _playbackSpeed = 1.0; + String _defaultAudioTrack = 'eng'; + String _defaultSubtitleTrack = 'eng'; + + Map _availableLanguages = {}; + + List> get dropdown => + _availableLanguages.entries.map((item) { + return DropdownMenuItem( + value: item.key, + child: Text(item.value), + ); + }).toList(); + + final PocketBase _engine = AppEngine.engine.pb; + + @override + void initState() { + super.initState(); + + loadLanguages(context).then((data) { + setState(() { + _availableLanguages = data; + }); + }); + _loadPlaybackSettings(); + } + + void _loadPlaybackSettings() { + final playbackConfig = getPlaybackConfig(); + + _autoPlay = playbackConfig.autoPlay ?? true; + _playbackSpeed = playbackConfig.playbackSpeed.toDouble() ?? 1.0; + _defaultAudioTrack = playbackConfig.defaultAudioTrack ?? 'eng'; + _defaultSubtitleTrack = playbackConfig.defaultSubtitleTrack ?? 'eng'; + } + + @override + void dispose() { + _saveDebouncer?.cancel(); + super.dispose(); + } + + void _debouncedSave() { + _saveDebouncer?.cancel(); + _saveDebouncer = + Timer(const Duration(milliseconds: 500), _savePlaybackSettings); + } + + Future _savePlaybackSettings() async { + try { + final user = _engine.authStore.record; + if (user == null) { + throw Exception('User not authenticated'); + } + + final currentConfig = user.data['config'] as Map? ?? {}; + + final updatedConfig = { + ...currentConfig, + 'playback': { + 'autoPlay': _autoPlay, + 'playbackSpeed': _playbackSpeed, + 'defaultAudioTrack': _defaultAudioTrack, + 'defaultSubtitleTrack': _defaultSubtitleTrack, + }, + }; + + await _engine.collection('users').update( + user.id, + body: {'config': updatedConfig}, + ); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Settings saved'), + duration: Duration(seconds: 1), + ), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Failed to save settings: ${e.toString()}')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_error != null) { + return Scaffold( + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(_error!, style: const TextStyle(color: Colors.red)), + ElevatedButton( + onPressed: _loadPlaybackSettings, + child: const Text('Retry'), + ), + ], + ), + ), + ); + } + + return Scaffold( + appBar: AppBar( + title: const Text('Playback Settings'), + ), + body: ListView( + children: [ + SwitchListTile( + title: const Text('Auto-play'), + subtitle: const Text('Automatically play next content'), + value: _autoPlay, + onChanged: (value) { + setState(() => _autoPlay = value); + _debouncedSave(); + }, + ), + ListTile( + title: const Text('Playback Speed'), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Slider( + value: _playbackSpeed, + min: 0.5, + max: 5.0, + divisions: 18, + label: '${_playbackSpeed.toStringAsFixed(2)}x', + onChanged: (value) { + setState(() => _playbackSpeed = + double.parse(value.toStringAsFixed(2))); + _debouncedSave(); + }, + ), + Text('Current: ${_playbackSpeed.toStringAsFixed(2)}x'), + ], + ), + ), + ListTile( + title: const Text('Default Audio Track'), + trailing: DropdownButton( + value: _defaultAudioTrack, + items: dropdown, + onChanged: (value) { + if (value != null) { + setState(() => _defaultAudioTrack = value); + _debouncedSave(); + } + }, + ), + ), + ListTile( + title: const Text('Default Subtitle Track'), + trailing: DropdownButton( + value: _defaultSubtitleTrack, + items: dropdown, + onChanged: (value) { + if (value != null) { + setState(() => _defaultSubtitleTrack = value); + _debouncedSave(); + } + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/settings/screen/profile_button.dart b/lib/features/settings/screen/profile_button.dart new file mode 100644 index 0000000..6c8585f --- /dev/null +++ b/lib/features/settings/screen/profile_button.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; + +import '../navigation/account_navigation.dart'; + +class ProfileButton extends StatelessWidget { + final engine = AppEngine.engine; + + ProfileButton({super.key}); + + @override + Widget build(BuildContext context) { + final record = engine.pb.authStore.record; + + final name = record?.getStringValue("name") ?? ""; + final email = record?.getStringValue("email") ?? ""; + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ListTile( + leading: const CircleAvatar( + child: Icon(Icons.person), + ), + title: Text("$name ($email)"), + subtitle: const Text('View and edit profile'), + onTap: () => AccountNavigation.navigateToProfile(context), + ) + ], + ); + } +} diff --git a/lib/features/settings/screen/profile_setting.dart b/lib/features/settings/screen/profile_setting.dart new file mode 100644 index 0000000..97d5803 --- /dev/null +++ b/lib/features/settings/screen/profile_setting.dart @@ -0,0 +1,223 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../types/user_profile.dart'; + +class ProfileScreen extends StatefulWidget { + const ProfileScreen({super.key}); + + @override + State createState() => _ProfileScreenState(); +} + +class _ProfileScreenState extends State { + PocketBase get pocketBase => AppEngine.engine.pb; + late UserProfile _userProfile; + bool _isLoading = true; + bool _isEditing = false; + + final _formKey = GlobalKey(); + late TextEditingController _nameController; + late TextEditingController _emailController; + + @override + void initState() { + super.initState(); + _loadUserProfile(); + _initializeControllers(); + } + + void _initializeControllers() { + _nameController = TextEditingController(); + _emailController = TextEditingController(); + } + + Future _loadUserProfile() async { + try { + final userId = pocketBase.authStore.record!.id; + final record = await pocketBase.collection('users').getOne(userId); + setState(() { + _userProfile = UserProfile.fromJson(record.toJson()); + _isLoading = false; + _updateControllers(); + }); + } catch (e) { + if (context.mounted && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error loading profile: $e')), + ); + } + } + } + + void _updateControllers() { + _nameController.text = _userProfile.fullName; + _emailController.text = _userProfile.email; + } + + Future _updateProfile() async { + if (!_formKey.currentState!.validate()) return; + + try { + final userId = pocketBase.authStore.record!.id; + final body = { + 'name': _nameController.text, + 'email': _emailController.text, + }; + + await pocketBase.collection('users').update(userId, body: body); + + setState(() { + _userProfile = UserProfile( + id: userId, + fullName: _nameController.text, + email: _emailController.text, + avatar: _userProfile.avatar, + ); + _isEditing = false; + }); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Profile updated successfully')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error updating profile: $e')), + ); + } + } + } + + Future _uploadAvatar() async { + final ImagePicker picker = ImagePicker(); + final XFile? image = await picker.pickImage(source: ImageSource.gallery); + + if (image == null) return; + + try { + final userId = pocketBase.authStore.record!.id; + final file = File(image.path); + + await pocketBase.collection('users').update( + userId, + files: [await MultipartFile.fromPath('avatar', file.path)], + ); + + await _loadUserProfile(); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Avatar updated successfully')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error uploading avatar: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + appBar: AppBar( + title: const Text('Profile Information'), + actions: [ + IconButton( + icon: Icon(_isEditing ? Icons.save : Icons.edit), + onPressed: () { + if (_isEditing) { + _updateProfile(); + } else { + setState(() => _isEditing = true); + } + }, + ), + ], + ), + body: Form( + key: _formKey, + child: ListView( + padding: const EdgeInsets.all(16), + children: [ + GestureDetector( + onTap: _uploadAvatar, + child: CircleAvatar( + radius: 50, + backgroundImage: _userProfile.avatar != null + ? NetworkImage( + '${pocketBase.baseURL}/api/files/users/${_userProfile.id}/${_userProfile.avatar}', + ) + : null, + child: _userProfile.avatar == null + ? const Icon(Icons.person, size: 50) + : null, + ), + ), + const SizedBox(height: 24), + _buildProfileField( + 'Full Name', + _nameController, + Icons.person, + _isEditing, + ), + _buildProfileField( + 'Email', + _emailController, + Icons.email, + _isEditing, + ), + ], + ), + ), + ); + } + + Widget _buildProfileField( + String label, + TextEditingController controller, + IconData icon, + bool isEditing, + ) { + return ListTile( + leading: Icon(icon), + title: Text(label), + subtitle: isEditing + ? TextFormField( + controller: controller, + decoration: const InputDecoration( + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter $label'; + } + return null; + }, + ) + : Text(controller.text), + ); + } + + @override + void dispose() { + _nameController.dispose(); + _emailController.dispose(); + super.dispose(); + } +} diff --git a/lib/features/settings/screen/screen_proxy_setting.dart b/lib/features/settings/screen/screen_proxy_setting.dart new file mode 100644 index 0000000..feb2048 --- /dev/null +++ b/lib/features/settings/screen/screen_proxy_setting.dart @@ -0,0 +1,179 @@ +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class ScreenProxySetting extends StatefulWidget { + const ScreenProxySetting({super.key}); + + @override + State createState() => _ScreenProxySettingState(); +} + +class _ScreenProxySettingState extends State { + final PocketBase pb = AppEngine.engine.pb; + + late Future> _collectionItems; + + RecordService get collection => pb.collection("proxy_setting"); + + @override + void initState() { + super.initState(); + _collectionItems = collection.getList(); + } + + void _showAddProxySheet(BuildContext context) { + final nameController = TextEditingController(); + final urlController = TextEditingController(); + final passwordController = TextEditingController(); + + showModalBottomSheet( + context: context, + isScrollControlled: true, + builder: (ctx) => DraggableScrollableSheet( + expand: false, + builder: (BuildContext context, ScrollController scrollController) { + return Padding( + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).viewInsets.bottom, + left: 16, + right: 16, + top: 16, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: nameController, + decoration: const InputDecoration(labelText: 'Name'), + ), + const SizedBox(height: 8), + TextField( + controller: urlController, + decoration: const InputDecoration(labelText: 'URL'), + ), + const SizedBox(height: 8), + TextField( + controller: passwordController, + decoration: const InputDecoration(labelText: 'Password'), + obscureText: true, + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () async { + try { + final url = urlController.text.endsWith("/") + ? urlController.text.substring(0, -1) + : urlController.text; + + final result = await http.get( + Uri.parse( + "$url/proxy/ip?api_password=${Uri.encodeQueryComponent(passwordController.text)}", + ), + ); + + if (result.statusCode == 403) { + return; + } + + if (result.statusCode != 200) { + throw Error(); + } + + await collection.create(body: { + 'name': nameController.text, + 'url': url, + 'password': passwordController.text, + 'user': AppEngine.engine.pb.authStore.record!.id, + }); + + setState(() { + _collectionItems = collection.getList(); + }); + + if (context.mounted) { + Navigator.pop(context); + _collectionItems = collection.getList(); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Error: ${(e is ClientException) ? e.response[e.response.keys.first] : e}')), + ); + } + } + }, + child: const Text('Add Proxy'), + ), + const SizedBox(height: 16), + ], + ), + ); + }, + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Proxy Settings'), + ), + body: FutureBuilder>( + future: _collectionItems, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + + if (!snapshot.hasData) { + return const Center(child: CircularProgressIndicator()); + } + + final items = snapshot.data!.items; + + return ListView.builder( + itemCount: items.length, + itemBuilder: (context, index) { + final item = items[index]; + return ListTile( + title: Text(item.data['name']), + subtitle: Text(item.data['url']), + trailing: IconButton( + icon: const Icon(Icons.delete), + onPressed: () async { + try { + await collection.delete(item.id); + setState(() { + _collectionItems = collection.getList(); + }); + if (context.mounted && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Proxy deleted')), + ); + } + } catch (e) { + if (mounted && context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } + }, + ), + ); + }, + ); + }, + ), + floatingActionButton: FloatingActionButton( + onPressed: () => _showAddProxySheet(context), + child: const Icon(Icons.add), + ), + ); + } +} diff --git a/lib/features/settings/screen/security_screen.dart b/lib/features/settings/screen/security_screen.dart new file mode 100644 index 0000000..c101d94 --- /dev/null +++ b/lib/features/settings/screen/security_screen.dart @@ -0,0 +1,250 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class SecurityScreen extends StatefulWidget { + const SecurityScreen({super.key}); + + @override + State createState() => _SecurityScreenState(); +} + +class _SecurityScreenState extends State { + Future _showChangePasswordDialog() async { + return showDialog( + context: context, + builder: (context) => const ChangeDialog(), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Security'), + ), + body: ListView( + children: [ + ListTile( + leading: const Icon(Icons.lock), + title: const Text('Change Password'), + subtitle: const Text('Update your account password'), + onTap: _showChangePasswordDialog, + ), + const Divider(), + const ListTile( + leading: Icon(Icons.security), + title: Text('Two-Factor Authentication'), + subtitle: Text('Coming soon'), + enabled: false, + ), + const Divider(), + const ListTile( + leading: Icon(Icons.history), + title: Text('Login History'), + subtitle: Text('Coming soon'), + enabled: false, + ), + ], + ), + ); + } +} + +class ChangeDialog extends StatefulWidget { + const ChangeDialog({ + super.key, + }); + + @override + State createState() => _ChangeDialogState(); +} + +class _ChangeDialogState extends State { + @override + void dispose() { + _currentPasswordController.dispose(); + _newPasswordController.dispose(); + _confirmPasswordController.dispose(); + super.dispose(); + } + + PocketBase get pocketBase => AppEngine.engine.pb; + final _formKey = GlobalKey(); + final _currentPasswordController = TextEditingController(); + final _newPasswordController = TextEditingController(); + final _confirmPasswordController = TextEditingController(); + bool _isLoading = false; + bool _obscureCurrentPassword = true; + bool _obscureNewPassword = true; + bool _obscureConfirmPassword = true; + + Future _changePassword() async { + if (!_formKey.currentState!.validate()) return; + + setState(() => _isLoading = true); + + try { + final userId = pocketBase.authStore.record!.id; + + // First verify the current password + await pocketBase.collection('users').authWithPassword( + pocketBase.authStore.record!.getStringValue("email"), + _currentPasswordController.text, + ); + + // If verification successful, update the password + await pocketBase.collection('users').update( + userId, + body: { + 'password': _newPasswordController.text, + 'passwordConfirm': _confirmPasswordController.text, + }, + ); + + // Clear the form + _currentPasswordController.clear(); + _newPasswordController.clear(); + _confirmPasswordController.clear(); + + // Close the dialog + if (mounted) Navigator.pop(context); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Password changed successfully'), + backgroundColor: Colors.green, + ), + ); + } + } catch (e) { + if (context.mounted && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Error: ${e.toString()}'), + backgroundColor: Colors.red, + ), + ); + } + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: const Text('Change Password'), + content: Form( + key: _formKey, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextFormField( + controller: _currentPasswordController, + obscureText: _obscureCurrentPassword, + decoration: InputDecoration( + labelText: 'Current Password', + suffixIcon: IconButton( + icon: Icon( + _obscureCurrentPassword + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + _obscureCurrentPassword = !_obscureCurrentPassword; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your current password'; + } + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _newPasswordController, + obscureText: _obscureNewPassword, + decoration: InputDecoration( + labelText: 'New Password', + suffixIcon: IconButton( + icon: Icon( + _obscureNewPassword + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + _obscureNewPassword = !_obscureNewPassword; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter a new password'; + } + if (value.length < 8) { + return 'Password must be at least 8 characters'; + } + return null; + }, + ), + const SizedBox(height: 16), + TextFormField( + controller: _confirmPasswordController, + obscureText: _obscureConfirmPassword, + decoration: InputDecoration( + labelText: 'Confirm New Password', + suffixIcon: IconButton( + icon: Icon( + _obscureConfirmPassword + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + _obscureConfirmPassword = !_obscureConfirmPassword; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please confirm your new password'; + } + if (value != _newPasswordController.text) { + return 'Passwords do not match'; + } + return null; + }, + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text('Cancel'), + ), + ElevatedButton( + onPressed: _isLoading ? null : _changePassword, + child: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Change Password'), + ), + ], + ); + } +} diff --git a/lib/features/settings/types/connection.dart b/lib/features/settings/types/connection.dart new file mode 100644 index 0000000..9fdc4c2 --- /dev/null +++ b/lib/features/settings/types/connection.dart @@ -0,0 +1,38 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:pocketbase/pocketbase.dart'; + +part 'connection.g.dart'; + +@JsonSerializable() +class Connection { + final String id; + final String title; + final String type; + final dynamic config; + + const Connection({ + required this.id, + required this.title, + required this.type, + required this.config, + }); + + factory Connection.fromJson(Map json) => + _$ConnectionFromJson(json); + + factory Connection.fromRecord(RecordModel record) => Connection.fromJson( + record.toJson(), + ); + + Map toJson() => _$ConnectionToJson(this); +} + +class ConnectionType { + final String id; + final String title; + + ConnectionType({ + required this.id, + required this.title, + }); +} diff --git a/lib/features/settings/types/user_profile.dart b/lib/features/settings/types/user_profile.dart new file mode 100644 index 0000000..ca47fde --- /dev/null +++ b/lib/features/settings/types/user_profile.dart @@ -0,0 +1,30 @@ +class UserProfile { + final String id; + String fullName; + String email; + String? avatar; + + UserProfile({ + required this.id, + required this.fullName, + required this.email, + this.avatar, + }); + + factory UserProfile.fromJson(Map json) { + return UserProfile( + id: json['id'], + fullName: json['name'] ?? '', + email: json['email'] ?? '', + avatar: json['avatar'], + ); + } + + Map toJson() { + return { + 'fullName': fullName, + 'email': email, + if (avatar != null) 'avatar': avatar, + }; + } +} diff --git a/lib/features/watch_history/service/base_watch_history.dart b/lib/features/watch_history/service/base_watch_history.dart new file mode 100644 index 0000000..0bfbc51 --- /dev/null +++ b/lib/features/watch_history/service/base_watch_history.dart @@ -0,0 +1,46 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'base_watch_history.g.dart'; + +abstract class BaseWatchHistory { + Future> getItemWatchHistory({ + required List ids, + }); + Future saveWatchHistory({ + required WatchHistory history, + }); +} + +class WatchHistoryGetRequest { + final String id; + final String? season; + final String? episode; + + WatchHistoryGetRequest({ + required this.id, + this.season, + this.episode, + }); +} + +@JsonSerializable() +class WatchHistory { + String id; + final String? season; + final String? episode; + final int progress; + final double duration; + + WatchHistory({ + required this.id, + this.season, + this.episode, + required this.progress, + required this.duration, + }); + + Map? toJson() => _$WatchHistoryToJson(this); + + factory WatchHistory.fromJson(Map json) => + _$WatchHistoryFromJson(json); +} diff --git a/lib/features/watch_history/service/zeee_watch_history.dart b/lib/features/watch_history/service/zeee_watch_history.dart new file mode 100644 index 0000000..e40e46e --- /dev/null +++ b/lib/features/watch_history/service/zeee_watch_history.dart @@ -0,0 +1,253 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:crypto/crypto.dart'; +import 'package:drift/drift.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/watch_history/service/base_watch_history.dart'; +import 'package:pocketbase/src/auth_store.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../../database/app_database.dart'; + +String calculateSha1(String input) { + // Convert the input string to UTF-8 bytes + List bytes = utf8.encode(input); + + // Create a SHA-256 digest + Digest digest = sha1.convert(bytes); + + // Convert the digest to a hexadecimal string + return digest.toString(); +} + +class ZeeeWatchHistoryStatic { + static ZeeeWatchHistory? service; +} + +class ZeeeWatchHistory extends BaseWatchHistory { + final http = AppEngine.engine.pb.httpClientFactory(); + Timer? _syncTimer; + static const _lastSyncTimeKey = 'watch_history_last_sync_time'; + final _prefs = SharedPreferences.getInstance(); + + late final StreamSubscription _listener; + + Future clear() async { + (await _prefs).remove(_lastSyncTimeKey); + } + + ZeeeWatchHistory() { + _listener = AppEngine.engine.pb.authStore.onChange.listen((auth) { + _initializeFromServer().then((docs) { + if (_syncTimer != null) { + _syncTimer!.cancel(); + } + // Start periodic sync + _syncTimer = Timer.periodic( + const Duration( + seconds: 60, + ), + (_) => _syncWithServer(), + ); + }); + }); + } + + Future _initializeFromServer() async { + if (!AppEngine.engine.pb.authStore.isValid) { + return; + } + + final db = AppEngine.engine.database; + final collection = AppEngine.engine.pb.collection("watch_history"); + + try { + final lastSyncTime = (await _prefs).getString(_lastSyncTimeKey); + DateTime? lastSync; + if (lastSyncTime != null) { + lastSync = DateTime.tryParse(lastSyncTime); + } + + int page = 1; + const perPage = 50; + bool hasMore = true; + final filter = lastSync != null + ? 'user = "${AppEngine.engine.pb.authStore.record!.id}" && updated >= "${lastSync.toIso8601String()}"' + : 'user = "${AppEngine.engine.pb.authStore.record!.id}"'; + + while (hasMore) { + final records = await collection.getList( + page: page, + perPage: perPage, + filter: filter, + sort: '-updated', // Changed to sort by most recent first + ); + + if (records.items.isEmpty) { + break; + } + + for (final record in records.items) { + // Check if local record exists and compare timestamps + final localRecord = await db.watchHistoryQueries + .getWatchHistoryById(record.data['id']); + final serverUpdatedAt = DateTime.parse(record.updated); + + if (localRecord == null || + (localRecord.updatedAt.isBefore(serverUpdatedAt) && + (localRecord.lastSyncedAt == null || + localRecord.lastSyncedAt!.isBefore(serverUpdatedAt)))) { + await db.watchHistoryQueries.insertOrUpdateWatchHistory( + WatchHistoryTableCompanion.insert( + id: record.data['id'], + originalId: record.data['originalId'], + progress: Value(record.data['progress']), + duration: Value( + record.data['duration'] is double + ? record.data['duration'] + : (record.data['duration'] as int).toDouble(), + ), + season: Value(record.data['season']), + episode: Value(record.data['episode']), + updatedAt: serverUpdatedAt, + lastSyncedAt: Value(DateTime.now()), + ), + ); + } + } + + hasMore = records.items.length >= perPage; + page++; + } + + // Update last sync time + await (await _prefs).setString( + _lastSyncTimeKey, + DateTime.now().toIso8601String(), + ); + } catch (e, stack) { + print('Failed to initialize watch history from server: $e'); + print(stack); + } + } + + @override + Future> getItemWatchHistory({ + required List ids, + }) async { + final db = AppEngine.engine.database; + + final idsMapped = ids.map((item) { + final ids = + "${Uri.encodeComponent(item.id)}:${Uri.encodeComponent(item.season ?? "")}:${Uri.encodeComponent(item.episode ?? "")}"; + return [item, calculateSha1(ids)]; + }).toList(); + + final records = await db.watchHistoryQueries.getWatchHistoryByIds( + idsMapped.map((item) => item[1] as String).toList(), + ); + + return records.map((record) { + final history = WatchHistory( + id: record.originalId, + progress: record.progress, + duration: record.duration, + season: record.season, + episode: record.episode, + ); + return history; + }).toList(); + } + + @override + Future saveWatchHistory({ + required WatchHistory history, + }) async { + final db = AppEngine.engine.database; + final ids = + "${Uri.encodeComponent(history.id)}:${Uri.encodeComponent(history.season ?? "")}:${Uri.encodeComponent(history.episode ?? "")}"; + final documentId = calculateSha1(ids); + + await db.watchHistoryQueries.insertOrUpdateWatchHistory( + WatchHistoryTableCompanion.insert( + id: documentId, + originalId: history.id, + progress: Value(history.progress), + duration: Value(history.duration), + season: Value(history.season), + episode: Value(history.episode), + updatedAt: DateTime.now(), + ), + ); + } + + Future _syncWithServer() async { + final db = AppEngine.engine.database; + if (!AppEngine.engine.pb.authStore.isValid) { + return; + } + + final unsynced = await db.watchHistoryQueries.getUnsyncedRecords(); + final collection = AppEngine.engine.pb.collection("watch_history"); + + for (final record in unsynced) { + try { + // Check server record before updating + try { + final serverRecord = await collection.getOne(record.id); + final serverUpdatedAt = + DateTime.parse(serverRecord.get('updated')); + + // Skip if server has newer data + if (record.updatedAt.isBefore(serverUpdatedAt)) { + await db.watchHistoryQueries.updateSyncStatus( + record.id, + DateTime.now(), + ); + continue; + } + } catch (e) { + // Record doesn't exist on server, will create new + } + + if (record.lastSyncedAt == null) { + await collection.create( + body: { + 'id': record.id, + 'originalId': record.originalId, + 'progress': record.progress, + 'duration': record.duration, + 'season': record.season, + 'episode': record.episode, + 'user': AppEngine.engine.pb.authStore.record!.id, + 'updated': record.updatedAt.toIso8601String(), + }, + ); + } else { + await collection.update( + record.id, + body: { + 'progress': record.progress, + 'duration': record.duration, + 'updated': record.updatedAt.toIso8601String(), + }, + ); + } + + await db.watchHistoryQueries.updateSyncStatus( + record.id, + DateTime.now(), + ); + } catch (e, stack) { + print('Failed to sync record ${record.id}: $e'); + print(stack); + } + } + } + + void dispose() { + _syncTimer?.cancel(); + _listener.cancel(); + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..5d00f95 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,157 @@ +import 'dart:io'; + +import 'package:cached_query_flutter/cached_query_flutter.dart'; +import 'package:cached_storage/cached_storage.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/doc_viewer/container/doc_viewer.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; +import 'package:madari_client/routes.dart'; +import 'package:media_kit/media_kit.dart'; +import 'package:path/path.dart' as path; +import 'package:window_manager/window_manager.dart'; + +import 'features/doc_viewer/container/iframe.dart'; +import 'features/downloads/service/service.dart'; +import 'features/watch_history/service/zeee_watch_history.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + try { + await dotenv.load(fileName: ".env"); + } catch (e) { + print("Unable"); + } + + try { + CachedQuery.instance.configFlutter( + storage: await CachedStorage.ensureInitialized(), + config: QueryConfigFlutter( + refetchDuration: const Duration(minutes: 60), + cacheDuration: const Duration(minutes: 60), + ), + ); + } catch (e) { + print("Unable initialize cache"); + } + + MediaKit.ensureInitialized(); + + AdblockList.str = await rootBundle.loadString("assets/adblock_list.txt"); + + if (Platform.isLinux || Platform.isWindows || Platform.isMacOS) { + await windowManager.ensureInitialized(); + } + + await AppEngine.ensureInitialized(); + + SystemChrome.setEnabledSystemUIMode( + SystemUiMode.edgeToEdge, + overlays: [], + ); + + final pb = AppEngine.engine.pb; + final userCollection = pb.collection("users"); + + if (pb.authStore.isValid) { + try { + final user = await userCollection.getOne( + AppEngine.engine.pb.authStore.record!.id, + ); + pb.authStore.save(pb.authStore.token, user); + } catch (e) { + pb.authStore.clear(); + } + } + + runApp( + const ProviderScope( + child: MadariApp(), + ), + ); +} + +class MadariApp extends StatefulWidget { + const MadariApp({super.key}); + + @override + State createState() => _MadariAppState(); +} + +class _MadariAppState extends State { + static const platform = MethodChannel('media.madari.client/file'); + Map? _openedFileData; + late final GoRouter _router; + + @override + void initState() { + DownloadService.instance.initialize(); + ZeeeWatchHistoryStatic.service = ZeeeWatchHistory(); + _initializeFileHandling(); + _router = createRouter(); + super.initState(); + } + + void _initializeFileHandling() { + platform.setMethodCallHandler((call) async { + if (call.method == "openFile") { + // Handle the new file data structure + _openedFileData = call.arguments as Map?; + + if (_openedFileData != null) { + final filePath = _openedFileData!['path'] as String; + + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => DocViewer( + source: FileSource( + title: path.basenameWithoutExtension(filePath), + filePath: filePath, + id: "external", + ), + ), + ), + ); + } + } + }); + } + + @override + void dispose() { + DownloadService.instance.dispose(); + ZeeeWatchHistoryStatic.service?.dispose(); + _router.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return MaterialApp.router( + routerConfig: _router, + title: "Madari", + debugShowCheckedModeBanner: false, // comes in the way of the search + theme: ThemeData( + colorScheme: ColorScheme.fromSeed( + seedColor: Colors.blue, + ), + useMaterial3: true, + ), + darkTheme: _buildTheme(Brightness.dark), + themeMode: ThemeMode.dark, + ); + } +} + +ThemeData _buildTheme(brightness) { + var baseTheme = ThemeData(brightness: brightness); + + return baseTheme.copyWith( + textTheme: GoogleFonts.exo2TextTheme(baseTheme.textTheme), + ); +} diff --git a/lib/main_web.dart b/lib/main_web.dart new file mode 100644 index 0000000..7220cda --- /dev/null +++ b/lib/main_web.dart @@ -0,0 +1,83 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/routes.dart'; +import 'package:media_kit/media_kit.dart'; + +import 'engine/engine.dart'; +import 'features/watch_history/service/zeee_watch_history.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + MediaKit.ensureInitialized(); + await AppEngine.ensureInitialized(); + + final pb = AppEngine.engine.pb; + final userCollection = pb.collection("users"); + + if (pb.authStore.isValid) { + try { + final user = await userCollection.getOne( + AppEngine.engine.pb.authStore.record!.id, + ); + pb.authStore.save(pb.authStore.token, user); + } catch (e) { + pb.authStore.clear(); + } + } + + runApp( + const ProviderScope( + child: MadariApp(), + ), + ); +} + +class MadariApp extends StatefulWidget { + const MadariApp({super.key}); + + @override + State createState() => _MadariAppState(); +} + +class _MadariAppState extends State { + late final GoRouter _router; + + @override + void initState() { + ZeeeWatchHistoryStatic.service = ZeeeWatchHistory(); + _router = createRouter(); + super.initState(); + } + + @override + void dispose() { + ZeeeWatchHistoryStatic.service?.dispose(); + _router.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return MaterialApp.router( + routerConfig: _router, + title: "Madari", + debugShowCheckedModeBanner: false, // comes in the way of the search + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue), + useMaterial3: true, + ), + darkTheme: _buildTheme(Brightness.dark), + themeMode: ThemeMode.dark, + ); + } +} + +ThemeData _buildTheme(brightness) { + var baseTheme = ThemeData(brightness: brightness); + + return baseTheme.copyWith( + textTheme: GoogleFonts.exo2TextTheme(baseTheme.textTheme), + ); +} diff --git a/lib/pages/category.page.dart b/lib/pages/category.page.dart new file mode 100644 index 0000000..790ca73 --- /dev/null +++ b/lib/pages/category.page.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/connections/types/base/base.dart'; + +import '../utils/grid.dart'; + +class CategoryPage extends StatelessWidget { + final LibraryRecord item; + + const CategoryPage({ + super.key, + required this.item, + required List filters, + }); + + @override + Widget build(BuildContext context) { + return GridView.builder( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: getGridResponsiveColumnCount(context), + mainAxisSpacing: getGridResponsiveSpacing(context), + crossAxisSpacing: getGridResponsiveSpacing(context), + childAspectRatio: 2 / 3, + ), + itemBuilder: (ctx, index) { + return Container(); + }, + ); + } +} diff --git a/lib/pages/chat.container.dart b/lib/pages/chat.container.dart new file mode 100644 index 0000000..46e1853 --- /dev/null +++ b/lib/pages/chat.container.dart @@ -0,0 +1,251 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:http/http.dart' as http; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/chat/container/chat_history.dart'; + +import '../features/chat/container/chat_container.dart'; +import '../utils/stream_base.dart'; + +class ChatScreen extends StatefulWidget { + const ChatScreen({ + super.key, + }); + + @override + State createState() => _ChatScreenState(); +} + +class _ChatScreenState extends State { + final List messages = []; + CancellationToken? _currentCancellationToken; + final ScrollController _scrollController = ScrollController(); + bool _userScrolling = false; + double? _lastScrollPosition; + + @override + void dispose() { + super.dispose(); + + _scrollController.dispose(); + } + + @override + void initState() { + super.initState(); + + // Add scroll listener to detect user interaction + _scrollController.addListener(() { + if (_scrollController.position.userScrollDirection != + ScrollDirection.idle) { + _userScrolling = true; + _lastScrollPosition = _scrollController.position.pixels; + } + }); + } + + void _scrollToBottom() { + // Only auto-scroll if user isn't manually scrolling + if (!_userScrolling) { + Future.delayed(const Duration(milliseconds: 100), () { + if (!mounted) return; + _scrollController.animateTo( + _scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + ); + }); + } + } + + // Add the disclaimer text + final String disclaimerText = + "AI can make mistakes. Consider checking important information."; + + void _clearChat() { + setState(() { + _currentCancellationToken?.cancel(); + messages.clear(); + }); + } + + Future _handleMessageStream({ + required String userMessage, + List? list, + String? actionId, + CancellationToken? cancellationToken, + }) async { + _userScrolling = false; + if (_currentCancellationToken != null) { + _currentCancellationToken!.cancel(); + } + + _currentCancellationToken = cancellationToken ?? CancellationToken(); + + messages.add(ChatMessage( + message: userMessage, + isUser: true, + files: list ?? [], + actionId: actionId, + )); + + final payload = messages.map((item) { + return { + 'role': item.isUser ? 'user' : 'system', + 'content': userMessage, + 'files': item.files, + 'actionId': actionId, + }; + }).toList(); + + messages.add(ChatMessage( + files: list ?? [], + message: '', + isUser: false, + isComplete: false, + cancellationToken: _currentCancellationToken, + )); + + setState(() {}); + + final client = http.Client(); + try { + final request = http.Request( + 'POST', + Uri.parse('${AppEngine.engine.pb.baseURL}/api/v1/chat/completions'), + ); + request.headers.addAll({ + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ${AppEngine.engine.pb.authStore.token}', + }); + request.body = jsonEncode({ + 'messages': payload, + }); + + final response = await getStream(request); + + final stream = response.transform(utf8.decoder); + String currentMessage = ''; + + await for (var chunk in stream) { + if (_currentCancellationToken!.isCancelled) { + client.close(); + return; + } + + // Split the chunk into lines and process each SSE event + for (var line in chunk.split('\n')) { + if (line.trim() == "") { + continue; + } + try { + if (!chunk.startsWith('data: ')) { + continue; + } + + final json = jsonDecode( + line.substring(6), + ); + + final content = json['choices'][0]['delta']['content']; + if (content != null) { + currentMessage += content; + setState(() { + messages.last = ChatMessage( + message: currentMessage, + isUser: false, + isComplete: false, + cancellationToken: _currentCancellationToken, + ); + }); + + _scrollToBottom(); + } + } catch (e) { + print(e); + continue; + } + } + } + + // Mark message as complete + setState(() { + messages.last = ChatMessage( + message: currentMessage, + isUser: false, + isComplete: true, + cancellationToken: null, + ); + }); + } catch (e) { + setState(() { + messages.last = ChatMessage( + message: 'Error: Failed to get response', + isUser: false, + isComplete: true, + cancellationToken: null, + ); + }); + } finally { + client.close(); + _currentCancellationToken = null; + } + } + + final _scafoldKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Scaffold( + key: _scafoldKey, + drawer: const ChatHistory(), + appBar: AppBar( + title: const Text('Chat'), + leading: messages.isEmpty + ? IconButton( + onPressed: () { + _scafoldKey.currentState?.openDrawer(); + }, + icon: const Icon(Icons.menu), + ) + : IconButton( + onPressed: _clearChat, + icon: const Icon( + Icons.arrow_back, + ), + ), + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + elevation: 0, + ), + body: Column( + children: [ + Expanded( + child: ChatContainer( + initialMessages: messages, + onSendMessage: (message, files, action) { + return _handleMessageStream( + userMessage: message, + list: files, + actionId: action, + ); + }, + scrollController: _scrollController, + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + disclaimerText, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Colors.grey, + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/collection_tab.page.dart b/lib/pages/collection_tab.page.dart new file mode 100644 index 0000000..8d9bb71 --- /dev/null +++ b/lib/pages/collection_tab.page.dart @@ -0,0 +1,334 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../features/collection/container/collection_list_item_list.dart'; +import '../features/collection/container/create_new_collection.dart'; +import '../features/collection/widgets/collection_card.dart'; + +class CollectionContainer extends StatefulWidget { + const CollectionContainer({ + super.key, + }); + + @override + State createState() => _CollectionContainerState(); +} + +class _CollectionContainerState extends State { + final PocketBase pb = AppEngine.engine.pb; + bool _isLoading = true; + String? _error; + List _publicCollections = []; + List _personalCollections = []; + + @override + void initState() { + super.initState(); + _fetchCollections(); + } + + Future _deleteCollection(String collectionId) async { + try { + await pb.collection('collection').delete(collectionId); + setState(() { + _personalCollections.removeWhere((item) => item.id == collectionId); + }); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Collection deleted successfully')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to delete collection: ${e.toString()}')), + ); + } + } + } + + Future _fetchCollections() async { + try { + setState(() { + _isLoading = true; + _error = null; + }); + + // Fetch public collections + final publicResult = await pb.collection('collection').getFullList( + filter: 'isPublic = true', + sort: 'order', + ); + + // Fetch personal collections + final personalResult = await pb.collection('collection').getFullList( + filter: 'isPublic = false', + sort: 'order', + ); + + setState(() { + _publicCollections = publicResult + .map((record) => CollectionListModel.fromRecord(record)) + .toList(); + _personalCollections = personalResult + .map((record) => CollectionListModel.fromRecord(record)) + .toList(); + _isLoading = false; + }); + } catch (e) { + setState(() { + _error = 'Failed to load collections: ${e.toString()}'; + _isLoading = false; + }); + } + } + + Future _reorderCollection(int oldIndex, int newIndex) async { + if (oldIndex < newIndex) { + newIndex -= 1; + } + + try { + final item = _personalCollections.removeAt(oldIndex); + _personalCollections.insert(newIndex, item); + + // Update the order in the database + await pb.collection('collection').update( + item.id, + body: {'order': newIndex}, + ); + + setState(() {}); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Failed to reorder: ${e.toString()}')), + ); + // Revert the change + _fetchCollections(); + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + if (_error != null) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(_error!, style: const TextStyle(color: Colors.red)), + ElevatedButton( + onPressed: _fetchCollections, + child: const Text('Retry'), + ), + ], + ), + ); + } + + if (_publicCollections.isEmpty && _personalCollections.isEmpty) { + return const Center( + child: Text('No collections found'), + ); + } + + return Scaffold( + floatingActionButton: FloatingActionButton( + onPressed: _showCreateCollectionSheet, + child: const Icon(Icons.add), + ), + body: Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 1200, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (_publicCollections.isNotEmpty) ...[ + _buildHorizontalView(), + ], + if (_personalCollections.isNotEmpty) ...[ + Expanded(child: _buildDraggableList()), + ], + ], + ), + ), + ), + ); + } + + void _showCreateCollectionSheet() { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Theme.of(context).colorScheme.surface, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + builder: (context) => CreateCollectionBottomSheet( + onCollectionCreated: () { + _fetchCollections(); + }, + ), + ); + } + + Widget _buildHorizontalView() { + final width = MediaQuery.of(context).size.width; + + return Padding( + padding: const EdgeInsets.symmetric(vertical: 24), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + physics: const BouncingScrollPhysics(), + child: Row( + children: _publicCollections + .map( + (collection) => CollectionCard( + collection: collection, + width: min( + width * .85, + 360, + ), + ), + ) + .toList(), + ), + ), + ); + } + + Widget _buildDraggableList() { + return ReorderableListView.builder( + itemCount: _personalCollections.length, + onReorder: _reorderCollection, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + itemBuilder: (context, index) { + final collection = _personalCollections[index]; + + return Dismissible( + key: ValueKey(collection.id), + background: Container( + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(12), + ), + alignment: Alignment.centerRight, + padding: const EdgeInsets.only(right: 16), + child: const Icon( + Icons.delete, + color: Colors.white, + ), + ), + direction: DismissDirection.endToStart, + confirmDismiss: (direction) async { + return await showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm deletion'), + content: const Text( + 'Are you sure you want to delete this collection?'), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(false), + child: const Text('CANCEL'), + ), + TextButton( + onPressed: () => Navigator.of(context).pop(true), + child: const Text('DELETE'), + ), + ], + ); + }, + ); + }, + onDismissed: (direction) { + _deleteCollection(collection.id); + }, + child: ListTile( + contentPadding: const EdgeInsets.all(4), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (ctx) { + return CollectionListItemsScreen( + listId: collection.id, + title: collection.name, + isPublic: collection.isPublic, + ); + }, + ), + ); + }, + leading: Container( + width: 60, + height: 60, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: + collection.background != null && collection.background != "" + ? Image.network( + '${pb.baseURL}/api/files/${collection.collectionId}/${collection.id}/${collection.background}', + width: 60, + height: 60, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) => Icon( + Icons.image_not_supported, + color: Theme.of(context).colorScheme.primary, + size: 30, + ), + ) + : Icon( + Icons.collections, + color: Theme.of(context).colorScheme.primary, + size: 30, + ), + ), + ), + title: Text( + collection.name, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + subtitle: collection.description?.isEmpty == true + ? null + : Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (collection.description != null && + collection.description!.isNotEmpty) + Padding( + padding: const EdgeInsets.only(top: 4), + child: Text( + collection.description!, + style: TextStyle( + color: + Theme.of(context).textTheme.bodySmall?.color, + fontSize: 14, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/pages/download.page.dart b/lib/pages/download.page.dart new file mode 100644 index 0000000..4bbe0f9 --- /dev/null +++ b/lib/pages/download.page.dart @@ -0,0 +1,374 @@ +import 'dart:async'; + +import 'package:background_downloader/background_downloader.dart'; +import 'package:flutter/material.dart'; +import 'package:madari_client/features/doc_viewer/container/doc_viewer.dart'; +import 'package:madari_client/features/doc_viewer/types/doc_source.dart'; + +import '../features/downloads/container/index.dart'; +import '../features/downloads/service/service.dart'; + +class DownloadPage extends StatefulWidget { + static String get routeName => "/downloads"; + + const DownloadPage({super.key}); + + @override + State createState() => _DownloadPageState(); +} + +class _DownloadPageState extends State { + List _downloads = []; + bool _isLoading = true; + final _downloadService = DownloadService.instance; + + StreamSubscription? _cancel; + + @override + void initState() { + super.initState(); + _initializeDownloader(); + } + + @override + dispose() { + _cancel?.cancel(); + super.dispose(); + } + + Future _initializeDownloader() async { + _cancel = _downloadService.updates.listen((update) { + _handleTaskUpdate(update); + }); + + await _refreshDownloads(); + } + + void _handleTaskUpdate(TaskUpdate update) async { + final index = _downloads.indexWhere((record) => + record.task is DownloadTask && + (record.task as DownloadTask).taskId == update.task.taskId); + + if (index != -1) { + _refreshDownloads(); + } + } + + Future _refreshDownloads() async { + final records = await _downloadService.getAllDownloads(); + setState(() { + _downloads = records; + _isLoading = false; + }); + } + + void _showDownloadDialog() { + showDialog( + context: context, + builder: (context) => const DownloadDialog(), + ).then((_) => _refreshDownloads()); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("Downloads"), + ), + floatingActionButton: FloatingActionButton.extended( + onPressed: _showDownloadDialog, + icon: const Icon(Icons.add, color: Colors.white), + label: const Text( + 'New Download', + style: TextStyle(color: Colors.white), + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator(color: Colors.red)) + : Column( + children: [ + const SizedBox( + height: 24, + ), + Expanded( + child: _downloads.isEmpty + ? _buildEmptyState() + : LayoutBuilder( + builder: (context, constraints) { + return Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 800, + ), + child: ListView.builder( + itemCount: _downloads.length, + itemBuilder: (context, index) { + return DownloadItem( + item: _downloads[index], + refreshDownloads: _refreshDownloads, + ); + }, + ), + ), + ); + }, + ), + ), + ], + ), + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.download_done_outlined, size: 64, color: Colors.grey[700]), + const SizedBox(height: 16), + Text( + 'No downloads yet', + style: TextStyle( + color: Colors.grey[500], + fontSize: 16, + ), + ), + ], + ), + ); + } +} + +class DownloadItem extends StatefulWidget { + final TaskRecord item; + final VoidCallback refreshDownloads; + + const DownloadItem({ + super.key, + required this.item, + required this.refreshDownloads, + }); + + @override + State createState() => _DownloadItemState(); +} + +class _DownloadItemState extends State { + final _downloadService = DownloadService.instance; + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return _buildDownloadItem(widget.item); + } + + Widget _buildDownloadItem(TaskRecord record) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + child: Container( + decoration: BoxDecoration( + color: Colors.grey.shade900, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.15), + blurRadius: 12, + offset: const Offset(0, 4), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: () async { + final path = await record.task.filePath(); + + if (context.mounted && mounted) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (ctx) => DocViewer( + source: FileSource( + title: record.task.filename, + filePath: path, + id: record.taskId, + ), + ), + ), + ); + } + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Container( + width: 56, + height: 56, + decoration: BoxDecoration( + color: Colors.grey.shade800, + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.movie_outlined, + color: Colors.white70, + size: 28, + ), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + record.task.displayName == "" + ? record.task.filename + : record.task.displayName, + style: const TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.w600, + letterSpacing: -0.5, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 6), + // Animated status text + AnimatedDefaultTextStyle( + duration: const Duration(milliseconds: 200), + style: TextStyle( + color: _getStatusColor(record.status), + fontSize: 14, + fontWeight: FontWeight.w500, + ), + child: Text( + _getStatusText(record), + overflow: TextOverflow.ellipsis, + maxLines: 1, + ), + ), + ], + ), + ), + _buildDownloadControls(record), + ], + ), + // Animated progress indicator + if (record.status != TaskStatus.complete) + AnimatedContainer( + duration: const Duration(milliseconds: 300), + margin: const EdgeInsets.only(top: 16), + child: ClipRRect( + borderRadius: BorderRadius.circular(4), + child: LinearProgressIndicator( + value: record.progress, + backgroundColor: Colors.grey.shade800, + valueColor: AlwaysStoppedAnimation( + _getProgressColor(record.status), + ), + minHeight: 6, + ), + ), + ), + ], + ), + ), + ), + ), + ), + ), + ); + } + + Widget _buildDownloadControls(TaskRecord record) { + if (record.status == TaskStatus.running) { + return IconButton( + icon: const Icon(Icons.pause, color: Colors.white), + onPressed: () => + _downloadService.pauseDownload(record.task as DownloadTask), + ); + } else if (record.status == TaskStatus.paused) { + return IconButton( + icon: const Icon(Icons.play_arrow, color: Colors.white), + onPressed: () => + _downloadService.resumeDownload(record.task as DownloadTask), + ); + } + return IconButton( + icon: const Icon(Icons.delete_outline, color: Colors.white), + onPressed: () async { + await _downloadService.deleteDownload(record.taskId); + widget.refreshDownloads(); + }, + ); + } + + String _getStatusText(TaskRecord record) { + final expectedSize = record.expectedFileSize; + + try { + final downloadedSize = record.progress * expectedSize; + final sizeText = + '${_formatSize(downloadedSize)} / ${_formatSize(expectedSize.toDouble())}'; + + switch (record.status) { + case TaskStatus.running: + return 'Downloading... ${(record.progress * 100).toStringAsFixed(1)}%'; + case TaskStatus.complete: + return 'Downloaded'; + case TaskStatus.paused: + return 'Paused'; + case TaskStatus.failed: + return 'Failed (${(record.exception)?.description})'; + default: + return '${record.status} ($sizeText)'; + } + } catch (e) { + return '${record.status} ${(record.progress * 100).toStringAsFixed(1)}%'; + } + } +} + +// Add these helper methods +Color _getStatusColor(TaskStatus status) { + switch (status) { + case TaskStatus.running: + return Colors.blue; + case TaskStatus.paused: + return Colors.orange; + case TaskStatus.complete: + return Colors.green; + case TaskStatus.failed: + return Colors.red; + default: + return Colors.grey.shade400; + } +} + +Color _getProgressColor(TaskStatus status) { + switch (status) { + case TaskStatus.running: + return Colors.blue; + case TaskStatus.paused: + return Colors.orange; + default: + return Colors.red; + } +} + +String _formatSize(double bytes) { + final mb = bytes / (1024 * 1024); + return '${mb.toStringAsFixed(2)} MB'; +} diff --git a/lib/pages/getting_started.page.dart b/lib/pages/getting_started.page.dart new file mode 100644 index 0000000..b51b5d3 --- /dev/null +++ b/lib/pages/getting_started.page.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; +import 'package:madari_client/features/getting_started/container/getting_started.dart'; + +class GettingStartedPage extends StatelessWidget { + static String get routeName { + return "/getting-started"; + } + + const GettingStartedPage({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return GettingStartedScreen( + onCallback: () {}, + ); + } +} diff --git a/lib/pages/home.page.dart b/lib/pages/home.page.dart new file mode 100644 index 0000000..ebe28ef --- /dev/null +++ b/lib/pages/home.page.dart @@ -0,0 +1,232 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:pocketbase/pocketbase.dart'; + +import '../engine/engine.dart'; + +class HomePage extends StatefulWidget { + static String get routeName => "/"; + final StatefulNavigationShell navigationShell; + + const HomePage({ + super.key, + required this.navigationShell, + }); + + @override + State createState() => _HomePageState(); +} + +class _HomePageState extends State + with SingleTickerProviderStateMixin { + @override + void didChangeDependencies() { + super.didChangeDependencies(); + } + + DateTime? currentBackPressTime; + bool canPopNow = false; + int requiredSeconds = 2; + + RecordModel? _authUser; + + late List _items; + + void onPopInvoked(bool didPop) { + DateTime now = DateTime.now(); + if (currentBackPressTime == null || + now.difference(currentBackPressTime!) > + Duration(seconds: requiredSeconds)) { + currentBackPressTime = now; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Tap back again to leave"), + duration: Duration(seconds: 2), + ), + ); + Future.delayed( + Duration(seconds: requiredSeconds), + () { + setState(() { + canPopNow = false; + }); + }, + ); + setState(() { + canPopNow = true; + }); + } + } + + @override + void initState() { + super.initState(); + + _authUser = AppEngine.engine.pb.authStore.record; + + _items = NavigationItems.items(_authUser!); + } + + PreferredSizeWidget appBarRef() { + return PreferredSize( + preferredSize: const Size.fromHeight(94), + child: Column( + children: [ + Container( + constraints: const BoxConstraints( + maxWidth: 600, + ), + child: Center( + child: Padding( + padding: const EdgeInsets.only( + top: 16.0, + bottom: 16.0, + ), + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 12), + decoration: BoxDecoration( + color: Colors.grey[900], + borderRadius: BorderRadius.circular(32), + ), + child: NavigationBar( + selectedIndex: widget.navigationShell.currentIndex, + onDestinationSelected: _onDestinationSelected, + backgroundColor: Colors.transparent, + labelBehavior: + NavigationDestinationLabelBehavior.onlyShowSelected, + height: 60, + destinations: _items + .map((item) => NavigationDestination( + icon: Icon(item.icon, color: Colors.white), + label: item.label, + )) + .toList(), + ), + ), + ), + ), + ), + ], + ), + ); + } + + void _onDestinationSelected(int index) { + widget.navigationShell.goBranch(index); + } + + String? get mediaType { + return _authUser?.getStringValue("mode") == "study" ? "study" : "media"; + } + + @override + Widget build(BuildContext context) { + final isDesktop = MediaQuery.of(context).size.width > 800; + final isKeyboardVisible = MediaQuery.of(context).viewInsets.bottom > 0; + + return PopScope( + canPop: canPopNow, + onPopInvokedWithResult: (c, cc) => onPopInvoked(c), + child: Scaffold( + appBar: isDesktop ? appBarRef() : null, + body: Stack( + children: [ + AnimatedPadding( + padding: isKeyboardVisible + ? EdgeInsets.zero + : const EdgeInsets.only(bottom: 52.0), + duration: const Duration(milliseconds: 200), + child: widget.navigationShell, + ), + if (!isDesktop) + AnimatedPositioned( + duration: const Duration(milliseconds: 200), + left: 0, + right: 0, + bottom: isKeyboardVisible ? -100 : 8, + child: SafeArea( + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 12), + decoration: BoxDecoration( + color: Colors.grey[900], + borderRadius: BorderRadius.circular(32), + ), + child: NavigationBar( + selectedIndex: widget.navigationShell.currentIndex, + onDestinationSelected: _onDestinationSelected, + backgroundColor: Colors.transparent, + labelBehavior: + NavigationDestinationLabelBehavior.alwaysHide, + height: 48, + destinations: _items + .map((item) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 2.0, + ), + child: NavigationDestination( + icon: Icon(item.icon, color: Colors.white), + label: item.label, + ), + )) + .toList(), + ), + ), + ), + ), + ], + ), + ), + ); + } +} + +class NavigationItem { + final String route; + final String label; + final IconData icon; + + const NavigationItem({ + required this.route, + required this.label, + required this.icon, + }); +} + +class NavigationItems { + static const home = NavigationItem( + route: 'home', + label: 'Home', + icon: Icons.home, + ); + + static const downloads = NavigationItem( + route: "downloads", + label: "Downloads", + icon: Icons.download, + ); + + static const search = NavigationItem( + route: 'search', + label: 'Search', + icon: Icons.search, + ); + + static const more = NavigationItem( + route: 'settings', + label: 'Settings', + icon: Icons.person_outline, + ); + + static List items(RecordModel auth) { + return [ + home, + search, + if (!kIsWeb) downloads, + more, + ]; + } +} diff --git a/lib/pages/home_tab.page.dart b/lib/pages/home_tab.page.dart new file mode 100644 index 0000000..0ca107a --- /dev/null +++ b/lib/pages/home_tab.page.dart @@ -0,0 +1,222 @@ +import 'package:cached_query_flutter/cached_query_flutter.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/features/connections/service/base_connection_service.dart'; + +import '../features/connections/widget/base/render_library_list.dart'; +import '../features/getting_started/container/getting_started.dart'; + +class HomeTabPage extends StatefulWidget { + final String? search; + final bool hideAppBar; + + static String get routeName => "/"; + + const HomeTabPage({ + super.key, + this.search, + this.hideAppBar = kIsWeb, + }); + + @override + State createState() => _HomeTabPageState(); +} + +class _HomeTabPageState extends State { + final query = Query( + queryFn: () => BaseConnectionService.getLibraries(), + key: [ + "home", + ], + ); + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) { + query.refetch(); + }); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final isDesktop = MediaQuery.of(context).size.width > 800; + + return Scaffold( + appBar: (widget.hideAppBar || isDesktop) || widget.search?.trim() == "" + ? null + : AppBar( + title: Text( + "Madari", + style: GoogleFonts.montserrat(), + ), + ), + body: QueryBuilder( + query: query, + builder: (context, state) { + if (QueryStatus.error == state.status) { + return _buildError(state.error); + } + + final data = state.data; + + if (data == null) { + return const Text("Loading"); + } + + if (data.data.isEmpty) { + return Padding( + padding: const EdgeInsets.only( + bottom: 24, + left: 12, + right: 12, + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: GettingStartedScreen( + onCallback: () { + query.refetch(); + }, + ), + ), + ); + } + + return Padding( + padding: const EdgeInsets.symmetric( + vertical: 8.0, + horizontal: 16.0, + ), + child: ListView.builder( + itemBuilder: (item, index) { + final item = data.data[index]; + + return Container( + margin: const EdgeInsets.only(bottom: 6), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + item.title, + style: theme.textTheme.bodyLarge, + ), + const Spacer(), + SizedBox( + height: 30, + child: TextButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) { + return Scaffold( + appBar: AppBar( + title: Text(item.title), + ), + body: SizedBox( + height: MediaQuery.of(context) + .size + .height - + 96, + child: Padding( + padding: const EdgeInsets.all(10.0), + child: RenderLibraryList( + item: item, + isGrid: true, + filters: [ + if ((widget.search ?? "") + .trim() != + "") + ConnectionFilterItem( + title: "search", + value: widget.search, + ), + ], + ), + ), + ), + ); + }, + ), + ); + }, + child: Text( + "Show more", + style: theme.textTheme.labelMedium?.copyWith( + color: Colors.white70, + ), + ), + ), + ), + ], + ), + const SizedBox( + height: 8, + ), + RenderLibraryList( + item: item, + filters: [ + if ((widget.search ?? "").trim() != "") + ConnectionFilterItem( + title: "search", + value: widget.search, + ), + ], + ), + ], + ), + ); + }, + itemCount: data.data.length, + ), + ); + }, + ), + ); + } + + _buildError(Error? error) { + return Center( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon( + Icons.error_outline, + size: 60, + color: Colors.red, + ), + const SizedBox(height: 16), + Text( + 'Oops! Something went wrong', + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + Text( + error?.toString() ?? 'Failed to load libraries', + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Colors.grey[600], + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 24), + ElevatedButton.icon( + onPressed: () => query.refetch(), + icon: const Icon(Icons.refresh), + label: const Text('Try Again'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/library_view.page.dart b/lib/pages/library_view.page.dart new file mode 100644 index 0000000..7215ba1 --- /dev/null +++ b/lib/pages/library_view.page.dart @@ -0,0 +1,12 @@ +import 'package:flutter/material.dart'; + +class LibraryViewPage extends StatelessWidget { + const LibraryViewPage({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/pages/more_tab.page.dart b/lib/pages/more_tab.page.dart new file mode 100644 index 0000000..0911d80 --- /dev/null +++ b/lib/pages/more_tab.page.dart @@ -0,0 +1,128 @@ +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/features/watch_history/service/zeee_watch_history.dart'; +import 'package:madari_client/pages/getting_started.page.dart'; +import 'package:madari_client/pages/sign_in.page.dart'; + +import '../features/settings/screen/account_screen.dart'; +import '../features/settings/screen/playback_settings_screen.dart'; +import '../features/settings/screen/profile_button.dart'; + +class MoreContainer extends StatelessWidget { + const MoreContainer({super.key}); + + @override + Widget build(BuildContext context) { + return Center( + child: Container( + constraints: const BoxConstraints( + maxWidth: 600, + ), + child: ListView( + children: [ + AppBar( + title: const Text( + "My Account", + ), + ), + ProfileButton(), + _buildListHeader('Account'), + _buildListItem( + context, + icon: Icons.person_outline, + title: 'My Account', + subtitle: 'Manage your profile and preferences', + onTap: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const AccountScreen(), + ), + ), + ), + _buildListItem( + context, + icon: Icons.people_outline, + title: 'My Connections', + subtitle: 'Manage your connected accounts', + onTap: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => Scaffold( + appBar: AppBar(), + body: const Padding( + padding: EdgeInsets.only( + bottom: 24.0, + ), + child: GettingStartedPage(), + ), + ), + ), + ), + ), + _buildListHeader('Settings'), + _buildListItem( + context, + icon: Icons.play_circle_outline, + title: 'Playback Settings', + subtitle: 'Configure your playback preferences', + onTap: () => Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => const PlaybackSettingsScreen(), + ), + ), + ), + _buildListItem( + context, + icon: Icons.logout, + title: "Logout", + onTap: () async { + AppEngine.engine.pb.authStore.clear(); + await ZeeeWatchHistoryStatic.service?.clear(); + + if (context.mounted) { + context.go(SignInPage.routeName); + } + }, + hideTrailing: true, + ), + ], + ), + ), + ); + } + + Widget _buildListHeader(String title) { + return Padding( + padding: const EdgeInsets.fromLTRB(16, 24, 16, 8), + child: Text( + title, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.grey, + ), + ), + ); + } + + Widget _buildListItem( + BuildContext context, { + required IconData icon, + required String title, + String? subtitle, + required VoidCallback onTap, + bool hideTrailing = false, + }) { + return ListTile( + leading: Icon(icon), + title: Text(title), + subtitle: subtitle != null + ? Text( + subtitle, + style: const TextStyle(fontSize: 12), + ) + : null, + trailing: hideTrailing ? null : const Icon(Icons.chevron_right), + onTap: onTap, + ); + } +} diff --git a/lib/pages/search_tab.page.dart b/lib/pages/search_tab.page.dart new file mode 100644 index 0000000..45f8c74 --- /dev/null +++ b/lib/pages/search_tab.page.dart @@ -0,0 +1,242 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +import 'home_tab.page.dart'; + +class SearchPage extends StatefulWidget { + static String get routeName => "/search"; + + const SearchPage({super.key}); + + @override + State createState() => _SearchPageState(); +} + +class _SearchPageState extends State { + final TextEditingController _searchController = TextEditingController(); + String _selectedFilter = 'All'; + Timer? _debounceTimer; + bool _isSearchFocused = false; + final List _filterOptions = ['All', 'Videos', 'PDFs', 'Images']; + String _debouncedSearchTerm = ''; + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + _debounceTimer?.cancel(); + _searchController.dispose(); + super.dispose(); + } + + void _onSearchChanged(String value) { + if (_debounceTimer?.isActive ?? false) _debounceTimer!.cancel(); + _debounceTimer = Timer(const Duration(seconds: 1), () { + setState(() { + _debouncedSearchTerm = value; + }); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: PreferredSize( + preferredSize: const Size(double.infinity, 114), + child: Container( + color: Colors.grey[900], + padding: const EdgeInsets.symmetric( + vertical: 12, + horizontal: 18, + ), + child: SafeArea( + child: Column( + children: [ + Container( + height: 46, + decoration: BoxDecoration( + color: + _isSearchFocused ? Colors.grey[800] : Colors.grey[850], + borderRadius: BorderRadius.circular(12), + ), + child: Focus( + onFocusChange: (hasFocus) { + setState(() => _isSearchFocused = hasFocus); + }, + child: TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: 'Search for videos, PDFs, or images...', + prefixIcon: const Icon( + Icons.search, + ), + suffixIcon: _searchController.text.isNotEmpty + ? IconButton( + icon: const Icon(Icons.clear, size: 20), + color: Colors.grey[400], + onPressed: () { + _searchController.clear(); + setState(() { + _debouncedSearchTerm = ''; + }); + }, + ) + : null, + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + ), + onChanged: _onSearchChanged, + ), + ), + ), + const SizedBox(height: 12), + SizedBox( + height: 32, + child: ListView.separated( + scrollDirection: Axis.horizontal, + itemCount: _filterOptions.length, + separatorBuilder: (context, index) => + const SizedBox(width: 8), + itemBuilder: (context, index) { + final filter = _filterOptions[index]; + final isSelected = _selectedFilter == filter; + return FilterChip( + label: Text( + filter, + ), + visualDensity: VisualDensity.compact, + selected: isSelected, + showCheckmark: false, + onSelected: (bool selected) { + setState(() => _selectedFilter = filter); + }, + ); + }, + ), + ), + ], + ), + ), + ), + ), + body: _debouncedSearchTerm.isEmpty + ? Center( + child: _buildEmptyState(), + ) + : HomeTabPage( + hideAppBar: true, + search: _debouncedSearchTerm, + ), + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.search, + size: 80, + color: Colors.grey[700], + ), + const SizedBox(height: 16), + Text( + 'Search for your favorite content', + style: TextStyle( + fontSize: 18, + color: Colors.grey[500], + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } + + Widget _buildSearchResults() { + return Padding( + padding: const EdgeInsets.all(16.0), + child: GridView.builder( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: MediaQuery.of(context).size.width > 1200 + ? 5 + : MediaQuery.of(context).size.width > 800 + ? 4 + : MediaQuery.of(context).size.width > 600 + ? 3 + : 2, + childAspectRatio: 16 / 9, + crossAxisSpacing: 16, + mainAxisSpacing: 16, + mainAxisExtent: 200, + ), + itemBuilder: (context, index) => _buildResultCard(index), + itemCount: 20, + ), + ); + } + + Widget _buildResultCard(int index) { + return InkWell( + onTap: () {}, + child: Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(4), + ), + child: Column( + children: [ + Expanded( + child: Container( + decoration: BoxDecoration( + color: Colors.grey[900], + borderRadius: BorderRadius.circular(2), + ), + child: Center( + child: Icon( + _selectedFilter == 'PDFs' + ? Icons.picture_as_pdf + : _selectedFilter == 'Videos' + ? Icons.play_circle_filled + : Icons.image, + size: 40, + color: Colors.grey[400], + ), + ), + ), + ), + const SizedBox(height: 8), + Text( + 'Title ${index + 1}', + style: const TextStyle( + color: Colors.white, + fontSize: 14, + fontWeight: FontWeight.w500, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 4), + Text( + '2024 • Category', + style: TextStyle( + color: Colors.grey[400], + fontSize: 12, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/sign_in.page.dart b/lib/pages/sign_in.page.dart new file mode 100644 index 0000000..382c6df --- /dev/null +++ b/lib/pages/sign_in.page.dart @@ -0,0 +1,335 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/pages/home.page.dart'; +import 'package:madari_client/pages/sign_up.page.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class SignInPage extends StatefulWidget { + static String get routeName => "/signin"; + + const SignInPage({ + super.key, + }); + + @override + State createState() => _SignInPageState(); +} + +class _SignInPageState extends State with TickerProviderStateMixin { + final PocketBase pb = AppEngine.engine.pb; + final _formKey = GlobalKey(); + final TextEditingController _usernameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + late AnimationController _backgroundAnimationController; + late Animation _backgroundAnimation; + + final List> _gradients = [ + [Colors.purple.shade800, Colors.blue.shade900], + [Colors.blue.shade900, Colors.teal.shade800], + ]; + + bool _isLoading = false; + String _errorMessage = ''; + bool _obscurePassword = true; + + late StreamSubscription _subscription; + + @override + void dispose() { + _usernameController.dispose(); + _passwordController.dispose(); + _subscription.cancel(); + _backgroundAnimationController.dispose(); + super.dispose(); + } + + @override + void initState() { + super.initState(); + + _subscription = pb.authStore.onChange.listen((data) { + if (data.record != null) { + if (mounted) { + context.go(HomePage.routeName); + } + } + }); + + _backgroundAnimationController = AnimationController( + vsync: this, + duration: const Duration(seconds: 10), + )..repeat(reverse: true); + + _backgroundAnimation = Tween( + begin: 0, + end: 1, + ).animate(_backgroundAnimationController); + } + + Future signIn() async { + if (_formKey.currentState!.validate()) { + setState(() { + _isLoading = true; + _errorMessage = ''; + }); + + try { + await pb.collection("users").authWithPassword( + _usernameController.text.trim(), + _passwordController.text.trim(), + ); + } catch (e) { + setState(() { + _errorMessage = 'Invalid username or password'; + _isLoading = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + final isDesktop = MediaQuery.of(context).size.width > 800; + + return Scaffold( + backgroundColor: Colors.black, + body: Stack( + children: [ + AnimatedContainer( + duration: const Duration(milliseconds: 500), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color.lerp( + _gradients[0][0], + _gradients[1][0], + _backgroundAnimation.value, + )!, + Color.lerp( + _gradients[0][1], + _gradients[1][1], + _backgroundAnimation.value, + )! + ], + ), + ), + ), + SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Container( + constraints: BoxConstraints( + minWidth: 100, + maxWidth: isDesktop ? 400 : double.infinity, + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Logo + Text( + "Madari", + style: GoogleFonts.exo2( + color: Colors.white, + fontSize: 42, + fontWeight: FontWeight.bold, + letterSpacing: 1.5, + ), + ), + const SizedBox(height: 48), + + // Form + Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Username field + _buildTextField( + controller: _usernameController, + hintText: 'Username', + prefixIcon: Icons.person_outline, + autofocus: true, + ), + const SizedBox(height: 16), + + // Password field + _buildTextField( + controller: _passwordController, + hintText: 'Password', + prefixIcon: Icons.lock_outline, + obscureText: _obscurePassword, + suffixIcon: IconButton( + icon: Icon( + _obscurePassword + ? Icons.visibility_off + : Icons.visibility, + color: Colors.white70, + size: 20, + ), + onPressed: () { + setState(() { + _obscurePassword = !_obscurePassword; + }); + }, + ), + ), + const SizedBox(height: 24), + + // Error message + if (_errorMessage.isNotEmpty) + Text( + _errorMessage, + style: GoogleFonts.exo2( + color: Colors.red[300], + fontSize: 14, + ), + textAlign: TextAlign.center, + ), + if (_errorMessage.isNotEmpty) + const SizedBox(height: 24), + + // Sign in button + _buildSignInButton(), + const SizedBox(height: 12), + + // Additional options + _buildTextButton( + 'Sign Up', + onPressed: () { + context.push(SignUpPage.routeName); + }, + ), + ], + ), + ), + ], + ), + ), + ), + ), + ), + ], + ), + ); + } + + Widget _buildTextField({ + required TextEditingController controller, + required String hintText, + required IconData prefixIcon, + bool obscureText = false, + Widget? suffixIcon, + bool autofocus = false, + }) { + return Container( + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: Colors.white.withOpacity(0.1), + width: 1, + ), + ), + child: TextFormField( + controller: controller, + obscureText: obscureText, + autofocus: autofocus, + style: GoogleFonts.exo2( + color: Colors.white, + fontSize: 15, + ), + decoration: InputDecoration( + hintText: hintText, + hintStyle: GoogleFonts.exo2( + color: Colors.white38, + fontSize: 15, + ), + prefixIcon: Icon( + prefixIcon, + color: Colors.white70, + size: 20, + ), + suffixIcon: suffixIcon, + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 16, + ), + ), + validator: (value) { + if (value == null || value.trim().isEmpty) { + return 'Please enter your ${hintText.toLowerCase()}'; + } + return null; + }, + ), + ); + } + + Widget _buildSignInButton() { + return ElevatedButton( + onPressed: _isLoading ? null : signIn, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white, + foregroundColor: Colors.black, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 0, + ), + child: _isLoading + ? const SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(Colors.black), + ), + ) + : Text( + 'Sign In', + style: GoogleFonts.exo2( + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ); + } + + Widget _buildTextButton(String text, {required VoidCallback onPressed}) { + final width = MediaQuery.of(context).size.width; + + return SizedBox( + width: width * .6, + child: OutlinedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.transparent, + foregroundColor: Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric( + vertical: 12, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: Text( + text, + style: GoogleFonts.exo2( + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + ); + } +} diff --git a/lib/pages/sign_up.page.dart b/lib/pages/sign_up.page.dart new file mode 100644 index 0000000..501e37b --- /dev/null +++ b/lib/pages/sign_up.page.dart @@ -0,0 +1,374 @@ +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:pocketbase/pocketbase.dart'; + +class SignUpPage extends StatefulWidget { + static String get routeName => "/signup"; + + const SignUpPage({super.key}); + + @override + State createState() => _SignUpPageState(); +} + +class _SignUpPageState extends State with TickerProviderStateMixin { + final PocketBase pb = AppEngine.engine.pb; + final _formKey = GlobalKey(); + final TextEditingController _usernameController = TextEditingController(); + final TextEditingController _emailController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + final TextEditingController _confirmPasswordController = + TextEditingController(); + + late AnimationController _backgroundAnimationController; + late Animation _backgroundAnimation; + + final List> _gradients = [ + [Colors.purple.shade800, Colors.blue.shade900], + [Colors.blue.shade900, Colors.teal.shade800], + ]; + + @override + void initState() { + super.initState(); + + // Initialize background animation + _backgroundAnimationController = AnimationController( + vsync: this, + duration: const Duration(seconds: 10), + )..repeat(reverse: true); + + _backgroundAnimation = Tween( + begin: 0, + end: 1, + ).animate(_backgroundAnimationController); + } + + bool _isLoading = false; + String _errorMessage = ''; + + @override + void dispose() { + _backgroundAnimationController.dispose(); + _usernameController.dispose(); + _emailController.dispose(); + _passwordController.dispose(); + _confirmPasswordController.dispose(); + super.dispose(); + } + + Future signUp() async { + if (_formKey.currentState!.validate()) { + setState(() { + _isLoading = true; + _errorMessage = ''; + }); + + try { + final body = { + "name": _usernameController.text.trim(), + "email": _emailController.text.trim(), + "password": _passwordController.text.trim(), + "passwordConfirm": _confirmPasswordController.text.trim(), + }; + + await pb.collection("users").create(body: body); + await pb + .collection("users") + .authWithPassword(_emailController.text, _passwordController.text); + + if (mounted) { + context.go("/getting-started"); + } + } catch (e) { + setState(() { + _errorMessage = e.toString().contains('email') + ? 'Email already exists' + : e.toString().contains('username') + ? 'Username already taken' + : 'Failed to create account'; + _isLoading = false; + }); + + print(e); + } + } + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + AnimatedBuilder( + animation: _backgroundAnimation, + builder: (context, child) { + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color.lerp( + _gradients[0][0], + _gradients[1][0], + _backgroundAnimation.value, + )!, + Color.lerp( + _gradients[0][1], + _gradients[1][1], + _backgroundAnimation.value, + )! + ], + ), + ), + ); + }, + ), + Scaffold( + backgroundColor: Colors.transparent, + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Form( + key: _formKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + "Create Account", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 32, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 48), + + // Username TextField + _buildTextField( + autofocus: true, + controller: _usernameController, + hintText: "Name", + prefixIcon: Icons.drive_file_rename_outline, + ), + const SizedBox(height: 16), + + // Email TextField + _buildTextField( + autofocus: true, + controller: _emailController, + hintText: "Email", + prefixIcon: Icons.email_outlined, + validator: (value) { + if (value == null || value.trim().isEmpty) { + return 'Please enter your email'; + } + if (!RegExp(r'^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$') + .hasMatch(value)) { + return 'Please enter a valid email'; + } + return null; + }, + ), + const SizedBox(height: 16), + + _buildTextField( + autofocus: true, + obscureText: true, + controller: _passwordController, + hintText: "Password", + prefixIcon: Icons.password, + ), + + const SizedBox(height: 16), + + _buildTextField( + autofocus: true, + obscureText: true, + controller: _confirmPasswordController, + hintText: "Confirm Password", + prefixIcon: Icons.password, + validator: (value) { + if (value == null || value.trim().isEmpty) { + return 'Please confirm your password'; + } + if (value != _passwordController.text) { + return 'Passwords do not match'; + } + return null; + }, + ), + + const SizedBox(height: 16), + + if (_errorMessage.isNotEmpty) + Padding( + padding: const EdgeInsets.only(bottom: 16), + child: Text( + _errorMessage, + style: const TextStyle( + color: Colors.red, + fontSize: 14, + ), + textAlign: TextAlign.center, + ), + ), + + // Sign Up Button + _buildSignInButton(), + const SizedBox(height: 24), + + // Sign In Link + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'Already have an account?', + style: TextStyle(color: Colors.grey), + ), + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: Text( + 'Sign In', + style: TextStyle( + color: Theme.of(context).primaryIconTheme.color, + ), + ), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ), + ], + ); + } + + Widget _buildTextField({ + required TextEditingController controller, + required String hintText, + required IconData prefixIcon, + bool obscureText = false, + Widget? suffixIcon, + bool autofocus = false, + final FormFieldValidator? validator, + }) { + return Container( + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + border: Border.all( + color: Colors.white.withOpacity(0.1), + width: 1, + ), + ), + child: TextFormField( + controller: controller, + obscureText: obscureText, + autofocus: autofocus, + style: GoogleFonts.exo2( + color: Colors.white, + fontSize: 15, + ), + decoration: InputDecoration( + hintText: hintText, + hintStyle: GoogleFonts.exo2( + color: Colors.white38, + fontSize: 15, + ), + prefixIcon: Icon( + prefixIcon, + color: Colors.white70, + size: 20, + ), + suffixIcon: suffixIcon, + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 16, + ), + ), + validator: validator ?? + (value) { + if (value == null || value.trim().isEmpty) { + return 'Please enter your ${hintText.toLowerCase()}'; + } + return null; + }, + ), + ); + } + + Widget _buildSignInButton() { + return ElevatedButton( + onPressed: _isLoading ? null : signUp, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white, + foregroundColor: Colors.black, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 0, + ), + child: _isLoading + ? const SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(Colors.black), + ), + ) + : Text( + 'Sign Up', + style: GoogleFonts.exo2( + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ); + } + + InputDecoration _buildInputDecoration(String hint, + {bool showVisibilityToggle = false, + bool obscureText = false, + VoidCallback? onVisibilityToggle}) { + return InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Colors.grey), + filled: true, + fillColor: Colors.grey[900], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide.none, + ), + suffixIcon: showVisibilityToggle + ? IconButton( + icon: Icon( + obscureText ? Icons.visibility_off : Icons.visibility, + color: Colors.grey, + ), + onPressed: onVisibilityToggle, + ) + : null, + ); + } +} diff --git a/lib/pages/stremio_item.page.dart b/lib/pages/stremio_item.page.dart new file mode 100644 index 0000000..007eb22 --- /dev/null +++ b/lib/pages/stremio_item.page.dart @@ -0,0 +1,118 @@ +import 'package:cached_query_flutter/cached_query_flutter.dart'; +import 'package:flutter/material.dart'; + +import '../features/connections/service/base_connection_service.dart'; +import '../features/connections/types/stremio/stremio_base.types.dart'; +import '../features/connections/widget/stremio/stremio_item_viewer.dart'; + +class StremioItemPage extends StatefulWidget { + final String type; + final String id; + final Meta? meta; + final String? hero; + final String connection; + final String library; + + const StremioItemPage({ + super.key, + required this.type, + required this.id, + required this.connection, + required this.library, + this.hero, + this.meta, + }); + + @override + State createState() => _StremioItemPageState(); +} + +class _StremioItemPageState extends State { + late Query query = Query( + key: "item${widget.type}${widget.id}", + queryFn: () async { + try { + final result = + await BaseConnectionService.connectionByIdRaw(widget.connection); + final resultFirst = BaseConnectionService.connectionById(result); + final value = await resultFirst.getItemById( + Meta( + type: widget.type, + id: widget.id, + ), + ); + if (value == null) { + return ConnectionRaw( + connectionResponse: result, + item: widget.meta as LibraryItem, + ); + } + + return ConnectionRaw( + item: value, + connectionResponse: result, + ); + } catch (e, stack) { + print(e); + print(stack); + rethrow; + } + }, + ); + + @override + Widget build(BuildContext context) { + return QueryBuilder( + query: query, + builder: (context, state) { + Meta? meta; + + if (state.status == QueryStatus.error) { + return Scaffold( + appBar: AppBar(), + body: Center( + child: Text( + "Something went wrong ${state.error}", + textAlign: TextAlign.center, + ), + ), + ); + } + + if (state.data?.connectionResponse != null && + state.data?.item is Meta) { + meta = state.data?.item as Meta; + } + + return StremioItemViewer( + hero: widget.hero, + meta: meta ?? widget.meta, + original: meta, + library: widget.library, + service: state.data == null + ? null + : BaseConnectionService.connectionById( + state.data!.connectionResponse, + ), + ); + }, + ); + } +} + +class ConnectionRaw { + ConnectionResponse connectionResponse; + LibraryItem item; + + ConnectionRaw({ + required this.connectionResponse, + required this.item, + }); + + toJson() { + return { + "connectionResponse": connectionResponse.toJson(), + "item": item.toJson(), + }; + } +} diff --git a/lib/routes.dart b/lib/routes.dart new file mode 100644 index 0000000..6355c07 --- /dev/null +++ b/lib/routes.dart @@ -0,0 +1,153 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:madari_client/engine/engine.dart'; +import 'package:madari_client/pages/library_view.page.dart'; +import 'package:madari_client/pages/stremio_item.page.dart'; + +import 'features/connections/types/stremio/stremio_base.types.dart'; +import 'pages/download.page.dart'; +import 'pages/getting_started.page.dart'; +import 'pages/home.page.dart'; +import 'pages/home_tab.page.dart'; +import 'pages/more_tab.page.dart'; +import 'pages/search_tab.page.dart'; +import 'pages/sign_in.page.dart'; +import 'pages/sign_up.page.dart'; + +final GlobalKey rootNavigatorKey = GlobalKey(); + +GoRouter createRouter() { + return GoRouter( + navigatorKey: rootNavigatorKey, + initialLocation: '/', + refreshListenable: ValueNotifier(AppEngine.engine.pb.authStore.onChange), + redirect: (context, state) => _routeGuard(context, state), + routes: [ + StatefulShellRoute.indexedStack( + builder: (context, state, navigationShell) { + return HomePage( + navigationShell: navigationShell, + ); + }, + branches: [ + StatefulShellBranch( + navigatorKey: GlobalKey(debugLabel: 'Home'), + routes: [ + GoRoute( + path: HomeTabPage.routeName, + pageBuilder: (context, state) => const NoTransitionPage( + child: HomeTabPage( + hideAppBar: false, + ), + ), + ), + GoRoute( + path: "/library/:libraryId", + builder: (context, state) => const LibraryViewPage(), + ) + ], + ), + StatefulShellBranch( + navigatorKey: GlobalKey(debugLabel: 'Search'), + routes: [ + GoRoute( + path: SearchPage.routeName, + pageBuilder: (context, state) => const NoTransitionPage( + child: SearchPage(), + ), + ), + ], + ), + if (!kIsWeb) + StatefulShellBranch( + navigatorKey: GlobalKey( + debugLabel: 'Downloads', + ), + routes: [ + GoRoute( + path: DownloadPage.routeName, + pageBuilder: (context, state) => const NoTransitionPage( + child: DownloadPage(), + ), + ), + ], + ), + StatefulShellBranch( + navigatorKey: GlobalKey(debugLabel: 'Settings'), + routes: [ + GoRoute( + path: '/settings', + pageBuilder: (context, state) => const NoTransitionPage( + child: MoreContainer(), + ), + ), + ], + ), + ], + ), + GoRoute( + path: "/info/stremio/:connection/:library/:type/:id", + builder: (context, state) { + final params = state.pathParameters; + final meta = state.extra as Meta?; + + return StremioItemPage( + hero: state.uri.queryParameters["hero"], + type: params["type"]!, + id: params["id"]!, + connection: params["connection"]!, + meta: meta, + library: params["library"]!, + ); + }, + ), + GoRoute( + path: "/info/stremio/:connection/:type/:id/stream", + builder: (ctx, state) { + return Container(); + }, + ), + ShellRoute( + parentNavigatorKey: rootNavigatorKey, + routes: [ + GoRoute( + path: GettingStartedPage.routeName, + builder: (context, state) => const GettingStartedPage(), + ), + ], + ), + GoRoute( + path: SignInPage.routeName, + builder: (context, state) => const SignInPage(), + ), + GoRoute( + path: SignUpPage.routeName, + builder: (context, state) => const SignUpPage(), + ), + ], + ); +} + +String? _routeGuard( + BuildContext context, + GoRouterState state, +) { + final isLoggedIn = AppEngine.engine.pb.authStore.isValid; + + final bool isLoggingIn = state.uri.toString() == SignInPage.routeName || + state.uri.toString() == GettingStartedPage.routeName || + state.uri.toString() == SignUpPage.routeName; + + if (!isLoggedIn && !isLoggingIn) { + return AppEngine.engine.pb.authStore.record?.getStringValue("setup") == "" + ? GettingStartedPage.routeName + : SignInPage.routeName; + } + + if (isLoggedIn && isLoggingIn) { + return '/'; + } + + return null; +} diff --git a/lib/utils/grid.dart b/lib/utils/grid.dart new file mode 100644 index 0000000..05b7829 --- /dev/null +++ b/lib/utils/grid.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +double getGridResponsivePadding(BuildContext context) { + final width = MediaQuery.of(context).size.width; + if (width < 600) return 8.0; + if (width < 1200) return 16.0; + return 24.0; +} + +int getGridResponsiveColumnCount(BuildContext context) { + final width = MediaQuery.of(context).size.width; + if (width < 600) return 3; + if (width < 900) return 5; + if (width < 1200) return 5; + if (width < 1800) return 6; + if (width < 2000) return 6; + return 10; +} + +double getGridResponsiveSpacing(BuildContext context) { + final width = MediaQuery.of(context).size.width; + if (width < 600) return 8.0; + if (width < 1200) return 16.0; + return 24.0; +} + +double getGridResponsiveAspectRatio(BuildContext context) { + final width = MediaQuery.of(context).size.width; + if (width < 600) return 1.2; + return 1.5; +} diff --git a/lib/utils/load_language.dart b/lib/utils/load_language.dart new file mode 100644 index 0000000..a27096e --- /dev/null +++ b/lib/utils/load_language.dart @@ -0,0 +1,52 @@ +import 'dart:convert'; + +import 'package:flutter/cupertino.dart'; + +import '../engine/engine.dart'; + +Future> loadLanguages(BuildContext context) async { + final data = await DefaultAssetBundle.of(context) + .loadString("assets/data/languages.json"); + + final result = jsonDecode(data); + + final Map availableLanguages = {}; + + for (final entry in result.entries) { + availableLanguages[(entry as MapEntry).key as String] = + entry.value as String; + } + + return availableLanguages; +} + +PlaybackConfig getPlaybackConfig() { + final user = AppEngine.engine.pb.authStore.record; + if (user == null) { + throw Exception('User not authenticated'); + } + + final config = user.data['config'] as Map? ?? {}; + final playbackConfig = config['playback'] as Map? ?? {}; + + return PlaybackConfig( + autoPlay: playbackConfig['autoPlay'] ?? true, + playbackSpeed: playbackConfig['playbackSpeed']?.toDouble() ?? 1, + defaultAudioTrack: playbackConfig['defaultAudioTrack'] ?? 'eng', + defaultSubtitleTrack: playbackConfig['defaultSubtitleTrack'] ?? 'eng', + ); +} + +class PlaybackConfig { + final bool autoPlay; + final double playbackSpeed; + final String defaultAudioTrack; + final String defaultSubtitleTrack; + + PlaybackConfig({ + required this.autoPlay, + required this.playbackSpeed, + required this.defaultAudioTrack, + required this.defaultSubtitleTrack, + }); +} diff --git a/lib/utils/ocr_file.dart b/lib/utils/ocr_file.dart new file mode 100644 index 0000000..057f756 --- /dev/null +++ b/lib/utils/ocr_file.dart @@ -0,0 +1,33 @@ +import 'dart:io'; + +import 'package:file_picker/file_picker.dart'; + +Future> ocrFiles(List file) async { + List returnValue = []; + + for (var value in file) { + final file = File(value.path!); + + String extension = file.path.split('.').last.toLowerCase(); + + switch (extension) { + case "pdf": + final result = await extractPDF(file); + + returnValue.add(result); + break; + case "png": + case "bpm": + case "jpeg": + case "jpg": + default: + returnValue.add(""); + } + } + + return returnValue; +} + +Future extractPDF(File file) async { + return ""; +} diff --git a/lib/utils/sse_stream.dart b/lib/utils/sse_stream.dart new file mode 100644 index 0000000..cfa77a5 --- /dev/null +++ b/lib/utils/sse_stream.dart @@ -0,0 +1,7 @@ +import 'package:http/http.dart'; + +Future getStream(Request request) async { + final client = Client(); + StreamedResponse response = await client.send(request); + return response.stream; +} diff --git a/lib/utils/sse_stream_stub.dart b/lib/utils/sse_stream_stub.dart new file mode 100644 index 0000000..613744d --- /dev/null +++ b/lib/utils/sse_stream_stub.dart @@ -0,0 +1 @@ +// TODO Implement this library. diff --git a/lib/utils/sse_stream_web.dart b/lib/utils/sse_stream_web.dart new file mode 100644 index 0000000..1a7fe83 --- /dev/null +++ b/lib/utils/sse_stream_web.dart @@ -0,0 +1,8 @@ +import 'package:fetch_client/fetch_client.dart'; +import 'package:http/http.dart'; + +Future getStream(Request request) async { + final FetchClient fetchClient = FetchClient(mode: RequestMode.cors); + final FetchResponse response = await fetchClient.send(request); + return response.stream; +} diff --git a/lib/utils/stream_base.dart b/lib/utils/stream_base.dart new file mode 100644 index 0000000..4d64c52 --- /dev/null +++ b/lib/utils/stream_base.dart @@ -0,0 +1 @@ +export './sse_stream.dart' if (dart.library.js) './sse_stream_web.dart'; diff --git a/lib/widgets/base64_image.dart b/lib/widgets/base64_image.dart new file mode 100644 index 0000000..d40f5a0 --- /dev/null +++ b/lib/widgets/base64_image.dart @@ -0,0 +1,69 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class Base64ImageWidget extends StatelessWidget { + /// The base64 encoded image string + final String base64String; + + /// Optional width for the image + final double? width; + + /// Optional height for the image + final double? height; + + /// Optional BoxFit to control how the image fills its space + final BoxFit? fit; + + const Base64ImageWidget({ + super.key, + required this.base64String, + this.width, + this.height, + this.fit = BoxFit.contain, + }); + + @override + Widget build(BuildContext context) { + try { + // Decode the base64 string + Uint8List bytes = base64Decode(base64String); + + // Create an image from the decoded bytes + return Image.memory( + bytes, + width: width, + height: height, + fit: fit, + errorBuilder: (context, error, stackTrace) { + // Fallback error widget if image fails to load + return Container( + width: width, + height: height, + color: Colors.grey[200], + child: Center( + child: Icon( + Icons.broken_image, + color: Colors.grey[600], + ), + ), + ); + }, + ); + } catch (e) { + // Handle decoding errors + return Container( + width: width, + height: height, + color: Colors.grey[200], + child: Center( + child: Text( + 'Invalid image', + style: TextStyle(color: Colors.grey[600]), + ), + ), + ); + } + } +} diff --git a/lib/widgets/bottom_sheet.dart b/lib/widgets/bottom_sheet.dart new file mode 100644 index 0000000..a282748 --- /dev/null +++ b/lib/widgets/bottom_sheet.dart @@ -0,0 +1,78 @@ +import 'package:flutter/material.dart'; + +class BottomSheetWrapper extends StatefulWidget { + final String title; + final String description; + final Widget child; + + const BottomSheetWrapper({ + super.key, + required this.title, + required this.description, + required this.child, + }); + + @override + State createState() => _BottomSheetWrapperState(); +} + +class _BottomSheetWrapperState extends State { + @override + Widget build(BuildContext context) { + return Container( + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.85, + minHeight: MediaQuery.of(context).size.height * 0.5, + ), + decoration: BoxDecoration( + color: Theme.of(context).colorScheme.surface, + borderRadius: const BorderRadius.vertical(top: Radius.circular(28)), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + _buildBottomSheetHandle(), + _buildHeader(context), + widget.child, + ], + ), + ); + } + + Widget _buildBottomSheetHandle() { + return Padding( + padding: const EdgeInsets.only(top: 12, bottom: 8), + child: Container( + width: 32, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ); + } + + Widget _buildHeader(BuildContext context) { + return Container( + padding: const EdgeInsets.fromLTRB(24, 8, 24, 16), + child: Column( + children: [ + Text( + widget.title, + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + widget.description, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: Colors.grey[600], + ), + ), + ], + ), + ); + } +} diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..92833dc --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,145 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "madari_client") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "media.madari.madari_client") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..5cd6438 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,39 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include +#include +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); + media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar); + g_autoptr(FlPluginRegistrar) media_kit_video_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin"); + media_kit_video_plugin_register_with_registrar(media_kit_video_registrar); + g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin"); + screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar); + g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin"); + sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); + g_autoptr(FlPluginRegistrar) window_manager_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "WindowManagerPlugin"); + window_manager_plugin_register_with_registrar(window_manager_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..92f4e68 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,32 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux + media_kit_libs_linux + media_kit_video + screen_retriever_linux + sqlite3_flutter_libs + url_launcher_linux + window_manager +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + media_kit_native_event_loop + pdfrx +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/main.cc b/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/my_application.cc b/linux/my_application.cc new file mode 100644 index 0000000..7bd6266 --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,124 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "madari_client"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "madari_client"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/my_application.h b/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..4b81f9b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5caa9d1 --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..f61d747 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,42 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import bonsoir_darwin +import connectivity_plus +import file_selector_macos +import flutter_inappwebview_macos +import media_kit_libs_macos_video +import media_kit_video +import package_info_plus +import path_provider_foundation +import screen_retriever_macos +import shared_preferences_foundation +import sqflite_darwin +import sqlite3_flutter_libs +import url_launcher_macos +import wakelock_plus +import webview_flutter_wkwebview +import window_manager + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + SwiftBonsoirPlugin.register(with: registry.registrar(forPlugin: "SwiftBonsoirPlugin")) + ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) + MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin")) + MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin")) + FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) + Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) + FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin")) + WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) +} diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..b52666a --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,43 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..2f1c285 --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,176 @@ +PODS: + - audio_session (0.0.1): + - FlutterMacOS + - bonsoir_darwin (0.0.1): + - Flutter + - FlutterMacOS + - connectivity_plus (0.0.1): + - Flutter + - FlutterMacOS + - file_selector_macos (0.0.1): + - FlutterMacOS + - flutter_inappwebview_macos (0.0.1): + - FlutterMacOS + - OrderedSet (~> 6.0.3) + - FlutterMacOS (1.0.0) + - just_audio (0.0.1): + - FlutterMacOS + - media_kit_libs_macos_video (1.0.4): + - FlutterMacOS + - media_kit_native_event_loop (1.0.0): + - FlutterMacOS + - media_kit_video (0.0.1): + - FlutterMacOS + - OrderedSet (6.0.3) + - package_info_plus (0.0.1): + - FlutterMacOS + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - pdfrx (0.0.3): + - Flutter + - FlutterMacOS + - screen_retriever_macos (0.0.1): + - FlutterMacOS + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sqflite_darwin (0.0.4): + - Flutter + - FlutterMacOS + - sqlite3 (3.47.1): + - sqlite3/common (= 3.47.1) + - sqlite3/common (3.47.1) + - sqlite3/dbstatvtab (3.47.1): + - sqlite3/common + - sqlite3/fts5 (3.47.1): + - sqlite3/common + - sqlite3/perf-threadsafe (3.47.1): + - sqlite3/common + - sqlite3/rtree (3.47.1): + - sqlite3/common + - sqlite3_flutter_libs (0.0.1): + - Flutter + - FlutterMacOS + - sqlite3 (~> 3.47.1) + - sqlite3/dbstatvtab + - sqlite3/fts5 + - sqlite3/perf-threadsafe + - sqlite3/rtree + - url_launcher_macos (0.0.1): + - FlutterMacOS + - video_player_avfoundation (0.0.1): + - Flutter + - FlutterMacOS + - wakelock_plus (0.0.1): + - FlutterMacOS + - webview_flutter_wkwebview (0.0.1): + - Flutter + - FlutterMacOS + - window_manager (0.2.0): + - FlutterMacOS + +DEPENDENCIES: + - audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`) + - bonsoir_darwin (from `Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin`) + - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/darwin`) + - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) + - flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/macos`) + - media_kit_libs_macos_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos`) + - media_kit_native_event_loop (from `Flutter/ephemeral/.symlinks/plugins/media_kit_native_event_loop/macos`) + - media_kit_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_video/macos`) + - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) + - pdfrx (from `Flutter/ephemeral/.symlinks/plugins/pdfrx/darwin`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) + - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) + - sqflite_darwin (from `Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin`) + - sqlite3_flutter_libs (from `Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + - video_player_avfoundation (from `Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin`) + - wakelock_plus (from `Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos`) + - webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`) + - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`) + +SPEC REPOS: + trunk: + - OrderedSet + - sqlite3 + +EXTERNAL SOURCES: + audio_session: + :path: Flutter/ephemeral/.symlinks/plugins/audio_session/macos + bonsoir_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/bonsoir_darwin/darwin + connectivity_plus: + :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/darwin + file_selector_macos: + :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos + flutter_inappwebview_macos: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos + FlutterMacOS: + :path: Flutter/ephemeral + just_audio: + :path: Flutter/ephemeral/.symlinks/plugins/just_audio/macos + media_kit_libs_macos_video: + :path: Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos + media_kit_native_event_loop: + :path: Flutter/ephemeral/.symlinks/plugins/media_kit_native_event_loop/macos + media_kit_video: + :path: Flutter/ephemeral/.symlinks/plugins/media_kit_video/macos + package_info_plus: + :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin + pdfrx: + :path: Flutter/ephemeral/.symlinks/plugins/pdfrx/darwin + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos + shared_preferences_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin + sqflite_darwin: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite_darwin/darwin + sqlite3_flutter_libs: + :path: Flutter/ephemeral/.symlinks/plugins/sqlite3_flutter_libs/darwin + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + video_player_avfoundation: + :path: Flutter/ephemeral/.symlinks/plugins/video_player_avfoundation/darwin + wakelock_plus: + :path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos + webview_flutter_wkwebview: + :path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin + window_manager: + :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos + +SPEC CHECKSUMS: + audio_session: dea1f41890dbf1718f04a56f1d6150fd50039b72 + bonsoir_darwin: e3b8526c42ca46a885142df84229131dfabea842 + connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 + file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d + flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + just_audio: 9b67ca7b97c61cfc9784ea23cd8cc55eb226d489 + media_kit_libs_macos_video: b3e2bbec2eef97c285f2b1baa7963c67c753fb82 + media_kit_native_event_loop: 81fd5b45192b72f8b5b69eaf5b540f45777eb8d5 + media_kit_video: c75b07f14d59706c775778e4dd47dd027de8d1e5 + OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 + package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + pdfrx: 07fc287c47ea8d027c4ed56457f8a1aa74d73594 + screen_retriever_macos: 776e0fa5d42c6163d2bf772d22478df4b302b161 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sqlite3: 1e522f0938463e44b7faf50393b40bdc1e1e456d + sqlite3_flutter_libs: 1b4e98da20ebd4e9b1240269b78cdcf492dbe9f3 + url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269 + webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 + window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 + +PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3 + +COCOAPODS: 1.16.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2004e2a --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,803 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 67533A535A8E66BADA2FA22F /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA37FE898ECDF0050628FD5A /* Pods_RunnerTests.framework */; }; + EF2B7C4330608441289BD835 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C16E02EB6F65FA012458DB77 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* Madari.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Madari.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 37A4D19D4D79AF623DD1EF5E /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 3F3F7D2997461FA4FE74BDE9 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 6E2947E0C11544BDACBEEF88 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + C16E02EB6F65FA012458DB77 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CA37FE898ECDF0050628FD5A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D45717E6EB8AF52484106DD8 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + D6DBA0504F901C72852C9395 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + F05261E10CBCF0FF7A591F94 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 67533A535A8E66BADA2FA22F /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EF2B7C4330608441289BD835 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 6609AAE4D7A651783900A1B8 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* Madari.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + 6609AAE4D7A651783900A1B8 /* Pods */ = { + isa = PBXGroup; + children = ( + D45717E6EB8AF52484106DD8 /* Pods-Runner.debug.xcconfig */, + 3F3F7D2997461FA4FE74BDE9 /* Pods-Runner.release.xcconfig */, + 6E2947E0C11544BDACBEEF88 /* Pods-Runner.profile.xcconfig */, + F05261E10CBCF0FF7A591F94 /* Pods-RunnerTests.debug.xcconfig */, + 37A4D19D4D79AF623DD1EF5E /* Pods-RunnerTests.release.xcconfig */, + D6DBA0504F901C72852C9395 /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C16E02EB6F65FA012458DB77 /* Pods_Runner.framework */, + CA37FE898ECDF0050628FD5A /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + B5E4F73A86476CBB123EFA4E /* [CP] Check Pods Manifest.lock */, + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 65B97645A100A1FA028718D1 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 38B91962DEC833740BFB958A /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* Madari.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + 38B91962DEC833740BFB958A /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 65B97645A100A1FA028718D1 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + B5E4F73A86476CBB123EFA4E /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F05261E10CBCF0FF7A591F94 /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/madari_client.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/madari_client"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 37A4D19D4D79AF623DD1EF5E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/madari_client.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/madari_client"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D6DBA0504F901C72852C9395 /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/madari_client.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/madari_client"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..530f80f --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..8e02df2 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..96d3fee --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "info": { + "version": 1, + "author": "xcode" + }, + "images": [ + { + "size": "16x16", + "idiom": "mac", + "filename": "app_icon_16.png", + "scale": "1x" + }, + { + "size": "16x16", + "idiom": "mac", + "filename": "app_icon_32.png", + "scale": "2x" + }, + { + "size": "32x32", + "idiom": "mac", + "filename": "app_icon_32.png", + "scale": "1x" + }, + { + "size": "32x32", + "idiom": "mac", + "filename": "app_icon_64.png", + "scale": "2x" + }, + { + "size": "128x128", + "idiom": "mac", + "filename": "app_icon_128.png", + "scale": "1x" + }, + { + "size": "128x128", + "idiom": "mac", + "filename": "app_icon_256.png", + "scale": "2x" + }, + { + "size": "256x256", + "idiom": "mac", + "filename": "app_icon_256.png", + "scale": "1x" + }, + { + "size": "256x256", + "idiom": "mac", + "filename": "app_icon_512.png", + "scale": "2x" + }, + { + "size": "512x512", + "idiom": "mac", + "filename": "app_icon_512.png", + "scale": "1x" + }, + { + "size": "512x512", + "idiom": "mac", + "filename": "app_icon_1024.png", + "scale": "2x" + } + ] +} \ No newline at end of file diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..26ee2c09dd6b33e951ecae83bd079a4d5a6fddd0 GIT binary patch literal 136326 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�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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..db5986648404aca7618ece330350e01ac20bf9ff GIT binary patch literal 6239 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 LNkvXXu0mjf^ewMf literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..cdfc64a0e108f3d93de7c9beaf07261a4d8ed9b8 GIT binary patch literal 18362 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf67418034ae0906ab3e0b03bca9ee09075207e GIT binary patch literal 852 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�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 z

    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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..51c2fc19c83a156f5e90bd5c5f8af5c7c450efd5 GIT binary patch literal 2235 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 + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..4dadf6a --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = Madari + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = media.madari.madariClient + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 media.madari. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..c946719 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + com.apple.security.network.client + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..c2fc66e --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.network.server + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..f5851e7 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1873 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" + url: "https://pub.dev" + source: hosted + version: "76.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.3" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" + url: "https://pub.dev" + source: hosted + version: "6.11.0" + analyzer_plugin: + dependency: transitive + description: + name: analyzer_plugin + sha256: "9661b30b13a685efaee9f02e5d01ed9f2b423bd889d28a304d02d704aee69161" + url: "https://pub.dev" + source: hosted + version: "0.11.3" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" + args: + dependency: transitive + description: + name: args + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + url: "https://pub.dev" + source: hosted + version: "2.6.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + background_downloader: + dependency: "direct main" + description: + name: background_downloader + sha256: "7c65a999544b40668000aac6379854b890f0ef367b9fbd29d959fd1e242dda14" + url: "https://pub.dev" + source: hosted + version: "8.8.0" + bonsoir: + dependency: transitive + description: + name: bonsoir + sha256: b7697a954c772a6ddc68d52b3e4768947cc98613127f7720a05b14ed1e59d68b + url: "https://pub.dev" + source: hosted + version: "5.1.10" + bonsoir_android: + dependency: transitive + description: + name: bonsoir_android + sha256: a72d83a78780c1f238e3178d0585e5604fbd9f2503206293737cdfab899ce8d0 + url: "https://pub.dev" + source: hosted + version: "5.1.5" + bonsoir_darwin: + dependency: transitive + description: + name: bonsoir_darwin + sha256: "2d25c70f0d09260be1c2ab583b80dd89cbbfd59997579dadf789c5af00c7b2e4" + url: "https://pub.dev" + source: hosted + version: "5.1.3" + bonsoir_linux: + dependency: transitive + description: + name: bonsoir_linux + sha256: f2639aded6e15943a9822de98a663a1056f37cbfd0a74d72c9eaa941965945c2 + url: "https://pub.dev" + source: hosted + version: "5.1.3" + bonsoir_platform_interface: + dependency: transitive + description: + name: bonsoir_platform_interface + sha256: "08bb8b35d0198168b3bce87dbc718e4e510336cff1d97e43762e030c01636d45" + url: "https://pub.dev" + source: hosted + version: "5.1.3" + bonsoir_windows: + dependency: transitive + description: + name: bonsoir_windows + sha256: d4a0ca479d4f3679487a61f3174fb9fe1651e323c778b02dfa630490366be65d + url: "https://pub.dev" + source: hosted + version: "5.1.5" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + url: "https://pub.dev" + source: hosted + version: "2.4.13" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + url: "https://pub.dev" + source: hosted + version: "7.3.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + cached_query: + dependency: "direct main" + description: + name: cached_query + sha256: "832eef19974dbdff5ead8c19f0872044d4a8dddf82b7ab5ca1ef18dd4498e1ba" + url: "https://pub.dev" + source: hosted + version: "2.2.1" + cached_query_flutter: + dependency: "direct main" + description: + name: cached_query_flutter + sha256: "1bc6c104d15467674e295a548b2b92e774c4ebfe7ba22527636744558859272c" + url: "https://pub.dev" + source: hosted + version: "2.5.1" + cached_storage: + dependency: "direct main" + description: + name: cached_storage + sha256: "834efe62c05a690a90ec41e4dc86625dadc5eacfc9d7cdd41f2a2576f6ab1e53" + url: "https://pub.dev" + source: hosted + version: "2.0.14" + cast: + dependency: "direct main" + description: + name: cast + sha256: de1856e1a31aa60a6fed627f827921f7ec6539c67c60d0c899e89646dcbe773e + url: "https://pub.dev" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + charcode: + dependency: transitive + description: + name: charcode + sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a + url: "https://pub.dev" + source: hosted + version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + ci: + dependency: transitive + description: + name: ci + sha256: "145d095ce05cddac4d797a158bc4cf3b6016d1fe63d8c3d2fbd7212590adca13" + url: "https://pub.dev" + source: hosted + version: "0.1.0" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + collection: + dependency: transitive + description: + name: collection + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + url: "https://pub.dev" + source: hosted + version: "1.19.0" + connectivity_plus: + dependency: transitive + description: + name: connectivity_plus + sha256: e0817759ec6d2d8e57eb234e6e57d2173931367a865850c7acea40d4b4f9c27d + url: "https://pub.dev" + source: hosted + version: "6.1.1" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + country_code_picker: + dependency: "direct main" + description: + name: country_code_picker + sha256: fdc2ae84d0342d4a7c6ebc83fbe002a70c8231ff5734505676292fc2c2cc4433 + url: "https://pub.dev" + source: hosted + version: "3.1.0" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + url: "https://pub.dev" + source: hosted + version: "0.3.4+2" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + custom_lint: + dependency: "direct dev" + description: + name: custom_lint + sha256: "3486c470bb93313a9417f926c7dd694a2e349220992d7b9d14534dc49c15bba9" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + custom_lint_builder: + dependency: transitive + description: + name: custom_lint_builder + sha256: "42cdc41994eeeddab0d7a722c7093ec52bd0761921eeb2cbdbf33d192a234759" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + custom_lint_core: + dependency: transitive + description: + name: custom_lint_core + sha256: "02450c3e45e2a6e8b26c4d16687596ab3c4644dd5792e3313aa9ceba5a49b7f5" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + custom_lint_visitor: + dependency: transitive + description: + name: custom_lint_visitor + sha256: bfe9b7a09c4775a587b58d10ebb871d4fe618237639b1e84d5ec62d7dfef25f9 + url: "https://pub.dev" + source: hosted + version: "1.0.0+6.11.0" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.7" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" + source: hosted + version: "0.7.10" + drift: + dependency: "direct main" + description: + name: drift + sha256: c2d073d35ad441730812f4ea05b5dd031fb81c5f9786a4f5fb77ecd6307b6f74 + url: "https://pub.dev" + source: hosted + version: "2.22.1" + drift_dev: + dependency: "direct dev" + description: + name: drift_dev + sha256: f4ab5d6976b1e31551ceb82ff597a505bda7818ff4f7be08a1da9d55eb6e730c + url: "https://pub.dev" + source: hosted + version: "2.22.1" + drift_flutter: + dependency: "direct main" + description: + name: drift_flutter + sha256: "0bc2f1dde59e59cedde0df67a4ff7bd8f0d42274f18b50bf7e7dae7ca3d77801" + url: "https://pub.dev" + source: hosted + version: "0.1.0" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + fetch_api: + dependency: transitive + description: + name: fetch_api + sha256: "97f46c25b480aad74f7cc2ad7ccba2c5c6f08d008e68f95c1077286ce243d0e6" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + fetch_client: + dependency: "direct main" + description: + name: fetch_client + sha256: "9666ee14536778474072245ed5cba07db81ae8eb5de3b7bf4a2d1e2c49696092" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_picker: + dependency: "direct main" + description: + name: file_picker + sha256: "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c" + url: "https://pub.dev" + source: hosted + version: "8.1.4" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" + url: "https://pub.dev" + source: hosted + version: "0.9.4+2" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4" + url: "https://pub.dev" + source: hosted + version: "0.9.3+3" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + flutter_dotenv: + dependency: "direct main" + description: + name: flutter_dotenv + sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b + url: "https://pub.dev" + source: hosted + version: "5.2.1" + flutter_inappwebview: + dependency: "direct main" + description: + name: flutter_inappwebview + sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5" + url: "https://pub.dev" + source: hosted + version: "6.1.5" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba" + url: "https://pub.dev" + source: hosted + version: "1.1.3" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500 + url: "https://pub.dev" + source: hosted + version: "1.3.0+1" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_windows: + dependency: transitive + description: + name: flutter_inappwebview_windows + sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "8546a9b9510e1a260b8d55fb2d07096e8a8552c6a2c2bf529100344894b2b41a" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_markdown: + dependency: "direct main" + description: + name: flutter_markdown + sha256: "255b00afa1a7bad19727da6a7780cf3db6c3c12e68d302d85e0ff1fdf173db9e" + url: "https://pub.dev" + source: hosted + version: "0.7.4+3" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398" + url: "https://pub.dev" + source: hosted + version: "2.0.23" + flutter_riverpod: + dependency: "direct main" + description: + name: flutter_riverpod + sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1" + url: "https://pub.dev" + source: hosted + version: "2.6.1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + go_router: + dependency: "direct main" + description: + name: go_router + sha256: "2fd11229f59e23e967b0775df8d5948a519cd7e1e8b6e849729e010587b46539" + url: "https://pub.dev" + source: hosted + version: "14.6.2" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82 + url: "https://pub.dev" + source: hosted + version: "6.2.1" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hotreloader: + dependency: transitive + description: + name: hotreloader + sha256: ed56fdc1f3a8ac924e717257621d09e9ec20e308ab6352a73a50a1d7a4d9158e + url: "https://pub.dev" + source: hosted + version: "4.2.0" + http: + dependency: "direct main" + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + url: "https://pub.dev" + source: hosted + version: "4.3.0" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e + url: "https://pub.dev" + source: hosted + version: "0.8.12+18" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: "4f0568120c6fcc0aaa04511cb9f9f4d29fc3d0139884b1d06be88dcec7641d6b" + url: "https://pub.dev" + source: hosted + version: "0.8.12+1" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" + url: "https://pub.dev" + source: hosted + version: "2.10.0" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + intl: + dependency: "direct main" + description: + name: intl + sha256: "00f33b908655e606b86d2ade4710a231b802eec6f11e87e4ea3783fd72077a50" + url: "https://pub.dev" + source: hosted + version: "0.20.1" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + url: "https://pub.dev" + source: hosted + version: "0.7.1" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + url: "https://pub.dev" + source: hosted + version: "6.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + url: "https://pub.dev" + source: hosted + version: "10.0.7" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + url: "https://pub.dev" + source: hosted + version: "3.0.8" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + macros: + dependency: transitive + description: + name: macros + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" + url: "https://pub.dev" + source: hosted + version: "0.1.3-main.0" + markdown: + dependency: transitive + description: + name: markdown + sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 + url: "https://pub.dev" + source: hosted + version: "7.2.2" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + media_kit: + dependency: "direct main" + description: + path: media_kit + ref: "652c49e02701bb6bb80953a6fdf650a5c8f002f9" + resolved-ref: "652c49e02701bb6bb80953a6fdf650a5c8f002f9" + url: "https://github.com/media-kit/media-kit" + source: git + version: "1.1.11" + media_kit_libs_android_video: + dependency: transitive + description: + name: media_kit_libs_android_video + sha256: "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c" + url: "https://pub.dev" + source: hosted + version: "1.3.6" + media_kit_libs_ios_video: + dependency: transitive + description: + name: media_kit_libs_ios_video + sha256: b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991 + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_linux: + dependency: transitive + description: + name: media_kit_libs_linux + sha256: e186891c31daa6bedab4d74dcdb4e8adfccc7d786bfed6ad81fe24a3b3010310 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + media_kit_libs_macos_video: + dependency: transitive + description: + name: media_kit_libs_macos_video + sha256: f26aa1452b665df288e360393758f84b911f70ffb3878032e1aabba23aa1032d + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_video: + dependency: "direct main" + description: + name: media_kit_libs_video + sha256: "20bb4aefa8fece282b59580e1cd8528117297083a6640c98c2e98cfc96b93288" + url: "https://pub.dev" + source: hosted + version: "1.0.5" + media_kit_libs_windows_video: + dependency: transitive + description: + name: media_kit_libs_windows_video + sha256: "32654572167825c42c55466f5d08eee23ea11061c84aa91b09d0e0f69bdd0887" + url: "https://pub.dev" + source: hosted + version: "1.0.10" + media_kit_native_event_loop: + dependency: transitive + description: + name: media_kit_native_event_loop + sha256: "7d82e3b3e9ded5c35c3146c5ba1da3118d1dd8ac3435bac7f29f458181471b40" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + media_kit_video: + dependency: "direct main" + description: + path: media_kit_video + ref: "652c49e02701bb6bb80953a6fdf650a5c8f002f9" + resolved-ref: "652c49e02701bb6bb80953a6fdf650a5c8f002f9" + url: "https://github.com/media-kit/media-kit" + source: git + version: "1.2.5" + meta: + dependency: transitive + description: + name: meta + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + package_info_plus: + dependency: transitive + description: + name: package_info_plus + sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce + url: "https://pub.dev" + source: hosted + version: "8.1.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + path: + dependency: "direct main" + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7" + url: "https://pub.dev" + source: hosted + version: "2.2.14" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + pdfrx: + dependency: "direct main" + description: + name: pdfrx + sha256: "96720452b6a71e472485a50e0f97240e05262abe841a4d878e685a37ca7bd0ab" + url: "https://pub.dev" + source: hosted + version: "1.0.93" + permission_handler: + dependency: "direct main" + description: + name: permission_handler + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" + url: "https://pub.dev" + source: hosted + version: "11.3.1" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1" + url: "https://pub.dev" + source: hosted + version: "12.0.13" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 + url: "https://pub.dev" + source: hosted + version: "9.4.5" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" + url: "https://pub.dev" + source: hosted + version: "0.1.3+5" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9 + url: "https://pub.dev" + source: hosted + version: "4.2.3" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.dev" + source: hosted + version: "0.2.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + photo_view: + dependency: "direct main" + description: + name: photo_view + sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e" + url: "https://pub.dev" + source: hosted + version: "0.15.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pocketbase: + dependency: "direct main" + description: + name: pocketbase + sha256: e6aca23d3181a23d367c6650fc4ebe6855bfba4d18b3746ceb1974fb152d8cf9 + url: "https://pub.dev" + source: hosted + version: "0.19.1" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + provider: + dependency: "direct main" + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + recase: + dependency: transitive + description: + name: recase + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + riverpod: + dependency: transitive + description: + name: riverpod + sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959" + url: "https://pub.dev" + source: hosted + version: "2.6.1" + riverpod_analyzer_utils: + dependency: transitive + description: + name: riverpod_analyzer_utils + sha256: c6b8222b2b483cb87ae77ad147d6408f400c64f060df7a225b127f4afef4f8c8 + url: "https://pub.dev" + source: hosted + version: "0.5.8" + riverpod_annotation: + dependency: "direct main" + description: + name: riverpod_annotation + sha256: e14b0bf45b71326654e2705d462f21b958f987087be850afd60578fcd502d1b8 + url: "https://pub.dev" + source: hosted + version: "2.6.1" + riverpod_generator: + dependency: "direct dev" + description: + name: riverpod_generator + sha256: "63546d70952015f0981361636bf8f356d9cfd9d7f6f0815e3c07789a41233188" + url: "https://pub.dev" + source: hosted + version: "2.6.3" + riverpod_lint: + dependency: "direct dev" + description: + name: riverpod_lint + sha256: "83e4caa337a9840469b7b9bd8c2351ce85abad80f570d84146911b32086fbd99" + url: "https://pub.dev" + source: hosted + version: "2.6.3" + rxdart: + dependency: "direct main" + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + safe_local_storage: + dependency: transitive + description: + name: safe_local_storage + sha256: e9a21b6fec7a8aa62cc2585ff4c1b127df42f3185adbd2aca66b47abe2e80236 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + screen_brightness_android: + dependency: transitive + description: + name: screen_brightness_android + sha256: "74455f9901ab8a1a45c9097b83855dbbb7498110cc2bc249cb5a86570dd1cf7c" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + screen_brightness_platform_interface: + dependency: transitive + description: + name: screen_brightness_platform_interface + sha256: "321e9455b0057e3647fd37700931e063739d94a8aa1b094f98133c01cb56c27b" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + screen_retriever: + dependency: transitive + description: + name: screen_retriever + sha256: "570dbc8e4f70bac451e0efc9c9bb19fa2d6799a11e6ef04f946d7886d2e23d0c" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_linux: + dependency: transitive + description: + name: screen_retriever_linux + sha256: f7f8120c92ef0784e58491ab664d01efda79a922b025ff286e29aa123ea3dd18 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_macos: + dependency: transitive + description: + name: screen_retriever_macos + sha256: "71f956e65c97315dd661d71f828708bd97b6d358e776f1a30d5aa7d22d78a149" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_platform_interface: + dependency: transitive + description: + name: screen_retriever_platform_interface + sha256: ee197f4581ff0d5608587819af40490748e1e39e648d7680ecf95c05197240c0 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_windows: + dependency: transitive + description: + name: screen_retriever_windows + sha256: "449ee257f03ca98a57288ee526a301a430a344a161f9202b4fcc38576716fe13" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" + url: "https://pub.dev" + source: hosted + version: "2.3.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "7f172d1b06de5da47b6264c2692ee2ead20bbbc246690427cdb4fc301cd0c549" + url: "https://pub.dev" + source: hosted + version: "2.3.4" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + shimmer: + dependency: "direct main" + description: + name: shimmer + sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + simple_animations: + dependency: "direct main" + description: + name: simple_animations + sha256: "1ea7b93fb98e2a611b6865d632de55607b766328d14700143353129ee0559d3a" + url: "https://pub.dev" + source: hosted + version: "5.0.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + url: "https://pub.dev" + source: hosted + version: "1.3.4" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" + url: "https://pub.dev" + source: hosted + version: "2.5.4+6" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "96a698e2bc82bd770a4d6aab00b42396a7c63d9e33513a56945cbccb594c2474" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + sqlite3: + dependency: transitive + description: + name: sqlite3 + sha256: cb7f4e9dc1b52b1fa350f7b3d41c662e75fc3d399555fa4e5efcf267e9a4fbb5 + url: "https://pub.dev" + source: hosted + version: "2.5.0" + sqlite3_flutter_libs: + dependency: transitive + description: + name: sqlite3_flutter_libs + sha256: "636b0fe8a2de894e5455572f6cbbc458f4ffecfe9f860b79439e27041ea4f0b9" + url: "https://pub.dev" + source: hosted + version: "0.5.27" + sqlparser: + dependency: transitive + description: + name: sqlparser + sha256: "4cad4b2c5f63dc9ea1a8dcffb58cf762322bea5dd8836870164a65e913bdae41" + url: "https://pub.dev" + source: hosted + version: "0.40.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + state_notifier: + dependency: transitive + description: + name: state_notifier + sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb + url: "https://pub.dev" + source: hosted + version: "1.0.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225" + url: "https://pub.dev" + source: hosted + version: "3.3.0+3" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + url: "https://pub.dev" + source: hosted + version: "0.7.3" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + universal_platform: + dependency: transitive + description: + name: universal_platform + sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + uri_parser: + dependency: transitive + description: + name: uri_parser + sha256: ff4d2c720aca3f4f7d5445e23b11b2d15ef8af5ddce5164643f38ff962dcb270 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + url: "https://pub.dev" + source: hosted + version: "6.3.1" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" + url: "https://pub.dev" + source: hosted + version: "6.3.14" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + url: "https://pub.dev" + source: hosted + version: "6.3.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + url: "https://pub.dev" + source: hosted + version: "2.3.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + uuid: + dependency: transitive + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + url: "https://pub.dev" + source: hosted + version: "14.3.0" + volume_controller: + dependency: transitive + description: + name: volume_controller + sha256: c71d4c62631305df63b72da79089e078af2659649301807fa746088f365cb48e + url: "https://pub.dev" + source: hosted + version: "2.0.8" + wakelock_plus: + dependency: transitive + description: + name: wakelock_plus + sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484 + url: "https://pub.dev" + source: hosted + version: "1.2.8" + wakelock_plus_platform_interface: + dependency: transitive + description: + name: wakelock_plus_platform_interface + sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec" + url: "https://pub.dev" + source: hosted + version: "4.10.0" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "285cedfd9441267f6cca8843458620b5fda1af75b04f5818d0441acda5d7df19" + url: "https://pub.dev" + source: hosted + version: "4.1.0" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d + url: "https://pub.dev" + source: hosted + version: "2.10.0" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: b7e92f129482460951d96ef9a46b49db34bd2e1621685de26e9eaafd9674e7eb + url: "https://pub.dev" + source: hosted + version: "3.16.3" + win32: + dependency: transitive + description: + name: win32 + sha256: "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69" + url: "https://pub.dev" + source: hosted + version: "5.9.0" + window_manager: + dependency: "direct main" + description: + name: window_manager + sha256: "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059" + url: "https://pub.dev" + source: hosted + version: "0.4.3" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: "direct main" + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.5.3 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..36527f3 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,104 @@ +name: madari_client +description: "Madari Media Manager" +publish_to: 'none' +version: 1.0.1+3 +environment: + sdk: ^3.5.3 + +dependencies: + flutter: + sdk: flutter + cupertino_icons: ^1.0.8 + json_annotation: ^4.9.0 + http: ^1.2.2 + cached_network_image: ^3.4.1 + google_fonts: ^6.2.1 + path: ^1.9.0 + path_provider: ^2.1.5 + rxdart: ^0.28.0 + pocketbase: ^0.19.1 + media_kit: + git: + url: https://github.com/media-kit/media-kit + path: media_kit + ref: 652c49e02701bb6bb80953a6fdf650a5c8f002f9 + media_kit_video: + git: + url: https://github.com/media-kit/media-kit + path: media_kit_video + ref: 652c49e02701bb6bb80953a6fdf650a5c8f002f9 + media_kit_libs_video: ^1.0.5 + cached_query: ^2.2.1 + cached_query_flutter: ^2.5.1 + cached_storage: ^2.0.14 + provider: ^6.1.2 + flutter_riverpod: ^2.6.1 + riverpod_annotation: ^2.6.1 + shared_preferences: ^2.3.3 + flutter_markdown: ^0.7.4+3 + url_launcher: ^6.3.1 + shimmer: ^3.0.0 + image_picker: ^1.1.2 + go_router: ^14.6.2 + country_code_picker: ^3.1.0 + flutter_dotenv: ^5.2.1 + intl: ^0.20.1 + simple_animations: ^5.0.0+3 + webview_flutter: ^4.10.0 + pdfrx: ^1.0.93 + photo_view: ^0.15.0 + window_manager: ^0.4.2 + background_downloader: ^8.8.0 + xml: ^6.5.0 + file_picker: ^8.1.4 + flutter_inappwebview: ^6.1.5 + drift: ^2.22.1 + drift_flutter: ^0.1.0 + fetch_client: ^1.1.2 + cast: ^2.1.0 + permission_handler: ^11.3.1 + +dependency_overrides: + media_kit: + git: + url: https://github.com/media-kit/media-kit + path: media_kit + ref: 652c49e02701bb6bb80953a6fdf650a5c8f002f9 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^4.0.0 + custom_lint: ^0.7.0 + riverpod_lint: ^2.6.3 + drift_dev: ^2.22.0 + build_runner: ^2.4.13 + json_serializable: ^6.8.0 + flutter_launcher_icons: 0.13.0 + riverpod_generator: ^2.6.3 + +flutter: + uses-material-design: true + assets: + - .env + - assets/ + - assets/data/ + +flutter_icons: + image_path: "assets/icon/icon_new.jpg" + android: "launcher_icon" + min_sdk_android: 21 + ios: + generate: true + remove_alpha_ios: true + web: + generate: true + background_color: "#000" + theme_color: "#000" + image_path: "assets/icon/icon_mini.png" + windows: + generate: true + icon_size: 48 # min:48, max:256, default: 48 + macos: + generate: true + remove_alpha_ios: true diff --git a/test/stremio_connection_service_test.dart b/test/stremio_connection_service_test.dart new file mode 100644 index 0000000..7db6327 --- /dev/null +++ b/test/stremio_connection_service_test.dart @@ -0,0 +1,42 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:madari_client/engine/library.dart'; +import 'package:madari_client/features/connections/service/base_connection_service.dart'; +import 'package:madari_client/features/connections/service/stremio_connection_service.dart'; + +void main() { + test("StremioConnectionService tests", () async { + final connection = StremioConnectionService( + connectionId: "", + config: StremioConfig(addons: []), + ); + + final library = LibraryRecord( + id: "id", + icon: 'icon', + title: "title", + types: ['videos'], + config: [ + "{\"type\":\"movie\",\"id\":\"top\",\"title\":\"Top Movies\",\"addon\":\"https://v3-cinemeta.strem.io/manifest.json\",\"item\":{\"type\":\"movie\",\"id\":\"top\",\"name\":\"Last videos\"}}" + ], + connection: "abc", + connectionType: "stremio_addons", + ); + + final filters = await connection.getFilters(library); + + print(filters); + + final records = await connection.getItems( + library, + page: 2, + items: [ + ConnectionFilterItem( + title: "search", + value: "matrix", + ), + ], + ); + + print(records); + }); +} diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..954329c --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:madari_client/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MadariApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/test_web/.editorconfig b/test_web/.editorconfig new file mode 100644 index 0000000..1ed453a --- /dev/null +++ b/test_web/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.{js,json,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 diff --git a/test_web/.gitattributes b/test_web/.gitattributes new file mode 100644 index 0000000..af3ad12 --- /dev/null +++ b/test_web/.gitattributes @@ -0,0 +1,4 @@ +/.yarn/** linguist-vendored +/.yarn/releases/* binary +/.yarn/plugins/**/* binary +/.pnp.* binary linguist-generated diff --git a/test_web/.gitignore b/test_web/.gitignore new file mode 100644 index 0000000..afa010e --- /dev/null +++ b/test_web/.gitignore @@ -0,0 +1,14 @@ +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Swap the comments on the following lines if you wish to use zero-installs +# In that case, don't forget to run `yarn config set enableGlobalCache false`! +# Documentation here: https://yarnpkg.com/features/caching#zero-installs + +#!.yarn/cache +.pnp.* +node_modules diff --git a/test_web/.yarn/releases/yarn-4.5.3.cjs b/test_web/.yarn/releases/yarn-4.5.3.cjs new file mode 100755 index 0000000000000000000000000000000000000000..7529af2ee2a7714040c97503de543d6912b33d06 GIT binary patch literal 2764795 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

    dshcdYa{-Rme{~cKpvp{am!4 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�m8 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 z
  • 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�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

    ZyQwJRa~*P3YB@hE*tB9 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
    89GyR=35aW62TI5v&1nm4fK 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 { + const browser = await puppeteer.launch({ + devtools: true, + headless: false, + defaultViewport: null, + args: ['--start-maximized'], + }); + const page = await browser.newPage(); + await page.goto('https://madari-dev.pages.dev'); + await page.bringToFront(); + await page.waitForTimeout(10000000); + await browser.close(); +})(); diff --git a/test_web/package.json b/test_web/package.json new file mode 100644 index 0000000..29041d3 --- /dev/null +++ b/test_web/package.json @@ -0,0 +1,8 @@ +{ + "name": "test_web", + "packageManager": "yarn@4.5.3", + "type": "module", + "dependencies": { + "puppeteer": "10.0.0" + } +} diff --git a/test_web/yarn.lock b/test_web/yarn.lock new file mode 100644 index 0000000..1d531a4 --- /dev/null +++ b/test_web/yarn.lock @@ -0,0 +1,545 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@types/node@npm:*": + version: 22.10.1 + resolution: "@types/node@npm:22.10.1" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10c0/0fbb6d29fa35d807f0223a4db709c598ac08d66820240a2cd6a8a69b8f0bc921d65b339d850a666b43b4e779f967e6ed6cf6f0fca3575e08241e6b900364c234 + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bl@npm:^4.0.3": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10c0/02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + +"buffer@npm:^5.2.1, buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + +"chownr@npm:^1.1.1": + version: 1.1.4 + resolution: "chownr@npm:1.1.4" + checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.1": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de + languageName: node + linkType: hard + +"debug@npm:4.3.1": + version: 4.3.1 + resolution: "debug@npm:4.3.1" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/610bcc2eb07c533d6a9964478422f7d741095d67301888ee0b77b8f2ad0a15d115c93fb2adb13d10a9eda3d81f2d4d335405540b09596fb23aca070e77497d95 + languageName: node + linkType: hard + +"devtools-protocol@npm:0.0.883894": + version: 0.0.883894 + resolution: "devtools-protocol@npm:0.0.883894" + checksum: 10c0/c70fb9b5a841d9e7cf04df9e985562c80430c3411a893aa2570be78f12e12544ed14093467c0637990b23cf0814ab62f3d3d401eaf3d9d16322d4e1739409744 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + +"find-up@npm:^4.0.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 10c0/a0cde99085f0872f4d244e83e03a46aa387b74f5a5af750896c6b05e9077fac00e9932fdf5aef84f2f16634cd473c63037d7a512576da7d5c2b9163d1909f3a8 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 + languageName: node + linkType: hard + +"glob@npm:^7.1.3": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"https-proxy-agent@npm:5.0.0": + version: 5.0.0 + resolution: "https-proxy-agent@npm:5.0.0" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/670c04f7f0effb5a449c094ea037cbcfb28a5ab93ed22e8c343095202cc7288027869a5a21caf4ee3b8ea06f9624ef1e1fc9044669c0fd92617654ff39f30806 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"mkdirp@npm:^0.5.1": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: "npm:^1.2.6" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"node-fetch@npm:2.6.1": + version: 2.6.1 + resolution: "node-fetch@npm:2.6.1" + checksum: 10c0/c58586d121782df045681e29608f940be90c7d8c4cada29957c148cfcc5e2d81d74b690cf10ee6879ed055da7ea821450a74ff43f3bde651cf6c8a5f34a77e2a + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + +"pkg-dir@npm:4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 + languageName: node + linkType: hard + +"progress@npm:2.0.1": + version: 2.0.1 + resolution: "progress@npm:2.0.1" + checksum: 10c0/01dc00f44ad15e7dde2375605a1d0df11f9505672d3e7ad218534dbc704ad98f2bb225064f7cabae4c727b89478cbc4e53b5573f94178012a5d194e3031f7bca + languageName: node + linkType: hard + +"proxy-from-env@npm:1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f + languageName: node + linkType: hard + +"puppeteer@npm:10.0.0": + version: 10.0.0 + resolution: "puppeteer@npm:10.0.0" + dependencies: + debug: "npm:4.3.1" + devtools-protocol: "npm:0.0.883894" + extract-zip: "npm:2.0.1" + https-proxy-agent: "npm:5.0.0" + node-fetch: "npm:2.6.1" + pkg-dir: "npm:4.2.0" + progress: "npm:2.0.1" + proxy-from-env: "npm:1.1.0" + rimraf: "npm:3.0.2" + tar-fs: "npm:2.0.0" + unbzip2-stream: "npm:1.3.3" + ws: "npm:7.4.6" + checksum: 10c0/0bdffd892836335a61b3e307124cddd7ca510dd66a7e5722dd42d7694b1de967e433c515a7a025ade83676f436b0db6091040daab298cfbda8def99392b1ec65 + languageName: node + linkType: hard + +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"rimraf@npm:3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"tar-fs@npm:2.0.0": + version: 2.0.0 + resolution: "tar-fs@npm:2.0.0" + dependencies: + chownr: "npm:^1.1.1" + mkdirp: "npm:^0.5.1" + pump: "npm:^3.0.0" + tar-stream: "npm:^2.0.0" + checksum: 10c0/47065403185b93eac726d911ea1812f2a116a7591c6129ff354fa1f8d60ec5d163a56c8f62f56679e985399fc5d6cc1fab133e096b8deab84524035547e60cb5 + languageName: node + linkType: hard + +"tar-stream@npm:^2.0.0": + version: 2.2.0 + resolution: "tar-stream@npm:2.2.0" + dependencies: + bl: "npm:^4.0.3" + end-of-stream: "npm:^1.4.1" + fs-constants: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + checksum: 10c0/2f4c910b3ee7196502e1ff015a7ba321ec6ea837667220d7bcb8d0852d51cb04b87f7ae471008a6fb8f5b1a1b5078f62f3a82d30c706f20ada1238ac797e7692 + languageName: node + linkType: hard + +"test_web@workspace:.": + version: 0.0.0-use.local + resolution: "test_web@workspace:." + dependencies: + puppeteer: "npm:10.0.0" + languageName: unknown + linkType: soft + +"through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + +"unbzip2-stream@npm:1.3.3": + version: 1.3.3 + resolution: "unbzip2-stream@npm:1.3.3" + dependencies: + buffer: "npm:^5.2.1" + through: "npm:^2.3.8" + checksum: 10c0/b6330cfa22127140b69b9408e9dfd8e58261db4cbe8639f1c3379d1f6a1a9499d446b8e15d16c930069ee562cf18d77ba803fb9f1159659ebb6d0bbd69919fa1 + languageName: node + linkType: hard + +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"ws@npm:7.4.6": + version: 7.4.6 + resolution: "ws@npm:7.4.6" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e + languageName: node + linkType: hard + +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard diff --git a/web/_headers b/web/_headers new file mode 100644 index 0000000..0e2ad34 --- /dev/null +++ b/web/_headers @@ -0,0 +1,3 @@ +/* + Cross-Origin-Embedder-Policy: credentialless; + Cross-Origin-Opener-Policy: same-origin; diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..988362d9c1561890021c42971b611b7fbc186071 GIT binary patch literal 3383 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 N002ovPDHLkV1jB9iP``F literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..f46de94b9f9f6674d568db0c870ede1e81ca56e4 GIT binary patch literal 23887 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 E0Qt360{{R3 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..f46de94b9f9f6674d568db0c870ede1e81ca56e4 GIT binary patch literal 23887 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 E0Qt360{{R3 literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..3022f2d --- /dev/null +++ b/web/index.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + Madari + + + + + +
    +
    +
    Initializing App...
    +
    +
    +
    +
    + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..0be3e45 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "madari", + "short_name": "madari", + "start_url": ".", + "display": "standalone", + "background_color": "#000", + "theme_color": "#000", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} \ No newline at end of file diff --git a/web/sqlite3.wasm b/web/sqlite3.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0a025ab64ae289ca45fe09e33c463a091b6fc77c GIT binary patch literal 711226 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˜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:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..377661e --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,44 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + BonsoirWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("BonsoirWindowsPluginCApi")); + ConnectivityPlusWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); + FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi")); + MediaKitLibsWindowsVideoPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MediaKitLibsWindowsVideoPluginCApi")); + MediaKitVideoPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("MediaKitVideoPluginCApi")); + PermissionHandlerWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); + ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); + Sqlite3FlutterLibsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WindowManagerPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowManagerPlugin")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..3f6ad0b --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,36 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + bonsoir_windows + connectivity_plus + file_selector_windows + flutter_inappwebview_windows + media_kit_libs_windows_video + media_kit_video + permission_handler_windows + screen_retriever_windows + sqlite3_flutter_libs + url_launcher_windows + window_manager +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + media_kit_native_event_loop + pdfrx +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..e19c271 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "media.madari" "\0" + VALUE "FileDescription", "madari_client" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "madari_client" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 media.madari. All rights reserved." "\0" + VALUE "OriginalFilename", "madari_client.exe" "\0" + VALUE "ProductName", "madari_client" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..41d0ba1 --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"madari_client", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a654d6ac9444b4f57131559faa60faacdcb1943c GIT binary patch literal 1561 zcmV+!2Ilzy0096205C8B0000W00Ra902TlM0EtjeM-2)Z3IG5A4M|8uQUCw|FaQ7m zFbDzw007uvZqNV#133&TK;g5uH`=11Sh?fl_+T zdEc|=J@slA6iVGp4rEuTgk^2-KAh74$?lKZo z<|U_^Fyhy$PUTrWy7?fEd9tCmLtK z)KFfYv-X`>yZtEwd2Y1ctvN+7YU%E7aCZ_yCt4G-{utvrl$TWw$`5B3`@*ZYdmFGMxxg=&PDkkUaIn2amk9h+F{ylIH1n+ z7n;lVnkmJCKoUKJ7}x_J9c;Sg@i0PO%$_hbd(MRIJJTiocc(K;VTymy)!&zwmf9}`pT?*zsu5u>pQgdK1)e;j!X+YNrW}z5SCMJ^@+?-EdvnE2I z%%w{+R<3Z@|3nc$AO(pZ1ZjW>Vam7JE_ZeL9(3rJF1y}ZZAB=S>rGu<5@S=6lZ<&N zx{N`W>0$vTlg;M5{rj?BUlt({_%h#FS@-iV3KMw-S44n>TTninXHD=91>OC9H}2eV zSgjU>dj|a~)6y3#oLamSsuBy6TjyLC53#@~Vdl)Z%*hO zoGc7DC=e8Gaa!s_|6qrIz}?perw#}frKZ`{hvKH^5C6821A!ecm+iWJ`n1~XB@i2t zC5ae5iIgIq9dFIG+kwzMIB>noJ$b`Ad;YYDX~F}6Vr;fq<>gnlZc{=)7^x6!VT8N5=A_}16mknp3hL~-r^o(M?zD~T$7s(;fnb}Ag$o?-uD$>D zH<*V;5mu0qZiJh>z9FtJaXP8VG)9_{0)?37R~)=oSE~gz)fh`+3SjQj0&RZ(v{glu zhn+6b2LdHb%q}P?Zrpzmdf&K>01|2#@G+CTys~2K#Tqpb>^Qel%$!fin3 + + + + PerMonitorV2 + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

    PFgKUjFhG9}XyLF(wn28z83=G-g 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�YCBhQ+4!)UzN7K*lAlbSix{c=(TX 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

    kY2apGsn-bluL|Kx*m20$#_W6~V8 zKU(AvP5ybv3*T~=x5ucHFg{elQvQ}rgDz1sS_(I1pOdopAL?;NyAB0{R<>u0KEBcq z$6pj$g|}sz6Z3XI|DQ7fxs>n<_Q`?N(8YO!`8J#_>a_WX=WzTI>eVW7F65N2_v{4% zdkR;M_$NR212;YmO786MOr-R39OVF-yP7M-hha))rN4L|dQ@b#itJXjpd1!K0!sK1 z4ytaQwXc+Fp?1lhEcftO5tm0se8V0rxV@OUw?v&o41%wkcI*Nr1K;EhnRnKq8yQNL zFDL%Y5xAOz=j6Uku;>&v|C~H@)_%9IN|oJ2i&1BGBA^NxInF(E|K6gXo!ieeCNWCO zzCz-~SM&ECw@7Tx&mV!0Soh`v`Gin<>8v~Ub;p>n5k2AT(LMhq_3Hqr9kQ+^*owd(xVU=vSK`c9IPU79{uF;EAw4`K=JQ$qw=L z$T-l>yEA$#RU>Kb9gD9e3!uv_N#q~ShYLx~^~XYVIHh5oCJxl@_nEMz+J{^-@a^y* z{k%;MTE8*ZZMcJEbJ+hTsR&_u33X$CViE()f;WJwaj|9nh7!E9HQCIa&J{Jth>$f93=!43{m+#4~UAHpN7rE5u%_1ofO3ImSExQ!%S3PJ72!fWpHqY0?Zp0itt~qYd_pjYB zlDHxa>icITvNLE6Kcqr%P(D$5h;<@6mYagSjNoY0P&=e>n{ zlGK<*vHQKHv-eY2F$;qf@4E*+aReyfHQ?GOaO)a7xCjz!yw4YWev4e!_uu}Lcb}IV zOmn>LANL*ynxlOFq-wdF9L+gv#V>uKG^)9<3%ug+y_h*3|x-VbXQW zUc-fVH0AB(nA2|_t08xDDGB|cuZOz-SSO;Un!|lr;_!UHr)+ML84R)8>!WapU?0M{ zb$*?N$D4(oRo!z6C{K1nc<>_Y(rbyov`@;Edu=~(rPWs-zoSg&zaJ-vx2qUeN7ZAh z2jz|rdHT|5tc2N3lgX+a|0ysQj>Oo^#D}Nw`kazt%f$qPS*NyV@6ytH;B{&LBNGet z>2JezP@y<_FRaCN2LOZFk7yN_KvHh>#>VJ0X}-JMqt|Nr;z>$o6pZ1VMnf74^2;w@$a|9`_Be4VOK9fX^yek$=Q_M zYfNsI=uz}0baXV=%psDA;2XqnrWL()R3gH>275#JJtNOG;;%%>iD^WlW$g_~VYMI7 zg=>rWRyCVI_Em_ro13yZD7<{sH?lD{s#4SS?MfwewHQ6*PDkNn{f^wH?#~R4%jcZ+ zx}Zo~*-G7Xe+VDL!@Yf*$BP2p?Tpc9i}*l7iH{DB1>_ut@OoCtC)-!!hrGH^ntB9@ z%yTfQZ%?TWZ2PwEl^x%H@}0kQO`!-$#Wx>C?Kg5ZKFd~`QM=zehy6i#aeQ?%-#Nz5 z*~0p@`uJ)o!O*9UI&1BO$BwL(&RYXh!1St_&*GouVtzu`>g2evDBdwP`Y^7u^Q04_ zA6I=9kJC9knCG#5!!<_T7-odg zSiLR%g|DkZ!7?S5)DNXB{NBD_LSj(o66@|hBrL}_jwq+72^g+3qB*JE(4!~YIRm{Gr3r(-$?RxPHLSO z@#YwBoL}Qr@?bxAl3aH4OE@{h!4L0ukf-v!@gJe*O5GtblYexL0t-w#*M zOK{Y@lEm5CTIGJww5NHSuT0krJ)MeECZeBPk>}y;VT0(3w{_-uRFe-Ob*5q`@5(84 znB7^}$opYEyWfD32b-xnVx$@~$KbvCZt805ssn|YZJmbNrU+n4q-M&|cezZ-bbJ=@ zTG%P7w*K)O9C3O{2BvZ7>Wywsre03D3T5P8KqsfdeDhi5ke- zg=6ea`u+neAfUJ)MIX==vaZ7qQp!h|?nxno(+sRF)*;9b;av@;qnh{bX#C7-3Ii>? z?0-kndJpn?R5$c{QEsBjA3-Ko2lON1p3|}_XV1ohG^Lc=QMX8jfaxj{&P)dAQGVyH zycNFJ=^v`^@ZYb`3LHV}4cNM@dO=c7TQ5`6>B9)nt!vQ7H zzJ24=a*4%AcWjKOiAc_;qYdg(1@-3T_)~)VieF{@OsfFTr?U>~1Zz@_Q_$%)ZC;4% z$mt^M&EYlQ+US(rPW}m=nRfTR!vKlMdk$F=lgyPvLJ>~@h4hTngYD>ppD@%d{n(mS z-lMqE)>#s*CmQtCnODgmJfAUMO34MSsrNk-T89>=o?(&`*ZQyB30W;CeD=&KW?pY- z%a)DjT*q2S>1sV2ZzS+g6iCsyN>HL=r{1BI zaJ$Cb(x(F1X3n{-9ttS5=|qz#p4YiJwgGxM*7#Oj*<02?xWjRRN*s0xJ>2Et$!mcx zpgnMQA=8q;TfJzwh_AAp@7``7VjcV~u@r45tE)+~F{C0PC-csu9(hZ~BLRqRHeRJ^ znvUPgC5=%V@Ecdp>W$Uw@X7plN2%XZMWEZh(%VeV@r#Mp`>Bos9XZ|S?tL67M|J4& z!S`Sb_$Sz{-*rn}%6nM~vEF@e^xEOcCuAQ1>n8;(8g$*@f!-s%X}+QNvbiNL+urMV&-GWSjh2Zql4II+?@bz&y8xYe*TH7FgU&Wy%t9$} z<_W9Tj=ui5cyuI zAg1GF1C!3(2d$bs)@| zEjt0-JB^FEZ}V%O&ikj2UTr zNH~hi{+c{IY&qXrFAHlUPkNv&s*K4CxVNLk3~VMaPe0m^$8?F>6HtP@59frm>(&gg z=m*2_Z#7fq{QJ>!benhz=)OqinmpU{DAU%DX#AeQryjk$8y(+2uTN2FLOEs(~o^5Kkx*Z;*_gO0GfMe(1`%v%A}#I#0>x z8I-Go;0dJ#x@fbXop(s*d_RQsE}E@+wj(4qeYHEwJLie5JR^e|-8wu|9v`mbAR+nX zuhp-Lg8W-xjC1(AqTi8I@aq$_yTk*>qEfNpdpSJqQ~d^dKz}=;THrK zeg1?-41(485*#l3{A?(xk-UU~kt-IVN9f2fmNgR|#R+Pcbmw#PgUQ(6KIl&)gzShy zeB99*FWf37?HN#57hUO_KoEpL_51k)9{-nZIZ@gSU$|~~J#?cZP0Ara>*s4A=ipK^ z%m}-i4M-n1!pwa=7%f&(r~QX+>>Qb^qd!GuAsypKzE-Al0-WP|4~D}R3iRDBi)QhT zGxE`T;hm3qStq8)?#_94#S2 zEyMTo;}ik)266(8NR9aB$K#dx-KMIAdfb@S5i;+HHom))e_5RV**#)l&Mf@PpKOc! zM2DH4(VBcm_8Elp^QAx(z&6G2dN>()P2eC17=9A;I{3!B)ZA-zSt+8sh$d3ua9aC2 z4}~r2cFr8$7LVzCHa;y#p`YHekM@8%fJ~;NxiW!vEVi9;)2^A!JmgNXrEH82<1chV z%NJ}Gx|yXm^t&Gz?&I2JHW?q6;T&`APeso8m69{U8>c~%z8)pdmlG&A)Hf-&bySQL z1hG^pX3_b8X#m!QB@{T+>a*gKFE{*Gefm*fJL}hRQ@_PvN3QiY>R)FgX||V!56!?i z4`cUzF#E94-ik`4NPz6$=klPHuM^H~huKWHJi=Ez-Gfsn+<|QJkya;vmux7bBUqbt z_%5U~leq53xR-1JlfshX2GnvEQ&KK5EP1RqVwzwjrV_{bb9hcH}QAx@rwvw2l( zIk)1JkY>}t!oEviElOorpxo1ui!pTB9i;U)qdPKeH&)6{kV_nBOhB%8=ApiO?dWn` z8@Gx{#MFDVo!{LZZ*LT0kWG^1$?8EBYv!U3UiPM}Pv8Q9np4*(cw3d_%wf}MybuW9 z*~y*@+V!~sYVbyQ^^S|Z=8CQ6t00$9%4bR_n~u&WY+AdR&3(uBgww729`iPvZ8cte zuV3kV{nH))@Ns~~u;7ckoMb<-@)f!o7&UY&iYQRT(l_wnQB z>5UL9g?MS&?!!;&l>;qSB08vMkNdrmYhK=b+>SXx|bO9*K5&IW4(AqUU$G`74r0;R_Uo$6Lsbv#h^H^p(F`a6djA&QIqH z?5tNh%UG_gucb^`=Tt04`smQXN_3!Y-qNdSb}TZxBwZ6_(o;a6C&4(qzAtoyTfHUu zSFw=G)>VrWXdR^;(aGVe`Z>Jq{R{k{$jRuK!A@LOJgG;;uV2 z-amwizNpHPF~52PJBIY|ALl;7Kq~#?Z3XO#pj>T8cTNu5c#*=`0%TJ z83o>&+`f2(rKN~rg%l#y`9fg$FKkM*uvBGo8DdZpwiXR=%+q}(beEsp&?xnCe{Jq| z|Lza&`LwfNq4N0lS~tJAUb*#EaDbr3+I<=u1U#!pA?0+X0d{MS(qa=YHlPDM9d&n0 zLS~O*dCb^9V|Ok}kc`s6b)R5rY_K|`K_j)2^V#Wmyy`SkhUe@1r31ZsxED6B^!v^| zVYtmN%3wwP=|~(3QjmH}lp`UWvIN}yfE;V0-Z28lws;{Q z`}JYNf_-eWGW;tTVV-XS%5QU(y{qf)0j3Xl^h{)%mVcA2V!E z^g?X&2drqm{P*UdA5^!{jd@nA{gR z7wvP5hrXmuekB z<~AaaX*xu%c6Uhevi0TF3a^!InY}z6k+lG9i8?|KE)tR?|{P6s|Gy+g>nsG_sID0=lZYA?W{6GwN?y=_z}w>5XMJJ)$<#}4Lx zc>_cr>4zNHju-iwgzCrYfjMm=GiZ!Ozs<(G6rL7d$I>c4*gRG9`WX))9^2;;u-Nrt zqtRol4N9gHG$K?+APZ01kMG)w$~Sok@K0Lz3;hFSzx_r@dh@>awYJG%2*)EmVWsj# zvs9-~VWr*yTzV(183K)ZO+)87$5{ z#5f||-6LxHqzf?--_WZ>Ta~GY?3)^Xn$w4R9ZB^ z$fx{etZ>Atfvu?gt07(Nv_35{ClC%79rRq`l1adTiuvt{m_xwBqVXD4J|K)tXJ|NV z6k>l^q^jIlyi6NwwEgwaV#i?IksV(RKfnj$fiflbRXzqMhu8}JFB2;yzOe8Y?p-(@ z4j<_DQdkG$$3xX)RA>smCDlpGbLR;eb$MrY&W58p#^!7v^L0WfyXxD;DV?(wdt!*G zf3f*RP$K8G>CZ61qib|xKHc5d;6*1(^) zyD0}_PR-JveYhmk0uxPt3b}%Ky7Exg z+avn|P+{0mo4V@rwrq#xYrxaSnZqM>%33G(!>@@?w5prxak)bWh1nI()Ys!2h~6r& zb}O8|)!nBH@9><%e0r?9O#cux$$I?7@p=w~^jCYzh2_J(1M*mA*%CjSTe_hR^Spz82JlqJxmp z7gXO(=C^!vShwC}GtdwI$iH#cw|?Rd1l_Ie~!z-X}*#hB*%yqE0A_^QLFN5GJymkVYvRq%!K0(QBb%Kt;kR@WtXZ#LgK z@z6YhWFZcACwIf=x8Em6Q4ix7Y$fUas&8^9?D7X^#OHcF9DcvZz@*ST9$#<3L~S)^ z7p`+J2Ewq06-6#MB3Q{7`@>z~yY=^;Jq7tIe8W78Dy%z|k=>N_wyQ#Vp4M|i8Kr5% ziO5vS@@XeTe^2k5Cv*E+l|b#?h~j2R-|Y^x!oz;h=jM8GVL;S{)oqj}OAf=+6F!k8 zo)6X)%tn9@$K%4qmxIMqe9fEy-FGEV=)+b*oB`H~s-4FW!^r@e2X}R3zrHF8Kiqm$ ziKOougGQu@395ph@D)XIgG14i2aZH50knkY?!6}XTveJpIw&gD$7MPAj<=#=YMyAb zLom#b1T}5vx@+K(WufC!m|5l9H3JRz@}k7zsjRbcEG^^>u&BN?y*W7jG&vX$fdNah zi+t=2ooBlK`|zFm49XE3JS=Q9kqvJOP4Mpe9ku>nv0s*t{oBO7^MfH3B6?>nce^eI z?B_J|Od=Zpt_tpXsvm@8xebIW{Lug8=@364G;o9C^YoD}2zZpwJhk?OO#xH=l3-u{WleOM+}eSR^+dkL zu4?z7vtWDeU&cAqCX^h#{kmPVPGp!Y%gs*)vul_*lN5e>^Oss3YI^IQx%*S{y|)L| zPafq7hF`WB-|u_d-qsW^lxb`~X_X&N%IA4tY%ioV;Wmj7jxX83K7*OP>UHwV&meN# zcO@MzW#HTW;JoQ;-08|o>nHbuq!~O&2*A6n+(B`qGv(Oy<7Zj)>iQOG4xR)#lRJsq zUgk76XJo$&+o1~g-40r11Su63!R~JBBraX+J!l$?Nn~|>?=Tu`f&jsbulf-0mR&Jh z5Y$ma9@eSJV$zZ;8z4K9`mDR-MJK;n-IwP)Wzxq>{-883`0TaT0)dtEoIbVEOMVK3 znL68$UV5k5PLS_>&X|>}uWxG{;_Bix3?)tUzTTgI`unR6=I8V{ESG;>OFNht!+`*; zTmi`Gr5nTkw@yzVN4S(4Ck}M{l%sO^hG&5Pd6pxQf4LayIKV4y$xa~V&7%zu^JOI} zS{vRQ=&tG7UAHgt23HP+y&f#!@<$0fIjPv$w8Zw{d3W?#_I`KOd#5xjd`CV#3yaDj zt-h>5?bKZCpZ<{a7&1Nt{71;D&zv{<(2_+Bgp6;5f!aGGZw21_)l^g+eL?%m;^mgB z4!0+ahl$Lp7Og>7jA1}=-WH1O4=Ry@&-9DGU_CPS9d)gXv9h-^spadk4E8?qzE&rF zqn&6z6U@#Gs{6rqH`NasQ`i{%lH6?H!bP(thXD*o--_wi)^&?yO{$Y|?ohtdF20oThv zCf;Z6UG(nm*B6o-`i3+g=&R9ffr^mZRUX;!AD%(JFvTy=Ew5|BJ8BSCyKlcFh`F8K z`t62xp+$Vy=n8G!uGafX>4}T0A`$%bYY*CTv+TPy#!Wwsr1)b$gBWJ@ z)uDFZ06-y-O#9D!ALZ9(6dog3TuX&NN>D(>Kgj%yKzzAep-8c|d>nQ%CVnm4X?ehn zAsl@G)j?=*(j;j9I=thb2C~>ldd~zTQ+yZ>cVe=C$R80zA-M*az5n+tWh32`>qWTNr@n)?awuwC*PFQ|2 za+9-+!`Q<5)RP&Mg}&g<#r8M>BGDw@jKxFALud!hYMDM|F*Mq?EnOeGdb-e&>v}AP znO=UhHO1d1w0LI3Q&rBKYpg{Izfmb_3-n#fzW;2 z$sr=-OT7lql3q>vaaSRS*xr-zok478>jDR}8EPK?a*BVekJ#~uf2co-&SXJVYzv|v z#DKmVii*++0s=Zi8W9j_rTO}d9KAuks=Ae_aL(QlYt^~`EMJCsfK)});V=#v@2Wo9 z8;MhHaQhN1CE6luH?m75NT3Yj*1}lOSH+n`b5}=(g_Nws5?`z@KA=~2FSqZp0iNpg zBE4wOc@;UCP5aNU&$_{8A=Y&Q;coF+Mr^2T6Vw?_ptR zjkxlb`R$`l(`25qlV|XGe<1%BuJBM>%)ry8A6HrMd7V@t{Ya>@A)(>6e4u6MpPLKt*D6$irh-M3h(m*gDdx0_UC}6;4CHGHg&?)eDvjAsX~rYv0@He zr!)l1RWu`iX4Uzg&ax;Bp)kJXM_6B=Ir`8aw)EKt_x?Pu)1f)+l;r_LN(~{xdpeh4 z_ugwpU9D1sr(jKe33l-Y;bw=KmRii=cQgc{;u&^cOG8@YoTp=BN})#StxFAbIFH=S2j-?$HO+xnE0T~+3a)( zCVs;3d&Awje zZ~6?6{Po&aHe^&26=XxLF}n1*BK^i3ke5u@xJ6-UH3b&A!?!6i22*$v>XEz(cTsd5@hk4?h))qGROf(K};g`Rv)Ul%jSeHHK zVU*KhjkHX-?3L=w_y16pN}G7-K$jJnY4E-d0}xtUpir5Gi*}>Y9Gk3cDQ7zBSy;6cd&DC|zF_mtT+DYc$gvZrZtV9hd#1 zE)PZ^3smv*&Bw8MF$Bi+WwF^eYZ>sWXK+rr7CmpA_xz4yv54luUH5NrYMZg*Z~Wx# zflfe)`gNp!d9OY>_VN<}HQGX-td_9gokmRWdVqiy3@72S0BZl9N#`;AYCsZ;U*+>u z$0vqao&R{$xBHoZNU>&=u_&$$ClkeCcmYnAAK?g70EWc6N6+(`Pu;UMw{2NutA0`+ z(tFoD5m$s_ExMuw{E>rEWV-JwC|m8AI)-9O0K177R2g3NACWmjM{k&6sM)pssZ@3=$z~b(dm;6(BdrOO0 z{P_tyF&O3*3_(Lsm!n^19~6W<_T^4tBV0a%G&5ClcIMyY?vKPeXwf_U6*eA?k|ecb z2ff^RCtZXf{h1y4P<}K0kU}GEP_z|RByIDQ9gycLo3TqXG@7(q?L6<(u*5gif7ZR+ zAIrN5E)16p`{6hu@UXL;y;m`o6W;E!DzyB1gN4*Yl<%xs4?g10Pd4(nz#?n#zW9}X zT5H*tyco}7QAWuQ{eMucbp@aM+pR+xDTP8&y;#Plq*kiC@Fk6Ap#H^+LPfvt_>Wt| z@6x`Xj(g_z91Nql-wW_T!5_;zDAt-{H!r#m!F?5N+Qm2o4mNx8*w0arXEiO)ls|ma z8<$kd?M)^|2Gi-aM$$6DdquxEJK^L}&v($98-OXsv)-DAIp7` z;kUabw_(ak+#_p0=lIk7Ti$dd@ikR6wS8PbovvKKyg&W2|Be?OcATBHf+*5fFFI)h z5bf+Ib2oP`eQC3kn{joJO+Fm=vIN&!d=>6KoH=jcHQA>|iA0Bd&F+U}+xB3m1XS9$ zI)r;8&sHohoHaieHkJr(_NyL`V_V=F9j?dB@uye&@_yb7`-E;SKiucac=B*n%AY?` z`k{MxlwadH(9}<kK%=BIy7^ka#P|c0s@f}4e|5Bv~oCVup zPVF!&#?0O>oVpz%8YL*8$i=-pXuppIs*&%n`9j>=AJ$a0RYpgSsNdnM1OF__UcGbK zE}D>B5!|Q?`SH2KLQLM)!S{OZ#~KNKNYBUncb}xB#3>m^z6%@1dlYzc{dX_+WOh!U zP9-D;vc0gf$Fh8r;}qNYry*zrQ`=qZEE$+i}tLSf*ENxZE`iK6gm#zVQDXeGCODX7} zI~)fK8;QMB>@Dn=WK0B+uR2?gEP_-S&37NN^-|tDH z;>j}S^OToIX+(!;<-6^3P51l@MA;vODusVsBxIf*XK+5k+iQ3Z2Uo!r0|Zs-AMLOq zk8VUb6p#g=5YXQJP5|C4Wtqw|z};h9?jLA-F`@r`XCN*~Zw15E&nehr?`ty*J7Le3 zKYZ&JS484q;CZy(CUWfaW=yZ^d+mg4U(BeBY!pP1zdf}m*sC|E0=*#^S=J&_BYf4F zu{-6o2$3y7hlfM9WzE_p{$(^*0a1RIFl4&MCf4wEGk!#>=Lk#sf-owG&9nSTxuk1s zqkqeuc&do_XF-T{{(OHEy@fN&jxL#-VtK(6U?-Mvo_J{tO`tA>6J_Odut|_WGf4Z0@qpaov8`D(=EvvJG#0tZ>xi(DE>P!zaY1q zU|2sni5b?~t^gZ7XlKqL6rl1p;qx3`FIj6ugL|q=)NIM=UIP*Ka0ivy z1876Q6%1D2|x1bVHI@`hS3}+_`v0lO}6($?!8y$2tGc4IdL+x?dc|rq5MQI1J}b- zLBI2F^~~I@BXVK*R7(P|llL^9*L}@Z<2B>%#|S+VS&e#apIR?hW^+rLgf2?WN3^Y% zn6s|*OW0+%S~j>knIFZ5IPyF5^?l_&;X>UH?!yjYxbQGT<(K+(lukusPFVh@(9Kjw zn94C5Ebtc@UXG97E|bwnAAjk@KhIN^izPzggkr-28~?ORDK5G_sDyYrdYBYk80+M3 zOEe72D-dn;h0n3x`3k#z4d*xtI=Yqc<(<=IW zyk)0{J>>$rbeG?7(akWQ@6JW~W8Ij7kG}Sb_ME^-h++ar6;8W0$IT!N>9JSmcZr4> z%vl4{+xgQ~ruOmH(l{&@`tFq6)QPH$NW+!?T(e}ws$yt1WGrElu)lIq6<)*8B;L46 zj0B`mdP#2b$>Ujp-cJqA@qtzd_CU2}!T`?=^ZwHh98MzpOgrgs>%+LDN2z232b6s& z2LHef)=KdQPnas}h$chrOm8}6mq^zty4_nUF^?X{_q&=~|%~bTs&zB8ZIXs|f&nMy} zF+KE%nok}Yhh0O(D7)Un{y1`JoKwA!+%GiJ-|npuq0Zsv$V_rSP!(rhYHW5 z_~E`3h)5@*D#+c2p^kJxBJWNYFTJSAw^x(Z%@@yeICKn#R_gk7IS>3*G|JEMZu#7~ z`dKKjutPWhQaJ%}q11#PNp$#>}RgBanw+!S{{y*-FN^eTHZc+-mZ= zxa-f*>0NLAoAAP4E7NGS?j)YRG<^AduikW0(7idm#3ahhHLcht9yf z+rdB~pUMt*24ad;_8}=c(66VI+943@ZkWk)f=U8izFT9lk0{iD_O&XNpyBEmoN!Yi ziV3>nxcCII=eEaUJHnhONErfH7P7ERkM^CD zc=g34ilJbPRdn((JHB7fH%QfA`zRGC<9YW(O;rrx6=L|gH$10)=Np0J083?c=2y@I z!WCli&HHsEQb0QDJpm)FD{hDz2YGLs+1kJfyr84@B6oIS5DD6|xxQA%oW7R_{?mVN zvYER^ev4PG!z)ZX$1J_$M|`e|NwacCM5w@4!_a57Qj8Vq9ZoSuXaJ;{^ zHp|cN@_T#?L)ZXTd#x5KJ7d7Qjdz8)PKdkmE~4A~i%>48Fql9CwaoQdi=QaBmHo|e zQNg))hwCv{`bWlgXD2+I1#wfNn(v?wO5_^%7j}lcAm{JLd;a3}BYRMv(8ix#G~t}g z*3S33b&$6KEVX+iawXC3WvjD{q}==T%OlQj(IWAWh7pEzx=m61~zz< zLWR%wYI5sKrcs@n+fW0~hv128Tilr^9lAV<8#)wBWYiPKo%r(xbA)1Q>i!pahv!$_ z-^Y-?k)99=M~&t{{TL`@YHn~H=WRF?X?N#RJ3Ss!z=VwL`}`g(?gqtO3A-nQq_3Q_ z(y-h@ITH0GN)|F$TStNWW)Z19ZM`0Yu?;`Hl_Il(DjRDN5B9A32>f@~i#0zL}W2KP!kUVvX%ac!`&%+=QgL$xLgIF^-epRzd!jdW{IIIR*y zn=$XR9H?pk`)@*A;zMmsEt#FT2~KQYp~-n&WzqQHhCQ*d1ZT?)k9e6oK#h~KF>Cmb zK>W8!JxXM?&G$jOmCt#nimt-Vu}4g6QKTH*+80yAAKcK^YKS+6TW{Z$i&QL6OJNk!2Mr?F2%T9mwkhs9 zzY%*Ypc%B^(nm4&FPiDXwrCFfD`_%5(#J1{{uG`N75WAtUEXyypTpB6S{aEKoOs=S z_s{P(SO@y9?kdwE#V$IKY~@4QBjdEUtL32eY=4d zH;sDH8U)c72m#9JR}PrJemK~;82U zWqt}eeD+8f8?-erzgiC^O}8&(MGu?Qi9OI299!6Ub@3bx5wf z?n4@UsBd)!@i{Vy7D@AmQ*gj4Zsk|`5S)UG_g+{)XZJy9J-G7~`n>19dr!qmXVV~% z*{&-0&H3KKscKBW@`<$M_&^w`W7gHnN8)C_w0m?m?+0MH98dJCmMC_1DZg;xdg5j? zMM&OT`RV3m(F&sW2W7|A6UO9@UnF%=?r&$rBi%?v^it-fxbH`OGyVFdvtjzAF-b~` z3Ix?pNk9v**b-px!o~aI(aIbZn%S2~6Aj91TxS357T`O!ZL0VI^--9$EJ<9Nlm6~pUE^JC;Ak^Q_BdtcBtmBSYWFWhz(T4sg||YVTLVCRptD%$(5Ns{||S{KN>E@#n)S>&79 zhjSVaNqSx9k$D7(OA|*k#L$yA2-Lve(Q%Gy$iMydJvPD~5ARzveZ>YBv3B>siRyqg zP_P@6Vh^T=m)s0;o9gfBy`fi$W#X?GMRiqwQB>np+Fg)X@=sjYKh>vp>uX0_4-2o_ z+zfFVS#VZx6NBk`1=hgy)*QPVEIy;rIy^ON7I0S`%2#jssBOL1@EJ3d2}pB}+k(6A z`k<2VV4C~sy%$@G(2mY?EyU{*j@s*Lq`%`SJ&NbJXk`JSouh8e*!Q%7_LeMtSPN_S z-gXPT%)+j*J(f8a6U+e+i3w_aU(;_G&PNc;=*TZ;5L{Xg7N$u~6sCEy3Sc(wp;?Y1 zc*3{C5Gg-GK!s1#uG$ zgOFn%Oug0!*|nZA!{{y(g6fM~5gYlWcce-8_3RF{07`RJMMuVNoQ!j2YBcr0@gZ7z~-C>?g;$=anpd)7F^;u%ip4~o(*4k4-Vwmqa~!qS;x$^T2CD2 zkk70REb6gPXS58~@8^d^L05hOC@D{Z%uVdDSD%v57-0iKRB$%WGh7Mib2NULJ-X)G zA=8BVQj@%Vb}Y&ue)L?f}4A~q%TwWw$xmD zAga7}GSHi`p&FQ4oW*WUO9hu~@&j~lM_jNhukl8Is&t1!y={XL!u zg9*kcbACQOkSgelb{XvS`!l)R@QhVox={KKT6ePmpNr{RD7^+Z$IcGr4ZsIx_clr4 zc7IX%uoV_yWbI7bdENCl?eXSZSLR%faIZl~uCK-J&aA73FJa;wAPL$ZLG#^kJCyzX z-Om#!gc>dzD<4T2p3pSqTxXly%7<`?)NP!Z9&a|$8zge94-j^=zHn$y+h=UML*GW1 zVQGU`JM3;Z=sd>D^InT2_L_X!ri)Xietb#onmWekyVp1C3waW%hzU=R2 z-=qLPJWIy~gFMnz-x}v>?d}^{3AI4A0qAj$H4Hz|z%t(wNJy9Pb>Uc0tzy;xJ)Srm zT{_;nF%?<52e!pUl>WV6aDG(iQM_&+H5D>{EqHQcS4~b6O!wI6u|KnM-P|Dg16~>YPpi$gNd`;A01wvCw(ORROyWK z&HwQ`!(_9mKqGlgMw9?%henRiq-N(RE$O#;Izb`?W`HPGCZ?>`w&{$+Ip(9DTpnS# zdY}I>JFunK;fC0@D8$uyg}GuP`Qt_4-mj0LOw%g9vO7k=Se1R=;k+->9&15NCzanR z?%d&EFBNpbh$#X-N_kc9tTuN>F&kw5TMri-3BjOvyDler<~po)%pB;GPb4N61ZC&Y ze9|lzmG$S~f{d>{Y?Wyi?8M%eQkLFzX^SWK3^H|ByCwXp+nW;ZO&5QSv@LJ47d;n- zO*!%-lFtNvMpKzUSDP+nEf0_*u5f$7YIvfvV|&Rp?Y0waB(0@&Rs?GGh^U0&h;Mu= z?!K85`p)i(&%(``nh47jKmGDaZyw6-7JRm7BS7=5{@0Z8*SKlhKxKxx=B9 zwfFA(If`gld!g#F4}$UhpF3BM*6n44gqqa}IxzU)dr*Z#^#iDL$?m2~P|Q>66Y9WO zw-n1N0<>@w+1)4AceVPivgK3-r7ge977PG7K7HQlW0ttu5c&>?kztsR{dsnt&PBkGN2VuE~Yo}iAnTdHj}E)oz-2F!@~uaYX1soty#0>+~>D(4q!FVDEmDYDODaN zKmF+SIOgx;mvw3887jF|i+Xa2NJ)zk)b?xpX z#5;F?6YB?S40^g7gTh96&4c*o#Y+=nzd z{XPYqDsgf`c$^26o){;-`6UNyWiS$F=AfTPMWcy>U|WVSANMDYa6UNTJ1PpbjqvM$ zG*dBy{+_kgu6gir?Md6#@Q?$()#^JxpPbukTjZUwE2w#V`c~{c`cW4RF;?a0k z_v@{r18h7+ z8%Zay1c5Vlir-`RwXVc~C@0Muc9W7pcYI(A*1gZ=&yKhCcLi=tm< zQ-R;ES#BgD>lo*;rCPFc`_p$eL*A1$q|&&xtp&4(40o}yp-%w|nh`^K@z(dZaw98aSJVMfN;7E(9o?kqPQfYZVKhwqA z0R#lu6Ff3ZFG4p5Ry)5ela4XimW)2Y+n%F3SdZRB<0@djgd%!V^wFA9C+sR-&umjf zfq36{*9W&de5}@XOIYzN9S@=Y7v%Ng{&HvcP+usA#pQ5svlxD#2YaJOy~6S{E^%56 ze@jRle%|H^UhD8)3VW?31HZ%M(96i*%$1PAo3ieya?iW+SteVq8PPwTtHxURVB$dF zc+tFGTn@@LguzvRm7UU=pc-IQs*iH0%371A zdub0F;GxPYtCeuZU~aCZZ-6kl`qR179oj@2IWq-It7 z#Wd8=_0s`vvNl++m_%0~yPO|W=sXb(d0+?;Uo{Gk!@T9Pi!04y7|}+&QKmZuse2PA zQ+_vVj|3QRm0D5^?it_YIyrI{F)3zGJ<=H|@+8r|_s%@BxUL`c^rCw7eM${}Fr@YD z6<~{d+L*RSu89%=HhvII?e0l>Pw{t;mG8_|D!@eglut^LVMMFm!>end-llc6_zIld zG!>kZR1YEpVxF1{6VYQwJeAs$9+Qx-(BnQjq%hY^g zlZe`5)vEO0_s`M&t>aJkVX9B&dHZB)O=9`pxBJQwM?_`RUnvFt$WGp|Jf^*a6vJ`Z zPi`0=6{LdZ*DQkiGbQa=)9Szpz8vJCK-|e_)0dZc-vQ4@oli92?3twD>!eOv8aZHD zn}s-~l>JaFpcn{Gd8I{YJoV|;+!g8pE(d^2Vo0H3bam#aQ&>|U%b-?yjmG!Kcz zN!@^YIY4CKGw&e7YzY#()ZfgX>VTx5z>1!Jr%gu%;R0s+c-$4H?LH5wpcS>T^5?uz zNOsk`$5{#{76ZPwV!@H5V2kwISBNj-OR|F5nO&e;l~eCRbIZeeXUP?Q!Ty7Dcy+ea za7bRu9^{RzO1}#BXwWEqMj|KdMQ3hpqM@~Xt<&0unF+z1lGWq2G5IBWK1GU}d;6o! zb}na9ql3wgL8@k$uS9G0D8v=~plTMwP+0E2m9tJr%E|lcFY3v{!HPbF`Lnr?IDhZ$ z6l(*a>3CfT=t^>_r#WB%4jR(Nu;#r*SssRJd*e8+ac8d$<>nfo&Ex z#^@Wp5nFP#Kt#UZ)X2l{j&q350AX~b)a^el`t&UacJcYjNiN;K`hhAj*`=F%atKmP796AjB3xV|oiZFG9&dbUN} z@=Ns$&x zw&ZXh)Yj}V&!n#WRnc=C_F3k;dc&1?89iU8kmS`b!o^C3(%GXFD}y8Ka2mw>?!1x{ zri1U-zx{^@t)&qRD*Q3~^;++Iz7H@j$^jD%e~(u0B7{Kc z$}8Wx$1lV;wWyx@&)b^{W@HPHiae{~9fA0B_F=$Up5M+o@7QE-74aSQ+^`ouX zUn&Ov_Ds>{dB1e*HLQ;Jx7R?sJ{`Ak@n4End?e1jAdNrk_HsG^{iskgnyjH|zZdb7 zxSSb*z%zV8Vjk8ZMY4dnlAb(>hqL9R?Fn`QX>g_%8rd06K;-^ObG+@C9#mUg=F<73Wkr$0*6>0xp`G|3C6k4>ev|eAnG@-Nppq0y*_)jgZ1lSXk&u# z+}Z!2fq744J9v|w$lZrVollExE8vY_Q6a;MJ3d$$IH*O1O~A2n5+U;kpT3Hv;Wr8y z{O4y#G7%a@Tk(QV6ECsGsFxk|uvpp^yb!;QD7vkZ~Mo1rSJyH=t%CZioGG<9~9= zV9SIj<5xJ9?Lp=h2^G6^{mng|{EywL)evLhW|_KIIDc==jvhYBpvjL@=&lTHzsWwn z2=B0=&vgfIsle5~xw}P~z+`6UhBxZ{8%ZDLiI>0!4fq^;g>}<=@iOs?<%iS~&Kg1v ztw>?6E~Pj}oU>uuX)5wceote6@MS`x!%GYp5eiX~p;WgCr!L%=3`(C{MY$~^b4b{A zdMjok!H(>RWWBdW{HSodx=plGUCuDLT1W|<=x~1qp%SkKmoavx#jaqc9Rj&pe#ZLz zW-y{w`(wpCLkzBuxXSZ&gG+0#mc|aQ<@SEsy|d2&{e{F%nyW&{CGO1TD=keud!s&i zt`2j&oePQSk}G99jS}tDzC-PGT%^VZF<*!#POYCCa;vj3`;=VL>1#H*QbVO_E(0k!P|gkDMR}z;fR)`{Gu*D8}QAb zeu7b_@;>J2+A;lrl3z}QI<7?DXv-cOfJJ=DAsTV@yxY|dCn;r7RWE#@M0z}<`O{J)!Lhl!fh$@UxMQE? zEiy5+hDL8mKJ@EOOjr5&Oat*p{A|{Uo!3E2xdn|28W%BL0Va_>U9QIM7zX@dCwvb9 z1OIcy{tuYzlFZYWT79+O9RNEn>n(P0)ngJ&Pg#9gidzS0t3)oIoa?MHb6T~nrh0FV ziZ1mCdm_6OD^RTYMP#1l`|^4pm9iJn$>Q5zGfI3GImk_s=N0x@EN*G3(thN4^Y^>8 z@rpfl0|}fmnuo6@GM49#c|LmgA2%%@0Ff7(lpKDcn1WUwm+nq1Ix=U}m-!v*RUZxX zJ33RO_pb-|1-G;Js1~EwEq#dqV55bjQ)Sl|6*;>>3l0C0-|W4yttZ3zNlcWiMmnj; zHZ&2IGIvn)e8*sQ^i_Y)alQ6%pHtq-)SL?>)k)sSDfjb(e0$PLp2UZ}1-Cgkjp>8D z1$O$|?MX;7%;HV%pm8)F!*OZX-I0!V3A&1qFEk}BAl45P)-^KlGCq;J^c85oB^Yo=;A!(bX%`o zZ$-MFpxpeOLEccv{y9jK_al1sYSP7}mJrH9bm_rsI}P!49`uv;`4qaUbi(&uu;2B# zF=wv#21ir3+3(#;b(ycv=?m8w49PD+bAH;XJ1yBwahUiTU|{%|*NdnQzSWmkdERtc zKNA$`rJZz)4Hi&>S4AI|lhjX6N=9l(Wa>b>%9frI) z`}D;#UUO~#h&xeO)WRcvq)G-mN$tzu~+Zd&Zkp$#Hxxv3K==wr5X*l1b{2@XLl0J6CBM-BY zKW{g}#j8(u=UomBMeMoDro;5n#Me*!J7(T&Pyo`oOXz7AM zHXuaL%qGHhP6eqZ&t0oi^ZSd6FGXKbp6! zigmKt`#=4KxvP-MwJ1C>su4SBIla`a;#nh5@QD8yq?Mp0urxlAd|4 z4yCEE=s&%Cja@w_T=`ffyih@Xczs?^N|UMIlOtL0Dc*Pvq3(N>N_!TsDzNM{f@ZV< zw1;6{x=JcbAG%MHylb7ojO1mhL;N0e&P07LoA>8Y7H_y%0r&lrd}mJ&TTAcU-dC^V z@W^#SHg;@sHyqEKj{qGJ@@9lnT<9?%z21#0UuXkYUs^2gTCrr(&n~cj1YM&ajgUau zgyp0Yy*()R`!H>~KR+sE+|i9CaGsIUyKGFCDd6|Y`{d?KPZnu=Wgz+l7kLk%y+3$& zBiE|FQAYgnL#-AR|4S?qPa)7fT$W>Nfxt0_O?)WFUK1zdO?o=JR1=HFd&(TD75k_S zcV_alK1CA@m5WkrG&JGgi+gIil+^j1gzsxhVll^bn`OuUA=n0)8H*doW2zdpY!cDE$?@TV-Mp!qSIy{lgj`bW_~14>Rk8Vf}x1O zD$0Za9XSt9za@1Mj}{Q3x_lA*gnD`uopjMsTX5ATJ0bVL95ay_ApZ&ZP;6Vgor0_y z*NB5N8bes>gWA?!_4UD|OM}`BP+yM;g)`llx*MLmXT*0Y1D&QUdToTR9?1LsB9n}m zIyzovBO8aP4M1w}Wc<{Y(R+nZF}H8;s+0~`R7_N7vxpEAgY%p|>*EoAgkK(H{Y4uD zm$%s;Z0YJ9L0+qW8_x5@zr7f3KeIV)oQb$soT>ps#H?AbM_AA>m?OLL4V{PB1s(Aq zjWRHFh8$baaT$!Nq*0}fW#kjrsq1K&s<((^W7Sry_#4|m%p(iWAeP`&L7-zYeK2)M zKZW2S{AMF*qfY)DWQ*;DJ+8KLWbpihIF-eb_}ExUcg|s#IiG~H-m5g`K6cOinfUs^ zn_n1y6>Pjb5QP5Zl)Ume2>@`vicTJG@`r(8A*G=en8@&#+jOGx!bS+;Z~m=7_&^%= zW}^Pb@B}BrM{@~~~q56!B0_9 zLQUIcn|@FuS&2t@Prpd!?1=zJk!*cAV^A!Qb=@}RLb*@5OYV!Hzfxk&!~OR&!OhCw zKjZjZKhS>Eb;HKo9JtE}?Jh?5saTV5dV7BV12K+lc~+uma!Vm-5j6 zW#bXI{gv2Juw3fpVfTdqawRtn*t2xCGle{QuTovcq&}1dkULbk?QdX3eCJ27cqrDym2 zE1@eg5IY7~(|2r@fI!s4zQurY6-K<4jwn2S{JXuI8ac!fIL)5I2E|JOx`_-q-TkA8 z_=7ZZ`;-jJ3DP#Bf^VBOy=@$0)Xbxk#=>i3-)HGJ-Rz-)F{0Vs9@(+mkLC?YjT3d} zZWZy{NkB(s$7$WVij=vUS2-cp!1dcPG>v@z^OPf)j2MSb$vJcA41pCGoUavb%#h(<6;0Q$+~ zA9P3EW+Li>OBh`b3Wcve$6m5MOvz0|M39XkA&d@%|5Mu1L72YcYZY2(F7cP_7uF={?# zhKdB^6-g%+N5DG2h6L=%g(-H&i;IOrpmM;p!dd@TKKldtltfo_8+Hp|CKPt7)AR(Ur0cj{XX5X zV0MUv${uHuIo!w(A$+HbAe9F*O^8zroTqrZ+d!|@(Or*tBB|nC(yn4|ylIr8aR5j? zyt51l)($78pjt0xUF{Pl0u(R5?xGBOZ6YlAT>y51co13f zWqYi#%Ozxi^g^+o{@$zL^@U+3{LXItO1o$kj_)p+T~)_&+Z<IQ!U^lo>;gn0YMO?uFYuGdJi`QzhxK-#@(HuAim z9`&2Z&v;%pfQhvqMq~G9OGmAPt5tkdr@fbHn6sSY%zFIt7qiLTPO>?ZA}@G-Qf}pe zQh9=B_8=aj-IKNNMGVONW!#HsZ}*z_i=_C>RjtPPQoWB-t!uE zTJ)pEYt2`Kw4Khl0BwBn5ppeDHHt-uVs9V(qIc5-Y#SME$l1jA{e?MF?5M)4rPAXj zbWN+B9dKPmQ19*L#JT10?Hu92-7>pwg2>bhaMqf`^xj4wU$c+M{Yv|2J!)|amKsq~ zKu_4NN9zhe#BK*@SrFL-{RV?R^X8sLJl<#1teYu76k(+UOCtQX4544htjx^I=OkRk zl6unuMnb^vlrt!gVp|mbAR9;x%}^>)KnfA) zA(aSHBgNO}y4iapN9KJu43%^CUTaS7PnUj`7yq_LoYUF2dADgKy`QnNA}x|ru9i)6 zZdEXGwa24w(I^rLu#kC!Y|Oxq%f@h+sng$*-(&8KZC$RY)aP?F1)Z2qM{2W@bH9J!&T;N>fB2xcwR9XwW8JSHa?5=E(|BQEI@}=8TVK0+vVRDz+vr>+6|f0#m%PsWYq}2eqY4rB~eF& zDnD!AQoAsgBmUOJGru3Cl;ta}z%KE`@ISy1mm4rVs#@6G>+-u}dG3ENmz#gn&pG<= z1^6M|U-iBK>!*OBsds?=<)Qc)#V=|=Q+blcPB-l6f^QIEk(~^wsy2fGF3~{F**U_N ztDK$n1934E&i=ehpzTd|=(_z#U5r2=seJG5H}tBQ>m?lqhpr+?%u{PkUEV>?oLjL@ zU!>+;fN>uVNgc>I7yX&GS(<=8M8_GAN4e(uFBX7Nz)|R!eKj8MlgkF9u5^t}hY! z2>1CQjXxV-37E31BZwZ>F^!GCmr*SHiBW>>^K+`d=DJ3h+p-j*z6*#UM)z3n-N9oI zMd`6qrw!xT{3P-Xd-QV9%0lnQ&^-t0=eG+t{!U{d{5Ue!_=Mf-lzeE3(yYgcv{AK0 z&NHW}hyK9ve~fq*gbPY!-g4d)oA+9k;(XHn^zMRaAXu%Hgqwkdp&dZ*_E@TSylUEm z(zh$d@R9*%8(*C6AAN9132)g=Zq(b2yh)cY6Y6a>AjYS9ujo!3y)33`lFubFxmiVU zc)wX^kT2eeGs<$dA`s|SU+p_P)VNJ*amij`iFc1$Wvz3)0YYeo^#!W`dWk`^WcS5=P2uBlHa#`AlFBMW%!Zb*UxXExQ`A z|15sl?}-R81|V})47#(1Klpt7ZBhUzv>7>%m?BtCo%J>*;8UI32$p2iWs(3k0ON5=Mh9;omr%pj(6xg=G@H905ZH#bYYfsb~LFsVlD1`$f9{tG^@ z2^6>kb_L6MPOWozyeDIL0SjcMah+w{j=Hd>kZbeoUKKWVUtM$WGj_PSw&sO>Z5UcS z5AW2HWb*4!gy`fF%<_)#V6OSPpi0k>Ch8Z-gsrIk_~rVQe>A{L){rU|IPlBekogBR zuioq4+;{3djDIqJYYqprh#nziO)gb|+cukKXAeXZv7#0C@ZhltVc) zz&I%_V=KQdDa!y1Wy6vCj3y|JkT&KOfg^ zZC!Uetl%5`E$>_OfsK~U!kAOM6E@clrRo^VdXpR`;v zBqVemh{Z9X6 znuaNRhIKt0RZn1B_xf@?3waq}$@#qLO~J%GAJ3G0njXc17ZTzx3)FX+EEX|w_*lTp z2s1}$P-gv;n-BXkvf_yg<$=iZ8G9E0fpu9M#-6T+#>PRTB{X-eeJ!R@%f)A{z$LpG zEl+tcI=zc`V<$xK&^MG4Fo3OUP}h4i@0!v=LUxa{k9|~P3h8Cyk2smqi+eK4d3Der zxcDsAo?Wwp>c62gSrLTfB_SF(18R(0x!%0TF%%wThgw+MkN0{VhDtv9O<6`V&X>*O z1_|ef5^V#stA6p(xOzMV_NJ9*iA_#RTHa5&e?hwGu`Hk@>I_1Yr+&rOD*zW`jIrXw z10jwdWAWIevl@5F_IN$jC|>%=mamsi`1IpP+OH^^p@x`)#im@&LnecNOzUCkPdn_f z#o)`5=>b-XK&<~UBqrWk>h_DPPoDq=_(fy#?@9Uby+kbR(Q#<#i5KOEQ&0_(vpxcs z`Rs}GBrMU3>T)+yrC#}-ejg_l_ykKL)8#IBtc~jmI}}2dsB04G^BNbE%4{fQ;x2>< zWdYc_6g;n-_FHt-po~pxME=9 z%fIj8B;a#-)TZh)-GF?pxcOpu;#?kIuZ7I%f=6?x>Iy6oU5!>7`8V^KmCRwJ)SH7)$j)K z3LY7hf1(Dr!+pAT)!lh_8Qo?x^vx5cnW({E97y4VXNn=C^Q(pE`#Kb2WlD=%gMbfiwV=klPG92D}B^^v1G1p zqmsQz%T(5Vjuz{%_hN>gbOL@3huJP``Fc92{{9~N^uE0QD*U%=X-)KN zDZ=SO**s%cgrw*3Ywf?A#$i;cC3qq47u%MPtg=VNW&8TS_d?#q)4jXftCfSB$z%27trdxQMVw-UhO@On=sF)rjQ6fHo+EAE~)?ZWGhiTKz`H0Ij>VdRCL>*pW&i9~Iq|txwo#ns=Of~Jp`TQo){F!DGJ zz>h&4k=2;(3Q6auc0pB~fED3oLr%4|?twF{f#-02!;hs{8b-SzXNXCwGCT|D&!RR>*g8t-#xHI`7c^8_@#ptIV?6u z!W5o=6Zbp9fWvKk7U|SP-G@Wg`GyRE{a?2;;1oVI#LbUK4Yrm;EYMHJyv}>&TOaLC z({#`1qRBQIKWgW3;!E#)WiK8Nfa#kA=!H+33-*HTK1i;113&h1p5UQ-LSR)t-Fdk|m>M0t4GdF# zl=aPQ2ojq6y#vIHW^R8^Hq0O;UWF|?BBjkbhpWLT+b811=>b)$G_E_Zxmr=Ng$8wV zU|;O?gy)}mMcjTkDgW-|P)+y3*JR31viA6s*wNchUKKJeF3KJHvXZ?6Qj7Q@3}1F? zd~-0;8<~$1?>RYWTpkl+K3Sph)sAJpovL$?X*AdEx-C%KTTACgw({YS)IbRi8=eBA zv+6hFb2UTd_|fzXhMNq8>XGQm>WEdWU}*K-sB`jQ~&pK!ZRjMc7F27DoO> zEu6oEd&t{4P6;q*k3Iu=YO13Y_?;*`OgsrItsJGmQ>`eBlWn_l)4nK=H22&1!plix z2e5~eBnPH+Y0vmIgD9e;U+$C-PDT4Dc8^ALy4!=8KL znERG-g1W1vF&g^^ze6YWgFi2IPWT@<8F-90*U9nAMd82%$MO(;9-K?cC$Z(bAD}ka zZwmCidw-txFS&o>w#8gSiHchBff+}jRYFikvDglMs1_5beozSo3f9+l zw$={*DrfN#OqAR~mxL2^>*J-E3zt?2m*0nl)s%wvD2`hx1e%`#(ni#;JxNigkk3n{>$@^n{ zDcKu>H^6_^Fhodpg_@KLi|a*;ou)2*9*t%n6jg%0MAOx7Ss z8sgurSA^iy?Eq>FE}O|E$FsYI-UVr+10aD*qQXnNz`8hZAE%td?4sDrspguQdCBPU z`>EVlP%Xh6_DBTe0tx- zlFR*H?pTPZ_h@Z5bY#SzwDOhw@mB>)Pa(^TZ%oVfvu8Q1S-7ztN!kaxjj4+M)2vEa zQf`^|K_LA*dQyu-z`o=8o%`%?ma7eHKevRNPa&8=m!F6mO;`ddcKf4eO=D}K%ySd; z>Tq=KDi^*6L=g}OF?g|4*D2o07ZLQUCLK3;K_Iod5c6!)4~RjvRw7K zUH($8Qz4*9)x5)s8+7q6=I9W#Od|e&iQNO`)G1Lq4d)r(?kJLYagR7_kDPclKmWZ? z-2{M68E6_4L41McZ4-Z=mw{hHzn=@*J-XeYhEJg#d{_5zhQ(837DKzQ zSJLF59>`h+h@I}2u+99~nPL`Ry2?4yr)Zk<;SUs(i^ocjZhj3TY;l+{ZKVcl&c~~t z5Srz3T6q{#-~x>I@teGW->p>dl?M3pewAI&`GVM4Es&85?{nes8ZaJf2|Xu!*-0#J zb?<1T5@&vNexHy>I;Q;f{3UdH`7I$EUz|kf$h@UD{Cnx2D>Sv~UXoB`u`lVS%sn4$ zXcsS^fz*D&=YA#S9Hncriji}JVY%WOpM z2nj8*C)}cku%YmxBO8gq{q5N1K>Sp*APVj0sNr|CX08^rh4`6|FSZ~|<|4Cg@*%-};QPkh*`lc@t1!bMq?%r`UegGTaMTK(1RXf;R!`;W~P<(&ds*L#EDh=x0>ET;<%SvcsiV^;v4#zy<~a+F(TS>(f{1;IK8u zptucFno*{Xw12P%UsKsIR32;A+_UO+y?+T@yY)cDxZ?-;pTEn~QN0m|BE|5EW#4&7 ztV9Kw5D50QfjVe~e^1Gt;EyN|UA_n9nSy9X4o{dbKCrCm=WTIbwNzi?;7m2~4@kY> z0a6aRDM9dUzZap61qY##$!Xqa5(1w>wY&0sbH(W_LSga}tf!K-{!*|NIxNTe;r;tO z+%Kl?YHB&uWq#88EsR*_UD+h_%WzA(`bRgn6!OOGf7SS)jPtdC(WjhaF#j;w66AlND@^>IJ? zzw=h#s1PK&bpNWXt2vFM{iO9=Vi`94d%d*f8IP67Hc6Yi<2j3JqTLs&{SbwSuP~d% zg0Yn-CA01qYhNdH$Ia{};YrVY8n6OyH+AEV4_sZ*-wfjW`nfL+X3VN~c;kt_8pkW| z1lI(C4)wv`vqFEq!}&Ls#MI-pjNW<=0w4a-IW{84|3QV2E%L0i zF%PB-nV5Ldo zd^yxoPsQVeMNZl`8`Umd{55h%$XqN6TK`x-Ln3}~hmT}?;Ng_FZcfb*^C^Y7?0q@0 zu}nm({P6dfpZgZ)X!Xde<2xcsn*!Y_-#R_QzL%!Bkn}C-GE)~^TT!ZPqO>@ zgz8j&N%tUDl2c-&c0O=s1Z_8JH7F70{P*u)yoP^dCTQV3+}DbK@uNnmA)QESgeb9Q zetciK)Q!pp-Uc!6Jc*} z3n3xo?17}(Vb&t<%jY*bMPnU7TGP&7vEvQlPgt7%GtWkSg5fbyDnv!F;cpkdGbaMhp>#2#0F;yCLbuE)5Zk*w0CQ!E=v zQqfRk44-Ze4uL$qirV;loZ8nfVC~mpMe!&&z4`-WqB#%ef1?fK3?9E3`Q8YmxY--e z=yMyVP+rswwBO!nx*E$ZWjXpEo%p*FHhDLKgXh|##6ZvzTWoT`7vSNR*BC!s4x=29 z$j|5-jCo>LosBoK8i5o+1YGD0P`|@t8xkQB%WET^?GRD*AHw`gG zQj?CrHSsSe$O$X1l z&TroQhyDZ6+BCNuI3Vj}|FD4bXQQDGXH1%9r@)}o_rTT2PEy&opTF!A8(b%WS+T_3 zGUAjk9PNr^pcyb5@|`;kWBXlHz>DhF)HIaGr8#|8rW`wpJJR=VGzGT9(iTu%hqtm!h4z94d*L89Seb=?rb!pydBi*w@iSU zWRBzLZpx@`qBG~!q4lqPtxWZ&g zxF6La!|-o!n4x5r%9&w}pc_`Z%UP>e(T~U5 zu6gMWO2uD&gUtkK{5hSSQaJ0qiQjF3^}{)<`iIQiO~yPq(f4}btjC0##cCCkROZKq zA^n_A^&kBwB)wcDZ8zJNsTdBOe!kk$31s?7Ph9o9PRNr@o{?^3+xK5%JIv8WXe~1s zt6a#e%QxNO`isyd;h#}y@S%QhBuSRBbBfRo#_-KR`=zb^uI}%( zUk-rWy!!pc1srR%>V~W4M{^#}(EhDqJ#z8$By?cXjkjI=NwZh%D+ooPkQBv!Yt67k z_U;(_T5>$@sSN7aZszyz-vTr=J+F@VJ!mJOh=@u2d`Gaa-xmeX4BzuP_pwaZoFiem z<0gebbKyH5aYO0jOG(G&=xi( zc4jm4v>QABjaMq+#%x%;{PrqSGZ3rpLW#QGe4`u(?@x)8;emXi9?Yt*Cn_chs4AJ- z>Lg1nP! zMr2a+8{9YSl11?;Pa+n@-52Um#ZgIz(M$8eJKhf$DW=x*pVP8?HRj)G=W}>qYL`Aw zqP5R&#pItf?t_>DU*5|tXHsTI!N;Xp^gSpIsdm|Ce-Eyih*j%9rxkYjHfVQ48re2H zv1LO^{Tz&+d;y>c@l5iW9lkyEKa17dnAg5j{nIL=VppfFRVT5+w}LPH#SV@e?6(W- z$Pj8itIRIb9zCDbuf?7mSL3VCV&}K(=a!~T6t}443}vE(4-K7Evl3ic7aQ=FG-!0) z!w!zKXrbBDy$*Rs^T-h+qfARc_P;h93%Jzpe}i+$R7`BT2RIxWCY|K_+|&nGKRvZ@ zRuEVPGau^EMx=72fgbDlBvkZq3c67yg6QzP_fNa^UXR4|HuT}xO>fjHwZD7Q3Cu2D zZhx;HNB;5{#{wHiI67JtC_2~+-a!$(b!6N${*vaZGWAVzzZ18b&I5$bxu+N^V)0y> zEEgTDkByX50c;pN_PH)jdAc^g-R+1&M5oDy!Mn#{niTyQE<#U&iTzcYAoE&m@+V z{QV4Y6Ly6Z!;G~>UD`@#%pJR|kHoEvaRlbmmj)F?2g@^xE*I@X5*tGk7?04D4v;>G ziED5>+Rt}_K|=c2kY!brv>@>7uTq*#4@qGO_UC1v)B^ioc`? zeJ%r4Msj)a0&~ zKI(G49fsr8mXy71og2j19)^~*3%b;_5rQ{*dZhH*Q6puK7tCJ;5)HJszkTSJ_UijS z0x^dSOBQ_H$9Sr%dha5J5NlA!JVz$F21IJgM+;D{Q(l6eU3>zH=dVQ9Zccb zWZgx{zeG_1NS7Gw7ks~-R(Q&X;idcg9paV$Raz>~vU|xEy(T>||6Z=---X!mi(I!8 zL!Q^s#hmCP#t2G|J*dW)1a?Ut4;xTU`Gt5>Gil(O;Yr{|b~)u#DidzcVSEVOr!HVb zg8=lJAyXfd?asF8@t05ep$3N#QOl!~p&wA9uoBE=Z4E!1VwZ2CE=5g#dE8X9p1;2x z!g88Dx}cjZo^~z1eD)V8iypkFKc9$AgWNMxSx|I-0oo)@PES2g*1D4E(k#`Vv!GSP zNoiGVcZHQ(g+BEI4&dpK9vofL-i5FvukMm-ujo=|$7)5D$2$2R>d5`}8)x4J|EQgX zvsMHzL|(M%Yqb)w|MvV(DJKQ|@281s+-&p6WO;lR)Q9R${4miUbM8pc`*K1rNIJ65 z!D|$(eaIv6_gDHMwuawC&;QOzID>bdHg9u#z1F|mQ~6+@(|P8rU=i2iNATgSkxFJ^ zG`y;zJFdKEyoEbU#cW#n2(hd@f|=b^BmkwoIH zZ6R;U00F!-RLs=*=iP1*!<)X51kE{(vrqfNyig;}5$6u?^SB6+g~2#yx&N3+*YO$& z#eNq?vW8FOz~3D!7Cy3N>pzR!$nDMD!CC*S>GgG(1%v#U69huvc$R90SEsInD^ZH9 zU&6z?=7!Sp%dXH+AM%Du8c{yDb&uwcWH}>lj>ZF{s~^$d!t2G+VV#0xe942)d}&k$!uMdGm}WEO9{#fOxyNKkxASeIi)g zzI6A~;CUI{Go+G*5`0AeN$X$r&b@KOc)iKwbTPKS`G{M~y%uHxfNSA*h|<(p5-f&p z0^|b+7R!<1x#r37r%x5$Y$QQ^k~8^x4#Z5?iSArej1F;u(;IXvKN=Y=va^VDH9{32cH{uL^a- zSjgCJKH4MVZ!+)FQUh3W{B?hSS$8Lw`23^4x5Kz>GsO5Jbk6+Jt znM@;j5#FfkcJ@a8Li4Cj{B>b8oQqR(fagQ{ggciU#Pv#;P0xoH9=(=K{)Irp>L8-b zsDC2r&>&VrU#*<-K>M zJs#R)rJk*OC_ee=2#)giNy*pp8a)M_Q=aKrf5S&p6r(W~bU(8f^!zy609)||z@Ysm zg`L{pYW96!k>pGz*7eQtU0BiD9pbGP|43|TViGz=I~)PtM8hy-hlimyUzUsw1gLzD z?AS54@M*b3x`bP}FCVDqvWFWLDZnMtW-LcFrutD#K>j`h=k_#jfMV8;1H7PA_bpoU z-}G?=3B$XkUVXSCz@+Z2`X}Qdotfjc6^X}33?ZYugA&hY-TRyWjKs^2i#q8)B{`7~ zvXB*Do2TXv|FvTiuju7gZ_ojuE=bL1)&Qs3I8^vO7~I<^jt1bWG=2!xqYvR!t=(h% z5o|dg`S6j~PrNA{)&16&zE6`3XzpJ)Ey=~OW&lmd#qr%mL_jnjUNsCXB;ngQQR z*SnJsl)Dez5y#_P_<4tw$DA27!K@CwY*iN|#kP&F-%~;-9x9G>_u3*X1X4B4Jivxs z30n40148ytn#m%d9^(2p<}7$`Y7>7L?usQ}8}Rq%PZ_3szAaIrd_pL>3~?d2>`xCc zl{QbAZiiyq{~e2Ak3a-{{RPzGZF~guI!ksK=HQ#&nCg?_fRkG!S?>}gx!@hT{y zQ{!WdaqD##HHHex1Q(E1wW2olqp zd`1HlJKTtGjU{hYo^k|AETa5e5hM9U`c-z#v%|}%TMEScv$EUxlSHwI_W{%(PdMZ! z(l|$!@y2*Cz{9aR^-qxZ?=rqS?pPkR)Ww(7$F{gF`M%yNdEq#t%dgpi3!rk3Pd5DK zSTyuR9kDm*v|Um7y*pV9?9^q`e<^(v3`e->T>9od;29SeQK zT`QlzCW*wsia5>s)v1U&EvVA5>*pv2GOa()pz?Pdn7+B98)lTU&PQRJFnsX0w+)i| zPPxwKexAD{E}#DAazDaK)x-F9ZQ}~6Z?H`Z;6~i->BG>|Fe30ZIEwbJj^Qzsw#OS- z!X+?yl+tJ??KG~pEsZT9qTn!B43t2qN zbBIC`CC}sGoJys;wamq?13Z?oLf2s`1BWU>*3I=LZ7q14YZYRcBZ0_)$vu9V7q3;$w3K&lc`=rff?h zMI+#k5N7zo{QQK=L=HBA`{@^FaU|LuN@^D&KLSb%(aV8u`W6Ht5 zW9hK)^j}lqPt|wHJ;}D`nv48vYLHVd=m`H@Uc4Bo#09o;(NGS-Ba;3R;l_t_aTfXE zlDrxkzUSv5RnYU9r$dM()>52E9T8_t1D3V>lRS_HkBwO#(6lcy)B7uq_Co@uT*l(E z-i&$&jlO4=`Ro`>df)zZjLqXDeSYUhOfrb9*d&fnjgzW>9dlp)+`pL0uGeU>DVsyU z=VCk$X4dbnbcsLQa#yc4p5Mxk;YVCq<5T@=6l&2C=_Ch9Q~p)d@cL($bC`_pn7NqR z{dfa+ow^D#o2h1`o+Yk=R$jNukL{a)hFC-Mr_6(wEV*`D6EJW>kdvXN=8fbq}r|Spq8xX~-%@ z_wrBs>oI0_hNDDwN|+eCXcdF-cY;dzzC7a7J}j<3YFTqn3Ka(U?jW5Ix)3xUn&a9g zm&C7FgiD#f=KJR$RFOVv$~b!f6W6^l`_~{}nV(fX*VGoCnIK(F)bwOPN=jDx_h+`p z7T-YF+o^}$m+J&9c3E8!K^;&>_k`sdf;@rKdaW4E6&IJ!<0?_KhqM;}zmMThzh1e! zNcAqaEYe~e#+BOu%E?<<8DLimU+<$D1^LewmMsYuxM;Gm@AX-!&c7vJG#ERHlW_XrmUyusESet* zpY69aPS4kopI^V5ELRoKSKY97(O^%XkF37j*TwU$1JZShdw(t!rIvD+aXkB!Z?_H-AI{JqEAarLR$7=~#nvmaibRAZ4 zRR)@j#o(|e?mhKBz|i~7KyK3gyuYsNpVjF~?OdPKWdg6)4M8iQs8DLOh_P~7(GZyR^*@SvV5uI-DP>Tpc!P| zC5nBt)^ERR{T1KP4?>$?K^c8qj9Gc-@KzxLf;jb$pmQV6ub0tJ9{UxPA~C66qht0D zGJ9M166JXB?7t{1qtC7baYA@V1x~A}mmjz0r4Y@JKW4xXs;g1>3!^U1A2w<&x!t4F z)h7@PCRJzW@13>H*A6*>ill(jfL!U8Ww+}eh>vMFzjjOpGvK7cu6bhv3IySS;o1fr zA$D(mGDgy7;kBz4Sf6i;^wKtW_it;N2lHWz zVzxgg$dsi%E!%UZ1eoS8vOGl2_4-9Rx_h1uDIl!-&s4K}yui_f)W@;GP5Jqbm3vah zU5mu-aQ!?FPUdd&^!hu$P8K{)c>1et#t4m?|5@WO6yb>Z3xbwtz~xYY+IDx+(Q+diQ6MHkbWLqGCgx;7LxLmh5T*?KLCOP_A}C#qPi z*yIsPD{}Hf^8Sm_n>JmCRAu0<6eW^+35(AuoxFV@g6lSyw$gx?oOA!MG}`gesKJi6otMP6D#x|hn~aV^E)UW58` zJao#*p|^E1*%GJ^-7&(?B{b=8I_yJue1z}OgQi*PO7832Pd6b#eL0&uNWqV{5wZHQ zxgLT_MpGny2Jj?1x5SXt*S*I0R+??dVw!;~5KiyL2#p$GW)>H7EgSVhUPn(PnJ!o#2bN4;b$uYN46 z^gCJe66G@%`}gxI?7F4<_|qZ<#qnMe1M&rx62Qd zI5K)(k8bUkZ$$;Qj?GpJa|hCKGB82G(^a@?N}AzL+CYFAMDNB@tm&`o&v<|#If`V9 zdOYd9s#tcJ8^EG(LbM`Ufj#yWXRjMe$D=KPvRf!aR=L>5ZS(t@CGN!NMr`+mF5YHOtSAYcU!+f^(W3GImzW|-q`iV#g_I?8skCFb4ky-pjmtVz|?kl1cwY8vde!huquzWwlLFH=(zu%Aj30v*Q zNkEdq-`A*bGZd4F)twI~?lj~}`SZ;O%@2d;nD;4_Nx9-)5P6~z!>hg1q!4?BHY#6R zi$HgD4%XkG2>y6^jh5l4CHuE%734{{$c?;gLQ>~Wr9KflYGS_pRG>d%t;j^oNPIk9 zfnNiY!e1DXa`))HkFI+AgxcUrg8M05t9$byb>CxrH@$?lek{q{J&5NX&?*|}ozSto z=D&Ml|xEYi?=_b{LOa~ zJhbPVWsUuEvd8q*$wR92Oql-)1O_hFcQ98Pr^D~NXTMb{+Xxi97chRXOjFp8Eo_V& zOn-uCTv-z;_8jT5gE2%W47FjAl*Z-G+_)YdIa&Lq$n&O+R`aWPZJW3kQDntdw2_wR zQ`(tLd-tO*uWr-b@A*MGf;d(L4FJ1Qrs_`eoVElYhn8$!?g`Za?po+U@bGr%J<~>A znkK{4e@1b!h}C6}sI=psx7nS{_ovox*z~j~IlYnXpZj$Gu78NCv9Ty)V0_*`dYUWJ zrI5!{9R8?05x4`NA@8hc7-+TO?D;YF?yc-2h`ZTjd#C+Cja$ALF@+Q-wuJ z4EQZq)QE55NvVErlZYG*?*p_`8e^z+CVP4DX}1K3sB|4a4qCDdBV9LO=vv?BvBlx8 z7hJ%v#iX6O???zME;n>&ph)b^FI9N8X9-VM2ga~lL>S)~e<|Re%>zDsf%W%uX%hOh ztBtjNEA&cOaMS5T9#7@->u0oe80)fEj#_yuy1s?;^DSD;aEGB-8dEPrqfH$j%~;Nl z_4E*#M)*jz|9PU*2}U43P1eIOaxP?c|0%zUAU@$_n~==0=-!k~0<1*(+?6~-(V?+f zTPgP^#dr;P;vw5NAEhY!;_7FSwBf7bFta?1FPY2Vca-}Lad#=#yu;=3VOP`gY`>r? zt3H4ph%?C2>vy*D!{c#sUn>|J+&T54&nEQc`AiOQn@;#E_($-T&rFDxu#z12Gc?88 zsmi+8`IDqpLRO()VCLB;Krl`Zg%OBP1b)Pl;^lr|6QoFvp6*vJ7oNdj;rG-$h7n1h zTgr+g0h(RNsPz4OeMa@@Mu}sY)#!Bc9$mcwOZeMprl;krX%-_6VL`F9rveT)Jmq06K&`AZ?8K=YPSXs+bf(GE z5kn;G>glJq+DB&Kdi$G(v3lX>5vqjp)oy`9;0!nmr*eUYWIng-^Vbj`^`7c1t;Vo~ zSX9;|s#1qqCW+{FOD+&t>J|arc5Qcc?-C{*(sP zka+a-C(yO}@L~TO*RPjaw&!yB1bdz+)8%UE=CkUB#zxv)y}13<^cxP7S34lL*D!U5 z^V2dd>bE>@jz-H6m0Ir{a)<}`9eZid@?jn3^{o@H{$l&U>kiN9L&5Hsk_LU_2+Ad& zKU&Qv!CRmIadakIifUUF{U93DRTEGFDMYF135bA*2#Da<=ZfsUJKoKk5enz*z1Ezu zf1tX+W4{=pMHHnU^7yyV$#p@3zSneLkMb#m>s`N#xcc3~=KQ{cj(XsUmjE1FOm{3L zU7i?a_{&bZN73L3zo9IUg8q1C_I5HF?sh!AWa92$#5FtY@R$k|J6{%ftxMxuna0Vb zV)d1>qNvWN7Jl(n?30KX&2_xF5dmyOj1Y_mmZyAnUsuZ0`yAO~qRDprZYK^-MUsgD zoEiWam08}mEpn~MqTZleWnurSdngR1H94Ph%gq z>S$@!>p8feC@w-^54z5KUEbQl2)5rpQ+&?S=g_;@dq3LBW1kQ%F856vT=C2Vq?hKf zD3_-z8;sTF(*j7{>i)oXFK}r^`rt{_P-fKcm3K^-cC1JiKbJq=?e?~r_PF7l{vLC~ z`yJl(ZDDd`-{&|c{4K|rhJuH5(ps_LC47;tkhnpiNed>**@$5-&gd;w$T{yF|7-v$&EkK5Wr%T*|1q z@|dWS`3ppCIOs1#39T`Yb&qDUx_TQ9blq4~a9khKOVVKvUcu~Mv8yQ_+ZR00MG20- zQwux*;-omrQ~VpXJV-*d_H3gVAnmYl*ttB5D@M@&ApbDX_P1XxHHJ37Q(bj6vt z{|WI<2yjf8EYJ}}|DqCEk-pG#h{9qaud{n(PSRyc13&p795AcVDDUC4c(%B?0@d9k%W+`gEiItqoSv3DBmY3VWUZhmX7P^1Of_6Xg6q?a=%)!&a%7a(FH z+1%a$UheH^jzMroj`pAg?`#kY8Oy^WwRT6uG*AqkU0gg3 zn(=%0{rs#aPO;lXiVVZz*e`HzISwLxUlq*Xg7f||u3v4N5&LF049h*ZT&*`vGK%rN zmycY(`%W9uew77{{>VXqX7a(+tg!tBfFO)9K!p*(o)0O9&?G7!H9Mno&OupaPV|go za&dVhNRSwY-Jf8MrQ@KI@%elYNCnUEPj2^loRK%dawb>!Wz{bHkne8bA-qj#G4qC` zKmK{$T}i@}ZjYWuH%$vAx7smqt}G&RrG6y8ry8~IO9~(^zrkQQwnuP8wrdc2#UE!-{)PCe zc7;7+4q^^7>r&I)*@t2Io)5>c^iV$$zsI=PQx%Fl5L_KkqEHH?`DAP;dfdooxWhSj ziM@07zi(?lTF(tKkNyG2FE!6>tv=quOUnIlF10{-Tv-s0h6o;R+brOKX-i+Dkj7%| zz5K&jMll9`@S%6$pC^Q>FAcVXWs*s56aY61F(0YpgM}5#;C9Emb861d-cVGQ{dqvE zhO}3OV#k0>MM#3m=%V{Mx#0hZ%{o;v;_9$wcpBXto-*dLpmd+ELEYjtCWXt6--)N#uA3d#t^@8bsBoz;LG zvfo_LE(_?p0Y*0%4O7HgunAPzli&{E6o@ASNyjYes2_7fhs-B6c|z;l@b{;8;rGHQ z*YN!!v0*&)tYy^Q2Pq7Si(b30dYuy^2G*+?^jRAF^@2TlzZ(p3j2ovyoQ#3Og5Rc(llTlf)?TB{e08EEBglH zR{0K^xWm%@ji~J&$l>R+r2GKMlA{1^yq>rhR(d4n?+9#oF)}Gc&@2En*nj0mNX0)i zHI?Jxg4zz-NAc4o{t(z<0E#;Zbtmn^nB;k>jM4F~a{lFt8@(&GW@vxIoz!DzQ-z z6Ox)Bg2QtWyBZp%W?+Z;^bM6_b??_Vif4uolP3@+WI?SjE30>U(?bCttnx$k3@Qci z5BKDpa&qSK0);D^1gNf_dn?k5Smm5+jcCouWA-P8j(#6Z`aR)jm9Ym_ElmVFSM$jT zZMYw7Z^w^1aB=B-m-Jf6p?pBTR(Uko_P$abtz_&S5dJF8&&O!bo%L+RFGPTj%yLCp zh7%Ks&xd!d*@LFWVX^OJ`Tz?-5)YKDYK4L`7W4_6Jjv2=2v29a44>s2p=QbalG5%4 z!X5YZnU%4+UeBL)XW(O0Xm*ypdV4%V){ca9{yJuIu%+t(a6Tn9E`V4#pA}ZI$J2aT z{_S{kR(cv$j1Q>zTDldTn!R2c%+dT7)kY_caAD`o+H?e$-xLfUDCS*R@}Z|QT0|=S z2w8xfY2L{DQ#`}?8q(dDM&;m9cFXgk&A(+oD$nQBuR@-Bo9kB%Pj0_S5RsmA^~%ND z58GMtb-`_z%a$}~#)I<3obwkWBYdis8}p{Kic=^JXOZs^W*v4&TqnE_<%Own>p(}l zD&ILWvN~=ApqmGGrR8;SJ3lWN99!?hBz8w*gmD1jqIwICe zVBef6B%nkZzKxdq(Z-1kPfg|m{^i#dKZ;%WMkB6m)BQ;h8}qvZpJZxGpgUoGJBj6l zJEa@(Q_}u$Ru}r;uPA}gmLGk(@Z~uHlN;>#qH{>*6J35g4q-$Ej{{D~Ey5ys2g@|J zg8$$vYd8A&mL(qtSUh&J*Ctpj#DcPN-o2M?B8IkJ?o8R3W2H~3aVmyswkF0fe#t$g zG7^uqXC-!2(RjRx!RpM2R<}bEg-qpBKz46^B4v}fb~tiQDj%rqvH_Sxjs33I?nHkm zNoR3W1j;uCdzT)=ZGckk*Q_*ncd7{~cXYGJjczN+##VKdW2)%8`g*SC@%v_|NbFKe_q+h0cM9c2BL3Q$Hw z?6xI>H*de+9=*`bt6<*AlBM#FeF2T>%5fX7i6d> zfkou-4$S>oy{&Swqcy4(_5=6f@ZG?Las(FXx9!XGU`f`UIel?=J-%4_d@~;}Invd-^Szu&w-5Ssu zw46ri2I_X`as0Gsk=2Ubkn8Fjq8cU^pY#pegb?4LZ)$=c*LCf*ja{MQgQUT@2uq|Y z(e1vIQzVNj!&$o8%;%4TrP**R3_vInGBRPVMz`sNgc?LJboNF><$OA}A)DNwlY7fi z2ryDe7~P($R;2tFq@xWKz$Iuk(6FG3g@6mW$$pV?kFR&*w)O=yd1K%Dny~@bjXnRY z0okvr?B3ASr(y{!aoaHJU!VJfdweaOn^qBzA}-UhEI4}<@E$4|?;e8OTmZ>DJzgqR z`}j{eAHHle$}G~&3h_0KUHze(;NmTQ3YH5JMyvQCVBiBR76wW0@r!lJ7uADS-@fCw zEsM(6ELILKeucGNFUSFTy#iD8JSlW|-ZswtUT*27su3$Vp8K3|&Vzmnr2g|Fz&Y=$a=r&+(N((MQ(rw_3_QOl_8=kep#i2;)^p)vO1mUA4DAc zX=X*43&{+=VO1-;&izF3bt?j;Hd^11P zW5>xvgXTHhzeXCw<9HS62m8~$jTCj1b+%zJ8LlyfO~Vjhe2^j3Q*>VuNl@=UY(!sa z`hb0-#bm(;yQ>@Yi@HzBXg&ZzZMCY&Na6bZLUCxJO}f1$=q+>*;se_OM^=NcviMu#qD2e>LXNG?1DK zQqW88!buz5V6Um}YF8K`1&Uf);3Cz;lEN?`y(b7r``gS~?(Q z=@7yf+tT;x*B7OAmb2EXS}FdKK}%_u%W?ZnrSvhzsxqxJtGxOC{a9euGT;Wvr|THg z1334v-d*8k0gk4HBIHNO!9f+<1;?WXDb+;j9(Rir($-4 zu0S+s&fOVIeYCtV}BxOJ@w9aszP=L(=c*>sT|sFucxPBz9^CLmYoH9owhrl zK6xeqMKSW2@R$pRq6XAWS7tnajhgny6(_(GzwTfNVM(23i1yh_oUv3MfIvInt>oH2 z;VVqsKlduyo!~$x^IK)yynMeNPq&47PzRK1OC-^a+a8$%J2%b-n|_(AWnP78!>Z8< z&YLoLtqoD!et**I-j@QGDr$Mz0$t}}5?8GG&fEw6_+5|<#yiOY^E0+6WIzMCkzOA8Xov?w~@JE3q@SLt>5xc8O<9noL3! zO>r8O8eE0u*nm2Z;l#^k?Zfwd)6DCu@#UJ?t}|L=hlY!Vo&UN`y1gBPW`DYH(;~lb zdWgWiB<<#x7l7p4S%Yj(fmQvDrCeM8l>EqmGW1>RAV+8*C%iEZ6_$;^`@`; zswwFHK5MaNUIq2t+df_UC7Cw?yHtyn`qOE((2{*z6_^j1B{FA{27X zEKX7x@%uYv3{aO4@}lGB11Xe^j%TV*fhUlMzw=K^5k2Ej2iE0zofmkHt8KjD8M~kd z;egAK><8Pi_f+WJ4fO*G#Ez`z^B)JPqTiyKE&{^o0Cs{ZkiohPuNaX;K8p&>$$lds zbjO{7x>$F4(~nVv=0l*o@NB|q{F!c~^`Wk9#G@GdN!&?!R1r87g>{U{hr>J-B8o)% zXzK$j&Le5&fjX9dgVETdcwp*0mw6@q&#*r7JEvGK1uE`i25>eVrjFb`V-CQUtA35E zqmOuoHl~2_MZmCE_w=}RO@92ih&u@n4}m<-5Q*5y(6E&BSqc-MtwBVyGkip_I4dEn-2GK4&$0!Md?dq za5Ooye_)L9b4&1da|`aUj~;s=P;YM|*d>pGyy1yDSWKAQH=BxP3opeZV!%q5_5i0` zM@qQP>(5Icg!63rzO7{C^~o$E!!HslHvbCT;%|@ss@hOaTsFKt**k9Ni;soBWphst z&J7va55y+lH_gO9pLyvV>=pbCiett4#fR^;Y8__9d>Ab1uO%REm)~qUMeW~gagn0X zgtOA$JVQ-Aoo!xKnfH`$c2cZ@Csx)_+o!a49RpbjJ z?LXuvc!w4rbiiQ&4!DD3&SPih48-FjF0?*$$<7rKA^PG|IV*&Ob1X5^q5kiots9iuXKd99x>S)WwbX*2oNM6tCUsKyzf#)ifI zTvT^ZH2dSjcnF4F+s8|GP660Ycn<>-sB%BS#b#ih&UuidIWUS0l3I&TbC#2z=z87b ziJR|}o88}|RR!b!=w7MaFFbB{Kfv>xt!RpGjzz$|6g4W_bNuA%dn!|b$2iePU79Nr zW}5){=!K2mFLRg3t z&SiBzFAC$Ie8p|EGs)1(;d>hs>K)m`q)*KA?7Di~#(r*HC;noy1byfDg@?G~lu9;x z6&BFmS@38vmp|z0<&x{g6M|7EUOuYrO*N}^p0xD|2LDdiBi_Ffam%DdTke3IXw}2P zZ0PU3{+!L1dJ)+*JjHxV{-Bfp5w;qH-7z&eC6wio$gg;ux(AerR4vd;ocEcez5f)1 zSCWi%EvTh9GV0col0V`;!TE*1r4}eCoU`R?H;Tb@qRcz)x6^6&FrG^u_Y6uw$W=LL zqLegDWT2-4`=n*B{gq5~83LziuABWlQ=`haspP=v@~t78RjUrE!=WZV-5uwm1claj zCD?Jmq~Tk0)ssUJR?C_1U-?0}60#2Bln}=>P~!Qj8ZUIW$t&F_b)=U2E+>Z;BXYEq z4zInmKj0`N{pl|Egpj68PU6vp2BtQ>b-!h8jyo&rr7#wdzD|P}-5g`ng&}8t?-y18 zWYY?n;7P$rbj|2!8XMRs`1Xraf~5t+eERS?b#s+hwg?sI^ZP{5R_Q<64Uoj6>`||j zeyS(dg+^}r{Mtlf?*NqE^bJO({oNrs^#W=Zh@?0qwsRWG7stMQ=nIfi&UQ~Ht=aH3 zP=b=bo(x#F=^LBcDi0dKQ@X{7!U~UmFI_4uK{c=wfX51gMMT(#ul2C59~bA*n|cL8 z0L>a0&ggt0*!gw4YCJbqr>uB)FCStkgh;$Qm2XbwDS690-TSTN_!W2} zcBI?pJr&hM*C_`PG2~;Im_dT}UejN;W_^r>fA@5U&IuZx_noUB1T3tjAGd)-wX07T zndkh&tAfU*IAv6M-{WNXB`?MG+n&ysJmcf)I~{Ho^%9wnZZkSGp+)S_kFT9AF-A=d zPFdQ6GPp(P8sGh#dv}^|^4mOV9b|6p;xXpZ_n+Yk>!ls-h+st8RA4^${NQJy7sc`6 z5yn9tq$~dPGjTJC`cR44@4=bZ!f!ESzY|_Hjs@OlF!;EEWu$~8?zjoqRvwni>sNA) z2hbU-dc~70`(RTpgo}NxX~WmT_0r83dOtCnGj7y4vvDE+i1U|X?1NTB{DnksU+J|wYFW48*?e%Tt z9|U1MvpK(>)HC5y@3f{whd9dVc8h1<3Y39(HS?>%#Ur1$?BtEe;lZtWxdbZlOiXBu zZl@3XlKl%Tvv$-dSa+Pt>maGguDBe9TW948+xriwBRwgS&F3AOTp6SxdmU zXQg|C5iiE{3;|;mYK^j_=NM2U7P+th5%X;ds6!W7Y+>Qczb{I4Tad14tRj-8?`?M@ ziFWbvHU1!=(lLZAKLC7q1e-yoScj^5hoV7-g#-W8af>?6@SzSHaSV3y-1~^>Z^*8e z1p~N{&zvgd77fKp_9Pa~ScGOCdMAPNenb73+pXHMLg<9hxVwG{{Yk2pPqb|JWkEGN zW|#L<#-61Kyy`;9fdVp}PO=A^5SynWFppa4v@gx-uEL|tBp$p!_4{L|=x7+EMlImH z&4C`g%n&*2j~lTk8dpZb;CAs=i3;eoO<>RC#r@R7Mky=K+Sm`Nf-c~JR~Enz8KCZ+ zJ8chUedp4CzsEjX;a~D$Og`9#yQ}}QYLZRb{Ttk(q+&_30FCAK7aA%tHw(epGat|hSrcFYPv{1#?IJS`O{T?z~g^S%b?96d6_Ky*HDstbuo z4&1OLCQH2bK}Ui)W}aJKU|Tq@G6*c`&=*#W z83$)ps`l%$XQS((Z(95Q`Xe^rriX(nceU<^5rk=oC=Jp+sZ4C&O%!_-j;c$RfJi?6=i* z_Y`+3w}*cm46<=^Vcsj?quQ^p!vx=z08bZpY!^}4t4o3o3VVUulC1+;^Do#hHqrj> zc;%M)vB7%^FUWncuTT2dyxHeC;arbRE_D697(LVu53Y_c#~-)bN`32G8VFJ;f3uSs zC3v_0_~3b#;Gh%Rm2pqVE4X+(%&5x9_E4~Zu#rQJL0RwVjt?2R|3TdnQx$fyc4Bb- zQs(1X+7CYZTQxSPz#Q0Gx-?jlnp1*rI~UJ5G6hf;-~5C%kFVze=w93W@*`xV;^bCE z9gX%uerV+x&@q3$pf+QUb$fYj zVfrqotF*qdn%KRfDKUOmKTMaIHZV8Ft9Enw#3xGuLfsGZF5W*%L5YbM%esjSbCAO_u+DJZdZhSrXc#DX*;jfb9a$*3es<7 zxU)y8+?C506sqVYDf4-b2g=F=#zjNwQCU&^XZAX?k z0~sdDbe3$ho{WL-n1!SbhUZzQ7=CR4Av~N~UzfEI@G5P1O=j`tWf7TrHiI$2AXG^= zSVMbF!b^^J0{*}IdYk;asq`$ao1PM0joVRD-!#>}LBYC%DSF@+ll2d4^*r-9Tw;uR zR*MQ|7N(`p&?|mX)^SJn_xIvC^B8X(E%x`g8X8SQ#ZJ<7JuTnjI-sI$K+{8JQ%P&7 zm_G0Fv{X4s2Pe8>!`pL}`yDCz1d&hC*dlq1*kb4><{gRYW=iCpQ9nXccjMTJ^VhA0n7ZY? zl-syiNzG3Ym1Y9Wak57~nwZ=}upwcof`prGGmgZ=r#bQ{DEcxq(>ZrchsNtRxq)o~ z)zERnO!nR!40?)|pkU+yRp>->kC*turi?G0m=3$=J&>;VD5x`)k22<2as(%@&#Up{ z9`y6b7UL^(ZU?PXPTF+gQuJV^dmj8y5YO1hl)sinQzu#B_eHju=gWO)h`xLJ3^-AD zr@sZAR1wwu=6<<3WcJ&WZa|ju(k#?==xZ3`=MQIG-Bsk-15~5m$@xOgnxb-Y{ljV< zKHw2ZN3NQ`nfHgpIcz12g&DoSe?ZUZ9o`nd-1IJKD*)MyYnLZUrq24{mPp$f05cv3 z><*AJeKY)rN7L9?8qYfDx80jRY-fy@qKQMhQx%2qUNfUzlZtfwQ0(&+VF4=*SETA- zH&8z+tYZ?xWiG0x6S9w&be!KtgJ+A#UvL8Ki1p&kBUN`c)E51w^Pu3KL3-*FohQHU z?Z()d>fanc?ss|F_OIWB99d~Y;RwJlDQXi4;zAOyfE-? zp3ceaAI~)YXmvUiORFMAYLrXhe6b=OJK{y|CK>WIsF@`?@g!bG*)Q_EwRfI3qzezN zcRk9bUV0I!rEac%Wdz^I7JHKBLqwhJN=*gP@St*ExaO~-RsoZEyQy>c|pDyP=)F?rTk@}($96vv*i{F_2Nor2^J$u54Jk$L)bxjIezb8v@nG`i_fK-d-bTP^EGrd zndNVA2_AnxLv!>C-l_Qah3Xi-*c(E_X#W+adgrxnm-$GkMUC?aPGVY+9(R>UxF22_G?Z>h?o6l!vk>Iw z?6PNLu6vZ=@7(w{R3$P;Fwy1>b)u2aWAXEQqRG_;FUNq8kZqgkYqKP`qaF$0sRS@3 zd?KgOs=01}Ph`IYzO^8F9j4D08Nvm`gx>Ck#YuSbaOH_^+HN&2x=`RnIrPuUata$W zvByb)@2Jk6R55#>5mfDs{u=SYo`@^=!p8q4m9sxdNj$S_l#?-OEmkEn_%4d>!W>cv z5Pu$^O(n1&u4}eCTqk!KSU`|Ej6I!LIrNz9bo>Az)FW_=woEvxq{531rChqpup6}b z^b?yQu4F)_jz91!iG*^+7mS7P%SiS_kpBGTXJGX7yoPB3HeE!B>NUg6)P)cmfFa^p zF6M}K(%iX+=T7IX{v)4W*)d)_?>(nccgy6KpiMIL^twb;VrNKJ^MIh>*%{qP+(}!4 zL6po#4b z?pOT!m#}+6Dng|=g|^VHlMa;2WNok`bH!f)sIjl(>KGRg7z6%1X6>R%o2$Wf_Ju7P z1}h=vR-U}-SadM(Hg)Ol0MEw%un1b?9mr)ax6-}uPO(~241g?Obifd4^Px!zPJ-ux zI4bRrx%|=ia@{EmIg-<52q8q(pZIFs*}JYUwqi*Jn1#|w6HPk` zqUV|(hv!4#=(!=^{Tqla!GrGTtbA_Ov;iUmIp%{BRqHyi$23{>IiiM< z;oQwWPHas$fB{h+@2dAcB%AO;@bX2AUuW=MzftiH4rgI>9|cWu*Vpp8BT>DxJ(D)o4*c85hl*=$NtDg0H0P&jzBjogoettx2*?mzp0*F)Q#AJ1^gqlz5TNt zUOS*-Vn+iE)8U@~U{e$|rMLR_brN5mz$rA%vUHM-3xE1KRHiBiQb7NT$_42vpu56c z71!Ljxe71f)~G!iwHF8Lb*!wv{&-H^unXJtQX^nfr6*dJx9|s9L=$IT)U(SXFvrU; zwwoYa1f*BLhxr1-s(ZC(;b`7EZ0z zq1_uge2%j0UU8J88bs>BdT-+{G6o=8!*j)UqOC}_%gvN=F#rbEYQH;WFNC!6nj4%=Y%aii2h}8Z zR<_ddkAAHdk-tkjPhLCF2cc9}SDCde#?MM)a7i)9e;>VpMC6>{lg;FXDMdc*Vi1XmjncoC~GLrJ1oioLE~=E${6k5 zH4gAFuDRagH>McJDE<~d$$#vpqxz zH~C(mtm#$dtmP5$Rg?pl2E-8GYLIXuCAzj-^Wjj12VAdadKS5Tu9!KZ%$K(eb$wOd z30s-+=zxd|s;F}Nr9L`U5?j6IR=j(YoN;`pcjZhw4+hZmmb+%_^O5ud7}2-w1F9Ni zTykN68G^l|k z!S1T3@ls^=LXGl=V+j)B(qY}MCg#Fzb*$DED6NH+B{xTv>%gCcBZGR$aU^VC<3R2_ z8C0crT=-R9J6}%>ds$ofFn;gl;iV$W=KVF-^+Qbwa(CXal`;A!5|H!d#jGJ>yfS+p zJ2~j7Ycg9R5VpUw7B`C8-Vn3`D!N6k@xJwJhcxPLgn~L=t@>Uh%Y*EB`R7ROm~`8d z`_L&)X+>^%pDVrBPg@s8zDXs()_2-EpHYgr+$x)G1Upi2C^vvs?In}V>r?p{%_~mU zI0SlkziM2d+FI1;F3U})&ndS`N82{u*vpGcp;sw}+6#3su4u6@n?GlGtUJr9-((+{ z?@-wlapPCev=5i9V7eqfov7xG&zu^k;Z zsGpyxf1cSwoHFjMT^d_Z~OaWI?yl1DBqorB5Ls_mm_~o*acmWG2p7b zS7gI53n{eBuQ$tB?mkaZ*~EnB08~m8A>H9aWSa{ zhV74oIWbYdw^eS(?Jrgxc%NRLdbByC;L$_9{8QisaFO&qsRjoD$1rlAMbYo02!(LsC?h$&vf!68de1Ao81=Yem&!Tqr0Fv>DJW-`v+{&{l4E) zSx^>vAa+hLW$FD5)K6Q!9?b!WLW_0vT)D2d=LJ0cI7M)gf?GmOf3*hhbldL?9HsgN zhxibn_4ycP`Q}xO9*!PoO;qCBzZ+Yk2Lc4WW(C`3(XTm1kL)luPysacFGM_9@*oRw z30bU?(VssO`W+wfTOR5?*535~{o!+v6zr29YxPUk2Z6lai9rMk=h&fi+TIw(EZZs{ z{GQ)4UaEaO(-JPftgh2O#au6(9L5aS-GTg`J)bKMx`SSj)r}nfigZI|!1I0lNS4m( zOSZ4Ck11}KvW^7BR$X>~d|L-iAFJYh3hU|EAA&A-(sB3o>&52%>x^`S9g6RQ!}W&<|jlOUN1z4$I1TfvVz z3!KF~Mch0e(7R#v6XeDmrN||pJb^qI+880K8?BBFiEnZD*a2|jcGTecKb7fLWu~_C z{(@Txjh4+>gCp{uxP~Yk_NPN{77dAQIZ{SzG8Zt&r50!nfIFLj41XVX@)msSnZO(( zw8uYM9vrE^^p-z}G6h|QIC-!bnmG)}>DyJLtO%FnduzjT!`CbfbRgk`jxAgPtDa9asH9=EtK?fpY@;`5Cr|ZM?T|+YU!{ z=&ykfUq@WuMECovDf`9kJ(3#0lXI`t2G5~HqLimbx0|$1W2B;a+Ec9rRiEh<4mS>V zd0^fri&8mXEsovYy8aZ+-jlO;enr)@eeH6;@ZLw4pJZ2W+RhSOi~Ov>)9CxeS`r8x z`(`W6&iyjqn^){hZaYn7=H>K#x8Y#MyIOvdO0bxpN0Qo}`sn3?chZ5Qdp%W3z8I(i zSj2OLaHCY--t!LKw#+GU;$0G03Wz%gJw_R&(N{?45vN~O+4O`BiBQ14>nc3#!jafgf2j-%7z4&VnoKo`8l z{t|Wgo08+_z?Ptq+g33{DCy+HTX&OtrFHV|hLO-RU&X2mk;*r1dK;?m(%a6W`xS+! z-ojeb>*xkTbeEUYp_zV;JlrgEbt^XV(&TX0(-AA}-AQ>t_O=wDfT$(Ed9Dp$zSo;_ z81~=W`5lr8iJ;9rZm-iYC83Ouca)~T$Y?q{*E#Z?V`RFWzuNT+G5$D zz2Y%(aAoJgS8O{cOB$)$3Lsr5#3a&2qIVs*wn>Gjt?6yg(n%#~etoBuaAn({FuO5! zsh8GgVtp_<5`ly#2zV7i?4rmb^0Wa{djNkvzOl7Lj2mE;1tHX>Jh!?%T+JcYF5h#n zLBd+Y^uv$4!91WasC&;oDgxIJW_dc@oU*nt{Bg)E~LFA$4flZ9)*u$}?C5rds8brnPd+%|xql8?gHtm6S z1g6A!Z{|z&iCnJpLy!7wT(Y)RSs0guVT6$iGYpqW?BShY9FWbxa3zhode?$8Q0!{d zrIGkd8t|Wym)Kfg@J7{31Z3uV=1Y=lsSrQnwv@q#5X0dQA#gl;=jhokr_M10aX*(j zVT*AFawl0H&m0ImVQ5}0%1$m)7dXG^+|ICDNj27>SMsZo{>;eLUJj!2wyT1=(JSvY z^tnW8F~OG1<+IN&E5D5MjhNetZj2_PYM$&i+x&m++PAsIq17{a&fBSDC02uPz3$>oM)LAEc2V&e$&eb z0cIc^v3s%)t7@ar5pQ7upZoCx9f*AmJ{YN+51a0#`~A_PF1ui7Hmh3<)vv^PdKIJx$D)Rv`-R7&DC>oC z|N8-mPE-||b!#x#WceG!4Q*AR&TdSrhKqL(ND$(IyY&1@sy568`w$+c&$QJZ|Pk29}iZs|H6QG{Ha2Sw%5Cvz&j!CtA8#%)|iIKC{utI%P7 zrI;|I0)8du5SK5$X~l88o$D_fXYN(FITRv-hIw5{>(zZmhk@F>E_TdUNzc>OL3hhe z2Fr+LP`i1<5#2*DRKM-^_*RldtQnQ1{%hVzhPD!V)(E+@9gz#O&^`nj>M!#4w0~M>yfG6>+7ye1krU!(`?&_v5m_#C z|BGG%cdKw`MHmU*bZwlU&=S$%cHa$#@9w-(Hq=boivxIgw}O3L6&9;1`IkeJ^uTLN zNw$F7{-igAR;Q7a=#WZshUg{pULH@uX+9Fik(S8ah~ z#^s)!HeRzsW#1s@<>Bsn!Nx-|KYguV_VhDIZ_I8UK+aoniX%6Fkzy zzgM2{nk9m|G$_M^I3#!o_F_;;v~o7vwT`=wWr$b=sm?6C!<`i3$M$@cN?M)0_erk8 z!;L(EoN?VGd`8F@qqzVwRaYDY>YII7=<4(~Zkx)4sAzW)t=7@7y(j;f$m&fyVk zf_H7(iN~3L(~Ni!Wvlw3#qW`lUk(X1Ug}Fmcy+Hes)n!U&R3T1Cz&c65M;!YXb{gl zXXK$84&7R$#1}!%x2wyv6SD;R=2e`+S#A^2;qgg9fGV>Q4rCtHJ+28LCz1XU_MY92 zVhNV^Ux~`qD?4I{PT@^uNB2U2BtQ}}AWTlZRUnKo!h=j!{`c88O-)zN%z8g`SH_JS zGU$K~=j{DF)kKUZmxK5y>B{Kz8~1@f_kJ~58L?| zxmdq;^fk#7?R?{)0~-5P#y(6=<~;WJlx*y%KWJN_MDiuJ^eBpi+hOT|C2Y~3Bm^%P z#nCHT9$mmUrA_)Cg}xI8iu@p`%msDSW%Wz1>!vV@K3NROyo+x^9XE~vK#$*EyxT0U;g z3UbXPI^IJS1BzLq0LqL*x)Zbbc3+$qM=Ne;_=?Tem-4f_P;R>ohh}L|N*oX)N-reE zm<_^hoMIBdu_cA|NKi*d1nAd)fx5CT(2!5!Dn#avi}OeUv~O(e|`-2#>{ zrs)yG*@VdsniI?lRJvq1*J^c`QB5-I9`Wv19-4|AE9;3SaREKa=kxwhP#W*7N$}oU2|{6a z&WZfAQmC~&UWyw_7~wl#BBR~$a&J=R;h39VvYlDhCtc6u>XJJNSR9jf2<8sq_EiJw zU_~Z-9u8Qn;cg3E9i;%Kci>r%ed1#Rum`#MdOz(%=cuaAwmK4k!SN#2?U&G+2*lt_ z#UqpzJ$omTiyT7;Cm%6-sZ~(wVW*1M1UeQ^J<_Mw5^U4;%F@$-zZYiwyio|vES7Ko z@VqVTS6L^lkS5n7*t^N9w)JQ1{seFJcrlEm&f zL#T0_r;5DHJ#51OAZ+$pCN&jAsa)(7-tK${^JV$i?OG;xGI)$w3 zZJXNUT8m9X*2Rp$=41lM_C35k@0>^J;2P}b9lM9BQ6yIr2vQt%1Oe{3ohnOL5ryCzggi zQ)~!|>n0jwW2$kti~1*LKHE)`Psq>4|h z8IqBmEwQJ+s8IcRrKrCfaZy@osO}S|-a! zp$pPv+@4#_^=r?fmLPh+mlQFdj>)`%go`!ZMCdhXzry|(R=614?kJMes1;XeSdwN; z^pDP5zq>y@D4k0#TJDDBUAv@|sU#K9lw-1#m**$Dk^n6&O@q-&E?eg(=)eNbx)RDf zhj0A}ELsAPX*_4nL4tO5iTZ;PXn2P$W0=Dxcn6#8()x=XS~X8ep@TJL-6P5bC?H*O z=gCM}e~DK4C1$7qWW{XiMgPgzFV(y$qwLSU@Ys!p$qFR^3nU*K!W;iXAD=XbCO_EcD7!0RYpaV!?JqJiIe0xY6$3(S!DFn}uQ6l1m`I|YO(MkcD7is~6 zwU)1Tb)^pka^H9HQSKdr+b(e%qm>rbC|Jdpl$KPE_6v6^*zi+SOM(&fSlNgWTTDD^ z!?~N97cs6k(xNnY^Byihj=8+RE4iR9(H^}FB(h{Wv<@W-Wp1|TJ1gxC8}t|~^Y_J_ ze`#ysralL7oN1Xp6(Bazmj##X)={`BJ9MY%)s2(cjr$gn1@k@O5uI@Je?sUJpymz* zlB|m{sVex&*2f!aO?JcF>oV7+XlfUmMxkBxq;Dk&f{?ca_V>cC&lh)F7Or{D9rf(j z5uy$eXBUIWTvm;pzKG#;Dla=@i`^RZy3WjlBqMRo6if-?_jm!LVCe8wJSs4AR2AH^ zwc13y{@85&VcLbok?tYwvHYP*>BPfZD@#0fC*~)LzgdE=XqNOUdu zNDf^^_8WD7-z*-ak0GuJ)OGEKd%e#{UY{DC+H$IG++W8_j=HLDa;(;=;>lL$;wEqR zQ~*S?zQJ*E-~56p@UtNk*sqV5;LUeM^}giW>+5*@+~;3 z#ExezGsp}&i*ZQA(inaY$kfV-DsH)GKBbVR_Q>+snlUpne;tOX2Sqi43doZY@>|)uB1IT8;Z9k*|4l5XXb+IpGNoL>o>S|hT+rrDS3`b9S@(hzHj=U zuT4FS{d66h{&VuR|MK&IZAtv+m#-+R4?oo5J^A*X+-JZ3_IJPi@Y=-5xBjaY70Gq{ zVMxY9-;B-p`nXT{{PEAejz6@2{OHRszxxgf`qN|nJbwKduWSBu@(sUoO@`rz zk3aqZcKtQ^On>=`XTRsekk84V`)_}uz7Av4%HyFK@{dOdt3NmR=`Y`Y{^iThdHVTJ zJ*me}1Gr{+nqR|TpSbz;wSLNnPkn;0ZJ)$Azz~f6Rk8Lf zef`(H_1E)3Q@;E1W0j1b!f!wS_0K>3<(IEDp6Ba?|Mz2xvHyl6_S>8McY z`gpHlRW*+UFW}?(|Bt7aciR7c`j3%=qdNX1{{`>%_XG3g=lbK%A3yvNgLKU6Df#8& z6KH?^+1DF}!LJ7iz_Zs6`5=G%@8|Z*_usew<=uS${qGOn;#lIr{}_qiefb%W^^^9O zZ|#rmx6hBS>euMoPk+Hl^f~&Worc?I?YAHP6#f2a|3>`{r?fUP3 z*M71KJo2|ck-sF>kbJ`D_QzBH)AQZFwg2^>wg32MKmPj9{%I8d?c)(X{dyYI*{7!e z?SOvz$p{_@K|&aZFe*Y;cT`|JBr{`dArnIL}sv_9RwB_E>!N4WX^ z`|yXq{_!TrFF)f?-#&hVk%BY+bMpK3ME>&S$EZ)j@)!K0kKz5@zu{#1fBrT>{nPLN z@%YsD-`{>6KEIxd9|Px;_U-l)_3^ReR0{!IVpPq)AP`S$zsQ(t}<+A1GE zfA`&&AMRoM`SI;P{`PPG^7G@DzkT_~CFSvr{PFSc+8=KjCI8>vuKG>;>G7AZKSf`a zzkE~w@pS*G{{EPYZ=ZkoA72(<=`Vl&N&Pyb8vBX-%UAnb^y?%4Xn)G~Hl? z_OD0nPoIDN+4SWLjs`CE9|!E$v95mk->2CBWi;Zxs%{?j$FQ5~1O^6t#PO%5{kXDz zeA3Y$=eM&*PsrW>6`!(h?SH$N{y9$4hX&|NcQx|9H3mZTS86n15WOKQ1P} zU+6x6T+trkfUDYX*OgDv3)j+Sye0joe;%}7{^=#{^z&KYum5_|j*foP)W7~Z3~}ZE z?WAzNgm`7&_MiVmezm`T{P&mN&PN;}1s~^cNA=e${2ycT-(`aS``8L^Wy*exBvW~@&EYzKY#fApWpsx{N>BXpZ;Zm>(%Eyo@hVa z(LMhA-+#Y$Eb~mS$AABB`tJMhKmPi+KYzh@&By3_e~a)l`#-zMv_nEvJG_aC3$|8b~3&eC6x)Gxmuq~G4q9|!6yLCC*d^M3zp z<&VGl<@X=|F}`kJe(95O>g!M8FOT_$k2%S=5trKW*NY$y{rKfa{9Lh|z5VU?U-*of z!pDRJzlOs?e!;o<@jLSGQ;~1g^+(Kle!y_V6>Gr1`h8Yp|28X%jPWaIF@Ma8cEykQ z(?5Ru^T)&feyDfFfBbrwKktffbMpDSH*jY-TO&+hsvHwVs4{v?Q_ipY`gu8}Y103Y z_RanCcdpTUycd9OJk+f`qZY@$yb&7^bV;-9)W`I$x!XwJ@0u(P zSXrN=siZ`V`I!f`FB>M)Z9O*%mhSxvfsM zA%Y5qr5JfQtg5VZ#&qYoHMPI91G}KC*b)cFBx$U^0Hg2N;jnh>6JR$K96dJfcZfLM z*K~x_gAX3W1z`DV4uIZj)d199V|1%Y^m9NR$n5W31n@6>(rY)TG@EcM@un$J zUr0MaN`D+fY8EnUTd0DgxetAfE?OVk5*puaEBh<^8uAUnETw$qZgd4s zzF~voe}{B=KbvO#vc>|~6i@JGI@2|fEp=20($^b#vDGFamPv_4G*K49_rzlFdjgHC zXUbQ=IL}Fg9aDQ~!oZ{`iRs35hB9p!Q@Lh2?GE$~QSI(EkAqYuHhJq|oe$<)VPVa7 zc=Fb~9hg4oAs5o0?y_Fk?xoICM zI!S}#ezR8_S6xZgm3awR#oI;fpq6pJ;!afhq<;`=3D$5wb z2)8Xyab}_4o&5{D8tEQ{LFnE+BDcBc{%WaprJ-OxYwR%<>%~(*+y?k*e z@(Fg%6>HO0sR+BJJ7R0bS9kzK9db)9V9=|127cfvj1ZyQ?-p7WSeG;W8{X|LOno{d zTlGE!`{P1R7mm&mwvj&USLoSK?yxA%_C#U`AmkYH>`65becOKa7h$Nf}t784*Ev5I?u7Yet-fWw4WakVPddWc2@la&wp`l8p)V%uF7PG^Nr zp*>)xY~=D&P2_$hENlxrD^y9Scf6@|&q@*l=TzpB86Kd%dN$YNf%1Dh z5~u@ClKgI9uv^R{>xrT_A*i)Lv?I#nZV2A z>sZa#TO^z8p}TN<8T%AszStfUEDuTTKrJZhyc_YLZ);Jq!a|w1mnVSbD~g@X`s~jp zv~tT<^pC#PuMD{B($LJ6lwR4(ILxu{ceD>fY2?=VsG0KmI#PFOk|c|IF~ZDYLw%w) zwN`Jy@2U9(c74z+%W|e#CXt5mNA}nx9)=~`Hm3>-Ky1Y(d0sj(QP;$(e&+6>n>ZE0fa96>A6j{z=n)oCcG%@DEA#hooI;4EyYL04{D z1ZekR@yyo zqs><9K7#J|rRV~COis)E?hFVM^W1$?aJm8-&}B8qb*KlEoGcpKlpp@QeIN9KPC00@x3~H|Fv4!nz2I?i>)s%de_P3##3J|A0@{Q?L{eF6 zLL5JMHh0~iC2wp`*%`Ps8l+c;G@-fWE^dEtw;FX>_p6z9!9T0OKZTZai7&I4*9RMt zhD>n0NYM@Pd;RrdLPEQEaJ(8jl%=P)4ZmpNjNWAxi()bF@Evv6fq=Ph9@=gzX<)|! z(RB)9&p#N>sG%%D=5R%6mxGP(IHUo%^sBb5HY2> zv3E=t1(gy6&Jh=9h9q{%7LfG#yhQbfGMAOIoIIgCD9?E+H#wCF8onj#j>=b7UU?hB zmgwDjb2L&57FGv$`oSuV$=OY->(dKVSfK)>d%bxDvT0-^h4)6UqDDE(thEC^SuZ8d zO?uT+}Dlt_j1`RO#svFsKEkKYe&cuN0zYb}rm5IqMrzI3uEFt%}GNjCpdhtWTD4 zJZ?bjcmT$@9Qz9Ei2QgyN0iYD@x$6_eK;By6aAW%dA7`}C^C=zA;5U>vh(u(Qj*j5 zJ~!TFdXy5mS)UiEVXmz_-v+9}HE6WmtlG52iCkfGwb9dvyr?E~SWNH3`nBC38EiU= zVn!9uWta#-j?XL^>FKpO0%GAtYRO*j1jN&<_`G^YSC6??pNMm+xfFz}_~Pmv{y_}) z(_LQ+!T8Yzv?Mo(vCy4DhU^3{_jyIU1d4;&vpFw(Min;KH~StXY|xKB z15wg$>FF1T32qZ$&@S14dPL0PbX2#8w|w8jd)-m(+S$D)?JRW7McU2&b+>rCslSd} zADb9OU#*=v7Eszs-g7uwayvZz$5sShnd9eM7d{Z}L)o&G?S$&O>KG7Q8liI5vy*f` zt?UWkz=b23J*(a#G#qlc!dIu~X~0C zkFKynw&$od9px1=ZVconZ?&Ac2thCfC>KBHGWamsXrXSbXABg(Cgh&E;h*e6*0aEY zJie;;VTtwhIoNk#(HQE1>l8*ktLGy^iZ2`yVb==?AvWr(opHNx!rpMdpo2sO7eMOZ0bI{6N{_aM7$9Z2hcH;Izyj^!&U$XUiW{Q+ zxIJ$R;*@8-ECw-mF1v!uq|KTS9V>ok&lDW(6H2n6?nKrz1gaX>J&xavD^Yc9ez6TmoV4~-u9^6 z3_i4sh7#wga$3Nrk(7CwLFuk;S>9LUonuYCqWxQ zi2A@C3c4TU{jtY)!-k0vkd)8dVx~-Tbinbz0N^j;J(VLp+^c~U$+XWOSBkL}btvNYF}amvF`>nCAPLxpoSETup1Qzh zJ>iv`;p@I1j2C$$jJtE>KZ z1DrvT2}s^+B{+HKniz)1gScu@ae5!{RcH|O@)+z$iXbBIc;nYVB=3lUxC$goNY*$U z11fsdNCJNB|Zsj+qXIqA$xva7efSpu)ZFSombKY^RbZ_%f&gMGal za*Vg?iu*1vd&-Enw>r7gRvw zO>)+nKqg=q`w34oJ`zLf(6|mIZI0+3VzW%L_-#R`Mo~7K@%+aqR&D z9D_jI6r1-XLW`k;^94J8wbhN{Vd9?x%+jsBUIB z6b8?jlC#%A7epI^Q(sZaxtD-5K2MkF&0gemeK&6f!4aoMH6OR9(Ojr=e0@d_H<0Sp z1PxjN64Hd)!r2h>EPh7Tv$@#EhvTUQ=Dk{^9?XDYro*V5nROnCMqQD7YTAsHy#@80 zCxibiMk*z`s`q1ab@0}UY10&k`%d1Z;Ew7uHNm5@U_jT!JyAO>HU=!-X<-bhOI;7A zx+*A|9*$nO8|lLW`<9Ej<+o`5KBa^e+arNgO=vjHhS=N!;})d%A%4=x7Wq%7pt0Xe z-sL>sD_*tcPI0rV^%F)l;6`E_gOChOB-`GQw~>*W#n zOnPYQC~O5At6EJ$QM2@R(`4OZ1^m-xs0q&YX4v)00`}hW zxSMgyX@l-(n+P?&nYSH+?|W#WP*r>#oyPELgNgbZ;}M%h7!eeCJt4acMgS+$Y9)8i z*}IE(KQ1S2%?7>%zhOXtYe-mTZ`%L14JC{%O*T%ROL=(a`y ze&^-(OzTNca7}00I=Hckuw^AlK=|Cb6=@-)*1L$-1Xa4P7-rHI<}Sc;Ipi<5(cUJP zJx9_AfZVXxpcUuajgLNJkQ;F`**^bL2bsM3B zePT`Rf`Ig@OqPOHl7)b(UCWmvJUKUPAH}h>e&2U4Pof%oYdll}?uT1KKf_>SFLV2H zeT}uhogFt``t-|VD9;wHM8=E}b%yC9I9@Ke^4WI@nx+mi$n_3y{H_y-IK3~IK`<6W zx1k?Q)rRP&F9Lm?pWEYgHzrkdb|bpX=1jNo+aZcY#KCqKPt7Hd61_ze$s%LwwDg&@ zJC9E5Az4IHxW&&T)6eYT!bM2l#-U!F1gSKebu-Vb)hplm2B}2h|ATVge!!e zz?Kx$8}K4^5#4x>HQ^CehjSFr+HOgU>Gd+yPYArY14BbBn{91q-6|Iht@@ZhYAJvU zZ+jG7v0zjz_+ZNBdG~^IBknLaS7q3+X=%zPnC(=2%MHMeSnaCtTms2vyZ7wcBi7VZDd&Ft%TgbC0bY1K|qvi6EAUrJNsBIt)sw}v)8iPYx{{?I;=}lk;G)J*>c6Zu5 zQCq|lhx2XwNXmWicw!~)^`wu!8yXyf%|dT>9j``6e|6~j$E-2+_C+o4O@~>?-nq}b zU)t}$#NEoRBNbWz z^`YWK$!Jf{wI>XRT?BC9X4*f3SzW89qycyRGLG81P~#96*c<95`?tx{;Bbu1;dwa@ z{Y_L=J2(~k{%$7J$b~W7aGtR=eKbg$SNb5$_~5#rZ_1fpJb}a(d$w`g(8-RkBXqW8 zXU$87!2D8;TFSe!P|Msng1Z#gNzuIkM!3!4KJBC!OV=@vm+Mw9ETv*S{-9!U1^XSt zQEhDMaX7`VYmjCsOkNBjO8m<(sE*OWyePs{Vb9#llelMjz|umZ;s4e=(9CXbxBHfW zRcU=m;w_c}AuQ0i)hV)Rd3cKGQx%BK)lg5ENh8g8xOdWFk3kgT>wM@!;Pu2DPFfTNAySXt}o=xQepVP6XlfI zIDY;%i2Hkgc9!JIMQTqIvACAnCwe*1SEfDG#hO>9WKgwD0IHupV|N0qbwu4?{=oPg zeUl$nV0M{%+vJ^>E2nv*c(d!rbuYxzeQC#RKE-$p@IwWTh7_pUx`#P&3lcLUl{N1g zFwwqAR`N@Mp3voI2NHd^wBt{xtTN@;cYg z+Y?c90CddI*rTmezAgbis^$hdw{=)C(L&sduIhi6<=qL%hmFkQAQwoyN8XT zgI?SUyK)2C*`LPGdIp1RWMh6+BAJmqvPY;(+E@~w9 zXvuU{$#b{ky~>7h+xAzI1ZTn??rP&My62E5305|dX$F3yuMVcZy2v@hLGm;!1pUz7 zD_ZFXnnZH)jl%7%z177w5EP$s_8{{z)tism3?Z!zLDlDHxj^5C(iU{HfTsIyT%Oo1 z7B&T16IZatgbJ;W^+V)e0lJjH&N#T=6}R_uSjjT+gsF$qs@hN)F&LShKhi*2?zj!m zf%p6MSQDUUJ)bEE*dC8+)V+$v;SR?vL;7Rv9y0_is*59IV&6tM2b!A#WMM$!$3?R=~mYTc}N!2B+c)BUZ5wxL2a1nLneKfYgOHP z;KX&(V8{_BTOFV*FSfjU@oB`7ED76$j-sBZr}5b8OVC;xA>dVJV%V|K>U&YKjC&hV z5LzQGjQ_yR%W-$dmOFjhz1IN2>k@^=As@c&vowzA-_D|pC`h^932Q7>yIv>={^|7Y zhLGg9%sm8FZ_kn;z#`VJ5$f@nSRkb8bT5=I2-}}=3y>9{mkvaYF^?YdruI}+a7ZD- zzO%T=dpgI}HBBExX}{9v&D@SUb!eGm2Z`^3cr!@n5`>f)g0PA0l&_c|V|rqhXs>Za zZ=ZuWG)YPy(*Y8+X&A=JI7kt4q?aYOEG{0XHy+b3V&Y**2T2f;fp*j0-BT|(ykveD z-4FtqQli}X&~L?U6e`IB-!#0{U$WP2dwzv+XOH`l4r~6{#dBde3+_?PZdQv*C#dQ1 z(iiGcy50vYm|l9C%Qy%N?(eHi92&AiE%%w9r4y3v(OGc1*LIchtE>5OA{BPcJht!X z#OIM0np>zA)1{lDN_gP}5$<10G-b*27R8&vdN#7Uyv**b=*c*ouzEhDHn=ixcXQj# zZ!5Ga{{>j)*lf;q1Re6i;<>%B3f2VVGtGVNroe;l)$`$XETj8+q!o%zbIaIH*?c3Y ztB1u5UWKTonZ_~BOs`jkwP9bt)SN)gOoVh5F)V+bUXrIDBz`mSRU#fenvbuoox-w< zWttoRu&K7dhGk6RK1U9m#-oOaY_D~9Ua>INU<$-~17~+FwXn-ha!)1W7|fZ2+34`X zI-)_X7H>FX_*%{B?Km>R*2u9}-CILL1^&7Wrc zNDo^=Yj!+^Qge4<1@SFk>6I7-&mL6Lq7SRiDPIquS!Jasj+=#)_Ty`oW*0MNtbk(2 zzJ6;vF$tMNZq8KXGtv7X&*wge^K#|DmkHYH4wTdU2L2flk*7?ySdK3mcSW|hh~jU{ zsMucS>+6ddYdoju|@gMA-c&dV}a|054;ZuV9WQka~SE~z$?CJ?Ol3w zb{xBnPNvulmq1}XF5b)#3m#6nyK4CDW&$rR$I0y$nk!P_!W7fJZC@2dW&J2goTp5N zyXUi8A?;8sPiRe@1>3Refm$YR<6UL*zUwfZB62Q$c`Ke3C)o}O&d=V5ZVvI`pM~s% zO^_=|XgRszMn2xsC0aLt-#jnayfGf@Zf9_Pg3r4i)5|rN8Ei3c+2DC*HPo2*f}PUS z^~p-;aK>6HY@>Gpou@vYMPn&$qC}BY@5c5E>}HX9vt{Qyf#n&Yn;^q&!{aG z%Zm$Qxob1dq*KV`HX4o?a_!2KzL)2!f#XrsxY3c2n=oue5Ji6a=(f;1t8a*w^={78 zY8uk!OIE?15jn<78Wzcm)1Z%FUk$KH7ip6+VR;(VnDJwVW7=zs@A-uAm*)C~JB+4G zsPy_;@o4UMj&@{gDzs*b8s}?vdL{id^$c1&sX`Q{1-+edIHGB_Hvn4fL^N973`z5uwma^87zw$po|@_AcxDzGjit$9 zJ%i!4U96U}h&^P%+3{z4xUtc_X|bUeFI^Wg0N1$CNmZX#j9E1O0~Zr$Pq7SdFHjZ% z=I5%1pk6D>rJgLd3Bda6`8{(lWN;i_k5lJ4diRqo?RFtK$=s5^qQ3D|kOPW9oy`FP z)%L*{hqsePWSXiy-??xEB*0IzBfRH}{biqJGLbh>p}HG$pWI34!b^=Ur=4zTsU!8Gt2!u^C_f;Xf(_kBaiBlc89_71k-8w41w??UU1 z3ZtGXd06X2uvc6#yif_HHJHM-#N#MDfIK<(ui<3e`uibJS`JPlF`sa$MEYx!BCaMX z_PIo_c(AY8-I!sZ&ryS$Rv z33^V(c{Po|+w5I&17_haSe#NJ>arn$pFug^x0uQ;+^eChse^vk#140C^t5YT-{ye7 zvC~q%$-q5Z$AbWaQNc+Udsr}BfQbXW15W_GSdM>^H^W@`%7!>8Yr%aB?6L|eU#eZx zcmo7*~pxS2~qO@(S{!M-nG zRjdYTliv*Gh;4w*YfmCopZJ$t7%7^>D^};J{>s?%;%P2uPwWa~7eKWA75<|e$KK>cwP)trm8=C6L;Tb7$QgZ$p~>lA+KG_(tEWze@#^K^U;UFXU7 zv@o?~pzbQaC+(`M4~4(YkDm3K3|H~4DEAlD?}%MNuNqSo7V?EvvjNob;izd>U_wdIrHUTda1=HrCW5cBEZ8X*Vt87V3j{ z_B6$Cj|Nxd6aoUrnqE;4U7eQw;F}vL> zH5yRb(D}|s`M^Hj2WiDIVIpw=tZfLEf8+W}Amg}q6d6PgUiz-9Hz+JhA2m*%G$A*z^r=Wm? zg<5;5*^|UxzH!pzZK>UpyIj-uI5P#c*d8|1E3PL~J!kjsH~}!-r+4uTq@XT8V&qZS z_2jnR$~*#vu(8eT8rvYB`Oe`<6IDO8wMs14qZ3eIHfTnRc$_%l&ib@`dfBw@T45EE zo}S4QDv0Y#x@aj79CB-e+P^KG*r;o!4Z7r)ml>Gj&@#cEwwrXgKEb~B=UdJ$Zl@mJ zpQB+pfZZ<}YnPY1$JLkDDUcO#v@M{(I%6|4<4@s)yQjn5spy@PdyNn8-5~`-lM9*| zpUpBo)3$sPs@B>aa(h3Yqn^99v76D&q3yA6bfwE2piGLhQN3Sray%2^O;5+{Vk-MH z>m8TW=(cjXiO_BxG%Lv~8E(UgcO7x%ogXiV=H6Kp-$avMRC9mJs)s9g#LQHW0nOEq zR@Xtl+>V>|o2TV2vw1Bu->-aIY{um^326W2L2*;@x@uqVDi`=f}*^r6TJZ*WLThnNq~7v*3*w%fZipGF#NcQNNxOBqf%zaw^gf84HE;ak+OGY?y86Ua9QIEr#55w}KND7^C*g8{+xg zH1keL_v_`We>I-TL7riblMA^_MRGezO-+4hPn68yo`vsSn)1g@2Pi>R*94^|`AsVKL z^>5a;f!$ax02#Z$In-DS;6id2&aGVn;f#($Og|TrgEb>Xb}Bss>je4yW3PN{J3N{5 z(-C(-u@=Ydh*f4t^=`8>ds@Ly%uz1P%2l?9rA3U*%cI-PexJ;AqaTLtIzi+4RVuF< z)DUU5H?RF|Ln=P6yAGCAD2~mTba#%=^+WNkk^lzU*{%yP-@GlV-*X#3vb~nlCj$G=9AClXO(KW+J=*7%KG>Eb4mC0UP|pg)gd3nIo=wM_NAn)_k9~ zW_DiH@W5}NS??_JbQ$w;4UN4Gu4TcXzg@i!6g-p_R?IE!SufA4<-($5Sv--7kiOq0 z-S{MKX6aM!6F_N48!D|?Vv~$VWTNs%nQn(@39gf>#wEhc+m*ASHyvKthn!kDj(t!E zbr?d#MK3bS*SypFNuK-%koi~0lR%dwAClcOo_l0h^I8~F_MA_FwE=0Xx~K=)JnwNh zZRI@<%0mHnB|MND9-pY3vBJxBngM7cB-0tYp9R7Rd2sl}h?wb1^pq$+#on&uzGLeC zkURidyv4-v!;+s;7Wki2WbwoyjtKr8zJYK|9vvAsbF>IuCncjXkW*kw26LYVC!Xk? zH);D5mTjnn-l-1}@m0TCzK^dpbp~tU7(T2kRAHybPA5rebp^4nAHW;AZd<8pEYDj* zbsOO(dbJ19a~^5q9xuGMk5>6ODRs8AikQ9L3X07ss}B5Rw+me0jt6tSVn&aW&oJ(A z1wvG96{e{a)W3# zapOSHulUztb-Xy2g3oSRCCp+G`WN(QbZ!QGbf5Hu+17H~mMioarARZn(Q%lpSMiJJ6GwR`fY zo-Q;8V6m1Mv2b)r9m-%YltOPdOl$^Z<(o4eJd%*^AnUfPm2?X&GofIA-|H$Kp)~($ zNgYdHhKmt)^dUwV-`=lS7ABOf(k@$YZm`FOAZe)SZ@VOt6U{qIjX+XvEH`Tm;D#KD zTtr$a2(k3K53_gW>V23Q8u|8MB^QuT+ucm6&{VZ59DHX_I(uS9JEftuAf&d z+E2Yd-S_3WFxK|k5UF$Z zu*HtX2G<(f{v22Ibyc0!mj$0rzT+AZhP$=D6s7Ep@Qw;MUljql3w+Io{W7?vG~4lB ziDCn3Y!E40D^P@DxxrT>wSC&ciMcuXZAG&A!b?=@A-+nj5c+k#3eJ{Kw9jjHCUApM z7}9%rM~c!rj5~ON{JRRUZ9^rq-f>k!UHQ9Lch?)`2*Js|V+s*ZiZj^UAuP{~m?_I- zckbIW!i?8(W{^(1%pp9l+C$3Lo_Zh@U!Hb%3)8R)%1PmxY>{y==kQq^g80%v2}A(kW&XWU~FS-91W6afezy!6GQGEd!_NV8@iE*K*?+j9l(6#6K70aKi_ z?+RsM9nn=O-@e4zp5@G@#|B;LTF?}yCH3q`(>)(}RN#m`7lPivQ3LSnvp_Q?q}gOC z3Zd%FvJC>xOuX0kt#JaF(C;dnUE>stB1l*+5m7k2N6U99Q}1bqI7)zp`%Sui$mtA5 zFaITt4^YwY(TNY7kHRP0$c~dPyyrvy6<_in&}_ zcV%ydelmtLvUMPlUbZJj^lp`8Ztu}5aI*bsPPk}-5=J3Ur4=BLL?xV$FB!{f>xEwU zV&1nQE8MF0doMxy3SC;FndRBe+4_V)I#CE)wbt>1E3LQeto#-3d7M4R#C zzO=$>TR+G8x~gbuG2$Ga3+fh>s%x@^esb=9sy_-y2)d24Z`V8LvO}-pP?YTHA*~>{ z77O>3Y5<)+kv$?+du>h5KsErMZnrzkG3QfysKaX=f>@-lU2XNQ&LS<|QL9YCNg}Mi zg|4&m&e(*uSF&;q8ix;W{XqjWg059G2k1UP^?vUyhl^Xjc)G%9I3vB5jlw)67z z;NMM`1?LH19kz9^=_1+F?+ZzQBz#UidtW93B0KH1EfykixYit}X|X?T>crD)WoSe~ z3}$jC2A4u6XXl&-6@y)CPym_2e>CL+q25V_YF(BD!U4d z72y=;$KA`D0_tr~ae=}~*Mzyc$Ah$-wl#^XtvA_87o5{pcPpePp=Xj_qk1r!j4RLliL%>3=|^Q^URRS94TU(UZtzCCO8+qe&?|8=3g_4596 z2Is&a``a9@&UoKj{{rvE$;!fux4(ZIemi~m_IPd;$%B@6*H->mOMe?Z|NXE%x4e1r z`1coo%xpbaYrnou5D&Zg4%eI@75?{Ly88VKj^VcZqpkJD_YWQ&{XW0@;lqc^!P&Qd zYrV@T%Gb|#M!juZD*;mf7I8+q=PSQ2Ke>K$biR9bJ@>kE-2M9U@$-cw!F2)2qu-9c ze|gt=^?GyT!~A>PO5IucaK5qm^5Vnr6|M;PYIHfLq~`1f=z zox^2wX?yVc-4n=~$h3d`7`HmTdHCQ94s|}ffAtQ=$cO#m>Nnip^&F{cE;?Jijib+V zmpBrz+FAH;`fTC&dH1q+0teA^2pF5`^$=HYJ;b#)IPmf2)$;J!yJt@}FM1EI9?rjA z82<64^9c6_z5M+3kLFs7ZTNv7tf$wbFPkfW939Vn=&T~L zs-OL__-6RWMr-5ZdhPzp`HMHWUKt{h*Vf-{JcD|*xsBt& zYa1sIp1<4JKEGajkC4{E*5>JEva)l%yuNdI`ep9?#nxzR88@&zIa#G$QQw4&?vE?_Uu@`upjtv&W-n zJIe^;c4s3=hweI+PJ^`eg6Hs zjpH|2>)H3O^T%IsJ>8?--%c;?Z)~^UJ>0!soO!kK?D*U8!^KSRs)OWOM}3^z*?xJt zc5$(Q^D=AKxMBC|{U7gkKVN;hYQOJnw!eS=^785lROHu}-Dhv-H%IT@K;?aNgo{3s z52MSom&11U=;G+h%yF{wW%2da3=Eqm;BD#43s8gazab_JG0eEk2}gZ5x6gN$H(K8k zoMw1G`U2?*&eHYa!yYn~ULOtm$npK;^Y8DTuRnT&TT7NNpRe>jJbJZ-%QBuk*?9kW z4)M*4xRzmbetibXt@G+_>&eWUlP6!{NjiPDIrqo?tA*rc`}17u)|5;eE+x~hCLehI zIePb*sRt@HWed^--8}#7ve7*MjLadLlL!eOhMNE8-Dl=|XukXG(i99U)w=n3j7`~1 z!;CWb?&-T)a&g?$pOw9Rq*Aa|u5ijMyOK8bC$i+clXrtSX!-O!J50`{nEsqz4A}ur zq!51;i!fDGuJLizPrZ6m9w9N#011zdhUJFI1mPf4y)kc0J}4x_u$iHH=eW5s>t7(* zMHy3guz*}E_y1M77+ep299^H{RrT)u+AtjqU6r(ZS=-uX)|)CaPuWyipLJcf{}@JJ zH7P`HNbf(_Iw$RKodFU_>|6~cyVmNmWP`ws^5@8(b#x?8y<~WXrvo&HrLI(?H&?^> z{=fd~&d0&8m1h0peVn2Bc>l1|{dgY(L5dH&-uqYS<8Xhb%498f??OV zQ?4Bqo-Yc|M;FX^#eb#vVKNLKaoQP=J&Z>`<8M^v1Ja?`g(|(kpn%3qK$6BcwOS2R ziSTDQj{3;hb26|?%ijl>YQ9x%*$#$88EE|x5_xW_;TFo z*9+z3Witdm!(l2wFEs5w0Ql)x2I?~~ zz5i^|lL$Dnn6T+r8_8AD8J056zsAl1uSnl*Uf}@=O|t6P0TifaTQOU}HCsa#BP5Mc z$OKi^wTjy_0_vL11)UYD6$Wj`fYd)+#4OgKAxAuhfzg{m=-Vy4W&V|D!;CV+gC9FT zV?Kp}$ZA!Nj%rv*CJ5vFvAvH*eM#ts99cmVw&6a2A_GbUj9C?F*Y<7@37Xe+uXa?)qF-l<I#^dWsizcVMN;qv6RD$tBqDTvTjYs{0@NzkclAuOe*`W!KX}iJqnmbiMZCR;a4AMD}~HfO}GmE6zmXr5ySn(JdJiS z%lDDCNN4czBe;|-9TMXm4sfr;Fs&rj=BM)An`B)6RR2`|$NwDn=01MZ=V%nQVx17O zuK`S$(T^Vh+FAVSGpIHB%xmzzYE9U1qt&d8;-HPz7&wxaKSfF0t=0j|E}B901pjDC z#kOglc+mWG_eMM8lLz{^^oa{~6`wUf{r7fzr?k1X(mr^NTR7vpH)rFI{a^UqF3qTU zH4}gO@3qwugAjI*{Ax5VRZys;Kkwf3#`u-+pZ544zv4@^)L!3in?meieQUY3E>)yI zcGdo4C;o@|QE${@_a5&H_;y@3{ zIKMTLW~B=p2&(D;SwD+MK!YSET46;qhX!YV9Sz#?r~kS`S?d1a>=!e>_-@5;mQwj{ zB|SRJ@OQ3U`ccC0OS5U|pM&Tl{)_HMr~j;$tH1nmgo%|tej1T}ef)%!ctDR*>DT4= z&)=o^qbnj?K@P$wh)oQ=zO|GWGPQ}OvSg2;ki zVVRQ-I<%b_Y@aBENX=pCZWB{zdo%=l`(HrAIJtKZNP%s4S1H2iPY|>9w-EEE#3@2n zMkP?BAvHzQu97OdqQG#2re=Iu+ybh0bs zSyi!Gx&aRUS828L4QXt#nXZ7jr9)(1Bo3F1LWx|A$E9`TX#IxVvz>FK7e+$YO$<`% zVm{b;5Qxvuu}zVdk~Ig|ktOVAWRuML*C?mc6-M&Q_>(2`e(F#R53!p{lA)4=nw;wu z=8Dvs(WuFizuW~EkLP~j#CM=1niT+_u#?&z^_V`e)a&$8hz}fPZ!|>H0;}9owI%N* z(%r7Hh&F&BNCnWJd)T(%KZZTX4qX}FB@IPuV?XB7pOoaZIO@CWt?eB!ww-10z+Zv} z{;Tw#9W=<%UmW!9C2tw@6vXwIDv0axSjgsB2^Hp#M_IvJXZzO{D7QSfj6Z-a7xA`I z|L$aR>-Z@;^aR*S^fyMM5KQeagwcdH7bKZ(B1^ZVp`~U9M8AN_+ppFoWwIu-gr3$9(_ClBNt->jDNh@j%}JXe z1#h-*<%|h|Q|uPaut;7^feZ_q4ibICinI5x`p1v=_kXR{??)8~3NQkEx_^NX32?%^ znt>f%XPb?_Qg;w$nSApTDWm)xH^_26)sqO+o#F|JH~(rG`8lq0bwAainW3@R05CD| z>sr;M)E~n}1Tv(FMc;omiA9q|W?M%hy69*@@`~b*D@8jEfSo26u+?aK_TGY|Xa9~0 zCt4wAb8=RI(E`+DYSPT!-naS&b7^DAne5nTAW*EfuDZ}Zks*C}4SfeW-UnJMv$dv{ zVKXU+Cj~^K?byzt6Ikq<+RI8hIO=zLOb$PUeo{-j$UELA=NKayHb9KDaV;W{L*;7kv;`kl>FrboAWp&e(C((x4jhUs;Nab!&i0WVo(3E z&?MA!$gsOacjl@!bkRQJ}k@+>al)OCV!@ za5q1sY>&zUhB8DFq!h1YH9KE?tJ)>cA%iSc4ZD-*?#FqhaDa)-?kDUx89c27dN~62 zc+@vSMiSf_ohhkbjl+?n|0$wxU-OthUaF*)Iq#W%;vFad^k zVScKU5R8%88jc2Sa%rw9PwcP8B5_ui7c!nK7)*vl)j`GaIMUun-N9Ms1a|PhGyvCj zZWQoL%mH!SNMcwoUCH>io~QRKnr5%^HDXW#gbQ1~RVzk@?FPw-fu#5%tFoI7hhMpg#ec>W!-(=ey8ZyVbTZra5Y&6|6AGMbI&!Xv7-WckEWr zvgKt!mnYeG?8p4EGTpGtY47ce0 zr)~|xwwo}w6h7#kDsw_>xN!(csWQDF8CV}nQD{Ziv}sxw)P-9zi8DpF1IQfPB4%Re zDx&d~k}vXRzal3cq?MVNp`)1jejQ|d2NP8tsc=;R;dvN74WmPY)6B|WEd4tI7~T* z*A0i)imM~@`DcI~3HzyVie~KnXbxHc8^0BvT{vzE@YEN74W0?Ab30CjXLl+*yOG_m;w5y2 z)1T=I+ses9t^nhzAix2gJrvcp;dg}aG36z6KjtlptCV}`D_O3S{rCaf zZ`!1HuRgTg?;uyp(1zT*TFM)z+E6}meaMd=is$)ixgwO$AUw$(QC#$$&e503(V}n~ zcs;81pM8{4b~6=WW4g{k%+FI~zp3DvI%Egbpq_bG85%#B6K=ZIn>$#XZnIy@&wS!V z4iwFasb;Gn>vgzh^3CLGO$FfD0z^G9rzzmGpXzDT#Zx%IONUVk-`dg`M2F2fO6*%LiW_i3B7UqDfQ;M%@DX?bwJR79AA*EJaP8QFvWv)0MD&-^A z4pob9*h@y9$=7xmoo_Q(=XsTO^3`D5NRDA`;iYBMHXklsOOJo@(QFKqFd}4rW!EwJ_jJAH<`66(&(r%69^1;;dMgHu2NEJAFj~)hVfFQbr zQnCy@@@R+Jk4_yN@~3*W$8W;bvO3OCU^NOaAbhd|_o zrq)545ouzdfLxIbcdKu@sbi=JNNP})`+i1K(jTDq*HfrHOI*Ns#9QaA=G8hfI@%2` z!>RP+Hc4p^o0C<#^x-;YWNd&87{l~H5 zhIqqEv$A-}NSGO|PD=~TPrPjmHio-5Db3d~Z_4$7kjG|m<(B%uBe?O$5ihO!G&9`8 zhkcQ5Co3cPVa#G^2f+w15Pk|;=EqNZosshS;G-E7DB34K(JzXTpw3n>!01MYScS?R ztX==Z`vgR>xx7Yp76r$-;>DMtO*VVwg^_)DU@X;}}K0`PE|c zC4(vbJ8>DtJ={TsfJC$m1*bn_n{mB1@62OAAcipghN~WFGk}shJ3j_`mfLUN9;|Kt z-dbN<;RRp^__f~9JoD|bqwK6O;<4?8H+w>?!z{s&IG6$o9rhVM_ zl}rWc_RiaOYvbVc?)Hm=*6L3C?Lm8Mm7#!Q+ScHzYAHeD$9{=l{9+Oy9=1zMhToSt<$^=Xq>sl^dq{Fie4#9z3aM-!%ou|CJ6PI&>P}*g-V|v@( zXzlF2Z67SJZ*60-%dh(>VwOhmEgIfltg_NZT^tCRK8(-~sl(BE;i5yCtz0)}=y`rb z8@uZ}YnbB!f=AYIzW5aeLpFJs9DRY0RGgd_qw`@0^C=BG7byZbi(^}EZ4y?m*NC^) zCQ3JCB(Sie$7IEKZ;|ueF3u*VRwlc}jhwP5;P#VMHh0(8bvtgO_y%r_Bt~mB+SPO` z4obt!Ouam9yV=YA+M94m;!3@#YrAW%3QW7;1fWHAuJq4PZFh6~#oFqQpU^@3cc2c& zX>iV1=_(fOFvC)M2`s@p!96V_hBk?{iotjck8O!Y^#MG#eG89$3*+hcGsMD4)!J10 zgYOSuxDNg)9x`v#<6`OAAZuwlQbjiP=6v!$7u3QW9;= z*ws6ORR#wzgzMhD4S4-=gYAl5?eKh;^a&BPd;6gym8A1Re&5Y8T zYs|hJ)-t&+cLN}8&OfftKmK)oZsFk=fVAL_5n?%f5l+93Ia&E;SzTXu>H1n^aIYae z#>1gOn_(<_^JLMrY=I=~ z`2BWCfl&<|aA`xYRO5dahJe7m06NgW4xUxn2-o6#f%^(Fn#^Wvxv}1k!b8KR_(;Yq$nfAvI3wdamffT>N zZEyKt>3r4t-o5y@TP)ET7)$C9+dSuAL(ej$$giS}<@gxrPtD0`WsR3$0G0I)*Evw9aH9%W&aPrJHsnHfp`6t??aLF8m{%gKA;&@6=4^pW((t9jjn( zIWle9&e45D(*xbGb0UO)+bTJXD1+OmtpfXILe=l$%9ItP4e2`NAG|j-7vxO~6MDXr zolxJhf`6VL|>Z{Y8gz;>O5s*kuqTAJjP z!{Huf{Vy<6n6Er|LIar;Rp;w#H8zHIaM1^)D^E}mFwqr?0v_tSNskT#A|zEX7TcA! zo*uu&)$_0x1SQXtf$@|~``S}@qir+HY1S6OXKy>wG0|Qk<}yIc{f4S$O;dsSLy$0d z4gul@wT!#u5lN@t6pm&xgVlbT%E2Td*kb?Nx%6C)R7fe9hhZ2F5`f?J25-vVej{yE zHNd0-!yy$il74F%=#Lvd&;wRHutePqL=Xh>VJSt6s)S>S%DNKeh|)_P1mE+jur(ta z$Tv9-*W7JdH&e2@1V8DLY zJLJ9r1s71ObP;v{Ap!Cg?eur-P%%X|RyAJg5@k1OPN`RZxn(;D%U~Vay#OY0Z(O;CPt?mKC~lmXX7N<& zi5W^j>D}WLIZ=pHvd!{)5jqvQ{>)6FDzK$cnGlCWhhY_HPh)5rAq>sW+1bd*VVIvd zth68bsbG8UqzMpb!zvt$yLaz3^&7$f_V2>j2I+7m4{1M14Yf0bATaM^Y~+!-<9Wch z%3k>_{RU>EQWF2nKEY!$IO=rp7sqRo{xyFfwEyu#7Cag(=$~2nJ3N_xd=8VSR5d^Q z$yIsZnSm?m3~Zx?u9skl590qImxBRV^qd0ZB5nZ{S!&#v&elUT@WQRxjL}VA)hDyJ z=n1htWbb)ov0n4shVv2(L;&c*wx!ZtOK5D9Icc7Yo)cM3|^q%0%CcVgiDutEAezKI0_;M!bDqb0ZB8b zwlwGKHvFSuoeeW_OZajRB~_qDxMxnWA$RVPBtax}DheDHsqjf`$R9tzhh*O?2RLI> zlcF}eoP5iJ>!9*=m}WpD#E6+hLP-&eNb4@mya*zvII3p7=&X4r(&_YW>S=NJPcMh@ zE9G!hLd5QwcwYTar{Y8h4}n8Ym%;9*-q<0fDP$HZ8qrWC9ESP`txfU(m15+<#kGPt z%P2%C&=%~CVIobeRaYuh$flvVSJc`}S4bajQX_3t64W;(=`hvTc-sx$yDsMaXosZo z7O$!|vv6EFHW2lvL?I+#>XW?n?Il?R*inIUPeelqcZL%YXA>F6^jFJAZ$}ZY zbL3DwEXs*$<$y~biq;iVYEL>&DyQMtxeC{Ngw6P>MjN2H8mRbCR+3 zizsUt8`yP}O-8LeL+}YWKJX%`*6~1rP9B0#YJDxV288v;kB)&2@W*lz{{j9C^B zM_U$1uds*2hxpupP>@fCWCO7p#=n0|QwI>+w#&RRAN4~7ce#*y_tfTWZg zCqnVs&}Dm^J^N^thgOPm$i|- zY#2o)I87%gF3K=?lHw8vWM(A}1V7YC_R9c$$Z0r#SvF%AwOX2D03X4}{l_q3QXflc zN_3)$oaUz{d`P$uvD$j!8kwQTI3M5$ZzEV>pkYE`#D?O77Eba2VHNT4FDXGzSpD}m zE*AMRL*UVzgf~qZ0K7~zj-Z=+T@s?f6jheU|FcG71TaF63{_a$107UmLiz6pF0_zE z+(V&|wc^=zQ<;(!h#iusA0IRFunS-8mnptjmN;4%TF*Mqpa!l?Bf+FJ&f7COeb`M) z!zvaSN4c=BmOrH920EzOD9JTd=?>vcU8ak&y%=BMuX^9sS`j`#u|`D0^!oZ zf!FHSS|r#Y2{_J(RSfOIYdC&k_9SIBDcQi#z0DKG9Lz2MEVuv>B)fW%oS$rg)X7F8 zmPp93Y&N=PEZ$g}A+lSrA;U7kE~OfiZ$2!T|6=_=N&`SZkQQkH2B_*STP=j5H?#b& z*&C)CJ*E#rCD?y|(;IO^+I|KUP5FfBOE=Juhxv&xve;%Tk;EgTvM&ND0 zv++t*Rn!4j`73k!_lT-RTp6Jws!%E?siFJoNp7yTrGgYKrd0QzZ==Y$)?9Bt9}CEa z_LZyb`!Y7kqLIM?O9{K7v~M+BW^FNARZ2_Z+R6u!MBQH8S~a00o&>!S#Td+`NM#X7 z7BiY`-0ex|2o93;WbYsOUwTNf_>BAdu9_H#qsXn*dWHS8R-?7WD*oS$BHmpNOq{!P zxzHqOji%k6c`;_?ZZBf--DMfggcboJYNbGkesYqpyJx4QZAU-r6=o6J!tku0U5VT7)?N=0MCp4}6^I>rrUv7t5fse4pzm2%P*ajC zoJ-UijG9QafZqrh)?ctrW@9&IU87*+dLY(#_x@i-ZP^otUF?rI@W0q65ScwFU1s-Y zBV024YaP2`DW3)<58Di;`MMp;rYiy8)#sgv=)C*#2&=cZ*!W&|K8;^*4nia2zKGHK%*F}Iy z#`w$Zi}`Wj12C-wTk0v8h%9g) z%Yzu$bg!h?E6#6Q$zcv?KClV#Qur6x7&@a2&6ygj>^D1j#TaN?+ZMm@io`ATHX496IK?_%k+su?T|M$YTf(oTqK$BzA*^$8+puo(_IMc&Y5cGub|rFN$y7Viuthj`%5@2x>AilPb{_jpNvEUWB@zmn@1&?qJpo$E#got|1f$ z+XL%@lq#xglNMjYTGD7${NaDQXFGb|DaSzHh)ydYjaP7VIf-NVG@f7h4QHl?OG}Ti zvX7e!{P_?+=N~p7@b?4!elXX3$ls6gd!acyU!Ps@MC6QgL**D{>(SRm2)>;lG$m=W7TbZgaxzg3lO zFCYs801@{8KpL3~ZCs~*wwN5|F}HtjesO_EwdNO|*qH{cAPvsP(dz2zN?Ay&YkmnT zsfEtQQJfeqk1c$-X@Vy@kD1hW*F6878 zsbWMp3x`R%@)x&S8t#n${C<+=|8&z>l7R!Gg5nC7ek>RtPW+C8lnm97Im%CF)2j#p zZ|{lgb`OrN6Q2Y`2QQmgTZt`!O(+&X=L0b|)JE9RD-Z%{p0N#y}{}~O~ zk&6ven#{eSZf2Zy2s8*9%`j24fJT#CqitVk8Joel2BKy37Z_ud4ocWLl2P30nH7L( zpfDonv&C0x3T6!LvLGB#9!umqqS%9^+;>J{qZZ0CO>H#y>dzX*!8kuLhC%hyukb8- zzhVpKC$n=DUz;GiEO3+Mka1Qk% zyG++{YY?w0nV4DebAFcjs=+)J2D)dyPV^Csd~yID2F1P|Jf!t}-+$huz^&M%fXx7@ z_|0^81u_Q0>}<}UC&ngtpvLhGlzaCU%H0cmavxyx%bB5h%A+*=UrTRFIpG`ppeL*F zRo*>|^>j<6OkVgl#dR8&NZ}A&92Y)(MoLb+-@J716-d?SY}LP_;|8U!^R*FLhP#p2 z?8>4mdxos)=RC_~KDB)vSiL0Ku;*LpoC-O*>!2U;)blVpMyeFB<*`NG(qYKohI@C< z_DLaNNzPSo_{3kg0JCvR(T6`h01)}>rx>iY>x z`k-F%Y)vr!bPwZgwxGA;FLE6hy2L3qD-6h3fhUoqN6C;4CG3$)tmiwiNKEE0DA!ex z1XzbDbS+liKIyKY8ZxAWUC02i>`oi7BSL;e=A#5b>8;vBYjR808nQU>wyBWB2P+C( z&^l#(86>|@-fhmPn=0X090Ub}Q`uK$MJgg&xdJ#_iaF!o4F4GJIWD3#!Hm)LR;zF< z!rHk*I%Up2!MLv57qX{u^P21kK;#JFc{r?$Y4oG^u|1xbhKUe#mVJ;s`&kBPB?CzU ztqokb25u{{dHH8;oUPgtIPG_bn2}*3n>>aD#|>?%1G^$Vr6@d zVs(kgEu~m>6qhoQ78p@ZGZ9fbeW+MgunAfQw}9u*4acnHy?eN43|0eRv7|?uu6mSp zL%6A=(5T+%|MvD~6$BL&o-)n;f%1YEz-?BTu>iw6WrbX2T#j^v6(6qGV)O zsf_R;1T7*Fl%g>6a?!sTFni#op$E^E*(YH3pQkW;3$)S;tC;BN2CgX2^^$D1z>m87 zl@ahhZq5&lqS#ohupSr`@vL$9lpQH2K^XL)Ab;Efgtti5*nOd#PuxMQ35Dcj`rIh%urP#WbCqwxJs8oQ%OhoH_|?FdSxCG7KGo!KBaRYL?thD|qMXTy+K72g{ACZtX3!8yET) z|GtpQxAVJtA%i3tL*}+xo7u+H=+lp0ftgwGNUV>AG8|>b5-@z$gzdX6`emgpUR;9)W?(eY|P0iyRPcDy=0 zEzv9g&5BaFOoh?!zQ8Sci@y63rioiJ&_yqnqwU4$+hRjf1YLEpl)6>7F5|bwJVMdo zV!T&2HW8C+I4T?D#^LE+f-A7`7q^u%%Rd6BZMuS&T(Y7$cF4mOJQQKAOF61$cEdy= z!N&$|WQx0L*VEs)xdqM*$Z({d=H@4tfz?((p(;;xx+;h?*M$Faa=^dGRjRNg`R9Ev zh+rGp`5Y|A2me;Cq=Wxpt|Tk6Dw}6YJDBz8gUTH#j)9$`V#8DHq})QBGb9A5sOPjq z-vqiFH=UdvvOzG+buloO5q2fdxg0vk--mmvPJ=R7Y#zZd=bP|k%*^f;C&DVWh&`_> zW9q`oXUUl>k!q^-iT4&Hid%}!uhb_Wg10cF?YYAY1p9! zr(ve27jhN}SEZ0z0u2}5 z%&pH*wq5{L@lSk-g9-VdFSG8hHCRtxATZWdHs5Vq1d3@kV6suTh%O?4ZT~Cd>re>m>keC7aLSbPG(M2Ii`%Sc|*!V*7LX$c{B`P`Q z!is3a7B@>bwTAuX4lzM+*|_w_A#Mvk2QP-USS+aI z$0qJAZ(fNqtHt)iTnunwA-Kq_Gu9U-X3z%ab3tYiI<*QrGNN6>pS2~BVkeXk?|6AB z>;h=E8hs~QAU=}UVSmEKnV*2+G{GF4q!ZMYoeT_So_Nngr2u&-wQ7j0fu*8#e7vkl zdyJqBJ7dAxBw7T#|01+@1>X%#yequ98(1kvEDR4HuD|{RACcbxC_bugF+ae_D+}EK zuJCdOflqT)G+>>sVf5;qu+F`E#(Y<>PNxjw0*oCR$>LBhdUEW;@o$Y9o?g`z3SvN}O-{u{xqJ(> zkoVUE{G>IFYDOfXc^Sz!oFF`-&&i!|h9{i$S`%T|%78@jJ`7 z$~;F3MLOvZ(zPzP_dJL;`MC*q&toLriR4S1JOh+5mC~1m z$(*9(poJ^&xGFMjC$icJ)Jq(}Tg;DmhWivua}2lO!qK0g9oRuB_}+lH0Y$5I5*B95CjjA3w@0$m+RcIsKI-K}|chD&-N+zw68gzr8 zBO2}(4&a#&>M?=LdWaE!8JoA#2Xc1_yI@PDBT2~p54dA`!$JIy&)^xsaInHkwPOS- z8;k`RgwhNuh#wX&2E*fQ#ACGicQ9ka-;^|4^&PoT+i8@x9z8&E8)Fw~0AW;SLK&b+ z5P&)Aa+t_2k#l};M!Tw=XI)bO(Q-f+kjq{Cj|r`JrQ$JONJ79F1UM{!g5eY2H zK3x91_XbFWzlaVdJwr4vFdNQyjp5YnZg8^;V9wCGC;VtsnxR159rX-0=A$G{NaLYm zYW|yzprq9r+b93gbv)&p@fWO2tLGtzVBTV*0&GOD-tuK<+85<{2x7(L5&9f3TWs)& zz*=~ViqX_0>|$~S7WJ5(NJ2tvvmTsRl})=W@=-y)3%iS|I-6J%3O4Zk>6J(ZcY+Jn3>CtVBYTGiWS_k zWc)E96re~2FriX{^z+nWb11jsCude~6ERrO!X{VVuP&U1ps~h1#5;Q+rHjdBvpQD) zk98fb1pDQXXgRU;0kWanF|nK5&*7(Ehh?`rOr2?iboDq1*P8FdH;3=COWe-w!+gP& zB5!goDYEWLSvNl%CP;svo(>9?SPgyv(HAF}A}N0|kJ~Vi#JF?4f@!xq`sc=mvNKIk zVar=x!B1FXf|X=9Ua+KK=AW1pEqK(GF{`Dx3oPo}IdI8Bu`wgjSn4Be)HuE*3>C==WEH4RNwadI!w;UhzBrRV?af(Dcz1gDY0~J*xtQ+$ zv=I~_X2ZP%JSN_aWWWvy{L>)h2unJvr?Mnj9EVmL^yJ{&C=$uck9`&#HU}ReKDJdm zVI1n>Mp8td3a5ezD+~POfrJ6a2>7WwJ+O(rmqaAATVxNr&oC`jVxUKg#76PN`}0I> zvGE8ZJp{3P)g_XDv+g1m7~M$sB{pN7wgTq{WlH=oOPxGYpvv`$jWTT{3>OJqlR?)+ zIkY=rst_qB!x?2~!ET4RWhhf_P4ndo>uV9T2ksNV9Qnk+wf)xlxeXE+1Y^<>rSX&z zg*B#!2ARQuh=gbWkpRzXIHm|t)X4luk^RjQ?GoOSmfxacs$`!-B#`%?VJ>TsXE-Od zC@Sip_J%)@YMzrf5jkcDC`IQPezH|%JYJXtig2LhQWo=&FX-EFh-=5E=qY&)pv`&s z>xAuf0=7NzO}dr0ThOpZZ9;@kN0T|u!aj?-948Qh+Arvk&RobhUIu`dazxDuh#6He z2gRxCVrNoa#4A-76;5n}nzY$@WH#m}1xWs+N;feA8LlCrZr;LLQP#{}*3~qoD<+NQ z;V!ce!EOm8R*`vsRnRM0fKpKs+L$+>+AaZ4z_1`)*pG%%su&~TJU=aNSH#Rx28y)2 zQ+u#$sG$tO8VX2m+dEX)MZ$%I#WgUKg#XU|bYP=ctS*N}9)4H-r02os_bKt~7T+-@ zW^^jiLhMF|bVf5R;LbLCu&b(0Mz^tZ5gOx)%xDDPvH7HGTLTvdjGWaBjF^#x2*5YL zIDVddF#4QW@LcDJ6)*Izn;qhv>mEK^_heL&5f>soe^TH z>=czJ4EMPIVB)S%O0WHU06c+Y&YY5oixLSjh%h`9 zP5SSSWmVO=e}6ERHvPW@-dJ+(!fp;ua7L115Iqxr3%2WjKk0XVWmO85O>RRvt#^bZ z$yzdjl}@P>N-V0Zl?8HMOn;|9O@l9SXB1SrA$@U1=0&rHtTltudhdO?3Ll+uIB0S7 zJs*}k>GY8)3#L0XXbR%yS=`v_MoX4$zrZNgr%sSBE&G^08#4}yr}RI8?;p-X@P%Z-v@F$((}NN5dZoxO`#)BmzhF1Xvz?)^OS-)anB7D18CO zHvyx}*f0k@g$#+@!kM92AX~(JPYFfCG*ZyF95KWbj$)A*ep^I6Q8US#EZS0omfDtE z^%2kN^ZqpYPZ2i;Rzc7*6KRaFH`7tyAo46y9ICl*T|)9l2+8kH3CYJh7n0xUHMke9 zb5Y>gvtfL#QQ)@(awkEFi3@1Y{l}fRt(zw-XTy}>2s(b2S$@78u+ z9IUrDpW_c~&Z{x6d(}AbP7luk&_)*FWIr2!!LXln2Y}**5%_EFg~l(*gn6fn7)13d zmkjU}xx-4ZB-!M`KrPKjKyLx}vK3$?=pY#D)|*%iB=ROUHdZjg!1Nk+ci`Zh>lA}E zcdURa!I$Vt8HZxN4cXEY^+_G9H__Es>VQ3wSwet&VC-+%+&FcppDZ3CUJbT5*8(kJ zqJvD|(r7rh2e^$xbp5xtbrEnBiGn#h-alp2LOWHe#|av>R8;+NQj8-BpGBj}H--|v z9dKcJuwcS-o-{yyQ6Kz{+jKZtS6F_7z`;alKFJ}`fhm(iB+EhJZM@+%S~!^NxvIx_ z5eF^Dv<75D+fBkbN4Hg>q~X0FI#`*-A1(w3Ymg<^JYwp02mu&m-3D*8VkfLe*c5tN z&ob`8vy@4-THxHBDV!Vc9OvG>6n4@@jdgdM!|o+4RG5whN@-WJD6jFjL zRJ+$~T_)X#*R;_$n>|O*{#0w!gOGt&a;R-%ZF?Jn#{o{aZbxUq2Xh>4rHvn3@7pVW zU>WJ88aT{44###>rBfZXl^XtTHn3w>*U)+7ornp8%t{H)&|{p0wogC;IkcD+U^6FR z;)xk^_!@2ASUss8eUb#V+1RvHr3|(nr15}&jjP?v3d*V1;yP%(J4^?qH&M#@ zSA~P$UXpGJQX991<(YPa2fWNzFdtC`BSE-0L=h~H@nzDC<6)lYf`DoIcNYpsXNbVw zg0l%R*uKa$i`W9tIaJGlW@n8*_SNkCKH{}4xXVo-0Ib=)j9z#9w$w&z{)&L1PbX*E z#qkTyL2s0U1O;gxB0Tm!MEI2QyTe*M7>Sf4R8l0>kceHYGlwiBJst!R_m@>fpDqN1 z1z2uRhvL|*N}6(y-9^&#Vt}NX;T}OI2ZR$T3})vMmC#yp>6eL>Be{mnPPftq(m@|g z;x?{W!Sx0;$k*)z+2FAl(BOI)UEv+GsE`&rXCM`~;}N{&SSwt)9#AsC(qP3Ad^Ld(uv&RK9!rC zbaLE8N;Xb9wFBH^h}5+323Wtz*uITzyTJOJ=_WZ5P%$=}az^N$ik}$z0GA=DZemOZ zFb^1wh(>TkBY^;L5MB;Fz^=^oYv>y{E5cKbWbdMw0>!95f&$JHpBW z92gT&1R?Kc%)CX`j0B272tF1y8ipMc(jMpFo8Xj&<)sjl&PJO3AKpKKH(2zYlu0{9 zh&ND2xP1#L)Uybz0Q4W%&B7`MdrLebT43nJKY%W=XlOd8APv?(v0?^&QQG9;RlJ_t z2eASCy0mcm^$oWz2n-~8e7<#n-_3tSui`+ zx^;rGIak7gy2;G8xgfozm0O^|Y?*+=iY9amh8aN0OhU_PfNO6yULiZLw1GZ0ip)v{ zOJ{KC+a%X#(BKLj?#{F^%Ky7U_u12cLr{&agn5my0oE zI=UvzXXmpzPw*{lI64V}hRm{TB*Qak_b@wy?naxVi^G&R7H=k-ct*5xKuOq}Ag?*; z&YfX*7wyogp+a_}n{U+==ShUp$X3Gib*;lK|FaTian3p?5V0pPnu*$TjVm}X7kRB+ z%_8%VqIdwf0{$LD66=5{1u$~_Q94k}vZTof@UCkM2odP%^`*EGjI6)!u&KCnwD9E8 zOjw|~>8&fs?0l{JOr*F9Xbs&Dt_%z>hu1^H_szq)xY$62Y$~OKZc(k~XK1&-Xeu%v zD@s98@vZ1gZGs!hi9nx;rgSNFO(q-EZRnddq$0ce`gg81gRi!g?Qsb#lP> ztELv2JTCE=kj|jcAoA~}-?mPCQ=-YsHe)(_d&W1Il|R!DuM{*y6V2t!%Ar9SnYR1= z+Fjz(<#U1;X zD;M$bn?F=s`)5vX_Yx9LnOcn78zKj(nHl2J?CIv9gukliAcrMGh+LN1fkdYi!3+mdx}r-x z101lgQNo%A$P=u*kcKi^j;E!!vLoR&Of_i)Z=|FTkk9NBrl=QLzzS@bKLb{j6nCH6 z2$%+Guzi^Af*4x@EVX+vfTAc0dl1qnP=WwwavFrh?=mhSP!=kCNz}tO@1n8}XV$hl zGp`rFlhxvQhY-Svx(HKYKl=3|;eByEhRPW-++&>a7!fc=*nr0}FGwFqo!pjE(;K_9 z19FB7(=1Pu7y(kLwB4}IVanRjQYyolK7+Anfbn&8Y&1xFJBcp9Fb3mIj#sh~ObXB1 z^(T>kT(^&i$w-Fy_)tE|6Tayajt@UraNp#~ecR1{)JOLfALk#V=7O{;Pxz)!EE;^& zNB0#UpVa528o$`z_=)C3h2bRdh#KyZCBx5rHs7&A2DqA#u6(uXk+g}~mZ?BJCH$?=>P@ny46Er-72jL$`+&OjFk_OT`KPcE7 z%#b**!7#x|4$#Vz4oo>6M@|f96EywPcB}&--Gj-3YHMKRI_ZqnDtD$vnll(_mRD)z z%B9Pr$!lvd{)*!x##R(9!%WRAXwlcp7#1E*&jt;w(yM%f4L9l6UB$^~Ge6okq@-+3 zW9|%j4VF>1Gp#g-$S6^iEryq%w(7=Yu=?0fw6a*FvW+6u0Su8slS%4&v} zE-K8J1y^yb$(|4Z=>0>r5q_%u%%TLSQ!>w&7hhR`hfJJf!5hjbsA?qxsN&urjT2e0 zL>C(6o(|enq!0)y)wH-Eue{%>ff#iv1Q#9VrVGpKgOrrl%CKSmurip@FeWDmK{z)O zz}o?m;YEQl&`MekXC~2#3#nr{PNr6f92>DWbEOS=oo)YTcV19m<^Nu$2nwM zG&h%4qf6hPmYK_aUMYT-CQ4xouZu-W`5w0M-R0|$@s^_})#&qOyzuC^Xm>GQc>Eyx zhC&V4-T#%@~;UG5bhwPU4s)$mZ|tq3 z?ohIJQN}%!X<4ok#ffC|4i@|`=G}sQH@LnCUO%v}k8nv@a)h)Nv&ZQrEH0+nL;L*@ zmob0Ie|u!V9e4V;$sp@rn@W%Ehm+1pX5Rf~-(g!1JEx;;G?)#B{F@tJFZnjhBra*+ z)O_Un;U`U}nlG{78b9rhX3w+k=`5!>+XLk>jVwHoOKeLI=Il6JQ7L7OQ$p6GFF%F3 zg4(oGnlpFm64dtHyuP!bwyziT^#rKx_Xqkt2WtE6p?>qAwjUnp2LZKx_t!BRGku5>cV>!h^Vqm7=N~>%rzOm+khMe@ zq>z%u^N$|G!|`Z-L3{=&zi04AsHG}JjQLz{cuw4+`ezMY73@;0U@WCgkQ--CORF>G zQn?P=KKveFDL(rk9t#r$x(X%pv^8ODKoNX;)aJqvM`BY~y^v%5`3B2BAb zXe2P}&cw`W{;ROyUUpR>*bx9=Vc6`}XXk(IN>lwjG|A1VXgO6H_5>(5P<3(o0hwg) z1(%H~Xr%W>>aNy>qYUK$iU$jgYC1FHCZ5Hhl3+E%FbF-x2?Nv8 zoHk^JPya!RBvFnq+l5SXrpqcQ^*H*xoI@6siA+Pjo(_sG7)~~@e_yo)rh$E04n?-&i)iRj!efJv~pQF3J`80ImXb^N>s* z2%(*oXR?_xdLy1nRg0V<(>D`Q7!)T$f+V{V_n%-gDrq4>iG6PjtL6i7sZRqsu@WGb zfo7h$TU_88cq&qr6kXJVGArn6I&pXa4E5;G;JhnrA7Le=*>ENjOj1l2U0|&@ksyKn zUgGFaw~Dw8^VEgA0D6XP9tdc6ZLp|QRusZl1vHaLs4EB>gH`5UuF;@&a-N)G2#H)Gk_0f_(CV-Iz%Wd8N_%ZnNi57^8eIOl#00eS|4j9K>l7Ir;307UbT zeydX2ww}+=2vvb#Z69|R*}_OEfUhnuqJ_tg`1Q2-RbE63i)h(ZA*>)`UL>D0@dsnT z4;Ik)M1fA%7kGdczy@rYEPC(|J=#Y=7?K9)tAO|+L9CQd2}ZC<#J4W!2*#^mq8ARQ ziREDyFoRRi&{3=+8iGr&&%4+7gqFc=_2~(pTILCf4)N48PYVyRXw1Z-MIStt$94=+ zo>q)2>H4>QAiqH>=@1JbouJDV9Rk1#*i@rK^SJn%JT7ayfEqj9F;5SEpbfv zge`Zot8NM0<02W>%8tI+Xaxi;fMP3`p|2K}6QP?~42-%B1y?r4Lk)mJ1T5*M3qiXHPJS^342Thy0^IK`MY!IevbM?!)y7(Q zfMLR*1h|S}>_Gbj(S(OByT<0${H=rh(Qa()Nh9qbfB0t5BWb{@2ZQD58zx@DvTAo4 z-e3(^^svHV76W;(I$8qvRStO638JQ$buqwUCpqVt4AVpxuW)|=5XZbxGNQ+sv;NAiot{=YQ0tRj3@%ednh`|Lfq53;Pdh+!;aOO2d zV15$uP}8zP?!ZYu1qWm*rwT9y!+}^ex+83^F&K#Zwj#6#-~Gr}EIIav0Ff37MHCBlW?$3JN`>>V^fAMGWI#vYFi5Ee5JQ->7jU$+cN@ijy=H#&=Yxru}H z&>BYe(e6Ui-GUT7y|Dxrh!Myh`fOFS}okV4|X!OimTE zmsqb|WxlJzdlADe{#{(G?M~t9QAu2{4Ql5xMOwXcC@5USO`}e-!lCFtWY~GzUr_H* zxCEpAfYv{+O4gzl#>x8a+v{T!6l|E2)sgz|w(eP7w-xS{6m;cgH^c4~>!Cn^fOS#a6??F4Zif;=8*Nta5!C?$GUpch9%>4D`Ey2WP z5IVabKm7W6D`)@&N8`+~+Aa{X934^!f$Is>#NWD#v0H))K@5_Je0Nx8Yr0~nssjvw zjoZjc`qbrkkb$?;W*uL7o`{9fF%{VVphv;0+8BhV6K`k#<_q&n8<(hiBZrktKzi;l zF_}79v%b^=K9+my%uOu=hkQZIDmOM|BA)b6ZZoop8;Tp8(gPT44Ir$rfJ)eUN}epV zfD!rvyVgh$c9fYBA*jja2V+^SA5Y+n^dfXrKw3*+eonH>a8ZRheF`}o7l7e(w+Y0f0TX9FJiu@pn8401<(!BhBWcE2+?EjF zjT}7IUWM)9jaPFB55jgqhZ4ldy90e+g|UrHX9fYLz#NBFAkR4&O9K?N6@y1s#FCe0 z2`bdNjN-T3O~3WvveGn0j9}AzLYOnRG*l?(8XfeEinR@$2P)PDRIJykV&RV~Mm6h% z*9lU3L8!-Y@Z$&Hxko6Hs;aGOJJ)FEjaSv)Eyw5p681NIZa>72XR8{Nu?}tMS?EkX zLA-xuC^uqK-M#1VI9OLQ*tgblVc6x1!I{)vBt2TPQAk6G1tZ@^6nG ziF0!!_xAC_hw}CdddHApq^4QwYhV(mV)!C>7AlddO2|_)>c&8QC+~qe&N5rIce3oF zWvr+5ao&5kT-!caTiw_(-cIxUZ2gt-Se0|mGVyDbOrhl$Z*8Fok6W(b%9<*d*0aDBhLJP@SyaykGVjn4x&2B*T;r9Yy6KXodOdhzK;S zapT!)<#H8k4s;6jN6A4F=;@vmNqeSw(B(W$7$ORV?j;{XhrMsMKE54Dg5ww`a&n!S z5&2DcJ3j~pZ>E-GO5ASL7XtW91&@p7nii$7?$nLvpAt(d#+f^$UcLXT; z#VYJRBW6vSAd_uC2q7liEInW~%5i4v^?ZqN)mDlRfBAWJuFoX!r zlh5l@l|%^2A-z6u^W7zNP7ezUSe$G3CQ6kGyE?&D+aF{A+&yPkvx1a>XsKlpKXaBq zlAsodwYPZU5RuW(kXq!x&5iOLq87U{A{nXwq$7k&K)DqeHG#|*B54PqI(7t80AQwU z1w+jLa#dt|2SkOC*-InJIXDAem?Op6P_#yFVbQrK2+T@vDF%cwh2IF`e{R#;5`N#yQiW5sjL|m@rOjFvw4iOpD|qgW zD0o~j!AQtXhPcV2Y;KU{+>j>7GDxXGPPHHZ@9L4J`+|09-tr)MezXQfJ^T#e7el;m zjx@ePpdxKz)~{ui&-^Y$BDDasX;`G8JO>-o8@}Z_`uK!#y=aW&&c>=z30gLUA+rQ-_e_7EExh+4{=^jFK{)$hJ-KM8s-os zqnN(ZRo#Pl65_8!B&eEevbZk!;9}r_E{VZg5>+FSsx%6oPD6VG`jb<@u3ARFdMoSrKPmRnejH++pXbs%A$smOey0_nelp^tC(7_}3CElymkSyw|w2f0M zt*Xg#aNv4~M|wA>KN6;@^QRVDM#60Pgv8t1F}`BVwO+b=(;b&)m+&_kf8u!w!(HVM7`T(1?jym9vW#-rSa}T5S8|VFfkpP$SR%j{ zIT4b5o_8aqp`g}D2Ow%j{Om^wj^*=Pbv(>oZf|X(13l+}$Rxv@q^j+pLIeUPqzHb3 zjs+v*_*dI3=7M5!YCWTc;#QohUU$;-V+>82CK$4+O&3AYPN<@+KrMs+zE8;y!F?Q9 zCV~f0Kw|UwCXwTOTE#7q#lpnSx#@nPrFwcfM0BEUVh<@`2qV~}kn#u8PR5IWG<(8(jl`XGw=Lr7YA2m_7iL^u8f)d9u{E=$h84}8~-ZXEU0i>@e-gb2N|(uuK6ha zNpb9UW);9z@tDO;^SYmXyB6gM<_ZOtZ2u75BjUCB=pjk_5Syfs`WfT~5(WJx1ihMU z)K}klAE_>BS?)qRtsEJB1%!v{IopJVozzrCf#Q_F9~s!VFudj zNLs}!a}w9wc*b7+%iKZo{1D8Y+^%fX&_s&3C&}oXM`JBOkx0tEh3JF(GE9*=^0(MB zB~DcgbA-9g>so@Nqd-xSP#Eh2S%i0S+k?0gbC&CoE^$&E^oO4~w2Sx+GF70q+=HWi z8Pcc6`|K*;yJrvp9k}_8BgEdk61M5kI!E|yZTN+yUwR@eWerrr>x;weyv)1NtZ!Lj zfyxI5e8~vZaDz1&UJP-LEn-VX$j4(*)AML5*wEo_ZPzMC5~|z>+kwc^&#n*`<;>35 zCXQwCYPSw-#igU9+s%fInu7A&Iq9UwwbCx`w6c_n?8vpP6?Pb$rH=>yhokE*-H9M znZCzPA(@tELUge!>%^vhj5~bIUGiW(WSFjNvLT3$rcMrPsx>AlOXDSQ6Rr=rj!J*O ztMs=E>2IYq^|0jcnjh?_f885qv@TxaE@bQ?2)_7btn7$nfpy&_+ltw4Z?_aa~Gu2uA zZQ^fbulaHN*Zp5nA{rD5v}Qlpmg4=JhYzDCPjF22V{`B0w}tuHkKcZ4qu#Hmm}$5E z^$cEiVf6s)Zj$rU3`Xd)i$VRy(hiw~3>nc8^uGH~uti6m?l3(?o$ERzJA=`_#NIxl zH*mj7%QoykRRHU=OT<}$l|my=^IyzM?!=z|!t)qVoVusyL2-^klqn2=Li5qkSHL$~ zJ?2z;zrprK;Npt})^3X?kQ)mUJ-)=<1h~~uu5<^NL}#ZV4y-z|cCQ-R{Ra|*7C z7Yi!aA*_7w!M>I^K##jfC8M+sA?UmU3kGpSU)He(XX&>UX~9if1z2s?MLx^XIT2X& z0}j|hhj{!Dh;5~bN*Qf|3|Z;HZZ@gq3i12480SDu$zfr@OYjpqqe2pZs5nSu@e)HT zr3p8A$c@2B3`ntO#41UF%S@XJPPN7a1J_{rOPK{eO5#5y1qgl@W~W`4il%+@WcYgX zQxjrK(0omE?gNhFPj%kyE@zKEnL=)~<5}}Y0XM#T(;t5tkE7+|9Ol8hrklmB1JLj9 zfYQLxOb5_Rdp~|)S6Djf;R|ywFOTedWFr3MG7vSn=v0{NsOJqe&mJ|30Nf8++H)njc{7QpEAxx zzPhBM?aYXmt%`-e9Thg~81iN|{zPeZ3bvyTXBXWV;sLN%YeBiOZdsM3b0b1czJ*}O zJ17H6Mgn2E69JbXggKLc1&+x+K!AAGE^rcW^#OanTT>JP!jH_)D$Cl-==9h5Bt?xI}q3H}|2u!B-^nRL$SJQhFC-5YAFvOBw{ofE{EVorY7!)*7- zO_vAbCCz3ffp8lyL1)Kbq?DsBv(mB#85mj^0eac;(gK%(@>)O(NE`TJEIBSF9l_E%|LQn^yh0Mo7{9vo&<79%`gU4|CI|5Hz-|6y_v`$P z-O8_96YZM?CV-ZYZzUgWARI3F&I_b0O)dk;5)UFPQoGIVNL<;Zf-|qwm_ok&%c-=x zgfW7Cq$JtKNu+!)Qr6~?-f=&Wb3yZ&CKvnWYF)xKi~2RuX2NRf}#!&c@|42 zVAlxBkTH+QkVN3Ao8ijnqtfAMSUQC*fqS}Esz4~U<1O(R=b$<{Y`^es;9dN(;c*_v7Zy}X9?=2czEN`7l}cA-aYQ}tOD=&h|0Rz<%rJB z?Q$5HlW>~z@-BQL_T^7Dxf`RI`yau51DFh5 zuVh}(0ogwzBV3Jp_sA{%GviiZLc`7BdVif5wH*Nfv4c4j=bdsgD5~I8E#5{^->s4~wna3J&AD6HQ*f=UT?y8B(8IrtSRc~4| z@tHv_xRk6nVi+CW+D3awMij+Ojf1RaOjDX+c&%AN;nzqVLzRmR^pIiTo6wgd_|P(>Agjs@$aNkW@L* z&oP%QmG;Q|rZWS&QAS#~>WBz5Ru_Sr)VL;TKeBs``WMg{DjV#>V(1BKTT2&g{8nn@ z9StCS#DO04T5}8G#ExOkZdG}(v0B_!J+*9L=a3(t`Q^HI?<^-Iwm}{ofEuH{Hibm~ z5h0O3R7gB?LgL5^iF(IM50*+x#Q-SS?kLuZyES?x*42w+#3`4r&N}_`UIuHwSXbxu z&%%PSwobRdszp|dKA81oW}TJx!7PoQTJFFXIPe7y#42hn9m9ADBNk65Oiy0xf{jzf zS%YpEI`*REb!BW=ww_(3{bktM;6`4G!>`Or8-7JPsMK1mpIu5U`qyqhy1Gocm~^_F zt-vx3pR@1%bVYF2^o{SpccUrT5UZ>Nn;UT(Y8OM?MvVGG1^`}gwgu~Kh9p@ z$2ERj^GBQAp5n(cezf^x4L>kM{JO%g^C$T63_p4-eTg6Q(F*=uh+gC0htW3vMLD1K zQPfmU2!S=Y#0lgpe|KJA;x>5aEV9dCU@+0R-GVD)%xt?c1_nU^WL_PDh>ep3ElbF$ z&;`rKaIrKP7=S_>4}FdO81sX%0HgeYG5){^IUBC1$ug2)^J+VdWOlYu1sG^tfRV?M z6gcu50G)#^CWtq$akQZE3P90coZlCKS`G=Eb)ma~fsxN_=LR7S(-UDp3HK*US>7LM5t_P;PI z`I`0VKwCcV$kW%el#eUd2xRIUt#=Lw^7@6oetkYV?R1yL&pU#H9)7F;kG;2VYwJqV zz5kz2A**vGQd$Vxoio!T2NMEv?2dzJ44p}1CkT*1F-U5?m|#qQ_UCt3t+n>rlEB#Q zoSEl3Gv_)Tv$gkntyNX4>aHsL`LvDAzuQl}*uze{F%0k9SiGe{yFp6u_HVt3y|nq7 z6-hIjP6ECLvpLi~uNgii4hAdVBPCAR zVaPHVKEHRBsoVI)<2E;$2(fFnA^STBoiqhJnIwchy^t@H&8|ojt(@afVyd0Wd89?T z%rEewXeoZ>UZji40Oe!c|3dha(tFY`>P339VvJ#nHrPFrV!q#1e#iZUrTEN!eYNd1DAvecgwRK7#AB>P>F)HlCFg9*o z=STW25ZK_VprY$mdlR-jzuG@M4jk!+$BoOiqobT5y=phU6&op7)Ue%Hr^r)xohrno zA5QooE>Ql#I?s&_x4PX?V8dr%yvF&r8|}v9?&&ap^rYQ*(tkC`AN|&DJO$mI zKYHD6Y+`@NAN{r62>e~XJCr_kD)9+uwtsK3((H$R-dcZG6j}R%!&0)Ce_-QX#=+u!XzUE8KE zT~`G{z{vwitzxs@X#cJK^x4)A?adwi_-13~_pNrDuZA$CnP2Ml+N1kI>ed^lk7GCM zYujzw`B^RRJbAj&Ua9_5|8D=++B(nqC!d`@_RrYQTYmSYf5->^<*%<-b8GwAU)t(8NIgA!y0$}Y&6O(J3nZ^6>uc+e`RY&- zhQAr%udl72;)1k&zjQmJZ0m2J#aF9UJbZ_w`r)5H>)#x*qwXqm2D6VD4Io$0gAFsr z`r5gBZX(=>aSMcWPf!W%9UNrrm^~<}B`&R&fmT=V9 zS3g@W#s?WQz$DzE6}z@8wV(T}X*x;m(WCu6=@XN|;oua7!f`E_?M;gv zliq3!3QZ9BR{v_{JNNY3thv%sfcLmiBsz~H3enY7DiU$a>aSo?=weI=uVeCRe8+@d zcZ-w5Nc@pEtR=YBc<@!H330e&x{1-m9z(1Rbv1{7c_Li4H9Yxec#s(iABClt}_yL2)aEM;t0bsLEQnpZm?TY^+mBa7ED$JZ05O-57b>k{oX6iadVbK z*>JIE!s^T-RDUo{=usT%IOm#iByMBsr`3GwBXqN9n7*7(p{JaK&h;XXY5r=7pU%Ba z(L|;<%XL>}Kz8fPY6l0ydk5P3;HhO_(8Vp*qE(DZt9Oe*#eAECS^7JCEb`+bp^Ct9 zvyJ+~t-|jje}l_7mSqF}cwGZ-3QRj-%>%c4QGBkZ$^CR~}G~^zNYG-tK!lhSkfr8zVZ`pN( zhRF~(U};`5P2K5dH!0@})p@=kLqc&_0NM_wr$@MD-*mYvbJaJGA@_UT!J&R`s@pv% zt}`QR#34<)<)VlwZMg7-N78!i_mh=Nb8q55glU8B5ldOutw2v2VQ#SVI6G6ADBe1x zxQlKGHl91Xf= zU$8arR1~jQ*i+^>u(ycm5cAOtm)()ZPzdClBGNhr#@j*7{0(1nU(tZ_IF49Q{6tca z(bC8XdDi)j{RGB8ZVgxNEn}^^)PyL+NF4Osg!W@z&f+uKPHQwFUlA9rLB^BC`qXrf*j zdZfsMpu6k@-Nh8*mN&faY*ZJoOWa(X3x)aRi+LUv^Ly0j+pQ*^v1~Q_0~~?U=fS3P%NpKc;I11Ihz&; zaPebQcfP%FrNTX=O28~0k$e0me$#BO~-uOuTW|(o6Y7qt8MqL5xL1tPmdp-Q&RK#N;d&*Mw8TT zG)cWJOj48Xj7=(CMRo>1guA{g!8`Ci(imVfWt%h#@$1J<;AU$dj%*+wZt;YBf z*U^IT2?slS`ekG&VnLn!I-sszPr7GAwoxI6!3sfCsIC2IBzeOQsYt*%kzeU4j{DOVrL%ZVxkW8IsG$%VJ_gJUT<(8V?hqjy z3Oh1pRy)3=i*NMK&ZZLyQOg~#JE)Avui7(C{At;Ve*;M3S1w0FNqh@T3P-D85_(i6 zw!4w^bcWxmKC;Zq20a)|CqwYWB>TXvzqz3RA(ePmq$?7`0)*^(TWJ8RRKJzmh+#z1faNm9@m6?d*D zyDTsTn`2;aM-{unrg@pQzueUhUD@LWT}eJlvhDwK{{uTR7el$Dbvm-gH+A&$hjxT1 zvfRxE-SBWhCphgvVFVkCZ9iM~Cfl~OOwyamt!~k(p5Ct68NDmD>wsWVyp~Az8Ewa3 zu4#X{G94a|NW+{>fPy4~rI^4&F&=e~r>C5zQ5zNQu$ zd@5rM{&2wp7u}xpjsap$gl`hlBdidvKn_C=8%YGxEiE8_G|<_ev4`25@fLH=#gFu4 zcB1QMdjMy}9Y*<~U$I!uDbU)-mE&$-*<$!CAffO_{W`8)P!c%sr?E2XPs)qCcjz&}!eEV8_V%jeu&KU$S^8}{#vr+ZyJA=WD2y<+VZ2`) z9}Isgl9R6rZui`x0mD{sxXC;LRF79B&cC7Iz}dAHnY>G#5i)YeUcR2<@jU6LZ=J=tdSI zk3o@e;4^HkJ(7qD7DgMAha@P(YwV<~n-v#P7~#h9HR0nH1bxtUeh5a%XeQ|l)G6d4aw z6#Q|)RJ8Ad>G8?jlyLYtP3*(ZjUS5dg(b6bgZtFkbNO&4x&G=Dl2Sl%wxPy&IK6SU zItlr5K~c6g^Hb;$&-K+(`_@cYizVn$WpvadVlLukM0%(z5MGF;*f-KY1c? z$cl)z0T%GSfpj6U$%!raEZr9bINO!$d$FTgDcKYg$#?MldV(+SPSGR0AkjGluy|4* z)Y04-{g{QA8CI?|%qS|Y%KnQvi_{PB@E6rq<+Adk`gM>b595Qlocen*nszH!m8<<3 z)~r=^rWSRt=(BP$PiAIUQ!5gOuxKhtRrcM=v`9pg0^f*ai!+rhDLwrozaz*ONeRzl>3j{xX-y+L4$s^QJ1}rQ{Z(N znf>&((QHHIC_qLaepc4;G9n|;!*jrFK|_)m*e{An{-7ee^YN(cFqUIAq~=q zW=B)*T{ZwmZV&pTi{fV~A;uNZW&*S4aSm5z(0$t!H^DAi>qgp=F)8@jotf6fXT)Ff zare6M-8d3V2&Xw24m ze{={~ry@9_)0^`TEu0)h={9F8$awH=>LwSK%(WGCGJx?lc$Fku?@$Uk;zpOj)H~fI zdd5J5b_hA!O%bsp-ft-TgRUB9C0T5jwGcCLzJ|l{5#{VR@GgX!Yq|Rwu3twXpO=e0 zZsE#mr#;a=e6;4YJnm_9mO3FV(At4 zf`)G>_G@k5pjg(kMU%E0!OGXV7d*^oY^q5?e(s-SoYEPKO9EWZ2|Dgi6q+hz3p3o>%-n#<}s6R@oe&3>lL!<(H+# z<8Q{riQB)!E>!m2eDvJzbEwTM#H-FJ^c4;N>I1H>SP|Qmqu$u^w3PadjAY6P=!PH) zea1l`e#Ue~{aGwW1?*td}lBva74E+$7 zfPbF>2z(>8*7w2MaIVCvWxKmn*>`1hDf;fh0&B&sQ30(nGtpV+6k;{%^T}Fdi5a0I zZ3V8Zy~dtrLGgC~)!<_Lb~tQb4EceWAY;Pdu!rt?l%iZof&_`MXQB~1CKm)+mwdq! zOlM<)bY6EW+ui=)jdWj*ohxFU11-sb6qp)!(f4$?G#Mq`r$y1YU8Nv=ZI7=I*)gZSk9X&HK$iW$nfx87*`w z-}NSsrw4GG;eaU*BzZK_vkp`?svID;4o_f)*Nh*|rp@Y9cDJ9-&gGl9c*kt+^uX56 zXSqB#+23POnnsvi+_JeL`p{bc&BLnHfV_<)vXA7uEK$Taw;Wp{7vC~nh!<_{dp2^x zn%y+GrS7;qzCVDjFG$!my|}lvV=sEF3dvL)JvF}CnOsj?`BK1cs3vH@wk3I!zY(&b z)od=y?6f=?KvJ`>EWNqg6!A}v-^v~pp=#X}b7d`@1-39%Ix^(A?g z9(d&D81GFm*_AMlz$o2~5#z~1VX&+@yzSwgA4lFHiPCVb-RaZ|{4~Je!F=B!Mh}Q`Yy@%+zYsC9z*=TYpb9GTf|L=#oclj7D4u>o~td8&KShn zFgUho#vEI3!6q%h%dYxXg4*46)NY9o6c3oJh)UGc`i_)m7h6i|mU*~$!OM2D_G`ux zS6lDkJKs3(sV^G=;1$gXU{c$EGC?y%bC3l{Dj53kg~>%kw27E_tRe@_VJsuz;U`_( z!dLjI_Y-hsdu{VOa*b4`qtgcnxeBGc;rtf+9JPjuPM6*HxG_bHp!C6bpKSiy4nhLO zr60v~)RHZ45?Wa>s>A`RK}_62s(R+20_!nqR3%w8BeKl|bj|v+4UMrppE+l!Kgco4 zXBUw}KzpV6L!_bYjrQ~P?I&A1&$hv0_{n=av+z5JjdI_((aS?~&vP^t8}XQU4@+sq zp?F%Ul{l8&08ynjC>^g&#YBj$Z7ep3A}0}>Eq8LgTf_NMt~#2vg8Tffu;Puka)7+? z)5$*=EU*WoR{cvD4tLmuXYtRFkG6B_&!Y_n=RgUMo*$)CPt4&k&S~@vq(M;C;9{$j*x4 zp~h+7ZDK&jYf%8Hhh&=KbyE1i)k@Ch>p5QRH?UrD*oH5N7z%r-k_7J?W(mJDA(Fg+ z-JX)g0@=NxD3FPSlJPt(_S7n3he*GG%8LL3kQsLkBe6H_z63-dnG%@fwEM6ex_>PU zpZHv^O1kl3pOyPwG+ChVxuO9=Lo(%SwGh;{x{H9)?a{ls{~tPz3&6^w29PK@KybL^ z_8GdxN`Y2Ceq}t*PR@S4^?Nj1sc~UL)9*VX4|W*CW0|_#G+3>|eeVb$c_WVDc~{|H zD9iwl;3W0;Q@6(>8`f22ZAVDyP5vk1 zpChT{(M}|w&Jp6fl&1IN^wvqo`f)Qb3jNy?Zz9t|9;ryR90tyW6R96{zQp5=!#n>OO`UQ7>hQglR<%@ik$&ll*ZNTJ7dli zu3rB}Rm{mq?3j6b)YjhH0L;$;x(_02cw(&K-Mc3_T|DL*3U`6`6hqQ8fx5~K!w|%x zVTm*C+^GcO`_= zgXqd~6=>{LRkpSnce(tD$S6nYq+@k~?Qvv@AxvEqWMIqS0(hOs6Xn0)HM%&&*%U0!Y>}XZkRF!1uFWeZO}>Ra1!zeP_jntf80qxNt9uI+&hDh zcKY4Hbj+m`rLn_aWQ&R$7{6ieoh}YZxHz3iy9!De3x47}e9mLdB{EJSzCurlOG}br z%_+W5{rE320qDcKt0%3s)xEiJ=a;P^PiL7*Rgr?Fre1ooAxnReQjZKj9_@-R@L)jd z`4W2Y4Vb#{!vbvE78ZFlbi7GuLy4FlkDKqE>_lET&_ED56FeuRi z2Sc+WZ6f$nUhFSr8~q}O)D%!M#wB1g6OyVxzNSyQ@y&nB7lU&emq4;E*_akBhk4D4 zHPNpve+u1g5`ss9TX>aNlaWkTCYE!eS(A z4KKUN*4k3PcV?yex}apT8R+s<96Nn*WEn+d>DFIpP;#0@W|Zk(Pn}(nnv%L4O8TptgQBvGb?{0G^WC88hnYSl-|%8<(yevpXiAy}+cY^2O#lC|Ma1x) z<+@&LdI89y{)Tc?uRQ#L1BBN6Ta7=%ot-Habt>D9z4OM#OO=0It51VL=P$79Q2nTil<|yN1j~YU6SPs`piXosk12Dqt7{9 zTo}V*f$DyoM)gopHRcw~pNu|8*k*bvMdA?TrB#>{wL5dtG&I1fn8@(uO?U_!*dhiW zwkLijo_QJt0*S=rtM&aVCOPv-kRHm~s+dDzP_>o+TyC1{;|Q%pxuP!S8Y8!ApqfuD z1O|bvWIjmOhu_P|uD6Q^)@A7yLXlmc3^xMGkl7I-q&k?f$(D4-*o6P^ z0JS;{g{U;&xvdbDmVF#e7Rfpy+e(efBvhRc$$e+%X)T6Eki?k8OQi8Jmb#!}c~}?o zhQt>B>M8%8D&=2e?XjgN_L8)X%XE#Q_G6>YTz!JSKqKmTo%@joa7_s(-#G=>F)=@diWsQH-r)2uT{0QOzP= z=;Wt5F+w{nULe-n*qX1N^`O7E&<9Kc#5M%nA|m3}jRYO8tqjnKPK)n0Cz*!)VC}J-0&)(c>R+Ij+U<(ep%>_N zUW4_z)>xw0Y{tiq7H0eBrE!%vkEF<^%r_`7b;peZ|zRIA0mUe|3ax>fRlMb$lt zXYLFELuVb^2XBsBHL411MlC%a7q{k{BB>UUPkdJw1$?gNA`hy8< zekJm*`92BXc~hL0OhQsy8Z2WLlcn%X!&ZBFAmSOz_{ zK>eBlBoV!+cXe#{wa~ZjXE&3Q;=7d4OLjlA1YjxTqrk!ziT3BVX8+>kW`vZ+-Rt)z zCSogR7xrIM0zOG^0eY-`3)|-Q%xdF{T+o+C;rm;8@dANww*g*`4;DJ&1%`j=!!v3I75WH!)GMvrmjoMP_jX^)e zg1J{+UY;F-mMXwoZ}Z?1l1= z13+u*Bz)(MOO^qBQN!6;L0dzGDzw`5xXb*2237p9<656|1QnOt$qPpdzO&vSB`8U8 zQB2ixJ9+~?3}$cMfT+vkD4=Xnq08T0sKKAVUxT;wx_xQzXo$s>$Oc+(od@&(dktZ8 zYW#aGV-+p-*^Qd?deG|4Sbev#|9om}NnudR(W6v_Mh{x{D_!6}yJQwcn{_HZew2QV zdcDvlo)qhyT(N%Ye>@j*vEJD9zuK-@f4nX&n*N`l=U!vWj@BgP`3I`B_QiD?>22&u zH#V?Ho7>eG>G39gZbn)2K9ag-YFcdOMy+UJJ9COfslA)z^1|kBp%DBIR*(Oco&9Kr z%4{tzJ2UBJvgjleHS@CQq~6M3n3qMVpu+FLcj?;1TU!+o-T1#&J9o)<2mT2=%cVf# zunDPs64>&O7&5t1@d*~H+&COFQ5*)q1gFmwg`8bK&>fF39&{~$OhAkYaRslelZq>u zu_2C3R#JCXvI&lxjjGo9#4)+!F=Vyhy^Et>C`|mg=i|Fh1Xx|h zBnN(cox40PKAzk62OC}##?nb;3AQkghI9_7-g61~o}GbW)Rix$d~jn)px8q*l51cR#R;r9bOE32x?s1EFCcRV zlgZvw)&2hEntksVSzcGBgOFU)7W=IY^nY`B8@C^z&$i6FF3r z)PHtNn}+Bs!rW{)Vm0PNVNd}dt31m%N8-H;ll`skT@1*}B8Ks-u2#PeT>2pi{8y;K za88sFgj4;xy1GVa8y@{FNI>2d`Cw}2x_`xS|Ai&5U9w`7Tj^R34_r0mSq{~Q&+sf`AqqQjoG~dA9bK-*>auN%geQ1-h=a7?ZM8<J$UBibu$ z*Nzt~*<2xH`>o1;gp;#pp>R5~ZxvN3TMdp71#9sLH=iFV!r&+tz01pVnc6(;UNtsr zhl-_hTC0RNd~s>{n$c}O`{nVI&7B6S+>fuL`-~!hU9z-mYU?wDSlz7cV3TR>H2RY6~ol`K4>_1M_nUyIqowZvLJOjVpgUDEnhr)sv_&J5&yy52n@r+K# zY32T#aW7Bt5HbG zV=UO)b_%N<`*CX%TID}Q{)8_$iZXFoC!F>SJisH0_upGX%nLuwml7j%N_j^a5z-E4 zzXV-(qFA?ZAE`|n?JQudNhnP1q<-ZWUa2umvc`vJo#9&l=#dB4E}Dw*1>$|7bi!wQ z7YWmxm& zooU?kxmM6FbcME$5ssNV@62@tY)l#wB>Pp zPO0sD?an`hQiFj^Lu$Wwr2_O3h0d$|g_H($nkvYK5|=sHK#Szz(E& zwZVKD{@&1#5EwvBPQrv5D$jxQMb1HRioLc`7sc1S&md4^*GNt$Ekeel-r$6rug~G) zJOsBo%5x3Bcg;jyNKwDr9eRX0sW%NKLtuW9YsE=?K~ch#4Z+O~F+y2Zn<6KI+EKbf ze@Cob$-EWhAOL3f^i}ecY0b#s;O?5EKt=?2cxjDpkklxX@O)O$3g*H!K&+Yi~bY|ffeSE#~+F-p^y&C`X~2)gxZf|Z6F1|#^_ibu%qbvBZ{L^ z+~9b^VTq&l#bKoOYVE*X)9WjD!y91^mNaa`h{KWw!P@&|u`v6Pl1`}Z(z|zWn`Ii! z&nGXvoniF(&*8{FSpVZ6Wi`tw9~n_@w#9vMhW5FUuDpHF3Fe(>-7kWpG6l1*j2xC= zN01J`YNUE&F%7}f5DG_$YQ1b;<@w)8?t-z30#?3?Zk@@_Y$lld4hfTVZdE^*+ z8XS3^v5)-jo+M>JDXsGFQ|u)QE_KBbyS93ZbBPagDZHz##>6C z48)r%x@?qph!aHFOJI5ORYbku+V)^>*0@Uzz5?sYp?^&SaI+%ObYKKyWi!SSFH%sc z>j};;r5DB(OKv%=f-?2~gs&Go7r{Q=(HXD^=;P2WcGT91Wn5@P@L<*SnIHuzMIs>B zl!$RgK!U`sE&_x(gWkdMpnOxFCw)v|M0H}BSdd*(RI=2@J2@cF_rrWP>CDht$%hx3 z2$;rV!r>HZD{2N>3;Fa7-Ke|+T4ML7o-v31q+U++9S-<@t70iVX~oiFS4b6XLEN4s zJua(nw{Ak=yO_Dy796+J88LbC9@1qxWExw7SR5B#l*&rMWlb`pkW)*45p9o<` zGH?QyrdXaCzINCu4-ju?uTM~}l&6}lRXSb6!1SpL3J>N=CTcKyo2?%6?eSh3il6sv zAHMu@Q>o#;{Ib%11N-t~Fx=}xU#$AklpUs%^U)w@Yu?gK5`$3HUUQ5oAegyHL@Q%Xib!J>Kd3c%NJZ%Fb!G}VwP-C-ER>`vq%xe2pnqauid^KW6v6*y<^SKT{Qpm9uvLwQTS^HFX>X`<@=EchWW)t`ENqD+XHj~BGHZKhy+h2Ey4b(;^vR^- z_teP>4_GdK&i)CQ6+1n}2$Wq=Y#$|}gKbW1APxk^gkBFTqhFWAh#G9xT`~kXRy!qJ zCfZu#;_JK?#~=Rihsu*aXeHv=EOl=P$j)S_vrYFQr%gED2uFz8-n%SDW84mHU+gtUc=0k$#zY@-ndB+5-Q?`kQO zUMq3lLMm#2LEZ2IC>8*kF~2XrYvXnwV?h^S1CAzJdk>y}|P zCb+Xqt6bs-l*%y0%^LD{8Y$nj$JZ!7nY#IM--4xG3ff{b5wAy6`dXVDYruFqaT}%; zJxVJRzPLx$_^+tzV-Ws89})$HK1c1p!p4!UL{wstr_5}~9VbX+8ySKdBA^x&nrX2p zF74SPvniL>BB-#?0rpxWT|Lo0XMO&6uKxX|uN8_PXQsRffqI=9(u;W!7lf@}x@^zg zLlcim$o*@RwmU;*Kei#|9r8`_?$U=y_FxoKOPV-QP<`cug_5$pA{-t)+(A@g1#vy4 z{43MdxN;wrMW_bKmlVUY6x}wK`+;n-OGzkQ6qG|+z3{D^zxG58E>nZcgJ32cT?1`< z*-|uJJEj)>m-Xpmqc9TGUZPqELpiF-6-hQ+;>;Mvk$KiUHnPZt|3zK%u`1NM2>Y(Oe{566dP&9T-lWm3!Z9>vMl12sq77&n+*?zWf>e3 zpS3dGyJzmHwFnaU+rWT%wY9puka3KpC@0QuIzFlGO@-b$d5N<`KGu*Nf{B%1hloK^ ztYKrFHi4=3Cbep%T5ponj?C!y>djvVy*?J$6+Fk+|4gxz9~5M?SN-M!O=|f1c-hKr z5q|ixc`)rCDHVZ`TuS$s@DMiDkkNg(WZ|UW_pM?9xK|bp19{H)lewg9Zjpr8BsCAPeo2 z+tLnd>Co64q5tWhq*R$Fo$H6>zpztQj@eSJ85GUPxs3BaUob9N$f(Y#WL32~3Fxt# z*6^q$Wj^4oB#fEyTF~(`(`I;q4-DMCH5&YOK@n+pxfQf8kFI#bOhb5N9sOE!g z)q%`V0Q{zRU9Q$0DVbq>u997F$Lk(WsYNvNv8gH1BI{s7F z!lj0T7f$FDS(__0DM%sN0JqM5Wvjmxe{}m}xBsSxSyN_VSMa5qLe4|==c&33oJZ-*zP4+8+}tk+C9$unlks8Y^NM9QsEkL4Xs_fJTVjXEv3o!!i2otk zR!eMSvDO!p-;o+rQ-dzI9Ch(rQ?3F(TU z5`!vMfNgn}kO>3$Vc=rMHxg`i@2-{dHH{?K3fJw$+)iJE0{UR2i>p)-K4U!8d*9Ermp4Rm@r+THs!9W zlN7~9V7e{Rd00E5XDLgsykK~#IUvB?Jx|B2m{4wQ?j^(shKR9xw`9YX{$7pX#|xGm zI+z~V$+ip*@dE7*0n5KF8-_{;*jJp%a39khGCl-=TT0I?#-U|S2D_V*G>70Y8F(}w zddQO$28NhM4o@`BV$5PZq}a2@7r2D?iN%fKGX~1{!sOt4FtsuM5i&cEWUeX?HhEPz z(P_Z5iM5q}Wo8Y-NOen zM%C&*xD}H<%=3rO?f_1`7j9IGw5m5s6#ruX8eZ+RZQ`Z0X0v_RZM8OuP@pduE|gN<~?uDL*lF>a4X@4 zHCO@70>x|>EOHZ)b%69Fhbj&hLluRt;roq<2~k1ug4;qm-1CfpG%*qk5wx5_)jBcI zftw;ozK)e-8KUVslN*(=KdaXT5^c1%+M63~f^{yj2%6Z)+JHYt1VSqZ<^w}YQ9{FJ z{AUOpT;02_vly{cMaieq6XhOWUbQG%q&S1D*V4!v*ERO9k9+|lJj)%P%`1g7aBJRM zfZ!6~GORjfF$kF;M1dum2J#58^Qu6~&D&6y+D{As(1@!$?}`1l#EeDsVl+{KfVS$S zjX4`uc(7%hQ~_$CP9L3HAkv9|SZAHlYa(j6uoO)z9Dllc(p(>bb7=8jA&!LM)&59B zkD$AtaS_Q`K)PnyY7Ck|Fejkb(`V~zR)A76EiRhbuTjobDC0ft@dhQGB5dr52p8NQ zP9zZLNTl(hocgE=0Kwvbv)Iz~EKK5KMqUmeD}v>2CMK~$S6LDUm(r~ZiRnDP+8v3Q z&W)I6)yS@l6&>_{C7?Wp{#BqEQ9x#s=_+W749{Hlq`DTT_Ob13J+vMe?r zTa|+CJ?5YqBfoQA|M0+x$ULRoafK`butE~7jWn3BRxUcuy~m9Y?lIGAXS@4db|`Gj z_@hp(-Oq!Gh6W<;c3Xj7f}+i`rp87yyiL6D-6sD})dKkvN2k06+mR04j$C( zuSH$jmErh%RT$stYEuyv9Ed*=G)e&l)!|#6UAu}vbTTzitORAW;A8HugSFkn6+^3u zi-p3()cBm~r&_7(O1GX&0qS*6FC0!Z)7#ixZv8etQ`cP#q7Gr#m z?4cBRE+C@p(J7LWb$i(}2(qV>WY0{~DiBUEmQo`q(2$Ud1-eyZueR5izQnk`KoDbZ z_nRQ~tLEQwOX<|(bzrN}YOXiAqxBPOwiLp5*e6U_by-V${b^Ttb!DxyQI$nHS&7?H zza-MlVRNF$M}=HaJM{E)D@;Q-R&prgL2!ZUApM8;S5H>M#T+_|E^$SVIQ$4c9EDwe?Z2V>4MEon)nJB5Syb(GI=!J{_lxQMd;fW#bH7H3 zPgkD!uaqZM^NzgjX^1zNZ!^*@i1}DC?ERln0Y*#t{ui!D@(ueU~N@uiIln` zyVFL!6(0s!P7qNNp6&nMrHK%ULLZ0=>qmQjSxsO3^sCgKTctKkcZTa0o>DXU74Czw zyJ^?s-1|Mnxo>^EO%NN9ur^z`@?;v!(n`sHNO^dw5GX^U>m+8Odk#mF1w$|BI~nRM z79htAMF|~DFrF;8+Wz%#5PfST~s>CY12{2f0tw3FBXKshG1sHc{+e5nnRu;t0cOh8(h~yTTY7j|<(Zq}0FI8GaoT8hX6k8TOX3 z+u2SuPbO!l8AR$^@LKM`)e0KqIQ6a(?+1II+N>z*cHyt!}~QI6I3`v5zl z&#f@6bTuhKJ^{!?XgX6rgW;B6WwnvV1Z1@}m$uRPu-V{5fcq#_ei>CdC@h`fZ7r4! zcWEgRv)=WJffS1)u;sLKYzmTx2gKpnY|VefhyG1bPbmW@-H@`&RpCblAK&JJouZAZ=@+ z`HRZ&U_cNB zadv89jEf`^Fhyyh=p$eXn5DIId_i~adlRTqf7{MUIT{U4P4{%d4M7ZUQce*JSX$jA zp(e2t+YmrUo(?X|6i%9LO`+}?gk@eHfs19VX9F+)s3D%MRPRF*?nNf8PX7f0Jh)5hV7Un80>J2gAmiiQ))$~gnf5Uxuc;7RA0CvxWL|CTEI z4zb*?ELZkf?$L$)3!e!=3j39%hqhZbDg11wVGT)rk`G~D2@lfR#c|j%mOd< zZXl75XxP7;Z#h3EHoQMo3<5Pj=RY-nD}SCzR{Qe)bzj8`c#9IM3P30`u^ zdeyZ}6586i7dK>n3{GR#$SzFV=*C2PTH=D<#uwl(sd*q*PQG`|HLRLEzky>;*Mcs;1f=jR14ql>EeMX{h-x z(uEazurzPMemA7Qp!88&V0BgYSJDE&#Q0M^elO#R!K+D;v6hmO+zt4_m}XfvCxl%e zu+g-dU92exMTr6>&WxCHsW~QzOqWBau?>6NI^=-Bh{yYFFN z9FV{gF1?<gaT{Qhp}^A+drR#yv`Q+1>FBg&*$TZP){Dy*SIft|g*qM~ zY~f|umOU9vXXR3#DgSfx83|em{Y^!w~ zWVKW(WA0#FUcLWR1efHq`_#&XH>yD^ zWAi@&QRRzP?CI?XldE8}Bg%rqBuRuC)_<4dyq4n?X!#8XKtC;AUKuT1J1WByZA%?1 zEy^cZ3de?SVvimy~Pv#`Qm1lJn?b$Ye zF>ArW%BJn7gJU2Hr5AA0cPG)Qssy?+4pSR%e9=ENrmnxS!3Ne^O~8mIEYO97ksQ9_ z)mlvZ8l7j`T?MASkt&=UB1dE(;p=31+*;dt?1@Q=qOP5zN6`2dmrio};90lc40nDK zbHdc?t+^hf=zm|A=pI>*11oRtz05i&K>^pvC}bmh@>sRTBa3d3R9D=XTs>2eHmd7*=9}bF7~`8_aJeS<%Fb5n==fk2UUENkkGp z@g`pTQzg~utUSEwjCOFSnD84ECi=T&QN9n{!+_jc=A z5+oVH3`ztOvQAYjO?EtaF(aC(QkMADi4fdA{w3QXx%U)~;5s9@*8Ghrfgb*^4%mp- zDComzD0wz?e&O~Dm@g~h}i{p}VMUw}pQMFv^j&66{JwpLuY_$?5P5#yRX>EJ+mnYwC zKHF~pB3{v|-m7Ax)-HBeNXG}05jyk^257~vbf%{hdBA!{H7L2@ysjrF<{K{efzdW+ zcH9fV7Gq1~8{8z$le^k`gZnYeFMO`Ay)jdGbM z+3!Oyb-SeIwJG>?+x9b5%N-u4V%{=-IxCvg8$-Ou-6Qd$zqwMxB9NtPVy>|48bQvj zJLiq{l>_qF-PzFpbhMxyNb1f#^BW#yYxj0SqTlLIvYrLa9K#f-2`m~?*JX~)fpZBA$>!yx>8|L zRL&?Wkl48(^_9r6#1i6yMCtszW0F}0NoBT+e4L#tGrxADdd8M=`(ui9l2}W*ru+9z z5ctYOk1CM8boQFZk^SWFNO%&^Fjhu*tJ|B}o#Qztu$;!F#qfRgpML@iHEXMP{_ux-{g3tK--0yTUmi~UTkvM}jnK-4TcOYy?DX}PM z7mP>!742~c3(=A1a_v}YX+RqNx&9Vp3XZoSTN#JSWA5*?D(&A?tr`&nT-ckW<_7E( zW0A+La=e5)cGpl8Oh9 z#>IL%L=~0$w|hj0eslm2rJSOQ1xNXd>E*pg|NhneE9vncG$kwugIq+#>VlgA_dd z*nv-8;N!QC7d0R(%i>{;OsPCvARxQ|Te!OtC#IZCL7gl-tmh{KB~1)i9@GdUm85l- z``V_j^wYIH_OcK;p*a{`>{rPKQ^9&N$AUL8XLCv&MV6$5a>6z_>SzF_%G9b$|3&xq zu-e#rIfL$6BOGruA~c$5Mv$}qZSPm4D@3fJfw@A;jntQ=(JoJR$)4S6mL3RbB2SPF zu6XG3m17s-Zq2l6UAO$HA;I6D_vx^%aFX+b)kFBG5 zBb7}Ga?&)zSM$Ay0nAKAj~29kTiwl1Bcy|D=)bp6qz>K(f&9i@8DTi1x~(Db>>lg@ zl(dA2@h^t=g4l!p;MjCoCoW(*o;LRE4JvGE(K_V=&*p1ZF4YsJ?2B@N<{^>?)R4h_xDt*&C1%5 zM_1Fw{!)os=gC+NA?RKSGG8xb!r2Zy=j?(T0x1coQTgAvT2Utuqk!S&BH*$QVhGJq zcdyso?$E}EPB6ssM?T~u*}UAgC(Vl{aD;PlgH0HEEfly^iviolOhl7lmOStZP~HBL zaxhwQWP;v6IxQ_lp5=eV^UPo3GePY;fTB^`wea3lt`6qeT{m&$@|tn8>@H!GHUz?A zGV;x18rkttXFfwZkMxcn9Uz|MeWa8OD@D!~V&4Ox)=fR4WgnAK;-g=0mO22EuQDk;u9h+YrbNewjngu~9a&$&aBzsihnUIgTM zycwAW67(ulDL(&vYC*tNS1>|(x`MLP@5LkR{x*_G?&+2IAXr(rpK;7GqbW5cWY^J> zQzQxWEmo%!;L}G>or&hr$Bidli?YUg)Hvy`>`l8bEokV$Ni16Q@a_Y*lx=iZcsM@k zy^@m4LO$tQMD_;G6fJuSA!>J5h>JCJ@m7Fk*`1LWv#V@-aY3J(;7TPnIv;Q7LjrA9 z+vqmhm^ib-Y+>p(9)JEh)39u3-(e35>;n}odnI2X{71DrhuzOV-{@kvqPkQaL0~0Y z!TG+bv}NNh3Laz;R$6~jAH}7ZjXpZ&yBIy0Vlcx^8q;POCe?l~luK(g;hIVA$F%T8s~&X<>nP`g>1chBfVVEd6oft#fm(eb zCV%(cJN}f2tR1gBJQfFGa}>fUhB|mX9rE!NDJ6@>&dWbeByV*zA7B=_2%hb=6=rjHPk&q6D>WW<}<<#PlGJSSJ3c4Q`o3St3K51xBxR(HbHg8yi;H z@)(m9(!UhC>RSJr*p^D*8nkEBL-7A3f$!hLJGZTqN)>2 z%7D8S2r#AqdJt7zTV6J8ebJsi2#bDVi>^cq-KO0dFe!~w_3!lL`U>E?KYZKX7FD`D z!fvfPqrsh?8VY}3-%Kc14&?>21mzEzX{aHMk$yD;`dval>8Uir%^n@>#w^P6o>XA zlxPieelI&8D0zN)MyLU8Wb65oq@?c8c^x1T?I zy1Vn_*=FG&AUou7Be2=lx)_kpy_AhCpMTs~<+3Q*0n^6LeR}OW%&xIKrpHAUUDNFs zPk∾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

  • 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