From bff1688ae2ec44510bbab16f1bb91a0ecb0c0146 Mon Sep 17 00:00:00 2001 From: abilhabibillah Date: Fri, 18 Jul 2025 14:12:39 +0700 Subject: [PATCH] first commit --- .gitignore | 45 + .metadata | 45 + .vscode/settings.json | 3 + README.md | 16 + analysis_options.yaml | 28 + android/.gitignore | 14 + android/app/build.gradle.kts | 46 + android/app/google-services.json | 29 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 46 + .../com/example/ta_running/MainActivity.kt | 5 + .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 16879 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 10282 bytes .../src/main/res/drawable-v21/background.png | Bin 0 -> 69 bytes .../res/drawable-v21/launch_background.xml | 9 + .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 20236 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 32765 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 39743 bytes .../app/src/main/res/drawable/background.png | Bin 0 -> 69 bytes .../main/res/drawable/launch_background.xml | 14 + android/app/src/main/res/drawable/run.png | Bin 0 -> 37993 bytes .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6010 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3728 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8342 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12916 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 16879 bytes .../src/main/res/values-night-v31/styles.xml | 19 + .../app/src/main/res/values-night/styles.xml | 22 + .../app/src/main/res/values-v31/styles.xml | 19 + android/app/src/main/res/values/styles.xml | 22 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle.kts | 29 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle.kts | 28 + firebase.json | 1 + images/run.png | Bin 0 -> 37993 bytes ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 +++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 +++ .../contents.xcworkspacedata | 7 + .../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 -> 119853 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 1271 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 2982 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 4799 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1998 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 4722 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 7511 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 2982 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 6919 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 10913 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 3911 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 8686 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 4190 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 9534 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 10913 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 16249 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 6010 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 12916 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 6606 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 13695 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 14345 bytes .../LaunchBackground.imageset/Contents.json | 21 + .../LaunchBackground.imageset/background.png | Bin 0 -> 69 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 10282 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 20236 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 32765 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 44 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 51 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/app/routes.dart | 1 + lib/firebase_options.dart | 62 ++ lib/main.dart | 33 + lib/routes.dart | 10 + lib/screens/all_activity_screen.dart | 135 +++ lib/screens/auth/login_screen.dart | 229 +++++ lib/screens/auth/register_screen.dart | 251 ++++++ lib/screens/create_event_page.dart | 204 +++++ lib/screens/detail_hasil_screen.dart | 429 +++++++++ lib/screens/edit_profile_screen.dart | 141 +++ lib/screens/event_detail_page.dart | 816 ++++++++++++++++++ lib/screens/event_result_page.dart | 379 ++++++++ lib/screens/hasil_event_page.dart | 214 +++++ lib/screens/home_screen.dart | 425 +++++++++ lib/screens/main_screen.dart | 68 ++ lib/screens/monitoring_screen.dart | 118 +++ lib/screens/profile_screen.dart | 265 ++++++ lib/screens/result_screen.dart | 237 +++++ lib/screens/splash_screen.dart | 91 ++ lib/screens/start_activity_screen.dart | 371 ++++++++ lib/screens/super_user_dashboard.dart | 341 ++++++++ lib/screens/wait_for_rfid_screen.dart | 121 +++ lib/services/auth_service.dart | 33 + linux/.gitignore | 1 + linux/CMakeLists.txt | 128 +++ linux/flutter/CMakeLists.txt | 88 ++ linux/flutter/generated_plugin_registrant.cc | 11 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 23 + linux/runner/CMakeLists.txt | 26 + linux/runner/main.cc | 6 + linux/runner/my_application.cc | 130 +++ linux/runner/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 18 + macos/Runner.xcodeproj/project.pbxproj | 705 +++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 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 | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 495 +++++++++++ pubspec.yaml | 117 +++ test/widget_test.dart | 30 + web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 108 +++ web/manifest.json | 35 + web/splash/img/dark-1x.png | Bin 0 -> 10282 bytes web/splash/img/dark-2x.png | Bin 0 -> 20236 bytes web/splash/img/dark-3x.png | Bin 0 -> 32765 bytes web/splash/img/dark-4x.png | Bin 0 -> 39743 bytes web/splash/img/light-1x.png | Bin 0 -> 10282 bytes web/splash/img/light-2x.png | Bin 0 -> 20236 bytes web/splash/img/light-3x.png | Bin 0 -> 32765 bytes web/splash/img/light-4x.png | Bin 0 -> 39743 bytes windows/.gitignore | 17 + windows/CMakeLists.txt | 108 +++ windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 20 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 26 + 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 -> 33772 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 +++ 181 files changed, 10182 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/google-services.json 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/com/example/ta_running/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-v21/background.png create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable/background.png create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/drawable/run.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night-v31/styles.xml create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values-v31/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle.kts create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 firebase.json create mode 100644 images/run.png 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/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/LaunchBackground.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.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/app/routes.dart create mode 100644 lib/firebase_options.dart create mode 100644 lib/main.dart create mode 100644 lib/routes.dart create mode 100644 lib/screens/all_activity_screen.dart create mode 100644 lib/screens/auth/login_screen.dart create mode 100644 lib/screens/auth/register_screen.dart create mode 100644 lib/screens/create_event_page.dart create mode 100644 lib/screens/detail_hasil_screen.dart create mode 100644 lib/screens/edit_profile_screen.dart create mode 100644 lib/screens/event_detail_page.dart create mode 100644 lib/screens/event_result_page.dart create mode 100644 lib/screens/hasil_event_page.dart create mode 100644 lib/screens/home_screen.dart create mode 100644 lib/screens/main_screen.dart create mode 100644 lib/screens/monitoring_screen.dart create mode 100644 lib/screens/profile_screen.dart create mode 100644 lib/screens/result_screen.dart create mode 100644 lib/screens/splash_screen.dart create mode 100644 lib/screens/start_activity_screen.dart create mode 100644 lib/screens/super_user_dashboard.dart create mode 100644 lib/screens/wait_for_rfid_screen.dart create mode 100644 lib/services/auth_service.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/runner/CMakeLists.txt create mode 100644 linux/runner/main.cc create mode 100644 linux/runner/my_application.cc create mode 100644 linux/runner/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/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/widget_test.dart 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/splash/img/dark-1x.png create mode 100644 web/splash/img/dark-2x.png create mode 100644 web/splash/img/dark-3x.png create mode 100644 web/splash/img/dark-4x.png create mode 100644 web/splash/img/light-1x.png create mode 100644 web/splash/img/light-2x.png create mode 100644 web/splash/img/light-3x.png create mode 100644 web/splash/img/light-4x.png 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/.gitignore b/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +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 diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..d77a4e0 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# 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: "c23637390482d4cf9598c3ce3f2be31aa7332daf" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: android + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: ios + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: linux + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: macos + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: web + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + - platform: windows + create_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + base_revision: c23637390482d4cf9598c3ce3f2be31aa7332daf + + # 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/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e909eeb --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# ta_running + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. 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..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# 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.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..b16a3a6 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,46 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") + id("com.google.gms.google-services") +} + +android { + namespace = "com.example.ta_running" + compileSdk = 34 + ndkVersion = "27.2.12479018" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.ta_running" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = 23 + targetSdk = 34 + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} + diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..4e20f05 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "888886225940", + "project_id": "ta-running", + "storage_bucket": "ta-running.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:888886225940:android:c49c02701a3ce79804cb01", + "android_client_info": { + "package_name": "com.example.ta_running" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDcIQatv2KWTh96025wlFNEbH3xH2MK88k" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file 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..f2924e7 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/ta_running/MainActivity.kt b/android/app/src/main/kotlin/com/example/ta_running/MainActivity.kt new file mode 100644 index 0000000..76bac6f --- /dev/null +++ b/android/app/src/main/kotlin/com/example/ta_running/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.ta_running + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6b55ff22abb34162cae6c97c2812dd72b04e6aac GIT binary patch literal 16879 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 Z>*v}zlJgH&0Z(vX@O1TaS?83{1OWC=dJX^p literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..baa5d781843fe31ca79aeffbb1ac8536dec32474 GIT binary patch literal 10282 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8e21404806af591e5f4e4ac12eddcde9d2602abe GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*6yfBye(&%nmV%p~xY RaWhby!PC{xWt~$(69CA855WKc literal 0 HcmV?d00001 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..3cc4948 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6e657d1159933bd887830f1bf94f622356e451 GIT binary patch literal 20236 zcmX6^Wmp_dv)x@5cPF^JyGw9)cZc8(!4?ZH!QBE09z3`OhoFJrZowBPEO2?h`)l@j zwx_4Mrn=_Tsnf9& zmY%i%KR-WqM^`5=YfE=qb~jJ^ymL`v06?uyQASF~KmV)%K3`{na3pl~7yCNh+}zyy zx>98%BRVJ?GDk%=R{~MU!U_GW=7{&#HFM+q*=u7XdgAKi#$?xW@aDAr;JV-8)M}1U zZ{S7yVc{+cE^ZoLe08^5-{9b2NH)mADm9!7zHg8g-WmlGtB5j;2Y4HhzyzR=9mBLh zf#d?ZPJ?;)>B%J-14ZH7ar^iHuK+=`t&VQD8RECw2h!mBumO%|!8E=De-j@b8|CEy zQE4WjU<(omAK(rY(=Z==9QQVzXoOZhl!b~1!m&())%PCY1rTk$Pc#hw?=OngCj`7I0?6Q>-6JQc4>xc#oj?W1xgGoC9$k=<+$|Hq6xa;M8TP1NdK#?#ffK$j zl3{Q|V5{!|NQ7974&eagzl~%XdRs%GMc}3+cQF#A7jP5Wq>}A)k*E1y2_NDO$OTsX z6mOn%MuCC)=m3a-8aVgW4S^5R=L)81qedw1o{P8e1?!?)WnM*@ScD{rZP^Mk(Y^1z zmr!NoyXNK+5xp?x?yE2%4$l`l5?ZN%HlPEzSPX&ySc6{y10Dd9KLsfE`~f6Dv;dyk zPRr=07CwP;_K)8lvB<^$dIw7ps#BeR7zfPPrH`6UkkGplmX6%{)GrVy86X4z z>KebS%+EMr$jk7#a~?}|++jQ5Aw3qz^vI#tB~RmScx}T9Iez@fw_grzsg&NMC%89fWW&NG!E^fZygGNQl5Wd(%g3P z{qzX8>*wVm>>#@P#}4DBPfTn`crX}=E%)&Bm8zPQZIf5n!WZrAA=E6HP8V%qhv))~ z8t?yT(Aoow`IcN;?W+-CW*4Fb|9FVMXTM6%j5{)u5)#7M+dubk(*mGSsJo}74>I%=Ny0ODG|zYZ|b`J9N$(y3?SC^9P$ z76oBq{h`2Co_KE^2N4A>I)ea}UqVC4JE;{>-R**NY0-ayVpi1Qdxh^s;Jz(8_i@t7 z1BU1@;eZ{rPSGv*a3S!e!h~xE$G#B9I37FZvV1w3|eLa zim#P%g#5m*iL;_79sp&yqN>^B1rtuA(%H_xt#j*lyJWr~3FAH9iZJVoosr+vjtC$5 z%|0!rK0!(RXR2iEmw)74u%?r{a9+5Whcb{%C7c=d`R{sg??Q)lm~_x0H-{3Q;_Fn)vpo4$d|}`vEUIEYGaYtq!wm44+!iva z>7NJ;?dQ?uH~n+wp^5Ddy;-c42;4e74r3i!-P))$$Hu1?ikaE^y~wB>wnq<;-BhuT zSL8c-_Q6Jby|aGs??g8HuE)i)_^d_PV&p1klJDRjWKARN?QMk(xftpp`AnsbMe2`T z>Ai*>6Q2ZWivCs-9^SmQa}ZlYx3Y5%m5oWnNc$j+-ABJ-(y+dcoVEro&ip;3=7MUm zQ-9T1kj|2U?Ne<((kkXRl)DF)l0}!G;JSubPbw+jfWUD<9^og6(f0A-?_H_K=WP>< zlrOsnIVd^eAI8}bX-B6puvLGo7yLKr7EJ>xJG&YYSAFwNQZC;p8y&y`_?|~+qv#7~ zZh<@Q&D7A4+|F3b*{D_p{2}_Eh_)jI!S;Z@p@fG`=H|0I0u&b-C!+;*x zCGJ;h`|cjV_hl2ta8&9XH2g~5nd(iDMdwyqfz&)eOo*3>$?sYYMOGy|)#UlZqBy?F zfjN1)Ki17Z4R3NQCM5Qj@dY~rs9dH{wA{L_7 zxw%{}(w?N_R1)TD)LTS7m9tO1JW>Qb2T)B>RYc;*&Qn=`10**#JeCwX!O5z1B zz}umnu3r?p*W!e|d_CV694|vxSE{X48|y3jnh4gKW~n%Qv;olu>i|tF>Imq=oZZ7$ z7Rc{q<(~^Q8Soq=$xD|OeOp3sd+yh2=$M-cCa_2(-DPBz&U`!-R}j|pZ|^FDh$4cQ zS_44L#|1A1WWW+Pr4T9rntt|?6bBVoO=Yxc0x8%7{Vj9S=zcAAzrOhc8)zmi*08kq z;}ASPfT;h&EC)lh8bXmIuaxcB-U0wZcV7IZGyLatgSNW+&LnO+Q{`!m#xLgOt%HMv zBL~f}w~Xf0|169musnrG)-Xl)CtLKNRPyTqIiB!o8b4+ioTrD!^@rGalta=)_QD>F z0K2|j_V){K>O}mZyrrOU3cADt)i3k= zU9%_MsxjNsEAP@h+`DXqp#Hdkr_uMdEvacHp`-$^pGIz>pq~HvT&%H;;{0_%?kvsm z2jxLj4nz?7OOEuT{+(D{^8zY^KCt+Dk;I^EA#iYb*m{cN)#7RtB~F+INW^{Drjr)O zqyXr{Xqbs@4Xz>j6cP>6qIY!;(2de1JqB8IvY83CqW}zcFr0vP1Q*oW0HZ$ny+4O*#i*F!?SY8WH$)fzr^i#PC{Rygl z!=aAGcBt^8fk=PXVn!7Er${+#==j9ZAJt{8R*RnBS|BWo{$OEYzZ{zMQfh{3D0+6x z&LHV>b2Z<1E{6>Zka0kCKXI^e3UoA}#O`KueE%KeyNId^Af{cJy;%Q{IzP)C0|yNm z%@o!zcWT9j-C}sDfo_U{ROYMzR%?70rd!_%Xlu-M+~l^;NxiEz@ZWQ|Gf^%*4na_7bkG6ZJ$pNR-om(nCg0iJ(Ct z>2E*lKEe~)Nc~m`vGZYH102jnT`e=;HjGdBM<$@HKAbeuZn}K8!q~vfN7p9@ry>0p z{TzyEm*+FS@cnvp)O=O{#P#|QnoC2$5TbiRJ?E6f+4|TKJqFnF&m1z_5Z8z%G|ZeL z`MC$>a<%wr&jTq8H*2VIHkzK(9RU{wD>5L{5qlkdCBWiJPVtVTd6f@0lrm@ zhuPMEHPkkfi^(VTDOJv`%)uvG1d8|=ABBkPcaCU1 z`CHrQ+$BGg!SJ2mozRW7E zkIYZ?tCFp=ao@ntJEwnlMT)v~}`B7%bb3 zB06sEL`wHq=#2N<>I*?LslNa+Oz9GQt=}DQ%x+AVwca({-+y&j3?WgA{kFBkgtSG8 z3mnV6Q!Ms5V{ls>2pl}#tlT2ci&a<*Z=_0>aU+Xo_>Hcm5vob`))}^bnh!S>>%1Yw)p^Za!)z zlUE;ISwM6a(#R94Prr)Xw=`zbmzE6g28i>dK%W|s#+mhk(2dkc?dWQo7vBrA`1&*Q zi<55_iiF9QvruK^*}jA9(9n=gVb&j>tJbvLBfl!$2;d(wvoCh+WlJbx zKox;$n|?upjrm4{g`SRujw#l{>#P3 zQ?*^7r|~_B3m#9(vahX@8PLFv&M$g7sf^lfl#RA3(`QW*!H+2R-_1sntQnxNmQu2> zH3Ttz@CQTe42xTiHeiBv9i9?pF4ji9k&nm_o21%liC^EUc+@coYx2$WP-hH#Wqn=J zGZ$LEy&I*| z&O6J&@bb1>4d2SKcu910L+4M8oR+(o)5F{8d_3wWbb!==!bW@DB7``MBi0;4xDB&9 zgH}CX9fgUh*Q_!yZ)MoXW3)50#EiN(^GV}ji)6|z}_4n69|BldJI{8|%wKg3!~^i=>=mMOCjN|zNuPKY zGhA=})`jM$E1;nQ#oc}p&ME_F2~SS=*Zb<-Bo==+G&SLVO{fBJaOkV#F+7>w*yHQt z%Mu6?RV9R;Bv5Rh&}pO2F2GYJx971OiozKq{vr~JSyjq=tae5YWTTdZ*0C8V)*PS| zrOg$W+Xn(d4W6QIa3I>wC~QYv1^lm~AM}4Ec~Y<_59Z)83-S3X7*0ts;?|vvGy>Ru z-@G4|ZGh@)TETP}W>@1E4a2kkJ{NL11MXk-aKbq0K?R14Ev+1KS2Tq}1yA+!>3Z@U zKqMP8&;DaB@AOv7&R5Ih3Y4RnuaJWXBk3Nd*oq2+bENNJ^t2p61^3IVY8F=r<~?{f z>k-SD5@hiL$#7;k@H#M1iR}Vik|?88*$GTo-JpSuD0Rh|MX3?Q5Xc6Tg8kYxwg90n z{lpSCEKxqju3HB#vo6(Ixx)PP;#FUtZD1QX!x#HGml`p0*czQ8k|SMN_4z3FgT!p_ zxR89tKN!gUd!%LcIaP^2hr9eEH0z$hL)I&kf>_kV`l-xyw3^M;V4+JQOyuakpEyIvGpJLBjHoS2B|a+eV)JL@&=8(VwLezg@Y8J=2zMfQ+UOPzN?HAz_HmKA zqolE5+&$!yr3|o2Y@Zbk5l~co9Z{E%YVRQ7bb4>w?3^y&daeJRrop3nkE+l3uBy2T z?$evW+Tc`*MI+K#v@L3gEx?9_rUxZ%fKcqt;!oI9Hg_W^C^+(uviD-=eTuX{RO!kj z^4w6{InruZzj@(X6ZATpI;E@rtDgYc6BJKqH^NJM1?uYk}@=K_r!oiHWFw zp;N@o5vDO%-2kXN%+a}EPxn7dA1z$&kGwKd8WF3h7;tkDOuC^cy1B40jN0ojngu2b zxLaXwg~`t0ewO={N%7kJ#Y**f6?}z22-%N+%~o-eSABXR#1G#Hz3 zj_${nPhDmGsCCKXPW$Endr(qzcSPB)LFwo^E2N@%;83>V_FALeh8E#~PDFBn=P$hc z+Y3Uct}hZoP(6io!$S^vmB$qW&U$UWyeAIx)i)U0j&cV3IJEvM-1~9cht0awhR@Z| z;O^@y_w>n!Gth$KLE+sGsl=ja!mvO6R1ZG81nmc1)*2U{p7bc3aR7+W<%?Grv$hy;S_)I?evzRqP*)1WPc{Zd!vFPx)wsR@q zD0}X}&=B7qm&BSDsGuV1g+Zr`h|Tko1e;E;{n54=eWmVAwA&j&T;$XL<=gacQB{70 zNtw_DX24ix+3ej>2kTURo#AyvGBTPyD3H zcTb>!#uKzPe7BUx$zbZLr!JmA)=77`PNmoIXKh@uFY8^<4$Rk_zgF+B+=7+t-n0mV zto&|rQd0lv=Ay-JQg=*Dg3Ll=IcJ-be3^3E%1)2!uAj;v7y{A}Zdm$v3i{J+7_~mY z8q8&II~Ng4{wi!>Q%D{|f4SED>R!keom8TjfifOAKl|{LntG-y>*ms!-Q!^Fu!d1CE?ws=epY>++i%ZvIa%(yqUH?1w;mV^nz^+hTQVT@lAc zK10^-agb+4W&o_Pro$>^U`9N|`VO!xqlSMO-0;IJe>PI!Bzqig&JHOXk#u-NqT&;HxsjxM8a5Z?Y{A!Dq z9&n2-sQ9R{$Q?6|m-uN|O&V=%)6dTLOmR^Az;yPvKH)tmKG|78%;it^9?+yuJEdeg zxt%ViIUR()+#%%UJis%W*Uk#;uq}_H;4~AASQLBkC76G?v;>Z1j|8|isVjVT_dw**G+jB9WP_TObGp-Dxcwm1) zd`h1y-Cxt?tViuiIX04Dh!Addm;R2(TRoGM?;rUyluq=e`v&B(0{??dg#2Ip0l70G zoAL1&U!z<*JJZcuvJVmJiwC?5ZSgf_Exe1DqD~R9W;SV~$zR;wQ5^&Q-Wgm8-Tk}c zvnHX`VMN`*lY8tFw? zNJX!gL9Jp%Q~h}&PyjTeT!&5em#-d5VeLU|uE@6|Yq7C(0o^aw>`;9g8qMO9)B#MH zb|?LzD!IJB)%@d_@C?7Tr8t`!E&950ptcbWE-urFkm^=KBJRcFm9EgILA(bXKEw<| zwUa#_zK;mH-vHI}(bJ7nXBRE?>A`Z5H369>;?l-Nhx(4Nk>!RHN`kCe-72nF$q0@> zmX72|$56*#3q{I%iph!cQHVd6+5|}jz06E0@t1HQU(2UHek<0Q+OSR~F>My3G~)Zc zk^%^#^_^W_M$QxFpdat;YOkc`W@E)8JI}>Mt(p@FtVFxMb9Q^@=5Hm0gKp7(py5 z%kT*mC{yJLSDRMfs7!f3)?R8L@POo=Y+y|)xO~%`>XZ@S)Ox;U$ANR&xW3+ni3~ZC zx_SQ?nR;a)_eRDNEj0=L!w{ohjO>wD1UQtoNv`8uM>MX zW9S9-N{T(_l$W?tPm_O*H%-@Ui91)(l=MY6aBq~BD~j(c^x6RjD3)0CO?C)V1|E{# z<&56J?*{f0$l#f;VCsly_$an=ciug1_bUFIu#GgyNy8t=&nv;D zb-OX6k+zTx0oH$>nne7;btX-8{O#|M6#$?i=7+h=LcX>D`MW2FX42O>RwK<61pJA9 zdDfW`uD9*pfTYoyA1O2chNi zV}f)JErkbA@bV4s3wu@9^M^Mu(15fSN)VoD{lohC{x*f@O9=H$-AD1sC2#WY(oqGw z{Uw$UA5QVurv?mvb%=|Sy8AW#W8GRCVj&WFvTwJGH~8S+`5sgseTIrU*M1?+nv1|& zTV$Md&&JJ7&|B9-y&Q=Tz~JixSTy2F zy|up`$3-??y8BzK)WspRdmYody|0?MT$%Aglom~4U->DCV3R>zMTJ!ujWnqsR;w;n zvT2p6qq{!pa&wNtU`KtH2dEVpHL^8)MtN>YC56BSeNK57v6T|?Vw8HRt3E-dYI*$i znW4r4ChB{Q{F^NYu1IG*;x^hXrZqMu?)}dm>H46_dj~`5J9j(K9#$C)6tdBwQ;C@z zBa`QbV10cK=c#JF{D}IKH1H4}Vh1d6JkhGNs?B)k1|Eq4^s9iua6~Vno}}~td=Ax` zJu23}sD+a)!aSFLF>uyN3+1<6f&Gf&)CUy6Mwsssxz>9Ji|<_8aGV-7ye$+2w{~4V zBdi5nV$}v>4x1lxFgl9omJjiu#U56Y7?z9+`Qn6G%jFUyyX%}T-7Iw8HyrL6vY%j% zQdsn_Yy##(xK0~MDWkV`LilF=f4^dpGZpg2Wy0;@7Q;!$hY&$d-^uQ-zC@7v+-N>3 z$haxhpHG_}344>8_2}K)Xfz7XY^RTxf5$`+ z`Dab!(2V3PtL?9ANWmj2{dW=a8867`*qvW0>H5UT16 z1L}SEz_sRi+}m8-d-?glHXiN;y&j1_O&KR3!`W!VBkchG_xOr?4>gsSDo~H9w+#P; zzJkACPhLBKN3U+=N70XgEY)MLTSD2A97z*aGV=^?w7Hj;vZ!9Gvsd47vP;EDU4k_1 znj2)rVzGmRQ&uG=Ut+$7b-9K}YKG;^7kYY>I4mz+2|Ic7=tj-&2qJvh(vtvQNkbfl zUhHfN^tLkwaChZId8&g7%m-iVn{tGdm~i#6Afq7oS7#`TpKJa|;s0!OFy^DkFUX$> zoy8txQV_enT=ohQu_h16zDM;-ct|7G)qLLFQ6SuU4Y5`ty%H9*6xu4>`WYJ^|1+vu zpzU+W{(*~NsG?8pN_evpZbR3`{(HZM0V5H&$7)RRU(aG=ZkbJL#EnS4+ zel&}Rgu6@)U4p{xt*J>x%bJh6*ZzF^u5P0}nTL>L_fh%RSS3coXJeOv=}Fdo6Ou$@ zyuwovC8j$9t+vSD36c|bx2Sh1o`J$m+Mo9L)JMz?@$)c*JfVUpnuT|E`+_o6*og$M ztA0qPE6tLt^tYNdk{f=a^CjEcOMa)cA!gTz{1-ySH!~TZ6DUr3%oy!qq95ZV*R_P| z17xIwZs*O`LP}ljR4;CO1>C$aS>E?FyYWssJ66`K97oonm@Ki@isRz;x0JV3!HqOH zCR3Fbc-!#?YR4<{m9o~S5wh))hxCY#7Vx2piirs(Lu;Qf+xoEaiDn;|GM|Y z+Pq9~gL-e;Z1N$A0sRST{KybM^IoA-R9bzz0U!H#+jHPtyj_6%?F?}>{_3=D+3$X; zl82|b10{#Cfro$_JfH-J-{i3w{IBs)2$gd3cA-oSBqP?I>h_tJ-RY?@r@TdtDS%7! zgCZR>t~n>XB#F&0bl~Z4VzJ7UFR?iO#K8EsujWPlcJ5Hq_RJoELDw#|oy#L4hqN=X zgI_iqGNw~dPs>}~=p4)k5Ek^HhjOSkOR+yyvGz#^8=402bIB*!s4|h1Etr1u$GZ$uQf3CYpNmM1gehCWDs68Ed;MDi^ z4-9zgIVQv_7O&IfOiGKIIe*m(m)NvIf!M-+%~f$&@_@vOx1EUM<9OvvS@4I8Xk3_U z&gRjY{0fJ!Xy!UK76oOGcK?3*eu6)|67fgY3C)2vGgf>kqGpcDzT9fpO{Z&&*6nHa1M@ZM%(A(%@gyT(&(WQKe9L;!$Wc8%54 zu!Wuc+KynrIGR8|U zjo#tC3uQK^a5fet!B=A9SWJvei%b~k&xF~+kPtNzO7F4lcQ-n{LHKS!=>5syvp+YKg9%? zhud2`CuqhZX*hCP_y{QISM%z58*;U;XP1@k-q)DeM-Za137Kr}Mt4dE~!2 zO1ujl6d8WKgZIadLCm}eGzVAEOHL>SG{3?tUV3LGRIyE1vE|l#-7faI4r8(#*0L~X zGAFSGV#e`}IiWz1oh@N*<}otGUhoee+b#QBLpKZ0?!CSG%ck%(I6FfE9M(*1aE%wN zN*WfifStq=)6qgr%BE^>>L+B0vn;-lN5|e~=yeKG!b1(3K45RDe8dFLyrtCeGnb_C z2X?MfE4;J41uH0_s<#OS(ZEB$tw>r;*p@AdZV+3y@Q4K^;ocnoF}YDjyq(h(R(98QX8N}?@RXRBDGb` zxx5wzGT_GL{5^_UXC@C$Diq>a*vq9sh4938zCv6M!3{^k%N;6A`8IB_!2-!zAwfPN z1ay0th2wOFcG81lUJ*HoF&mR^h3x6%0p~FaAYE4D{?6-I?b*t<%I=HnE9dj60$Nmv3bP;U9Ea zC!VXNz*F1|&D#l~8*x5LiA74#=fPJC9Uzj$;n6L3$Ut(&T~#^=284Y!^Whu!$A0i( zxJP%>`3D!Bb9XHofd2{ZHRjt1%Y&tBP|9;J^98f4WGhmfX+r3u@C|9@=mXP}&dH#x ze+P^Wry zXWLBJgDb ztkv~9wNonv!!(rA7&T;@2n}32(RL2P>%n)xnVJqqq1`x19dFjJE}{&}UyVD}ZJsn) zKzE)G9!?>TKQU5=F(Z&5603*${8!UY=!N8Sj$aUhM9`v>N&8xyvfeWAP}M)@IrnL~ zfmqcid=Xe9K4Uz0V#m+1v3ErnW>G%4E8}sJ-`f$}2tQb9U>kHiai5FfO8m>^_W_8z z)z$dMYhl;tK`|-Zprg~)Za|H$gYTx*1bVdwiAN5Ekx_~wP({kG>IKOMY$ue$MmO=l z+|tPWwwQ-=7hyiVxdZPcG>hNx47URv1ITkCtdJI@ruOL?Su}_|PVr<~srBz;0E>V8 zBym&sL;b!kbnoDGKA*BIjkYYG?6Y%&IvZr8;HCO1jfP%VcwO#(kwIopZ;sA!Q zLt4NIMI)=L_}HHtkWlf>F*ICn#@-^+a+eti1t%FDkuxVruF=R{PTu4AysT_0ouoZZ z5BD@B4w_!Gg10_WH{4Y+Ck`|N@9b8uEHGS7pB)ml?{pW``i-Wsq5f-iahyGwY5X=f zLe~~utBJk+ZRNod5m@iA7y6wi)K5lMj*?yub~ctO#3GlRpV0G6NA|M8s#FhRL37l} zZy}a|YGy31WeG8nyQWw0Y`-e&IEK4g>oMmdFU>Pt-uMU#tF1=FFgk|LOai;N-;p57 z$N-pw0CIh~G!n^d@RC`dCAg-h)D+T&;ljeOQ_qM6K7<87`C83q-fI0454kS-%&IjL z<3RoxaFtob@DP|xy9xR-4G#bL<#M^qH2+#XuGPn>7#RN~PxO=|7=vUGxOdo)0XP!A zVi;aue^;s1PQ|G3af@8YidwBuJSiIULYePN?%&l7hm^AUJ`4lis|ZvWRAv!2;MUvO z_e1hb1)>!!(Acj+$;ypjuCn|~^|gGokW1_U<2Y|`EQt!#O7s}uOa;*62_ct|5Rj1> zq-ItU#SE&_c`-@fIy}pxVOMJ=%SbguC>9jqaRIaPhfrJBQM-HKtCj81Ye`1if!2o^ zz0iE^lcb#D-q_nGrq0Vhwtr2H^$7`CDW2g#upoG0u2!U_xd%%);7sre2bj%C`X}?tQvjM~RYR>~law9HjQ^b8N#`fI;w{dO}_`4+yjd zy(+(1wAge**qzx9Zu3{I!ckkC9smbo|I#X64MG*FOt5zXHR8V z#jU^hgit(Y5QVm){he*GwT3SsRt7tZU0oX}1Dv_97=}hh@UgeKkdm>?QQA5?y)?sB zjepC?M3!A&5~6S+*01c4XeU>F?%jP@zr4JQ_lpW1Y@ z@1;rL``;tB?MKmlLvq}^;Per|Fb^s_4p>bt+>+T!e(NRtJ!ikBzQYHyw{EHpW3nJY zcC>?AJ}mAfY$_kdFcT6ouq$0Ydd+rR8uVCkg}hqVmYy%oS`yMDEXqMEdm=v#9cNZ zH7NJ;eV_PhK4jyeKk;%d!-wW)l=`@$O1cb_Sv%Lq1mju-@W&~kzUN+IY$SV{SE|I} z>89NWCSD58$rNhI;Z5s7|2MeljR(jRhT*MiKuD-*tT$tEOzu{viTLd5GtU*kne`?g z7B7)2JRj(YUOUyq^aU{6+5%$EL6JQ;?5Sn4fIb9nqya|Bui4><7x9UY?9OPz%LFd=ef54&YnvJ|j$TCP1rGEJkrCkY7F&QKgprpvR z=6eG+O0k{+P+QRMMq_|1w09|B&-dBl*2Aks@=3%|FVFuhVQn7aXG}^n5*Z|RzjEv= zq1Q)jpbjDl15WkfnsyoZt-oSWlK`%U=ESOl)>ml`>=_H#EfaHgj}gFEC>)9C*MnsV zV9C4MZDO(Zf=FVz`R}}DNl*Z<>u-h2fC+teJsVihh8fXXEw0?OQDlX~SiO}Qc+}ta zghO$wY;CnjdGTTX3AlWXH(Z|93BL*!>yFk}cl8RUqgw$1AsEJyCMnZ8L&KrGpP{%M zIY^`DqAu2*aCb}8yrs~eAYlDtZs;vBl&zDl_l21e;C1**y4S5Y<81ZMD#>c*v4VVrl9-a7j$v|nG5nGL2R^y&mboG zQoC(Ie%PGjGxWO4rZ=kqd4`~*HW(zw7vg{ikO&lng@+GHU*Dgtj=NLa5b0dxoF+vy*R7G6JwK+%g^BpLtS>R^cp?ce%bfxvP1@voH2) zlBs>n=u^uEVNNpRGU zJ_Hc|sVMz{R3SV~K@J1Go|?yw*KXXKBfXPQZ$LqR>wX*q^8a~>SGAD5Y_!xf_L+ZE zwJfJD#wvef=*X~ z&vLwZnTSg%_NV&FLx49PaG|m@R&3&v$16PnkZG4;e9rZpi$}(&|Zzqet`h8HX`5Kr;!pv-q+cyXqZ<3?`y3Y^ zM?z4BXs(b7JP5TFA-C;h3?GZW5%1NjV2G$(GTGDJAtEOER;N_Niq;-Q zY*_e%qZBnYjmLdSqjkCBEG5XMijS2qq|j73x_=tiVaY5cQ@hSp#QC2subC*eT9)ee zK&Z+q4%x^>0E4oI3Mm#b^20GH_?r}%;O`sdUnNt#{Nrc6<($HTW3PS93gl(}KrsD3 zkCfqeYJ8DHfB1(|X0CFpq*WJD;0CW2?Xmi<;D+ZECBMY(P2{48hqKz8z@PjL@VGHG52o z2%ild7G+&;G#v{j8hCnW4yy{@*p{(4rK0Mvp2 zW?+OR8L$o2?&c2*Vo$sA7}9t1Uwo&-I$|X==*_KOFHqet{%w}JBspg%G%sJ3+MKDm zh03Q@XO&1AN%*vb(u?1N*KlMFS4_a{Yi&_;XPvwAMhlldO$Ze_U5snEXP@WLZpI4& z4cdb-59&4}55MD=C-dh2=gGBl1KbkSz`N7_?Vr(_m0EPF0-xDUg~v`rTHRjN0mlnJ z+n~FA-5Bc5HT%@{mghFj&5~do5(&*Ji;&Y?9zy}_w^IYMoi99`mG-J*bn}ab>)U5p znbp{%xa8=OG7w|Wqr@*U0Cc=+zw>=^JpOzRdHyoB{pk7_g|&|lSnB3V1i6ZFREZSK z@Q^qMJ;Dww5|Vg3He;)kgI|pLdi-R4fqPRKs6t)`g9Rdf;O`e}-FboNgoK3oq5)by zukQ_*L5YIc+2NUD2o(fjWy90gMMy!>S^aa$7If4p-~DZWyRIXO=)cmg(6h5=vY@Se z7$x50crq8ft>)}orz>%Y*?9YI9*ZGYf4xt0`k;@!g`Au)_~<0i+*4@zKdZzcR91u$ z5fQT$inyxOl1XB@D;x%G8khgB52rn@elwjjy1xS9Y@V*~?xgPPg1NlzY$}iYgkvOa z7pN)iV4~%5cms8|*BYJHm|f{PM$Fh@2c{!iM|b#00kl0+^WJbuw1+(R0q@ zui|GMz)oJsv-=AyU^yfxDClycbb;~NBLI(8gJ?a_CmlbGqlaubR%3OzQ7Y-8L=G&t zTg2fCbN2zlf;6ifs7@bU#6N`0s(wZq92xqeIdb2U^Y!KA5bZN>NFf;8Axb^EMk=f^ zarrvzTR$>&v3xdXHdOuGl!OD04z-zfC~@DG_Q#-b@OdO|*s+Sv@6gLDQLEw56_ntU zPbhxNee2ns0|)Sy!6RO zNyxdoqgCmDk7#eoDveG+(kMy6fcr$FJd9RhBq!J(gQp}T>AH8AShN|*q1guTeHO-S z5%JE#58EWfh)!#o7vXs;cr)gotS&z8%O*Rj_P7S+`PqT+DDf)NkW!%P$GXb3(CbSP z7O3zPxT2Nlx#XvTqG0!daHqkC0GGfiewi~0m9ZN~x4-t4+So8pi@V93qnV!W(xmS0 zZq0Hf{L{5|?R_@7K9bNO6nva@d9)9VcwtA`L_xE!h_Fs;I9O2G^$9W+9q6rL{Y~d{ zc$_RH)KfAZdX2<}c!LE*ee0eQPXMdfmH4Qb2AqWld-a$DEgH~0xmf?r&;(c44;wm5 zO$G2Bt2yLl_v_Z)CgJw^!Kbe+RaOU=VWTq0j8^c+_%UxXxesrgs+m}5+1Oi0g8;}k zd_h}Ow?Iq{;BQ+1X}tUzT~AzNI6dkl^>9w?O<&LYT&>(2y~u=Flq;_Vj(L54WN5uu z3R5>~9Xu=w9%e%om1%6yu%lp`nG3@}p_7eAnt6+`K<|U&3CEJTks*(r`+X$TWJq2f z%bLluvC1uyV<1NZ(&(EZ%-9B;D)Ye%vK-hN)-bVNheRX%@nYQ~shFfp6|KH_NTE2e z(E3#Bi==!BI&mlG?8%DUjJBzYdunzJt>{k@Wiy56H}~EF@5a#>mCG3MCrY zGK!WFtppUn$G^WP7p%4-$4iQyX$=>G1lPMDi=)x6SDHf7j+e2RTZiU57L+t8n?^HA~$ByP^vBoa(rSG895+1N^;Z+5ub5ntil^yI9VE#&B=i@ zvc2b{3H{DtWc?Kaz2>dd)%~l|w~&wQAU#d=Jy?emq0bpmR8=EV2{uZ59<{=fp~0bQ zAT7Sg35AH%6?Rd-treg;FZ~lIgtG!E9aaH2)?-gzF!p0~WPeMZLF2aZnQ$BwY0y7| z6Mcw{0<>>!!voL0jw4gj^sbUx!>|c10Q2#TJ({wN()n55shddbZiwvL}bm&Kkt=MKaUe$yqtSZ)_+rGXrdM(6!GcC%5>1?LN>L57iHAnB(Md%B5 zFh($4b%xR&fHxcIa#-R}U~KL{^oc5qk8p%#h9J znd15eKaC?v4pj7v23+V?k9BV7ztX101F&eaIV?d>^}4vYB=OUql6Fz_L$sQz{G~}^ z0TNfMZz*Y!XS3osM{-&{&r+|K+`ZHbi+Ea3L5gl|@mFD)4gJ=5CJ)qEek}5HJ{Xcc ziNiT*jVP!iO+Dj!WZ*jZ!BCpIC@e#^Z`dhB2oD~W?yG+FLAFpaVgBe|_j~+HK zqyK#uQuYK;&J!0@ zL1Zw_^At4!eoUXiIqGvII%$Nj?*o&qOX)f=_MZI{ZW!O&1nspl#d>@-MLdeJ)|?GU zWey`2N>~6cyjaO_bqmt_*F`+w#)CauS{3IDLEt+H%%WI%J+RTLKfPp&rWcKwa$V zM+rA^^OM0PXrS>qUvZB|DYMKQNXgHPAJ!^8@_#K{c|4Te7oVBz*~XfTtl4*w-GpJX zWbD~RB#k#a*%|wuk~Mpgu?!K)9@!>KUTY#djTl=ES$>b+-`~&Yo^$SV&bgoaJ?Gr7 zW8=7ILxr(bYg4*(rx-nP59P~~;X_Kvk5?LEmCzj^VXrH*xI6~Ldh$sJvP{mR$jr9s z@hmMmR-swAD$Bi=2`)xc5EDuOvcl|kdg@knX6zae;odi%HQcAaH*`9=SUyL>asu#? z1wpIR+w*j?TEw2BSIR=b6+A+sSw?!*TWk9KZ;DTs_rC&97vvqYB^ zoI{QY@lk1`!GShR-_T#l@e#BrCnAOqUUo0shF8DTFeO$5v{O<`#kdl`^wRh_?{sg@ zS6zbKt`Oe7*iCG91IV-x=!Q~yaA=BRUAm9ui$5Axjx?QrfPt_lm_JKcSGvqY7&9h* zRM@vr`jUQ=Xr<7OFtF$@v_Ds-?SAHcR^m)WMhsOpgeTbvN(!1Y1F!?lvt!>yQPAzW z-z!!ja(--*bI7YNc;d%kVR}}5Izy~_FbqL3Rr{G}RZ$WvqG+M{;oSNwW@|)eCi$z~ z7HKzSO_!pbuh@4HBA_MU8tXC^oguV1xuX=J@rzprljt&rGf`q0%A({LFI&rx{ar}5 zM2gY3&6CTj6$$mw1;FY&Rzw7n@9a5>#3praUe5B|SmBuQ580^i&WU1z5}hVuD-L|g z*-9jTg|$+6Ca&VA@$Y!6Q$;{u&?r&JjrVBvz~{kt`|U76eUkuI|a~!iv+4uWN2tu9=eBO86{1uaE7I;=A$*ZOVCS|Qop2Wo9Y{*SP zE5_mw<#b!1R?o=id4OLinXee%BGWges`-w+R< zs%JnL(Su3RKioIwYK>8n5R9(VH?mL!k1C(Zf%O{Rs`-7jlmmj-BR3#vvXUjzBKMy= zN~<|(Mf?#O2S5I00r|mPdyOi7`Rj8Xmo|P2RPZpElvxL^hSuRw$F{@Ah&X$+UtV_@-cf4&agB;TVKJ%!k}Lr^=o`7GKlbp2zbj3IzyDjxCuzc2 zfp%-nP!+KD{^&9~DK3QCq6+TrW|q(yn@~Dh;e8bC;LZ{$>Y}$aavF!IWgyj1wzjsS z-s-5;1d3PjK-$~eD;#RC4Ze^_+M1~cHhm*LIkEc!5^e6ez|?|RbW>r*SF!MgI+3k& z2_~>9NPJy9nAXuMZqM{P$7j_UBzF%icq*GJyMhs%_^uV_D&y@k@SLbm$2a=g*e*oF zMWLxzNZZ%o^5!z`z->zF;>kPOV6E3 zewjTnkqyHR4&u(t>d=b@_)C6i8&4B4LJ-|u^Tf`cony}-&>Qa`0+6<2su8k&5+{Ir zocq$m&XzOkL;L7&gTEKALdXTpYc1%wl>IaVoA1LI+rmvZJ-%ctj{?*s!TcX!!r3Zu zL^<<#_@n^`&S_Th#^x-$jLZ@NUAzhhpp^RK^8~~vBlJQ$msW>mSV+;sXM)pb>xKD5 zGV+AW?97odXceo>#{+;g{!S@M3xSk(_zZO}W%)N!X9lc%s19p{c%cG);qUWXPpR+) zEmu~D%yr6#t38kL)H50-daHx^%xSP7&3tvASnS=G>Y+h1?SX@t5=rMC^T|4fc}s_c zDHFrf8L!oAi7Gb%`WSeXv(U2Z+X`i-Xnt@JjOdH1@PNmb{Q^&dEjkKOyts z!cNy!x2cCBrFL&^w>EnpmTY~ttTrLuzza@DG!qo% zbkgFzx|F=o*GG9snCuO}P$Zm3s`yv1flAOhveSBU;D^v6h@x4K=G@mDU?#~Rx&K>_ z229a!8x07n{HjIv9B$)(^2@$G*?S+9?S5^l3d~fNSKxNO4Uj{91pj(P8>yg z47h=Rz6QG-!1{TxOq=ZAD;nG@%ZrOKOTBtaTP@>JKk2!Zx?|`}#XIaPq{Eawl(jt0 z|Fi6f&@HO+Xi(8LTdH1-gvI_LXPGH_{Pj+u&wL{axny2P(rMbAzF z{6am@nZXQP#hn|2DJP*6iyI5)gY8I@WuYGv)k!kTpAyv9=hYVRTJFa8PFNU6%^q<9 zhn)e86>&s{Bva>wW=lgRG$bP_7HEN{g*niO7PhJvkaZc1?n~potS;riCsbs?CS_Oo ziImqmRvBvTFm&M&9dnNQla~7BLc*Tal-TpyXboUxQThV-^pA6Az(QL<%JA`c0$d-Z zw0HAe59uBdg|cw3L9gqd9BR-A@qD9aGz?=3Z9%_QG`)oG6eQzt(%S(n zn7yg8WXeeHut~e-o*bT5Q2Q9zoVQjcRXorkK%s7^s@Z+tmMj>y5&NZZ!CsYNzzgL` zvXc~o6gHrR0GK0Xug#}LF%pm%XH8RmWNz?>lc4m|=z`B`AhWS5|J{m#Bfgm%)gHon ze^?-}J)U1s@LH{dF0Y^a?n|)zw9n^47QllUa)gnPuhPB`Xs&HAL^-?mq`^4|v zQHVdX&AT6g5k3|jDi_cL#0~Ow;{7TN#qUq&?_k<+xcgXYN$GMk4{vyQKoo1Tf4>a0s zkiQZ$I(h{?+e*{cVeD5nRr8-@=_&BRB^FeL!+o>8;&XtzfgIMKNd=SB}^R+hRw zW!kaxx&Jp&1Oq9GFweO8_-wrMj33k&+ovj%y-{y{Jz3J5R^1{d`6 zvHNku%p3J;AfTKw;EGrU?T_z00}GXDTh@#&$kPPRZ+U^Wzy|d=?mU70(MuQF=3QhX zO1AJ3Y_tR-b2o5qJo~+goaqK3%c+72`@~|ep!?s#6t@MJbe|GNzgfc&L%3(y;|4zC4 vSE-3K5K7r)jsPp0%`j&l?1NRMEj%fIObWr32<%e+c zL8B;aCYC`v*YHA?P$Uy2xNsz${OLlO&)JgELfA}aXSn3(UXSU&iHRxFR`pv&GB&PH zq!5^->hHU_-n|DAiBZG*>y)w^Nde*gTP}@3LV*7UG+SUdUHFNGLjS*i)|WAY-v9=% z7mGgZp3;QiVE`p?0N8@Mi4U#>pu)CP-U7ZLo&or?7wr&DSpcAFka_qa;KN+78bJ>T z{yhMzryGz8v-FW%s>pTa!y3?qzeWSpBkc6Tk}7#~_>r8n=L-M?IPp89p9JzFlWQMK z7$E=m6x*e@=*}9TNB20$MS2UEPc7mzbB+PJ-~g`^#{XvALq12k!-7Fc$%)}yMT53yPZMJ4br zwpZ$eDU|YK&;EpyvXlfWtIuwKJ`!69Eb}?j@bmwhCyGTR&N15B+$>+d{zECk0!MIE zA+M?=Yj6HhBgq_+iW%Ry%g;l)c=G6q-NOus1{9ZHqANkq^I9E4{MSKPCmMha>i{!c zEhJz)=uP48TNfa;LRiIjU(lng(Eh#Uc|W|}S@c%U>O)RD9&wH#w{KUgLX>|<`o*>U zH&0~5DJLdx2Ms54)^&Q)%H3ENk~6@3_{0Mp>>=Z|Xf7b2Oh0~Oj{95Om0=ltFSUYe zJhum6q_&2W|EFAGYmHQtN1T|1cBhlE>q;QL&OeB^|S;e(wxjl@}wwQ zKB6PK(NcdVCqN6H`WXf*H*g3ug{aP|j|6+6t;Glahu9Ct5%~raQ2wy`0ZbmGzE1){?47UhEC=#cY5PN0kuQ*!4de>SXO0ED zSPUs9?#g%+SHi?`5|{mKrr*YNSd0wFmTnJ8lpu^ zOuU)a&FFWPI^2*2y1ZGCuq;+UIvJHK3WkSWDtM7+fjt8xn;}+n72;TGetW!5yR8Vb zsHKUE_5e@|b1>`&p<@)o9gQkXx3)Q4IVy$8O95q$d)WeU*2Fp$?dPY70L?&px$#e{ z#B0Ejvecm=vc|Yq{x*S$gekbxq@-<9hXa5{QY-8TFejSsO8YFTT@H_e;wmorGyn8H zmkEQI;OQ2sIH~2Si1D$6T7G;?s+5mnA_RMAl$0_dG})I- z_2-%RO>l$8or=8kp)xncTczM&j#nHjHfJosMbR^$*kl0XR@N?{1r~y8CwDK_%EzES zk5-+DD?9FmOciL%w$@4(ZBS^r8;6n=)KNZF`%WvPPY5E<>n=ytYCLyIoCoo%*(o3wleVP>*-;?f05+ouLbglwLsr$43=2KhbT#_O^^e zs#%rA4!#uu3-TuI-S-w7K5kb)F{_%aJty%=Ie)g{3-SVbeOS^?ZmppXjyS`DJjZ`} z#V*-Kpw(tL@jEQ!dtMDw*LyRq=$oRusUiS;Z!60wM`}s+pt>TdhFurW+B4T(ORGZ8 z!+|R3CCBf^AkXa`#W&QM6j+bFFgKH(<8%>JvhcH*=9`;G;|;+w+ZpZnFi49M10J*) zP0ZC;-140X8K5&jF$VdaG?_DA2+n2FEjuMqr;(T#E^|BmU1A%cL!kslA8j8T77_-F zfaxzI3r}jY9_P0w)USR}^>4G@*HhM>kvO{*n>y7nbVGWg|EqjlylHEU))R@WZln&f z7hv`R*Vnw^7qVno5*ZF>z8nGb%MPWqY*^cL)h3yhSh|#?O8W`#A&BKssMH1KN5x-)ZXr~4VN&$np4x-BcI2@6?5E=P^A(fHX zs#Xq0`?(Q?>pM#KA2TQbEQj{ujoPvPZVI*p8SV1^9&%}L8q};T6u2s+qSpRDd3H|D z(9Sn!BRYO3lU<;C0qztMm#_%jeUq?RPR6$ZBdnI};P5Dvo-P5!262a4L+tCr4oF^F zySzvPZWK+VnPgZk6B-Imba)_z4oFRMH5os^2tmK;H@flX&K66S9@O55_)Jz+^{1TCcl`L`BHdXx)@JQl=EM<$BL*>iz(sP#IuX1#hZ~LHEabUhl}Sukod8*mSOD`xo?mQ zEpdl5x^tI>&^@8*Y-AqlCfTvGJT5qO1f7f4AlcY>ll6Rm>{Rb^2dLy=k^I!j8N=!D z%6BWCJBvL@K0oNG`?fv_|m{~}Sdoj&WUvK|s z1m9i!VXA!gY{SmbjU;&=SCFYmF;MU0re+=9M7kGzr%>AWqM{CYh!^259%lc5%}-=2 z3aI(Yz2?T!a$~ceow}b%`F$~^izC{*_h<1)q146iqx;$44);bxLt$7wVsRFGrHssv zdN406kV$+(5VO5O;GPe*?2F3>i>@E6#|0AJ!qd(A>QyT)$|p3%F})vBM`+?~{_O7`_d)0kKYo zCwG7hz);6aYpkCH>`rM%Bs-(MLi<~gMxMWb;>z7b<8wqW@WX8GAeWU$vPI07M&=$| z0X~YoYy|;3H%JQD#8%rZPrOOSXh#t$WSI}&RWEyx<=CLEA`zq*0 zNn9-zHR5Btcjdi#v^AhX`6O}%(6VCU><4D_OEm;rUWvAUMNq$wM;=uWm9X0SM^ZIV zZQ`q9;D_ygCTfT|_B|=<(4Ngl`V?e9`0|T24~N+oSjlTBcU*c!3|N*c*Pu`vVMAB2 zc={d{_hpBjE9xgqfE5d#Q_M}H<$!1_GjW`tZb40TQWjaZVMqQ~&(NYI5HSgt#S00s zJLKm9f6vS^%~zTpDH%9<7CPC9+N2s`sA0FEiH2QjImIosNZO*};%f0JA;$%6ej?I$ zOuki%V?b56d9Iliz%QO~ck{z^7*vdVe25DeT9{Tai&}uigkHic0hN1L=|6rdiYi!R zf`PNT#smq4p&1Pd$m2fba?F+~+Oc79ynlSyi5nz-h&C4thc{X=Yp&z6K#jZT=ndW* zoiYmF=tITubiNAxSSsea&L+=^2sB;&AU9V*ymdje~%izpc8F}(=ISglMJ z!KoVa6tLSwvm;NF67YbP_l{a>FM=PpOws;t19k*u6S*3cgyY}}C}=DOW(=n0=VWx) z2HkRJW(KAWZ5e}Hz|EIjbi=kP;v{u=Rd3INVRvby>>90-q|Ev>f;UUbSHb*>7hEhf z>mmE`^q33-b%dgHBHwKr(+5qDQ1d^63#MXy_=f5dmlxP>S_-xw>g#8-QOSd=2Z-1Z z%0w3Jjv`EsNPArt;JJt^!=#Z;^B<*fgJ^`nDvf{Rl6x%qezc>OwqK5G>+#K%Q-V%7qvIoIT9H zgtMF!9+}o^Mbil4QjA~WGn&GwhYhidc?&s|9Q2!Nxj`2+EcK<-1Bi`9AiHEy<*jF; zL=~m}zu1+n&T9e44R|@jJ-Jrtq&LHvOc7Dmne$niNISI>o>yqIQtxlN1?L*D|IqoH zrAYn(-WGhwQ+EMTun&1-QxB=~=f%41QBw$I;~k>rZ1{Y8_-##0KsHrZ9C8JQ!$Bt2 zy0~N9V>n`E0Y$Vc4dJ3#Ip}M6&H$VQFc44S8GO^~4p6x10_93o zKQ_?n9l$;H8Sp49ymfFw$&IN23&OME_jw*Gm#|zPC@J3bndi#(zd{H!>5f^#F2(Vt zYGbHkNZkZPh`tvQmPtz4LR07S!* zQ&X3k&sHVrwY*T;Yaxckr*W|wdec(Jj#{>jWo@LwWJE2LU|8nJOlFVT@`VpgJiL3I{Z1B%sm?L1NntkJ1_Z)6$;GDF_ZD+`ZJKYbpRK6ZB*j~EF=K$ zy1+s%ZWfoKhAtUEn0k)3!oqAy*r74dCs$Z`VB@ol7ZvBAVkVkdWy^G|#uaHNT7L1w zv%t)#MBwa5>`$aryZIBT8=L;$>f!n+4!!H2JYGpegeR_u9fC$2xd?e>R&U2$*>v1J z1HSlr0Gzl93L&yni#w8h4kCv!>I$SYo-wO9U2Mo`hmK4Cd{UwYLIn+YemMOr=OU0m zyYfAee`!FP;tV?+!Z7K2gTAsf-MLXzq@=k4;o5{%vZiKetm&lEEGK8}(->T;61VCk_b*tN z(&d&-az}{*H#-i(!tf4=h|xImQDrkfmhfGC#a`WA zD`t$lq?OvF@}U9O=$J}Cge2P8XfRx6B8fXYA^8Ky%d0_n+(7T^9?V(v1^|BiT$g3y z6fhD_BQ_34)BnQ0<~%xTni#N?EwDxgj2eij+cI!7nR&wpS@&m8-2EM) z4>Zab%}LC6sE>+xDrPDQH)a0`2!5q*+InVeA$&;E5osDk*+9AprtAzXZPO|(5wkDf z{FY=VS64Hbot>EwB*Ry;y);LMui4D0`2191ke67Ah`!weH>EF4XP zr$QwXe6*;_h$&sc$LX3r2Mn1#`K;d3dQ@xfgk`W~wb7w`N zcLZ%a7Jk+Z+rbj|sZIL)ItzLTrpSD6K0jtCgM+nQV3-C40U`&5R5SY)EV!G1N8vNTkNFj;ko;U)e^PW9nx4d;1o6 zK627)Rw1}OKar=^#H;xTv9OS+QWm-Fyh*M3pvOtsOi@uPUWF5I`^4~nXGI#9C@aSv zSmUQLq(;uE_X$YOmB3D zv#!z$AD*Ht5pB*?bepF9D=<+?-cx0hT0Bia$fRwP%(QMlA&FR6-h34a&Gh)TvXT4+&ap}?NQiNd!t;mYWGmwJN0s!>fbpjU@ofsWcOT>6?mQsn@AcB+(bk;OjmXVau+rwOwg`~dvIGpddX zU4t}G%rRXUm7;a;9M9LgWoK@ZY;)(XTD`;}FuRM9!SJ)4z#*Fff6R&8Ba@3*++&8! zo^W(;HY(T-boV!ye-}lkOe-w9fl3y&GU|@ZDa9w678>(LF)xSXzmss$jq$xrs(_17 zU1ouTa{T>3s_+}RtoZc8G!%6~!9&sNlc!ji`|b2J{7hI&_5ZeAUBY+X!Gi6liJWNk zNm1^Fd*=fx39?OR2OJp2-EJ}=oO!v-xa3MtbW7;NULrdKZP?#Inuc0}N5L!@o9e%I z5jn1*TdjKiWJ&Wmb?yu<9mO(?ZYd!kPmn)$3+uk#5nFq&oVepXvxnNj%iV* z>n}f-&le_X(d8EtW2%epw7=Nl>LHJ}@7e?P(5kT()^;!&;8*j^@I6%z(8gCL!V2-s!UC zQgg#oFWJlI&diduPCbp;jdN+F2o^kepUEbP9$d@n>7GWXS0@&JLf`wxGMvsPL< z_=ARcp$apGr1JCj-1*z!XhY$%|F^j->XBdPw>1c79w+{uo0;sWw$ zM@AiB(oVY~;-p5OO5U!cKQaXrYHNl--PJ=}UWX&aiO&>*X7~IkXulYtCIRy>(S!du zboG8srn=Oj)t=X|o z(hV{@YCf@hca7slhaLJ-wLYKX_*+IkcacbSnb3ecgh0w>aza^zG-Mc=sJXaHb@e`~ zyq-_31SSb~L=J0hVl{455V4Sjk;eZAwahc5R>g}?J*%^do*Z;rk|Hf+H}8_$KQjP? zIJQKZr&Z{;er3ZA?p_J687Aqw`@^EvoLnDDsgP#|@9s{OE(FeIP_-gc7&6glMB{k- zJC=&YAx$Ar&UuQZ{s-Qd-=zvro!M7YqSB-K55?SEbJ}-=wHNW>8$+2uX$eOls<(e? zHe#Z~3*2%z&r0~j%Wp7@o0^ppB$)p$QU`UD;Y%ZDq%4~}XQ2(7uuSB?@##{1j2CAY z8Ek}*MRhlpS)C>GS<-{l$kk+Cr`>c_ z@Vlw;OSk9#sdEa-f%|9Ip5K3uiVkhMp${9(%mNPyWOvg1ch`3JbMUnSZFsC-_3(cG zOEYK`%KA=a;thwNIx)yH$R5D(PRHogy7UWJs7Is-3i z)_B3usV046-9OFx_;@bN7WqC|qeJ5qBG~X#EB^^NLE}j!sH{pRrs0hI@18Sju|fF< zm^_rx70lEbAp=?k&v09|IS?0=_{Z( zDq1zP@&BIv0XvPQ%tTi@HQuvDqEVOjH+K4>7A{(F=8J@z+5&Jr1*w|ISXWHrZX5737-SXCSIj9Che? zlMXb6z*~@4LYk><<%4ZLQ|4-nZzN`PQ|~zc$9HUInohkf=n_Ih2E4f`QyY#r5{p<=^4!!odR62x9?pI))dVmlm+){Vf>meF z-~Y=32EFUDDEvJyJBikK?KM2|hH6ziG@VJMpY_>}@&EUzv8$GW=Np+9P=JWZ{kuJCDe&_wmUw8{o9tRNT=c1 zJ7L0U{%*2R(W3o=S|eTL9Y&JJXNVlK5 z@)y>Is}g0*Y!raxXun^cuX_MzjlYEKADq$(bl(su!fTmIRCvb#4lg7mu# z{yW}@n71qeC_m`r>)!sCPZ{0whuv8HFYC$r-x}QDxXbmmn_R0lSXJ*RhTeybn`(~^ zS#EOMG-v8uPw+HRH&G093hI!iXfq_0kLu8SU>UJU$`UaW;wGnyS>oJ2%%o%=`Y6z` znIzpyqgduW3`oa3TalKsyYsPSbhczU#C>k8OPxf4P+~ z0_ol<1ty)Z7)VhHnDjSFSDqqCpZO1MF|K|+M*@!e zDTjd}I{Cmt*?OpT+p(F%@_(y-M!WF54|=dxBa3;|QY5HYgi_MKWx?(|C^&jg&K1~s z392TUZ?u=_&@2J`CGE-;0>&}N2!MYy-WD$K&-jPfyVFSeT*e*bv{Ls%_1^aJ9>Z$| z;i#zPK3iyA_k_%ArZ!GOaKs7K;se$)UHhw-90=sMQu>`)fSyG;l%?h4Dnm(1>Lm7~ zb;|qY2{C{Jz2-dKE*0j@0#9cH2`0uwEX9tl*5*n-sU6V9`B_y6utE zSmp(srw$6$|;fNsaMT@w4Rz9p--Kwc0=PjE}Mhv(OGet(V!rUOuRW% z;VUm&TBt0ePqZWxF?+l&Fe>`B#9EKJJdE$QOI~70ra450G$Mha&XG85i%nzzlwK-; zC10;$wByEQ;Gau{P{+OcuM|XGV~*CNQN(wXy=8L4|74wX#52f%Y9t0Xh~aV>)TBNX z*xW&NX7QMWIq&dt9SI11{O-C=an<4wpa{e-+S1#-AO+)CUP<>W32<8FwWW+%42GPe zCy&<)c{9*JE%S)Pbs(|bEFyw}@#_6ZqW=>gOYFH|M((3cIJUsy&?`t@MIk7ft0;I1 zv4m@gXSc73h`Ef51&Mk=X&DPqN;258g{exRos;4MWY3N+#-9tp$h@=>fHw;E}dp>NMl)p3aY#0v~`X zIlksj;o_c5X)`!Mosx;SyyF~iLe?scQSfK>PzQkAO>NyirG6csmZ-}uCh*{C@X~)O zGcmTCLQoF$;L}D)X^>6n`gliTMFM#2Ns_9Vr69z(WKO)r+(%{xcEVm1WAGN*tyUrY zmo1f)GDg9uG8T~MM~Kg*-aH8{Yx&9sU&bblV6xFh6x@Dqp71l*f;`fy)2`pmch^^= zPhu?emN8}6jr01~1$0B>qC*cCl^iwFpoEO~4WWBP8q(s~8aulf2*>qQ9C{$y465nk zOw!?nr)NpNB_tDxo`K1(=Xd+PKATxr59V~B{l=sQBBxvw-fe$2!|m4okMYZnp0zVu zHM*Oo^9^70aIr>B;pn;xDW!)>om)kYSlZ1LJc#i1!R<> zU|BSh{D_mH#!I?gl#7Ao&)avvx3xB`hAv{t8)}^x>|-xL85_r9bw|ad{JhLLARQ*x z=1p(0_;L!d-u}T+9L|py(BdnGTghvwC@XZoE>p-k3FZ!}K{l{ z{Y0*LSMekB6KSgMjk)pW!ywa`AfO)O6SuM4@j8e<;EZzoi2881&8J8mjgF9(UhuNg zB!2b>%Fy_n{?aE}xm9Z!6TiU0r^-W~Z+NrIyr?6S3!4WfF6L zbDCr0LSc$ZV?}gJQVy|t6{Mz(YAno?C93!LAfgE9Tw0QH?y8>Uq#rnM)(N(K^Q3-e zo`B+C#d8-nqi*QPin7nU(!Ju&rPrz^>SkACI&#B>4-U^x6k^|lNdCpj8fC}02alzG zf9%MgvumhwxKyDaURi@z7J8#{q>K(>)*WHJ5%G{KW0;(ui7Xu>qNxp-)eG6R9>HiZ zUbZ1cL1GVc6p;Vume`@k02xN6xqjT*HgZjfe9sk)4#!Z%AciQlNDRY5V<>%!eBT4JJJIoea#{hV z>h=dT=~mj*v4enT|Kemn>?v~T@$%X~3^1LZyyGgZo^PNzX zGG*>Y$9(@FZLP|LCs5XN_ZJ2>Z?=mXC5X|hWdI@NC=|r=eoV5h=*u=wl>1&zC4xm9 zXewHi7&2=4YjKb(2JLM1hRG9Q>&j&F$ju*mh4?xFVlahJ)%6pqxMlY8-;~EUg>Z`e z-6(&>6Fqh7!p|*6uTFeYQIHv~88$ztQW*OKuP6`5?x><=`u00Dr-~+jDk04KU#z@; zwk@KqddpbEt1c2WGZoB3nq{AV&8pd0`yjL$4kcmPZTg4^gWqKf_}7n0I%rG2e|-?q3TeNu zt}rAOqk!E?9^LO za%_rce_Yqb^{qerX)JwqS<3{q7WI4i6y2x8^8rmf9x%Uu;F!AslzyFvpX;0#C{}Eb zeFUGtQI`RJ7KXw%d_BE0YCIJBz~D%1dMw{#@>~J=JH_C&#ny%u$Km*3%*9p_J!sI#szz zqk-ZQCibe&AS-wbEYLS!gJi50yf*}@(n<5q7~5$w^k1cuCKG!mAp_uG4b2vk=2W`4 zkBcZ!Bx*#$xeLSbE=7C>-9!rod0T5j8F-a0`8{lrYx`9q4~pRYB?v7~1z2p3+#ztXte9^0(~PETVD1Dp^> z_K?Wf@OH1faJtU-WQ-vn*E-3<#}_H<>|c4ZyC*s}+=6b}Ay4mhFx&bnv~5n!5L+_3 zYvysdWt)A!-Uqp1gAS;8R>q=fMH4t8JM_NredJy zV9>YSm7=AmlxA2v;q)XwXg<-mV78iauD+zrrma zq_t|WElNV=M0-p^nGr|4U2w40d_%kRn9{<0#&ZdQ*q9${5P8H95kW(Zc=PznT>ub` zR77I#FWJuSqml-zn0Penik5Lg0W80yl;p7;KWPcM66DkXP0}h?LyDU5)6Rkv6>86? zhCqrHIaw?mF6rl5^OPBh9pCw$z%;TgS^m%b9+r;G_IJb~-DN7`zw4bxh@@o&(TS9# z;(qUZ$d!>Pati;eVe@85Ru^7P5NPQNu=Fa&$tX|Yq%}v04&@Af3v?u){6_|-raUo9 z{X37FBd`P&0;^>bMKmU=gMQi{^+yKe-6mkMcR_2*<%#7aX8k!qEH=25{9H1hM8w<5ZW!H^1#Sg~?tOD9Z66ielMYPbQ=Ov&jpVXOk{ z{b5+MNUdTOY>VGBD=!KEm3^id!&8ZybQlU0kEs`x}=hmx)r;5X!q1 z>%z%e_#Rf5RDv2o9Fu^++=FjhWj$s@w5oVkP@cuHsH;_7toT*&5ECEcc%NR^`yzGZ zG?I`Ygg_rexMGjS?*ED=0uE&Y;-+loCwS6%z|1o% z`o7*evT^FL3_l8v-;!*myf=lIFi4p2*Ac zHi*)5R|Ifxg%W{+8Kx>+Ae5s;J!`2`3US7Ds|Wl7!~kkjX|?v$9ng^=vNoo7mM;<} znDqv$G)_T?3Xn}dSmHR*t*cdDDs z;`AVk1 zOt9R%cU^A!tdjk@g;u(a$aX+?W^A-&Xc#mz5+AR2&nx*%dw%VN;0MByD;4xIT0ghV zrVR4U10yIR;13%M1L;&ucdsL7MW4D9WUDG^wqV2(^LTP{5=7hgDl8E4D`CIlK?1K{ zTDt-1^20VY#dFQ>{sYG1nE{P2Cq#Z6wS4wW32RjIc2PKrLN9HODI)(}TSkF$y$H6u zmuW(-H_>3RdqXouyo8j-8+Yc_4p;}zQ>ok85;f7Pa zbjWTwzBFM;S=r86zg&y=y(nsqa4-odZgXOg>D$FaQmN58?yG=#mJ8&L2o#5C_ zZ_2b$r~>}|3n+P8VWlkg-@|(m@6x4-%>N(@*^Gfw&XW{ z)ZEU9aXu%r^=6|M_t(^uIs%H+w_H{xzm2<_>x!_y|CHKcJWEo5nRO$*kWGNwHibxi zl6m&gk0Acwmz!hEMlx57wxa~B-G28l9oE;uFozeVJ-}-QyDHv)u-uuGlkKagzXDp< zw^LeCg6pI;TV#hc|ClZM?e$5Fuj3MVzbYaEr^E(YKda(&^C40g)qVNpB3>?0E+u~k z_}1D^)iZ@B(fWdcLlkW@Q}>OKBzAbJ5FKku>r$HW-fq5Vb|~-DSZM}B*;p_mkQ&{( zY$3PglNH2={5@JH!G!EL&7 z%dNZ!T|Nbdd!Thw-@Sj9%0MHdw<7JNhuxo9!crX`Xf+W3m}^p(-|61p!@vD?< ziW*4GjL-ZGb}uL#zlgCD$FV*SH}#Cr$XyJRX8j0piCqv*N}-3Kkl5wN(A;!WD~<&K zl)tXb@1yqIJ>ZH907@E3BQRP{s9?XQCEi`S^zL>wT^ct@rgyz@#~FK5GuTbQjO0_C z9#@=Pt8G1_QHZWM{y7~;2p0_Uym@~mTmvqVTK>>Edc1OOfYb5ZtB?OQ!2&w6)1%09 zS&NR4x{q9SJ!`(o8ertg_7v3${)-FMH;|5CIPSy!CV#CnfFo9-R2k4whrOoB;?|*MPo27SZ=|Kx zh^q@EmZ_g$HiuIv!piG!9H;Od)x4yqd`@OC#?~I|3fdHI#mJ@ufo1G@_9b}EmY=lL|Lw%N(BDq zuvuhq6!p(}G^pMs7xDI6zuXcksoU8#IuWp#%(Pohlh9i3B&}H)-#%>EAJ+ZwBYJ z^Gg0H%z$52IEdKr;p@G?@vXbr_?ie`oI)&Zt6o&Q8G_#on>($hz=ok;&v5f1Z&2_+ zn}R(xi*v@pl@^k~{QRw@-OS}a?r@=$KoN(9*&9Fwe=k+U=dgMI=eW-0H$1e4$m0jK zSwWMXJGvLZbI8u;Q(?}=$he_+fo~GpKSP6T)fKG;K`1Hsgn=T`nD`q%St-pit5i@K zN&khz1pQ@3viatV-9BJ6(ZB0`+rn?Hv*<(u@<;rX z5hsMoi&gC9;`p374QsePSp@)XZmU&IJc4DC<>q zc51@;gY-N94uKy(Ta8LMry|L+aMgV1lYG@91_wM5$h#DQ&iwIM=)XWAUx#Vnc1*3_auhF@pwe~P*f9m`88Y1+!@B}zP|2Yj1a zDxXNgk%4Bp_>YM>d`+o7nskAbJdF~$r`h&NdREReDW`RHNCau+mm^N;q~$8KG`zT@ zsPykHFRun3*hFRXJgY+z85OaTh49`!|N0;j9y{<>^od1X-Z>2inidf!>Gk(MM?&v)BH`N~=S&rRSz~y z<5n`Q&?dT=9qB!e(fX-mR+Lb+sqE1a?zb~2a6PFKm;S5(>({yoNIkJ+($33H4CCU< zE0k3jYL3A~{C$cD1?7vQl~C@At|-5Pn7AmF?lLY0hYzb0Pb^|oes7q00QUZSfBo>M zdbG{MlnJJ?v6I{=9ErQ3Jr)M$c-_%zn2Fg>LHtWgj zEy>@j z4Kn|-$h2U2997I*JC%{B(4ar_h{8I~(us#Oa(5N_b=mCKi!igx@gZSn!Vh^%N-+P^ zMJPjdI`?U8(7eb$pYM%y8>U>|9YPNJEe57(cS{ZC)J5S5b(labf<-9obX%SK7O2$o z&oZyd-F6{l5E$YH>e=cTh^bdC9L)&S`OyEj5;u2<7LkQ0_A=nK(AKCDVXiYp{CmHh zbbrJ~q18mw0Hal2)qKSmw%PGGl$fN*$3lPU|1fP8(@DBp4%b_SmzPC`0{dc$&|p9I z6WA|(CkkOdK3vU4Dw=}D#*cpf*NK^t`Cg+D8~6rr{&c*e=L!W} zs8_6)o^fW{bj*m`uk;Y^Z`{0OmnDJp2~#F6mis4^>dKWMD3s zfp{@P2oTpv_4y9N;iY6mQ~)D&QI(%L)UvtIQr}MgGjFCQYCR$}pHhxrnux9dUHOEd z65?MKiv6f;Ho*Y8Ey#M+fdW=;2S81k6HDkty^GQw6-`y~GiNl%k{QlB2ocyNhn6XP zG>ZUGO1pr1>g1|)?&`FhM5A=-#cDI%)W|+3`G3@}KO;+>J9mZ7^R=85!E8-oCU=z( zx95E%icxZq@fNr$N!>BN1L8n_3=scog$HEi_U## ztV{HE0XEHFYk#&=p2wL@4z=EHSq?4oZFzVBJjAD_YRrtf#99!Uwu@nwL$ zW6lDiMMo}+T93ROe(_p^T#WzzdIRnh1WRf)=&n2*S14vx->VL@ogopLe`^&~^FsS?xTXUl12bYrlBxO%c6Z9Ye?+-(K-b zcJq1fD4!u2-O@W~_V31~s;Kz@Bi_vM2dp*VN&Yi%apJ+yS6b&wUX}C^UEysqkEG`P zeo9p5mGd1dR0<9$H7_}|SahFKx|yg!BmgzTwi7P=&ef*IZ_5WSDaZIC{>|9SAZ|`q z+TTV#L7n_yLGG1drC^)zY4*8XLg7_omjV%MnkH9nczwi=`W;3Ha4aV5Y7e<0a?h4D z90Dlsxq;+QFK#sbYSe*;4ja1SsEibQlpPR%QHW3LGWk%qWCNm$I3Z#@C13+1dtTH zmx750K2?=aPR7lh4c0Ho0b|G)IwxFkZJa&?r0TRS_^7jkH>N3-6{ z`n+WKXB^srSc5qnvvs9-g{RTD0md?dB_2 z(RqF>${ybnHThQF{COnijv~9Xq$v+ys8{E|RiHK}jaC0X3R*gE*cx@XRza7_`nku) zLBqM62OO#~H0T{f2?b!#f48rPu;^WCW3_w2Tq;!PwVpH1@fdyXqt*~|a5Tvk$e zuZ5g3Bf3=@Bjz{{#4fD+nHUq8vvPZRoh%?5+nsyfl>rdzHcS_A;B=tO7cNA|GbjH`Bp0dB4=8mbN=gB7$ep@I*OQw`iL~FO5EEU{K=!GU;d!^ zfGL>~fPG$QwnLA3x>NpDGHvF4v#;BsF7QwM#3I(t{biN^NZv3JPSkEH7j~uP^4a*O zgM-G$EG)$_i3O-o*yct3793l?;9+>iH&;T<2OI8mJ6@U;#&lCu8~FA710Xm9@IjlJ z|EI6F42Y`x-i8MdM!K7!yFri`DQS>yknWQ1cIZwiX;7rQB&Ct=knWO@&i8Qtf6v#K zZ@@V_)?U4?wa+Z-F;SLkUUt0*QRsLT^C>2Ca1xY&>WbKh&1d7)qSE~5ZA0E_7KYPP zop*{Kan1D%M9m0)Fj9eaQjXr3#*%Gv$N|Pl6R7Y%u@sR6h+U-%g4>1d`f|q0bV!eu z8*!iQKK6U>W9df!<=6>Zq!1)Irdhh#Wzm5+xZNq$8Hf}f-|7GaQ zAACqo^sMRIja`4Y@%+%^-(qnEIO8to7=_;=Fhkf>3b77midhevRktZ^6aCESy@Dix z6%dfUupm4liqY9G$$^1WQEx#X;s8D^z7Ls#TJzxfrij5W&~Xir2S}j6s!pli0%3ix z*yqecsY8_KuK*k|@jic*1^2(lfxc6Qj$`q4BZ|xwBKk}J7R5iYYI6$~&u^py5Hb1q z7RFKmH%7#c6Unu~ccGtb0!Yrdznmt3xV6vZqoJi0!b!_FMOW^Yf|5*Q7!fp%^rcw=)8D8O}~~WVEde7`0Z$OZ4E?0VaX4LZYb739oinY8q+&Vi#C%rkwNQQOEQ1dZ&MJx=QbFwrr3 z!n^z?%H7^XrTXE?oF@VR5tDKZ(S{>as|R!^kGZae1^hU2I_fO0!w$>qC+(l^i0t~p zW6tR;Y{vJiE=r@VnRW$OBSz@<6$P&)S>C?C+<`g2>*u4yf`FevSu|DV={y2fr+$&g-`jptDzOJ> zWS7$F4he^97a%B0Tn&!i96C8WOH_QU@H`JL&m%-e&w6J~pxbC4y=AszlaSSffaR#V zc!OKQ_dKvAknQ^GMsat{(P-18N5WZPZ+PUjZ-=VyAXq5IMnlc~o%cXwn|VQFa5o9y z;c@jW0!)`U8biYSOO@u$a~aSpu(tj~+?Q;L&ZCsjaR}%$;1#^4UC$rz1&Jd@?W*u4H}MT@VBRP zJ=KnMdHJ%kfu*H3o3(FQUnC2FAs*Byx$n8AlXk1993_a2WHthkLoV*bZI4AlBFivl zy@7gy-^Ht70zM%S%~O}bcCN;K<$A~OxU|a5r(UC`7Jkbox>))a7Y0frrkXga*)`BG z{k>UOV`FVDpOjS1AgH%n&iG(!^>jJhI6T%k@$+Y^w%kgcew(6V>U*NZ%BFo~2}}K} z)kZ!6MtUk@8Ul(g=ROmM;8+EcwPO+ugGYKNcr)a3QTD)k6Ki0CFMmP9?7#%6skn)W zlkxGLJ8hYKwo$pct$Wi&h_+o#V>y-H{(N>Tb_K=s_pO~>a8$j_>F-7a!jwL%Ix8m_ zQ6yKNrgSQmDz3!|9aUx(6d?3r9wj}B^f91xfPFq9Yv&)ChSNbo3IN2?)03YI3VL5( z!W$wKRM3x6`%!8`TasPWMIdIVHwO?;8kv!TN~!dmSQP^!_A?nx=r8lb^mk#eUPm~Aausuz zrA1yF%BR4DzYUsvsllP_3+O|#=Dm*i`>YYCxWQ3{ATTg#P9e@Z0vC_IivAK4J=|8i zP0{xPz@TYf@?0z!d-nEz0;aSx?30NIP zHxmGv6BAhsQI2~V=KZqJqa+9|^}yVmWHDin_wtz9PQLhe3;uv0>jsSkf+!jlF%O-7 zTd_R=JWiMO_!*_(^83F8zA_Ydc6=>|2p<2ztjgg1posD3+KuB>QW`=?5-WILUe=Zl zylK@HOUuw}bknBBr>%k?QT6xH>;qr#Fvs#J}M@g^r4MadY?#eWQ&~ig$Oq{&KEu5l+TqbA~L2 zvDolnDeJ6UIzg)8z@ucA^W#v_q-!=RTp@Y(nwmwW+NpTHnIqKQo8tL!1^bh#9H(A2 znS{j?koIY$2EesI^JMy@eWK07;IJVJkgdAFIK6T=Va9j59g_UfM=^Z^ut>^~SYzRz zo)1{^RgqiWvTb6Tn@ZyX5qzBc(K{4lQ;B{-mLyjr2)#Mrm~k(dt~kTV)^xK~yW zS`8cWhS zTjoPIhg9f)dIbZasTk?5pdZ%hB{1ZoaN=?sz~8g1X{D`{0J&Hp-MuDpT^n|WS#nh~ zu2#okK`ta4F*GS4W`lHD+eR2*qcZ?R+TbAld$!y#vnXj{=eu~A$s7W(!zY8z>0KEVV!FWZI$gE{J~R z@#3bYraoON)5-t4y|eS0L+QmVnWpJsa7P`P%6#JJ{4M=(?|5>KjcxgZ0b!pjm8>xE z=uLkoKnTP#0)#!f?a*0v@B&Z)3D3X~ol-O~p+stb?hN90yK{}*eQbB6%4oYL&)|EL zHRk&C;1x~Gr&x1@3sfm6-0b5h{Pn`q_!EqyD<@O`CO+jlyT%JIO6MP`4Qz#0QWctN z1#0c&h}}j;`YW25V1 zLSgXDvs{t9$^C}m`pF^edeuG{N&jx$pZ{NU!h<3hv{#l-R_I-)quM=sEOKa_OAF`uio&_Nf~k>XhkwYoUszFyYe!%H zQ2UOBkB?}$I)|Gevo+pywps1IEGWAP81~+13In15p&n$`EN+afFn_igWJUP3yCjb6fs!LJ?y9xeJ~pRXKWrA#c>zXpJ$lYh@p+n4FuY7W z#RI;91Q2LCh$vAYg4r+nZ4;MNSNiD+Hh%&V3W~UG7Oi}T94%5q+)YD$Du6T@d}Uz; z0c?_wqkct0Vset;bfHBC=%&&DMD_J;WJ>RH=?1m_r>_e!)5)~_0;GIIW{B~L87?lK zbSl(>KzMP#g(emaWWp^MrNI*^fu9vS4FJ2A?7f_2GmN6GbT!lMq$(wvhh$?>N^rg-UrB+~Vf8R1Vx2BnO#g zn#cbDB1YQ~Fdhg;#ATCQ{LkZfF-SaYG*@nWvdMA3l^H;7h2v@qy1f&`B>wbCK<2vy z!ZnLDpYdwsiOP5VQNM(kL1CRAbLZk>!m^5Z*R}KScHeBFm!hq{LyXSG&3x_IEN6?& zgx~BO|Eh3ExNlq&L+-=ShYdG9rlI*m()aAJ#( zju#P?U{u;fm5|5&>WdAqjtstH+fM+lxN>fY_sQFx^^QQ$Qft~qXnIe;BwFMZaWUmV z!yX%v0+)nPJFFw%_H~vt3Fa7GGbrIK-IS97fcqoiSO>2dBcA+dBTG(%kB@8}9S!^r zUSssJr|IHUDE1_WA-1)Ue$;5>E&j;E#^-@iRI)o;#e=UwOK|p0Elz5Bs zeE(L#`oC&eU2-9zbG-Hf1B)3=lTk!uliPl96Dl{iJNMviXE2JaLfPn+Lk8O3+P86o&3FoS3(XX1C8wX&&=I#O zc>()i#R1;#+-r_H*1h7As6g;kJBsKM6T9&^F?a$Uk~E6cgBE0IjC|zB$x^+7gj* zC!QKKel37StF-#s2d4z!YAHUl++{qL2H>2-lUx#EW~p5zO*2%BesZwCg3m1@bN#T8 z5Fyn-cA@ff_QvoUt!eFZT%lLWhSW~U3HwC-NiaoY4(KAD_%2un zmDA-yD{@s2PC$lx6MWgVtG~E@)h#{muDuxS(t9zyN6DnvDZ)uX(nt}lAn$L|@^>p% zQVIep#*?Ul&6MFVBc(gXLsQI1Y}Z~Dtlobcbpq}Jz{ zsJ*Pr(B8>Dy*NlS$p^?yX9esHBxsR|evgHOn0!h|NMMfsOIQ0m{KxLeMpQ{Y8J5QQ zmG2d*v|ofE{t!yQv*p1n)|Dpo9HlI};Wce4#lYc>q5-jTVX~mwu!gl!jWc|%O2}&D z4DQc7<3_GiRMxa(feB>Mz|c|CPdlWbzRY;J6vI4#vZB;J{2A|@&r=l_dueTA9Bs_TMu zN=xq|KCfZQkedqgzdiT+C`2;|(yb>mqqqB?GLjLbuTf8@62-~>tDSZ?|4I) zHY=s$VY+V-|13}V+*rwuB~pVE;>Vvy{sgT<$=RIgjC1_ZJb*b4$2mj)fB~9D=CPfC52!S(EXFN@7ABKmBRKU%H~eahf;;h$o{SZ}_*>(|OgEp{lIsonIi3q0d#ho&zEw*K=92 z`2OME4Kx7{Ptt}5F3AWzozG+vcKu;MQH<#NXz)gy3hamnT1dCqJkyfsFkN8k+ zM{F}&oY%?8Ew1p>?Ko1vWj9jrId1#+87=jDXW8A{PRfUOZtT8(kHMR}gSBUa-~H$W zf>xij+03}&i2h(w1x@~1j;7MWpspD^p?L}eTI(Wy2I6f{BQ}#kLiU&YZl|g*Diw$X z-2sCTfkEa2=LF9r8(}p|V+od}7L7eNh(bs0ljVN$#;C}m{&P6;HmAJ-N9F?(xzvO| zq6G#fUEi}upTZ|x003gh3@%qc@1v$Nc*JI7s63J%8$~{dKI*#>?{Xf0qYVMAcXfyD z{i$bBB!eOuhG@c5V3N=-!bwO=n_gz{CT6QuzeluNY{F(5{3N3|%1Wo-@wBAf;m#oF zWl-+d@O6*%UAmfm|(1{#5;?&&|IRwvqv{eEAs^VzYscmH z@hsKtGsH}QHHh&2is4Cw4S1k-POq zM60R7pbb?lqAg0U3E@g3N}yXO93z7dJ!X(VDlki+gF3R~sUVYxem=p)O923&l}@hXOsX7-e`S3o>OJe56k?uMY3XEoceUTi zwKtd{jz^5r>sA|(k&;HW11|G+iAI`$X{hpBUFMk*O^seSAdmRWI`bg{m$JV=I)dY? zC<3wbIMA-McXitcfQY{2Z_bHtQK}{tyFDv89UX2TK`N7mk2^Oino<`uZ9Iz zz^E#bfpYhKF5ckTH&f>?)fO#OPw~-z%q9Czri+EgtI<~IiEq)XrG9dYc`@~A`}-Cm z{Y`VHI*8fyRh|oB7G0bMbkB=H6DPz<`)!$&QW{mWnEX*VZ`p^ zL!5qeg_j$Q(1GIPsmeoAqNNT(3#p#9BuV)M1^nYJO6VSR{Wp|GaNx`32EMDCrKplP zUZi_%Ra8m%J9xo?QEXHpb4Ye>9XbdcQt$ea?20?2ia9<;VohV>qr@V{=S13+D8ON3 zsU*(JlgpojxgF$MC((OeEm)?E8UzIey+(W8*(;ywcr$=~wEUA0>hZU=f;d{|E7U_V zLfdAw0+LU_!LIpgxCXF#$CMb4PH1j6RuwJfQIkb}Sn4Z^jz8nHw>Sugc2cVRj*LSg zg-JzQ!4Z;@Z(^%p(Tl>6=Sz6NuZdMH`t)lW85 zm%J`^k5>eaS?ZWl);(M^4PA0t_6)rss+0MJnBq|Zu6wlRXIjLIKS{szFsxlP|MO>QN6*g0KU>lzx{ILZYXgY^|hr5a)&JX?<{H;#!{D}TbC z1wT!eq317(?GuX{1^#%%8L5Kt)QC^#23aM|>r237q5>D(-y{Sd?Y^jzyFw~~PVcL6a<^HHl3vc-WTynt~|NyY?9W)NK$$bwUr+dal; zZ8W#4hFK9};cZ3zPDK?INa4^T*Nyx9ueJts@E3p0q2zd@MB50wuqb@x82KWf`>U7e z!_2>c`z@BlJ{XfNA19-*jo>)-Eq#r@vX5Ks`HD1zp?;jZkq=9LGj-lRFa}o4X^*Cn z#T&HJyu{0{*e(HprkIK&mZ)VldV|Lwot zAh!FILYDGZKeC}ez>v-_=+ke68e!gaJ@iCFJ1bPxH>Kl>xhXRfV)u!&qy`TK7QVD? zH%q^OMv$+JAS`_k@9^#-;ruW0XEu(Dl;YWoPJZ+RD7>;}ul%$s+ocYh85hLrnmQI6 z*nIsQj$9HFvLkO%x9*x(Jbo%9rG4O1z-)jq{_&WZ%RF8GI#zWuj@_0zVRAp;tqR=} zo%Akys*4-_F}NgrWdscmNkhv*znQuY)+RgkT= zrVJ1k-VHf@_9TS=>vJM9J23Y!%$#Cl%E!qvJjw zxX`0q7Ojf4C|=tOw6?x^1AXkh6RnF(ax-wc*}WZMQS?X;9&~Rs1HIb4-PN~?ceuvy zsLMV6dLt4(H<5{iXX;R%VMMGEVwT)*BNA9GBwtl6)Pv!S4d|KBV@jGd`}=v=G37~5 z3Sy@Qrx{SVlY3r~gKNcca)A!?+EMrr)xa)HivA-`D=GoVJ{l|Gy(yVf?H6>?++N%` zYl^i{_jsH84=8$jHVtt?{#e(M&cUxQ4kzJi`!VN|*KO(RaOWF86`6oXqN68l!S*gD z1zu9{1fb(+{9BZk(N|{kEk2n3f{s||Hu4v|j&Goh!cMg+OW%tZg*9tcd6ZHsAha;m zrGDh7jv=-#d@l1FQFCxft$V!49ELNdHfT%P1N0?QRLX)t_lhF+(&hVLL}2E;82!9( z@61(oMovg?wSqSJx5+#W7uH9!nkj++z0iw;NV+q_jjePS@6h`wDRwrUS04!pKwf>} zWS;}{Zg)MnZc(!LgbHiOk4*rn# znZ#o?BFt9iLcm=GAasGBnGO?c>}Ab_nB>H52tk^V9Y}7XOXTugLAF4UQqdtVZ&8eP zMX&(&AW6g~34SztLL;WB0`2W;O%(8ui;|XpO8k-#L2!c6+voLWOQN&)h>|bjDuGT` zn@lhI=#|x(A@>>V^NU8MyvXx!R&iNSpl$!63A z=9D4D+@+g1mB$L`pCOEMPJk<&Hcm7bF{p#Sl0(9ZD`!m|?0RB=MY_jF44MR-D|Yf4 z!BvH-C-A7_P4%jcv$?M{qDF|;w!^B8|GLttX}?jdfel>cAs8YYIl_Sby2FoLN`bT5 z9kHkKO}YGxR!LV~xu90sIam?_XDKUtxu6LjSOM%Khyc_tZeDdbc`d_}+g$z0l}p)G zd2wmMi%n3phdxiC%nsKOj>g2(x zu^8N3I(AKaODe>o0@zHcba&wt_~m*`(X4YB&p0Q+h@H1z8@x7B*d3IOzn+FCg5;*j&Ii0V#gj=J!!UQLAB; z55&q66vn_d(deVB*NrDg&Gw)aO+S9Ob)2G2x5u4!qC3N6|7ir)QgX@Qu%XRpr z)?;@6A&uAY>F(L|Cn4Jtvn%IAKH#n7!z@}NAUsW$gsi%khAhXF_;+zxz8cy&4R=!6 zuTcYSO$IOoea;evp?f56q41Fe)V4vvYu`SX50)tCaali6H~3ww`?)JiMAt-B$A6c& zIrVf}8?^$C(2a`>BH=z>p7MF3=}G*~QtT>zB$e;2(;LB<^ulNF6?4EU+aBcxQ9-zD z&zwsU13hs>sRIdnl%x;<5|8m1gO^#M@e;W+f$M2}8$!XY(?h2cPl8@3-SbymsFhW) zyV$H~v_)CL*fUnpBEXA&Rt%@Pz?R-i{8aiH8Eg+dGw7e2$W>Ihxs}t0&kT4#blKRb z{?s2gFff#u)iLDGS9Wa5EBpRW>K=BG(wA~oR>2zBrytskBb|sxxm<5{*MBSMLHw4a zHdYs3;U4Es=J!DD8;7Ef{!UV>uw`Y}OZ2YR(l3u0SAm+qfE>iRoE$cH0%S?nDni-j zvNtkpy*x*iD-0ESxrCUX3R@lrC!y}ygT^H+jNU69v0m;${$0K1^y#gw+4h#vLE`q% zDt1a@yV$F*R^Z3g{Woc31b@eU7RO~Cyc)PE;qh!14L+78NCkZ>A2pbuwJ93-=x(hI z`h&`=^I;J~wK?7wv5j7#f1oPF^D4pH>U_St*llc?k&q}*UQ5;S=0@b^ao(xy$s#i` z*bF}VD=oYubUt?pKgd7GE8+Vs!4<`Yer`Y=kwa-0HrCu+vR_DT@b@CX~ANaf|8qpAH78@ zDAz82ygA(=J+8RdFOo|cKO5nj$n*1QohctVPsImknq$(YcNRjUEmLt=OrcGsFj3egj*LTV6`gO;O)L3n1$StA4d-!lO7>jv)Ws7DR za5rGlUo&o=iM1HfI-oz9YWd_tUdGM*NgvO8bq}_@JW&8Yj>!xhp*lHQ1)H3#7ny(S zyTP=z4YxaLxjxJ6?_MxS$&PAv zI!aF++oV&Tvl0@3P^Shapu89JjJMh9?8gNB#XCy8hW<6|=LzJz_y!kaS06Sj78#&hLOHf_zzqg=k_$Kj<%xttZLXgNu zzl~M#q97}wYR|tPCelp6=qFe7pIMSSo)nUfbEOZa-+%mkMf;~$1$9kr5!|+N5Vp4V z8U6X+?X^!O<*;P3!Jw4*$!u6|20C@le8Y&)!vA)&? zyLr4`O-QmW_Gn{<-|kUd;RZ;bgS$~by5n&jL2|$gr;d9zZVva6KYNlcySbT9rs>}4x*WlqdWD%m1?np5-k~fIYM{sYcTcXr5mZpC)d`Ul_y8r5 zkJo*C3N^5UnUbKIAUGKX`BV~*og?dD=}_bO`06?T)WnPeJ4^W**oxmSq^Dfl*leOL z$f5mF^M|Z@OO-Z(H~{snvbeMXaP3OiMM6GTdu?so?pUax?k0v%!Km`*_3!zJpq+WK zCx8F&bOB@tI7a(ux8TlND z?5@1Dn@Qz5ZFE5@B56amAO@7@`wloZK2^caqrx#r_>AFq9{XDc1`8GpAR_RU*QAjbXt%TRW?<})0+_0r8rI#QnfX~`%eI-SY9iBI-s}8A z2owt+62rCGMNS}$*jQMBjrSKS zzhuB@B!#;;9>~?H|7MOl;X66A#S^V;YRa1qsvZ{`dmlYk*gec)?#kVFZq;7rN%Z@Yc2LPUWZy9B^YsQlTR)zgIy{8%J%KkmwpY%@@Nb|;Iz455{ z0k8b+12Jux4vbDkg-FP~tPCU|8GZ+X{ug8%uU`Cv;r`2&rZtVPH zxHuxA@&h(Gp2<=F%gPxoWnj>D-^LaFF!O(yfHoe_S= zwNAIqnD_P^)_m_}fS4d`Ri7t>`_;?#*wy3Ke&(;F@dv1E1-A=%Q$u%|Zc9lTVK{_i z;z_Y>uE(z~L>GRA5S|d~)=#p6UYTEIFoBq{uI4=BeHs5fgwyja^;T9xZdo zR~!5FaJ}6!_pJag-{|ZjqUD%Ur`U*$H~qT|S&DAGP2Qs4^?IC0JzZ}=+b77%l!v1p zYaOmOaI4657+P0;Z&W>oE$i$F8O^l?z&`+L6#imr`3M-pid4v4t@*WHw&w=&2z)M$ zo!T2b$c3yGW4@_LvbZI>I^HgbA^J}$VxVy=nL{;fmX3af5;Rk)HTUi*2uxmOr1=b! z$bBDz(&Q-SBC_o)butJr(6F1kvW>3yINwkIu0?y1wJ}_Vl#r}nQie7Uv>C#h6i@yk z2WL$Y5D9Q|2Lxy*dn@c8wVT~tIG7|)rq}N4g+{{JS<{SdrlN98g^cEq37lJ~N^VwX z#G75;xf7X;fTOK_(iKd-TSS{bZVc|M8Bv)q=8wGFIJAvC$ms0Z3|sKxgzt*!{;B4DcGp=%+SWnzphRHP?OWyzc1Agf4sXq8~V+mC-^;FGK$k^O>{wZ;`c}s zAHZRp%$3T})kNXslqA@XX)9qWY#&pa57sIgNC4UtQ(@&MQ`nsQ)zB( zj&;q?#!_slWQ7x$E-Q6j=-I5b(+vbpozZFdp~txt*GGI8TZTW~^~w0Fl>Y6GFrV1r z={~F;P0PBUG5GUsf`|aM*gfy4;~t3pk_1UOCP7kJ31YTwpKTz`;Bm?17Pip?faipaRv6l587&;1dB9MHO+HaJk_*LO$0U>)w~H ztA-p%b`*8tn z>)~__e#&WGv_)Yp5ZbHUX6<-_7Y?hY6PwOV{lrt*3m`{KF?M>&XL+mhJBUW%91;ssSm{bRm5%B2W^hKH1PObRjSEq!M+u$z&q z1>Nj1>f{mP+T|dCcG97x@GlcFq2L640_9(XcMcb^q`+p4^;boS4Gp8SC?Y~iapUs} zX5&bX)#k65J|xjADA(I)&?Nx9JdK~&gfN99*bSne5RmrtAJlr20@8Ghb3%*(k?tcm zJD`{{1)J|~8R@FC=C|v{?ZkMDIX;i&o zKuld-o$ZOr@v|nIo=MN?`j^pVqdKJ$&-2FNtLhM7Kq9s>&}k|;RE9wJL922x@Lu_WcVCQ*yi$KRrciJ{MZljSYnC*uW7Fni zQ`8sn(9O&0bitF9MK3FBk=>0IssKV~odvIf;o*>uj;p;a!1pLn>yITEuCgk&_65*g zK=L149tq^Q%n{cXA^BT&pO00Rd8fe_^`6@L#(&=;Tj7JwJI9 zKJ#E7ztN)g6+nAYB4&9RVgaCeQ2}j>kMRW0Hz^UGYjF4Ab{!qBCQmNZ6y}ubdt#u@ z^@Kza0GJh17t12_m-jA2p+UPNHL$(Gj;3BiIyN@&(^C-^(H@CB5b++}B(!9vV^To$xCRK^zY?1zThy=(M`s97|vwbl2lNKQzJhM#gv-DP!N zHjwE5^`bG;eL1q783xeqxQ%(G&@w?HA|m^w-@a{A7Jsh1;3s}J_&-Le&2vUV{~^&a z3rEQQRebJmC6(*lyFYHbLaKc73WHLC9dYI=V%Zk|8+BnTVx>Lt>A5ZpR(MrXGY z|0*Eh*mBUztFzf9y;!wZ2^o_Y*F*7q68`1zHBY1V7{(1O#`mWfs;yn97wbN;xV;g? z%w=64q7Myi@kvbmKW!2D7q864O+O$E#mxr7<6*#ne+D8m|(oSGVzp5xET29mI`!FU)-es82> zFaMQq;r|}pe0?tQBV3%jh}!?rjj(;W1{+8W#B%Z+FKGX`A@piAi%KieiF1Y$5U4*`Wyq;Poyr#V?>@ zE4$3PEr&5V<)Ts)DdLL~5!kr+za_|U7sC++I)G$)Ju7r-<#a*ef4=&DY)OmBba*l} zi|1SV-*Z;&2&Wt%7Etn(Afvk^UIwoZc}%vi)LrQQz5u@$H=)0O(W%!1H=1`q?%e+y z8?7A)3;6iJEZmPDOt1GR$en)Up2|ETP4W$ojP%bP;sCnf6ezR*Crw`^%c4P|Iz29& zo>qpm70a>Q=39wv4R*`n?I-U4y#L=*y^1OfjCi8Cvts>m&mke$E)yqNT^SB_CK_mc z(U4yaN>neW>O}wV$7{ww&vdcp^k-zjy2H;yDW%CbI{)e5?kT(fJA0?MrEo_`%7%x5 zKv0SHoGU`zy&1`N-PxdY_HvM$D9Q-w9B@{D_i8SGjsWY&Q2Rd2RFmhc?#eHm@s7mH ztA*fMePV(2Lvqcj%zx7&&Z1|BrZSM$aDk1iFB+0q;M5-aSqL4igzJvHprWQO3u@)FMUX$)X%h&RF&9|zz2*!@p^ zIMK1czBf0<%kn7uV(tMz5_1_v2S%xHnbzC1;Sz8*uh1l^V*ks3L>bzOteL=mk9J4YN;5kV< z%|NNF897V;P4Y7y-6)#B$q!pp4a5sl2Rnj6BGuoDq9mU%K^-WSBG{cOme1fOk{89- zM5;rrWfW7(u<`e0!fsEdm%nlvpuFge=+qYlhPGMs|MRa05y8E0h05|InIPatR#H)- J;=R%5{|_A%Y*+vQ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..7b321a1e4ec6cdeecd9374f5e41f5b76c947cb1f GIT binary patch literal 39743 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 Z5qgo~_(`|x@pTCJ8D6-gSE1{O`5#B3J6`|* literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8e21404806af591e5f4e4ac12eddcde9d2602abe GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*6yfBye(&%nmV%p~xY RaWhby!PC{xWt~$(69CA855WKc literal 0 HcmV?d00001 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..65d2889 --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/run.png b/android/app/src/main/res/drawable/run.png new file mode 100644 index 0000000000000000000000000000000000000000..18ef13d96da36217c1529654da3be93993d261d6 GIT binary patch literal 37993 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 AhX4Qo literal 0 HcmV?d00001 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..7c4b32fbd7ced11e5b13529cd4ccb183c9e3989e GIT binary patch literal 6010 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 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..145f102b535c0e13fe644fd3bf2c47404f348ab7 GIT binary patch literal 3728 zcmV;B4sY>^P)1RCt`#S_fEE#~M9bVPR=f#a^E! z!4@#|C`Cb05l|GcC04)^8&fX4H`=l(TMs4W2GoD5m68^s2~UkENp+w zWtIT4U}C=aeCPYFyN+}3oHO^#KmYtI7yswr{ujoW1Yr4J=&uA&1mI@?hX7Qx*7>gp z&;T$VKz{%i0bG8|`}%^#9-wDt@n;K*1vXDZEq!Ti1*%IQjZn&^D**TdIRCB!H~=oy z&5Dh-78lhb8F{c9ou#&L8%hO)#(lxpYWL^B+WKIz*=lc+i7WB^*ONvyWlv55umW)J zT?9B0@~4luVYppKID4ID-^?hU^_Bw80eDjO^m-SQ-tJ(rSWKfrQUi{rw%VJx8an7O zXc7u;MGGWV#XAAGzKZ}6`9oWa2M&jYv2NXPGo#oA03U#)jeDg4W{S%4&lcw-aSglL zGvpLfF<2a~dMg27b9gZ9?ttf6$DILm22k*K1zZL2`+?Yd{cJ4F;NsW`D>vQL1z<<5 z)fO%Q@D-IkjuDkV(a{u|fy2`RSOAN|W7dQ^DCNxjkPaIFEC5j6mVh|`)&LOKUBv6h zX#1YiN%{L9JSs!2Sf=VLY=tx#)C|BY`m7TGQlL~!tF3&tQIE&t_Y~>^iu$fBK9Ang z3>-jd+8)`jN~TmxrG@}TwdK+nWpU z8_?g7wQHj-^B1Fb0``H!zwIYMfyQKOrIHDyH2_Yj@&5z>@lKY5IrDwTBP08v=BDUx z=gZ`B0{~O$+xYj^`*(*$=jAk-X-=yGUWlsDQaEic;K9SZ3M5@DfV*=S>{w@mm!&nV z6F=sKQvsC#4!1H6d4oqhhuL%DH?D%Fz8=Pmbwi*2|APPG)d6xj+L<`{KRR#eXwTn5XfZApz>Cyryf3p ze1N+PKPGfJIJ!cB&u9L@*JC8}8L)UwfJ`nI(A_ze&*ggUS{zh=w+5etxi=nKRV`8p zAe(1(TLOq*eM!`bJ(~SR?9pt(fGAkn2Kin956DWhC%Mp|2OJcrqXqxU9x6~?-J0!xejxSp960Kny+ z5@1fF1W8tYr7@qx?X<6Wc_up5d?At8+&{sMSFJ@zX;1E(k%O|3pj~KN{6F zHSnId6dCt^L*VESap3GdGaAiWMO$5nfCDB*f>D#k_rmSW;!bIIirpnr#iqJ@L+R$B z4rA(VW6$Z{(Yy)y!lGh02h2g<(?ZGZtWds0D#eL&7m1Y~6 zwPI*#Y5;1~lvlh~eXUd{;1jZ7!lGV_!?+4fzPO6A&_D>qEm;Bgwr6Ohl1N7ImeD;;ATYyg?OUPQB9`NA(ZLBsfM zbppz+r@hd*a;*?%CfYDH7J$cPvP30az%8Kz$xRkc@@7J11NlD+G0blko)kWROcTJz zG###z$rZE8s>KZt=-ojdcKzF9#oj154juqKp*A3q)<+|XqLNaCMI0bsj{_)HCt!B! zjpyIF`TnHS?B8~_lBkjNKyv3{E`OBA2&SRlHgi?v?MV~uOD1BDT%i;$Jdiq>G)%Cs z-+{MGv&P6ZXW%e%0gkL+0gK)}01g}Aa&aRw3;v(4#?$9TWcOY|pQS<1Bc$!AO29cf zqkZa9hW2%-gb9HBxK)+cS(5nZ`jSW%ovIO^XazW1klj-wFz}Q!J8Pn(e zK;Et@j8>}iSSwf{lgW!BV&h3j)S+4FGS$p9!%zS}4(Vpb?qRBrdHb$FES1B@z9&BF zWrEc0<1udiS!CoqD!7yL=o+;PiG*jVjmg<#zwhV~>?Jd&;8A`7D=>8Hn9}l!o$qoc zCVBokdbNf@bpn!xbTiXS2=aiIp&U}S1iMdXF#-t4n(JY%hm72pB;lFfEO7V{@>9J$ z*oU@;g2QHG$OnCq|HpHLY~StkHUb3HR!{zhNHX(D7M+a^zL`4;LL&uOTqX9-bAUwJ zG&_;jr!4*GtdFIxAmn3a_>5&A+`NV%uL7S*zrkrsfCB(>CT&NLkE7|#zb*OmdIAl- zZv#DGV5(%u6R=q@5c&^Y;hCs;Wgv^!%`ckdNBD2JA-Uvvc#Y{UDQ5 zo^DNmHSz6GD_fljK7Lph66`9M%R}1O+*Dv}!`Bq*Rn$}=Jn0u~|IE7O0}ENH`K5SJ zSdQ(XQ(T5hERK zz~gd}6ulS!zLAC%^JX-$&7&tz;Sw-MMV>^vl9mJz@;^B`I0#Q9CPGI?2W4dv1O+ZZ zO6nzzyIC0|w;fD2KsDsg^E9;dq+${J+IXU?c{>>B3J|qrHbk{jY@K1j^9AP^dWaJ3sf4H9t;zWri8({bCUHq7UW znCm$4OD385hJ=ncUBqF;w$y|x8^fa{fU}B(w&L2BM zAk;(pxhQn#vIPQ~-VhOdje0u~fh3I~={V(3y>$0io2qJRS)nthfF+Y7``L52%m{kJ zHZ2JtL$tHCv0=y)d>Ijel#~<<954XipF9aJmxn92(oy!h680Yr!s)Me!u`|vj$(<# z(fY%FSUz^ffrZ9RbzzKd`sW+S?O-~j94ZV>S52O@SVd-)8fqDZz5OM2EN z*g|S&>!J>?O3lndk51+|_VZ=Dt`@yvo0bHSBi^p9+qNwshFlOFjGnUHRyZ5I2ZxTG#NI{oU|?o~lkM~|Zq8!t4e^4wRs@Ay zraZdIn+4@D*gB7f1{WxMS%_=rjxgc!Re8lMg;H5XOD+VfiEA#UWqx)kEt6C+QtKMS z)RAw#2FSU$EPUIx)#2N=322*GsZ#gucRf4|KVRYBILPV68mtS^vb+sUe^3J9vFy`?9S$)W3z^;$&q=FC; z6UTh5OAbc?xLy~nZpdYlL?S{<&j`9)DK5sxqDzPNnC?9WqS{&ng>Ici$DjSS#MKD^ zeOX4Z*sQy-}og$|4IFS^|`cL}Wp$$h)?% zQ;X@3BMHlP9q{aC-X3GzT^b5mM1+>6rpiuafBBsja-aQE0vdya4;B$|HzyZ^`t(Bd z>9fdw@>FFTb!i3>;UkgB5`C73d7k2M;5K4-g9s-ZOXfWMiGyRm``P#V6%`frr;|Z` zNU^2a>2Yf7cM?Fb7C>pj&zI&W{CtU2pl{G)Ut7g0#!eEc^!ss3*0>*6$l*cW1ec4# zqL)x86qq-6A$s@jf{|_``@SeDBF9s%g@pym%ga$vP!LEWd}Euv%Yi0>UVjygog`9e z+?JU5Q6Bcznh*+^f|u=(ftdcOKf<@{1dq>$k&zL%q@)CUBO+jBWrdj7SXN+g@aGDJ zf~52z?<(M3Kty<_-_OyAOG^H!U-zy~gN6*mk6%Z?$$vJ2=GOo1-o)W=zVZ8C3t%9TO2z(bHvhus@thLF!|;JcKa^FxM(0kQ(9X~h=g*(V zos10V>gqE6ucV|P@iAZ>(^94IeG&kgeQr4zwP*F~*A+-S9tWvZ`i5;9<9!oAuuh>+ u7{w>Vj-vk`Be1m})89t{GMZYy75)RH_;HzCh3|L(0000H^!R8E|Or2CTgrPc8m%bX;P$@g`b%{ce&eO7f}E2 z`+T2gAMV~ex9mAH@0>OlLwv*sh2e*Ofd6&;wdm*QUNzd->8?^*Z^p8^O5a2UWy0B?(Wp?9T#asWOD&=Y_s zfD8Z^^Mth+z^xL#7o&z$0OkgUW^k#|U28*$ffQ0ROTBN9n=3o?6k)(vIm6Py1NN1D@b>jRL_Iu>Tv;YNQU|~V0F42>(f6_?tpIBPyT!t{j5;;#k(Qo~t^-fw%JoQg$Q6KZ36FxE zc_U!~0L!;g_hIGuiPlk&lbHsIp;6IBfe0p+4k-KS5QP7^6SB+{(8%rr;DkQcDQN{X z6gK>qHAQs~TfS{(YKVb-JOl+Wv?*Z)#F8a68M!jVJPU#ACp|gmt0Ff?hMdfFNKMQ% zUPvDpo7=*^vM-_@C}ck6Ln|Ov*ocZrRVV;7B1C9j!uMrZ4qy-fyUdhmL_IkT$13e$ zAXTRuVH6lhi~sYjU1}mW^qepXnvq!?qwD!4tpLWwgW1NKO?S}JyNu#M#R}G_Qn3`C z{*%bQ)&=0i^i+cPX4mRU&tQ|55Qd1m`(azo3zl{skQf*!HI}6%0j8EPFf=OGO(h0~ zuy(DD_!rDS1c^jRxom#> z0YJ7c=a#erm`S)d@8M3R3_Z$_s@rR+dIc&yXQ2 zi~TlOBqe2G+>DDj8O-Kd-m{M731BGodI1lJvc6;2VM-GrjgE!u`P&-OJt}HA=0*zb zP8=Mkay*Mhgh5JnHqvA=m>a79^xWKBwSD>`E>B%%I6Il}5}K01o0VlHWzP`xieIg!o=;V=L?vcHyK}H*Ljnf0rq*vU=zWz!WtE% zfXBkd-b0Vkqhm#sE0Z6}H8qjq@V2)2YSAAE-1|Vd);DAamlV86_?*A%R;`TF{>$NP zS6ZF{Ff#*;jp5U}IZkd1KtsZ9k%10y3TzFq2#Ga)Y#@h|`3O({82d@@y`9q-yTamIf+ ztSrpsPLq`-V3;q%W)14%+`g@7Gk6^06M24wDd7?s5`q%05VbyM^M+k1YrH&hK>f}( z)_{TTj@j$zSXA-tCVXXCvL3pgTbLCzn4AfRo{#JVt)%DumwoLppQ zE99M{^HUcLCE8&e%Z4bz5_-JBjFSB&f9AWe=}OOFf&!ZJKLucx+n-{ zrY3s-Kmmm*;0ZYs%(?Pq!d|-WCQkkO605&%0#|1XEL(dMkieXDy@u+xKG8s^@XlcIo5+7YEhEw9};4 zCpZ(Z0@j7}d{tklGKBz!Q*Sb-SVtgP8O1`IMxQ3S*p)_3P7YR08Y>ch!L*|dObHvmo`pfv<_o(7 z>&U#|Gv6PI5)EZTcr|@W>=~NXtyTBf>Lq*3Ohgk}5qiEDQL%5ZC_pXXT9RgRu_0DK zO`g(|TMjI1@*A0P*Gf2nE(Wu9&a-)C-PG~MW+o>2?r9;y-*@aZehdo1;>qJsvub6v z<4pLz1IFOlOL@e@#=-=$oE#*jWofwDhl8L1MkyO9{v)6r{Y{}tus_K<`Mrehtz_+7 z`}-m4SM!h`DS&oZ#Bq`T7A#pG$iJVzdIN{nuRxoojTCL3g+-v6s@nW| z2IUfxlEq(B^f}j%N=f(=4F9|umd|gD=$KTTyZnk*F`U2r3emA?LVF2i{-01#tthah zY?YFeWnpGksPH#^e^^QQl>Bzc&d$bX6K3LIz;aAkwnia*MmwzM3&LlpC;j4m0 zK0PYgVA}XP2)+=G->$x9yPc`PO5d11n`1_?4NEgK-t(R9OY2KJxikv>>3dr$h3qIa zDDS9DJF4j7L!zF=fexMu7QVjKw_@6mILkOT zE*(k9nTq_aCS+zQODr0G3axjB~y&3;&Q_6(L{cqe+R0T&Av8G4C2jv_c9 zcIIffZU$w;m;jn5re>no(lgjP(Fe^vT{S+)q;9n_c+IbTd-jGvd|JIK8q}zo-ykg= zFfuG~E;w@LSFGQyh^A%|CF%u3id(Z`?E3IYJlIDE6x9h+lyKjD`b@rIqItw=5dIXE zp0A2{F&!}_3|JM6@29sx3(qoYjoZ{KhhE;5@Z*(dNK8&a%Q2I&_v<<6=}U#ZY!sxV z%15UP6|v5-I&cqWt_%>TF&7kN<%}WqV*)PVr}-UFqr7^uedUNIcpmu{x1PlyH9Z5pW-i2- zo?WnH>@Yak+5p)yASnf~v{2*+n1wZM*;>_!m!)D?YIq(uGICh@E}HTYO7o`Rh=r0r zP?szeXZko&;LU~<#R74MbP$9#ut~&^36ohi9Vg60z`_~m-Jvy1jExcYZzPs)*~t|^ zD2R5nA%h%CmZmdiBcbOK&2(gLVu*vY+hP31i}>ZXTrS`JbOJk$pFtzf>Zo6>DxB?X zkt2~HB0e5h@BEG1_aCVy?>7OMsN#UJsKOemM-mU8T*`}26EcqCPy`dsP5Qh`tf#U> z-?+rL7&vtvhRs+6D@zN+B_xX5=|Vf2U_$w61-A)wv~PM_H6>V@8DZDdR@fSJAFF@7 zgOv0v?jQVi`yT%kfY%hdQSFeOX`dzwKti=tEvemw53xp!3AP_qj`4DK_JcJDe^wEN zf0R4=%yV>{MF@1~V7V%<4he-f?j`k)#lR&Em@t_CNx zB$nXjldF>hhWF`)$`#7t@joxIm@JpGS;Je}NP_vu^h6kR)_0UKNbhLenFT88Gs9nI`+6-;#mJ=&r8-?I= zMaxvRdAcphDdfWM?Ar|czx9KqMSkRa=9r=AK4vN|Tw|d%FdKZ*hg>Deyyze4Q(Ty+ z3jfHY9;ohW2N-4J(A>5d{%r`(-F?NCuwd^sg!pM*O;pxFX%XKm>I{XUv$*HC_V&Wz z4J%=4qU=YMva-aMrE^fNO;2H0xBrG^s%o^udOjDvR0adfOqfWd*fFIQ`Y%6=KORM) z=_i_f0|pCIrD(t?nonL7aQ~L7!aufkotp3kRITU+_p+{d9>Fd0%KzyK&`3K?tCr(E zp9xC7uL>pF>EhcQhc>LxDtrMZ`M!^a z0?DGGDy1r!TCbN-T~J{tkaonv7hohcKpFdj*9k`_rm607rKFLMiW1alM;GD0ii+kF zGU0h~6<|#hRd12Kdz}iCinMT9M-)msMP2anPh|e0cMEefq@;3%SkV2viH`K59WlNR z*edoTie-knP=dRb%KnB_0@6gE#cFy$iFO!jmv=;ccNeWaUmsk3q*%#`;9Z+Aet{qE zK4R$)1syFRXHqZPk;!D3vD_bl2YwQEu`-^3qAGy({4;{^?d=@UzyDC22|A9@Q10MW zrlm?HT>@gFDtv~U&m%EmZ!oq`Yf-HAzoGvo;;-lO#qQNAxuZ$_+PHXN8`=;10$1fu znJbm&aOg@qO!%xaWB&=oGKw5}$Har8D8QPEPuX%Mn3uGD*nBEKmNu}vJiWk7 z$Do}X(W2i-VI*)c;UCwLc396>5&kGaF8V6Kg?c_0zKe?s_U+jZclVlL`E6%s7tEQx z7_;Y27TT|+_b9y5^FFFjqa8zIGYnXC0$~p>yT;hS38LMk;xN}}AbD&x_B z|23jt;MG>1Sl{{0C_WMnTzrbel#BxDC^aJ+6SrJK@GW^LS}HZbt_3q8Wmzz$069 zg+I(M1V>g4-(1 znvVprb;KmiXy?>*MK~axLgLKJot_Iw#`~>9)SEag7&%z(R}`WIeQBpK1z2gbc2p6c zkbt%8*75Cyix%O0NC(c_l`pw*676v@`s_%BLfidW=iX!1c$9f{s+m z&izXFW(QU?B`n%1k3ugTHALQ0ixP@LJ7Q>3z&dT#jw)az8tS3Be8VxVsz`;72gH~ z@cm=PjaIZ{izBwLSf~gMly!E(mBTyHZS)jjB$OpO`kY=rpk!*s{Tqty(_7%n6-QxG zx{CZ7l|A8JqXC{j_!F@ak8vkt59+oVinr;2t(GMhY$PxUbR@zM72yk*MSnRRjq_WF z$k;f{A2k>T?6+iQ@=vxzf|={LV(o6l3j%be9WhiD;2!+@`_X>MP>eRkVdC||=HC{qO%#(=Sw8BLXr2z@D{sp=r+ z(ptBCIttv4+fPCGQ|I_S(9?Af~)g9i;# zYT)MXuGl^k6oh*9>M0$!wJnYKc=^{sRUmj`i!?7xU+>z*o~JauYNoGZS4#O~R2)tI^pfpJ5bq zG-fJp{r!;l{6otZaN#ovmZ?|)!Miu1?U3;5W7fCayY)#5a)$56#clC&q+h z`}F1*wB$4lDtp4tQuBNea(E+tJE10{;Z*Z9kXE>>Viv`*<`Fxn;$Nx>Dso<1)1dXI zimu7bl$$(tD(~rEj31AN4H|GxuR{u8$dbR71?9?>!*`oE!`Rpan>X&j%-K_L@X%gl zWM*O1?8OMb62x730Za+M9oWuk%EzldDp*^CNA#>Mc|E3wdj+l}w#xCz^Dwy*#n}02(R%D5fP8sr^EhQ?ZtBY4ZcVB8~IzeKt6le+oi)csTm@?~lU=55m#W3@iNB z;o+nE`0KA*h>UrI&==vTR!P~3GdDBE(B4#)%!Hq#yfC7SlOtd6+qBOxydXLf;T{h~+82JUdMlG73E`C{R-(h$Gt6L8?WwB!^}*%N=A-G~GJ(-bGo8aoW%eDx(C z#cUKX44?V6FcJ!*qj!RWLJ_&7@gJy%_)w-xLd8iz#C=&L5caxAqoc=;p>~}*u&}hm z-+#*!9FC=J;Nju|u(ebgs*MZ6&3g|pX|Yn(cL=>2QdsU7M%2L4pmo?tV02W&y9chH z+@v^(^?X720+Jm$QU-h)!9%iD!`} z_U$QO1XsXFU{0I{;dju`^HmW}%akrssXb0!zKVZdgric0vhw?B$z(AlI6K&(<8TEX z^`N|M?{_&8-c@Cs&}$Y@WR<<7k9)WhNHC#qk9<1fiy!iZa^v0uZvX2*JKB&$F&<7w zk#FMQGj=L2e76=A*>cnZ=+CE-oQ_1+Q4fkyMbNyrn--Xq7~XYhVlJ6>uj&1xl8LL= zLzW}Ur=zz?tX7W~>0P>Y7hOhA)`xbqL5YsSqoUzGVj|9NSczKIs;DVl3=MSDMRa&R zdB&SGo?HaHkJ`{&dT+1qhk3o1=10ln7PrQzTVM-Ug^M2+#uR-Mk_!aXawHZ^}lJn&*I$q z6nx`!v}WI7_#gNQ<((Z76&H_`G^I$TzOw1qTl)7Q?KgQGJan<@&0uh{>Ty>jG+{74K640v)l^Ip$TFXUk;x z=hbV~Hq6{*OWqSo=)OvH6c!ncrXwfd?E01P)IvuuBl4eV=-_eqw0=Wu53CP!b90_> zBDozP6J1lOwE?ZzY)y{p7uwz-@xIH`b7?K@Pqew*HRGP9eV@-Mgb&wQ7is zjYUXE2>yA_-ydN>c?Tz&OVsjrA8LI7TO>T;J>OHAj$-5BxAO;lH)krqCVded_3hLa z^VV#{n}kH%y8S1H4*v|_?>U0<x3903M=XO1N?J8b*#Dgj$}pv1v>G zy1|YeI^gsfUIB<>$Bro!!2F#_6DPvm-5o=R59c9$iWK~&YC-+4DFCDdwmRH+)!svP zU79z!P{G;BLn%yRU;wW=o;VTck5&W6AT1*Um#1 z37J{S2H9Wt?(v@8u5DZVeDo-4e)5UNn^g7i;3IrcRlHTArS2*M9Nh1$y@GEq*oHIn_4* z^9rCy>TUK9ItAS8>0WmQ#ylzSp5)u-4 z&ld?lg5ExysM_|U0^|^^BbHgK8x|Ffr6S>fF@7q(96ysM^jPI|a8M9#-@dJ|dc+WD z=l%ml$w~w{WnpTKKPo^8;iAl1U18_^dEa2@;L*s)$U#a<7A!4|P@{Tv{!s-JeoJ3p zUbIH|hcby8g^!O4P=gT4z9ziSG$|>6*=k~97EDZ}FfvjP;&IyP(?=})h{A-Aj|$L; za0&#nV4CUr4XaSQRy{Ot=F2JQ&6^B3I+`l2H{i6>rw{Jmzc1{Hphb!W3LhU8pcPlB zJkg&`x|64lM(~+GU~lih|5*iF|G-uRp@_62#zzHc$9noFY~G2930S>m36}fGYhaU; zv-!HX^z@`6(T*4&6`&ot^bg}$l-Ab_?TGPF0fl1+z2~hbi~V%()mrtq z-n1jeM+NAH;Z(3(Pi6lLdS!BvgpZF3&>4xef@c!Fic(4|NY|6^P-J{mfbK}8*VOox gj2m|mK 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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..19c670ed36b1a916172c73ffa001e34fa82bc027 GIT binary patch literal 2982 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ⅈbS91~53pF{%NdpGKmi3}(^L7? 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 N002ovPDHLkV1kKTN&El+ 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..921200762e006edc61a58777357905362e2e28f5 GIT binary patch literal 10913 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 DULIR{ 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..06be54072aa38c52f8d0c0fab5c184514bf0f8a3 GIT binary patch literal 3911 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 VcUvHkJt_bI002ovPDHLkV1j(KL-YUu literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..393829ef34dce01faa68048eb7bd683db765a0dc GIT binary patch literal 8686 zcmVl%7yBmQ%|1ab^uHY@ETG8?*QBe@F#%x`FZmH zB_Q?y_5(2ggx5?5a2mj30LSvTkVpQ^AH z0G{UdCJG9OD}W6ES_2R%ZD&tX5Y_cJ^ZA;rZhruvB3m(+IK#@$L+8OJ=2j3}Smo)0 zX(_RYesTdZ&#ww#%F;vE2*9h{oU6F7Ac-F%a|Du= zo(AL*h?%85Tq_2`)~zaD{j&!d(ge1-B!ImD8dDo%lnMgK_W}$%TXPKQQyHzAd*S`Z z6pWv79xq-cvR$R9zFn2i*Jh>i8&)b4-ra?rTXmRQIchyHD>EIL8EG&Po8|eURt}!< zsy6`7uWaGf8G!oPynf7n;J!2VTm=E7z3^t!G9LssFCpI%6_bKt-<}m#I~M>DR(Bj? zrf*hO2Hrn72KOqRV4|a~$Vf?o$l4Afkx1))V`OG!54S39@#5-sVbeGOs{uSV<~#)f z#8!Ayx}?3zjsRaTuzSyvwS%mlwafnEaru1x@c>$~2UnW(5$_&^p=kL4?G1cp1~R3| z5L;O1%Z06rl!A4U(nyMW1o~}<0GMRVISK;E9jZqWav%~@$JLSVDC%O3TGd=|?O*Oo znNuUbC!en$nQd{6%xv7Qpod{Xk(2=0%%lWk?b8;xb>v<`S4%*ujKXV+sNyu^15LN7O~6 z{ANye^|>J1hvt3&1{o2OA2cQ+D;Zlza$5*U1aN zuI2a*R9!fn{Nn|lzf6FqhYjD6l$;K!G*kK5Gy}gwZuKvKrc@f)kK?Osczhx;tAUwc z9Tt*Z#td_dLACp!CdsU6|8n^Z}_vwls&)q=7rU>$+j@;YWyk94lPpcK{u=Kv_i2 zU#YAAzDLhtC)Ll*O2#PTZ{{ywu~>w$L#v}h-!NRd${tEsP(#k@$PlH^ zCXp4zo=PvZ^D?VrK(^U?!N~h#55}78Vm~;CV=7Zfyr&KeP99@A{OUQrba98JSgd(e zy3tV&4W(wJ?CmUYaC<9s8F&og7x?`#pJFF- zSm{;JT>v%d$FEHRKvvD|rfSU?iO9DYC~T-y(hGgt_`}1+8P_5nVAH{)h)GCP{yrkL zhlDAZN|5N-o0mBGc0bHabXZn-^x)GoGLfF8QhOfN_ZfXac$sx_wB&Iql^qf@?A;uI zcD;|{++VMSb8Q5`Y}$KDhel^NqCXpTCz{fL(XVX))=U})b2Hg3^lIaevHiNkf7k@v zeaNE~?BUo!VOZsoa)zw05o{$RD+?JJ8F~DA25BvTi~0`I2ZWinbsj&9$C@p-F{Dow zm50XC(iFk#{NUf^5N_Rz0##olDa4+inyn0DK)XP!n=&3I?8#SDRxEm>lB9vHVDC|4l0x*F><^`#T^gymQ>mKqpy^fA^R9;O63l)7!N|iC61pT|@p9 z-`2lv0G5BN#l~>315Avox;h1Yi?BcB&Ese-29HkZ1H!7H4%9d!-me~UloV`_> zZ}UY>&&dDCtA3&|I@go|Juzq40NDzIz+f2g)H*vl;MkTG9LnJ{EP}$J93qog-TL}Z z$e38xUFr#2NR6U;#rmFdqGI#md$keXum*hA(EhR&BVY)!FgM4Zl|RA1Z;((@1nUd= z^j-5+#zuQnsgYtqvN04sNda(#LK1mOff3ZdUEqWBH*QvF+q5ATjvOMZrg8y8kN~A( ziw^i0!x;!rHs{Cp%}?bv{2oqAzH7~taf^nuZ_`F)qtIsL0*0U+2aXCb1exja_&ipV&XOHn(E64IF$cA8{cuS8HtkgQaBE68jBB^=;%N82-Cts>1C5@o!PITelTUAu{ z2&SzLYbyNG6|^2S3Q5T+2o61lQ`^_TrHE>l34_sd>=a~V%B=C0wLCGeUjuYscpML2 zDwUWl^|OB-nNq|wjJiCvsWioYhESf-CTc&D^5Oa_en#s?4HSEF@H3zWgXv~OB%1dc zsscq0gF+*IwLP(Jln>0!#Mm=A5S`{8l|xBQ)6p%H3s5PksmiNH_4hC!!vq+%Hf9(# zxH`pt@8(g^j7IE=X_2UQA@vZXsT=i3i!K|tIBdAI@5{4i-lx=Hp`qE_;7!51A zVclpSnA1639jvf2=u5Pme2}ld{t%`8Tk_zbac$SLS1OgrTVpVICUsvDqP&@O~)6#g+XT5K|vrErbqrRy^)hQ>7!x;K?Tde$Uv_VeauEWPL zVB!x*Ry>8Qt(!~1M>__kcDwF){qBRjnqn|Ej%_Z7A*h0fBP5olNK8q`)w>Z$OHYTH zshXXWp26IBgKvz%h^Uk3H6jG9%QF>$6m zVEJ_(fJ_nkS=uyipn##rv|YJ91S4k5Q!bVl>EVc@w(d9!uf2Gq=yu@Mlv2r1mYJyu znpN{a=;fz~ii^ko@bl>0;!D+oq*B1r!r&WQAG}Y-U!PUw#=O>|3 zIh6*}&X^0S$xnDQU+!n*Y})F9!E}Yr%b|d3zOfx@YK0-FbCa?h2-B?fThYE*Bh^yE zN(k$$GN6=1#l&Ly)?Lb*w(0$lnoKDR{R_4-an?o5o7w=5_S&C_@Cz#a^G2meD#?*T z7_gIAqjISdiZ(+B3|39)fgwl*3VTv}E;x>mDFLYLRYdE#Th#JIh2jo~coBnJ4Ze`N_9C8v2P8I;0p_{yBD>Fdr=9ByG!8V zF2T#!iP-V`edW&{G4^7lG%^N6tj=cbl-SB#Ck)nrvo^y37=l!wL?xu6^V~2TnBE#? zi)s2PViOVO^l5-DbHn&Ge%!bn9 zQZQ}tN-W;6U3v3TawUwGDbegpq3K~{0p*nF%0kyY^4RaOm!2SuUbGw+z3alkT=nTa zbMZ3T4jzp}g=uRj3_&VT9=(axgYCVi&(XB!V9Xrz4Qf=Xfausbexpk_?Sxd} zto>so3_&+3QH~cu_Jiw!BC#|>$fN*_T74ErugJ{Sm+wDd;<7b-DOJpkLt&=$^Y$xLfcYz8*F~*Rj{B z$I@6BE=nVrZsKaBV#M>~S8w>DLzk&r zLOtz><;XvB5imbxQE1_fIEq^2Q5cmwZ4eYf&g6?+jH@ z*PtmOKaBTvORTK0bovDJY}X2w7UuZp?tM&MyaJ(TcyFuFLwfpi4~u4AtT)y5ttfXm ziAv_4T#jbdfU&y2KLTo$M(wh$=)UX_;*z9b4Lz&Aj?8L{60X`)Myr){QU)@fa+b3Q zNKR6LVP_*j*rpZmu3cSzK+Vb(aB%HXbRG3Q_8jHC-VDm1&kaP-aa!^!oiHHIM6D`z z2%hARuJew`p`5(_90UC;Ydu*pCyDZ^2U&>vq!)%D<`6HPIsto+okpfC%+vJ00wh1A z8-^$oCN`;j=ts@c&K%0nWoLN5NWd5BS*{9MTd4dzBgps4sbj8;p)dq_xVfTyDKFf6 z$cK-3{jUIV$q|NKDnw$1YssMewY0O|ld5%Mu@KW?>hISEr3f|P2E!1_HVKCi!CimAMv9>~D5;ykLp$IUT!)FwX^o$Gy&6tlYMR+(o zuRt17F?CYg?vuUzLHqM{`XVK1_!%|4T+yVWCvU)cn~?_?th)O1w&Hm@zIi2vPoIZ> z?(uk@gxV7}Ny1Q}WVpLH7>{MyM1zmmo20d0B#BY;Zz&4LFG=%>B1hI*--qMO? zN}=HwHSou-^$6%6giF`?G%f7De-VynCF97ZUs1DCdA;Xm(TJ9PhT-b1yTYbS^6>BE z7D!8F7#kXTF5(7P#m^=U7dasHGgxI^z54VMNC*Ai9n?&&T5o!bR1gR7Hjc!fb>i4=!VpGBQ&l~LNOxZd-!2E50Z$vMJ+kw99~v`TUqCypJ1 zM=@DHyrZKzq|y|yL~L_&b1Yu88ees2j?`2hKJP`A$!;UArz{t3Fqo<~?ZRIz&4K2f zhV%Htj$A^CPnM$J;!}u8koCWmba%s)o}B?{8ep#4CRtlqqDyN(9cNM%gVAUFG#m++ zj}p)d14aPR3ZrBR#Y{geA%a2q@IiJn<;qsT_Y-Ge=4?LIhlqM6FHoe{7^(OfY&xaP zjC6Shl4nI(T+)ofe!iWC^F8V%W!Lw9JjAX`NvY}RweW+hWxp#|M+jm5{_*?;OXZsLNOwFaStddO8&_!osw|5M*y}hSbyyq@`scE-n_au`1ob z4Jhnx2owPZ&l_VfI)AqlM%h_~-#^|7aWQJmSi7M|{IC|1;!XOR$; z;&ju>P&7>2249U-f&nmNsp1#SJf**Oip*_B6#-Z9d9Q> z=66Hsm8Vg>jBMuFVkIk~ns)$hUJOH4W+qN;o5mab*kpiNwz?7wne_!FlbG~~`t`L* z1hTx$&N@*M?zdY2FzM$ke{JX+JMN%AG~{~eXf*?moD+w=;&yi zI&}&ynm6Y_)OGz%1bU61ir-f*f>T?YPI)Dgsn4?Sg?l^Vg1Zq@Qjng!3(geFh zWTT3A?%IWalwe3CHt5==H#Tls&1-`LC&DrCyC1M|!4I;eY7&DIx_+6;I1d?&Y3Sf1 zE2O8ltc34?k+}c(DdJ<^t3WAMsxm6o@x`r6vLWYTYsYiHq+aV`d{~JjhlF)|r=l$n{`SZ9t|`$lNVHJ{}!9cErK` z`%$%uVzimRzrXzb@#Biz1Y28Mer)-2wNau(Da`ocI}T;b-oq&6SsXJ)4Nf9esU%pm>a_QJkISiSyaAcM2sb^3`yiZ*7=B}Li z9c!ldQidVuYf5MvtOLpgn!|oMl^FGk@fl@)<~HY3;`=M2bUPOm41 z&N6DOa`Mz;=xLZt*@M~~kyI+e*Qwq#i-?GTUtl0Y4;_M?ogMB!P>kquV3V@2eBGRa zbUI8VCr5jf_AJhUC}}o%z@Q#C2vDva-^kC^HfSaOJ-d&W3_;2;n0&nJV&j4tJUmWn zNZIQ-K`9XFi)CfdO)nwuy#^KO1WIIPo%_OQ$yD-iIh2Z(EAt%IR2oW9v7{F&mhhB$ zxkg4#S<-dK;S&&cRwd6{83vTPK_Q27Yy)E6J;jrM!{ybKIt)SG+XnCvP$Pa=AZ+?9 zPz(*fCs6g3)0mLoX{H?p#hg`h=}Pk!G9WCFCuSwU2q?_qWXT1T11m@!h9Ch-7PSX> zbX_qyQL8T-V$TXq7=nU&cjZp*2$l&V+w{qy4G6h@B>6bNntAQRUCWg&Vat*o5Oo`;n&qtQv3|a>CLkWB6IOP zS!q@@!25d|1A&bPkMf&cH+6!{QOp5~0As-#6_Z{c3_%(tg*lk(_J?9b7y3613*9}4 zI!ekmnov4FCuq}9L8g)lLkOl*(2&oWxam+Bzgg9iV#B;b`3H5tm?ccEZ=f_v%E+IV zahoBivwkSDk^+qQVZN}b0|i}Q(DWi9WbWpxK1FV?5J`PaziTW3)O;H@y7#=bM>(Dc=4te!Lubt_kZC{>DE zcOnq9;1`^|t}<{dw=k5iJ%!$LyLQfo?RfJc3Tq~hg9%G?wzkv>#n-zopN~g_mb#z9p@_gIWaj(|zd=jUA-&g1(1M|jELC54UXQETXn6?Kun4-VOhMva=n)zu1fX3gT;l%U9A*xTEq zR?V6`zu?}zdwBNzxv&2_`X%tt5YpkN=8hw9tU^O^;4I^gn;Ktfx14_crW5uv;FdV`3%Z*A*)e z{>LA@d*biQmwCQ{Ac;hR-Me<7S@Y(2^oak9n+=8e=PG}x|Ia``4LzT%zwh*Up>9q^ z+#Dnlf95<^D@*^qLQsAjAA~pWKVb9kvZ_B-bs9e;CnxisR0f18DoS&Px}rskV$A5# z7&Tg@`&dQ)-+{=LB9%&84xg|oEiH|AhfW#T8#CF|=HxuGsKTJG9kBD@QApEd%^cfC z<6v;$;6bcdzMS`by12OT4n1|T&c2l^S1NB(&q*r;qAY1znmj#X&W3Gx^Wmf1dAu0$ zfahEZFg%MF$Fg63MTd^EFwD`gFj!k#W5%>;TF)I56N9#2eT91w@=VST)Mc!qLLjQz zLVvHP;yixaryDv99mjh;K`@RVJBHGwN}+7ovWSd~L}FqhPYz`J)Wu-5YTFjK@5l!y z$CJ6Q@rP)IKvbn^5+68%?MF|tDvfU}=I()gdqX)4rulQ{V)E3f@b&RQaSzSE3m0Hq zy?RyH6i?HLX#LZ&LLi#b2;B=X+}%B}W7`2ZI(R@T&49VN7;W3M;fppg7_C)dBoYjb z{2@VwK(s4UXvy=)ok;SM+j~$F7ht9&))eX!qWCLAIOp?`M#OrIo zwW$z@;hIBfPF~T`QTT4sC~RCG%!7x~(J|=Tzf+!Jpb&^ril^WstGdKz|2&O(3ud6X zuRrF_pN?C%{!u#~R1~Hw%zJKoAiG z^`W4awxD7~ZMCRWP!UmUt$paT)XE}SEmd%7U5X342rBM-T|uqdDk%Eg>Vm}u(W0Oh zK~M+^NLZ7XxlAx%5|ZjUt>=B`gyi1L%$;9mzIEW?|3G+u({sN9;P4mvNde>oI0fLk zww?Yi$Y=m2uQ|pU0D%B*wbbyhKso_f0AL7!VgPdh?9y?J0w}{& zP~S@?MXjV1Wrep;R&ad)WYUWOMgTai>0!D;b|AkXm%|wM>urg&azV-$5joQAv%i(~hF9O3bYCG};tspeBg-JUn;b#j8aaH0lr+z<3=YSIbv(O7Zh!xkV+w|s{zB;Z*c%Y ztM;&b&l?5TcALtt7s??gt81$(WF`4iT~p6q^zLDSHs%66EtU)eFjt3hh#oDkdGTa^ z;hm#sW9J5*o+0~1eN`nG4i^l!<*6C9v4??)4XU0$`W(PiGBs80bcNhUj7I#1o5HbP zox$NSaCdEw9s9G%cCpd4WmL!y#Q0Q|JqmhsZ3km$)(Lus7VN5$?aI+J02oe-gK&5T zVt0N8r<`qO|5R|@fAZ!0)EwIPrUbqTsa$^c9U za7-qxn_p3!-3P_l>Xor&A@l4FU`F#VR6*JS_zi$Ly$%5IB^`uFtlU?9J!9TEp3m5> zSi6cSqD}zL%dPYQ>i2%3FXC3d4e92HZpJUY3&+?53{UfhlgeaBxON5U zMFrD{8ps!@uqDWKTrOk2eYG1pbr50ftlUshQNz5%XWB;30qPMaJkVQi3#X4TjHe5z<^BRE%NJ{Cic9{RVz$ z4ez10>_zJS5g0!HC^zRp*;)V<)F;LO*aM(5fNM$pNf#m9?LJRc8&!~glB)WnK7l9NPCC;Skqi65w3R-D0=B7!a6}70 zBSUtwWV%1j3}hQAfx1)IlB>_>cT1Q({pCoeCTbx!>^Y!-Owq-KT&1DgmMy#g@Hlxk zA3_5j{>&#kmEBU>$P#sc3L$Pn3DiXi^o@%;vsEN_8^pm+%ge7ICYgjF8>j(kQS3X| zd}L>1jeW}(s037q0<^lO7E$ZB5zu1*>RuPBxhNpX4BnGlO$mT|^d9kJE9pyH@tpdZ z_d5x*ruS#B_`D{7FC-FFyr@K5^VW?Wo|jkP%;nz|mwny@RC6JaBtkw4z?t47KISZd zlXC01T@lJ@A*>E|?a;pAsu^Ih_!-;jio{Fht%0?lBEhA^z|C5 z5^(SYKis%;mrSI3=$AnTyH_s9!nn1KfU`gC$MtlE^>i#qHi4S*z^3+em5gGwXQ3@}ulhh8YF zc=5|H-)SQ9eFI<*+MGfEcdb~+)QjmDJ!n9~6YA;!uAa(=r<^6h8LMWQnjrP+>!qla z)Ium|h%8Ku^)aAtI|2zUGI)|abAI&q)dnzv_8~^?7e0?88rbZ*weNLjFY9SLI6}*^h>%0RUZA7qYD@5BiLYz9!`uSP_ z|7`)1yd|COYV^3XsS-0$N)q{bhW3ifC8J5cIOQV83WcppzvuiJSGL<`kic5fK5OvB(=xKho=aYLBAd4gzWrh*n8qM zu4Ugtu+L{8`fhA)hMc0O*mLAK*6vC|O>He%y>T>@V`x(ENnIX^jW@}kU&W(VX*GQ* z#E4o|X$ycv$bMOydNJL<(*RF&v$Mt3%-h6OXaZCSF{y$INiD{Qr$7P9<#LcX%@u2o z-bCEN8}M5iqpEK@iO%Tr`81a#kl-*33EIa|!#PM@Fi@cdoU)M6C9|kR{B==@*c!kc z`41HZ;E;wsB$JQtY|)CD<>`XpohMn)-JwI^Y-a&3hhev^b!#I8u3|MN6+kwPmrv7l z5EO8)JW=o-H+%@<7ly!4Ai%Q3O$bZa(1Te1H&v1(tG0^1w2?ps;NI!pu(agE()ttp zJ0cZZQtz;k3h8JeQhdBk+*Gr18UcO0hha;^B5=8^iNN9+0XTZ<95Qa*8T)tCT?t@< zG9X7#2bXS^I2$z@B0*DEp%fU9g!oUIZ9o$sXvk>Q#vB=dNLxtauohE;v_h#$psP%6 zzJdf$Ay#IFuXK1=RL;H|2?b0=r6iK>ns`lsME=NqpvX=xYXeFA;6Z^vC@|1BK62jP&X#%KDPTy=uS<`l|gKx+pCNujU(e+7k-}t^dz`GCr#9$wP zNUExd3;ez%NEXnvm8oFc)?}ENn8I_!08UwX*(O@hE!F`rfdF=O8G%ce4r5}%uh{XO z8-xbxOB;oyl{kFy0s8iI#0QS=;^dA*GI;{35pduaQ;=WugaG;wKd%Xr1vE1=6C68w z6#x3yJ18%&!=iKM6MQTCvY<{#ZfOgIv7(YJ=XSW68(`GGosnR=)_*tpyXK#wqM5a-}B%z)D6RWIyS_wJRZ!= zT4BPd;jcVM9iTeMR{%k+m6@3yii)b>`=vjD1l6%TT6$0k*xI@a)63&)9N#z#My8hF zFb!jU{!KI+q@38hvI!^)xZ^T59M570DJU*MrKE~26+&dhg6aaO3Q{FtMn(oUY}|0qYWV0s4kM{XDQLM2f zD>@11HX%SDe)e1$v{45?owXenZLQFujXpSB94j($y2$*^67G{TpVD_w8 z>~-jzQ1+cD{b$36G)!*$8f8#Y=nAkhH)9?bi;)~T0iml?VPtNFo*$1ydRh{4ubqT( zpTRH@DzE5EPzv@LeFqH!z=F=4$JUL^WWbHw2N*Uz1o=fzH3Bw=B)$(9e)|o*oEs`3 z`T6-cnU)4SJ3H|Cd`P8ISX;NpPd^`nW4A5{@tcGm4&9VN1G{!?k5h>;NIG)?)0V{| za@r@D6`zWclNTU8EgAckkB4w+3f_0>4u!2DpyQ@TBJ0XY6x`1;q!S*lRC*zxvb6M! zX*R>h!N$TIIgbj61+Jlh`_ut8ha{oC_pI5o9SZXEF)b(vJ$v>9kH^E>b?ev$vC+|R zAL5PCW4#a>u@X-2bb-f!ek|z8?TLunvI|T7Cc(<04T8S%0rd1RZBaN2+S;-stACP; zQt8%t?wmw(tM~hz{*6@n=DyE3G>zgOWn*IZ1W3@7=t7;=;0M5^z-$ zpsJM|L^6lixHy;CxH#o@Br6dntX|C->E(s>iJQ>h)deZ1&%>jCUp7(h?$8yRBNnm; zsjPos7z9lmM{+&{FO5Or!#_aFn)@Z?;saaexeEyBdybCS9qo^^hc{#B#~&hjO%y^S z;t{vyCsm+(HEm06AVKS`q;NHg0vpoW2?^!Aa&mGKKOQuQV`F2(Hg>RS2UJP`q2Og{ zg7flBv8uWTC(d6|ToS-3H1-@RDHk6iptg>#$U2`)0i)R}K;pDZ9*e{y_y zLz#o>C=1E}ahqQsRM%8%8?D6}lk>%udy)r|n=68+HUVt`P$8-GyzZOoChA}hdwglJ&R9sem z$Sp8faAHj~dN?-)jhPpWib@GN*m0#N-qkc^(-cm=Hl#u-l|e7u$V88>_DD<5V9mQ0 zfUklEs0OX7u4doA3l2t7a_wrXUrdL|2xj-_G_; zznx8L6;G&XkJ18AE6^t;rO?+mz@&-(2=Md65DyQ|y__5Z!w?r|Yio0R|I+r{zThkh_ zAfR7(4aK9!MF@#l375V-AdytU-rgPqU0tzm{d(l)=Av`w&X_lME*qJBzhHp_4Gmen z{k#5wP?KEGy8rNckAHvNp3md0*dMWo-MTZs^1;rZehnVc^3z3l#yP68A zlr)|e)GI#x6Cqj2D|$+*P!gh}$KoRpxobZQ`01E2_~3&N5E2@S;*t_9U9zOHPk3Y` zmMtg$;ldW2H73pf6uF?#(LP@W3ZzmQh7a>b;_3~M$*RHSaL~uarLi#q{9yt4=S@5!nHb1Exe#D+&M zLfGPHh{e?~H`ixP)}AZh9p^D500o zK}0|Vq}NFA7=civcOf8XB25TEDFULQ_aS?J}TIrz1Tj7AbL0kof#2(vn|^4`>451b_|zZdiB|9o__y#Q^LCP)oAk z2Y~!Y#=*hWJIfOkPOh+3+UNMj?nSC0!?y(zo?S!KjeSt3 zB?&+IzAn>A03W=rcJJoo9=T1V8-NG^RZSe@^t!s)4xr|1VsGbSS@r^$3{GS`QsN%N z(Y>h26Ef1%04os5U}Iwgx58E6oWBg7UE7U>D4hts0Bi*CaZalL+$QoXF^L}T_UO~S z0-7}N!QMmn5w`BS@RRH7p50&o6LPUEtQxxypd{Ofjy#Pbl{@hVYz&%o6>Kw{O&*h7 zDD0e2qaS0GMnl|*o=AT=_#o3N;w`x)x&tE2E zSHwNxkk+|OB*StVf*>{i2@+r2gloYH#*fa(fJT)9g@cn-3t?kpiy~D!A~GcoDX|ZQ z-Q%fz|5|d*+$54!83lxmemyJdNCZ_ieS1_C6Itc;A5t7ZWGOsw13kJ@B~MyE&pK5;OctqjiZAC_3ISDzTX}QyKXKC zLl5BBqNLsdP3jjF6UiF=LI9rSa=BQi!b4~6$|=M;{f#bB#+fF?av*j4{sB=T1PtZQ0{ZOr)YJlZxdp{L5m4SdAMGdVN@ zuqBtvl}7Cm8@tUEOm}R28T0TQ|1j7p9Ap&=rb;Us`!wn_@g}QU)c{s!=Ngs}S%AiT z?6tf_A5-{As4g%6{SwDdKf%ZKGTWmn6}(Wu%MmZ4Q-ocWEGUzu`1WW&>y_ z{ZXS%)jrZU3tuv>2T)UEmggipL^@Md`8oBl1RMjF>~ zwy`VXE_Us^i*_wbAvz`nv*uq!Ol+$7cx%~RS`30r6992Pkf{j1hQy$#EeqUP_M9XlPej%dkH;N5u(Y?xk%_(#3iIj4#7(RopWGsWcOb{<3zbJf;&~6 z{^Ua1W8^w|##JwS)3#P?n(r8#lu9@#6atY3-^Sjmuh~SW#EL{r&U? z@NjoP$f8TSa!`-6y9}9&0mQ$4HVdiiFUDDVxPO~dXc@4s<>uGdX=}!@%s(d1zExz zB6Y{Gc1;RfTN_LqQ4=oCN=yhoB|c{vRkg1qr$k$EoT!kJSgyDaPJ}H)A+LP8gDRIT zjn1u_q28wL81t>paKy-5M;0ilGK0whUeikDv;?u_5i$$r5P6LppP2Fe1-xIQAj+1K z){MZgfNF4ZRATg$6Hsf16CTvTnU%frn+*dcG7|SKoRdkS!WM9L;yp`-Q3L#8YiEbC zGv`6A<^x1QnV(WEB7hl&8;}L4A34F_6ynJi9Bg7pX8?1E+#nEn>rN~he6j;87BoSd zX8NW!*5>!`T?zYtk3{%>okyclE)i)fN8%sL7x8M9L#Y7VT(t$$mC*(x`}XADM@pr?uB`@Mt8qEN{ilY~YHG;RAjVtQ}Nk zkrJgaq0Dvk_wF`&@;eH14Fc&jo;*lVZ#;78?t^$V>9`C2U47x;pupO#{~#$@H~vW_ zHCqcgR-zP^D)U`Lc5I3n6pwj~ItcHxoe7C)_;I!D@b7zTg!zf^RZf*C#s88rEin$? zC%<73*#V{3P}9)kYb%veKz`v%PL(J{7Rvm80ZXm?>7lqof8ypzbOyXFRY*>e>^pZ6UXJgDy! zgCBCJL@|z^yNKmmc1m~Ko9jk;+mI6J2;dWP?#56Q^q+6RN2nlWe=xLb`>Vl&`WlX_ z%uwRFzy8MU`;q9{x*6>3jE83&J9_~w`V50A&A^cV{{~_r2h-r)OL9y!8MV&uXlR(>Ww;vrOsN3OV(}0h~U}Wwz{Zhb!=T60-r*L(*%y4y@*aj#_N$ds(p2M zdpaR#-C3wLR+})Ds}P7BM&1cIcv0|hYuZkyVaRxj$FU|1Y^Pox63>DeN(|e)Lq{UR zsY`#MezyRe+`3YaOh#ghK120L9NE4)CUvi+yZqEOXLP@%rJL|eXIM^nx?1nL76q3m zDg17pu!9-FE0y;|)Qe<1f0<(JoHpdR?P&!^umEQoyXg%vmQETgx^woFD8~IqPtYb{ z1R_@cz{%7qah$#qJ54LJNKDdub3CYv&Zeq8w)n5e#O$1o z6QxR|vF`(6zQ>h+ZliwJ0L%^?g}z^WZKy;MiJ;zW_m9i#h*WDd`0Lics8dBIK1{8# zsOzZFXmInco^3pAKrQ=%B`g>F!}2!8qF4&VNH=N^1Ls1KYR z9P|%VrD?0zYz~DMtkUzQ+_BUe#)#CF$ll&O>wTG$?l_#eX^jvvKjBNjC$05Kv|Nc| z=XD~r>)XWDcYZfV-VSET1Vu|*f{*SJse|ucQrgPRmJ8(nE5AbJ7K>b(hEGa z*uJZzP=eav^D}N@kbh-VET7Nl2`rrB_-VZ+@uAU!&4Z_S)>hqWRBbVrP|lSoMluEb zMhMD$8J~i7!MhP2{0R!@Gad=oyk;?!DeR6rPqo2!!9T4=m!=I-qHrPo15;A9)vFn* zOjoNhB1o_7f@#wtC@Hdy#nNyC_=jz_qhh&yDCF&gLIs>rsGt+P3u^yozQ*n0|ME_d z2q!JQxg2zlz{%0%16jI$D~1PUsYEG~rOJHxA`!jk9KeRamPW}`*xDj=V10C(wU3W0 z;}R3meApK_uy`&?6%mC>YBWG%GT`E5vg}F8DexaR1sDI;t3_w!Wcs<1JQ{3_*qiN8 zsWkZO+DmPKN7i^|PRwN%h@lVf*<84B3%y!31MH1kVwe&oB$`s96b8z?9{DOuW!9@y z7y&IRA#A_)!Q6^`geF7AVekCes8qT{=7B1eHpIlqQT95lW7B2W7dUkCjCeOQvILt^ zcB2qF%zdbvK1Mtg$pTL(av(k@1t9F9xEZY8y&q%zyQ7$w{Nz&$l_-Tp%ADMz7H&R@ z!Lh5_rsdw_r>N;a2%~#;!RVfyQM4en5Xm(DX6+>@lc{j^_HayJ{4<_J=}qT|BoWD( zL7k~HS)O=#MoBFUaxDl%swseY4*g*jY4$Mtl%UKULZ>E~#*cwk8b313rNCy}7csGD zG;lQbtzL}sr83`iHr|^1^BPQ^yU0={N+Bqd&Ec#Loig_zJlIc`OlJor)=g}Ie)A6F zx69hDL8>YZA!{}vbnRxes#hCr>(@nP>;+rGm{OiGqs@($Gs z(td^=1ycu76u%TlDX>jvS(6T7V@y<)?1Cop;kC{YTQ8m6*%$HNy1CY5QYu*Hh8O|f9-Wh~uu6)9<2i<%}Q z0}+3m4a?cVT);98sOm7d-(mD zcJ_2u%4F~@=84UdTj8_02XW|6UF|5eb;6)Lj%FaAqR^4UM%qJf>VWA;{GeK8OdC5C zjq82@Cr1a|d-xbDw(jChOiF61a1Ry~cjjFp5>#aek`bTzAe&Kea0*qwTj`I@iEqh3 ziL<(YjNTtrLASb<;J<7a&fI*;_Y2D0H@zM5yBqHVRx05oCh`%H;Y#IBGJ0Yr43zj` z&1yKfdMR8*;g_X~73IWMDq9-8$Ldn@u*pdS-!&oyM3E7Fww15@DNVf9DN!Ji!P!HD zjgwkn;DX=q+hy&PM5fH}Gk4Lih4G2hKKWh5n?=fTy;biJPK zT4B{Mzv960)55OS?<$eGfv#c_AyOiPjgtztPU&!h5@BPS@@n<;4Q)<}3dM|Dx)@xY z^v1jj3QRL6_)J!brbq8Y=X81G#ggutxZ0Y+JORnALmBkvJvPh5oD1mo?pAbfHg@> zN=d`T+nL#{KkwNEwy0HE8u4j4cAmbAq*U!o z!FrP&TQ){f?}9kEW+{)*6Df0&_`DBmR?oH)8Ho#4Z4~c{CdWlmPKjim)g59In>B5P zAD66!t*tGl&-fCn*8C*=#0Fx)q8?ptpbPa*bznKkGc;O5N|GuKy}sLvT|s`RRNVBC z!W^*PYS_Na=D$|eN}NQ7dhb`qia9~(F=~>*dDSYE!@iY2WQ)YmpVvr9RFj2@=XcEs zk>x2AvW&2!Mf28}7rKm-$PhR&7#A*{#g(hNTn~ZNj{cT|`x?Wi(s3foBiDDE=S zXt2DD0=}&2K`|KYGt_L}7p1B;M2X5DVb8(=xNvAa-~S{!2_3%KgI|OEP|-p%Q`6L# zx$(SiJD)Nz*W6)>Pr}a^$kI*5nuiC2C=VkGk*-E4*BTgO+2h zlLL;2ui*QbGJA&{z=nw}vrT5YT7!{GkKtZarceF*2_xa=EFXu~sbv%X$u7)MqJZoY zX{f}uZLw|37F~798hkG=2Rwb6BIMmcK))e4cKkQ~A^1}-ccbiG%tse_5`hB6d{My1 zmw$IuYRT*qxCH5GsW`PSQ4@B&VrtDJjG8ysF_L>kR2lB zmAGn^jzj@$+Cjd2c6j+R)8g?>PzXA7YKFLYU3mOFO5!JVteOiwC9-6=jxHWZiqnQs zc$ciAJJ3!kluLpBQ{(*&CH5S_F~T6ehEK>XXY?ssbH2)8l&AvR|D}0+7M2Q z7k&A%9N7H!Z<>=8Is5l9T$(*qXH4Ja1JU7F-8_DGi2E+1ZGo-0nDN~h-Q~OQ#X6G7`m_VksR&3+`lV@l!U?fg1UxbQc zGP9vfro=!ClqkRykw$x`#z<_|q6JQ!K8-@&-Z*pW6p9on0)=e`W`|7GBhk~{4dqG} z$N4L|!L*>vPfRG&piSgTBogfuK&f&Sb>qe74>AYpX+~xoa%FzC97=onHq+O~6QPFH zX#%a~b%eq!cw51g*=E!vL@b=GPo^2lw4_ax!WfYSPMUV&F_v9(+XH%J$ zwuw^65otrAdU_-pQ=$MbFE3Q8SP|E6Xv5$m_8r94zyHRPrAu|kFcSBKEkv~neDyyZ z+3+*k4H|*w7SlqirW>TWY3?HFbu1zgMu^mlsa&*Rfl(y}3>bhN zJGCiI(pRqJM9!KmA1{@Xs=~F~clC$_k!eJke^6O?8SRux^lse@Yxf@H=00`03hRP9 z!e#mfy#H|r-SwJw8-`N{HfR?pQ>SD1lHvIDn{e)cNm2nWCT6|KDU%SJ#ncE{WwshQ z5zD?DhgKif)}_o&h)=|{ur-*g?~1Zmi2~$^)N^;Azi@#oP7ZhPW`-N=-m?cid-On| zLWS_`nc+e@EDp2hs7buu7L3UP1Z6hqJqUkhDzl>an8g!EV^AkQR4rQy6BcM^pE30; z`>Hoa&E1JAb@&>eC{wu(8h+9b$HTQm-1+k`c78tqoyM(1Op*eQcF-wU4n~yeL%!4o zCen2qDD%P7C|=F_mMD(el`9}NF%iF?zl6l(6zO?6A`wQ2JVkE^cTEi#Gzd;kPH5Sp zg~5Ss+qT7@m$f~*qeqWo+!tTyk?8L3fv#P8W96zJbpcAu696M*{=VU7v>!AE$1|15 zmAH7~C{7~7_`bcFwSjllnKIb}UpS#728)#0ve#Ig+_MH6jkddb<;X^)B*voa#C3RX z>!xc{jX|SULt&W1+>;)5Tgu@o2SJ(f;+(5DA4Kwx3|`T=IL8S!c zcy#RC85`EEL&pvs^bYLIs?u-2<=>;8KgZ%FOLV_^dV1o}{sSmfs2s|b^~IF0#&I&4 zJE!O9$tdDo5DjbVXPRbY{>qj4IsUw^T^>qMB8S2jHf}EXVvyE4G-399{=Zn6g-cez zywR<7Bnr57ZZEcn_@n1nzu-l@0tHRv$z2yZ0w?sVRsqFD$}~mh07@$Vt=Ly9!6mXe zTP2>!*zkk>6@`U$qu3a+*QcMNYnLwY|MXM5U$Z7$TwM6a!@~oyv9Sgh7&>GKs#UAX z(_(+--xq1=X$bx%kdw(iGna&6-%7*OK8(!co0ntTzC$Qo%m<9V41NR-L0!AKOUWrl)Y`S=U>%YL1~ z--8VPrj!Yqm%-wcm~X2NJ!r#d9_21Il#d|t%$x|M&-!Q9YL)O_zf zbZFlm1qwPKpx;2eihhat3$+gXBd0HL0^~YUEKI(i*tf@|!%~omj%A$(u1p&nOrV7G zjEEOc?ujpTfFcqO2}@KkGPi~JqnC^_*M*KWAo0YOl_*=X7y>2+VeJmxyc=_r37TND zfU3z*tdi(ohMOYYmbnlJ=`R!4+PUe#FsVWsxW8>k( za)D=M!jfjt5MlfPe>{8s0-<4Rr9bVYPDCm#V8%jH%7Us{u`)d!RoM8Qp%NojEP^l1 zMqU~64eagg#EA#ZRpuLkIYx8#gu*G{b`a%?lj0^RcopT#;ieo$X8(Z$5gi?kTD59n z&fFl~32b(+6YBu6YSV~A)*M7Wd4>()27QGCA`(FfFX~Z8j+1#))MhUKegrNYFjS(i zXi7Po+O}-wRGwtX0%hhp%ynbMQ0}?O6g5|xy4kVRSc^>{LS~9Zf-=X98)tCAUV_Iw zg`Ra5$sgqK;PF$m?l&BdpFJ1v-YFqbz;nu#pbHLWWd1O?3ZkE6u1~F1;tzTx3SeY1 zWjff|A?zJfW_BY4R5XYEd=|$oqlWxPLno3JdYSbFGP9vfM&d_Z`{I#4i3g34DBw0l z!3)L)eG)xAaANZc_?9VY2ArFh#jmJO77 z?9yL2Hgck=b9PXhXe|;27$|ek$TJj^Ja~) zblEaYnL1UxFw71zmTM?at+9N!$&}xHx;e=P-!_pTWj3S`kF3^dTtn-Oh^ovAqCYf&g0dFp)cI;A43&A}G&+o*ij6akE3-`T%y;m?gL??y{VO_l z=!pFJ?J<1VFutD!qLDK7NMs(Q8r7@A+1VLSpFZWWPU)E|8aR?NhmZ+W7Vip?ptd2H zKKZDFz#7JTZ(wq)6o$$?aT;@0Z^VqD0{|IiwrN}+UY;I^j)~=7oe`t@!`8+Y?b@|N zfdUQ~GI%i7Z`_EB7cUyztbMz72>U5BT=e0iNBBA@2HAzXV+n>4}5(F62IWbLS+y5Emz z7x5P2dW!k@aIaB=`t>n<>D|14 zKmc4_UC}onKp@kJyiCoc1RA0pU28}4eIsczsM+axPN!9v@z2| z`8HFUm_&vT>()h^)~(^~?Tx4?Z71pE$&&^|GIa0OjklR|LUg$;8c&>gl(bMM2UWZks%p%014i_$31V=|l zG;ZA3=zZ<=7ig0m|Kt&A0p_mR#Qj`X|GkTc&z>8MGvg8xu=j}m%rlndBwSWHk$K(wdiGzm@74K5hSW?!Qn@6N& zkhK8$cK(dDqq>7il`4Y+5r^R8qh0E7#PH#Wh=}01e@2fQW%S}QN))2l4I<10L=ClxW|4?IBCU$^l+ci;__}}p4!)Z|3sWX%u95oc zl?nw5I_PYwAQC?}RN~<5kcd1Yt&Ztri{(o+vFU^@nzuon+S;iSYyr8rxHNcpXs7Hk z68q**i30M7v@TSXxPlEN^D#T?s4;`^>yE?l_SP;>$P+Hw*kJG8?Q*@-Y%5Vf9+B3^ zZK_`RoWbYMpYa?+3%<|vH?Cj55o5<2RHqgxQ9vG%xr1etGl(s1h~0aBL9O>|qeu78 zuq%8!f`av8lGNGhof<cYZVz{+#lt*OlV-HPU`k3+vJfpcFan`&^9+7Vb@kSQ@v>Nh= c{2#&p0oP^uYKcd@B>(^b07*qoM6N<$g3%~JAOHXW 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..921200762e006edc61a58777357905362e2e28f5 GIT binary patch literal 10913 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 DULIR{ 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..5abaae3e0bab3f88c7f48d432c90924bbe5f3fbe GIT binary patch literal 16249 zcmY*=Q+y@Q^LA|8wr$%u8*5{4>}+hDoY;1C^X69zPrsnDD z?y7pKqSRDmkr4jORU(crhE;yL4yYLhY$JYbjO+hr-_RNn5U;F zi;aVwtC@+D1&gDLRo0~t0T`Glp}ds1hFA85A+*=GCtP9ovarITjp5}wcDwyaGxVz~ss)4%pwUc*}|Z~3GavFWFSHLujP`~B`W!KHJP zFlbWaSG&cF2A(BB(l)ULG*@3O~s@41po_ZAx;^K4dX7{|(4l z^xm=gZhFRoZ#b6~evmj2A8H`*Wk_R$z`qsll>Z6p|5AbpZWka4_5eQVbLIJ&OyDpY zA!AMYuRr>BmjR-8>IrnS0d`sTI91WB*bY>=)HS}c&b(=<_XM+N>S$4l1j+uihcfNo zqTpc|oZV>w`?*z%-3>E~)$1CwnGHt@QE)<%1$m5=PXH#EVP*-j3~r1R_^ZMRWP5|t zO9+PF#QWRpK<1UGw0+Tog`|!eP=;n&B!P}k6nMRaiuQiauxmz{f!+ zN#*ztm_MxAWUq5eC!fvzW`3;Sr)O@w#FG`mzmb4_Dl~B=X$b?S_~6hMPnQVaQi*;> zvp!om9~X4TfBZqu>2U1>cMyCC`4E9t^ezGPH#9VbP=Nzi)wN~lN3)HdLV=A}J%f-q zovr&~636B7R&tS`5McHCfUGFS?l)D0mS$I}@b!b8gmyTR&ksRU%B?ZtRM=jM$6DsN zCWYffusA|_%OCNGx6pxjoLg!9PQiYYR8&-hW2e!(VVv92#!xluUd*0w?Q|Dl zRdvTXnc*Kq?tgWmVMO2Z?>gZ~{$Cv8*B!=}mr5eF1YVOX5Mof zHkx^5!i6NC*CL#h^G1#lhh=5^c~ao3gS6uSa*;7I+c_aF9cA4CuMP)c_0sV;@Ebav zeVdywzKin%OBRg^C^g!gygr_0cA6WBnf>pXt(c~UTM7grv<4#S50!q7`w>Gc1J1HjWAP$`)QP1 z%pZ1;I*viUN-Q<5D1%R{gz|gHodHl8h>JX{v~e*=5x^|T%GW=uqXzqep*`M_ZO3Xi zH6-V%Jgd!dd<`1{58b)0owMwLn!o zp(UXvvTH_-e*Kz4=y)-uR(D5{`*o`cRj4#)UlTL0*bg|2KuoOLHlR<2ZqlQ)p!IKw^d>Q~Zs)ua zwpotWuIi0Qha;@yw4j^@z@@&Y_L%74^CN{?a_zl6Bw8M zd%Ld`;n+PMj%h`WzUX6CgAuBHXGa@yoPOTRg%)?VS@$ zzKklQI!UpT1Nq&@7Mm|eX0Hf`%ks?SYa837Z!_G0gaUY@EQA=%ZH=ZVkzX;K&`;WSy zfw!jcR{vAB!7OSGPT&dHDKQm;Weil<`P9_SrMX!^Rb}sYYuSsKzHl}xgbphlZ3oHj} zMvO4jDr@;9d)%{eF~JCj6OE)|H=9_My{&m;phdguUyU0c#g0EI#&`{el8grx609%n znKi9mtW0&9pF$_TmBbIfMW8Pg2myPZ=L$<<;&Biryc3c`Lql6ywdjX@FBm!U)*l4I;6f8 zwf|l&k}i55&0SEQ4gC~i)>k+j@FTKymQNHB+ILfwA2+eLhk(e9I1zl}X02iZCZ2ov zRqQU?8`S^FT7pe#Ur5z6$8a3IICUV(2(xwGo9LQ^Pc&kD-cP1%x{dx0twhar@;hvZ zkY3*U%+Xz~qEq!xi-_pIC~P~&F+)nsTKgWr&Nq<7cj2;xC;sh^{_#J-7gp=+qsy^m zdakjMv!To#tHqvU5Ko#KRJ)iM#&#MMN%Te_Z*)8syV%6$K;D#D;z7dfoQvy@0C!>z zOv~8XNVm(l^p10cU219S;O5_>pyQtV&hJpHbe`qO+lAifzx6go*zuvCWiztxc^WR? zo^48K+Q`Ow5#oS-rvX<*ez_2*TiiS}ns(@<&^-gwu%7!K@*;WcY+^u3ghEJ5%XA|v+b&DuxN^77J^{kWdZRdhGs#-?Wr_HeNX9L8P@|*% zp?ZeVo4V5iej;t`gE~#OYj1nX0uvj`Ox)oQ4K;^0{RcEmt6h|>MR(}0#w26-ydM7$ z$s?BDtEY!HkM9`IK{yq5gyn}`Q*(o1yFCNIZL*yQ@IB}!6L$PkG=VNJ$r>V(%HQhT zRY|ynsS7e$m#}E)__UiBlhIPn*cU|@I;-ruoANMpF0E3R9gU66L$TsrbG4e7IkNm8 z0WGnc*56xk^cJeZgE-&ojsK#w+oc^;I!UJbu=DPm)EuRwBHvV5mUtDbB{Bt^tTIYT z55ZrCkZ`Rw!%N9U>uL4tB%1=CGb=7ynV#F3|Sk zL6ec+tBs!C`p)pvm!5XpE(9ko#=knYMHqGL!a;gh4xt@oc$=|h5`!bjVv|cVXcFZy zup>)FQux;}Y^*m}L!+A@{-C>Z(TJPE<>sTgR2bQ)vbqVT?n&rpfnW{R5|@mSIcEY?yA$3&hNvUWjVKi&>rTDY>=k2CpQj*!Pyp6b&X z9UlKeDQNWe-P`Uw@wpNQqbJUNWjsp?sc*zFeK(MQ1V{IYY2TXAkZ?TAvSHX1zi20L zUk>@VAu`ftVzE=K#vwhreL(fRk)YmyIM@Uhlb{RPFu(7Qh9zg1d7va&+(MDjPDIRi zZz$PGNe-Ug^^EXOh&V9C^;dzh2nzcdrr11+)vwB=W+t=L8bh_Qgn#vl{w^A-K01i#^S-*U8Gab$l$1q_1M!6Ot1WQJw7l^KyPrlc524Rj&BbjzFa$L$@4C;Lb!3=!unDxUJMKu zSrS~-WZJT|KI2VQkgFd1DE~1>_!4M57R=E=z+8So z6sVFMN>i!lKTwf7;q|U=_Bs!q?rD*A{6=C$dsM>#hMSMue;3l8kzY_ zw!9v=DGm344it36_WsbsD+>LuhWE1~S%tKB5uU;@@n{o!P+XV3#+%mYwX27l)HD;q z1?yzFWjXW#;FHY_iNz>MLoViqy@i{NAa6GH^XJO58hROvxiLt%tDW*vn563r0DBZU(-;}*yWSTQS4G5si`F0 zgoM&@Ayezviy8FGLhdK=G?ZxH>J2{S>dz7wswkPKJSZ<^gKmVsu=g4w6H*+l#9SDJ zPgJRLn|{x5Bh&wYbABBr@A*bBGXZZbco(ps{>vg-^QWa}4%oxTcN|v_gTCO6#QQZ> zg4NJ}iPdSvg9_j^2L9iHzmy934(^a5`u+mmn1={@%dLe`@j2sl2{GT(;3|h^AX5Uw z9D_FtEF+BCybN0&AYbQMgA%GI;LiTe{lFOEXGjnb5x>Y>YiP#0;W+r0>hle`K-i0{ zP>*AxFDd}*yUXsQM~%0yO{p(8c65|XdxPch==4RgRXW{NLX%9YX51u!nh{$&rc0_G z*&S*Za(ufRpbPAS?><3*$>0F;Z-2A6$u0I3&P^Iuz`n{ZI+~>zWlQ7%e-u6UbxL>e zB689Q#V=2o6J46bcK@`0d~T;zeP&|-T-IdL>eB^y@u;)^jg!osy!hkLSIjaH)I{DVbXTAO1u>vGoI28M}x_bLw-u_HbZn~56Caf zNUybsS<$gbPeblzZ$OmW`IA~G>OL4wnH7;c=jF*JaNROyzjMvC@#N1g@m_c;cBzWG zFKa()bu`>3GCUCHHd{3(Ag)IRcKduN4GuJG7YOU(-)MiD9wx@y6`i$v+`GPG?!C8tP=P%KN!JHn4%d<$poh8UDl?cAU;<(0Qvs_H-%v zxw|eMHDN#Cm;0peV%-jR(PmML0tlKE)P?xas%f{7)8W&5N^=`l4%XwqbTN0sHBvP? zDIFjZ@&#A^rN!}XV#+Lee5YNrXBcT8J-uZaz)90&E@G6yN`=gVy>o0Faa+;|S6krM zGZ-6|#%`OqKX=yGRji${lZ)IJ{#Tn?N65v=Hl9E8j!EIVWoE%3@28~;=X^Z=xkpol z0oq@lv&YR9w`V>})Jw+V!c%ECCDWAO8TAfF{_RujOi!7_kJ$rNA*NyGI0_8xb#F&H zZMOuuP;vr_m9LVS;Mn^DMIMd-QbU4;g$-+dZpo}k0-@cqVH3$M=`9%Q>u-!F5VL3k z^K`-Of;D6uhdlyQ+TvGr|F+Q!?2?QIhb4|nZH8|g%`*bFek(dGu`9A5P*10IqYs9Q ziFkIepX|d`&x5V6$G;yKWM{K=%hGNDX=n(9z3!oazOTEdKZZz7UCbA^Q^)~n%*iWM z9GD!Xt};0s?R6JT4p*JuQ>$g}PE*3J#91kd%KKVx9IFC#8MP3jG&$m@!nk42b!ivj z`PP4Db^dg=wIG9BQMCleLU***Xs2lKilOr0#Vs0BN?ifVP<1_`^`i%`ZKJuaTnD|s z=cFxrKaz4W?s+9xEp zI4yv%VV{BRbm;{SCFO^8cd8(a4wTgK_mxU2epRlhW`hgmU>L&}JJM%!cgdEjn(MLM za5s{1sYqbVNL`*PC5;x(dx4sbmXwKlMJGTH$^AFt zL`w!InT4Nrs1$Q=GNowJOR<52j%92k>Vu)e{3HwBF7X|?pAsB4!u;jWuhy%+^Ax*% zk2#QE_86`fxNptD+TbEJyt6aBPV-IN^`G#hB4!Ss4!Hg4)FDkTi?Q=)?OMuuvn^4t zTcyVlPi|;<=DA1`;iW&5L^M7IKQYL&7ANUe{@a*eR5;wd+H1 z=?s5|74nJW9Y3vtBEcPU`)M5TYSOe2>S`2{OCbF1)g>;T#ftk2^qGJ`u|VEu-G@$3_GC_N;Glr-(Q7nL2s z^K@KJSD*vs@ZM%m^pG6ka=C7&bi*UZCxUDfN(Q^S4Ynt_f;>^e8lS_BW4ZbbW4j>+ zTE?0C1xS(>+m&;=TOlBpnVRydGITOF!1&udCxgbtTs)`{~bY&Ge- z77xatazzW{405|{xP%q%8=f)>mA^|nF=L=kcjFG8oVGWxc{rVl`tfV`#*bi6ex*5Q1%4aY7#upU7oS9}(kZI8Zwc)=yzW-8SexH2V5WwTMLa!0=g6koDqf7(M zHwt*Z5WL1^G3=Al^=3PSW1!TZElG8T%!7Eop>8kLU~B5zTFLrWU026Jchs0HwoC}9 zOZ_0~@zV7|N7%m>-w|q$=kLN@H^_$0d;TGZcPZ){XXklI$-$s7rN4DV8&`0;xqhzC ztIZyk55@~iJTgc^cNtPXd^_9-`iR9&Km}h*e$}qsYW`k+_f|TIOQ&0mwr*e;I{5lG zt!8_id8O}(pcpCx-t}O#3OwQW$hukE9T%LW#_N3CqX*t>8uS6_hq<9vKreaMOqznx;@p zmGM@|f32N*KcASXCgcf2lszvu`jp;tMnF+GW#s7`R?@D_5LcqU^eu^>Q05!0o;oG0 z|70l2u4Q<~)?0B&qH_*+Rc0|k#>I~x=#1aetPm=4h|WXz*0dR8!+dMaZgTA~um|M^ zU0EeXOQ744?h{u8yJ#6w|3T<-`XI(Et)Y_ao*&pn#w2O_yI!M4$`RkOV-l=8JQC)< zTrl!J8=^w2;O1HNy+MAeAJHYWD{WS#|1E$KU|osP2d|}mQzqvoSM<@2{pe<55%miD z%L}|5Cmg>#GD_W#)n%nm?M6Q-XSsPz7}EG#upjhbYcR^e;#K^I}960OZ1Ur1FU2|+T- zRp?T9^xIO;EBv5)o!qyyW^%U}uF|46rpG4n+-D;iJx_X-p}rPVS? zTLt4=Cw8qr&;~>oL!mILu-1u_Wf?{sq`F;rA{jv4vd;*H?R!n{ERuuOb#u08SuIsW4{$hzKAy@jS74L^OhKG zsz#U-17h~_G2C(3a;anqzHEPhklaalLaJVErnrNQ%cxRhWHNG(tUi1W$Luf5QD!jY zgcSq0m{@VIArq7@opG6B%d z^x#DcvB?yiK|Z?`Vk{`^+U#gjb8@bUB6#K*QIp6TmH6Rx7Cq;a6Td3ttvwS}`LP@8 zw3I0`V)nqa04(Tbh5qGoj}Wte*eDdzW8Q4&5?0S`!!bq$X5Rd|)@wp4q>uXzsF}-( z*IXZ9x?sS|KZD}HRqo7b&R_HiBpH%f~~zPt(d+J58p#JIL}>E0R?0^k>Zar?3Z}SH@KkgC}l@EV5@B;(*i1>MCB# zC7Tbo6~7=`m+$(6TyguU!} zMJ>G)3SqCF=v!odNQHxCm7geUu$p3u&k&PFBYgi*YgfkQS5)2^U36JePCm5E1WwLV z)|#{iDVWnB?YY!qQ8qD_;o~H)>2~Q6BN6ZsvCpwTTl|qTX!BC}8998bX-Q4RY#K+v zVORHj{Hey*Be<%O@S(sIr`?C%fY?uf?dI!=QGu(17e!J;GyXDp5am3nM~%U-ZGg8ou5-p?DO;}y|o!)GUIoM!>R}LL1x%{ag~Qhqjvhn zc@RbKG&3yWSQ3@fMY(J0eg+vy_~m2vZUmCWTI(X9Jf7aMP6i#oI*h|;ta8`Tt}Ir& zn^I?y18BcK3?%qohWek4MX1UnWy3If$Ejj4DIXWE+erWt6wGr)euxn8SeG_#OmGUn zmrhELOf&D7(gF{LPjGBfe^A`NPU_yKirtym)tR_3LW%tOK`XYNZz77C3u`9-$v`i2 zxqamI2LC6ed4K`Q_A)>V{D2o&4MPc-Q+3A3oG9`L%V^oQW8TELoZ{}!$YUZ z7~Xc#I&@j*B<)+hgvGnS4{#XN3u>BX$Rq5Z)HRRF)Oc0kRcmHE90yFnB#kpBcTJCN z-U@(N7N+UnQ~ar>#kmbT!SN0Z!@Vk7XT)s9;8aig84D;!O>D}d*ch|oa_KAqQt#Di|%C!9mpZ2C>j^jgCOfO4Z| zZ+@ou=##Yj{y!#XqR_4oOg$uhU=HWn?jL7wfM=d7QVg@wDdrMn-Rm*&*rS1n?p%q5 zS;!G)g(4P9mzDU(|)rmE8G8PeV(GL$9k7)fo59XcXh9RdHR>ke*Olr#> z(c26{H^O|?DZFaXWF1%mw{5sRvvSPg)XiU~lX#*TH{H72vuj3wq z1cTm?(a2fMp)0nd_GWew!6kNQ_O1=EL_|4rGmeb!uNot3Vm7=*VZJp5`5@X=4SMs< zj#8`pL&df?4F#Och2;<#Ewv;WL?jddBrx;lIb*k}HRas$IE??Q8*XWjKGFN&_CVe? zd|G*Vjl$1Iw$q#P0&6zkpOc8+2Tahz0q4ras=XBOW!l*TL+LOHUB>ur-X|^RE{DTq z8Ls;yb>0y>ORX@Q-SZdLDdqmzSebq4iXZv3+t1ub^=>_Geo;pX6Uu&x{JMtK?k+4K&6 z$=8A?%X7jmXM`lZ60Wl7NjA&^?12@j!vn>%Lib-y{dz+ldhSh9k*p zi(@d8pjb`AUorX$yggo zo0HNh!KGs9tGM~)MSwx-WN7_HfEekG1RJ!xGGZ^x2Fz~#&snM3%!1JUO=tA!BxRnA zz9A4k2OkBSnjY|4vpxEFu^APIHG^@}Vy0`pQrB9bqR?Vmw^&FIxEgwL;Uf3gUbgh1 zaE?9Cc3a^a`yD84wmP1uSLDxh`dxbTLoG%pXmX@ZF=#SWAC;6`fJP?r@QN=wsjRdEj<9R-yCE-yV~);K1rRfU@fcCou(|M2H>3U|N9qQUEO&$u0l#ms@GFa z)vsVFcs(~-uWgg#W$IHBm86_1D9ehb3BODF+0m`|r`9j3`5)U;U#1TAV5XOM>U9TL zeNCSSL97Vf_-PKDj+A0Pv3W)m4}QmaQ_Yi&s86~XdCoI-q`iZJLxi=TI`R*dl_}KC zD+s3u{GT>1X#_SZ1oyo8mgU{_zWV0l`?0;fazXRx=sU-YMa(LBFB7vB&`rTCW6q*j z3$fYKJu+wNS=tf-UFk{GkSCvhg`F11&*?1}7Js&l3u#<@8{+ zeyduslgabzYyZSwPMe;P5a!NKqMLi0cs&lgc%b}`O4aIfPTUWI3;#`M+NDn#ndRl> ze$FD)V58Gg({68%??+ow*1O>aokvpgSMi0f;)$DGfu49QiT9&crTkm}1Zx-)UU*am zvM83eK=Shs+E#efb%Kh zlPqP4tdcDhWw%sYG-ws|F}Bs^8^IgsuBmV zs{l4k8guyaL3&3g4^Q>D>r;yU_J^ovSC>GEfSG3&LoO&N@n<61z`?a}5w$K@Hk)Rj zy!wX!f&0%Qa+10ERbTeTJfxaN-)#Q|;Gy-6hWG{9sYj&`a-YwjK; z-{!d`5;XhS@e^M;i+AL2*`Haq>S0=x%aA_9HN++Bt+w2FgPRbJ3eYv_eR2QAu`<`V zR(`S(2WE6?O?1~UH`!}x>Co-V7hyWRot_hngt^b0BA88Tf99dLTCm{q9ATv|B{2Xg@q(5bAJPi8aMdvwqOtwyC&uJ+*7+D22}Cw3q)6zi`a;V_A^QrhTN+h#+GetHr zTG8e-Ux7>`(eR_Hl5u9IaaeXqiIZH!>3X20B zpp?NOTd=tCV|rx+&YKtv_3HCn+>2}5a^L=WFtn8U`s|w|Pk}rPxDd&d+Q1_li`^QX zRmD@TKm_Tqa)PHQ+A`cVMp?W4)Tq9bNM1&S z&sVx~l5FvXX_}oCfwow@_5Mwt z@~z9sIVA(5nUL`$M4uaXP|bk7ze87OF^%9RCX+P`Pef@Yg#An`^5i2$3bo* zv?(c&w&j;sMNCspN4J?Ri;DsdIPUp>QS|*3WZ+)6=lrXnj8HRN7RD}+^cWI$XzI@k z=-Z=+qH(F~5fJHFe1_BOy^TS;4>q;vC()KxWhf*pww2A9@lrz1Z0C%ceJ1Y|QE@7@ zYuHST*~~fpv&|;P1o!Fw9xE9w z6R{lV_x1=MT4N4X@C8RDlZX2pD=t;yDhzQ%T*BW9YBG+i98T<$b%PyId$8!kDIj?x zE<#b_*J>fzXemZ3oz_<3ZT+gNFFpHOSi6EulkJyRn~ zinytPT`pTJ^S|aZZA^OI+$#%KRUSRe0XI4kLVM{aJHQgH zaG`!~F6K0<*wmU=a2_xrND+_R8T*u?WBL&Zc04ap@=mbiqQR|^Yc-HeE#&vWp zoEf7YbR!01bZ$xba5%r{YB!b(U^3l&v9~MHdMoNmgS?fcU6JWfG=@YTzb_8+T9dj4 zXD06(i6|&1x{)wIgJfNQd-$1 ziWTks$sZivJfWd?O+u<88#!U?LkHqK0j6i)k!mdIwWix9p#A_zefLYEbPA zfmua2cN$kl{9&S{_y&Jb4&_c<_G(y|u;>%p;>yA@5CRk{zD_@>V>}Y;HtF}2ufqnH z+jePq`o~&4Yu+v@{?-sNOOxvv-{5l8s;aOZ^T{RP3G)oWCFMv!(8Ky7JX72jkb* z*J5&!J0yovhhcX|h)d3HO(Vaw)qUi<+&;9L9090XsoX*@>FcPpw6gbvyqaoCne&y= z2SpJSIbK0uDWJf0)XzN32M=AqokYFLTAvP2Hzq|tQkfZSk56n0r7cy0Kxh~VckyO} zHIm0C&&sy1bzka;3D&_WiP=xv*N2&H4U^2lwKx)6gb|wS<7nlot6#UWlgQ2OL_N2- zlr~wfhf{=Zm#f(Rf6I#02g1v*AC{i0yqt^g?xl3B=`PpXLnNRPcl)IW{BY>0YUEWK z8XLt+l~mx6LX7}#pDilb1@O$>zk&|kD-mz=wky?&8HFGsca1Y6Cke{Qn?F;&C0-!; z{OqvicEkNDYB)DYxTA}iuq2p<2@76z#g9DTUGWmQ zJCMhiEUTHl!;)WtVD_i9^rm)J^^&oSOU;KG*7f}(%%W#2nI0mloJuikzDZ8VU5{7y zWVXUJ*v-5Mz>>e0`0gMOffIahUhtVl-uUSKDpwtdriC~vz=Cx|fmxA;@&W^dVM3or z^(*F)I+P4xk{Z4@(h>CKSVh7km$jvm{Fo(+TdON6(Xtm{<7rPJdcRvITozKEluGCH ztTE>QC{=XdEf|!mL{ky+ zf|!DoP5HG7GlX3&F)HX+zSGE2^oEaz3au++x&xs$RP!F0(b4gv3cgvM2sTB~;h%CP z9jn%t;3)c#XFo~Gt68Dc4ArFEnm^tVMuo^SqkKSsj&&IO%A zFJ^ms*=YMl;unFYTg;n97xGvPqJ6Bur0&9zM;w}^+unId3eF^lMG$w)5GCesv`E-c z-P&l8=2UC`;VG1GC1YM$oK~8UO;N9HfGr#(IR?~iOs3>bc&5>|teqeCqP$bjzVqn8 z$dgKaJ%72Q`(8uzPskY}jm0q0pv^Xe74zdLUFTFUQAeFTP0EZ$4PO1Pkt7;XC0)ix ze;*XJb)gUj!0s2Rs$<@e%I9WeTyi(6t|f&lx4NqfJHq~SRM9V7#sode6Kr4T$w+E3^2`?nC4rqHy6Pv0>Jnu9c{pSb3Ez%F`AL07-*a*+@%WhzXqQau zRjZ{e^}tBx^}s5j6JGn{7Oam1F|r;{4e7=;TYsv_F(#S!#SE^Vr>$EY|`3;d zrs*n33A}!Hm>f;YkIJ==VnMlZkY{8rfHXO2b`OQSPDiLbBt_(kxg|pUeq;t{2QiZ# zSo_>iG*P)%V&}1afF9@)X>kR(%ZoZfex90_lX77M5jYX*fK}dPAn#y(vf;$|*#>9D za2A>^W5VrKGSFgjWX@NRc6SDTk}Z5ykXt)R-4@3lF!oN7yZ@#Hn5D2_mhQk{k3U`( zW(8S&MPjKLzu(mk8X#y0zIeeQj>n3$XnA6^X97*1=iTFee7bl}Uy6zfSKzNk`C^*9 zOo40dkM1mk5NF`4$-vXSIC(XO9{f|AQC!oR>8c>zyRhE^%(~w@))&BY)XfQ}BMEe12s~A<@w3e{s-QftTYjrmMva zif||V)?@u{|40aG7(&Pjn-6gO4r~dLVW8$hK1Aw3dY`8{ygF!_{iHsU)I%Wssv!6G zuu~CBi}yLJ$FzR<>s6JT$_(wZcLXg3&Q=0Nt&}ixPPJ#CQi@GcB z_9)jDT=@?S7twCg@^XJ`#7*g!gNbpaBaLh+ni$lSSz{adg!wfnfNHN#eF@A{Qa%Z!Dk zG`W1iJDBv#4Ge1-ie{_e&WTl`e9-=$%oaWy>T*sYkECF`BT37({9#R1=8sn1`EU24 z1Ml9?m8-@;eFVDw?HOL{fj@LfJDn8f-m3Gz>iNHumDt;{Yea}Xj zHs}h{q8vu_aj5TX-`U*{9bq*>NRWYKOSVo1%#K=N0FqPxwX^1v-4?U**upVX>CPOv14K@g@q$2MvuG8h%KIpA zF_D8Wgq1$|u#K7qR*xNA#4z$*Lykh@>0jBuZn_JP{Ty;i5Bsf{^>z%x86KN;JonRu zffPpVeHQja<{LO3h#&jGQV4YYx>*D59JbN9<~&_ry-3QD`%qclV84Iy8KJ1Q&lT)Y zj3$2tT^RDL>L1532WH`geujIv(Y2d$Yk8WrMzAQ4x&7(Fl{fc~kHg&?9dq@rRwXdv z%6xNU^9GQWOr#@AHp3hR>d(t?$hiz_Az3*y@rWsmWVxii-RD~+noNHyYZlc-P4{+Z zZ>&UjK7rKk0-iQ$!Hq{MwMNvbed-5j2|gn&Kc1Zj;U;rAWiJ7T<#lvpCty^F zmpq4qpoCchwZml+meY&=q>f~#m>BH+tgvEXHGb{8Cz*Rz-3POGF084fH_@k%%wv2x zYldW2koj8Ar$}JWryCN!kOH254!hYdcX__)>Hb)o_g$%a^?HNlSn&JH9pcB;@w(ap z5x!GLXwG}nddZ`(h^0h`;<>Nug#kZHA8m{>Ko+gGfz^d0PC5%t53DR@9<^bfIs7yB zvs#zJ{Pc^vs?_SP64SU@?vz$MBnt?Vu>Mm{z1bBLUS?Hjm~U25a=WzkGbG@1K@>GX zuix~Zvl%!5wl^0qb2~-ufnq{873z3c;3luU1xghJT!nxPNqi)BK6KLQRcG0N9v#F|dJQyx&j z=8%h! zOeCs^m=C)<7@k{*NuU31ikjdvI2shq8&Cg@hG@O#`!#4Nl;-wI)Cnv{z+?W6{M7%6 zc(GbHWN|BiRrZueOCmteYxoBRRMWe&!Id4M78YwRZ)=mxH_)qijvnu;s^kHWA@$Vh zLy$&HHoprTCJBetbZi={dx$?*jVki#LUqh$mygNf`O2>0&@*oN@zIy22}LSBCR3`+ zPok-uuBE0}^nN#o%(vzf4A$eX^PuRGuZp4766-n7@<9M&&}(>}V1QA&lgyqB&yUTj z#;qx3KUt&S;YbC2T>M-!A>-ncHJ z_vNHgwx=iR1=6&gbD|y;@NbV-xTD8{)@YCC8!^|{QkMz+bImcE@IC^3|H{sxcIe_@ z82c5DRl!t^ptLd@T$BO46KAL-l`7V+XIF|6l1k0_FZ?~Rq@X_~3OoHTcgyXrv<>EC z!Cz)Jpli|m+WB(Fo+dD-aMN1g6_hfY2SYXBghb7yE^wmy_k-Q+g+ZFTNNeg3xTg;WHdKdM;=l`NtvT8(dZBKQ1xiiecwaE_iu(<)VnfF0BK_ zrY>QyJWOv>d(6t!<32+LMC7Yn- z0v?5y`ZS{vV?^Un(i)Gt;(v}bv_@)w8<5gVY(j>AV;(_gg=&8)Y^ht2r z8VlV2Uj}j_UVkfXLt(%8HL}ZAu(Q*JOhklSeZcbP%R!n14Y4v_>B_~! z*^+Eam9FN-XeTrxo7X5BHOJPG-rSkYPo6K$)#+M@F+)Z>4?#aha~NyY+HW6!aCLUM zSG(m3dC%6?_L1ic-gF&DC7h*_w!udP_)#zQ&&Jov9J_OA+ns?ZjRkUoP$4ISUT z3qf8szhTxd8ZUT1baqyUPjC&M)o+#w>_N`;V&y`f=YKD=(Jab4NB$fd4=V?>(=d#; zkrexwkDVjw3wkd}4nfq_^D{NVe6>RtAdjcv%^1ceilw?AgZ%0|m%d-$&*$_~%Xy0f z=uvUBzEWJ&P1vThYbJV!hn#;uLf%b{K5J& zapKp%Hdo7yo*iTd+&1e9E`ZrJ>p`iJfq?;%m^2m@Y>t61kg&u;z6C&EH+qfi)0?Rm z$ryUI`O2vvAjS+849Gr6gH2I;0^d>}Y`pJFX0q5usjb?KjPuNe>ye7d_`EY7uZQiQmaR{n;G3TJV%E9Q zs{e;2sRW;25(KLN$1v%yG;$6O2y6xo9HzT);IHHw6ZJe@B*ubjHYf&B{0Zez_d4f0 zf}IjrdId`z_#a^kN@n!6(db9Td>JNRz%ZcC2)Eeuf__Esaff6BlK+PT<#k{dsFsHf ziY|Tusfa;&68b-RFcJLTQ82lSuxhz)yge4&=DeU@-z+^|>n}0GyTqu>i9GvqkpEw! gx;3K+!#gR`x_T{pm_624FFlyNw2D-XgmLiy0evfgJpcdz 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..7c4b32fbd7ced11e5b13529cd4ccb183c9e3989e GIT binary patch literal 6010 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 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..d100921057f6be2e7e7ae38a676728389a227b26 GIT binary patch literal 12916 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 Dt5KGy literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json new file mode 100644 index 0000000..9f447e1 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "background.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8e21404806af591e5f4e4ac12eddcde9d2602abe GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*6yfBye(&%nmV%p~xY RaWhby!PC{xWt~$(69CA855WKc 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..00cabce --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchImage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchImage@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchImage@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} 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..baa5d781843fe31ca79aeffbb1ac8536dec32474 GIT binary patch literal 10282 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 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..ce6e657d1159933bd887830f1bf94f622356e451 GIT binary patch literal 20236 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 J;=R%5{|_A%Y*+vQ 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..7aa6dfb --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..1cffdcd --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Ta Running + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ta_running + 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 + + UIStatusBarHidden + + + 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/app/routes.dart b/lib/app/routes.dart new file mode 100644 index 0000000..b9f78bb --- /dev/null +++ b/lib/app/routes.dart @@ -0,0 +1 @@ +// TODO Implement this library. \ No newline at end of file diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart new file mode 100644 index 0000000..7ace1e6 --- /dev/null +++ b/lib/firebase_options.dart @@ -0,0 +1,62 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for web - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for ios - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyDcIQatv2KWTh96025wlFNEbH3xH2MK88k', + appId: '1:888886225940:android:c49c02701a3ce79804cb01', + messagingSenderId: '888886225940', + projectId: 'ta-running', + storageBucket: 'ta-running.firebasestorage.app', + ); +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..50fe1c8 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:ta_running/screens/splash_screen.dart'; +import 'package:intl/date_symbol_data_local.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); + await initializeDateFormatting('id_ID', null); // locale Indonesia + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('id', ''), // Bahasa Indonesia + Locale('en', ''), // Bahasa Inggris (default backup) + ], + home: const SplashScreen(), + ); + } +} diff --git a/lib/routes.dart b/lib/routes.dart new file mode 100644 index 0000000..634bdf3 --- /dev/null +++ b/lib/routes.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; +import 'screens/splash_screen.dart'; +import 'screens/auth/login_screen.dart'; +import 'screens/auth/register_screen.dart'; + +final Map appRoutes = { + '/': (context) => SplashScreen(), + '/login': (context) => LoginScreen(), + '/register': (context) => RegisterScreen(), +}; diff --git a/lib/screens/all_activity_screen.dart b/lib/screens/all_activity_screen.dart new file mode 100644 index 0000000..a9a7a58 --- /dev/null +++ b/lib/screens/all_activity_screen.dart @@ -0,0 +1,135 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class AllActivityScreen extends StatelessWidget { + const AllActivityScreen({super.key}); + + Future>> fetchWeeklySummary() async { + final user = FirebaseAuth.instance.currentUser; + if (user == null) return {}; + + final snapshot = await FirebaseFirestore.instance.collection('activities').get(); + final Map> weeklyData = {}; + + final allDays = ['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu']; + + for (var doc in snapshot.docs) { + final data = doc.data()['data']; + if (data == null || data['userId'] != user.uid) continue; + + final timestamp = (data['timestamp'] as Timestamp?)?.toDate(); + if (timestamp == null) continue; + + final weekStart = DateTime(timestamp.year, timestamp.month, timestamp.day) + .subtract(Duration(days: timestamp.weekday - 1)); + final weekKey = DateFormat('dd MMM yyyy').format(weekStart); + + final hari = DateFormat('EEEE', 'id_ID').format(timestamp); + final jarak = (data['jarak'] ?? 0).toDouble(); + final satuan = data['satuan'] ?? 'M'; + final jarakKm = satuan == 'M' ? jarak / 1000.0 : jarak; + + weeklyData.putIfAbsent(weekKey, () => { + for (var day in allDays) day: 0.0 + }); + + weeklyData[weekKey]![hari] = (weeklyData[weekKey]![hari] ?? 0) + jarakKm; + } + + return weeklyData; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text("View All Weeks", style: TextStyle(color: Colors.white),), + automaticallyImplyLeading: true, + backgroundColor: Colors.blueAccent, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: FutureBuilder>>( + future: fetchWeeklySummary(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final data = snapshot.data ?? {}; + if (data.isEmpty) { + return const Center(child: Text("Belum ada data aktivitas lari.")); + } + + final sortedWeeks = data.keys.toList() + ..sort((a, b) => DateFormat('dd MMM yyyy').parse(b).compareTo(DateFormat('dd MMM yyyy').parse(a))); + + return ListView.builder( + itemCount: sortedWeeks.length, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + itemBuilder: (context, index) { + final week = sortedWeeks[index]; + final daysData = data[week]!; + final totalKm = daysData.values.fold(0.0, (a, b) => a + b); + + return Card( + color: Colors.white, + elevation: 3, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + margin: const EdgeInsets.only(bottom: 16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.calendar_today, size: 20, color: Colors.blue), + const SizedBox(width: 8), + Text( + 'Minggu dimulai: $week', + style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ), + ], + ), + const SizedBox(height: 12), + Column( + children: daysData.entries.map((entry) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 2), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(entry.key, style: const TextStyle(fontSize: 14)), + Text('${entry.value.toStringAsFixed(2)} KM', + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + ], + ), + ); + }).toList(), + ), + const Divider(height: 24, thickness: 1), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + const Icon(Icons.directions_run, size: 18, color: Colors.green), + const SizedBox(width: 6), + Text( + 'Total: ${totalKm.toStringAsFixed(2)} KM', + style: const TextStyle(fontWeight: FontWeight.w600), + ), + ], + ), + ], + ), + ), + ); + }, + ); + }, + ), + ); + } +} diff --git a/lib/screens/auth/login_screen.dart b/lib/screens/auth/login_screen.dart new file mode 100644 index 0000000..eaa5a03 --- /dev/null +++ b/lib/screens/auth/login_screen.dart @@ -0,0 +1,229 @@ +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:ta_running/screens/main_screen.dart'; // tetap sama +import 'register_screen.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:ta_running/screens/super_user_dashboard.dart'; // pastikan path sesuai + + +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + + @override + State createState() => _LoginScreenState(); +} + +class _LoginScreenState extends State { + final _formKey = GlobalKey(); + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + bool _obscurePassword = true; + + Future _login() async { + if (_formKey.currentState!.validate()) { + try { + final userCredential = await FirebaseAuth.instance.signInWithEmailAndPassword( + email: _emailController.text.trim(), + password: _passwordController.text.trim(), + ); + + final user = userCredential.user; + + if (user != null) { + final doc = await FirebaseFirestore.instance + .collection('users') + .doc(user.uid) + .get(); + + final role = doc.data()?['role'] ?? 'runner'; + + if (role == 'superuser') { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => SuperUserDashboard()), + (route) => false, + ); + } else { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const MainScreen()), + (route) => false, + ); + } + } + } on FirebaseAuthException catch (e) { + String message = ''; + switch (e.code) { + case 'user-not-found': + message = 'Email tidak ditemukan. Silakan daftar terlebih dahulu.'; + break; + case 'wrong-password': + message = 'Password salah. Silakan coba lagi.'; + break; + case 'invalid-email': + message = 'Format email tidak valid.'; + break; + case 'user-disabled': + message = 'Akun ini telah dinonaktifkan.'; + break; + default: + message = 'Terjadi kesalahan saat login.'; + } + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(message))); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Login gagal: ${e.toString()}"))); + } + } +} + + @override + Widget build(BuildContext context) { + final inputBorder = OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: const BorderSide(color: Colors.blueAccent), + ); + + return Scaffold( + backgroundColor: Colors.white, + appBar: PreferredSize( + preferredSize: const Size.fromHeight(80), + child: Container( + decoration: const BoxDecoration( + color: Colors.blueAccent, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40), // untuk push tulisan agak ke bawah + child: const Center( + child: Text( + "Login", + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 32), + child: Form( + key: _formKey, + child: Column( + children: [ + // Logo di atas + Image.asset( + 'images/run.png', + width: 95, + height: 95, + fit: BoxFit.contain, + ), + + const SizedBox(height: 19), + + // Judul + Text( + 'Running', + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + color: Colors.black87, + fontWeight: FontWeight.bold, + ), + ), + + const SizedBox(height: 32), + + // Email input + TextFormField( + controller: _emailController, + decoration: InputDecoration( + labelText: "Email", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.email, color: Colors.blueAccent), + ), + keyboardType: TextInputType.emailAddress, + validator: (value) => value == null || value.isEmpty ? "Masukkan email" : null, + ), + + const SizedBox(height: 20), + + // Password input + TextFormField( + controller: _passwordController, + obscureText: _obscurePassword, + decoration: InputDecoration( + labelText: "Password", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.lock, color: Colors.blueAccent), + suffixIcon: IconButton( + icon: Icon(_obscurePassword ? Icons.visibility : Icons.visibility_off, color: Colors.blueAccent), + onPressed: () => setState(() => _obscurePassword = !_obscurePassword), + ), + ), + validator: (value) => value == null || value.isEmpty ? "Masukkan password" : null, + ), + + const SizedBox(height: 36), + + // Login Button full width + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: _login, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 14), + backgroundColor: Colors.blueAccent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 5, + ), + child: const Text( + "Login", + style: TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + ), + + const SizedBox(height: 12), + + // Link ke Register + TextButton( + onPressed: () => Navigator.push( + context, + MaterialPageRoute(builder: (_) => const RegisterScreen()), + ), + child: RichText( + text: TextSpan( + children: [ + const TextSpan( + text: 'Belum punya akun? ', + style: TextStyle( + fontSize: 16, + color: Colors.black, + fontWeight: FontWeight.w400, + ), + ), + TextSpan( + text: 'Register', + style: const TextStyle( + fontSize: 16, + color: Colors.blueAccent, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ) + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/auth/register_screen.dart b/lib/screens/auth/register_screen.dart new file mode 100644 index 0000000..075ad52 --- /dev/null +++ b/lib/screens/auth/register_screen.dart @@ -0,0 +1,251 @@ +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:ta_running/screens/auth/login_screen.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; + +class RegisterScreen extends StatefulWidget { + const RegisterScreen({super.key}); + + @override + State createState() => _RegisterScreenState(); +} + +class _RegisterScreenState extends State { + final _formKey = GlobalKey(); + final _usernameController = TextEditingController(); + String? _selectedGender; + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + bool _obscurePassword = true; + + Future _register() async { + if (_formKey.currentState!.validate()) { + try { + final userCredential = await FirebaseAuth.instance.createUserWithEmailAndPassword( + email: _emailController.text.trim(), + password: _passwordController.text.trim(), + ); + // Simpan data tambahan ke Firestore + await FirebaseFirestore.instance.collection('users').doc(userCredential.user!.uid).set({ + 'username': _usernameController.text.trim(), + 'gender': _selectedGender, + 'email': _emailController.text.trim(), + 'role': 'runner', + }); + + // Arahkan ke login setelah berhasil + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const LoginScreen()), + (route) => false, + ); + } on FirebaseAuthException catch (e) { + String message = ''; + if (e.code == 'email-already-in-use') { + message = 'Email sudah digunakan.'; + } else { + message = 'Registrasi gagal: ${e.message}'; + } + + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(message))); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Registrasi gagal: ${e.toString()}"))); + } + } + } + + @override + Widget build(BuildContext context) { + final inputBorder = OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: const BorderSide(color: Colors.blueAccent), + ); + + return Scaffold( + backgroundColor: Colors.white, + appBar: PreferredSize( + preferredSize: const Size.fromHeight(80), + child: Container( + decoration: const BoxDecoration( + color: Colors.blueAccent, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40), // untuk push tulisan agak ke bawah + child: const Center( + child: Text( + "Register", + style: TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 32), + child: Form( + key: _formKey, + child: Column( + children: [ + // Logo di atas + Image.asset( + 'images/run.png', + width: 95, + height: 95, + fit: BoxFit.contain, + ), + + const SizedBox(height: 19), + + // Judul + Text( + 'Daftar Akun', + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + color: Colors.black87, + fontWeight: FontWeight.bold, + ), + ), + + const SizedBox(height: 32), + + // Username + TextFormField( + controller: _usernameController, + decoration: InputDecoration( + labelText: "Username", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.person, color: Colors.blueAccent), + ), + validator: (value) => value == null || value.isEmpty ? "Masukkan username" : null, + ), + + const SizedBox(height: 20), + + // Gender Dropdown + DropdownButtonFormField( + decoration: InputDecoration( + labelText: "Gender", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.wc, color: Colors.blueAccent), + ), + value: _selectedGender, + items: const [ + DropdownMenuItem(value: 'Laki-laki', child: Text('Laki-laki')), + DropdownMenuItem(value: 'Perempuan', child: Text('Perempuan')), + ], + onChanged: (value) => setState(() => _selectedGender = value), + validator: (value) => value == null ? "Pilih gender" : null, + ), + + const SizedBox(height: 20), + + // Email + TextFormField( + controller: _emailController, + decoration: InputDecoration( + labelText: "Email", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.email, color: Colors.blueAccent), + ), + keyboardType: TextInputType.emailAddress, + validator: (value) { + if (value == null || value.isEmpty) return "Masukkan email"; + final emailRegex = RegExp(r"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"); + if (!emailRegex.hasMatch(value)) return "Format email tidak valid"; + return null; + }, + ), + + const SizedBox(height: 20), + + // Password + TextFormField( + controller: _passwordController, + obscureText: _obscurePassword, + decoration: InputDecoration( + labelText: "Password", + border: inputBorder, + focusedBorder: inputBorder.copyWith(borderSide: const BorderSide(color: Colors.blueAccent, width: 2)), + prefixIcon: const Icon(Icons.lock, color: Colors.blueAccent), + suffixIcon: IconButton( + icon: Icon(_obscurePassword ? Icons.visibility : Icons.visibility_off, color: Colors.blueAccent), + onPressed: () => setState(() => _obscurePassword = !_obscurePassword), + ), + ), + validator: (value) { + if (value == null || value.isEmpty) return "Masukkan password"; + if (!RegExp(r'^(?=.*[a-zA-Z])(?=.*\d).{6,}$').hasMatch(value)) { + return "Password harus kombinasi huruf & angka"; + } + return null; + }, + ), + + const SizedBox(height: 36), + + // Register Button + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: _register, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 14), + backgroundColor: Colors.blueAccent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 5, + ), + child: const Text( + "Daftar", + style: TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + ), + + const SizedBox(height: 12), + + // Link Login + TextButton( + onPressed: () => Navigator.push( + context, + MaterialPageRoute(builder: (_) => const LoginScreen()), + ), + child: RichText( + text: TextSpan( + children: [ + const TextSpan( + text: 'Sudah punya akun? ', + style: TextStyle( + fontSize: 16, + color: Colors.black, + fontWeight: FontWeight.w400, + ), + ), + TextSpan( + text: 'Login', + style: const TextStyle( + fontSize: 16, + color: Colors.blueAccent, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/create_event_page.dart b/lib/screens/create_event_page.dart new file mode 100644 index 0000000..9379c94 --- /dev/null +++ b/lib/screens/create_event_page.dart @@ -0,0 +1,204 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; // Untuk mendapatkan email user yang login + +class CreateEventPage extends StatefulWidget { + @override + _CreateEventPageState createState() => _CreateEventPageState(); +} + +class _CreateEventPageState extends State { + final _nameController = TextEditingController(); + final _lapController = TextEditingController(); + final _formKey = GlobalKey(); // Tambahkan FormKey + + static const int MIN_LAPS = 3; // Konstanta untuk minimal putaran + + // Warna utama yang terinspirasi dari gambar Anda + final Color primaryBlue = Color(0xFF42A5F5); // Biru muda yang cerah + final Color lightBlue = Color(0xFFBBDEFB); // Biru yang lebih terang untuk background + final Color darkBlue = Color(0xFF1976D2); // Biru yang lebih gelap untuk teks/ikon + + void _createEvent() async { + // Validasi form secara keseluruhan + if (!_formKey.currentState!.validate()) { + return; // Hentikan jika ada error validasi + } + + final eventName = _nameController.text.trim(); + final totalLaps = int.parse(_lapController.text.trim()); // Sudah dipastikan valid oleh validator + + // Validasi tambahan untuk minimal putaran + if (totalLaps < MIN_LAPS) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text('Jumlah Putaran Tidak Valid', style: TextStyle(color: darkBlue)), + content: Text('Minimal jumlah putaran adalah $MIN_LAPS.', style: TextStyle(color: Colors.grey[800])), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text('OK', style: TextStyle(color: primaryBlue)), + ), + ], + ), + ); + return; // Hentikan proses jika putaran kurang dari minimal + } + + final totalDistance = totalLaps * 400; // 1 putaran = 400 meter + + String createdBy = 'unknown_user@example.com'; // Default value + User? currentUser = FirebaseAuth.instance.currentUser; + if (currentUser != null && currentUser.email != null) { + createdBy = currentUser.email!; + } else { + print("Peringatan: Email user tidak ditemukan. Menggunakan email default."); + } + + try { + await FirebaseFirestore.instance.collection('events').add({ + 'name': eventName, + 'created_at': Timestamp.now(), + 'created_by': createdBy, + 'start_status': false, + 'participants': {}, + 'total_laps': totalLaps, + 'total_distance': totalDistance, + 'type': 'track', + 'is_started_permanently': false, // Tambahkan field ini + 'is_finished_permanently': false, // Tambahkan field ini + }); + + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text('Event "$eventName" berhasil dibuat ($totalLaps putaran = ${totalDistance / 1000} KM).'), + backgroundColor: Colors.green, // Warna hijau untuk sukses + )); + + Navigator.pop(context); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text('Gagal membuat event: $e'), + backgroundColor: Colors.red, // Warna merah untuk error + )); + print('Error creating event: $e'); + } + } + + @override + void dispose() { + _nameController.dispose(); + _lapController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.grey[50], // Background lembut + appBar: AppBar( + title: Text( + 'Buat Event Baru', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + centerTitle: true, + backgroundColor: primaryBlue, // Warna AppBar + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), // Sudut melengkung di kiri bawah + bottomRight: Radius.circular(20), // Sudut melengkung di kanan bawah + ), + ), + iconTheme: IconThemeData(color: Colors.white), // Warna ikon back + elevation: 5, // Tambahkan sedikit bayangan + ), + body: SingleChildScrollView( // Agar bisa di-scroll jika keyboard muncul + child: Padding( + padding: EdgeInsets.all(24), // Padding lebih besar + child: Form( // Wrap dengan Form widget + key: _formKey, // Pasang GlobalKey + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, // Agar elemen mengisi lebar + children: [ + Center( // Wrap dengan Center agar gambar di tengah + child: Image.asset( + 'images/run.png', // Path ke gambar logo Anda + height: 80, // Sesuaikan tinggi gambar + width: 80, // Sesuaikan lebar gambar + // Anda bisa menambahkan fit: BoxFit.contain, jika perlu + ), + ), + SizedBox(height: 24), + TextFormField( // Ganti TextField dengan TextFormField + controller: _nameController, + decoration: InputDecoration( + labelText: 'Nama Event', + hintText: 'Misal: Jember Marathon', + border: OutlineInputBorder( // Border melengkung + borderRadius: BorderRadius.circular(12), + ), + focusedBorder: OutlineInputBorder( // Warna border saat fokus + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: primaryBlue, width: 2), + ), + // prefixIcon: Icon(Icons.event, color: primaryBlue), // Ikon + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Nama event tidak boleh kosong'; + } + return null; + }, + ), + SizedBox(height: 20), // Spasi antar input + TextFormField( // Ganti TextField dengan TextFormField + controller: _lapController, + keyboardType: TextInputType.number, + decoration: InputDecoration( + labelText: 'Jumlah Putaran (lap)', + hintText: 'Minimal 3 putaran', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: primaryBlue, width: 2), + ), + // prefixIcon: Icon(Icons.sports_score, color: primaryBlue), // Ikon + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Jumlah putaran tidak boleh kosong'; + } + final n = int.tryParse(value); + if (n == null || n <= 0) { + return 'Masukkan angka lebih dari 0'; + } + return null; + }, + ), + SizedBox(height: 32), // Spasi sebelum tombol + ElevatedButton.icon( + onPressed: _createEvent, + // icon: Icon(Icons.add_circle, color: Colors.white), + label: Text( + 'Buat Event', + style: TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.bold), + ), + style: ElevatedButton.styleFrom( + backgroundColor: primaryBlue, // Warna tombol biru + padding: EdgeInsets.symmetric(vertical: 16), // Padding lebih besar + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), // Sudut melengkung + ), + elevation: 5, // Bayangan tombol + ), + ), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/detail_hasil_screen.dart b/lib/screens/detail_hasil_screen.dart new file mode 100644 index 0000000..7646b0f --- /dev/null +++ b/lib/screens/detail_hasil_screen.dart @@ -0,0 +1,429 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class DetailHasilLariScreen extends StatefulWidget { + final Map data; + + const DetailHasilLariScreen({super.key, required this.data}); + + @override + State createState() => _DetailHasilLariScreenState(); +} + +class _DetailHasilLariScreenState extends State { + List kecepatanList = []; + bool loading = true; + + @override + void initState() { + super.initState(); + fetchLapData(); + } + + Future fetchLapData() async { + final jenis = widget.data['type']; + + // ===================== + // NON-LINTASAN + // ===================== + if (jenis == 'non-lintasan') { + final duration = widget.data['duration']; + final rawJarak = widget.data['jarak'] ?? widget.data['distance'] ?? 0.0; + final satuan = widget.data['satuan'] ?? 'M'; + final jarakKm = satuan == 'KM' ? rawJarak.toDouble() : rawJarak.toDouble() / 1000.0; + + if (duration is int && jarakKm > 0) { + final durSec = duration / 1000; + final pacePerKmSec = durSec / jarakKm; + + // Gunakan floor agar hanya simulasikan per-km (jangan 1.5 jadi 2) + List tempPaces = List.generate(jarakKm.floor(), (_) => pacePerKmSec); + + widget.data['pace_sec_per_km'] = pacePerKmSec; + + setState(() { + kecepatanList = tempPaces; + loading = false; + }); + return; + } + } + + // ===================== + // LINTASAN + // ===================== + final docId = widget.data['docId']; + final totalLaps = widget.data['putaran']; + + if (docId == null || totalLaps == null) { + setState(() => loading = false); + return; + } + + final doc = await FirebaseFirestore.instance.collection('activities').doc(docId).get(); + final laps = doc['data']['laps']; + + if (laps == null || laps is! Map) { + setState(() => loading = false); + return; + } + + final rawStart = widget.data['startTime']; + DateTime? startTime; + if (rawStart is Timestamp) { + startTime = rawStart.toDate(); + } else if (rawStart is int) { + startTime = DateTime.fromMillisecondsSinceEpoch(rawStart); + } + + final lapZero = laps['lap_0']; + DateTime? prevTime; + if (lapZero != null && lapZero['timestamp'] != null) { + prevTime = DateTime.parse(lapZero['timestamp']); + } else if (startTime != null) { + prevTime = startTime; + } + + List tempSpeeds = []; + final jarak = widget.data['jarak'] ?? 0; + final jarakPerLap = jarak / totalLaps; + + for (int i = 1; i <= totalLaps; i++) { + final lapData = laps['lap_$i']; + if (lapData == null || lapData['timestamp'] == null) continue; + + final timestamp = DateTime.parse(lapData['timestamp']); + + if (prevTime != null) { + final durationMs = timestamp.difference(prevTime).inMilliseconds; + + if (durationMs <= 0) { + tempSpeeds.add(0.0); + } else { + final speed = jarakPerLap / (durationMs / 1000); + tempSpeeds.add(speed); + } + } + + prevTime = timestamp; + } + + setState(() { + kecepatanList = tempSpeeds; + loading = false; + }); + } + + + void _confirmDelete(BuildContext context) { + showDialog( + context: context, + builder: (ctx) => AlertDialog( + title: const Text('Hapus Aktivitas?'), + content: const Text('Apakah kamu yakin ingin menghapus aktivitas ini?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + child: const Text('Batal'), + ), + TextButton( + onPressed: () async { + Navigator.pop(ctx); + await _deleteActivity(context); + }, + child: const Text('Hapus', style: TextStyle(color: Colors.red)), + ), + ], + ), + ); + } + + Future _deleteActivity(BuildContext context) async { + try { + final docId = widget.data['docId']; + if (docId != null) { + await FirebaseFirestore.instance.collection('activities').doc(docId).delete(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Aktivitas berhasil dihapus')), + ); + Navigator.pop(context); + } else { + throw Exception('ID dokumen tidak ditemukan'); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menghapus: $e')), + ); + } + } + + String getRunPeriodLabel(DateTime time) { + final hour = time.hour; + if (hour >= 6 && hour <= 10) { + return 'Berlari Pagi'; + } else if (hour >= 11 && hour <= 14) { + return 'Berlari Siang'; + } else if (hour >= 15 && hour <= 17) { + return 'Berlari Sore'; + } else { + return 'Berlari Malam'; + } +} + + @override + Widget build(BuildContext context) { + final data = widget.data; + final timestamp = (data['timestamp'] as Timestamp).toDate(); + final jenis = data['type'] == 'lintasan' ? 'Lintasan' : 'Non-Lintasan'; + final duration = data['duration']; + + DateTime? startTime; + final rawStart = data['startTime']; + if (rawStart is Timestamp) { + startTime = rawStart.toDate(); + } else if (rawStart is int) { + startTime = DateTime.fromMillisecondsSinceEpoch(rawStart); + } + + final formattedStart = startTime != null ? DateFormat('HH:mm:ss').format(startTime) : '-'; + + String durationFormatted = '-'; + if (duration is int) { + final d = Duration(milliseconds: duration); + durationFormatted = d.toString().split('.').first.padLeft(8, "0"); + } + + String? paceFormatted; + if (data['type'] == 'non-lintasan' && data['pace_sec_per_km'] != null) { + final paceSec = (data['pace_sec_per_km'] as num).toDouble(); + final paceMin = paceSec ~/ 60; + final paceSecRem = (paceSec % 60).round(); + paceFormatted = '$paceMin:${paceSecRem.toString().padLeft(2, '0')} /km'; + } + + final rawJarak = data['jarak'] ?? data['distance'] ?? 0.0; + final satuan = data['satuan'] ?? 'M'; + final jarakKm = satuan == 'KM' ? rawJarak.toDouble() : rawJarak.toDouble() / 1000.0; + final putaran = data['putaran']; + + return Scaffold( + appBar: PreferredSize( + preferredSize: const Size.fromHeight(100), + child: Container( + decoration: const BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40, left: 20, right: 20, bottom: 13), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.of(context).pop(), + ), + const Text( + "Detail Hasil Lari", + style: TextStyle( + color: Colors.white, + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + IconButton( + icon: const Icon(Icons.delete, color: Colors.white), + tooltip: 'Hapus Aktivitas', + onPressed: () => _confirmDelete(context), + ), + ], + ), + ), + ), + backgroundColor: Colors.white, + body: Padding( + padding: const EdgeInsets.only(top: 30, left: 20, right: 20, bottom: 16), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 24), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [Colors.blue.shade300, Colors.blue.shade600], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(24), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.2), + offset: const Offset(0, 4), + blurRadius: 8, + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Center( + child: Text( + getRunPeriodLabel(timestamp), + style: const TextStyle( + fontSize: 26, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + const SizedBox(height: 4), + Text( + DateFormat('dd MMMM yyyy, HH:mm').format(timestamp), + style: const TextStyle(color: Colors.white70, fontSize: 14), + ), + const SizedBox(height: 24), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // KIRI + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + durationFormatted, + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + const Text('Durasi', style: TextStyle(color: Colors.white70)), + + if (data['type'] == 'non-lintasan' && paceFormatted != null) ...[ + const SizedBox(height: 12), + Text( + paceFormatted!, + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + const Text('Pace', style: TextStyle(color: Colors.white70)), + ], + + if (data['type'] == 'lintasan') ...[ + const SizedBox(height: 12), + Text( + '$putaran', + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + const Text('Putaran', style: TextStyle(color: Colors.white70)), + ], + ], + ), + + // KANAN + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '${jarakKm.toStringAsFixed(2)} KM', + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + const Text('Jarak', style: TextStyle(color: Colors.white70)), + const SizedBox(height: 12), + Text( + jenis, + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + const Text('Jenis Aktivitas', style: TextStyle(color: Colors.white70)), + ], + ), + ], + ), + + const SizedBox(height: 16), + ], + ), + ), + const SizedBox(height: 32), + if (data['type'] == 'lintasan') ...[ + const SizedBox(height: 32), + const Text("Splits Kecepatan", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), + const SizedBox(height: 12), + loading + ? const Center(child: CircularProgressIndicator()) + : kecepatanList.isEmpty + ? const Text("Data kecepatan tidak tersedia.") + : Column( + children: List.generate(kecepatanList.length, (index) { + final speed = kecepatanList[index]; + final maxSpeed = kecepatanList.reduce((a, b) => a > b ? a : b); + final barFraction = (speed / maxSpeed).clamp(0.0, 1.0); + return Padding( + padding: const EdgeInsets.symmetric(vertical: 6.0), + child: Row( + children: [ + SizedBox(width: 40, child: Text("Lap ${index + 1}", style: const TextStyle(fontSize: 14))), + const SizedBox(width: 8), + Expanded( + child: Stack( + children: [ + Container( + height: 20, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(6), + ), + ), + FractionallySizedBox( + widthFactor: barFraction, + child: Container( + height: 20, + decoration: BoxDecoration( + color: Colors.blueAccent, + borderRadius: BorderRadius.circular(6), + ), + ), + ), + ], + ), + ), + const SizedBox(width: 8), + Text("${speed.toStringAsFixed(2)} m/s", style: const TextStyle(fontSize: 14)), + ], + ), + ); + }), + ), + ], + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/edit_profile_screen.dart b/lib/screens/edit_profile_screen.dart new file mode 100644 index 0000000..6852a3d --- /dev/null +++ b/lib/screens/edit_profile_screen.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; + +class EditProfileScreen extends StatefulWidget { + const EditProfileScreen({super.key}); + + @override + State createState() => _EditProfileScreenState(); +} + +class _EditProfileScreenState extends State { + final TextEditingController usernameController = TextEditingController(); + String? selectedGender; + bool isLoading = true; + + @override + void initState() { + super.initState(); + fetchUserData(); + } + + Future fetchUserData() async { + final user = FirebaseAuth.instance.currentUser; + if (user != null) { + final doc = await FirebaseFirestore.instance.collection('users').doc(user.uid).get(); + final data = doc.data(); + if (data != null) { + usernameController.text = data['username'] ?? ''; + selectedGender = data['gender'] ?? ''; + } + } + setState(() { + isLoading = false; + }); + } + + Future saveProfile() async { + final username = usernameController.text.trim(); + + if (username.isEmpty || username.length < 3) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Peringatan"), + content: const Text("Username minimal 3 karakter"), + actions: [ + TextButton( + child: const Text("OK"), + onPressed: () => Navigator.pop(context), + ), + ], + ), + ); + return; + } + + final user = FirebaseAuth.instance.currentUser; + if (user != null) { + await FirebaseFirestore.instance.collection('users').doc(user.uid).update({ + 'username': username, + 'gender': selectedGender, + }); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Profil berhasil diperbarui!'), + behavior: SnackBarBehavior.floating, + margin: EdgeInsets.all(50), + duration: Duration(seconds: 2), + ), + ); + + Navigator.pop(context, true); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text('Edit profile', style: TextStyle(color: Colors.white),), + automaticallyImplyLeading: true, + backgroundColor: Colors.blueAccent, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : Padding( + padding: const EdgeInsets.all(20), + child: Column( + children: [ + const SizedBox(height: 20), + Card( + color: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 4, + child: Padding( + padding: const EdgeInsets.all(20), + child: Column( + children: [ + TextField( + controller: usernameController, + decoration: const InputDecoration(labelText: "Username"), + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: selectedGender, + items: const [ + DropdownMenuItem(value: 'Laki-laki', child: Text('Laki-laki')), + DropdownMenuItem(value: 'Perempuan', child: Text('Perempuan')), + ], + onChanged: (value) { + setState(() { + selectedGender = value; + }); + }, + decoration: const InputDecoration(labelText: "Jenis Kelamin"), + ), + ], + ), + ), + ), + const Spacer(), + ElevatedButton.icon( + onPressed: saveProfile, + icon: const Icon(Icons.save), + label: const Text("Simpan Perubahan"), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blueAccent, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/event_detail_page.dart b/lib/screens/event_detail_page.dart new file mode 100644 index 0000000..0ae8186 --- /dev/null +++ b/lib/screens/event_detail_page.dart @@ -0,0 +1,816 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:flutter/material.dart'; +import 'dart:async'; + +class EventDetailPage extends StatefulWidget { + final String eventId; + final String eventName; + + EventDetailPage({required this.eventId, required this.eventName}); + + @override + _EventDetailPageState createState() => _EventDetailPageState(); +} + +class _EventDetailPageState extends State { + final FirebaseFirestore _firestore = FirebaseFirestore.instance; + late FirebaseDatabase _rtdb; + late DatabaseReference _eventStatusRef; + late DatabaseReference _scanResultRef; + late DatabaseReference _eventActivityDataRef; + + // Map untuk menyimpan status finished dan current laps DARI RTDB (Hanya relevan saat event aktif) + Map _liveParticipantFinishedStatus = {}; + Map _liveParticipantCurrentLaps = {}; + + // Map untuk mapping UID RFID ke Firestore userId + Map _rfidUidToUserIdMap = {}; + + // List untuk menyimpan subscriptions agar bisa di-cancel saat dispose + final List _rtdbSubscriptions = []; + + // Variabel untuk menyimpan status event global dari RTDB (hanya untuk kontrol internal sementara) + bool _rtdbEventStarted = false; + bool _rtdbEventFinished = false; + + // StreamSubscription untuk Realtime Database listeners + StreamSubscription? _activityDataSubscription; + StreamSubscription? _finishedSubscription; + StreamSubscription? _lapsSubscription; + StreamSubscription? _scanResultSubscription; + + // Warna utama yang terinspirasi dari gambar Anda + final Color primaryBlue = Color(0xFF42A5F5); // Biru muda yang cerah + final Color lightBlue = Color(0xFFBBDEFB); // Biru yang lebih terang untuk background + final Color darkBlue = Color(0xFF1976D2); // Biru yang lebih gelap untuk teks/ikon + + @override + void initState() { + super.initState(); + + _rtdb = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + + _eventStatusRef = _rtdb.ref('event_status/${widget.eventId}'); + _scanResultRef = _rtdb.ref('scan_result/${widget.eventId}'); + _eventActivityDataRef = _rtdb.ref('event_activity_data/${widget.eventId}'); + + _preloadRfidToUserIdsMap().then((_) { + _listenToRealtimeEventStatus(); // Mendengarkan status global dari RTDB (untuk internal saja) + }); + } + + @override + void dispose() { + for (var subscription in _rtdbSubscriptions) { + subscription.cancel(); + } + super.dispose(); + } + + Future _preloadRfidToUserIdsMap() async { + try { + final eventDoc = await _firestore.collection('events').doc(widget.eventId).get(); + if (eventDoc.exists) { + final participantsData = eventDoc.data()?['participants'] as Map?; + if (participantsData != null) { + participantsData.forEach((userId, data) { + final rfidUid = data['rfid_uid'] as String?; + if (rfidUid != null) { + _rfidUidToUserIdMap[rfidUid] = userId; + } + }); + print("Preloaded RFID UID to User ID Map: $_rfidUidToUserIdMap"); + } + } + } catch (e) { + print("Error preloading RFID UID to User ID map: $e"); + } + } + + // Listener Realtime Database untuk status event global (hanya untuk tujuan internal) + void _listenToRealtimeEventStatus() { + _rtdbSubscriptions.add(_eventStatusRef.onValue.listen((event) async { + if (event.snapshot.exists && event.snapshot.value != null) { + final eventStatusData = event.snapshot.value as Map; + setState(() { + _rtdbEventStarted = eventStatusData['started'] ?? false; + _rtdbEventFinished = eventStatusData['finished'] ?? false; + }); + + // Ambil status permanen dari Firestore untuk perbandingan + final firestoreDoc = await _firestore.collection('events').doc(widget.eventId).get(); + final firestoreData = firestoreDoc.data(); + bool isEventFinishedPermanently = firestoreData?['is_finished_permanently'] ?? false; + + // Jika event baru saja selesai di RTDB oleh ESP32, dan belum di Firestore + if (_rtdbEventFinished && !isEventFinishedPermanently) { + _endEventPermanentlyFromRTDB(); + } + } else { + setState(() { + _rtdbEventStarted = false; + _rtdbEventFinished = false; + }); + } + print("Internal RTDB Event Status: Started=$_rtdbEventStarted, Finished=$_rtdbEventFinished"); + })); + } + + // Fungsi baru: jika RTDB menandakan selesai, dan Firestore belum, akhiri permanen + Future _endEventPermanentlyFromRTDB() async { + print("RTDB menandakan event selesai, mengakhiri secara permanen di Firestore."); + try { + await _firestore.collection('events').doc(widget.eventId).update({ + 'is_started_permanently': false, + 'is_finished_permanently': true, + }); + // Bersihkan RTDB setelah status permanen di Firestore diupdate + await _rtdb.ref('event_activity_data/${widget.eventId}').remove(); + await _rtdb.ref('event_status/${widget.eventId}').remove(); + await _rtdb.ref('scan_result/${widget.eventId}').remove(); + print("✅ Event diakhiri secara permanen di Firestore dan RTDB dibersihkan."); + } catch (e) { + print("❌ Gagal mengakhiri event secara permanen dari RTDB: $e"); + } + } + + // Fungsi untuk mengelola listener Realtime Database + void _manageRealtimeListeners(bool activate) { + if (activate) { + // Aktifkan listener aktivitas peserta jika belum ada + if (_activityDataSubscription == null) { + print("Mengaktifkan Realtime Database activity listeners..."); + // Gunakan onChildAdded untuk inisialisasi awal dan onChildChanged untuk update + _activityDataSubscription = _eventActivityDataRef.onChildAdded.listen((event) { + final uidTag = event.snapshot.key; + if (uidTag != null) { + // Subscribe ke 'finished' + _finishedSubscription = _eventActivityDataRef.child(uidTag).child('finished').onValue.listen((finishedEvent) async { + if (finishedEvent.snapshot.exists && finishedEvent.snapshot.value != null) { + final finished = finishedEvent.snapshot.value as bool; + setState(() { + _liveParticipantFinishedStatus[uidTag] = finished; + }); + final userId = _rfidUidToUserIdMap[uidTag]; + if (userId != null) { + try { + await _firestore.collection('events').doc(widget.eventId).update({ + 'participants.$userId.finished': finished, + }); + if (finished) { + final totalTimeSnapshot = await _eventActivityDataRef.child(uidTag).child('duration').get(); + if (totalTimeSnapshot.exists && totalTimeSnapshot.value != null) { + final totalTimeMs = totalTimeSnapshot.value as int; + String formattedTime = _formatDuration(Duration(milliseconds: totalTimeMs)); + await _firestore.collection('events').doc(widget.eventId).update({ + 'participants.$userId.total_time': formattedTime, + }); + } + } + } catch (e) { + print("❌ Gagal update Firestore participants.$userId.finished/total_time: $e"); + } + } + } + }); + _rtdbSubscriptions.add(_finishedSubscription!); + + // Subscribe ke 'laps' + _lapsSubscription = _eventActivityDataRef.child(uidTag).child('laps').onValue.listen((lapsEvent) async { + if (lapsEvent.snapshot.exists && lapsEvent.snapshot.value != null) { + final lapsData = lapsEvent.snapshot.value as Map; + final lapsCount = lapsData.length; + setState(() { + _liveParticipantCurrentLaps[uidTag] = lapsCount; + }); + final userId = _rfidUidToUserIdMap[uidTag]; + if (userId != null) { + try { + await _firestore.collection('events').doc(widget.eventId).update({ + 'participants.$userId.laps': lapsCount > 0 ? lapsCount - 1 : 0, + }); + + Map currentTimestamps = {}; + lapsData.forEach((key, value) { + if (value is Map && value.containsKey('timestamp')) { + currentTimestamps[key.toString()] = DateTime.parse(value['timestamp']); + } + }); + + Map lapDurations = {}; + final sortedKeys = currentTimestamps.keys.toList()..sort((a, b) => a.compareTo(b)); + + for (int i = 1; i < sortedKeys.length; i++) { + final prevTimestamp = currentTimestamps[sortedKeys[i - 1]]; + final currentTimestamp = currentTimestamps[sortedKeys[i]]; + if (prevTimestamp != null && currentTimestamp != null) { + final durationSeconds = currentTimestamp.difference(prevTimestamp).inMilliseconds / 1000.0; + lapDurations['lap_${i}'] = durationSeconds; + } + } + + if (lapDurations.isNotEmpty) { + await _firestore.collection('events').doc(widget.eventId).update({ + 'participants.$userId.lap_durations': lapDurations, + }); + } + } catch (e) { + print("❌ Gagal update Firestore participants.$userId.laps atau lap_durations: $e"); + } + } + } + }); + _rtdbSubscriptions.add(_lapsSubscription!); + } + }); + _rtdbSubscriptions.add(_activityDataSubscription!); + } + + // Aktifkan listener scan RFID jika belum aktif + if (_scanResultSubscription == null) { + print("Mengaktifkan scan_result listener..."); + final scanRef = _rtdb.ref('scan_result/${widget.eventId}'); + _scanResultSubscription = scanRef.onChildAdded.listen((event) { + final scannedUID = event.snapshot.key; + final value = event.snapshot.value; + if (scannedUID != null && value == true) { + processUID(scannedUID, widget.eventId); + } + }); + _rtdbSubscriptions.add(_scanResultSubscription!); + // Panggil processUID untuk data yang sudah ada saat ini juga (saat listener diaktifkan) + scanRef.get().then((snapshot) { + if (snapshot.exists) { + final data = snapshot.value as Map; + data.forEach((key, value) { + if (value == true) { + processUID(key, widget.eventId); + } + }); + } + }); + } + } else { + // Nonaktifkan semua listener jika event tidak dimulai secara permanen atau sudah selesai + print("Menonaktifkan Realtime Database listeners..."); + _activityDataSubscription?.cancel(); + _finishedSubscription?.cancel(); + _lapsSubscription?.cancel(); + _scanResultSubscription?.cancel(); + + // Set semua subscription ke null agar bisa diinisialisasi ulang + _activityDataSubscription = null; + _finishedSubscription = null; + _lapsSubscription = null; + _scanResultSubscription = null; + + // Juga kosongkan data live RTDB jika listener dimatikan + _liveParticipantFinishedStatus.clear(); + _liveParticipantCurrentLaps.clear(); + } + } + + String _formatDuration(Duration duration) { + String twoDigits(int n) => n.toString().padLeft(2, "0"); + String twoDigitMinutes = twoDigits(duration.inMinutes.remainder(60)); + String twoDigitSeconds = twoDigits(duration.inSeconds.remainder(60)); + String threeDigitMilliseconds = (duration.inMilliseconds.remainder(1000)).toString().padLeft(3, "0"); + return "${twoDigits(duration.inHours)}:$twoDigitMinutes:$twoDigitSeconds.$threeDigitMilliseconds"; + } + + void processUID(String scannedUID, String eventId) async { + print("🔍 Mencari user dengan idGelang = '$scannedUID'"); + + final querySnapshot = await _firestore + .collection('users') + .where('idGelang', isEqualTo: scannedUID.trim()) + .limit(1) + .get(); + + if (querySnapshot.docs.isEmpty) { + print('❌ UID $scannedUID tidak ditemukan di Firestore.'); + return; + } + + final userDoc = querySnapshot.docs.first; + final userId = userDoc.id; + final userData = userDoc.data(); + + _rfidUidToUserIdMap[scannedUID] = userId; + print("Mapped RFID UID $scannedUID to User ID $userId"); + + final eventRef = _firestore.collection('events').doc(eventId); + final eventSnapshot = await eventRef.get(); + + Map participants = eventSnapshot.data()?['participants'] ?? {}; + Map existing = participants[userId] ?? {}; + + final participantData = { + 'name': userData['username'] ?? existing['name'] ?? '-', + 'user_id': userId, + 'rfid_uid': scannedUID, + 'laps': existing['laps'] ?? 0, + 'finished': existing['finished'] ?? false, + 'total_time': existing['total_time'] ?? '-', + 'lap_durations': existing['lap_durations'] ?? {}, + }; + + await eventRef.update({ + 'participants.$userId': participantData, + }); + + print("🎉 Peserta ${participantData['name']} berhasil dimasukkan/diupdate di event $eventId di Firestore."); + } + + @override + Widget build(BuildContext context) { + final docRef = _firestore.collection('events').doc(widget.eventId); + + return Scaffold( + backgroundColor: Colors.grey[50], // Background lembut + body: StreamBuilder( + stream: docRef.snapshots(), + builder: (context, firestoreSnapshot) { + if (!firestoreSnapshot.hasData) { + return Center(child: CircularProgressIndicator(color: primaryBlue)); + } + if (firestoreSnapshot.hasError) { + return Center(child: Text('Error: ${firestoreSnapshot.error}', style: TextStyle(color: Colors.red))); + } + + final firestoreData = firestoreSnapshot.data!.data() as Map?; + + if (firestoreData == null) { + return Center(child: Text('Data event tidak ditemukan di Firestore.')); + } + + // Ambil status permanen dari Firestore + bool isEventStartedPermanently = firestoreData['is_started_permanently'] ?? false; + bool isEventFinishedPermanently = firestoreData['is_finished_permanently'] ?? false; + + // Kelola listener RTDB berdasarkan status permanen event + WidgetsBinding.instance.addPostFrameCallback((_) { + _manageRealtimeListeners(isEventStartedPermanently && !isEventFinishedPermanently); + }); + + // Logic untuk menentukan status yang ditampilkan di UI + String displayEventStatusText; + Color displayEventStatusColor; + if (isEventFinishedPermanently) { + displayEventStatusText = "Sudah Selesai Permanen"; + displayEventStatusColor = Colors.green.shade700; + } else if (isEventStartedPermanently) { + displayEventStatusText = "Sedang Berlangsung"; + displayEventStatusColor = Colors.orange.shade700; + } else { + displayEventStatusText = "Belum Dimulai"; + displayEventStatusColor = Colors.red.shade700; + } + + + final totalLaps = firestoreData['total_laps'] ?? 0; + final totalDistance = firestoreData['total_distance'] ?? 0; + final createdBy = firestoreData['created_by'] ?? '-'; + final createdAt = firestoreData['created_at'] != null + ? (firestoreData['created_at'] as Timestamp).toDate() + : null; + + return CustomScrollView( + slivers: [ + SliverAppBar( + expandedHeight: 180.0, // Tinggi AppBar saat expanded + floating: false, + pinned: true, // AppBar tetap terlihat saat scroll + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), // Sudut melengkung di kiri bawah + bottomRight: Radius.circular(20), // Sudut melengkung di kanan bawah + ), + ), + backgroundColor: primaryBlue, // Warna dasar AppBar + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.only(bottom: 16.0, left: 16.0, right: 16.0), + // Pastikan background juga melengkung + background: ClipRRect( // Tambahkan ClipRRect di sini + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + child: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [primaryBlue, darkBlue], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + ), + ), + child: Center( + child: Padding( + padding: const EdgeInsets.only(top: 24.0), // Beri sedikit padding atas agar tidak terlalu mepet + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.event, + color: Colors.white, + size: 48, + ), + SizedBox(height: 8), + Text( + widget.eventName, + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + shadows: [ + Shadow( + blurRadius: 4.0, + color: Colors.black.withOpacity(0.3), + offset: Offset(1.0, 1.0), + ), + ], + ), + textAlign: TextAlign.center, + ), + SizedBox(height: 4), + Text( + "${totalLaps} Putaran | ${(totalDistance / 1000).toStringAsFixed(2)} KM", + style: TextStyle( + fontSize: 14, + color: Colors.white.withOpacity(0.8), + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ), + ), + ), + ), + actions: [ + IconButton( + icon: Icon(Icons.delete_forever, color: Colors.white), + tooltip: 'Hapus Event', + onPressed: () async { + final confirm = await showDialog( + context: context, + builder: (_) => AlertDialog( + title: Text('Konfirmasi Hapus', style: TextStyle(color: darkBlue)), + content: Text('Apakah Anda yakin ingin menghapus event "${widget.eventName}" dan semua datanya?', style: TextStyle(color: Colors.grey[800])), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: Text('Batal', style: TextStyle(color: primaryBlue)), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: Text('Hapus', style: TextStyle(color: Colors.red)), + ), + ], + ), + ); + + if (confirm == true) { + await docRef.delete(); + await _rtdb.ref('event_activity_data/${widget.eventId}').remove(); + await _rtdb.ref('event_status/${widget.eventId}').remove(); + await _rtdb.ref('scan_result/${widget.eventId}').remove(); + + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Event "${widget.eventName}" telah dihapus.')), + ); + } + }, + ), + ], + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Informasi Detail Event + Card( + elevation: 4, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + color: Colors.white, // CARD PUTIH + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildInfoRow(Icons.person, "Dibuat oleh", createdBy), + SizedBox(height: 8), + if (createdAt != null) + _buildInfoRow( + Icons.calendar_today, + "Tanggal dibuat", + "${createdAt.day}/${createdAt.month}/${createdAt.year} ${createdAt.hour.toString().padLeft(2, '0')}:${createdAt.minute.toString().padLeft(2, '0')}", + ), + SizedBox(height: 16), + Divider(color: Colors.grey[300]), + SizedBox(height: 16), + Text("Status Event", style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold, color: darkBlue)), + SizedBox(height: 8), + Row( + children: [ + Icon(Icons.play_circle_outline, size: 20, color: Colors.grey[700]), + SizedBox(width: 8), + Text( + displayEventStatusText, // Teks status baru + style: TextStyle( + fontSize: 15, + color: displayEventStatusColor, // Warna status baru + fontWeight: FontWeight.w600, + ), + ), + ], + ), + SizedBox(height: 4), + Row( + children: [ + Icon(Icons.check_circle_outline, size: 20, color: Colors.grey[700]), + SizedBox(width: 8), + Text( + "Selesai Permanen: ${isEventFinishedPermanently ? 'Ya ✅' : 'Tidak ❌'}", + style: TextStyle( + fontSize: 15, + color: isEventFinishedPermanently ? Colors.green.shade700 : Colors.red.shade700, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + SizedBox(height: 24), + + // Tombol Mulai Event + SizedBox( + width: double.infinity, + child: ElevatedButton.icon( + onPressed: (isEventStartedPermanently || isEventFinishedPermanently) + ? null + : () async { + final confirm = await showDialog( + context: context, + builder: (_) => AlertDialog( + title: Text('Mulai Event', style: TextStyle(color: darkBlue)), + content: Text('Peserta akan mulai scan RFID untuk event ini.', style: TextStyle(color: Colors.grey[800])), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: Text('Batal', style: TextStyle(color: primaryBlue))), + TextButton(onPressed: () => Navigator.pop(context, true), child: Text('Mulai', style: TextStyle(color: Colors.green))), + ], + ), + ); + + if (confirm == true) { + final currentEventData = await docRef.get(); + final currentTotalLaps = (currentEventData.data() as Map?)?['total_laps'] ?? 0; + + await docRef.update({ + 'is_started_permanently': true, + 'is_finished_permanently': false, + 'start_time': Timestamp.now(), + }).catchError((e) { + print("❌ Gagal update Firestore: $e"); + }); + + await _eventStatusRef.set({ + 'started': true, + 'scan_mode': true, + 'timestamp': ServerValue.timestamp, + 'total_laps_target': currentTotalLaps, + 'finished': false, + }); + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Event dimulai. Peserta dapat scan RFID sekarang.')), + ); + } + }, + icon: Icon(Icons.play_arrow, color: Colors.white), + label: Text( + 'Mulai Event (Scan RFID)', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + style: ElevatedButton.styleFrom( + backgroundColor: (isEventStartedPermanently || isEventFinishedPermanently) ? Colors.grey : Colors.green.shade600, + padding: EdgeInsets.symmetric(vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 3, + ), + ), + ), + + // Tombol Akhiri Event Manual + if (isEventStartedPermanently && !isEventFinishedPermanently) + Padding( + padding: const EdgeInsets.only(top: 12.0), + child: SizedBox( + width: double.infinity, + child: ElevatedButton.icon( + onPressed: () async { + final confirm = await showDialog( + context: context, + builder: (_) => AlertDialog( + title: Text('Akhiri Event', style: TextStyle(color: darkBlue)), + content: Text('Apakah Anda yakin ingin mengakhiri event ini secara manual? Status event akan permanen selesai dan data Realtime akan dihapus.', style: TextStyle(color: Colors.grey[800])), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: Text('Batal', style: TextStyle(color: primaryBlue))), + TextButton(onPressed: () => Navigator.pop(context, true), child: Text('Akhiri', style: TextStyle(color: Colors.red))), + ], + ), + ); + + if (confirm == true) { + await docRef.update({ + 'is_started_permanently': false, + 'is_finished_permanently': true, + }); + + await _rtdb.ref('event_activity_data/${widget.eventId}').remove(); + await _rtdb.ref('event_status/${widget.eventId}').remove(); + await _rtdb.ref('scan_result/${widget.eventId}').remove(); + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Event telah diakhiri secara manual dan disimpan secara permanen.')), + ); + } + }, + icon: Icon(Icons.stop, color: Colors.white), + label: Text( + 'Akhiri Event Manual', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red.shade600, + padding: EdgeInsets.symmetric(vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 3, + ), + ), + ), + ), + ], + ), + ), + ), + SizedBox(height: 24), + Text("Peserta Event:", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18, color: darkBlue)), + SizedBox(height: 1), + ], + ), + ), + ), + // Daftar Peserta + SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + sliver: ((firestoreData['participants'] as Map?)?.entries.isNotEmpty ?? false) + ? SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + final participantEntry = (firestoreData['participants'] as Map).entries.toList()[index]; + final participant = participantEntry.value; + final name = participant['name'] ?? 'Nama tidak ditemukan'; + final rfidUid = participant['rfid_uid'] as String?; + + bool participantFinishedDisplay; + int participantLapsDisplay; + String participantTotalTimeDisplay = participant['total_time'] ?? '-'; + + // Prioritaskan data live (RTDB) jika event sedang berjalan (permanen) + if (isEventStartedPermanently && !isEventFinishedPermanently && _liveParticipantFinishedStatus.containsKey(rfidUid)) { + participantFinishedDisplay = _liveParticipantFinishedStatus[rfidUid]!; + } else { + participantFinishedDisplay = participant['finished'] ?? false; // Ambil dari Firestore + } + + if (isEventStartedPermanently && !isEventFinishedPermanently && _liveParticipantCurrentLaps.containsKey(rfidUid)) { + participantLapsDisplay = _liveParticipantCurrentLaps[rfidUid]! > 0 ? _liveParticipantCurrentLaps[rfidUid]! - 1 : 0; + } else { + participantLapsDisplay = participant['laps'] ?? 0; // Ambil dari Firestore + } + + return Card( + margin: EdgeInsets.symmetric(vertical: 8), + elevation: 4, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + color: Colors.white, // CARD PUTIH + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + name, + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + ), + SizedBox(height: 8), + _buildParticipantInfoRow(Icons.credit_card, "UID RFID", rfidUid ?? 'N/A'), + _buildParticipantInfoRow(Icons.sports_score, "Putaran", "$participantLapsDisplay"), + _buildParticipantInfoRow( + Icons.flag, + "Selesai", + participantFinishedDisplay ? 'Ya ✅' : 'Tidak ❌', + valueColor: participantFinishedDisplay ? Colors.green.shade700 : Colors.red.shade700, + ), + if (participantFinishedDisplay && participantTotalTimeDisplay != '-') + _buildParticipantInfoRow( + Icons.timer, + "Waktu Total", + participantTotalTimeDisplay, + valueColor: darkBlue, + ), + ], + ), + ), + ); + }, + childCount: (firestoreData['participants'] as Map).length, + ), + ) + : SliverToBoxAdapter( + child: Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + "Belum ada peserta yang terdaftar untuk event ini.", + style: TextStyle(fontSize: 16, color: Colors.grey[600]), + textAlign: TextAlign.center, + ), + ), + ), + ), + ), + SliverToBoxAdapter( + child: SizedBox(height: 24), // Tambahan spasi di bagian bawah + ), + ], + ); + }, + ), + ); + } + + // Helper widget untuk baris informasi event + Widget _buildInfoRow(IconData icon, String label, String value) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Icon(icon, size: 20, color: primaryBlue), + SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14, color: Colors.grey[700]), + ), + Text( + value, + style: TextStyle(fontSize: 15, color: Colors.grey[900]), + ), + ], + ), + ), + ], + ); + } + + // Helper widget untuk baris informasi peserta + Widget _buildParticipantInfoRow(IconData icon, String label, String value, {Color? valueColor}) { + return Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Row( + children: [ + Icon(icon, size: 16, color: Colors.grey[600]), + SizedBox(width: 8), + Text( + "$label: ", + style: TextStyle(fontSize: 14, color: Colors.grey[700]), + ), + Expanded( + child: Text( + value, + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: valueColor ?? darkBlue), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/event_result_page.dart b/lib/screens/event_result_page.dart new file mode 100644 index 0000000..4c94550 --- /dev/null +++ b/lib/screens/event_result_page.dart @@ -0,0 +1,379 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:intl/intl.dart'; + +class EventResultPage extends StatelessWidget { + final String eventId; + final String eventName; + + EventResultPage({required this.eventId, required this.eventName}); + + final Color primaryBlue = Color(0xFF42A5F5); + final Color lightBlue = Color(0xFFBBDEFB); + final Color darkBlue = Color(0xFF1976D2); + final Color successGreen = Colors.green.shade700; + final Color warningOrange = Colors.orange.shade700; + final Color dangerRed = Colors.red.shade700; + + @override + Widget build(BuildContext context) { + final docRef = FirebaseFirestore.instance.collection('events').doc(eventId); + + return Scaffold( + backgroundColor: Colors.grey[50], + appBar: AppBar( + title: Text( + 'Hasil Event: $eventName', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + centerTitle: true, + backgroundColor: primaryBlue, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + iconTheme: IconThemeData(color: Colors.white), + elevation: 5, + ), + body: StreamBuilder( + stream: docRef.snapshots(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Center(child: CircularProgressIndicator(color: primaryBlue)); + } + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}', style: TextStyle(color: dangerRed))); + } + if (!snapshot.hasData || !snapshot.data!.exists) { + return Center(child: Text('Event tidak ditemukan.', style: TextStyle(color: Colors.grey[600]))); + } + + final data = snapshot.data!.data() as Map?; + + if (data == null || data['participants'] == null) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.people_alt_outlined, size: 60, color: Colors.grey[400]), + SizedBox(height: 16), + Text('Belum ada peserta yang terdaftar untuk event ini.', style: TextStyle(fontSize: 16, color: Colors.grey[600])), + ], + ), + ); + } + + final participants = data['participants'] as Map; + + if (participants.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.people_alt_outlined, size: 60, color: Colors.grey[400]), + SizedBox(height: 16), + Text('Belum ada peserta yang terdaftar untuk event ini.', style: TextStyle(fontSize: 16, color: Colors.grey[600])), + ], + ), + ); + } + + List> sortedParticipants = participants.entries.toList(); + sortedParticipants.sort((a, b) { + final pA = a.value as Map; + final pB = b.value as Map; + + final finishedA = pA['finished'] == true; + final finishedB = pB['finished'] == true; + + if (finishedA && !finishedB) return -1; + if (!finishedA && finishedB) return 1; + + if (finishedA && finishedB) { + final timeA = _parseTimeToSeconds(pA['total_time']); + final timeB = _parseTimeToSeconds(pB['total_time']); + return timeA.compareTo(timeB); + } + + final lapsA = pA['laps'] ?? 0; + final lapsB = pB['laps'] ?? 0; + return lapsB.compareTo(lapsA); + }); + + + return ListView.builder( + padding: EdgeInsets.all(16), + itemCount: sortedParticipants.length, + itemBuilder: (context, index) { + final entry = sortedParticipants[index]; + final p = entry.value as Map; + + final name = p['name'] ?? 'Peserta Tidak Dikenal'; + final laps = p['laps'] ?? 0; + final finished = p['finished'] == true; + final totalTime = p['total_time'] ?? '-'; + final rfidUid = p['rfid_uid'] ?? '-'; + final lapDurations = p['lap_durations'] as Map? ?? {}; + + String participantStatus = finished ? 'Selesai' : 'Berlangsung'; + Color participantStatusColor = finished ? successGreen : warningOrange; + + String formattedTotalTime = '-'; + if (finished && totalTime != '-') { + try { + final duration = Duration(milliseconds: _parseMilliseconds(totalTime)); + formattedTotalTime = _formatDuration(duration); + } catch (e) { + formattedTotalTime = totalTime; + } + } + + List kecepatanWidgets = []; + final sortedLapKeys = lapDurations.keys.toList()..sort((a, b) { + final intA = int.parse(a.split('_')[1]); + final intB = int.parse(b.split('_')[1]); + return intA.compareTo(intB); + }); + + for (String lapKey in sortedLapKeys) { + final dynamic durasiDetikRaw = lapDurations[lapKey]; + double durasiDetik = 0.0; + if (durasiDetikRaw is int) { + durasiDetik = durasiDetikRaw.toDouble(); + } else if (durasiDetikRaw is double) { + durasiDetik = durasiDetikRaw; + } + + String formattedDuration = '${durasiDetik.toStringAsFixed(2)} s'; + + if (durasiDetik > 0) { + final kecepatan = 400 / durasiDetik; + kecepatanWidgets.add( + Row( + children: [ + SizedBox(width: 24), + Text( + "Lap ${lapKey.split('_')[1]}: ${kecepatan.toStringAsFixed(2)} m/s ", + style: TextStyle(fontSize: 13, color: Colors.grey[800]), + ), + Text( + "($formattedDuration)", + style: TextStyle(fontSize: 12, color: Colors.grey[600]), + ), + ], + ), + ); + } else { + kecepatanWidgets.add( + Padding( + padding: const EdgeInsets.only(left: 24.0), + child: Text( + "Lap ${lapKey.split('_')[1]}: Durasi tidak valid", + style: TextStyle(fontSize: 13, color: Colors.grey[500], fontStyle: FontStyle.italic), + ), + ), + ); + } + } + + return Card( + margin: EdgeInsets.only(bottom: 16), + elevation: 4, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + color: Colors.white, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Text( + name, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + overflow: TextOverflow.ellipsis, + ), + ), + Container( + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: participantStatusColor.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: Text( + participantStatus, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: participantStatusColor, + ), + ), + ), + ], + ), + SizedBox(height: 8), + Divider(color: Colors.grey[200]), + SizedBox(height: 8), + _buildInfoRow("RFID Tag", rfidUid, darkBlue), + _buildInfoRow("Putaran Selesai", "$laps", darkBlue), + if (finished) _buildInfoRow("Waktu Total", formattedTotalTime, darkBlue), + + if (kecepatanWidgets.isNotEmpty) ...[ + SizedBox(height: 12), + Text( + "Detail Kecepatan per Lap:", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + ), + SizedBox(height: 8), + ...kecepatanWidgets, + ], + + // Tombol hapus peserta + SizedBox(height: 16), + Align( + alignment: Alignment.centerRight, + child: IconButton( // <-- DIUBAH DARI TextButton.icon MENJADI IconButton + icon: Icon(Icons.delete_outline, color: dangerRed, size: 24), // Ukuran ikon diperbesar sedikit + tooltip: 'Hapus Peserta', // Tooltip tetap ada saat ditekan lama + onPressed: () async { + final confirm = await showDialog( + context: context, + builder: (_) => AlertDialog( + title: Text('Konfirmasi Hapus Peserta', style: TextStyle(color: dangerRed)), + content: Text('Apakah Anda yakin ingin menghapus peserta "$name" dari event ini?', style: TextStyle(color: Colors.grey[800])), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: Text('Batal', style: TextStyle(color: primaryBlue)), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: Text('Hapus', style: TextStyle(color: dangerRed)), + ), + ], + ), + ); + + if (confirm == true) { + try { + await docRef.update({ + 'participants.${entry.key}': FieldValue.delete(), + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Peserta "$name" berhasil dihapus.'), backgroundColor: Colors.green), + ); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menghapus peserta: $e'), backgroundColor: Colors.red), + ); + print('Error deleting participant: $e'); + } + } + }, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ); + } + + // Helper widget untuk baris informasi yang clean tanpa ikon + Widget _buildInfoRow(String label, String value, Color valueColor) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + flex: 2, + child: Text( + "$label:", + style: TextStyle(fontWeight: FontWeight.w500, fontSize: 14, color: Colors.grey[700]), + ), + ), + Expanded( + flex: 3, + child: Text( + value, + style: TextStyle(fontSize: 15, color: valueColor), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ); + } + + // Helper untuk parsing waktu (misal "00:01:23.456" menjadi milidetik) + int _parseMilliseconds(String timeString) { + if (timeString == '-') return 0; + + final parts = timeString.split(':'); + if (parts.length < 3) return 0; // Invalid format + + int hours = int.parse(parts[0]); + int minutes = int.parse(parts[1]); + double secondsWithMs = double.parse(parts[2]); + + int totalMilliseconds = ((hours * 3600 + minutes * 60 + secondsWithMs) * 1000).toInt(); + return totalMilliseconds; + } + + // Helper untuk format total_time dari milidetik + String _formatDuration(Duration duration) { + String twoDigits(int n) => n.toString().padLeft(2, "0"); + String threeDigits(int n) => n.toString().padLeft(3, "0"); + + String minutes = twoDigits(duration.inMinutes.remainder(60)); + String seconds = twoDigits(duration.inSeconds.remainder(60)); + String milliseconds = threeDigits(duration.inMilliseconds.remainder(1000)); + String hours = twoDigits(duration.inHours); + + if (duration.inHours > 0) { + return "$hours:$minutes:$seconds.$milliseconds"; + } else { + return "$minutes:$seconds.$milliseconds"; + } + } + + // Helper untuk mengonversi string waktu (HH:MM:SS.ms) ke total detik (untuk sorting) + double _parseTimeToSeconds(String timeString) { + if (timeString == '-') return double.infinity; + + try { + final parts = timeString.split(':'); + if (parts.length != 3) return double.infinity; + + final hours = int.parse(parts[0]); + final minutes = int.parse(parts[1]); + final secondsParts = parts[2].split('.'); + final seconds = int.parse(secondsParts[0]); + final milliseconds = secondsParts.length > 1 ? int.parse(secondsParts[1]) : 0; + + return (hours * 3600 + minutes * 60 + seconds + milliseconds / 1000).toDouble(); + } catch (e) { + return double.infinity; + } + } +} \ No newline at end of file diff --git a/lib/screens/hasil_event_page.dart b/lib/screens/hasil_event_page.dart new file mode 100644 index 0000000..9f767e1 --- /dev/null +++ b/lib/screens/hasil_event_page.dart @@ -0,0 +1,214 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:flutter/material.dart'; +import 'event_result_page.dart'; // Import halaman hasil peserta + +class HasilEventPage extends StatelessWidget { + // Warna utama yang terinspirasi dari gambar Anda + final Color primaryBlue = Color(0xFF42A5F5); // Biru muda yang cerah + final Color lightBlue = Color(0xFFBBDEFB); // Biru yang lebih terang untuk background + final Color darkBlue = Color(0xFF1976D2); // Biru yang lebih gelap untuk teks/ikon + + @override + Widget build(BuildContext context) { + final eventCollection = FirebaseFirestore.instance.collection('events'); + + return Scaffold( + backgroundColor: Colors.grey[50], // Background lembut + appBar: AppBar( + title: Text( + 'Daftar Hasil Event', + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + centerTitle: true, + backgroundColor: primaryBlue, // Warna AppBar + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), // Sudut melengkung di kiri bawah + bottomRight: Radius.circular(20), // Sudut melengkung di kanan bawah + ), + ), + iconTheme: IconThemeData(color: Colors.white), // Warna ikon back + elevation: 5, // Tambahkan sedikit bayangan + ), + body: StreamBuilder( + stream: eventCollection.orderBy('created_at', descending: true).snapshots(), // Urutkan terbaru di atas + builder: (context, snapshot) { + if (!snapshot.hasData) { + return Center(child: CircularProgressIndicator(color: primaryBlue)); + } + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}', style: TextStyle(color: Colors.red))); + } + + final docs = snapshot.data!.docs; + + if (docs.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.event_note, size: 60, color: Colors.grey[400]), + SizedBox(height: 16), + Text( + "Belum ada event yang tersedia.", + style: TextStyle(fontSize: 18, color: Colors.grey[600]), + ), + ], + ), + ); + } + + return ListView.builder( + padding: EdgeInsets.all(16.0), // Padding menyeluruh untuk ListView + itemCount: docs.length, + itemBuilder: (context, index) { + final doc = docs[index]; + final data = doc.data() as Map; + + final eventName = data['name'] ?? 'Tanpa Nama'; + final totalLaps = data['total_laps'] ?? 0; + final totalDistance = data['total_distance'] ?? 0; + final participantsMap = data['participants'] as Map? ?? {}; // Ambil map peserta + + // Ambil status permanen dari Firestore + bool isEventFinishedPermanently = data['is_finished_permanently'] ?? false; + bool isEventStartedPermanently = data['is_started_permanently'] ?? false; + + String displayEventStatusText; + Color displayEventStatusColor; + if (isEventFinishedPermanently) { + displayEventStatusText = "Selesai"; // Lebih ringkas + displayEventStatusColor = Colors.green.shade700; + } else if (isEventStartedPermanently) { + displayEventStatusText = "Berlangsung"; // Lebih ringkas + displayEventStatusColor = Colors.orange.shade700; + } else { + displayEventStatusText = "Belum Mulai"; // Lebih ringkas + displayEventStatusColor = Colors.red.shade700; + } + + return Card( + margin: EdgeInsets.only(bottom: 16), // Spasi antar card + elevation: 4, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), // Radius pada Card + ), + color: Colors.white, // Warna Card putih + child: InkWell( // Gunakan InkWell untuk efek visual saat ditekan + borderRadius: BorderRadius.circular(12), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => EventResultPage( + eventId: doc.id, + eventName: eventName, + ), + ), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( // Menggunakan Column untuk menata konten + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( // Baris untuk Nama Event dan Status + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + child: Text( + eventName, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + overflow: TextOverflow.ellipsis, + ), + ), + Container( + padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: displayEventStatusColor.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: Text( + displayEventStatusText, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: displayEventStatusColor, + ), + ), + ), + ], + ), + SizedBox(height: 4), + Text( + "${totalLaps} Putaran | ${(totalDistance / 1000).toStringAsFixed(2)} KM", + style: TextStyle( + fontSize: 14, + color: Colors.grey[700], + ), + ), + SizedBox(height: 12), // Spasi sebelum daftar peserta + Text( + "Peserta (${participantsMap.length}):", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + ), + SizedBox(height: 8), + if (participantsMap.isEmpty) + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: Text( + "Belum ada peserta terdaftar.", + style: TextStyle(fontSize: 14, fontStyle: FontStyle.italic, color: Colors.grey[600]), + ), + ) + else + // List nama peserta + ...participantsMap.entries.map((entry) { + final p = entry.value as Map; + final name = p['name'] ?? 'Nama tidak ditemukan'; + final finished = p['finished'] == true; + final currentLaps = p['laps'] ?? 0; + String statusText = finished ? 'Selesai' : 'Berlangsung ($currentLaps putaran)'; + Color statusColor = finished ? Colors.green.shade700 : Colors.orange.shade700; + + return Padding( + padding: const EdgeInsets.only(left: 8.0, bottom: 4.0), + child: Row( + children: [ + Icon(Icons.person, size: 16, color: Colors.grey[700]), // Ikon orang + SizedBox(width: 8), + Expanded( + child: Text( + name, + style: TextStyle(fontSize: 14, color: Colors.grey[900]), + overflow: TextOverflow.ellipsis, + ), + ), + Text( + statusText, + style: TextStyle(fontSize: 12, color: statusColor), + ), + ], + ), + ); + }).toList(), + ], + ), + ), + ), + ); + }, + ); + }, + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/home_screen.dart b/lib/screens/home_screen.dart new file mode 100644 index 0000000..bd4aa29 --- /dev/null +++ b/lib/screens/home_screen.dart @@ -0,0 +1,425 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:flutter/material.dart'; +import 'package:fl_chart/fl_chart.dart'; +import 'package:intl/intl.dart'; +import 'detail_hasil_screen.dart'; +import 'all_activity_screen.dart'; + +class HomeScreen extends StatelessWidget { + const HomeScreen({super.key}); + + Future getUsername() async { + final user = FirebaseAuth.instance.currentUser; + if (user == null) return ''; + final doc = await FirebaseFirestore.instance.collection('users').doc(user.uid).get(); + return doc.data()?['username'] ?? ''; + } + + Future> fetchRunningData() async { + final user = FirebaseAuth.instance.currentUser; + if (user == null) return {}; + + final now = DateTime.now(); + final startOfWeek = DateTime(now.year, now.month, now.day - (now.weekday - 1)); + final endOfWeek = startOfWeek.add(const Duration(days: 7)).subtract(const Duration(seconds: 1)); + + final snapshot = await FirebaseFirestore.instance.collection('activities').get(); + final Map distancePerDay = {}; + + for (var doc in snapshot.docs) { + final data = doc.data()['data']; + if (data == null || data['userId'] != user.uid) continue; + + final timestamp = (data['timestamp'] as Timestamp?)?.toDate(); + if (timestamp == null || timestamp.isBefore(startOfWeek) || timestamp.isAfter(endOfWeek)) continue; + + final day = DateFormat('EEEE', 'id_ID').format(timestamp); + final jarak = (data['jarak'] ?? 0).toDouble(); + final satuan = data['satuan'] ?? 'M'; + final jarakKm = satuan == 'M' ? jarak / 1000.0 : jarak; + + distancePerDay[day] = (distancePerDay[day] ?? 0) + jarakKm; + } + + const sortedDays = ['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu']; + for (var dayName in sortedDays) { + distancePerDay.putIfAbsent(dayName, () => 0.0); + } + + return distancePerDay; + } + + Future>> fetchRingkasanData() async { + final user = FirebaseAuth.instance.currentUser; + if (user == null) return []; + + final snapshot = await FirebaseFirestore.instance.collection('activities').get(); + final List> result = []; + + for (var doc in snapshot.docs) { + final data = doc.data()['data']; // penting! + if (data == null || data['userId'] != user.uid) continue; + result.add({ + ...data, + 'docId': doc.id, // tambahkan docId untuk referensi penghapusan nanti + }); + } + + result.sort((a, b) { + final aTime = (a['timestamp'] as Timestamp?)?.toDate() ?? DateTime(2000); + final bTime = (b['timestamp'] as Timestamp?)?.toDate() ?? DateTime(2000); + return bTime.compareTo(aTime); + }); + + return result; + } + + String getGreeting() { + final hour = DateTime.now().hour; + if (hour >= 6 && hour <= 10) { + return 'Selamat Pagi'; + } else if (hour >= 11 && hour <= 14) { + return 'Selamat Siang'; + } else if (hour >= 15 && hour <= 17) { + return 'Selamat Sore'; + } else { + return 'Selamat Malam'; + } + } + + DateTime? parseTimestamp(dynamic raw) { + if (raw is Timestamp) { + return raw.toDate(); + } else if (raw is DateTime) { + return raw; + } else if (raw is String) { + return DateTime.tryParse(raw); + } else if (raw is int) { + return DateTime.fromMillisecondsSinceEpoch(raw); + } + return null; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: PreferredSize( + preferredSize: const Size.fromHeight(80), + child: FutureBuilder( + future: getUsername(), + builder: (context, snapshot) { + final greeting = getGreeting(); + final username = snapshot.data ?? '...'; + + return Container( + decoration: const BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40, left: 20, right: 20, bottom: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '$greeting, $username', + style: const TextStyle( + color: Colors.white, + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + Image.asset( + 'images/run.png', + height: 55, + width: 55, + ), + ], + ), + ); + }, + ), + ), + body: RefreshIndicator( + onRefresh: () async { + // Memanggil kembali data setelah pull-to-refresh + fetchRunningData(); + fetchRingkasanData(); + }, + child: Padding( + padding: const EdgeInsets.only(top: 0.0, bottom: 0.0, right: 14.0, left: 14.0), + child: FutureBuilder( + future: Future.wait([fetchRunningData(), fetchRingkasanData(), getUsername()]), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final runningData = snapshot.data?[0] as Map? ?? {}; + final ringkasanData = snapshot.data?[1] as List>? ?? []; + + final sortedDays = ['Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu', 'Minggu']; + final values = sortedDays.map((day) => runningData[day] ?? 0.0).toList(); + final totalMinggu = values.fold(0.0, (a, b) => a + b); + int totalDurasiDetik = 0; + final now = DateTime.now(); + final startOfWeek = DateTime(now.year, now.month, now.day - (now.weekday - 1)); + final endOfWeek = startOfWeek.add(const Duration(days: 7)).subtract(const Duration(seconds: 1)); + + for (var data in ringkasanData) { + final timestamp = parseTimestamp(data['timestamp']); + if (timestamp == null) continue; + if (timestamp.isBefore(startOfWeek) || timestamp.isAfter(endOfWeek)) continue; + + totalDurasiDetik += (((data['duration'] ?? data['durasi'] ?? 0) as num).toInt() ~/ 1000); + } + + String formatDurasi(int totalSeconds) { + final jam = totalSeconds ~/ 3600; + final menit = (totalSeconds % 3600) ~/ 60; + final detik = totalSeconds % 60; + return '${jam}j ${menit}m ${detik}d'; + } + + final totalDurasiFormatted = formatDurasi(totalDurasiDetik); + + final maxValue = values.reduce((a, b) => a > b ? a : b); + final highestDay = sortedDays[values.indexOf(maxValue)]; + + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Minggu ini', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w700, + ), + ), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (_) => const AllActivityScreen()), + ); + }, + child: const Text( + 'View all weeks', + style: TextStyle(color: Colors.blue), + ), + ), + ], + ), + const SizedBox(height: 1), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Jarak', + style: TextStyle(fontSize: 12, fontWeight: FontWeight.normal), + ), + Text( + '${totalMinggu.toStringAsFixed(2)} km', + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ], + ), + const SizedBox(width: 20), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Waktu', + style: TextStyle(fontSize: 12, fontWeight: FontWeight.normal), + ), + Text( + totalDurasiFormatted, + style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ], + ), + ], + ), + const SizedBox(height: 20), + SizedBox( + height: 170, + child: Padding( + padding: const EdgeInsets.only(left: 5.0, right: 6.0), + child: LineChart( + LineChartData( + minY: 0.0, + maxY: (values.isEmpty ? 5.0 : values.reduce((a, b) => a > b ? a : b)), + gridData: FlGridData( + show: true, + drawVerticalLine: true, + drawHorizontalLine: false, + verticalInterval: 1, + getDrawingVerticalLine: (value) { + return FlLine( + color: Colors.blue.withOpacity(0.2), + strokeWidth: 1, + ); + }, + ), + extraLinesData: ExtraLinesData( + verticalLines: [ + VerticalLine( + x: 0, + color: Colors.blue.withOpacity(0.2), + strokeWidth: 1, + ), + VerticalLine( + x: (sortedDays.length - 1).toDouble(), + color: Colors.blue.withOpacity(0.2), + strokeWidth: 1, + ), + ], + ), + titlesData: FlTitlesData( + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + interval: 1, + getTitlesWidget: (value, meta) { + int index = value.toInt(); + if (index < 0 || index >= sortedDays.length) { + return const SizedBox.shrink(); + } + EdgeInsets padding = EdgeInsets.zero; + if (index == 0) { + padding = const EdgeInsets.only(left: 12); + } else if (index == sortedDays.length - 1) { + padding = const EdgeInsets.only(right: 12); + } + return Padding( + padding: padding.add(const EdgeInsets.only(top: 4)), // tambah jarak dari grafik ke teks + child: Text( + sortedDays[index].substring(0, 3), + style: const TextStyle(fontSize: 10), + ), + ); + }, + ), + ), + leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + rightTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + reservedSize: 35, + getTitlesWidget: (value, _) { + if (value == 0.0 || value == maxValue || value == (maxValue + 1)) { + return Padding( + padding: const EdgeInsets.only(left: 8), + child: Text('${value.toStringAsFixed(1)} KM', style: const TextStyle(fontSize: 10)), + ); + } + return const SizedBox.shrink(); + }, + ), + ), + topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + ), + borderData: FlBorderData(show: false), + lineBarsData: [ + LineChartBarData( + spots: List.generate(values.length, (i) => FlSpot(i.toDouble(), values[i])), + isCurved: false, + barWidth: 3, + dotData: FlDotData(show: true), + belowBarData: BarAreaData( + show: true, + color: Colors.lightBlueAccent.withOpacity(0.3), + ), + color: Colors.blue, + ), + ], + ), + ), + ), + ), + const SizedBox(height: 24), + Text('Hari Teraktif: $highestDay (${maxValue.toStringAsFixed(2)} KM)', + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500)), + const SizedBox(height: 16), + + const Text('Ringkasan Hasil Lari', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600)), + const SizedBox(height: 8), + + ringkasanData.isEmpty + ? const Text('Belum ada data untuk hari teraktif.') + : ListView.separated( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: ringkasanData.length, + separatorBuilder: (_, __) => const SizedBox(height: 12), + itemBuilder: (context, index) { + final data = ringkasanData[index]; + final timestamp = (data['timestamp'] as Timestamp?)?.toDate(); + if (timestamp == null) return const SizedBox(); + + final jarak = (data['jarak'] ?? 0).toDouble(); + final satuan = data['satuan'] ?? 'M'; + final jarakKm = satuan == 'M' ? jarak / 1000.0 : jarak; + + return GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DetailHasilLariScreen( + data: { + ...data, + 'docId': ringkasanData[index]['docId'] ?? '', // tambahkan docId kalau tersedia + }, + ), + ), + ); + }, + + child: Card( + color: const Color.fromARGB(255, 60, 193, 255), + elevation: 2, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ListTile( + leading: Padding( + padding: const EdgeInsets.only(top: 12.0), // geser ke bawah + child: const Icon(Icons.directions_run), + ), + title: Text('${jarak.toStringAsFixed(0)} $satuan'), + subtitle: Text( + '${DateFormat('dd MMM yyyy, HH:mm').format(timestamp)}\n(${jarakKm.toStringAsFixed(2)} KM)', + ), + isThreeLine: true, + trailing: Padding( + padding: const EdgeInsets.only(top: 12.0), // geser ke bawah + child: const Icon(Icons.arrow_forward_ios, size: 16), + ), + ), + ), + ); + }, + ), + ], + ), + ); + }, + ), + ), + ) + ); + } +} diff --git a/lib/screens/main_screen.dart b/lib/screens/main_screen.dart new file mode 100644 index 0000000..4b2d9ad --- /dev/null +++ b/lib/screens/main_screen.dart @@ -0,0 +1,68 @@ +import 'package:flutter/material.dart'; +import 'package:ta_running/screens/start_activity_screen.dart'; +import 'home_screen.dart'; +import 'profile_screen.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + int _selectedIndex = 0; + + final List _screens = [ + const HomeScreen(), + const StartActivityScreen(), + const ProfileScreen(), + ]; + + void _onTabTapped(int index) { + setState(() => _selectedIndex = index); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: _screens[_selectedIndex], + bottomNavigationBar: Container( + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.2), // Warna bayangan hitam dengan transparansi + blurRadius: 10, // Ukuran blur bayangan + offset: Offset(0, -4), // Posisi bayangan + ), + ], + ), + child: BottomNavigationBar( + currentIndex: _selectedIndex, + onTap: _onTabTapped, + showSelectedLabels: true, // label tampil saat aktif + showUnselectedLabels: false, // label disembunyikan saat tidak aktif + selectedItemColor: Colors.blueAccent, + unselectedItemColor: Colors.grey, + backgroundColor: Colors.white, + type: BottomNavigationBarType.fixed, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.home), + label: 'Home', + ), + BottomNavigationBarItem( + icon: Icon(Icons.play_arrow), + label: 'Start', + ), + BottomNavigationBarItem( + icon: Icon(Icons.person), + label: 'Profile', + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/monitoring_screen.dart b/lib/screens/monitoring_screen.dart new file mode 100644 index 0000000..db1b4e3 --- /dev/null +++ b/lib/screens/monitoring_screen.dart @@ -0,0 +1,118 @@ +import 'dart:async'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'result_screen.dart'; + +class MonitoringScreen extends StatefulWidget { + final String userId; + const MonitoringScreen({Key? key, required this.userId}) : super(key: key); + + @override + State createState() => _MonitoringScreenState(); +} + + class _MonitoringScreenState extends State { + late DatabaseReference _activityRef; + StreamSubscription? _subscription; + bool _navigated = false; + + @override + void initState() { + super.initState(); + final db = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + _activityRef = db.ref("activities/${widget.userId}"); + + _subscription = _activityRef.onValue.listen((event) { + final raw = event.snapshot.value; + if (raw is Map) { + final data = Map.from(raw); + + // ✅ Cek dan simpan startTime jika status == 'running' dan startTime belum ada + if (data['status'] == 'running' && data['startTime'] == null) { + final now = DateTime.now().toUtc(); // ambil SEKALI dalam UTC + final nowMillis = now.millisecondsSinceEpoch; + final nowIso = now.toIso8601String(); + + _activityRef.update({ + 'startTime': nowMillis, + 'laps/lap_0/timestamp': nowIso, + }); + + print("⏱️ startTime dan lap_0 disimpan ke RTDB: $nowIso"); + } + + // ✅ Saat status 'done', proses navigasi dan simpan durasi + if (!_navigated && data['status'] == 'done') { + _navigated = true; + _subscription?.cancel(); + + int? dur; + + if (data['startTime'] != null) { + final now = DateTime.now().millisecondsSinceEpoch; + dur = now - (data['startTime'] as int); + _activityRef.update({'duration': dur}); + data['duration'] = dur; + } + + final type = data['type']; + final rawJarak = data['jarak']; + final satuan = data['satuan'] ?? 'M'; + + double jarakKm = 0; + if (rawJarak != null) { + jarakKm = satuan == 'KM' + ? (rawJarak as num).toDouble() + : (rawJarak as num).toDouble() / 1000.0; + } + + if (type == 'non-lintasan' && jarakKm > 0 && dur != null) { + final durSec = dur / 1000.0; + final pacePerKmSec = durSec / jarakKm; + _activityRef.update({'pace_sec_per_km': pacePerKmSec}); + data['pace_sec_per_km'] = pacePerKmSec; + } + + data['uidTag'] = widget.userId; + + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (_) => ResultScreen(activityData: data), + ), + ); + } + } + }); + } + + @override + void dispose() { + _subscription?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return const Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(color: Colors.blueAccent), + SizedBox(height: 20), + Text( + 'Aktivitas sedang berlangsung...', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ], + ), + ), + ); + } + } \ No newline at end of file diff --git a/lib/screens/profile_screen.dart b/lib/screens/profile_screen.dart new file mode 100644 index 0000000..4687f3b --- /dev/null +++ b/lib/screens/profile_screen.dart @@ -0,0 +1,265 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:firebase_core/firebase_core.dart'; +import '../screens/auth/login_screen.dart'; +import 'edit_profile_screen.dart'; + +class ProfileScreen extends StatefulWidget { + const ProfileScreen({super.key}); + + @override + State createState() => _ProfileScreenState(); +} + +class _ProfileScreenState extends State { + String? username; + String? gender; + String? email; + + @override + void initState() { + super.initState(); + _fetchUserData(); + } + + Future _fetchUserData() async { + final user = FirebaseAuth.instance.currentUser; + if (user != null) { + final doc = await FirebaseFirestore.instance.collection('users').doc(user.uid).get(); + setState(() { + username = doc['username']; + gender = doc['gender']; + email = user.email; + }); + } + } + + Future _logout() async { + final shouldLogout = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Konfirmasi Logout'), + content: const Text('Apakah kamu yakin ingin keluar dari akun ini?'), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: const Text('Batal')), + ElevatedButton(onPressed: () => Navigator.pop(context, true), child: const Text('Logout')), + ], + ), + ); + + if (shouldLogout == true) { + await FirebaseAuth.instance.signOut(); + if (!mounted) return; + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const LoginScreen()), + (route) => false, + ); + } + } + + Widget _buildInfoRow(String label, String value) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontSize: 14, + color: Colors.grey, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + value, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ], + ), + ); + } + + Future _refreshData() async { + await _fetchUserData(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: PreferredSize( + preferredSize: const Size.fromHeight(100), + child: Container( + decoration: const BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40, left: 20, right: 20, bottom: 20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "Profile", + style: const TextStyle( + color: Colors.white, + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ), + Row( + children: [ + IconButton( + tooltip: 'Edit Profil', + onPressed: () async { + final updated = await Navigator.push( + context, + MaterialPageRoute(builder: (_) => const EditProfileScreen()), + ); + if (updated == true) { + _fetchUserData(); + } + }, + icon: const Icon(Icons.edit, color: Colors.white, size: 24), + ), + IconButton( + tooltip: 'Logout', + onPressed: _logout, + icon: const Icon(Icons.logout, color: Colors.white, size: 24), + ), + ], + ) + ], + ), + ), + ), + body: RefreshIndicator( + onRefresh: _refreshData, + child: ListView( + padding: const EdgeInsets.all(20), + children: [ + username == null || gender == null || email == null + ? const Center(child: CircularProgressIndicator()) + : Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const SizedBox(height: 20), + CircleAvatar( + radius: 40, + backgroundColor: Colors.blue, + child: Text( + username![0].toUpperCase(), + style: const TextStyle(fontSize: 32, color: Colors.white), + ), + ), + const SizedBox(height: 16), + Text( + username!, + style: const TextStyle(fontSize: 22, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 24), + Card( + color: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + elevation: 6, + shadowColor: Colors.blueAccent.withOpacity(0.4), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildInfoRow("Username", username!), + const Divider(), + _buildInfoRow("Gender", gender!), + const Divider(), + _buildInfoRow("Email", email!), + const Divider(), + FutureBuilder( + future: FirebaseFirestore.instance + .collection("users") + .doc(FirebaseAuth.instance.currentUser?.uid) + .get(), + builder: (context, snapshot) { + String rfidText = "Belum terdaftar"; + if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { + final data = snapshot.data?.data() as Map?; + if (data != null && data.containsKey("idGelang")) { + rfidText = data["idGelang"]; + } + } + return _buildInfoRow("UID RFID", rfidText); + }, + ), + ], + ), + ), + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () async { + final user = FirebaseAuth.instance.currentUser; + if (user != null) { + final db = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + final gelangRef = db.ref("/gelang"); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Menunggu scan gelang di alat..."), + duration: Duration(seconds: 3), + ), + ); + + StreamSubscription? sub; + sub = gelangRef.onValue.listen((event) async { + final data = event.snapshot.value; + if (data != null && data is String) { + final rfid = data; + + await FirebaseFirestore.instance + .collection("users") + .doc(user.uid) + .set({"idGelang": rfid}, SetOptions(merge: true)); + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text("Gelang berhasil didaftarkan: $rfid"), + duration: const Duration(seconds: 3), + ), + ); + + await sub?.cancel(); + } + }); + } + }, + child: const Text("Daftarkan RFID"), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/result_screen.dart b/lib/screens/result_screen.dart new file mode 100644 index 0000000..63f3fd5 --- /dev/null +++ b/lib/screens/result_screen.dart @@ -0,0 +1,237 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:flutter/material.dart'; +import 'main_screen.dart'; + +class ResultScreen extends StatelessWidget { + final Map activityData; + + const ResultScreen({Key? key, required this.activityData}) : super(key: key); + + Future _saveActivityAndGoHome(BuildContext context) async { + try { + final user = FirebaseAuth.instance.currentUser; + if (user == null) throw Exception("User belum login"); + + final docRef = FirebaseFirestore.instance.collection('activities').doc(); // buat ID manual + await docRef.set({ + 'data': { + 'userId': user.uid, + 'type': activityData['type'] ?? 'non-lintasan', + 'jarak': activityData['jarak'] ?? activityData['distance'] ?? 0.0, + 'satuan': activityData['satuan'] ?? 'M', + 'putaran': activityData['putaran'] ?? 0, + 'duration': activityData['duration'], + 'startTime': activityData['startTime'], + 'timestamp': FieldValue.serverTimestamp(), + } + }); + + + // AMBIL LAPS DARI RTDB DAN SIMPAN JUGA + final rtdb = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + + final lapsRef = rtdb.ref("activities/${activityData['uidTag']}/laps"); + final lapSnap = await lapsRef.get(); + final lapData = lapSnap.value; + + if (lapData != null && lapData is Map) { + await docRef.update({ + 'data.laps': lapData, + }); + print("✅ Laps disimpan ke Firestore."); + } else { + print("⚠️ Laps tidak ditemukan di RTDB."); + } + + + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const MainScreen()), + (route) => false, + ); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menyimpan aktivitas: $e')), + ); + } + } + + @override + Widget build(BuildContext context) { + final type = activityData['type'] ?? 'Tidak diketahui'; + final rawJarak = activityData['jarak'] ?? activityData['distance'] ?? 0.0; + final satuan = activityData['satuan'] ?? 'M'; + final jarak = satuan == 'M' ? rawJarak / 1000.0 : rawJarak; + final putaran = activityData['putaran'] ?? '-'; + + int? startTimeMillis = activityData['startTime']; + DateTime? startTime; + if (startTimeMillis != null) { + startTime = DateTime.fromMillisecondsSinceEpoch(startTimeMillis); + } + + int? durationMillis = activityData['duration']; + String durationFormatted = '-'; + if (durationMillis != null) { + final dur = Duration(milliseconds: durationMillis); + durationFormatted = dur.toString().split('.').first.padLeft(8, "0"); + } else if (startTime != null) { + final dur = DateTime.now().difference(startTime); + durationFormatted = dur.toString().split('.').first.padLeft(8, "0"); + } + + // ✅ Format pace jika tersedia + String? paceFormatted; + if (type == 'non-lintasan' && activityData['pace_sec_per_km'] != null) { + final paceSec = (activityData['pace_sec_per_km'] as num).toDouble(); + final paceMin = paceSec ~/ 60; + final paceSecRem = (paceSec % 60).round(); + paceFormatted = '$paceMin:${paceSecRem.toString().padLeft(2, '0')} /km'; + } + + String getRunPeriodLabel(DateTime time) { + final hour = time.hour; + if (hour >= 6 && hour <= 10) { + return 'Berlari Pagi'; + } else if (hour >= 11 && hour <= 14) { + return 'Berlari Siang'; + } else if (hour >= 15 && hour <= 17) { + return 'Berlari Sore'; + } else { + return 'Berlari Malam'; + } + } + + + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 40), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'Selamat! Kamu telah menyelesaikan\naktivitas', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 26, fontWeight: FontWeight.w700), + ), + const SizedBox(height: 30), + Container( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 24), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [Colors.blueAccent.shade200, Colors.blue.shade400], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.4), + offset: const Offset(0, 4), + blurRadius: 8, + ), + ], + ), + child: Column( + children: [ + Text( + getRunPeriodLabel(startTime ?? DateTime.now()), + style: const TextStyle( + fontSize: 30, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 20), + if (type == 'lintasan') ...[ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _infoItem('${jarak.toStringAsFixed(2)} KM', 'Jarak'), + _infoItem(durationFormatted, 'Durasi'), + ], + ), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _infoItem('$putaran', 'Putaran'), + _infoItem('Lintasan', 'Jenis Aktivitas'), + ], + ), + ] else ...[ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _infoItem('${jarak.toStringAsFixed(2)} KM', 'Jarak'), + _infoItem(durationFormatted, 'Durasi'), + ], + ), + if (paceFormatted != null) ...[ + const SizedBox(height: 16), + _infoItem(paceFormatted!, 'Pace'), + ], + const SizedBox(height: 16), + Text( + 'Jenis Aktivitas\nNon-Lintasan', + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.white, fontSize: 15), + ), + ], + ], + ), + ), + const SizedBox(height: 40), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: () => _saveActivityAndGoHome(context), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + ), + child: const Text( + 'Kembali ke Beranda', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _infoItem(String value, String label) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + value, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + const SizedBox(height: 4), + Text( + label, + style: const TextStyle(color: Colors.white70, fontSize: 12), + ), + ], + ); + } +} diff --git a/lib/screens/splash_screen.dart b/lib/screens/splash_screen.dart new file mode 100644 index 0000000..f40e544 --- /dev/null +++ b/lib/screens/splash_screen.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:ta_running/screens/auth/login_screen.dart'; +import 'package:ta_running/screens/main_screen.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'super_user_dashboard.dart'; + +class SplashScreen extends StatefulWidget { + const SplashScreen({super.key}); + + @override + State createState() => _SplashScreenState(); +} + +class _SplashScreenState extends State { + @override + void initState() { + super.initState(); + _checkLogin(); + } + + Future _checkLogin() async { + await Future.delayed(const Duration(seconds: 2)); + final user = FirebaseAuth.instance.currentUser; + + if (user != null) { + // Ambil data user dari Firestore + final doc = await FirebaseFirestore.instance + .collection('users') + .doc(user.uid) + .get(); + + final role = doc.data()?['role'] ?? 'runner'; + + if (role == 'superuser') { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => SuperUserDashboard()), + ); + } else { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => const MainScreen()), + ); + } + } else { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => const LoginScreen()), + ); + } + } + + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.blueAccent, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'images/run.png', + width: 100, + height: 100, + ), + const SizedBox(height: 20), + const Text( + 'Selamat Datang, Runners!', + style: TextStyle( + fontSize: 26, + fontWeight: FontWeight.bold, + color: Colors.white, + letterSpacing: 1.2, + ), + ), + const SizedBox(height: 10), + const Text( + 'Ayo mulai lari dan pantau performamu!', + style: TextStyle( + fontSize: 16, + color: Colors.white70, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/start_activity_screen.dart b/lib/screens/start_activity_screen.dart new file mode 100644 index 0000000..31c4fea --- /dev/null +++ b/lib/screens/start_activity_screen.dart @@ -0,0 +1,371 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'wait_for_rfid_screen.dart'; + +class StartActivityScreen extends StatefulWidget { + const StartActivityScreen({super.key}); + + @override + State createState() => _StartActivityScreenState(); +} + +class _StartActivityScreenState extends State { + String? _selectedType; + final _lapController = TextEditingController(); // Untuk input jumlah putaran + final _calculatedDistanceController = TextEditingController(); // Untuk menampilkan jarak total + String _unit = 'KM'; + + // Variabel untuk menghitung waktu setiap lap + DateTime lapStartTime = DateTime.now(); + DateTime lapEndTime = DateTime.now(); + double lapTimeInSeconds = 0; + double speed = 0.0; // Kecepatan dalam m/s + + void _showError(String message) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Error", style: TextStyle(color: Colors.red)), + content: Text(message), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text("OK", style: TextStyle(color: Colors.blue)), + ) + ], + ), + ); + } + + // Fungsi untuk memulai timer saat lap dimulai + void startLapTimer() { + lapStartTime = DateTime.now(); // Mulai timer dengan DateTime + } + + // Fungsi untuk menghentikan timer saat lap selesai dan menghitung kecepatan + void endLapTimer(double lapDistance, String uidTag) { + lapEndTime = DateTime.now(); // Hentikan timer dengan DateTime + lapTimeInSeconds = lapEndTime.difference(lapStartTime).inSeconds.toDouble(); // Hitung waktu dalam detik + speed = lapDistance / lapTimeInSeconds; // Hitung kecepatan dalam meter per detik + + // Simpan kecepatan per lap di Firebase + saveSpeedToFirebase(uidTag, speed); + } + + // Fungsi untuk menyimpan kecepatan per lap ke Firebase (RTDB) + void saveSpeedToFirebase(String uidTag, double speed) { + final user = FirebaseAuth.instance.currentUser; + + if (user == null) { + print("User tidak ditemukan"); + return; + } + + try { + final db = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + final ref = db.ref("activities/$uidTag"); + + // Simpan kecepatan per lap + ref.child('kecepatan_lap').push().set({ + 'speed': speed, + 'timestamp': DateTime.now().toIso8601String(), + }); + + print("Kecepatan lap $uidTag berhasil disimpan: $speed m/s"); + } catch (e) { + print("❌ Gagal menyimpan kecepatan lap: $e"); + } + } + + // Fungsi untuk mengupdate jarak dan kecepatan setiap lap + void _updateDistance() { + final laps = int.tryParse(_lapController.text); + if (laps != null && laps >= 3) { + final totalDistance = laps * 400; // 400 meter per putaran + _calculatedDistanceController.text = totalDistance.toString(); + } else if (laps != null && laps < 3) { + _calculatedDistanceController.text = ''; + _showError("Jumlah putaran minimal adalah 3 (1200m)."); + } else { + _calculatedDistanceController.text = ''; + } + } + + // Fungsi untuk submit aktivitas ke Firebase + void _submit() { + if (_selectedType == 'Lintasan') { + final laps = int.tryParse(_lapController.text); + + if (laps == null || laps < 3) { + _showError("Masukkan jumlah putaran yang valid (minimal 3)."); + return; + } + + final totalDistance = laps * 400; // 400 meter per putaran + + _calculatedDistanceController.text = totalDistance.toString(); + + submitToFirebase( + jarak: totalDistance.toDouble(), + jenisAktivitas: 'lintasan', + satuan: 'M', + putaran: laps, + ); + } else if (_selectedType == 'Non-Lintasan') { + final jarak = double.tryParse(_lapController.text); + + if (jarak == null || jarak <= 0) { + _showError("Masukkan jarak yang valid."); + return; + } + + submitToFirebase( + jarak: jarak, + jenisAktivitas: 'non-lintasan', + satuan: _unit, + ); + } else { + _showError("Pilih jenis aktivitas terlebih dahulu."); + } + } + + // Fungsi untuk submit data ke Firebase + void submitToFirebase({ + required double jarak, + required String jenisAktivitas, + required String satuan, + int? putaran, + }) async { + final user = FirebaseAuth.instance.currentUser; + + if (user == null) { + print("User tidak ditemukan"); + return; + } + + try { + final userDoc = await FirebaseFirestore.instance + .collection("users") + .doc(user.uid) + .get(); + + final userData = userDoc.data(); + if (userData == null || !userData.containsKey("idGelang")) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Silakan daftarkan gelang RFID terlebih dahulu.")), + ); + return; + } + + final uidTag = userData["idGelang"]; + + final db = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + final ref = db.ref("activities/$uidTag"); + + await ref.set({ + 'uid_apk': user.uid, + 'jarak': jarak, + 'satuan': satuan, + 'putaran': putaran, + 'type': jenisAktivitas, + 'status': 'waiting_for_rfid', + 'timestamp': DateTime.now().toIso8601String(), + }); + + print("✅ Data aktivitas dikirim ke Firebase dengan UID tag: $uidTag"); + + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (_) => WaitForRfidScreen(uidTag: uidTag), + ), + ); + } catch (e) { + print("❌ Gagal mengirim aktivitas: $e"); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal mengirim aktivitas: $e")), + ); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: PreferredSize( + preferredSize: const Size.fromHeight(80), + child: Container( + decoration: const BoxDecoration( + color: Colors.blue, + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + padding: const EdgeInsets.only(top: 40, left: 16, right: 16), + child: Row( + children: [ + if (_selectedType != null) + IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => setState(() => _selectedType = null), + ) + else + const SizedBox(width: 48), + Expanded( + child: Center( + child: Text( + "Start Activity", + style: const TextStyle( + color: Colors.white, + fontSize: 28, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + const SizedBox(width: 48), + ], + ), + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 32), + child: _selectedType == null + ? Column( + children: [ + const SizedBox(height: 70), + Image.asset( + 'images/run.png', + width: 100, + height: 100, + ), + const SizedBox(height: 80), + const Text( + 'Pilih Jenis Aktivitas', + style: TextStyle(fontSize: 28, fontWeight: FontWeight.w800), + textAlign: TextAlign.center, + ), + const SizedBox(height: 28), + Row( + children: [ + Expanded( + child: ElevatedButton( + onPressed: () => setState(() => _selectedType = 'Lintasan'), + style: ElevatedButton.styleFrom( + backgroundColor: _selectedType == 'Lintasan' ? Colors.blueAccent : Colors.white, + side: const BorderSide(color: Colors.blueAccent), + foregroundColor: _selectedType == 'Lintasan' ? Colors.white : Colors.blueAccent, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + padding: const EdgeInsets.symmetric(vertical: 14), + ), + child: const Text('LINTASAN'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ElevatedButton( + onPressed: () => setState(() => _selectedType = 'Non-Lintasan'), + style: ElevatedButton.styleFrom( + backgroundColor: _selectedType == 'Non-Lintasan' ? Colors.blueAccent : Colors.white, + side: const BorderSide(color: Colors.blueAccent), + foregroundColor: _selectedType == 'Non-Lintasan' ? Colors.white : Colors.blueAccent, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + padding: const EdgeInsets.symmetric(vertical: 14), + ), + child: const Text('NON-LINTASAN'), + ), + ), + ], + ), + ], + ) + : Column( + children: [ + const SizedBox(height: 70), + Image.asset( + 'images/run.png', + width: 100, + height: 100, + fit: BoxFit.contain, + ), + const SizedBox(height: 80), + Text( + _selectedType!, + style: const TextStyle(fontSize: 28, fontWeight: FontWeight.w800), + ), + const SizedBox(height: 20), + if (_selectedType == 'Lintasan') ...[ + TextField( + controller: _lapController, + keyboardType: TextInputType.number, + decoration: const InputDecoration( + labelText: 'Jumlah Putaran (400M/Putaran)', + border: OutlineInputBorder(), + ), + onChanged: (text) { + _updateDistance(); // Update jarak total setiap kali jumlah putaran diubah + }, + ), + const SizedBox(height: 12), + TextField( + controller: _calculatedDistanceController, + enabled: false, // Disable editing + decoration: const InputDecoration( + labelText: 'Jarak Total (M)', + border: OutlineInputBorder(), + ), + ), + ] else ...[ + Row( + children: [ + Expanded( + child: TextField( + controller: _lapController, // Menggunakan lapController untuk Non-Lintasan + keyboardType: TextInputType.number, + decoration: const InputDecoration( + labelText: 'Jarak', + border: OutlineInputBorder(), + ), + ), + ), + const SizedBox(width: 12), + DropdownButton( + value: _unit, + items: const [ + DropdownMenuItem(value: 'KM', child: Text('KM')), + DropdownMenuItem(value: 'M', child: Text('M')), + ], + onChanged: (value) => setState(() => _unit = value!), + ), + ], + ), + ], + const SizedBox(height: 20), + ElevatedButton( + onPressed: _submit, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blueAccent, + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + ), + child: const Text( + 'Submit dan Scan RFID', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/screens/super_user_dashboard.dart b/lib/screens/super_user_dashboard.dart new file mode 100644 index 0000000..5dad9db --- /dev/null +++ b/lib/screens/super_user_dashboard.dart @@ -0,0 +1,341 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:flutter/material.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'auth/login_screen.dart'; // Pastikan path ini benar +import 'create_event_page.dart'; // Pastikan path ini benar +import 'event_detail_page.dart'; // Pastikan path ini benar +import 'hasil_event_page.dart'; // Pastikan path ini benar + +class SuperUserDashboard extends StatefulWidget { + @override + State createState() => _SuperUserDashboardState(); +} + +class _SuperUserDashboardState extends State { + // Warna utama yang terinspirasi dari gambar Anda + final Color primaryBlue = Color(0xFF42A5F5); // Biru muda yang cerah + final Color lightBlue = Color(0xFFBBDEFB); // Biru yang lebih terang untuk background + final Color darkBlue = Color(0xFF1976D2); // Biru yang lebih gelap untuk teks/ikon + + Future _refresh() async { + // Memaksa rebuild StreamBuilder saat refresh + setState(() {}); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, // Background lembut + body: RefreshIndicator( // RefreshIndicator di sini untuk keseluruhan body + onRefresh: _refresh, + color: primaryBlue, // Warna indicator refresh + child: CustomScrollView( + // Pastikan physics di CustomScrollView agar bisa di-scroll + physics: const AlwaysScrollableScrollPhysics(), + slivers: [ + SliverAppBar( + expandedHeight: 200.0, // Tinggi appBar saat expanded + floating: false, + pinned: true, // AppBar tetap terlihat saat scroll + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), // Sudut melengkung di kiri bawah + bottomRight: Radius.circular(20), // Sudut melengkung di kanan bawah + ), + ), + backgroundColor: primaryBlue, // Set warna dasar AppBar (penting untuk transisi) + flexibleSpace: FlexibleSpaceBar( + centerTitle: true, + titlePadding: EdgeInsets.only(bottom: 16.0, left: 16.0, right: 16.0), + // Untuk membuat "Dashboard Event" dan logo terlihat melengkung, + // kita bisa membungkus konten background FlexibleSpaceBar + // dengan ClipRRect dan Container tambahan. + background: ClipRRect( // <<< Tambahkan ClipRRect di sini + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + child: Container( // <<< Tambahkan Container di sini + decoration: BoxDecoration( + gradient: LinearGradient( // Tetap gunakan gradient untuk warna + colors: [primaryBlue, darkBlue], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + ), + // Hapus borderRadius di sini karena sudah ada di ClipRRect + ), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 20), // Spasi untuk logo + Image.asset( + 'images/run.png', // Pastikan path logo benar + height: 80, + ), + // Jika Anda ingin teks 'Dashboard Event' juga terlihat di expanded state, + // dan melengkung bersama background, Anda bisa menambahkannya di sini. + // Namun, secara default, title FlexibleSpaceBar akan bergerak. + // Untuk membuat teks title 'tetap' dengan background yang melengkung, + // Anda mungkin perlu menempatkan teks di dalam Column ini juga, + // dan menghapus properti 'title' dari FlexibleSpaceBar. + // Untuk saat ini, kita biarkan 'title' seperti adanya untuk animasi. + // Jika Anda ingin title statis di dalam background melengkung, beritahu saya. + ], + ), + ), + ), + ), + title: Text( // Ini adalah title yang akan bergerak saat scroll + 'Dashboard Event', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + textAlign: TextAlign.center, + ), + ), + actions: [ + IconButton( + icon: Icon(Icons.logout, color: Colors.white), + tooltip: 'Logout', + onPressed: () async { + final shouldLogout = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text('Konfirmasi Logout'), + content: Text('Apakah Anda yakin ingin keluar dari akun Super User?'), + actions: [ + TextButton(onPressed: () => Navigator.pop(context, false), child: Text('Batal')), + TextButton( + onPressed: () async { + await FirebaseAuth.instance.signOut(); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const LoginScreen()), + (route) => false, + ); + }, + child: Text('Logout', style: TextStyle(color: Colors.red))), + ], + ), + ); + }, + ), + ], + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Card( + elevation: 4, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + color: Colors.white, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + // Teks "Aksi Cepat" sudah dihapus dari sini sesuai permintaan sebelumnya + _buildActionButton( + context, + icon: Icons.add_circle_outline, + label: 'Buat Event Baru', + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => CreateEventPage())); + }, + color: primaryBlue, + ), + SizedBox(height: 12), + _buildActionButton( + context, + icon: Icons.bar_chart, + label: 'Lihat Hasil Event', + onPressed: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => HasilEventPage())); + }, + color: Colors.green.shade600, // Warna hijau yang bagus + ), + ], + ), + ), + ), + SizedBox(height: 24), + Text( + 'Daftar Event', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + ), + SizedBox(height: 1), + ], + ), + ), + ), + StreamBuilder( + stream: FirebaseFirestore.instance + .collection('events') + .orderBy('created_at', descending: true) // Urutkan terbaru di atas + .snapshots(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return SliverFillRemaining( + child: Center(child: CircularProgressIndicator(color: primaryBlue))); + } + if (snapshot.hasError) { + return SliverFillRemaining( + child: Center(child: Text('Error: ${snapshot.error}', style: TextStyle(color: Colors.red)))); + } + if (!snapshot.hasData || snapshot.data!.docs.isEmpty) { + return SliverFillRemaining(child: Center(child: Text('Belum ada event yang dibuat.'))); + } + + final events = snapshot.data!.docs; + + return SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + final data = events[index].data() as Map; + final docId = events[index].id; + final eventName = data['name'] ?? 'Tanpa Nama Event'; + final totalLaps = data['total_laps'] ?? 0; + final totalDistance = data['total_distance'] ?? 0; + final createdAt = data['created_at'] is Timestamp + ? (data['created_at'] as Timestamp).toDate() + : null; + final isStartedPermanently = data['is_started_permanently'] ?? false; + final isFinishedPermanently = data['is_finished_permanently'] ?? false; + + String statusText; + Color statusColor; + + if (isFinishedPermanently) { + statusText = 'Selesai'; + statusColor = Colors.green.shade700; + } else if (isStartedPermanently) { + statusText = 'Sedang Berlangsung'; + statusColor = Colors.orange.shade700; + } else { + statusText = 'Belum Dimulai'; + statusColor = darkBlue; + } + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: Card( + elevation: 5, + color: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)), + clipBehavior: Clip.antiAlias, + child: InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => EventDetailPage( + eventId: docId, + eventName: eventName, + ), + ), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + eventName, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: darkBlue, + ), + ), + SizedBox(height: 8), + Row( + children: [ + Icon(Icons.flag_outlined, size: 18, color: Colors.grey[700]), + SizedBox(width: 8), + Text( + '$totalLaps Putaran (${(totalDistance / 1000).toStringAsFixed(2)} KM)', // Format KM dengan 2 desimal + style: TextStyle(fontSize: 14, color: Colors.grey[700]), + ), + ], + ), + SizedBox(height: 4), + Row( + children: [ + Icon(Icons.event, size: 18, color: Colors.grey[700]), + SizedBox(width: 8), + Text( + createdAt != null ? '${createdAt.day}/${createdAt.month}/${createdAt.year}' : 'Tanggal tidak diketahui', + style: TextStyle(fontSize: 14, color: Colors.grey[700]), + ), + ], + ), + SizedBox(height: 8), + Align( + alignment: Alignment.bottomRight, + child: Chip( + label: Text( + statusText, + style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), + ), + backgroundColor: statusColor, + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + shape: StadiumBorder(), + ), + ), + ], + ), + ), + ), + ), + ); + }, + childCount: events.length, + ), + ); + }, + ), + ], + ), + ), + ); + } + + // Helper method untuk membuat tombol aksi yang konsisten + Widget _buildActionButton( + BuildContext context, { + required IconData icon, + required String label, + required VoidCallback onPressed, + required Color color, + }) { + return SizedBox( + width: double.infinity, // Membuat tombol full width + child: ElevatedButton.icon( + onPressed: onPressed, + icon: Icon(icon, color: Colors.white), + label: Text( + label, + style: TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.bold), + ), + style: ElevatedButton.styleFrom( + backgroundColor: color, + padding: EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 5, + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/screens/wait_for_rfid_screen.dart b/lib/screens/wait_for_rfid_screen.dart new file mode 100644 index 0000000..dae777e --- /dev/null +++ b/lib/screens/wait_for_rfid_screen.dart @@ -0,0 +1,121 @@ +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:ta_running/screens/monitoring_screen.dart'; +import 'package:ta_running/screens/result_screen.dart'; + +class WaitForRfidScreen extends StatelessWidget { + final String uidTag; + + const WaitForRfidScreen({Key? key, required this.uidTag}) : super(key: key); + + @override + Widget build(BuildContext context) { + final db = FirebaseDatabase.instanceFor( + app: Firebase.app(), + databaseURL: "https://ta-running-default-rtdb.asia-southeast1.firebasedatabase.app", + ); + final DatabaseReference statusRef = db.ref('activities/$uidTag/status'); + + debugPrint('🔍 Listening to RTDB path: ${statusRef.path}'); + + return StreamBuilder( + stream: statusRef.onValue, + builder: (context, snapshot) { + debugPrint('📡 StreamBuilder state: ' + 'hasData=${snapshot.hasData}, ' + 'hasError=${snapshot.hasError}, ' + 'connectionState=${snapshot.connectionState}'); + + if (snapshot.hasError) { + debugPrint('⚠ StreamBuilder error: ${snapshot.error}'); + return _buildErrorScreen(snapshot.error.toString()); + } + + if (snapshot.hasData) { + final dbEvent = snapshot.data!; + final snap = dbEvent.snapshot; + + debugPrint('📥 Snapshot exists=${snap.exists}, key=${snap.key}'); + + if (snap.exists) { + final value = snap.value; + debugPrint('🔢 Raw value at status: $value (${value.runtimeType})'); + + if (value is String) { + final status = value.trim().toLowerCase(); + debugPrint('✅ Parsed status: $status'); + + if (status == 'running') { + debugPrint('➡ Navigating to MonitoringScreen'); + WidgetsBinding.instance.addPostFrameCallback((_) { + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (_) => MonitoringScreen(userId: uidTag), + ), + ); + }); + } else if (status == 'done') { + debugPrint('➡ Status done, fetching full data...'); + WidgetsBinding.instance.addPostFrameCallback((_) { + FirebaseDatabase.instance + .ref('activities/$uidTag') + .get() + .then((fullSnap) { + if (fullSnap.exists) { + final data = Map.from( + fullSnap.value as Map, + ); + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (_) => ResultScreen(activityData: data), + ), + ); + } + }).catchError((e) { + debugPrint('⚠ Error fetching full data: $e'); + }); + }); + } else { + debugPrint('⏳ Waiting status: $status'); + } + } else { + debugPrint('❌ Expected String status, got ${value.runtimeType}'); + } + } + } + + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + CircularProgressIndicator(color: Colors.blueAccent), + SizedBox(height: 20), + Text( + 'Menunggu pemindaian RFID...', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + ], + ), + ), + ); + }, + ); + } + + Widget _buildErrorScreen(String message) { + return Scaffold( + appBar: AppBar(title: const Text('Error')), + body: Center( + child: Text( + 'Terjadi kesalahan: $message', + style: const TextStyle(color: Colors.red), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/services/auth_service.dart b/lib/services/auth_service.dart new file mode 100644 index 0000000..afa397c --- /dev/null +++ b/lib/services/auth_service.dart @@ -0,0 +1,33 @@ +import 'package:firebase_auth/firebase_auth.dart'; + +class AuthService { + static FirebaseAuth _auth = FirebaseAuth.instance; + + static Future registerWithEmail({ + required String email, + required String password, + }) async { + final credential = await _auth.createUserWithEmailAndPassword( + email: email, + password: password, + ); + return credential.user; + } + + static Future signInWithEmail({ + required String email, + required String password, + }) async { + final credential = await _auth.signInWithEmailAndPassword( + email: email, + password: password, + ); + return credential.user; + } + + static Future signOut() async { + await _auth.signOut(); + } + + static User? get currentUser => _auth.currentUser; +} 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..74d4fea --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +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 "ta_running") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.ta_running") + +# 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) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# 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..e71a16d --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} 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..2e1de87 --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +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/runner/CMakeLists.txt b/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +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} + "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 preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/linux/runner/main.cc b/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/runner/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/runner/my_application.cc b/linux/runner/my_application.cc new file mode 100644 index 0000000..698a5ce --- /dev/null +++ b/linux/runner/my_application.cc @@ -0,0 +1,130 @@ +#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, "ta_running"); + 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, "ta_running"); + } + + 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() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/runner/my_application.h b/linux/runner/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/runner/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..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#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..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..b3447b4 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,18 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import cloud_firestore +import firebase_auth +import firebase_core +import firebase_database + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin")) + FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseDatabasePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseDatabasePlugin")) +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a61bf6a --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*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 */; }; +/* 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 /* ta_running.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ta_running.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 = ""; }; + 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + 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 */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* ta_running.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 = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 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 = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* ta_running.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"; + }; +/* 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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ta_running.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ta_running"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ta_running.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ta_running"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ta_running.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/ta_running"; + }; + 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", + ); + 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", + ); + 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", + ); + 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..7e5affd --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + 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..b3c1761 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: 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..a2ec33f --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "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" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} 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..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY 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..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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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..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..bc3d759 --- /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 = ta_running + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.example. 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..dddb8a3 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + 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..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + 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..a19cc44 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,495 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: de9ecbb3ddafd446095f7e833c853aff2fa1682b017921fe63a833f9d6f0e422 + url: "https://pub.dev" + source: hosted + version: "1.3.54" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 + url: "https://pub.dev" + source: hosted + version: "2.12.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + 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" + 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: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + sha256: "89a5e32716794b6a8d0ec1b5dfda988194e92daedaa3f3bed66fa0d0a595252e" + url: "https://pub.dev" + source: hosted + version: "5.6.6" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + sha256: "9f012844eb59be6827ed97415875c5a29ccacd28bc79bf85b4680738251a33df" + url: "https://pub.dev" + source: hosted + version: "6.6.6" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + sha256: b8b754269be0e907acd9ff63ad60f66b84c78d330ca1d7e474f86c9527ddc803 + url: "https://pub.dev" + source: hosted + version: "4.4.6" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + 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" + email_validator: + dependency: "direct main" + description: + name: email_validator + sha256: e9a90f27ab2b915a27d7f9c2a7ddda5dd752d6942616ee83529b686fc086221b + url: "https://pub.dev" + source: hosted + version: "2.1.17" + equatable: + dependency: transitive + description: + name: equatable + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" + url: "https://pub.dev" + source: hosted + version: "2.0.7" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" + url: "https://pub.dev" + source: hosted + version: "1.3.2" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: "54c62b2d187709114dd09ce658a8803ee91f9119b0e0d3fc2245130ad9bff9ad" + url: "https://pub.dev" + source: hosted + version: "5.5.2" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "5402d13f4bb7f29f2fb819f3b6b5a5a56c9f714aef2276546d397e25ac1b6b8e" + url: "https://pub.dev" + source: hosted + version: "7.6.2" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: "2be496911f0807895d5fe8067b70b7d758142dd7fb26485cbe23e525e2547764" + url: "https://pub.dev" + source: hosted + version: "5.14.2" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "017d17d9915670e6117497e640b2859e0b868026ea36bf3a57feb28c3b97debe" + url: "https://pub.dev" + source: hosted + version: "3.13.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf + url: "https://pub.dev" + source: hosted + version: "5.4.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "129a34d1e0fb62e2b488d988a1fc26cc15636357e50944ffee2862efe8929b23" + url: "https://pub.dev" + source: hosted + version: "2.22.0" + firebase_database: + dependency: "direct main" + description: + name: firebase_database + sha256: "182ce4713d47ffc5f19a5a7b934867d1fae9c33081febcec8c062cb89fc14652" + url: "https://pub.dev" + source: hosted + version: "11.3.5" + firebase_database_platform_interface: + dependency: transitive + description: + name: firebase_database_platform_interface + sha256: b65f416dd2c8ac2d5322241e5411a24ed3da43d0f38aaf9ab6c211d72e52261b + url: "https://pub.dev" + source: hosted + version: "0.2.6+5" + firebase_database_web: + dependency: transitive + description: + name: firebase_database_web + sha256: "5203141fe00a1edfaed5f8e0444b8e4ef807a8ec6eca925621b1cab69b6c06e4" + url: "https://pub.dev" + source: hosted + version: "0.2.6+11" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: f2e9137f261d0f53a820f6b829c80ba570ac915284c8e32789d973834796eca0 + url: "https://pub.dev" + source: hosted + version: "0.71.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: bfa04787c85d80ecb3f8777bde5fc10c3de809240c48fa061a2c2bf15ea5211c + url: "https://pub.dev" + source: hosted + version: "0.14.3" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + 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" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + intl: + dependency: "direct main" + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec + url: "https://pub.dev" + source: hosted + version: "10.0.8" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + url: "https://pub.dev" + source: hosted + version: "3.0.9" + 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: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 + url: "https://pub.dev" + source: hosted + version: "5.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: f0d7856b6ca1887cfa6d1d394056a296ae33489db914e365e2044fdada449e62 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + url: "https://pub.dev" + source: hosted + version: "0.7.4" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + 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: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" + url: "https://pub.dev" + source: hosted + version: "14.3.1" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" +sdks: + dart: ">=3.7.2 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..089617c --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,117 @@ +name: ta_running +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ^3.7.2 + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + flutter_localizations: + sdk: flutter + email_validator: ^2.1.17 + firebase_core: ^3.13.0 + firebase_auth: ^5.5.2 + cloud_firestore: ^5.6.6 + firebase_database: ^11.3.5 + fl_chart: ^0.71.0 + intl: ^0.19.0 + # share_plus: ^11.0.0 + # image_picker: ^1.1.2 + # firebase_storage: ^12.4.5 + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.8 +# flutter_native_splash: ^2.4.6 + +# flutter_native_splash: +# color: "FFFFFF" +# image: assets/run.png +# android : true +# ios : true + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^5.0.0 + flutter_launcher_icons: ^0.14.3 + +flutter_icons: + android: true + ios: true + image_path: "images/run.png" + + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^5.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - images/ + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/to/resolution-aware-images + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/to/asset-from-package + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..7926255 --- /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:ta_running/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // 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/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 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..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..6cfc272 --- /dev/null +++ b/web/index.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + ta_running + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..3434289 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "ta_running", + "short_name": "ta_running", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "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" + } + ] +} diff --git a/web/splash/img/dark-1x.png b/web/splash/img/dark-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..baa5d781843fe31ca79aeffbb1ac8536dec32474 GIT binary patch literal 10282 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 literal 0 HcmV?d00001 diff --git a/web/splash/img/dark-2x.png b/web/splash/img/dark-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6e657d1159933bd887830f1bf94f622356e451 GIT binary patch literal 20236 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 J;=R%5{|_A%Y*+vQ literal 0 HcmV?d00001 diff --git a/web/splash/img/dark-4x.png b/web/splash/img/dark-4x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b321a1e4ec6cdeecd9374f5e41f5b76c947cb1f GIT binary patch literal 39743 zcmZsCWmr_-*Y=sAhHe4rp}R}ETT-M$1(X`PW293+=}zeo>5!p8y733nDIneTj{oQD z`{|r>ojH5$eXqUOx>rn;_Df}4tmjw&0N|>sDChzJ7`RQTK384tiAqb zH~IyR3!rz8WxuTx-^q50-#K$RtU8PT?k{_h4gUy>1k1k*vfG3h}v|9b_&1dz|c z&T=Zizvob5IWQdgOqWGK1pNDAEi?i6_Y7ePMFswiCQASR9pbc*9-a!+qiF~KrFbce z4i^X30YFbDP5hR ziv`Ki(*vz%Z_(iwKp@&NC7iq?j^S_Ezt>`zsK+VGN(6YIGal+2zAwsXU%}TVu%5`a ze+z@MWP?!m98uSty+Piww0Cu3+axp;D$|R+w&DN#x~!rJ6xySQkBA5Q&ms{x<;)Wp z|B%^aRDhvCO7cnI<3Kyu5(kb3@Lvf3Os7NQs_;_xLKyD+q8l`V!b^qNPh!ZU{O?pU_rA1=?-R~H#keB1!3*vJ zwo!J`Eu9<5Bj*es)F{A>?qgX%^;5=z~=ecnIyYWH9Jvscwb(a*?%O|i!|_)|sE#^wdT?s`IoH{}P_ro@rLp71ibs zKG}G+dr8TFgltH7FFk1WdS>g+cKn#dzqlFvzCT{e`#1OgriV^JRp{f=b_7?UB`sVG zJvUGHwCb~lflc@_GdUR->%8R{=!P6#;)>6%C+yVcLm>KZFb7HHp|KcC}K?)#4E26Z@OtZ$CrFfo+tY z?(E_*yGRt#^Lv_B@u!gT8owqd;m1X?M_IKjJIx2Rv$?J+#k1F0ghar02{Bv@h~9UI zV1dJYERL=`8p8oYYr27JwOUx z!s;1`%4JaDxb1aO|6weGFoCmmuq74#P1~-c2Hx@pX2{VWM@W8JKs$+kqL)T{z%mt> zPC#?-32Max>MQT*eE+J~d^u)UAd^!J<+D{HeC5Uye%?n-ikw()jP2Uh)MA2!cf=J= z+E?Teho+sajOUgfgk!?xifKN>lHc)9PqX36$eWs)5>hP_fD|j%`cGz44nac_BS$e> zlZIA{bRbKqrE7RB%ein7@D&gREMu0#38ELO^?@ShB?V(wPKoxAO%tXsl^XA?zxMPc zJB1jpZ|_B{H~4l-*OeCgP?7tT-~D$A1n+S{4+(~TUcBvkH%G&Xo0Aki0g3wx9`jmI0PaEtfSXXmBAc8L*6(VM|_S2~YK78^nm>1AmIc zSVd9)kl_e&X&qwT$y$d39A-Z1>+-&oatmmbT^R@y=|x<7tRxaYOexv5Q?4&62F6&c zTNO^=wW>ajRD7lQG3&`XRaJ$g zQ{}u)7H+e+fv&>I>#e5gh58M4eu1zE|K{T=`0GtW&G)F8N45HlSk8A-FE_B^m7MRs z79(aue8J?PqdX$kS2g(DhuJWS7mScImzCqWxq4D(T1FripE8K8p+apsxL?t>9T)s za6Q9r{Q=irKkbWE3s6myGsZr*!JLT!L8OQNS@>Aowmkz>K^EuaL?#QuWM*E^sY5-u#cWOj0~neu+Y ziI9khRQaUs*b(S9tqp&f3xXK5%8Vp;9CPSSPW%Ra=jTsI&cPz{A_6HDXzwYhM7P9V zQw}Jk`liPit%Xsc5dr;QiwB3~b1Oa&0(Gp!H1HB%{a!C@(x5>0(~Ts-LI{`2sv9*4 zzV{n0ufp+%xHqrbC>%UzJKhyBc4ec&*H{fYIJkSw$g-JtyVO6E#%42XXF z^%Xm+N%vzN#X?(jBmnSW-katqhAL^G^M*#~k|rXZ1K;aQ`sN}D9d^nT?1aP&91$&8 zhbF!2>Yu-kLm18VcYc#aGIL5DRPgVol>$6Sgw=f#`=yWK93Wm^H;#t;b2y4a>w(R# znkPW~7!q1lPPl5pZ&sMaGG-0D;24vWX`FxP-B;$W+21`Asxf1cUY0H-+|#I&wjwc{ z8~rBb_=&dZKJ*|d-WV7KKdz8rG`ziNf zLuaPux7?3cV!IRUrV4;WF9&tj50ZgihgGOkWo#c2EO%g*L0!9Em!;W{!eK>{1A8y( z#Q6$0uSf=k(6l@Ud615!75Rc?pdJ1Z~W9%SO`2-$5l zcx{g?dL}eeE%p77`WHQ<>hO@N%e+uSlToun|B>TIaulZz1Di}o#F%8@{f^SR|Fx$9 zMx58;E(A*C7B(lLO@DED=*@+2>(F);KS%WS$!IO5YoPY_#3_PjH0tObm`mT8ElIQ( z?Cn+Bv|2U7e>2asyZtk9wGXphYFdvrk2^1!r(!01rp!-9p{hs8i?=v2yLsFvmKpi!J!p!x8@?)R< z>UNn2l<8v?GPF{9M+(nux0!Wv`u(y$xQ~Ue)I#Vc#l=u84-QyvSkr>&W|lH}QB8ap zSIK^KFrdwyUi`Pl1mQHt=whNo%#M<0-z>;vocD@5pPiKS%4EBooric?Vlobx>$IX0 z1GK{pKdC0f=ND=hZv6pzFe*jus8$H4!6HGFHFt5YQc*&5+?AUCe)zdRl;Q&QPt{K{SnIz z{kAV?5e2)Sy#6?F8dP_}s}F|mDrX#laGk%x=nyEhCjV$GA4 zm=kM4=4F_HftKnE2~=d?T^50RV84s{=wu$~e32&w@?9e{Ce$erVVBHyG@0H0&6SOX zbPW-G^QkD_8hc>9PRXJSz|!50m>vq0qgeK5|2w-3uy0G8%lw8fJ`8MWA_WoGUO|XZZaxhrT;Y&0Vt5LH7ulSqmhy& zY<0v(5)MOSjFnOBiJ+M7UzR=qrcOyxj=5sB&^9tG5L@^;`+=btyVexmGQBw15Z&_v zFFfpeRVitms~+iysqmP=N~h`1bf2Sb`Q(q_^eSi9QdK+U9CPXSyLw|J)k=`sVSZ;~ z;F}}DboRL7U-w3d=o42_0rZpY`1D zr=hFv9#NII$(TY*3L*L`%JPg|-LvVy1&xo_rC(A)x?W)UVvt0@Kkaj zx9;&8bxW2ne=5qE*!W3WCKu`^$ArI%R!fMtr$YAiksqhTc<9H>w)m~_1J&QNv+~&) zfnCsdQ~adtI&jSe$1gv{y(btfIaw;J<8ZT+F~wv&+z`o2r+h{!@^8g3WS+ zfp+U?4Zo-Xj~UWZTU9;}wD&3^NPApLMN*;y@NzZgCJ;jRI&g9Z|1P>CuO=$wzI??(q?x9k`z{kug_Sw@wUj zZqSM#vv{hA21<>~2-H%s5MjeEYN@4k^U&^9D$qpQ6_({Bz|(;Xjg+vw`l<;m4?RO8 zJ{MMc#t4iIkr0AvpR|*T#Rw>OI5KVGqBpwV^nvs0P3d{pK zPO$vP_y(0EWK{#4M+6h695Y_n*{#a`IgoA+I0Fdl?8Ex74&ZUS*e&|{G&7_e0?(L@ zj?DVYGfvd~j%q8J&hh&S#usmxXD~06;igx8w$;=wi~$=iC-Ez?VZsqFuQqPSY{zXh z^~9xJ$?>Itq5@F)pYtR?Yw4R7x-uoSYwS4t*>CycRs?frrU|y7c4Zy>^1c@$}Tb!*+{F9HJJIY~hlfm8bBIzvMg zawWsxLwWf)RgcAU=oZ3QtjealqUn-)8Y?f44GzEdCZfuyKK33<;ExZ|rA7Fdj|LLm z&>-5-+4Y7ux7fZXao1X&sJ37EqL8q0))4JaoV-t*CS}1Vz*A)&$Gr|wZZqEz1K*AT zNdCq9bi)v|8#}*9&LkQPIIrRPW<}G#do~|Pzu0-P>5(7vs`XRH2+A=bT$_o7g}HcR zkv4w4>h-=VU$`RaI=+*o6kojdt(6Tl{)Ms$I{pp1=QIYbQ@s62MP_PfV8;&f#A> z@lLAyf&%yr%oGd)`NTEH!iQw%!oB7roWRf1{aSP*$G`2eAs0 z+K>X3MKA%Lo#~kVc0L7@NBsh_LWzqg>l2p0AUf;s`^*w_xuWmQR`J0$6aOUt?ZzV`D2=F;WgF6X*yE z>O;#R_&6K2YoItYnih^}$ZV$smbAs)G7)FI<-%^2Ve@&?XZ4+T*}GuWu06)#o7Y$n zg$<~pPWJ%W52y9TchSxuQxxzl#p{D2M(ZL5etH`5YP0^tQcC_8x7R10T`PmNS{x(H zz`f5xXY6wLW}cwdOS|FW)ALoRL(7V!nfd<;NOZ%pmng3HvA- zh}4bA&8vQBFG}cXkH`SY(7WXoXoj-clzXF&u%secDG_<7SH-MiPdB|QClR7=9KZUb z>zxO|(|CR<<@Ir{<^oxncS3qH4I?nq6E?p|`Ay!C?FZAO`9Q$I5EKk|IaU#TUT@|w zgyCHcdzFNV@4YIdthLn5)0x|^)tTMDRWZeGF?N;7tOT^W~uw#Y_>{F!GU70mG$d_{|v z%&44cC6GTZPxuRPofKght41D=%FDu;gw18kK8D= z;8z?TQhkLjIGw-Fl~s>ukheFYkF`;hm!{e&ZK9Hkd*F9hj!Ivdiq!pMn@P3DAFF4e z<9Cg)=fzEg!UQ8%b#1oNQ4hsE7XxRRjU=D4TOGyp!>AcKY_b*$Dw^7v%@iJ++gjfoFmO#CUgajF7mIS_ zy}$%oBt|HgS=F4UK|#wcl@WMRjt;Z|%|rivt)oHrIv4I{Oj?z@7RzxjLZdOAsC$b6 zYrcq3nl}huPn@!T08f;vq?y_)xR7O3$u6kQcGH)V8JIF+X}_#i{PV^gq#Y?enW2gP zJ+wmF=ga5f=jI|Y;}zyLYeI?(7^@~7alD`${~vwgFSIn?71s>k+{JjTNPI2i@*#BS zv3D*0Hkl>u_b30jb6Y|eilq0DIQiMlRdg}~3KMNYtw3pm4@>-di!fk0PBKa8p>=>t&1o*J zB%%|KV9ItG^+oO?=066L*4&L^o&m#4e$gzBK6dV!erY2?%nE-)kNrOx_)@+>xwuxD z*}>swRCl>qzd_x=Egbnd7>a!ee*d#YTrO(-D|@a`IpD2Rlr#_>-y|NGxrnJr%k6|@ zI#*TUk)J`{+kGA>pG8%hk99?u!OVlk^?>I|<|)2uD0x^7s6D@l5dEtl>`&1^EOs&K zsblrpeLyu!^r9=Qh2ldL7?}!R`JJGHIl#ogflbMsLu@2B-gxZ!Rsn>Ni|J7yv$A?h zC(c~ly05Bz-&J>$ecTHdY9{9K@N<*Ua`0E*F1R^nz>gXeh=ind57_9M3V7K$@9=O2 zdLWWhah~mTpq}4S=f3iNW9s{S+d?!>b}LpunU#YHjaz9%(^)$u=S6tMiCiLG-;uN= zZvkMrrF1i}?`U~`e7ieq=AxLOD9ZWtO`!G4B5FZgR}sO=?ON{|ihc8A2ESb=jHWiU zlOFgny?1Mqhc{j=^6Hrjcl+oQt@)HH>VYl3s~Xx-y`J)k^P2Vy7B}Y#Kia!u=6%QD zX=k>-c>PEJvA4#4@C6Wg;8luAG+%dadqSWE!!i5} zj$`+VCs?RcD!RJk^`KLTc;wR)-VCeTIeE=SPA_c24u)wu{y1)!b6{IOVi@NlxC66h zeJYQDTxLtAGl41+zyiX8!~ zWwx49>Ka8kz|`R2Nbf~2>e9=XpIa&k%PkMO--Gkg2Z!{e9D+ah&F=MRSG(saqPp*O zfJ?^vewwzjz?RNXGy53a*8D|(x^Wq1ZtdJuq9ytiRwf@20d6;fVrr)xNkBMdj57gV6?c3Io5l$-cAW-HNbuX<+Y{!|;xgzw&O@^ToD%RzG7<)Tl%uh`%G zM_IF;XgnJ>hsi+|dzEt(pBRwaZF?5jf8By@4I{+a%4Ta|B^=o-F3HpsR88V#sYw?C z+X;eJi_aArm1~$jf^t%%KpigwJ*O7Krb!djdt)oVM@QFdmGKWyM4~X? z{8%<8zw3UQD6}S)ki2EcYIaur@4x4%5T~tR-`bz^^jWEW5)s2mQXYuoyd=N=V`11T zXH2F-`?xvvaxVCPqvwYOfAjr=s=jOCcpngOd{-3Dd)yOs?K1l!UEQ7u{P}wBzh{Y5 z48hIuhB@_If?_JLSZ1IgIZ(yxZ;ZmjfBC0ebs#PL*CW}>=%7cMw7X$Uqv6Iak?L1< z&lm-jNq0KeDpX62WYH}8J%9fG4SL0Tsl0niER7vvSftAjtN}t z$~USYgGpK=FN)!^bVED0NT7q1W~fq}|CyMKOF9Heq7z_=am_6)mi?jI$LH=nO=rb% zEl-iC@DF?uXSOXUG&CB0U>YZ%?ctVg+?4>~IVfbC`$2yBqJbD>+fr)NlLFOm$6H%i z+GLu3LPkM2$no(`!bLs5yTKTR9Xq3+#qY8l8yU@#(TX%|qWhm*$Wo}!?TjWi4jRTz z;B1HoT^1c}c+B4{MpjgC{K!21u{F+23L5ZsqZ6hqY>A$yr}`4m?y~69ftwgMiHeX) z{9^IE1ykHW^3y6^Umt3B?diVOfM9TL4F;0M*TgbmBm%so{hp71o!~X&W}rL(g8-D+ zzSExxEYG^gF$^Pe+p0J}YNYcI9Bt8?K05-SbRpy2*HJ--*1xvsBK?Ne zvtKHo>?ZagEegRvuID1F8C+=l!@~kUXWHzuS@wPL={sa7Wb&de?or`=8!J45V}AI1 ztTt#iE2t_ucq~`)@a|5Hnt20&0uo8X{qgZz^M|A27DQv3R4dGHw(6@2#QI;O$-)Bz{(darqqADJj1f4=b|2&RP)xiSI@ zL?ar~3$n2$n@XV7cM5-@{CPWGfyfM+yK{Yg~%1}Zj2sPp@2P_Xsr8gx{iV-%sTDO0I$K^m$ zX$||To8vro(hx3c6uoJZ8)tm(@PaK9C02M=5O)HE4&r8|4??72t*Qd?gQo7|A1U82 zeTXWy8W)JKSW*8S-PXn-C-3jPWgNWDv}vrs8k!X(_3yJY%XcN+G|9PWwb(MXBVils z)5lB4afY2Y{8CTNnBa#7)dE%3Q3A1Sn~Z&Yu^>u1LK%W>#2_-(!b0c)2BlW}TIyO> zi(~fJfyVZNPTCrmr&k2TnNVFcOCz})p-}MP%_1lY2f#duJzjpIsIV_vUM zew)ut*_26P9K5}$=xQ{ZS9}5P|Nc{{44v>&X3PS_2!?boq{#xjKelMkYi8g7N>9m& zy6Qjbw#ejpdr4NMU67W0pl*2y&VTv2WXniy0aGjpq=JOdg)auM9N7+$Ff5UIrF(4@ zhUlSAwcNHHoooo8_^|J^>_TcUVoqYTo*?)Z;zzf`10n*UT4{_h0*E$2NgT^>#-lC^ zQV)6|b8nDJPBG|~T7Dx9ZM+))N`i%l>KgfLnmHt^Q{kVe6W&a~vi9pOE}*gc&{hol zPr&wJw7qbl{egY^B`hRkHc7~LcyO>AZbj+xsGC))y01V+cOXZ)!(&~Zi<#X?`cE?F z2rGafUJnOdV+is^o&GWC6GrF4aI2>N7Aw`^Gk& zIsuii4aYKdC-$L9c%g4{H-u|FE^R?SOEiEov(cjAoHQY_;q;?6nd{>V87Q3YyiW%e zo}3N*0bgUu&^BS_r=+myCS*TCUg$FVmOT2nnP^E9JsuwA<#BsuAL{`R z{(pFMkV9v5kfk+>*7cjXkk&m%4VrdL%i?7vQP3zrvNX|!j{F_%zu!4JGlLM3;0bD( zAVA=k<7-%mD=#&I1lcS@)NRd)1VQp22)Ck{KrMf~7r{NI3|B|o+9l5PB7_Ah?+*I! z>^1FAOge~%ivb8B`jZ8_Tv&fl=_{DLE0cooKe`#j$IJVM5LcwiB(sbFx&iI{xc2=V zcKNVVx-g47d)yk;C2R4T#@aSz)Ubz!h(;8M9Cel%V0c4~;0C?}66IYNmtgN_2rJxb zMF|z-#>>!2o|XuB8h>R@J@I9nw6wHa$k5_Rt9e32&nlqXQ)=T) z%?~b~ueF_z6P|$VU>GVQgcDRtg_s7+H@>4Oh@q{TnETLq7!%~D6}eReY6iUN6<_c> zc=v;c)1n+TMe~t-b~u@^4JsC7CHN1l5;&^N-`bM1n|sR+lpNHFtR|AihQKT)is~%^ zOyS8dVc!OCz0OutG-2&qi#&Wc1B%!FYtW@uVy|)gd;j*6^^N%T?2iFDth_P@!JGHR zT?&YUlOwCeWfakXwa+8PRnS%Vh$3cpX#&8S7IXvp@p=J}LCfJa482Oy0ub#39>BoO za$wS!C$SGAI|%#ImX?R7{mj&&{o+92dS^l>tHTvH-6$Qx^E{ln!5*WMz9@2Qb$&cmI%^>>&*CrCqL_{|4G36wYuWWilUcV*TVanvRzgu|Vfg-;$YWFWM5(=lE{!}u25M3r(~ zSoS&J(`hT;E))LAP+n4|2KF7Z<`xcr@#R|X+0u5;z6!w{NB4ZxX?n|hU#NP$7eD)~ zB;!le%9!G>jy?Cu_9vay)H4kuh_R=co0#3}1A?p$cc$_AtTuPFczl{D{P50D zuL!)UnIB8q!#7usW)x)~D6T!Qg{~PQvlci2L)!a9e_Df?lO43SNv|D@4LmYblV-XF z%`fL!=xy1Z$u82I`mX`xU{s3P_)1)}^3=cSrD#O@kjyNh)`IP*tBVDwM{* z*%=pgStELB)*2hVR=jCq@wRcRf(9z%xO21)ZbqQxc6y6&g(@Js zC;O1r?r6ue_o3jyPt#%zDu~x6M2yS@V-W2 zS=(KT7{pfg;rgJ;YRYjK+a4D5Ypm02SS^jW_FLbLiHpZS?9Wo%|cF+3j)3|;e5OCp#P0j`|;qX^{u z?xoQ%0Z+2D>O`(O%O@@TlMRm?nQMHwH0U0(TDOc&M_#pc6tf`>S6HYU> z5}g61W02qQ-{NFX`>EO=Fw5-;b+4ls(gMymk(KWOu7Q-U0aHlqP63=3Pd7U#F;8Zu zjPpZz1+iEVhg~!viS*zN3Nrpg#SD9@as?CP(ywxuw&{34+L#FZC7%~WPGamhhI;Aq zhPg=l4c$Dr+1cD;Y3mt%)m@!TjKs=r6ScHqXQgB|#P1O;KO7QC<|cC~4}$wes;dx) zNhnS~FgPYa~J%gmk-b5*aWZ%gGz*Cvu;Zw2(VAAhY`N)62$P zRWfs~2|UEBjyM-0WOPFLBO|ojT0MqKVeAQ{pa4%q&dLZ%$Ifi9MDCXdK}aq|{$O(T zt(Q3RTLGQ!$7V)ZuyPz~RntNT)Jtj_56+|=aqVG4015t~G21?8|3f^3{04cZb40eok+8FH79p-`HFQ5%fUF=hBu9M>ACL=H7y zt}=l6ESm$GPHzH&k|+dj5@Z;0qZ~p?PxjY1}aGw>puC_5b2nC%MQ= z{Emm&fZIXe+oKs~u$E^999b1);GDrYaP!@>lfa{G3*&k+?U~D-ciuG=1fyUD8S;emDgAxwv`A z?$rWW&6N)7*PDIn|6u}`@A~kBg6NpnHe0ZvCEwEpGyZ^S5u8 z*@ul2kiPlkmx$ZiUZS4|oFe!BsKnu$Odojl+9!^d(TD^wI?3L6sLXpGWRBc%UF<-& zH-}kYy`3(RbigzoGD{-dAvLi=Ol_=;?EZbD`@-{YOmAcMJf}|Z?>iWsnBqJeBKOoB zRB|rZ{qb7nTr!0ix%}KED99!dd1%vlx4I?*2DH=~ie;t*RDjwsCk(u(tU!(bla zerv1sh~3%v`(`J+CcaHkp*AEjCnrjNz-g_fD)n2yyobX|0QEO7LC2ZRzD2qU3H@a@ z%UM#`ka29zJ*is+{+JzueOFc@pzM9xq?@mhusjHWA&`TQes0e%gWIMf_qGEeDY81B{U&faf1poPpagIMfvm^yPlDQE%3$z~$ zHF6Yv5U8>tFRW7DB4g-;^z<->0hrbBSet6tqNn-5==)c#&K;Uy8OYpgs9e8X(qT;+ z>hg^%#?zgiT@;Z1p89fJHCZ=ob${zqFNyWoMUCWL12Mn}MocAVi{d+Pe3C3sKluDM zs-+eS{#=c0ce$)m!u|k(Y{L|)ApJ(ggWqibcrwkGLKU36&tuuMJ*=Yn<+J`^Be0-P zkwI-I?eMi1LV-Q`rSr|gmmn5k(aoPn6PJ*VxFZLdjaP$bSVvp#M5!q5z!ntz5>>_3?g5#Oe8JZP4;T1e!0|7D(rHt!EvM0Q|(wNM$@4y-t^j~BU# zk2)}%x!9lg$rm-W4d%`WmXHFfLu}Uphf0Y|jYHr2O`BsR9`3x`3gsxahWPD>o~?&a zY-AS74?}RgFL)T4un)g{n;c{W4no4hbDo)nc0Wdc3x9BPdo;jd0iWaCt!SM+XF8tE z{mDQ4%k(y^LS*&gM@P|OGRKF5*JV0avLW9b9##r);lhLeWS#YkM3?IFkvln|Ul(o5 zH+{0^eX0=Ny|_0{RFUzZVQOKXe-W{L;oq;hsF2V}JExH;Gqw_V>W8%4J&{16#Er=Z z)8bNX8bo`tJyL;{WHRAyDJa~gKh)f#JX|^XX#cij{D79fV&|NHp1ix%D2Og?LM`w^ zFKc(N+kSy;sA0s)D*fp}@!7Gn*TB&iDY@T2gQ;hcQF!oQDB}HC?%Lj3_}AH(w}(>5 zoDqgrcHhS@B|0U#XnT!YSc~Y#F5Dmj4{>yR;iKBMWFOb09YB=nuSAz7;Ve7ZXZyJ5 zcF9Vb?I+)?(J-;GN=X@3O4 ztNUT<&Kyeb-*ecX1x>8Cy{sXWk;k2KoOZJy}~Ee5J}{WsO^Eu2}Z(5aC}-gSc>wnl5NLjoFr(A{x9*c?O_v8)M(; zNJraOPRE5RZ}y=t>Qnd+G(9dKIqGfQ4RV<9V%D#1oZ-^tsT^-tRL#x9tNd&VRjGTC ztk;*2w^<#R9)utlI;5-*Y6hv1@vx6pn_6Xq(jmtlS*GyCZ(h9b&z1R8G6ughWzjGL zm(iTO4kHE*j~jgIM*$2y;V9G+&zb5%^~PcviTk`7*sY-l91m}cU!r%klr1cFX1+v{ zH#;bu5Esgk#I(%Z=kkeKU2@|Y&M3`@B>Ycp0W5eO%a4G`k8CWhhT)4e;P})%@)BWW zWaRy~3g3Ax+F8WY;P&bZRmDiWIBjS`bv^8^kK@F<{z$FTZ~~29G4@8V|Jr7maCj~a zU<9!Gwf3TlV}9jRr)eLb32olHCFk640PZutkl9T|)RF76gyM_pNd^$?syt#eq6YF? z-IH4E)1<{{e~}f>kRX>A(U*@vAFX;1;`!q}v+&9IPmHA%!lk{Hb&-^9H8L@G!RNS( zJpJb>jSTAV%Kc`6uG6Ebyv;@W)r~U4<-8YsgZ-(_LFc8%MWX zfOcIoZFKnU@>zpn8jsquwz~%H+Ix+^yCy^4b`!=2OO$M_NyqJ~EV3use-#=nK47Ce zIKT0DOs&E09Cv;54(UDF6lHGKWxZR}as68k@+MxmL`CgN+;cf(OOlfIsH=WI0xbk8 z%0UV8L}f~_6Llv4g}A1jY{lR^5kU8nfC{q$u*6jQZuq(U0Gl`2ADL6$8pNL~u0bV3 znX9>qMrVfJukDyPm&+lukb%a&SZ`VWD(Tm2pV2z^T}SLfU&>`o5gWPcf2?Kw*!GPm zBMX_tbWtPZtyFg8{2ll#)u|u5%5B2{=LHURn4{a*0`JHIPtL}!a8$lT$BECs?xNIH zWOhE*7)n|2r@Zatr@$6_F4nP!3h?aCo=J%@q1f^)eWSV|Ts=Cmm_a~EqHhblb)>Jo z+tv&;upT9;!f;Kh>6qvGS$+l^b!9RUq7_~{dEcJS23u@eS7wrlJv}+UAVjpH1TJ+F zK8hH%XWcK&+P{}R*Q`vxq)-bjX9a)$42Zl&$e)zrX-3AyC|{9T^!#8Lu;#kqwx?sY z=TnB30L`NUjGYscIpC-mt)73hN}l1Xy$3yp%t^$-Oy97Is^+jb@*gW3{9{Q1u8;Vu z?ogx&az3{+0ChU)NLZaqD)FpqZx3r$PQ7ekU8Q4F`_{D}xQoffQQ=baSt&)jNO z5tGDqDN8S}j@w(FKD~$w@(x396(wjZdz)mIWreK0EMz+-Wo6j0#oHM)+5F`>=6|`K z8}0EJpD}|3yj2R6E42t|(^^Kf4Bj)OHab84=OIYLiy9QjhZkpW@a4@4$~$ZD$%zcz zFa~c5MAUB&>&5+%wUJfOapdOrr0Z0XD{R2?j0Uj8hwcA4h%NY}lsCt2_;WF9W!Qho)o^bNLlVlY~? za1HEHAhJ;n{OrjIYpt&WCHOXR{{@Y1zv$af@Dnjw`t-*^yIucr$0T`(0cWiC`h*ck zkMfU`ZFHf~9zX`WlhJo=l&pd>UCIyP5$t4rgE=02R+Ca}`+Y3T`8%0M8_6X!J-x3j z>N*tWXr`u(D3AoQqyl|#WTf}nXl3Jp$A(@~{!hp)RUkggDSeIREEj-&N}KoSWq#Pw zZLfrR_X{Vl;xn-k#C`VCYB67$L~dp?ZtJ zo=+jlC&SHG+STt|KI}hY*b^nCc{hDa!DEL@9$xu9m{tCUc8p@#!=&{u3qGj?dd-F1 zqc;o=K|u%o7lLt5uSQm&Eb(_%R@`723tS`z;(N&eHk`2gqdw}qZOr-7G$l2!eP;o4 z=1>4a+aX9G?|T8yJg|{+aNyl1UafI#TeWyy*>fDvV*L4$(T!S0E5(4(&q}!{Pq{++ zx(H#RfZmZ7$!U(&@(L!eF%k$I;E`8uZdPI7S?%?6UHuLEL;lFJ!xK9l38dg3_e3^& zyC396wla)AEvc&X)(%adJkVC~omH*9XB3y^6^bKWMtS_9-R8J|BCx~fe&Fq}@IyUr zi}(h?>0?EXF_5zG=c@y~b}kH~eh$IhF}QB^M2qaV+^m(QR0kwV+&|8L9g)clzaV%Q zz&=?PRu(;GQIq(?cTEtQr!fg|Qq9sxN}Go@7YUZx(~9~$*USk*L!mhg{a5>sd}DR` zOlt#52af`7az%uHrXF4dA?Z%h*P(|NXG5?o%)G@~FxW@8gI0Q~#n38QTIarkd!e=E z=Vk9Acz4{EEu!2Zb*@%qJVwGLlwe1h5afJvi`#y^M{<9^*XGrk-@}WUoc$!69+QDO zs{r`US(R_nIV)6OY4N;Dfjs;P`H|K{erDX z`j`8Kp(Y)nGV|JbJt%dW zT+w20R|GP!0oTX!{Afs8-MJGZLIs+q+OU3oJDWm&zNM6(FYA+-k@D#%rKWpHdVaO+ zvWmCaRz$GOY@-Y7x!=%8y9soV2nEd-MkO9F#@~H)*EgJy1+`AlGUx3)XTQ?)MVxN5 zI@3-WtVv`S+`muR=-OjHl52yrYz+qy|6&6wd(XOLEspz{o`!{MH7~CY(st~~Q*2}O zg_G_wmcvEK)7#5t6cQDebNDC~gTW{FaH&&H4mh#xc%frw*XI3f&j$sW2w%c9@d7UN zz;B?TvOnhqLxUsrN#k{e{$)fdr7|lo9nlKG{@w&Jkn7t8PDG8;a_@Lhbyu)8hjru0 zXuL+wp|oC1%x?_8x}Z3gSdO1w>~Q42`c5{WD;YWcO*lpLL_4ZmlW-CJoEUgUf${$u*KI(oS){XvrG^Q&KXkMRPjHR~a;o%NnyXWE@=O!YpcG{z#O zF<(9Gx?c|w&|Pkhg+so*m*I|UUNC>G4vJqr%J!?ZTI6>4^&OvrqFkbMTL~RzEMifC z?fU2R&RC0yT8p&Xf6wn1{t5#K*^qCLYR$CvSh=g>< zvb>k??|J{@d6s+bnK_f6nKM^}IyLhZJHBX718fQ5&B+eot<+ljbEYTrWE*^jXnR4eim;PILNKwn=pSQ~8nH^7c1 zhmOSt7PES4l}r+ozw~8JCsv=E<*(O`<2uoDGdf4XtkXQRrljwNsEVG{OG0ty{(r$0 z;exWi_G(@`vKp9{GQef8q8xQhlxpa1mk_ACS9@kTSygh#A z7~{zy9GM*rTmM<#y}i?gi4p9p5c;E~+O?l0PnTZvHcTi#Iu7f%-6tF!EhCKnc1D*h zjh+uyhON^Z!JhFg#XIi=^bEhqs}32`Xd6&*@=YvT>QNWV#&K2Zjzu}J`0l(LIod4a z@R}OppuV52UZ27NxN|?1KbE|{jNGqU_>IG(^Uq(~3n4AA0utQpM(FQ3b%V^!EIQW} zXW6G^SX6(D?JS_%%6^beLq(+rFk6FAVfNzOfknfk4s&@V?!CEeOO?jIQR zw|nyDv5pG)#(_wa^X=wBP_0F)E`+3 zOY+~)%D~b!>N!dbnn+D_lVHf?eCNKf1@GJPae2*}&@o zAJVP6m=0H_6w_hAtJ@WR+Cg)1pFhv_5Mer>*;?YMw2_I6#eq0^vJjM>JL%N%_rl-c zYLftci&j=9avR@2Sm5}Kp|2pDMW*DS(Ku4elx4t85S%6QicpBT1CQ0;v1bc?fc5~?E# z3vUJSUdQ#~VD5bar{$&bc7M7;Lvj8_6c+@!hMxpGbfUJcEqY@=GEFZ(*~LkJ??~z^ z=Is(zkVZ5)YvND9h-5U8gDIJ4%zAX*@<-l(ua2xcI7M`3UqA&AL)OZ*4;G^3rc2%* zR9b%|ZfFK}No#fLMp~;>apJ+r;V$y3x5eocJ@?kGy47Iy1{r^p*7U8$n^{_E zRix%G54XZ9e%BeeluA%2<(92qT0=nD;jDVDY&o<{CY;=Jdv3rxb}o+o=6L>9-`0jD zc&EaFu$&e`CJ^^R1>o{A>PXJL(k=KXoFFjR;o2*eBg;+2oycz&U4Pqa{Ozli$)g>| z>mqUs1xtqW5@%Q-hC;SO2fVsUy!yl$$*L4w3idDT@rKiW!lt`osh^ZKAGkKPe0KVa zIi|cr|AS|-y?dNAj zb+=NL-p1BO{RiIE#Z(%FQElTi^M|m{nC^49(xW3jG-p_GUPi_?_JbK;eD=J7+InVZ z*B!s^@$qqq!wQ{Cxi#F9n}pR1x|J-la;px|B8YKpKDtl@iuQ&tya6gkn_T|o&kFa= z3tfHOZv}t=kQoei8qB8f)BZsOhS0rP>dMb3B6t_eBvmMzpxnmm$KIch6UL1v7#=mS z&7LXSloOZ_zKHAmqEeI7pY?`p!=X>qZ}`)dgH6hf?X<4~P!}tFCb0Vc?dyR+r05e* z;NRFK49$V4%;<4TNBzwp zmuVx#_j0ek9M%jh@t36+hxg zpgEFvnUGD)th*0c8fH4vJnA|siLPx;5>fCcMX)I)cKkv_yY~M6C?4ORofHsU%Wilh zB#=YYd48D--qO7D>2_QXXjQUbW(zK?iuRU*DJGkw$y-)+Wl#|;bqK5SSWQk(T7xG( zjE14IVkN_a>9Z6^cz5-2CV=NZ_YO`6qE)Xi+$44?>!&UjdaYs}oaQ^9`34HBNdjLP zjhDP-d8NguJ6A=71~iMjL`mX7b0c@lD_NT0s5hn(Rkb+&WRw8VvuV&=~J(cxI)pi8ePn{N{NT*ka$!0k!jprF-*( z3Idk(Wdd%~2K->?^@=07NXTdDuf?U;GD*+z|v{^GozrxZc|?F{cz1i$wlpA6o4#}+^fpA_VQsz$ZO4&I9% zW@EK!eb*FR)*1~5%0W&SZvLdLjM!x`9=k#4w{gu94pGt@$F76Q3?hXMxyqL67_sUt zG}7MC6w%jw58qz&mGub%`1nM&V#?=b)zxJck9vj9u)Tbsplu1qHDi3c91L;CU?u#@ zgOD#7cKFa{uqJK<#1W}w3j(gJ35&T!Q*I01Ir~$Tm6O5ovx7z_8i=UD6_a2P z-HiC~SQnXn$0(wk7@j@zF0L{DE)0`ssR78M?sQA2avDQ*K>j**vxBnF18ryiMVys$ z69Ymj9Kwnx^?kHtU+Z%7N+V+LKAOlO>x1UTOsRwJ{bmdeKbLO^a82358t5^Z$}av= z2khx5C0+*$?()85(oUHR>x+qr+)*R1B4EwZB5vQpuk!hXApO^--xqg6#pcqee7%5v z!B! zuOB!=jDj-9TVsr_34zKy`LvLj6V{{w&d|!ID4#wE;_~d~wvM~;E_qHCg7^K5u740O zUgM7PfB!%dvM(*0A^z0LR<|-A2-$DUNV($Mh7y7EycTWJ4}t&=FWyH_WIs0Ifi)x| zk}FmPkwZaQ&}*>ewJ=OLEYn*qi~kya zTJQYedt1d5~$f)Nve%Vtw&TirqCH~Ctp^}QFq?h#c9bK-Cjwh*d;9f-T?01x9S zm=;MF#DT3Tbwj417MKGKbr{g_&Yg2H7~GWD9lO+#f1_aG6NFtPj^c|bnW+V9U>Ax} zF!Xtq%YYY@9#)(Xbw3p`EVi!7B|E5X zUGTMmx5RnB#JMgg?$gNOX5Nx7@B&^wD(ugox-z%^V42hZHBwW3^rQf+)48vAtmERs zLy*dt6r=u1eOMmAfs!-sz?%LU`2D_4iOIMf4->O_@-?)gyjFLDy&r5&C3GHo#}tz1 zpkWG2Ke&g9A8YSE_mJ1fwfx~X0KOc_3<%cF&vcu$lQR)1z2rqG;UOQYC3u5sE-%({ zhmQ{6PKsj}VTS}QQ9pQ5`oBde^m3NF9?gHVc$|6!4$b&83dQ&qj#SbV1lOhpazXQ1 zz#|&`l=UODBgkzUddc!HDs_l_#N@vXlw|)CTiZ%Y?>CuH?eTx&fxKUn87NZ0PX@s{bpR)hKl6B1!RbE1twXXMoez4k+ zl>6+85DxfEGT{sh!0xAZ1=(FeunF##8qMm^smBoi;bT*p+g)lN@}O_|gnQ?`$F^EY z;C5_h8s<3y-nL;i+UV$T69SJ!5Lt8J%KGEpq}ccTc`gWB-1r&Ox~RVA|n(LRO-;V{7n&N$O(#uJtVV0Ie2OQ z(*+nJA!RlFaSP0Zs0T&V0C?q3?QPt9Fvd0DKzHKa*Is}iWvZc3Sj2@(ir;1X4-T{} z?!;LRmD5|baj_0oM3)8hR=;ntY6E9}sg5lcy18`Gr&G90nOvUrV=>h)Z`z1k{#=HH=D<_Gdvb;>se;K)Q zm2VOj@lk+=%BaMmz0ybrrrpKRiR(YB<-Mvq^ncM8@qDXR>d#RcSQGDh>v%Qe;MlnH zWCFQCu|WS2aXduA13eEr>Yd#}C*1YLF;@Ey;m_!pw&zWhnMvl^xtdZT9Z}svD`2P* z14D0tBJjcN!&CCD=3@VKUu`|T?u^p-s>kCJ>T^vZ_s>RwHztpY)rvoWHhutpx-yXZ z*6eM1;TsvU4o}*=&tqj~CVBR5x2{h_JP$bJe`}xs2d2TOGdh}hu@*iy@+KfYwEgPz zzTy3!OgqaTEQ{{<+{+T~Vuh{uh2FplHB-J~iUU24kSrw2d~u>tzSxDq((hBkjEtW! ztu?v5NthDJrDVA$g(lUtKp%*rS=>+F7Sm+{eDv#s9S@#*V`X-v)zzPUKblumR20XK z8xip%5>J$aO?tR3?a?0YnXi+(i44R+CxxIcin3e&l}>c`1(?#YnG|2T6>S$RZahXI z+UGdX`5jK=`|SQw1Iav)bnw#D6}~bqb=SCzB+O%83D0N$r?`;CY1^8!WyLX}k|&3rSX za_g-nnVH}-ni>^1ss++P`&eUTJ|7$#B%QZe3G7Dg>m#A=HPjliV+M0Ip2t1BVZIA0 z;Id{$N8dZNzb9&^rm3iI8u0(CCOvZHsVLJ%t2h%?s) z6cX4Av3|y-njWN~M+W+Z`%mBU+W`?y6of#gIvuB}$~Z6To^+6ck}peZ7<9L5+Jg#Z zty>S*fO1KCoT(%c-Ayd2q&N@U5gK5r*Fa0kpg0x5MtF#~=x81m>=g0FNyNkpf(;yY zA&&G7p0f!BEe%O8O;fa>nh7H6+FD0E$_7PY)ZBtnRoJsBpMPZ_&HxX7Ji~~9MA>u{ zB<%c3RJ^1JE0HHAB-E*e3nT)rJ~)9}XH>o*KfEd8;1{a|eSZqXA{d(k-JYJF%8abU z`Ms*On-o)}eb0-H)i6~{D(}UfoTM9Pk6bN}KbLQ2_8_EB_^wC6#&7ny)ZrxY9`2;h zG_T?tEo5*3n?id$1PAN!^dg%@Ozs~~=9%NAHOXjff8b+mesSNbWEqKh^DuLF0(bV* z+wY`xHPo@}!+lIlN*%KUWvX3kY?1U+Y1}&t9@UoyC!BgPndk#)r%7dAF2FQ+KP@2v zvqAHLlF^EIZ*Touzo}hssB(qTa8JjCUk=l+#7(?jM#5n+Jqv(n_-?u zkDu}THGVflqUD#CMycp>2_hp{PIgD)v#NsTMbtF~b|`zEATU?Kx6s2ZAineA1JiG^ z{PZ0+3$6uJ(Wfi{=vzZ{cvZy}YAA7bBJXxZ(ytUI-CBO-XV<1HF=GR}_y>v%SRL~A z@lkOoCTwk+rDQIMN+$K8!TcsN%ok(6V%mk(d^PJf1@dZR(fdC4V-UC8_Dw$O81~^% zD(OVSX>N^(-KmoB&VOMFP6;h>ip(Wfe&-YxTbRn-ojsA%$R&n}rCsU2ZomIjVWh6hK8siLH`WRq zVxw;xFB(^`W<&ZE5O(+&5kK%ds)?&wiFGUQw&p?nhE8oC*pE2**`KA5;aKXJ8SH;@ zo0+lMGv479dvZt={3PV>IinUve~|T#0B|b^XAb^IiCB8dB%R5wv`k1ZyTt51-2msk z!$M=5m_iboluL-%SQ_Z{f4qe4oA5|lTKV@I8xkbV*6I|{Djv?vL(WZAj9+VhvnPks zY5IxK=;>ZUZrRiW(d-{NJ%!FBRbgE`LbjK58JxcCIY$Eq;p8>~#mX z!3X$*+H~D1*HlGUQeqraInWHd^Fo0-?Z`d;r|F7;n#_)C(%Eg`n21U9PweJ?9e({7f3N9LUl}GBf1I}jq`2jv zv2!1S#m;6>iq73A(OuaH4*x1oFO5?iDO0FnrC-H+OTlI|DYg^=as~HA!{}86A(P$N z)#;yv!AzpNbmsix!RI`$;hymGkWj~c?Zr_CRd$yEoHqxAt!+?QLE)y`y^l3u&pn)c zANg39V083r7L-uw0wLvLm9`}>l_X-uec^hG3f=HRJvFU<&|Y$N=Y_ z3Nzc6EYy%v7tgO>UwKe58H7V0d^x_1kEmyG{nSlddE3Ro{uwzj)Y#a<;%;Jij0b(& zU6x&%^p5}X_*?Z@?AIdbL`E7<6Uge$c=F8leiFY@Qh$~MPKPn(jgDDV@mkxiy zr&2|L|1#W=CM#Xo{rj=y*jEsD0EdrdX<&ln7I4L zc=f-VUTLjYDGhjks)PSAgdMH2^Sc>@E}I2E`Fq-(K{N~lkw|ZEh{MBGFK#vr-uLe> zv~{RZoB``tdfe|O+73}`u4Ypspcdj!C-vjW2pC`q{B(1DDlwHzvS5jsMXRG_P^_&{ zRP&zMHRc_I;Cuq3Xu_*Vb@Y3g#DjP|67(C*>4TxP&R9jNCyHQi6G2+I7xZ{@>S^CS zkwlSkG7JgOPSyBheb{+OnU`i``kwRJI&stQVmdxvq-?0+{MQ3}&l`8n?>{3Z>CUZO z%{tZMK+^QLucDMw`2hXBKSk8PSlOD=c|B(lA}eZ0BpXkJ6khmwfYzJf+DLvt3VPac zJcy@|_?WEAK19_2-KcsqAD?j05%T4Yce<6tuYzFeDpW$I z8MM0EJ1f3Yl8mY~Qw6fFKen%wf>^mW3uWmt&*o%TlsE41`iS_4?>8z(#J6BDx%G?c8B5pD~9L%&qktfR%faHRDH)g8Sw70+)1p9n4G`Of2&(P0|8UA$}^ zwng9D&y_{h4G8_8*K{p%Enttd{m+BTHGG4`D*Om7Dc-> zA(K`B%PKzUlTa>l=DGM@vf?3nDOjowAQ28Uw74za1ClFjB*a4bs5JiG-YD{vL|jnG zROz05Nmhx~{SCg5#_-DW)hq;Cgk`9_^*)Vic7EX(iw-&3+Ch--?Dv78l{#COZJVd?4ZuHuy$vrH$$Ivsztrl`KjY z%kYl>hgP^kYuF|(nI!%;Fy-^+HpG3fC|i=23MZitWo$hnKOV?SmFPAVg7uT@pz)h=l7z8uv1y67ZT3Fx4$#r)5}JR&a{+AxD{8Xi7FL=PTJlp_NVE1 z3+Z#%Cc*HzO58i8_(@pRu02ID*^s8?sdU)#Wqf;1P6>AYcUNDoTIDI`7p(PU#q$#a z{KG%Lrb`Tg=`6|?Zx2wmJFUmHGotyW*Agxqv&8n?=-0 zN}jt1ep)v9=U&5oxuP7L(OurEJQ1S_$)#y9BG%&}-Iv6&etttM`u2j}g^*w(EjxNX z-$`ZZ=dfE$V)<|IWWK~*TAs>JgBF7UhFJ$&m!pJ<^mTQ$-X}(@x6e1gyR=Bv8RxwM zwOHW}Pn$Ilt5D{Xs!C z!iTc|EmutL$^tHzfsgJ~X0o&U1QySb`gP%IU!%J0dq%jBxx4W{o?u_YE=X?s=28B@ z(@F<8V>(E6&=P#utFE_DR|ZAsct&bs^e!66$ZH)wl{4 zpPQ6=^!6hhUhn3z!>cHWuj0Y0*fK{^9j)FOAe9A6i0xDk zO6CB_nQ-N(GyH?UL%pA7TYR>x{*tv>R69MKt6(4?r$?8+zjtpYupL`S)RBEUYzlU0 z+4l$`9NzB6hn38KE=^SGgJD=E8G&QruLt^owRjDTh!kZmy{xrE>czlNMJGMcZ-TcoH!#Eauxd9~ zyctF>f@SE|RY;X2R_=QPY;tqc?C#$UR>`I}g2Ljjo(kDdYarMNh_6~ltbv;nScdS6 zlir$@UlenWnY&Ym>rFvBEPsazKCH>j&3(#QM|+unlyW-lqc?++GT`tpBYSoEu5fL* z2{_Z-kr@A@b2vcC17VB<#R+ib!+NM0LcAw;ul`PZ9gtpC2w67YNMX9&$;2!#&^&j{ z%=9@PmGZ-I>9~z(hG^AKQmPn6FNFeg4)FS6b?9X!ia@X=i?`=p*i5r%ODy+N;GKBi1BcN2H> zqCcZlYos_LJWsjy@zLYfsd9>mUDO+04ZYJ<5@Pkp1-4B~aSDUx;}uy%aZmxErhL}d z1kV2L+}%+&nTkkCuGo= z7hMP@Ol}bGwO!YIrEse~*T(qRDIuVw%l_~8nzHJk?yxyT@q|B`ztjGWf0eH<4?lMkC+nhpF6jN5g+A!Mq(=Q>m{NDRoXTqWED|%{0ho)2CVAiHxYDhgPQgY+{UmfQ0Ser z>#A^YIQCwtBfOV9=6F48xoDl{+94f(#1f~p#Jtpj>NDVyu^PH1>SvFe0#(35ho6>I zu~`R0&JnBu69}ye0a!x3$Oq&2;A_%u%DD|S7)h+NJ_m#WX%qHW72)Nf3FX6%bDnF> zT3dMxY$b?r#w(YG)Ia94X%h3CH*fHb`1i|0mKZ&^C~ESmf7vAyU|+ma|7f1rRU}*^ zxZrwW6MEGAk%k1Rx*48-<-;T}9^U8bRhgcdbS`!gQbh90DFeVC$3v?l;)A#$10C0-avb;zwri=o78A7aPspQAVH7=WPk>a1+J|R zH68;{_JL}DCO*Mpm6g?rk=%e<@NJj4-P}hEh!P86iF&Cz=!(6L_)+RYSYaFqiXmDL zbU`T`o%SxPB~&@~TN!|L+-0rFr{4!eL?W+cc0U!$J3YyMZ!`4fr2LJmC;ZUg#9wxi z{w}l*B=bNU`B;FGndI~wD8%aO8=oF%yauYuQ6g9SF2pF!T9<)^?d??4W3^)RC1GHx z%4Ls5hYuM+$Jo3#xZ}HUN*0{Nu{Jt$H{MzOJ6XMTYvin(3;%jateTsWO74|M_1UF3 z90@^n=TfIeav=xImCK%MK_^X-?l%_}Gx(vN8=820*fUODpfEkr@@A3=X4-1d)N@gPfq(RvVeNu02id|3pp6fv;MIa5`T-*fSetr404%P%77M#dMQF0^bu#N|w zCdt*>+QZkb4=f6|JzhEY<~A74eo=-EMi;DI27zEMvKikkqF?IzO4zTcnW^+^{bt)M{i zsMrDbQ+u<=Ox#$MQUI~v>Ofa&fjkupi|3iuE7jQHIvr|KmRm&ikAL+a)tY@URoPqW z_PIO{APdFvS;cfD-$4|Ip7uS+1_~F4g4;ECD~jX^;65XX)05Q>GCw9rBg=#4xMjhy z8uUDnxkS-&21Z?U2FSI11X~x2f2IZgdo7AKtHxD8F6D*xq9`R5)FE`e`X--INzC@* zP+_}P8bkDpS{KEAu87q^W<6%yxZ5uWyHz! z+y*5*g&QLVW@%iQA?k-?132NRU%Pu0s>>7SAATdg{lH_jQtUSV`i-`P8bD2JJ_^vn zgNuQV@wqkB7u{*kq)vo%E@OS5(j2j6HCu$eINnKf?#s0fH`LT5a2a|Losd8j*7h)i zd$*Rlq!z%2UlK%g1TzE_J<%Qe_m~R;s@jVbKP?N*+iG%q+33H_^9@1-`gct2nvd6d z*5B^VB=K3kyHmL1tT9`Xg?5Pkh5s$p0UkV2yeP^ETED@9)ZQf8#gW$r6;o}jwmo-B zb|(NT=-oT(g!5~YRJRL9r7CK=3bzl4uPUm-&q1H8nzo(B()Rnc&;8&hPuThSpZbY< zaPo+-2#1oZPi9V~@<6tLR#(srTS^N0$)U?(u)l)IaUP)`ep99Ayo?GkX(^fSXI-RD zR~`c62O~ffGYcyPC-DZZKsu%G`F=^bm8RK|UsgKs^`mi;Gnf45vR zWAJbBsR|f&a=_Ru)(P$1XJ2|5ZpM(E7(T!CeS63tUxC54#XmA{x{HYwdwFS8X{We3 z+md@(%n} z0NGR<=h)de&Ly-ec!92EUn3p%Cl}iAxmE{rBp+mSGVtZObO@hZqx+B2?^@d0x}EZ4 z?O&q|<_|nycFq%Xz>s^=w$)DEr^jFKM4X?w+BA88*&ecO3!xz-zlqG^FJ( zLeN~0k0E58$CVxaH{c6D{zQh0HM_d@8LX`Y^)gyP_i02NUl32WFPWHaVSU_5QauWv z%5BYkKWNk8f59Dfd8oKQE20fO)kW%uDKsbN#RwCoE!DodG-{=6T(+%R?JW|2xS@~r zSrKTI;^xC1AY%Z&h+B>a>mj}yhmX38E+a0EZ{nj1NOtG6SIT?#IOL>Kx!4H*?7E%? zKXE*8r6v=Fc!Z?(P&f)wJvoVc9~dai@^qoI%w0}!Awpqc%W-oFImHfN5QHR;w;V5C zaQ2E7U-r@e{;bF%n0|80*c0ph_a=|1-P0X%5?OeD=RAQr5qc?HH}rU0}wCN!$ytS>C$w-L$gMyxrZb429Fh^ zJI_82;c8;XRz`peN~`^6zfspOn;Y`yn0RRvtH&Wm{Hql45gj? zwG@zH=RU|sBeOP%(?RZtLX!VHGj&(;{<`nvrt>40FEz1Duf%=NY4_wPvM5cu#A(@E zRDhAL(zf>nNv@ByM4~I5Z&c?zxjGSsRacpwi75#bkW}XBMozK2Ep7iKh7=Bx-w(xa zO-4rI5h&~*nG0JpY61=beDZ1ldTaY;;=jel+ieZW_5TI-RZO0ZRJG#OLAGWjP==>I zMizTtlGbFMrHONbM>j%C5fHY}}pr{{4vu1xcR~;5q+`cdg=8IZVN*`NnbhLAD6OK@SZ2ZK1k3m8ths zl{i(>8c&%f}%<7$Gfk;ZmFK}s2No&Yy;)8rzS zVnh&_!uM7U4lSxZES90u{go{9~;C~ovNB&r?@bMySZnE&>qK$y{wt@ zPSDA%q7<9SP=#`Dn+?UOq&+gxb)*Y-NbhnDpSt2dh}S_Lg?#k>bK$Iz#|CJ687-{6 zjw*8Z_Kti0R<>jM@Z#@JI0pD_TQ0IgL_U35Q}h&9+O(sFS8uG|^T_z8JMzJwaQ}_p zIbcxyGp2)k7K&Y5-i{kMQ10yuk7v9CweSD}ZFYBf&wl1rnL#s6B3ml7)0K1kh~qD9 zcTSJ}GIGVTV0DlxI1)WqVDtrUuAJIwFIxgbr(|#6fAYS8od?4H(aLf9WS-N$YKbFS zikgxV-5l`GX}&!?QE6xca?5>^vTZ&jX(tO+_TJ+7NDhXNZ*4dKX)rTdV(wY0yc;Sv~my!QgQ)rm~ zi_w9Hdu;g;KbNA29p}Z4UXT7hH+L{0xR7_j7jin>PIy7Z4J7-xTjlq9L<*CJeYTY! z(1cnXDS^?`*6-W?|3;QGOkm@8+kTr^)C9M2pE|RkT1m}CrXOSgcAOBOJ@`W=IoL(J zrGu=dg&z1lo-|$%$#QO0P^>=gdpDy6mFj0A38FA;0T(?LeYwk%x^)_7tz3g(Vn|)N zZ~a#mfq4(BVco|PWCLW^$ydbPAmE|PZU)d`_YWVihCIB$t0WKXv{II$E(_A?Pt}Gv zv_QZ@Jq~%(2Jx0@VI%&l{yfS1@JlmhO}G z%LbmvEvz+j^WA$7%a!toEr(sF1X76N6MujNWlpqqI_UM;R+-nmfIK0~r5~(ge{gM! zFPM*b)mwG|ne>3d9mazTomY2(wKqYo`)uSGwnvFC7SP~+S~(e9bXZcv;SXnC!==1t z5;D0z-+IBR`EHIk9`)-Tg)r9wn0x!v%XD%;=Ijb>e%H~kAlM|Z&WF!{k6?sVfhYze z*5?{f3;56N(W-O0$K?LhMDkCoNzn60+XUXuboEQfXO=YbG_1lMW< z_utj=EKutZkrw+ji5l?M=81P`n8o0aK!HaBXfolCP)wQsw}CwAkqQlxF!6A?=71H6 zu3e%K^PN6^taIHn^b5TXjfp_f$L%ZtF}K4HOrzL)S6*kjIxwZHdj_@Wa0ex8H9?Q+vFKnR>9rF5@-8KzItc`AN{9B4w#4W`Ev6QfUcIttb0Pa1cE+un zEzn&$g?cnu3<(PhOHWV7)X%n7(c&bmbdXk7a+(nmcr7^tX0thn=P+zl1i#(7G^z4s z&c!#@yf@FKeMm#<9>Kr%Orh9g7ez~BVQZigXyyWVaUIDoxX^piKPOg!Dtsdk)|l!V zR?3SeQN=A3JIymrSV=a3wE7G$L|`WCL!}EpnUR!gCL`yE?|QbtEKWOyt6r70cbHFt zxuBH}W}CCu=TG_A+j}N6{zW*mr*S8UELPz4AJ9Eq9?(IU|QT-ecQgiPI&4*51A5&i6 z3lIEPBdNFaS~!95^#uDPc8*u#RwMwp3a5bFZw`p0>p+b{TcgJ`t%p^k=17UgmZzYs zECW9AjfJT;g{dkZ&Y78+st0>cO)b;MhTu85PgWC-RPS&O&kw}~CB>4RTwT-^F*Rrd ztGl^W+z`#LdpV5BLe(zgL` zYHnVNc);a3+Z>zM=xN!21N{mqFX~+9;0)FCJK&#C2cr&j(&S`NO}RMy1Bjvw-*mf1 zDxFD1AcAEQRkEZ-lWB7ZHaRRqc3&@CNXZ8{(q=6!wSYxNhd2A0zy^bdc=a+KlENyB04>v3$+1Im--six@-^bkH|( z$;|86<=j9*Hp<$C@#88EsV^UCb7K{BcMr=NB$?fk0E( zy74$C#J0KhoduAYnMD;L4NapN4Rqv^z9sS~pT?-1==Zl(Sr7%!Lh~4({#o@Aw>G3Q z6@dI(O{H512eWQ5xXkVr7>pqj^BO-Fs0)Gvk24zPsA9Z995{K03vcen zKbJpze6!4$hQ8k3D_#h(jB6?OX1nDKxp z|9Zz5oP?I|HAquwN#svcOwT`RiqbuQv@jT6pRNN`i}Rm71cmZkF0xR859QEe@|vw# zSM1qE50tmO)G>*LwF#Ii#j=Hp_=~s&zAm$*0}Y2g+L;>AjBhJsSb`}=+Z?~ zU1ND@F-gs~q}pgU)iM*FhSy=ZXv;ILCDbcPD-4M|7{JzXv8ps|-v z`1r<^Lj^2S@<5pW-cg&Pv+FEKxM3o@&UL{^g5EmV(DCD-F8S>k~&~F?h6Cfc6owzC&#^`@SE-)AxFGU`ggH9uC zbH0M3?}$Li8F3Ob+-Tlw(aHom6J+LRr=E+!wV&)VmIi6njMkg^-3tBmriMcP9ayy7 zkzK;0TD+KNCBT-9%)v+EaZ(@A~9-IAWd#G0^ z^AslY9ejdR9N}=td$l>N4LIJod6MdG*Q499Ap$umy+7*zwv0zb6HeQ z4l2z*vkck)sR6a4codagWLWd_y%@DSm&5#z%3wW!2|lTVKu#tu&!#X(R~tWB z6c;acFT)P(nT zVS^ldU8?Keu3En<&hVT`Nmi|ebm>63_^^I|nr_I+Yv^LsKgz>|idk zfY3apiU7?%`V)z^V`hhci|L#f;8oW}re2FxIx~1?0)JaB%!m}EujJm*{2-4HTk$cA8=ot2mPk z^(tphX^OFQ`y|4!;ZN0PKj%othXH5GI4fc2LIXVCFuL8I`%O|38^gFw9es z-T1_)S40_Tp3C?Q*d&DxI!g_@Fhg$*by}9>Ms`Kp@nLU+cszs)0`t-ahEbiWx$x5|^q z909lkCuGD2-9fRi{=L*qR&}wGg(7a}TBYNOYnD12qEZq>V{|xu3anY)riEDb@MF z#a&+fk1(s+a|kkLFqYLJ^AHrbFA#`!hE`Yd7ct<|Erf#tc!t&)+-PA^Axx=?6oOJB z81^^$W)zEuYA~1--}9VP?HyV6S=wZ6&3nU(+5>l8aL6PLKPfFa+SUww$b~_JBp;^- z1OasL1Veq*p){p0gUh^oXTy)*W@-BLjkjD>%(8P?cCCzW!1q1lRT?&5GcLixF`FF>N4IdZZmgtG2%Rw9bDZ zId3~gK*Pe#>Kk|dJW9@Mq}Pf#OSwl^3yQF!K2$YW54jxCbyFAGV^CBYM7OW12X`3L zbk8ti0M1_1U1%K=U~opuuMbE|Ui*=Y;5Du5kAuMr5%&XIY77|Oo17=SIN00E^cwyc zK;r*soU~rR44stZA#H0O;61Q?X>mSFPStfOaRVGPjc|x%MJXngDqocZNxQ4Wz^X3p z+5$t$r?|Ix3kZr_ULPE3w{{Yz;41s9d3TeKD(C&epek~eTYkz8y{>+9>2-yB2T-WiweZV$hDI9|ieg2MVF0XD6{RMrii z-K&x=3t-4*b1wKw9cqDWBphZ%Di#)0t7@#@Mqo4mdx%BnudK)Z;f^4EkEui;1Pdkr z=ixSNkCF>wDRZ!jKhs?L3F?qLSRlUIC%U+`b-6P!d1!sMzas9wcK2|7mPs+>sIy^f zTK4eN-aQ)~HX3@d_dBs7-4{@Th(RzLgbd&$Bzw7IEgCKWMsd>;bPy>dI_R&9S>)We)#7B#lx%i9ALceF);sV_i-a+s)`2!0p>Dr$@8@AN5RlFf?{fP_UII0 z?&0>cHgLPG-si>9Q`dRY!2nc&Zl7I5NP0)R8^WCF$lU@kj?haPUH3t#UC4AktK8FEKj zB#FPJ7pf{vv~b4Q5@i79LJ4N1x0+!yX^BSIsgNT^%LoH~eKlhz#@5z=T=W-rYUq&W z?LY8${zr79C0}l|$v+?iPaL*dM$hAhS=qdq%!693oPl|Mq=Mg5sEc3H-f$iDA+8bo18 zvX*2kvSdxxlFB-U@MKFwA;uoEWl14pEJ?|h$Uc;P8Cho3;JwE4zJI_wzs~)h@44T5 z&bjBF^Eu}-@oc?WtN~;=UWvVQ?PtYtG@ni31T+jrUKX;+U14?1uFV^ceGO%oeFm5K zk~C-tkxML0)!siBS6r&SxxW6x0`+sx1wOx7ySOP1wUUt*aM{*CuWzrJ1OkJlK&Hb% zOP+t_54tbOoL-pwz6UTeop{v{wISL)JPu+4P=T`n!3(#m{a*|n7=ZTCtg1i66QUFc z8&6*ofeP2oysx#4w(QTS*c?Ukmax6XUc@Bs3AfK65oR9(3_-4lFe0*|UB#bZ@3GT2 z`~qIZUA=1ndoZnN$+nfY77-0DMD5E69ncXdFYpfBR%zO~amy5+?$w+UJuI=+CL@lu zs_QP*I#?s_+tdW{cRvfA$*ufoCrq z(WJej%yzgtSo|>YZBr9iKC{Re{Nru7_S2_Nr(I3Ee&gEOXnHbKYMQ=McKEe2wFGVt zm!J3alPUCP?bh*@-hVT|wq+_>Kj<9m_ zSZ=uDz*lkAm+w-o^Xq|(ut(M4?`ce5C*K%@LuSO$3UpapYbX{9(OGfzSDhr}odFs^ z5*#;o28%BJnpDi><5js+a6!@DdrI*B+Bjhd`B&1BS#r&wF&_yoq8DaxkIsZY2>zj} zw6BB_$2!dKjMU!N4iwPpEYu8^K&=zqDci#i4FQXY?lc9tg1!0dP@b5b^^0TH_SJTA zoNEJtzlx!Dgdq?6E28ZoJR6>;)Tku?xgrl;CoSczb;HE5-JHLwy!+*&woam7J-1Qxo|A;OWUD^{ zpaL8hWM+*CY<5 zjs3uh#M2rfFq->tHDjq#9tHCpe)YInu0?lqZSP$o++{-a!OlwM!uH&&iUZyu-&Tc&;no(2A#dKGI?Sw}<@E6a=Ha zIlM##IQJe1uD?_ZZJ#cNd?Va(g(8S1&mMy$(N6_T{>6lkF+vH``#)Rm{tdJ!wO}kX zN{cEkmU^0!!d=&4^v6>K!lJFM?Pb%LHgA9ejTva%~WLerok|p~8#T1mG@b3~f!dgtz4F)US_3 zoUjY_5coO>9fDf8c1Z4StzDsh_&d=8Cp4LGyo>sFFi2Td+fL|2_aFUqzGKVk`Ea5* zK-1JRF!Jdo4yqtYie$OCMft**85^}Yl}No9(2K3D`y;z z?PpfPef&tz$hb4yQDT-0E1r~z+-}tS7t!EHzzj%Ic0nUBDp`1PCS0$h(`o9{Rq|h} zGj`LMe>&pw{CoI7dcJxR8)=O48TxAz`(_Vx9q|E}%ekHm|CQW-ZaQ1;H5U<=KeYi5 z1+K#&UUqnr`j>4kJfXw3UQAtLJD2n@I4EzuOoMh$ zetF@kB}l@Bu5J7;)!1U<-5a{z8n)9E?O~$s0{cp)ngF+PdiP!eM%;1fmB_+bH_`N+ zRLAn5soIjO3T=yWRu#3QbaFyp@DA&Q1Jg{k*|JB>L&%MEi-+dmNCI?m<^>DRC`0>8 zc`%2^xbO2h1aY>~UHLbsLfpL8>tirI z+EpX1gDQuNVDVi0Pl}+?O`C~Bq=tru>5`=(1tqaoWy%lAL7-Oi|Bg5FiALGr& zRm+$>ET8}&Jat={1bTuT&OAF4G757no54IpdQ`$G4>l0jw|HM&BcJYmCKn@>{a_{; zqgj84($4rylPeNSJUD@pN`7|mhWc>sF>NS=)8N>3V_Z`4S8NBC#Qv$eGu$3P?24eN zOt@d4)46vpoy6b|?nBBi2vQDxXdrr{{<^mr$s6N2?;mOBTN*I9h3*#SEmzTm#z*0Z zzA)kWt9fv$DCH`cz%q;)X}mOqrInt;oBHlE9KzsaT@T96Zfy$9_unBhR1h3qnTbSs zkGWkXpI#cSWD5@uH-2XyTw+t5hY@@nv1+vNt&n-0c)$rcTWv7(u+<27&$jk^e%?lG6Gwk(Y) zJO+U1GB?vWc!+XaeSY+h@dM26CSi6qe<7&J?6)N_ zbqR6Pnuk9{>XM#G0FozkuWpD`EfcwWcYaBWvc5oIqYC4BM+3$uZ7m_YQVK0e@kSBF z>HO!;ttj<=&R&}TlASQulj%%}Vmw3oyUw=v4&2WOfXBF>hAC#(2nIAtSt3XCbK+%@ zfc^k_;kh}LWT2aipESFkcknE5RbELFQhYf_KSUSC^s_f<{`PSFm%qyiHBm=KnT3|5 zfH9Ib!wRP<{UDl=KZ_R^h-qlh>gWiTRFJ5* zcR6eMsqEZpRwcy$_X*naO5h`)5U#eCMQ`%5{yrr;uThfA{a83v_jvhC#c`9w^na5s z*O}0g|74st%2NMt+7F_P&;!JDr+kQ)0y;DE-5e}S^S{5Cq72ZZME3%B2nQ+U3TS3f z>BAU<*9O5VU;*w53klb9qS%w@=y!yQfSx@?46^g5zz!hyY-#FnFLpq+3w2E&o)Muv zmY$4Oatp)o^f>7C=XF@#mzUMxwx4`$ge_aD*CTlSrEFpj-A%lmUnXm8Vj{k)-`9C@ zczHUnwl)V|hUluN<565Ge6PUKS9Oq2ozrtRAB5k}1*rUu9qyo=g|hcoWn>m(9~WchJZl^!k&{j#PlA3Kj|HpANS~G3-!4SeEi87Q)+$5TblKjstw#}jg{U)3 zY=c0ypf<=XG2YP+AjjXzciWc~*YOiYl`$JUd4t-PW$ zGc!wBU8`s!3uGfIDniQO=481e+8ex3EC<@tlTUqjP+8s%$sc-t%4#C_+qVF{8rg_l zvL#~y(fY_D%qB~l(w?Nj%K8_FE7RUvLZY@kFPE)Zc-hG|g^o|Jmiy=dHtderFu7D+ z5(2sU4f!-914GhhX`f37Caji+sT}OZx^O-GVmo93d87>*sDQ)6$@CJ)b%@97qGaad z2XC^D6I(|`ypxNt>D7E6x+WDnAC()btwT zGa&Q|9W9T^lW?7%;bbPm*UDXHMQkss5GSmb!dYL zC#z&5wjrtJgIyI9V^x6@MgbmE7w*Lj4E*Ew_mU_G+(gF&e?=T3=Bec8h0Qfo{DdHu ze~F!!c@x}k59urpxB}@{P@%c+BPA-`#TgdHc0Ug9AW!A~YnuophlaPJD487ffF<;; z()Wrt9BC@gH z7ZhT+_;~-H?r!?8wbGFO4g{cY4h)zpdp*z&dHYbCLZMjRe~fpqr7liZ$_evlI4e)S zcR|}slHnAnr0MgDQlLzuM;vCkKo-O-8RdcIS(c^ef&vVW6ThG4^@30=4b?zw;_({_ z5dLqf$h9`Yt6dXsE?J9_iry>a1fUnDzr=;@8uq%zqz`Kj31d7WKM!aF!n zIbaC1LbcJ0n(3R0(X*{~STnoj`Ywz;{BXZ_Qh@hN!*O%-hUkNJbMn;8k5~EBja^62 zxR`Fu+E#)%*ei(xUX$kgm^lqZRmd+BaFG;Q0p0*6^q+36nOxd%S*q>`zqtd&F+lEatr-Xc;3w#~1L$;p zwJXuZzBwF6oCl4mz{AO$&4scNNsAN7US{OGRHKdQ`u8lGt|}MK4N`Bp!@*X*GtY1| zmfsc{Lg&~pDUds~PoX*l`sYxvx_myIVnFQ@i`!u z0vshh`zrHR5y*#>uPl9!g$iCWkdRG9gH%P(8PSbL(rcS)oHIZgLs;PKm92GIM Z5qgo~_(`|x@pTCJ8D6-gSE1{O`5#B3J6`|* literal 0 HcmV?d00001 diff --git a/web/splash/img/light-1x.png b/web/splash/img/light-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..baa5d781843fe31ca79aeffbb1ac8536dec32474 GIT binary patch literal 10282 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 literal 0 HcmV?d00001 diff --git a/web/splash/img/light-2x.png b/web/splash/img/light-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6e657d1159933bd887830f1bf94f622356e451 GIT binary patch literal 20236 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 J;=R%5{|_A%Y*+vQ literal 0 HcmV?d00001 diff --git a/web/splash/img/light-4x.png b/web/splash/img/light-4x.png new file mode 100644 index 0000000000000000000000000000000000000000..7b321a1e4ec6cdeecd9374f5e41f5b76c947cb1f GIT binary patch literal 39743 zcmZsCWmr_-*Y=sAhHe4rp}R}ETT-M$1(X`PW293+=}zeo>5!p8y733nDIneTj{oQD z`{|r>ojH5$eXqUOx>rn;_Df}4tmjw&0N|>sDChzJ7`RQTK384tiAqb zH~IyR3!rz8WxuTx-^q50-#K$RtU8PT?k{_h4gUy>1k1k*vfG3h}v|9b_&1dz|c z&T=Zizvob5IWQdgOqWGK1pNDAEi?i6_Y7ePMFswiCQASR9pbc*9-a!+qiF~KrFbce z4i^X30YFbDP5hR ziv`Ki(*vz%Z_(iwKp@&NC7iq?j^S_Ezt>`zsK+VGN(6YIGal+2zAwsXU%}TVu%5`a ze+z@MWP?!m98uSty+Piww0Cu3+axp;D$|R+w&DN#x~!rJ6xySQkBA5Q&ms{x<;)Wp z|B%^aRDhvCO7cnI<3Kyu5(kb3@Lvf3Os7NQs_;_xLKyD+q8l`V!b^qNPh!ZU{O?pU_rA1=?-R~H#keB1!3*vJ zwo!J`Eu9<5Bj*es)F{A>?qgX%^;5=z~=ecnIyYWH9Jvscwb(a*?%O|i!|_)|sE#^wdT?s`IoH{}P_ro@rLp71ibs zKG}G+dr8TFgltH7FFk1WdS>g+cKn#dzqlFvzCT{e`#1OgriV^JRp{f=b_7?UB`sVG zJvUGHwCb~lflc@_GdUR->%8R{=!P6#;)>6%C+yVcLm>KZFb7HHp|KcC}K?)#4E26Z@OtZ$CrFfo+tY z?(E_*yGRt#^Lv_B@u!gT8owqd;m1X?M_IKjJIx2Rv$?J+#k1F0ghar02{Bv@h~9UI zV1dJYERL=`8p8oYYr27JwOUx z!s;1`%4JaDxb1aO|6weGFoCmmuq74#P1~-c2Hx@pX2{VWM@W8JKs$+kqL)T{z%mt> zPC#?-32Max>MQT*eE+J~d^u)UAd^!J<+D{HeC5Uye%?n-ikw()jP2Uh)MA2!cf=J= z+E?Teho+sajOUgfgk!?xifKN>lHc)9PqX36$eWs)5>hP_fD|j%`cGz44nac_BS$e> zlZIA{bRbKqrE7RB%ein7@D&gREMu0#38ELO^?@ShB?V(wPKoxAO%tXsl^XA?zxMPc zJB1jpZ|_B{H~4l-*OeCgP?7tT-~D$A1n+S{4+(~TUcBvkH%G&Xo0Aki0g3wx9`jmI0PaEtfSXXmBAc8L*6(VM|_S2~YK78^nm>1AmIc zSVd9)kl_e&X&qwT$y$d39A-Z1>+-&oatmmbT^R@y=|x<7tRxaYOexv5Q?4&62F6&c zTNO^=wW>ajRD7lQG3&`XRaJ$g zQ{}u)7H+e+fv&>I>#e5gh58M4eu1zE|K{T=`0GtW&G)F8N45HlSk8A-FE_B^m7MRs z79(aue8J?PqdX$kS2g(DhuJWS7mScImzCqWxq4D(T1FripE8K8p+apsxL?t>9T)s za6Q9r{Q=irKkbWE3s6myGsZr*!JLT!L8OQNS@>Aowmkz>K^EuaL?#QuWM*E^sY5-u#cWOj0~neu+Y ziI9khRQaUs*b(S9tqp&f3xXK5%8Vp;9CPSSPW%Ra=jTsI&cPz{A_6HDXzwYhM7P9V zQw}Jk`liPit%Xsc5dr;QiwB3~b1Oa&0(Gp!H1HB%{a!C@(x5>0(~Ts-LI{`2sv9*4 zzV{n0ufp+%xHqrbC>%UzJKhyBc4ec&*H{fYIJkSw$g-JtyVO6E#%42XXF z^%Xm+N%vzN#X?(jBmnSW-katqhAL^G^M*#~k|rXZ1K;aQ`sN}D9d^nT?1aP&91$&8 zhbF!2>Yu-kLm18VcYc#aGIL5DRPgVol>$6Sgw=f#`=yWK93Wm^H;#t;b2y4a>w(R# znkPW~7!q1lPPl5pZ&sMaGG-0D;24vWX`FxP-B;$W+21`Asxf1cUY0H-+|#I&wjwc{ z8~rBb_=&dZKJ*|d-WV7KKdz8rG`ziNf zLuaPux7?3cV!IRUrV4;WF9&tj50ZgihgGOkWo#c2EO%g*L0!9Em!;W{!eK>{1A8y( z#Q6$0uSf=k(6l@Ud615!75Rc?pdJ1Z~W9%SO`2-$5l zcx{g?dL}eeE%p77`WHQ<>hO@N%e+uSlToun|B>TIaulZz1Di}o#F%8@{f^SR|Fx$9 zMx58;E(A*C7B(lLO@DED=*@+2>(F);KS%WS$!IO5YoPY_#3_PjH0tObm`mT8ElIQ( z?Cn+Bv|2U7e>2asyZtk9wGXphYFdvrk2^1!r(!01rp!-9p{hs8i?=v2yLsFvmKpi!J!p!x8@?)R< z>UNn2l<8v?GPF{9M+(nux0!Wv`u(y$xQ~Ue)I#Vc#l=u84-QyvSkr>&W|lH}QB8ap zSIK^KFrdwyUi`Pl1mQHt=whNo%#M<0-z>;vocD@5pPiKS%4EBooric?Vlobx>$IX0 z1GK{pKdC0f=ND=hZv6pzFe*jus8$H4!6HGFHFt5YQc*&5+?AUCe)zdRl;Q&QPt{K{SnIz z{kAV?5e2)Sy#6?F8dP_}s}F|mDrX#laGk%x=nyEhCjV$GA4 zm=kM4=4F_HftKnE2~=d?T^50RV84s{=wu$~e32&w@?9e{Ce$erVVBHyG@0H0&6SOX zbPW-G^QkD_8hc>9PRXJSz|!50m>vq0qgeK5|2w-3uy0G8%lw8fJ`8MWA_WoGUO|XZZaxhrT;Y&0Vt5LH7ulSqmhy& zY<0v(5)MOSjFnOBiJ+M7UzR=qrcOyxj=5sB&^9tG5L@^;`+=btyVexmGQBw15Z&_v zFFfpeRVitms~+iysqmP=N~h`1bf2Sb`Q(q_^eSi9QdK+U9CPXSyLw|J)k=`sVSZ;~ z;F}}DboRL7U-w3d=o42_0rZpY`1D zr=hFv9#NII$(TY*3L*L`%JPg|-LvVy1&xo_rC(A)x?W)UVvt0@Kkaj zx9;&8bxW2ne=5qE*!W3WCKu`^$ArI%R!fMtr$YAiksqhTc<9H>w)m~_1J&QNv+~&) zfnCsdQ~adtI&jSe$1gv{y(btfIaw;J<8ZT+F~wv&+z`o2r+h{!@^8g3WS+ zfp+U?4Zo-Xj~UWZTU9;}wD&3^NPApLMN*;y@NzZgCJ;jRI&g9Z|1P>CuO=$wzI??(q?x9k`z{kug_Sw@wUj zZqSM#vv{hA21<>~2-H%s5MjeEYN@4k^U&^9D$qpQ6_({Bz|(;Xjg+vw`l<;m4?RO8 zJ{MMc#t4iIkr0AvpR|*T#Rw>OI5KVGqBpwV^nvs0P3d{pK zPO$vP_y(0EWK{#4M+6h695Y_n*{#a`IgoA+I0Fdl?8Ex74&ZUS*e&|{G&7_e0?(L@ zj?DVYGfvd~j%q8J&hh&S#usmxXD~06;igx8w$;=wi~$=iC-Ez?VZsqFuQqPSY{zXh z^~9xJ$?>Itq5@F)pYtR?Yw4R7x-uoSYwS4t*>CycRs?frrU|y7c4Zy>^1c@$}Tb!*+{F9HJJIY~hlfm8bBIzvMg zawWsxLwWf)RgcAU=oZ3QtjealqUn-)8Y?f44GzEdCZfuyKK33<;ExZ|rA7Fdj|LLm z&>-5-+4Y7ux7fZXao1X&sJ37EqL8q0))4JaoV-t*CS}1Vz*A)&$Gr|wZZqEz1K*AT zNdCq9bi)v|8#}*9&LkQPIIrRPW<}G#do~|Pzu0-P>5(7vs`XRH2+A=bT$_o7g}HcR zkv4w4>h-=VU$`RaI=+*o6kojdt(6Tl{)Ms$I{pp1=QIYbQ@s62MP_PfV8;&f#A> z@lLAyf&%yr%oGd)`NTEH!iQw%!oB7roWRf1{aSP*$G`2eAs0 z+K>X3MKA%Lo#~kVc0L7@NBsh_LWzqg>l2p0AUf;s`^*w_xuWmQR`J0$6aOUt?ZzV`D2=F;WgF6X*yE z>O;#R_&6K2YoItYnih^}$ZV$smbAs)G7)FI<-%^2Ve@&?XZ4+T*}GuWu06)#o7Y$n zg$<~pPWJ%W52y9TchSxuQxxzl#p{D2M(ZL5etH`5YP0^tQcC_8x7R10T`PmNS{x(H zz`f5xXY6wLW}cwdOS|FW)ALoRL(7V!nfd<;NOZ%pmng3HvA- zh}4bA&8vQBFG}cXkH`SY(7WXoXoj-clzXF&u%secDG_<7SH-MiPdB|QClR7=9KZUb z>zxO|(|CR<<@Ir{<^oxncS3qH4I?nq6E?p|`Ay!C?FZAO`9Q$I5EKk|IaU#TUT@|w zgyCHcdzFNV@4YIdthLn5)0x|^)tTMDRWZeGF?N;7tOT^W~uw#Y_>{F!GU70mG$d_{|v z%&44cC6GTZPxuRPofKght41D=%FDu;gw18kK8D= z;8z?TQhkLjIGw-Fl~s>ukheFYkF`;hm!{e&ZK9Hkd*F9hj!Ivdiq!pMn@P3DAFF4e z<9Cg)=fzEg!UQ8%b#1oNQ4hsE7XxRRjU=D4TOGyp!>AcKY_b*$Dw^7v%@iJ++gjfoFmO#CUgajF7mIS_ zy}$%oBt|HgS=F4UK|#wcl@WMRjt;Z|%|rivt)oHrIv4I{Oj?z@7RzxjLZdOAsC$b6 zYrcq3nl}huPn@!T08f;vq?y_)xR7O3$u6kQcGH)V8JIF+X}_#i{PV^gq#Y?enW2gP zJ+wmF=ga5f=jI|Y;}zyLYeI?(7^@~7alD`${~vwgFSIn?71s>k+{JjTNPI2i@*#BS zv3D*0Hkl>u_b30jb6Y|eilq0DIQiMlRdg}~3KMNYtw3pm4@>-di!fk0PBKa8p>=>t&1o*J zB%%|KV9ItG^+oO?=066L*4&L^o&m#4e$gzBK6dV!erY2?%nE-)kNrOx_)@+>xwuxD z*}>swRCl>qzd_x=Egbnd7>a!ee*d#YTrO(-D|@a`IpD2Rlr#_>-y|NGxrnJr%k6|@ zI#*TUk)J`{+kGA>pG8%hk99?u!OVlk^?>I|<|)2uD0x^7s6D@l5dEtl>`&1^EOs&K zsblrpeLyu!^r9=Qh2ldL7?}!R`JJGHIl#ogflbMsLu@2B-gxZ!Rsn>Ni|J7yv$A?h zC(c~ly05Bz-&J>$ecTHdY9{9K@N<*Ua`0E*F1R^nz>gXeh=ind57_9M3V7K$@9=O2 zdLWWhah~mTpq}4S=f3iNW9s{S+d?!>b}LpunU#YHjaz9%(^)$u=S6tMiCiLG-;uN= zZvkMrrF1i}?`U~`e7ieq=AxLOD9ZWtO`!G4B5FZgR}sO=?ON{|ihc8A2ESb=jHWiU zlOFgny?1Mqhc{j=^6Hrjcl+oQt@)HH>VYl3s~Xx-y`J)k^P2Vy7B}Y#Kia!u=6%QD zX=k>-c>PEJvA4#4@C6Wg;8luAG+%dadqSWE!!i5} zj$`+VCs?RcD!RJk^`KLTc;wR)-VCeTIeE=SPA_c24u)wu{y1)!b6{IOVi@NlxC66h zeJYQDTxLtAGl41+zyiX8!~ zWwx49>Ka8kz|`R2Nbf~2>e9=XpIa&k%PkMO--Gkg2Z!{e9D+ah&F=MRSG(saqPp*O zfJ?^vewwzjz?RNXGy53a*8D|(x^Wq1ZtdJuq9ytiRwf@20d6;fVrr)xNkBMdj57gV6?c3Io5l$-cAW-HNbuX<+Y{!|;xgzw&O@^ToD%RzG7<)Tl%uh`%G zM_IF;XgnJ>hsi+|dzEt(pBRwaZF?5jf8By@4I{+a%4Ta|B^=o-F3HpsR88V#sYw?C z+X;eJi_aArm1~$jf^t%%KpigwJ*O7Krb!djdt)oVM@QFdmGKWyM4~X? z{8%<8zw3UQD6}S)ki2EcYIaur@4x4%5T~tR-`bz^^jWEW5)s2mQXYuoyd=N=V`11T zXH2F-`?xvvaxVCPqvwYOfAjr=s=jOCcpngOd{-3Dd)yOs?K1l!UEQ7u{P}wBzh{Y5 z48hIuhB@_If?_JLSZ1IgIZ(yxZ;ZmjfBC0ebs#PL*CW}>=%7cMw7X$Uqv6Iak?L1< z&lm-jNq0KeDpX62WYH}8J%9fG4SL0Tsl0niER7vvSftAjtN}t z$~USYgGpK=FN)!^bVED0NT7q1W~fq}|CyMKOF9Heq7z_=am_6)mi?jI$LH=nO=rb% zEl-iC@DF?uXSOXUG&CB0U>YZ%?ctVg+?4>~IVfbC`$2yBqJbD>+fr)NlLFOm$6H%i z+GLu3LPkM2$no(`!bLs5yTKTR9Xq3+#qY8l8yU@#(TX%|qWhm*$Wo}!?TjWi4jRTz z;B1HoT^1c}c+B4{MpjgC{K!21u{F+23L5ZsqZ6hqY>A$yr}`4m?y~69ftwgMiHeX) z{9^IE1ykHW^3y6^Umt3B?diVOfM9TL4F;0M*TgbmBm%so{hp71o!~X&W}rL(g8-D+ zzSExxEYG^gF$^Pe+p0J}YNYcI9Bt8?K05-SbRpy2*HJ--*1xvsBK?Ne zvtKHo>?ZagEegRvuID1F8C+=l!@~kUXWHzuS@wPL={sa7Wb&de?or`=8!J45V}AI1 ztTt#iE2t_ucq~`)@a|5Hnt20&0uo8X{qgZz^M|A27DQv3R4dGHw(6@2#QI;O$-)Bz{(darqqADJj1f4=b|2&RP)xiSI@ zL?ar~3$n2$n@XV7cM5-@{CPWGfyfM+yK{Yg~%1}Zj2sPp@2P_Xsr8gx{iV-%sTDO0I$K^m$ zX$||To8vro(hx3c6uoJZ8)tm(@PaK9C02M=5O)HE4&r8|4??72t*Qd?gQo7|A1U82 zeTXWy8W)JKSW*8S-PXn-C-3jPWgNWDv}vrs8k!X(_3yJY%XcN+G|9PWwb(MXBVils z)5lB4afY2Y{8CTNnBa#7)dE%3Q3A1Sn~Z&Yu^>u1LK%W>#2_-(!b0c)2BlW}TIyO> zi(~fJfyVZNPTCrmr&k2TnNVFcOCz})p-}MP%_1lY2f#duJzjpIsIV_vUM zew)ut*_26P9K5}$=xQ{ZS9}5P|Nc{{44v>&X3PS_2!?boq{#xjKelMkYi8g7N>9m& zy6Qjbw#ejpdr4NMU67W0pl*2y&VTv2WXniy0aGjpq=JOdg)auM9N7+$Ff5UIrF(4@ zhUlSAwcNHHoooo8_^|J^>_TcUVoqYTo*?)Z;zzf`10n*UT4{_h0*E$2NgT^>#-lC^ zQV)6|b8nDJPBG|~T7Dx9ZM+))N`i%l>KgfLnmHt^Q{kVe6W&a~vi9pOE}*gc&{hol zPr&wJw7qbl{egY^B`hRkHc7~LcyO>AZbj+xsGC))y01V+cOXZ)!(&~Zi<#X?`cE?F z2rGafUJnOdV+is^o&GWC6GrF4aI2>N7Aw`^Gk& zIsuii4aYKdC-$L9c%g4{H-u|FE^R?SOEiEov(cjAoHQY_;q;?6nd{>V87Q3YyiW%e zo}3N*0bgUu&^BS_r=+myCS*TCUg$FVmOT2nnP^E9JsuwA<#BsuAL{`R z{(pFMkV9v5kfk+>*7cjXkk&m%4VrdL%i?7vQP3zrvNX|!j{F_%zu!4JGlLM3;0bD( zAVA=k<7-%mD=#&I1lcS@)NRd)1VQp22)Ck{KrMf~7r{NI3|B|o+9l5PB7_Ah?+*I! z>^1FAOge~%ivb8B`jZ8_Tv&fl=_{DLE0cooKe`#j$IJVM5LcwiB(sbFx&iI{xc2=V zcKNVVx-g47d)yk;C2R4T#@aSz)Ubz!h(;8M9Cel%V0c4~;0C?}66IYNmtgN_2rJxb zMF|z-#>>!2o|XuB8h>R@J@I9nw6wHa$k5_Rt9e32&nlqXQ)=T) z%?~b~ueF_z6P|$VU>GVQgcDRtg_s7+H@>4Oh@q{TnETLq7!%~D6}eReY6iUN6<_c> zc=v;c)1n+TMe~t-b~u@^4JsC7CHN1l5;&^N-`bM1n|sR+lpNHFtR|AihQKT)is~%^ zOyS8dVc!OCz0OutG-2&qi#&Wc1B%!FYtW@uVy|)gd;j*6^^N%T?2iFDth_P@!JGHR zT?&YUlOwCeWfakXwa+8PRnS%Vh$3cpX#&8S7IXvp@p=J}LCfJa482Oy0ub#39>BoO za$wS!C$SGAI|%#ImX?R7{mj&&{o+92dS^l>tHTvH-6$Qx^E{ln!5*WMz9@2Qb$&cmI%^>>&*CrCqL_{|4G36wYuWWilUcV*TVanvRzgu|Vfg-;$YWFWM5(=lE{!}u25M3r(~ zSoS&J(`hT;E))LAP+n4|2KF7Z<`xcr@#R|X+0u5;z6!w{NB4ZxX?n|hU#NP$7eD)~ zB;!le%9!G>jy?Cu_9vay)H4kuh_R=co0#3}1A?p$cc$_AtTuPFczl{D{P50D zuL!)UnIB8q!#7usW)x)~D6T!Qg{~PQvlci2L)!a9e_Df?lO43SNv|D@4LmYblV-XF z%`fL!=xy1Z$u82I`mX`xU{s3P_)1)}^3=cSrD#O@kjyNh)`IP*tBVDwM{* z*%=pgStELB)*2hVR=jCq@wRcRf(9z%xO21)ZbqQxc6y6&g(@Js zC;O1r?r6ue_o3jyPt#%zDu~x6M2yS@V-W2 zS=(KT7{pfg;rgJ;YRYjK+a4D5Ypm02SS^jW_FLbLiHpZS?9Wo%|cF+3j)3|;e5OCp#P0j`|;qX^{u z?xoQ%0Z+2D>O`(O%O@@TlMRm?nQMHwH0U0(TDOc&M_#pc6tf`>S6HYU> z5}g61W02qQ-{NFX`>EO=Fw5-;b+4ls(gMymk(KWOu7Q-U0aHlqP63=3Pd7U#F;8Zu zjPpZz1+iEVhg~!viS*zN3Nrpg#SD9@as?CP(ywxuw&{34+L#FZC7%~WPGamhhI;Aq zhPg=l4c$Dr+1cD;Y3mt%)m@!TjKs=r6ScHqXQgB|#P1O;KO7QC<|cC~4}$wes;dx) zNhnS~FgPYa~J%gmk-b5*aWZ%gGz*Cvu;Zw2(VAAhY`N)62$P zRWfs~2|UEBjyM-0WOPFLBO|ojT0MqKVeAQ{pa4%q&dLZ%$Ifi9MDCXdK}aq|{$O(T zt(Q3RTLGQ!$7V)ZuyPz~RntNT)Jtj_56+|=aqVG4015t~G21?8|3f^3{04cZb40eok+8FH79p-`HFQ5%fUF=hBu9M>ACL=H7y zt}=l6ESm$GPHzH&k|+dj5@Z;0qZ~p?PxjY1}aGw>puC_5b2nC%MQ= z{Emm&fZIXe+oKs~u$E^999b1);GDrYaP!@>lfa{G3*&k+?U~D-ciuG=1fyUD8S;emDgAxwv`A z?$rWW&6N)7*PDIn|6u}`@A~kBg6NpnHe0ZvCEwEpGyZ^S5u8 z*@ul2kiPlkmx$ZiUZS4|oFe!BsKnu$Odojl+9!^d(TD^wI?3L6sLXpGWRBc%UF<-& zH-}kYy`3(RbigzoGD{-dAvLi=Ol_=;?EZbD`@-{YOmAcMJf}|Z?>iWsnBqJeBKOoB zRB|rZ{qb7nTr!0ix%}KED99!dd1%vlx4I?*2DH=~ie;t*RDjwsCk(u(tU!(bla zerv1sh~3%v`(`J+CcaHkp*AEjCnrjNz-g_fD)n2yyobX|0QEO7LC2ZRzD2qU3H@a@ z%UM#`ka29zJ*is+{+JzueOFc@pzM9xq?@mhusjHWA&`TQes0e%gWIMf_qGEeDY81B{U&faf1poPpagIMfvm^yPlDQE%3$z~$ zHF6Yv5U8>tFRW7DB4g-;^z<->0hrbBSet6tqNn-5==)c#&K;Uy8OYpgs9e8X(qT;+ z>hg^%#?zgiT@;Z1p89fJHCZ=ob${zqFNyWoMUCWL12Mn}MocAVi{d+Pe3C3sKluDM zs-+eS{#=c0ce$)m!u|k(Y{L|)ApJ(ggWqibcrwkGLKU36&tuuMJ*=Yn<+J`^Be0-P zkwI-I?eMi1LV-Q`rSr|gmmn5k(aoPn6PJ*VxFZLdjaP$bSVvp#M5!q5z!ntz5>>_3?g5#Oe8JZP4;T1e!0|7D(rHt!EvM0Q|(wNM$@4y-t^j~BU# zk2)}%x!9lg$rm-W4d%`WmXHFfLu}Uphf0Y|jYHr2O`BsR9`3x`3gsxahWPD>o~?&a zY-AS74?}RgFL)T4un)g{n;c{W4no4hbDo)nc0Wdc3x9BPdo;jd0iWaCt!SM+XF8tE z{mDQ4%k(y^LS*&gM@P|OGRKF5*JV0avLW9b9##r);lhLeWS#YkM3?IFkvln|Ul(o5 zH+{0^eX0=Ny|_0{RFUzZVQOKXe-W{L;oq;hsF2V}JExH;Gqw_V>W8%4J&{16#Er=Z z)8bNX8bo`tJyL;{WHRAyDJa~gKh)f#JX|^XX#cij{D79fV&|NHp1ix%D2Og?LM`w^ zFKc(N+kSy;sA0s)D*fp}@!7Gn*TB&iDY@T2gQ;hcQF!oQDB}HC?%Lj3_}AH(w}(>5 zoDqgrcHhS@B|0U#XnT!YSc~Y#F5Dmj4{>yR;iKBMWFOb09YB=nuSAz7;Ve7ZXZyJ5 zcF9Vb?I+)?(J-;GN=X@3O4 ztNUT<&Kyeb-*ecX1x>8Cy{sXWk;k2KoOZJy}~Ee5J}{WsO^Eu2}Z(5aC}-gSc>wnl5NLjoFr(A{x9*c?O_v8)M(; zNJraOPRE5RZ}y=t>Qnd+G(9dKIqGfQ4RV<9V%D#1oZ-^tsT^-tRL#x9tNd&VRjGTC ztk;*2w^<#R9)utlI;5-*Y6hv1@vx6pn_6Xq(jmtlS*GyCZ(h9b&z1R8G6ughWzjGL zm(iTO4kHE*j~jgIM*$2y;V9G+&zb5%^~PcviTk`7*sY-l91m}cU!r%klr1cFX1+v{ zH#;bu5Esgk#I(%Z=kkeKU2@|Y&M3`@B>Ycp0W5eO%a4G`k8CWhhT)4e;P})%@)BWW zWaRy~3g3Ax+F8WY;P&bZRmDiWIBjS`bv^8^kK@F<{z$FTZ~~29G4@8V|Jr7maCj~a zU<9!Gwf3TlV}9jRr)eLb32olHCFk640PZutkl9T|)RF76gyM_pNd^$?syt#eq6YF? z-IH4E)1<{{e~}f>kRX>A(U*@vAFX;1;`!q}v+&9IPmHA%!lk{Hb&-^9H8L@G!RNS( zJpJb>jSTAV%Kc`6uG6Ebyv;@W)r~U4<-8YsgZ-(_LFc8%MWX zfOcIoZFKnU@>zpn8jsquwz~%H+Ix+^yCy^4b`!=2OO$M_NyqJ~EV3use-#=nK47Ce zIKT0DOs&E09Cv;54(UDF6lHGKWxZR}as68k@+MxmL`CgN+;cf(OOlfIsH=WI0xbk8 z%0UV8L}f~_6Llv4g}A1jY{lR^5kU8nfC{q$u*6jQZuq(U0Gl`2ADL6$8pNL~u0bV3 znX9>qMrVfJukDyPm&+lukb%a&SZ`VWD(Tm2pV2z^T}SLfU&>`o5gWPcf2?Kw*!GPm zBMX_tbWtPZtyFg8{2ll#)u|u5%5B2{=LHURn4{a*0`JHIPtL}!a8$lT$BECs?xNIH zWOhE*7)n|2r@Zatr@$6_F4nP!3h?aCo=J%@q1f^)eWSV|Ts=Cmm_a~EqHhblb)>Jo z+tv&;upT9;!f;Kh>6qvGS$+l^b!9RUq7_~{dEcJS23u@eS7wrlJv}+UAVjpH1TJ+F zK8hH%XWcK&+P{}R*Q`vxq)-bjX9a)$42Zl&$e)zrX-3AyC|{9T^!#8Lu;#kqwx?sY z=TnB30L`NUjGYscIpC-mt)73hN}l1Xy$3yp%t^$-Oy97Is^+jb@*gW3{9{Q1u8;Vu z?ogx&az3{+0ChU)NLZaqD)FpqZx3r$PQ7ekU8Q4F`_{D}xQoffQQ=baSt&)jNO z5tGDqDN8S}j@w(FKD~$w@(x396(wjZdz)mIWreK0EMz+-Wo6j0#oHM)+5F`>=6|`K z8}0EJpD}|3yj2R6E42t|(^^Kf4Bj)OHab84=OIYLiy9QjhZkpW@a4@4$~$ZD$%zcz zFa~c5MAUB&>&5+%wUJfOapdOrr0Z0XD{R2?j0Uj8hwcA4h%NY}lsCt2_;WF9W!Qho)o^bNLlVlY~? za1HEHAhJ;n{OrjIYpt&WCHOXR{{@Y1zv$af@Dnjw`t-*^yIucr$0T`(0cWiC`h*ck zkMfU`ZFHf~9zX`WlhJo=l&pd>UCIyP5$t4rgE=02R+Ca}`+Y3T`8%0M8_6X!J-x3j z>N*tWXr`u(D3AoQqyl|#WTf}nXl3Jp$A(@~{!hp)RUkggDSeIREEj-&N}KoSWq#Pw zZLfrR_X{Vl;xn-k#C`VCYB67$L~dp?ZtJ zo=+jlC&SHG+STt|KI}hY*b^nCc{hDa!DEL@9$xu9m{tCUc8p@#!=&{u3qGj?dd-F1 zqc;o=K|u%o7lLt5uSQm&Eb(_%R@`723tS`z;(N&eHk`2gqdw}qZOr-7G$l2!eP;o4 z=1>4a+aX9G?|T8yJg|{+aNyl1UafI#TeWyy*>fDvV*L4$(T!S0E5(4(&q}!{Pq{++ zx(H#RfZmZ7$!U(&@(L!eF%k$I;E`8uZdPI7S?%?6UHuLEL;lFJ!xK9l38dg3_e3^& zyC396wla)AEvc&X)(%adJkVC~omH*9XB3y^6^bKWMtS_9-R8J|BCx~fe&Fq}@IyUr zi}(h?>0?EXF_5zG=c@y~b}kH~eh$IhF}QB^M2qaV+^m(QR0kwV+&|8L9g)clzaV%Q zz&=?PRu(;GQIq(?cTEtQr!fg|Qq9sxN}Go@7YUZx(~9~$*USk*L!mhg{a5>sd}DR` zOlt#52af`7az%uHrXF4dA?Z%h*P(|NXG5?o%)G@~FxW@8gI0Q~#n38QTIarkd!e=E z=Vk9Acz4{EEu!2Zb*@%qJVwGLlwe1h5afJvi`#y^M{<9^*XGrk-@}WUoc$!69+QDO zs{r`US(R_nIV)6OY4N;Dfjs;P`H|K{erDX z`j`8Kp(Y)nGV|JbJt%dW zT+w20R|GP!0oTX!{Afs8-MJGZLIs+q+OU3oJDWm&zNM6(FYA+-k@D#%rKWpHdVaO+ zvWmCaRz$GOY@-Y7x!=%8y9soV2nEd-MkO9F#@~H)*EgJy1+`AlGUx3)XTQ?)MVxN5 zI@3-WtVv`S+`muR=-OjHl52yrYz+qy|6&6wd(XOLEspz{o`!{MH7~CY(st~~Q*2}O zg_G_wmcvEK)7#5t6cQDebNDC~gTW{FaH&&H4mh#xc%frw*XI3f&j$sW2w%c9@d7UN zz;B?TvOnhqLxUsrN#k{e{$)fdr7|lo9nlKG{@w&Jkn7t8PDG8;a_@Lhbyu)8hjru0 zXuL+wp|oC1%x?_8x}Z3gSdO1w>~Q42`c5{WD;YWcO*lpLL_4ZmlW-CJoEUgUf${$u*KI(oS){XvrG^Q&KXkMRPjHR~a;o%NnyXWE@=O!YpcG{z#O zF<(9Gx?c|w&|Pkhg+so*m*I|UUNC>G4vJqr%J!?ZTI6>4^&OvrqFkbMTL~RzEMifC z?fU2R&RC0yT8p&Xf6wn1{t5#K*^qCLYR$CvSh=g>< zvb>k??|J{@d6s+bnK_f6nKM^}IyLhZJHBX718fQ5&B+eot<+ljbEYTrWE*^jXnR4eim;PILNKwn=pSQ~8nH^7c1 zhmOSt7PES4l}r+ozw~8JCsv=E<*(O`<2uoDGdf4XtkXQRrljwNsEVG{OG0ty{(r$0 z;exWi_G(@`vKp9{GQef8q8xQhlxpa1mk_ACS9@kTSygh#A z7~{zy9GM*rTmM<#y}i?gi4p9p5c;E~+O?l0PnTZvHcTi#Iu7f%-6tF!EhCKnc1D*h zjh+uyhON^Z!JhFg#XIi=^bEhqs}32`Xd6&*@=YvT>QNWV#&K2Zjzu}J`0l(LIod4a z@R}OppuV52UZ27NxN|?1KbE|{jNGqU_>IG(^Uq(~3n4AA0utQpM(FQ3b%V^!EIQW} zXW6G^SX6(D?JS_%%6^beLq(+rFk6FAVfNzOfknfk4s&@V?!CEeOO?jIQR zw|nyDv5pG)#(_wa^X=wBP_0F)E`+3 zOY+~)%D~b!>N!dbnn+D_lVHf?eCNKf1@GJPae2*}&@o zAJVP6m=0H_6w_hAtJ@WR+Cg)1pFhv_5Mer>*;?YMw2_I6#eq0^vJjM>JL%N%_rl-c zYLftci&j=9avR@2Sm5}Kp|2pDMW*DS(Ku4elx4t85S%6QicpBT1CQ0;v1bc?fc5~?E# z3vUJSUdQ#~VD5bar{$&bc7M7;Lvj8_6c+@!hMxpGbfUJcEqY@=GEFZ(*~LkJ??~z^ z=Is(zkVZ5)YvND9h-5U8gDIJ4%zAX*@<-l(ua2xcI7M`3UqA&AL)OZ*4;G^3rc2%* zR9b%|ZfFK}No#fLMp~;>apJ+r;V$y3x5eocJ@?kGy47Iy1{r^p*7U8$n^{_E zRix%G54XZ9e%BeeluA%2<(92qT0=nD;jDVDY&o<{CY;=Jdv3rxb}o+o=6L>9-`0jD zc&EaFu$&e`CJ^^R1>o{A>PXJL(k=KXoFFjR;o2*eBg;+2oycz&U4Pqa{Ozli$)g>| z>mqUs1xtqW5@%Q-hC;SO2fVsUy!yl$$*L4w3idDT@rKiW!lt`osh^ZKAGkKPe0KVa zIi|cr|AS|-y?dNAj zb+=NL-p1BO{RiIE#Z(%FQElTi^M|m{nC^49(xW3jG-p_GUPi_?_JbK;eD=J7+InVZ z*B!s^@$qqq!wQ{Cxi#F9n}pR1x|J-la;px|B8YKpKDtl@iuQ&tya6gkn_T|o&kFa= z3tfHOZv}t=kQoei8qB8f)BZsOhS0rP>dMb3B6t_eBvmMzpxnmm$KIch6UL1v7#=mS z&7LXSloOZ_zKHAmqEeI7pY?`p!=X>qZ}`)dgH6hf?X<4~P!}tFCb0Vc?dyR+r05e* z;NRFK49$V4%;<4TNBzwp zmuVx#_j0ek9M%jh@t36+hxg zpgEFvnUGD)th*0c8fH4vJnA|siLPx;5>fCcMX)I)cKkv_yY~M6C?4ORofHsU%Wilh zB#=YYd48D--qO7D>2_QXXjQUbW(zK?iuRU*DJGkw$y-)+Wl#|;bqK5SSWQk(T7xG( zjE14IVkN_a>9Z6^cz5-2CV=NZ_YO`6qE)Xi+$44?>!&UjdaYs}oaQ^9`34HBNdjLP zjhDP-d8NguJ6A=71~iMjL`mX7b0c@lD_NT0s5hn(Rkb+&WRw8VvuV&=~J(cxI)pi8ePn{N{NT*ka$!0k!jprF-*( z3Idk(Wdd%~2K->?^@=07NXTdDuf?U;GD*+z|v{^GozrxZc|?F{cz1i$wlpA6o4#}+^fpA_VQsz$ZO4&I9% zW@EK!eb*FR)*1~5%0W&SZvLdLjM!x`9=k#4w{gu94pGt@$F76Q3?hXMxyqL67_sUt zG}7MC6w%jw58qz&mGub%`1nM&V#?=b)zxJck9vj9u)Tbsplu1qHDi3c91L;CU?u#@ zgOD#7cKFa{uqJK<#1W}w3j(gJ35&T!Q*I01Ir~$Tm6O5ovx7z_8i=UD6_a2P z-HiC~SQnXn$0(wk7@j@zF0L{DE)0`ssR78M?sQA2avDQ*K>j**vxBnF18ryiMVys$ z69Ymj9Kwnx^?kHtU+Z%7N+V+LKAOlO>x1UTOsRwJ{bmdeKbLO^a82358t5^Z$}av= z2khx5C0+*$?()85(oUHR>x+qr+)*R1B4EwZB5vQpuk!hXApO^--xqg6#pcqee7%5v z!B! zuOB!=jDj-9TVsr_34zKy`LvLj6V{{w&d|!ID4#wE;_~d~wvM~;E_qHCg7^K5u740O zUgM7PfB!%dvM(*0A^z0LR<|-A2-$DUNV($Mh7y7EycTWJ4}t&=FWyH_WIs0Ifi)x| zk}FmPkwZaQ&}*>ewJ=OLEYn*qi~kya zTJQYedt1d5~$f)Nve%Vtw&TirqCH~Ctp^}QFq?h#c9bK-Cjwh*d;9f-T?01x9S zm=;MF#DT3Tbwj417MKGKbr{g_&Yg2H7~GWD9lO+#f1_aG6NFtPj^c|bnW+V9U>Ax} zF!Xtq%YYY@9#)(Xbw3p`EVi!7B|E5X zUGTMmx5RnB#JMgg?$gNOX5Nx7@B&^wD(ugox-z%^V42hZHBwW3^rQf+)48vAtmERs zLy*dt6r=u1eOMmAfs!-sz?%LU`2D_4iOIMf4->O_@-?)gyjFLDy&r5&C3GHo#}tz1 zpkWG2Ke&g9A8YSE_mJ1fwfx~X0KOc_3<%cF&vcu$lQR)1z2rqG;UOQYC3u5sE-%({ zhmQ{6PKsj}VTS}QQ9pQ5`oBde^m3NF9?gHVc$|6!4$b&83dQ&qj#SbV1lOhpazXQ1 zz#|&`l=UODBgkzUddc!HDs_l_#N@vXlw|)CTiZ%Y?>CuH?eTx&fxKUn87NZ0PX@s{bpR)hKl6B1!RbE1twXXMoez4k+ zl>6+85DxfEGT{sh!0xAZ1=(FeunF##8qMm^smBoi;bT*p+g)lN@}O_|gnQ?`$F^EY z;C5_h8s<3y-nL;i+UV$T69SJ!5Lt8J%KGEpq}ccTc`gWB-1r&Ox~RVA|n(LRO-;V{7n&N$O(#uJtVV0Ie2OQ z(*+nJA!RlFaSP0Zs0T&V0C?q3?QPt9Fvd0DKzHKa*Is}iWvZc3Sj2@(ir;1X4-T{} z?!;LRmD5|baj_0oM3)8hR=;ntY6E9}sg5lcy18`Gr&G90nOvUrV=>h)Z`z1k{#=HH=D<_Gdvb;>se;K)Q zm2VOj@lk+=%BaMmz0ybrrrpKRiR(YB<-Mvq^ncM8@qDXR>d#RcSQGDh>v%Qe;MlnH zWCFQCu|WS2aXduA13eEr>Yd#}C*1YLF;@Ey;m_!pw&zWhnMvl^xtdZT9Z}svD`2P* z14D0tBJjcN!&CCD=3@VKUu`|T?u^p-s>kCJ>T^vZ_s>RwHztpY)rvoWHhutpx-yXZ z*6eM1;TsvU4o}*=&tqj~CVBR5x2{h_JP$bJe`}xs2d2TOGdh}hu@*iy@+KfYwEgPz zzTy3!OgqaTEQ{{<+{+T~Vuh{uh2FplHB-J~iUU24kSrw2d~u>tzSxDq((hBkjEtW! ztu?v5NthDJrDVA$g(lUtKp%*rS=>+F7Sm+{eDv#s9S@#*V`X-v)zzPUKblumR20XK z8xip%5>J$aO?tR3?a?0YnXi+(i44R+CxxIcin3e&l}>c`1(?#YnG|2T6>S$RZahXI z+UGdX`5jK=`|SQw1Iav)bnw#D6}~bqb=SCzB+O%83D0N$r?`;CY1^8!WyLX}k|&3rSX za_g-nnVH}-ni>^1ss++P`&eUTJ|7$#B%QZe3G7Dg>m#A=HPjliV+M0Ip2t1BVZIA0 z;Id{$N8dZNzb9&^rm3iI8u0(CCOvZHsVLJ%t2h%?s) z6cX4Av3|y-njWN~M+W+Z`%mBU+W`?y6of#gIvuB}$~Z6To^+6ck}peZ7<9L5+Jg#Z zty>S*fO1KCoT(%c-Ayd2q&N@U5gK5r*Fa0kpg0x5MtF#~=x81m>=g0FNyNkpf(;yY zA&&G7p0f!BEe%O8O;fa>nh7H6+FD0E$_7PY)ZBtnRoJsBpMPZ_&HxX7Ji~~9MA>u{ zB<%c3RJ^1JE0HHAB-E*e3nT)rJ~)9}XH>o*KfEd8;1{a|eSZqXA{d(k-JYJF%8abU z`Ms*On-o)}eb0-H)i6~{D(}UfoTM9Pk6bN}KbLQ2_8_EB_^wC6#&7ny)ZrxY9`2;h zG_T?tEo5*3n?id$1PAN!^dg%@Ozs~~=9%NAHOXjff8b+mesSNbWEqKh^DuLF0(bV* z+wY`xHPo@}!+lIlN*%KUWvX3kY?1U+Y1}&t9@UoyC!BgPndk#)r%7dAF2FQ+KP@2v zvqAHLlF^EIZ*Touzo}hssB(qTa8JjCUk=l+#7(?jM#5n+Jqv(n_-?u zkDu}THGVflqUD#CMycp>2_hp{PIgD)v#NsTMbtF~b|`zEATU?Kx6s2ZAineA1JiG^ z{PZ0+3$6uJ(Wfi{=vzZ{cvZy}YAA7bBJXxZ(ytUI-CBO-XV<1HF=GR}_y>v%SRL~A z@lkOoCTwk+rDQIMN+$K8!TcsN%ok(6V%mk(d^PJf1@dZR(fdC4V-UC8_Dw$O81~^% zD(OVSX>N^(-KmoB&VOMFP6;h>ip(Wfe&-YxTbRn-ojsA%$R&n}rCsU2ZomIjVWh6hK8siLH`WRq zVxw;xFB(^`W<&ZE5O(+&5kK%ds)?&wiFGUQw&p?nhE8oC*pE2**`KA5;aKXJ8SH;@ zo0+lMGv479dvZt={3PV>IinUve~|T#0B|b^XAb^IiCB8dB%R5wv`k1ZyTt51-2msk z!$M=5m_iboluL-%SQ_Z{f4qe4oA5|lTKV@I8xkbV*6I|{Djv?vL(WZAj9+VhvnPks zY5IxK=;>ZUZrRiW(d-{NJ%!FBRbgE`LbjK58JxcCIY$Eq;p8>~#mX z!3X$*+H~D1*HlGUQeqraInWHd^Fo0-?Z`d;r|F7;n#_)C(%Eg`n21U9PweJ?9e({7f3N9LUl}GBf1I}jq`2jv zv2!1S#m;6>iq73A(OuaH4*x1oFO5?iDO0FnrC-H+OTlI|DYg^=as~HA!{}86A(P$N z)#;yv!AzpNbmsix!RI`$;hymGkWj~c?Zr_CRd$yEoHqxAt!+?QLE)y`y^l3u&pn)c zANg39V083r7L-uw0wLvLm9`}>l_X-uec^hG3f=HRJvFU<&|Y$N=Y_ z3Nzc6EYy%v7tgO>UwKe58H7V0d^x_1kEmyG{nSlddE3Ro{uwzj)Y#a<;%;Jij0b(& zU6x&%^p5}X_*?Z@?AIdbL`E7<6Uge$c=F8leiFY@Qh$~MPKPn(jgDDV@mkxiy zr&2|L|1#W=CM#Xo{rj=y*jEsD0EdrdX<&ln7I4L zc=f-VUTLjYDGhjks)PSAgdMH2^Sc>@E}I2E`Fq-(K{N~lkw|ZEh{MBGFK#vr-uLe> zv~{RZoB``tdfe|O+73}`u4Ypspcdj!C-vjW2pC`q{B(1DDlwHzvS5jsMXRG_P^_&{ zRP&zMHRc_I;Cuq3Xu_*Vb@Y3g#DjP|67(C*>4TxP&R9jNCyHQi6G2+I7xZ{@>S^CS zkwlSkG7JgOPSyBheb{+OnU`i``kwRJI&stQVmdxvq-?0+{MQ3}&l`8n?>{3Z>CUZO z%{tZMK+^QLucDMw`2hXBKSk8PSlOD=c|B(lA}eZ0BpXkJ6khmwfYzJf+DLvt3VPac zJcy@|_?WEAK19_2-KcsqAD?j05%T4Yce<6tuYzFeDpW$I z8MM0EJ1f3Yl8mY~Qw6fFKen%wf>^mW3uWmt&*o%TlsE41`iS_4?>8z(#J6BDx%G?c8B5pD~9L%&qktfR%faHRDH)g8Sw70+)1p9n4G`Of2&(P0|8UA$}^ zwng9D&y_{h4G8_8*K{p%Enttd{m+BTHGG4`D*Om7Dc-> zA(K`B%PKzUlTa>l=DGM@vf?3nDOjowAQ28Uw74za1ClFjB*a4bs5JiG-YD{vL|jnG zROz05Nmhx~{SCg5#_-DW)hq;Cgk`9_^*)Vic7EX(iw-&3+Ch--?Dv78l{#COZJVd?4ZuHuy$vrH$$Ivsztrl`KjY z%kYl>hgP^kYuF|(nI!%;Fy-^+HpG3fC|i=23MZitWo$hnKOV?SmFPAVg7uT@pz)h=l7z8uv1y67ZT3Fx4$#r)5}JR&a{+AxD{8Xi7FL=PTJlp_NVE1 z3+Z#%Cc*HzO58i8_(@pRu02ID*^s8?sdU)#Wqf;1P6>AYcUNDoTIDI`7p(PU#q$#a z{KG%Lrb`Tg=`6|?Zx2wmJFUmHGotyW*Agxqv&8n?=-0 zN}jt1ep)v9=U&5oxuP7L(OurEJQ1S_$)#y9BG%&}-Iv6&etttM`u2j}g^*w(EjxNX z-$`ZZ=dfE$V)<|IWWK~*TAs>JgBF7UhFJ$&m!pJ<^mTQ$-X}(@x6e1gyR=Bv8RxwM zwOHW}Pn$Ilt5D{Xs!C z!iTc|EmutL$^tHzfsgJ~X0o&U1QySb`gP%IU!%J0dq%jBxx4W{o?u_YE=X?s=28B@ z(@F<8V>(E6&=P#utFE_DR|ZAsct&bs^e!66$ZH)wl{4 zpPQ6=^!6hhUhn3z!>cHWuj0Y0*fK{^9j)FOAe9A6i0xDk zO6CB_nQ-N(GyH?UL%pA7TYR>x{*tv>R69MKt6(4?r$?8+zjtpYupL`S)RBEUYzlU0 z+4l$`9NzB6hn38KE=^SGgJD=E8G&QruLt^owRjDTh!kZmy{xrE>czlNMJGMcZ-TcoH!#Eauxd9~ zyctF>f@SE|RY;X2R_=QPY;tqc?C#$UR>`I}g2Ljjo(kDdYarMNh_6~ltbv;nScdS6 zlir$@UlenWnY&Ym>rFvBEPsazKCH>j&3(#QM|+unlyW-lqc?++GT`tpBYSoEu5fL* z2{_Z-kr@A@b2vcC17VB<#R+ib!+NM0LcAw;ul`PZ9gtpC2w67YNMX9&$;2!#&^&j{ z%=9@PmGZ-I>9~z(hG^AKQmPn6FNFeg4)FS6b?9X!ia@X=i?`=p*i5r%ODy+N;GKBi1BcN2H> zqCcZlYos_LJWsjy@zLYfsd9>mUDO+04ZYJ<5@Pkp1-4B~aSDUx;}uy%aZmxErhL}d z1kV2L+}%+&nTkkCuGo= z7hMP@Ol}bGwO!YIrEse~*T(qRDIuVw%l_~8nzHJk?yxyT@q|B`ztjGWf0eH<4?lMkC+nhpF6jN5g+A!Mq(=Q>m{NDRoXTqWED|%{0ho)2CVAiHxYDhgPQgY+{UmfQ0Ser z>#A^YIQCwtBfOV9=6F48xoDl{+94f(#1f~p#Jtpj>NDVyu^PH1>SvFe0#(35ho6>I zu~`R0&JnBu69}ye0a!x3$Oq&2;A_%u%DD|S7)h+NJ_m#WX%qHW72)Nf3FX6%bDnF> zT3dMxY$b?r#w(YG)Ia94X%h3CH*fHb`1i|0mKZ&^C~ESmf7vAyU|+ma|7f1rRU}*^ zxZrwW6MEGAk%k1Rx*48-<-;T}9^U8bRhgcdbS`!gQbh90DFeVC$3v?l;)A#$10C0-avb;zwri=o78A7aPspQAVH7=WPk>a1+J|R zH68;{_JL}DCO*Mpm6g?rk=%e<@NJj4-P}hEh!P86iF&Cz=!(6L_)+RYSYaFqiXmDL zbU`T`o%SxPB~&@~TN!|L+-0rFr{4!eL?W+cc0U!$J3YyMZ!`4fr2LJmC;ZUg#9wxi z{w}l*B=bNU`B;FGndI~wD8%aO8=oF%yauYuQ6g9SF2pF!T9<)^?d??4W3^)RC1GHx z%4Ls5hYuM+$Jo3#xZ}HUN*0{Nu{Jt$H{MzOJ6XMTYvin(3;%jateTsWO74|M_1UF3 z90@^n=TfIeav=xImCK%MK_^X-?l%_}Gx(vN8=820*fUODpfEkr@@A3=X4-1d)N@gPfq(RvVeNu02id|3pp6fv;MIa5`T-*fSetr404%P%77M#dMQF0^bu#N|w zCdt*>+QZkb4=f6|JzhEY<~A74eo=-EMi;DI27zEMvKikkqF?IzO4zTcnW^+^{bt)M{i zsMrDbQ+u<=Ox#$MQUI~v>Ofa&fjkupi|3iuE7jQHIvr|KmRm&ikAL+a)tY@URoPqW z_PIO{APdFvS;cfD-$4|Ip7uS+1_~F4g4;ECD~jX^;65XX)05Q>GCw9rBg=#4xMjhy z8uUDnxkS-&21Z?U2FSI11X~x2f2IZgdo7AKtHxD8F6D*xq9`R5)FE`e`X--INzC@* zP+_}P8bkDpS{KEAu87q^W<6%yxZ5uWyHz! z+y*5*g&QLVW@%iQA?k-?132NRU%Pu0s>>7SAATdg{lH_jQtUSV`i-`P8bD2JJ_^vn zgNuQV@wqkB7u{*kq)vo%E@OS5(j2j6HCu$eINnKf?#s0fH`LT5a2a|Losd8j*7h)i zd$*Rlq!z%2UlK%g1TzE_J<%Qe_m~R;s@jVbKP?N*+iG%q+33H_^9@1-`gct2nvd6d z*5B^VB=K3kyHmL1tT9`Xg?5Pkh5s$p0UkV2yeP^ETED@9)ZQf8#gW$r6;o}jwmo-B zb|(NT=-oT(g!5~YRJRL9r7CK=3bzl4uPUm-&q1H8nzo(B()Rnc&;8&hPuThSpZbY< zaPo+-2#1oZPi9V~@<6tLR#(srTS^N0$)U?(u)l)IaUP)`ep99Ayo?GkX(^fSXI-RD zR~`c62O~ffGYcyPC-DZZKsu%G`F=^bm8RK|UsgKs^`mi;Gnf45vR zWAJbBsR|f&a=_Ru)(P$1XJ2|5ZpM(E7(T!CeS63tUxC54#XmA{x{HYwdwFS8X{We3 z+md@(%n} z0NGR<=h)de&Ly-ec!92EUn3p%Cl}iAxmE{rBp+mSGVtZObO@hZqx+B2?^@d0x}EZ4 z?O&q|<_|nycFq%Xz>s^=w$)DEr^jFKM4X?w+BA88*&ecO3!xz-zlqG^FJ( zLeN~0k0E58$CVxaH{c6D{zQh0HM_d@8LX`Y^)gyP_i02NUl32WFPWHaVSU_5QauWv z%5BYkKWNk8f59Dfd8oKQE20fO)kW%uDKsbN#RwCoE!DodG-{=6T(+%R?JW|2xS@~r zSrKTI;^xC1AY%Z&h+B>a>mj}yhmX38E+a0EZ{nj1NOtG6SIT?#IOL>Kx!4H*?7E%? zKXE*8r6v=Fc!Z?(P&f)wJvoVc9~dai@^qoI%w0}!Awpqc%W-oFImHfN5QHR;w;V5C zaQ2E7U-r@e{;bF%n0|80*c0ph_a=|1-P0X%5?OeD=RAQr5qc?HH}rU0}wCN!$ytS>C$w-L$gMyxrZb429Fh^ zJI_82;c8;XRz`peN~`^6zfspOn;Y`yn0RRvtH&Wm{Hql45gj? zwG@zH=RU|sBeOP%(?RZtLX!VHGj&(;{<`nvrt>40FEz1Duf%=NY4_wPvM5cu#A(@E zRDhAL(zf>nNv@ByM4~I5Z&c?zxjGSsRacpwi75#bkW}XBMozK2Ep7iKh7=Bx-w(xa zO-4rI5h&~*nG0JpY61=beDZ1ldTaY;;=jel+ieZW_5TI-RZO0ZRJG#OLAGWjP==>I zMizTtlGbFMrHONbM>j%C5fHY}}pr{{4vu1xcR~;5q+`cdg=8IZVN*`NnbhLAD6OK@SZ2ZK1k3m8ths zl{i(>8c&%f}%<7$Gfk;ZmFK}s2No&Yy;)8rzS zVnh&_!uM7U4lSxZES90u{go{9~;C~ovNB&r?@bMySZnE&>qK$y{wt@ zPSDA%q7<9SP=#`Dn+?UOq&+gxb)*Y-NbhnDpSt2dh}S_Lg?#k>bK$Iz#|CJ687-{6 zjw*8Z_Kti0R<>jM@Z#@JI0pD_TQ0IgL_U35Q}h&9+O(sFS8uG|^T_z8JMzJwaQ}_p zIbcxyGp2)k7K&Y5-i{kMQ10yuk7v9CweSD}ZFYBf&wl1rnL#s6B3ml7)0K1kh~qD9 zcTSJ}GIGVTV0DlxI1)WqVDtrUuAJIwFIxgbr(|#6fAYS8od?4H(aLf9WS-N$YKbFS zikgxV-5l`GX}&!?QE6xca?5>^vTZ&jX(tO+_TJ+7NDhXNZ*4dKX)rTdV(wY0yc;Sv~my!QgQ)rm~ zi_w9Hdu;g;KbNA29p}Z4UXT7hH+L{0xR7_j7jin>PIy7Z4J7-xTjlq9L<*CJeYTY! z(1cnXDS^?`*6-W?|3;QGOkm@8+kTr^)C9M2pE|RkT1m}CrXOSgcAOBOJ@`W=IoL(J zrGu=dg&z1lo-|$%$#QO0P^>=gdpDy6mFj0A38FA;0T(?LeYwk%x^)_7tz3g(Vn|)N zZ~a#mfq4(BVco|PWCLW^$ydbPAmE|PZU)d`_YWVihCIB$t0WKXv{II$E(_A?Pt}Gv zv_QZ@Jq~%(2Jx0@VI%&l{yfS1@JlmhO}G z%LbmvEvz+j^WA$7%a!toEr(sF1X76N6MujNWlpqqI_UM;R+-nmfIK0~r5~(ge{gM! zFPM*b)mwG|ne>3d9mazTomY2(wKqYo`)uSGwnvFC7SP~+S~(e9bXZcv;SXnC!==1t z5;D0z-+IBR`EHIk9`)-Tg)r9wn0x!v%XD%;=Ijb>e%H~kAlM|Z&WF!{k6?sVfhYze z*5?{f3;56N(W-O0$K?LhMDkCoNzn60+XUXuboEQfXO=YbG_1lMW< z_utj=EKutZkrw+ji5l?M=81P`n8o0aK!HaBXfolCP)wQsw}CwAkqQlxF!6A?=71H6 zu3e%K^PN6^taIHn^b5TXjfp_f$L%ZtF}K4HOrzL)S6*kjIxwZHdj_@Wa0ex8H9?Q+vFKnR>9rF5@-8KzItc`AN{9B4w#4W`Ev6QfUcIttb0Pa1cE+un zEzn&$g?cnu3<(PhOHWV7)X%n7(c&bmbdXk7a+(nmcr7^tX0thn=P+zl1i#(7G^z4s z&c!#@yf@FKeMm#<9>Kr%Orh9g7ez~BVQZigXyyWVaUIDoxX^piKPOg!Dtsdk)|l!V zR?3SeQN=A3JIymrSV=a3wE7G$L|`WCL!}EpnUR!gCL`yE?|QbtEKWOyt6r70cbHFt zxuBH}W}CCu=TG_A+j}N6{zW*mr*S8UELPz4AJ9Eq9?(IU|QT-ecQgiPI&4*51A5&i6 z3lIEPBdNFaS~!95^#uDPc8*u#RwMwp3a5bFZw`p0>p+b{TcgJ`t%p^k=17UgmZzYs zECW9AjfJT;g{dkZ&Y78+st0>cO)b;MhTu85PgWC-RPS&O&kw}~CB>4RTwT-^F*Rrd ztGl^W+z`#LdpV5BLe(zgL` zYHnVNc);a3+Z>zM=xN!21N{mqFX~+9;0)FCJK&#C2cr&j(&S`NO}RMy1Bjvw-*mf1 zDxFD1AcAEQRkEZ-lWB7ZHaRRqc3&@CNXZ8{(q=6!wSYxNhd2A0zy^bdc=a+KlENyB04>v3$+1Im--six@-^bkH|( z$;|86<=j9*Hp<$C@#88EsV^UCb7K{BcMr=NB$?fk0E( zy74$C#J0KhoduAYnMD;L4NapN4Rqv^z9sS~pT?-1==Zl(Sr7%!Lh~4({#o@Aw>G3Q z6@dI(O{H512eWQ5xXkVr7>pqj^BO-Fs0)Gvk24zPsA9Z995{K03vcen zKbJpze6!4$hQ8k3D_#h(jB6?OX1nDKxp z|9Zz5oP?I|HAquwN#svcOwT`RiqbuQv@jT6pRNN`i}Rm71cmZkF0xR859QEe@|vw# zSM1qE50tmO)G>*LwF#Ii#j=Hp_=~s&zAm$*0}Y2g+L;>AjBhJsSb`}=+Z?~ zU1ND@F-gs~q}pgU)iM*FhSy=ZXv;ILCDbcPD-4M|7{JzXv8ps|-v z`1r<^Lj^2S@<5pW-cg&Pv+FEKxM3o@&UL{^g5EmV(DCD-F8S>k~&~F?h6Cfc6owzC&#^`@SE-)AxFGU`ggH9uC zbH0M3?}$Li8F3Ob+-Tlw(aHom6J+LRr=E+!wV&)VmIi6njMkg^-3tBmriMcP9ayy7 zkzK;0TD+KNCBT-9%)v+EaZ(@A~9-IAWd#G0^ z^AslY9ejdR9N}=td$l>N4LIJod6MdG*Q499Ap$umy+7*zwv0zb6HeQ z4l2z*vkck)sR6a4codagWLWd_y%@DSm&5#z%3wW!2|lTVKu#tu&!#X(R~tWB z6c;acFT)P(nT zVS^ldU8?Keu3En<&hVT`Nmi|ebm>63_^^I|nr_I+Yv^LsKgz>|idk zfY3apiU7?%`V)z^V`hhci|L#f;8oW}re2FxIx~1?0)JaB%!m}EujJm*{2-4HTk$cA8=ot2mPk z^(tphX^OFQ`y|4!;ZN0PKj%othXH5GI4fc2LIXVCFuL8I`%O|38^gFw9es z-T1_)S40_Tp3C?Q*d&DxI!g_@Fhg$*by}9>Ms`Kp@nLU+cszs)0`t-ahEbiWx$x5|^q z909lkCuGD2-9fRi{=L*qR&}wGg(7a}TBYNOYnD12qEZq>V{|xu3anY)riEDb@MF z#a&+fk1(s+a|kkLFqYLJ^AHrbFA#`!hE`Yd7ct<|Erf#tc!t&)+-PA^Axx=?6oOJB z81^^$W)zEuYA~1--}9VP?HyV6S=wZ6&3nU(+5>l8aL6PLKPfFa+SUww$b~_JBp;^- z1OasL1Veq*p){p0gUh^oXTy)*W@-BLjkjD>%(8P?cCCzW!1q1lRT?&5GcLixF`FF>N4IdZZmgtG2%Rw9bDZ zId3~gK*Pe#>Kk|dJW9@Mq}Pf#OSwl^3yQF!K2$YW54jxCbyFAGV^CBYM7OW12X`3L zbk8ti0M1_1U1%K=U~opuuMbE|Ui*=Y;5Du5kAuMr5%&XIY77|Oo17=SIN00E^cwyc zK;r*soU~rR44stZA#H0O;61Q?X>mSFPStfOaRVGPjc|x%MJXngDqocZNxQ4Wz^X3p z+5$t$r?|Ix3kZr_ULPE3w{{Yz;41s9d3TeKD(C&epek~eTYkz8y{>+9>2-yB2T-WiweZV$hDI9|ieg2MVF0XD6{RMrii z-K&x=3t-4*b1wKw9cqDWBphZ%Di#)0t7@#@Mqo4mdx%BnudK)Z;f^4EkEui;1Pdkr z=ixSNkCF>wDRZ!jKhs?L3F?qLSRlUIC%U+`b-6P!d1!sMzas9wcK2|7mPs+>sIy^f zTK4eN-aQ)~HX3@d_dBs7-4{@Th(RzLgbd&$Bzw7IEgCKWMsd>;bPy>dI_R&9S>)We)#7B#lx%i9ALceF);sV_i-a+s)`2!0p>Dr$@8@AN5RlFf?{fP_UII0 z?&0>cHgLPG-si>9Q`dRY!2nc&Zl7I5NP0)R8^WCF$lU@kj?haPUH3t#UC4AktK8FEKj zB#FPJ7pf{vv~b4Q5@i79LJ4N1x0+!yX^BSIsgNT^%LoH~eKlhz#@5z=T=W-rYUq&W z?LY8${zr79C0}l|$v+?iPaL*dM$hAhS=qdq%!693oPl|Mq=Mg5sEc3H-f$iDA+8bo18 zvX*2kvSdxxlFB-U@MKFwA;uoEWl14pEJ?|h$Uc;P8Cho3;JwE4zJI_wzs~)h@44T5 z&bjBF^Eu}-@oc?WtN~;=UWvVQ?PtYtG@ni31T+jrUKX;+U14?1uFV^ceGO%oeFm5K zk~C-tkxML0)!siBS6r&SxxW6x0`+sx1wOx7ySOP1wUUt*aM{*CuWzrJ1OkJlK&Hb% zOP+t_54tbOoL-pwz6UTeop{v{wISL)JPu+4P=T`n!3(#m{a*|n7=ZTCtg1i66QUFc z8&6*ofeP2oysx#4w(QTS*c?Ukmax6XUc@Bs3AfK65oR9(3_-4lFe0*|UB#bZ@3GT2 z`~qIZUA=1ndoZnN$+nfY77-0DMD5E69ncXdFYpfBR%zO~amy5+?$w+UJuI=+CL@lu zs_QP*I#?s_+tdW{cRvfA$*ufoCrq z(WJej%yzgtSo|>YZBr9iKC{Re{Nru7_S2_Nr(I3Ee&gEOXnHbKYMQ=McKEe2wFGVt zm!J3alPUCP?bh*@-hVT|wq+_>Kj<9m_ zSZ=uDz*lkAm+w-o^Xq|(ut(M4?`ce5C*K%@LuSO$3UpapYbX{9(OGfzSDhr}odFs^ z5*#;o28%BJnpDi><5js+a6!@DdrI*B+Bjhd`B&1BS#r&wF&_yoq8DaxkIsZY2>zj} zw6BB_$2!dKjMU!N4iwPpEYu8^K&=zqDci#i4FQXY?lc9tg1!0dP@b5b^^0TH_SJTA zoNEJtzlx!Dgdq?6E28ZoJR6>;)Tku?xgrl;CoSczb;HE5-JHLwy!+*&woam7J-1Qxo|A;OWUD^{ zpaL8hWM+*CY<5 zjs3uh#M2rfFq->tHDjq#9tHCpe)YInu0?lqZSP$o++{-a!OlwM!uH&&iUZyu-&Tc&;no(2A#dKGI?Sw}<@E6a=Ha zIlM##IQJe1uD?_ZZJ#cNd?Va(g(8S1&mMy$(N6_T{>6lkF+vH``#)Rm{tdJ!wO}kX zN{cEkmU^0!!d=&4^v6>K!lJFM?Pb%LHgA9ejTva%~WLerok|p~8#T1mG@b3~f!dgtz4F)US_3 zoUjY_5coO>9fDf8c1Z4StzDsh_&d=8Cp4LGyo>sFFi2Td+fL|2_aFUqzGKVk`Ea5* zK-1JRF!Jdo4yqtYie$OCMft**85^}Yl}No9(2K3D`y;z z?PpfPef&tz$hb4yQDT-0E1r~z+-}tS7t!EHzzj%Ic0nUBDp`1PCS0$h(`o9{Rq|h} zGj`LMe>&pw{CoI7dcJxR8)=O48TxAz`(_Vx9q|E}%ekHm|CQW-ZaQ1;H5U<=KeYi5 z1+K#&UUqnr`j>4kJfXw3UQAtLJD2n@I4EzuOoMh$ zetF@kB}l@Bu5J7;)!1U<-5a{z8n)9E?O~$s0{cp)ngF+PdiP!eM%;1fmB_+bH_`N+ zRLAn5soIjO3T=yWRu#3QbaFyp@DA&Q1Jg{k*|JB>L&%MEi-+dmNCI?m<^>DRC`0>8 zc`%2^xbO2h1aY>~UHLbsLfpL8>tirI z+EpX1gDQuNVDVi0Pl}+?O`C~Bq=tru>5`=(1tqaoWy%lAL7-Oi|Bg5FiALGr& zRm+$>ET8}&Jat={1bTuT&OAF4G757no54IpdQ`$G4>l0jw|HM&BcJYmCKn@>{a_{; zqgj84($4rylPeNSJUD@pN`7|mhWc>sF>NS=)8N>3V_Z`4S8NBC#Qv$eGu$3P?24eN zOt@d4)46vpoy6b|?nBBi2vQDxXdrr{{<^mr$s6N2?;mOBTN*I9h3*#SEmzTm#z*0Z zzA)kWt9fv$DCH`cz%q;)X}mOqrInt;oBHlE9KzsaT@T96Zfy$9_unBhR1h3qnTbSs zkGWkXpI#cSWD5@uH-2XyTw+t5hY@@nv1+vNt&n-0c)$rcTWv7(u+<27&$jk^e%?lG6Gwk(Y) zJO+U1GB?vWc!+XaeSY+h@dM26CSi6qe<7&J?6)N_ zbqR6Pnuk9{>XM#G0FozkuWpD`EfcwWcYaBWvc5oIqYC4BM+3$uZ7m_YQVK0e@kSBF z>HO!;ttj<=&R&}TlASQulj%%}Vmw3oyUw=v4&2WOfXBF>hAC#(2nIAtSt3XCbK+%@ zfc^k_;kh}LWT2aipESFkcknE5RbELFQhYf_KSUSC^s_f<{`PSFm%qyiHBm=KnT3|5 zfH9Ib!wRP<{UDl=KZ_R^h-qlh>gWiTRFJ5* zcR6eMsqEZpRwcy$_X*naO5h`)5U#eCMQ`%5{yrr;uThfA{a83v_jvhC#c`9w^na5s z*O}0g|74st%2NMt+7F_P&;!JDr+kQ)0y;DE-5e}S^S{5Cq72ZZME3%B2nQ+U3TS3f z>BAU<*9O5VU;*w53klb9qS%w@=y!yQfSx@?46^g5zz!hyY-#FnFLpq+3w2E&o)Muv zmY$4Oatp)o^f>7C=XF@#mzUMxwx4`$ge_aD*CTlSrEFpj-A%lmUnXm8Vj{k)-`9C@ zczHUnwl)V|hUluN<565Ge6PUKS9Oq2ozrtRAB5k}1*rUu9qyo=g|hcoWn>m(9~WchJZl^!k&{j#PlA3Kj|HpANS~G3-!4SeEi87Q)+$5TblKjstw#}jg{U)3 zY=c0ypf<=XG2YP+AjjXzciWc~*YOiYl`$JUd4t-PW$ zGc!wBU8`s!3uGfIDniQO=481e+8ex3EC<@tlTUqjP+8s%$sc-t%4#C_+qVF{8rg_l zvL#~y(fY_D%qB~l(w?Nj%K8_FE7RUvLZY@kFPE)Zc-hG|g^o|Jmiy=dHtderFu7D+ z5(2sU4f!-914GhhX`f37Caji+sT}OZx^O-GVmo93d87>*sDQ)6$@CJ)b%@97qGaad z2XC^D6I(|`ypxNt>D7E6x+WDnAC()btwT zGa&Q|9W9T^lW?7%;bbPm*UDXHMQkss5GSmb!dYL zC#z&5wjrtJgIyI9V^x6@MgbmE7w*Lj4E*Ew_mU_G+(gF&e?=T3=Bec8h0Qfo{DdHu ze~F!!c@x}k59urpxB}@{P@%c+BPA-`#TgdHc0Ug9AW!A~YnuophlaPJD487ffF<;; z()Wrt9BC@gH z7ZhT+_;~-H?r!?8wbGFO4g{cY4h)zpdp*z&dHYbCLZMjRe~fpqr7liZ$_evlI4e)S zcR|}slHnAnr0MgDQlLzuM;vCkKo-O-8RdcIS(c^ef&vVW6ThG4^@30=4b?zw;_({_ z5dLqf$h9`Yt6dXsE?J9_iry>a1fUnDzr=;@8uq%zqz`Kj31d7WKM!aF!n zIbaC1LbcJ0n(3R0(X*{~STnoj`Ywz;{BXZ_Qh@hN!*O%-hUkNJbMn;8k5~EBja^62 zxR`Fu+E#)%*ei(xUX$kgm^lqZRmd+BaFG;Q0p0*6^q+36nOxd%S*q>`zqtd&F+lEatr-Xc;3w#~1L$;p zwJXuZzBwF6oCl4mz{AO$&4scNNsAN7US{OGRHKdQ`u8lGt|}MK4N`Bp!@*X*GtY1| zmfsc{Lg&~pDUds~PoX*l`sYxvx_myIVnFQ@i`!u z0vshh`zrHR5y*#>uPl9!g$iCWkdRG9gH%P(8PSbL(rcS)oHIZgLs;PKm92GIM Z5qgo~_(`|x@pTCJ8D6-gSE1{O`5#B3J6`|* literal 0 HcmV?d00001 diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..a0586a5 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(ta_running 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 "ta_running") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + 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() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# 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_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_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..bf6d21a --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,20 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + CloudFirestorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("CloudFirestorePluginCApi")); + FirebaseAuthPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); +} 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..b83b40a --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,26 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + cloud_firestore + firebase_auth + firebase_core +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +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..4855fa7 --- /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", "com.example" "\0" + VALUE "FileDescription", "ta_running" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "ta_running" "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "ta_running.exe" "\0" + VALUE "ProductName", "ta_running" "\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..b6eb79c --- /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"ta_running", 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..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..153653e --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + 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_

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 Z>*v}zlJgH&0Z(vX@O1TaS?83{1OWC=dJX^p literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml new file mode 100644 index 0000000..5fef228 --- /dev/null +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..dbc9ea9 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/android/app/src/main/res/values-v31/styles.xml b/android/app/src/main/res/values-v31/styles.xml new file mode 100644 index 0000000..d0a68e9 --- /dev/null +++ b/android/app/src/main/res/values-v31/styles.xml @@ -0,0 +1,19 @@ + + + + + + + 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..0d1fa8f --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + 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.kts b/android/build.gradle.kts new file mode 100644 index 0000000..3cd4270 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,29 @@ +plugins { + // ... + + // Add the dependency for the Google services Gradle plugin + id("com.google.gms.google-services") version "4.3.15" apply false + +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -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..afa1e8e --- /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.10.2-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..9e2d35c --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + 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.7.0" apply false + // START: FlutterFire Configuration + id("com.google.gms.google-services") version("4.3.15") apply false + // END: FlutterFire Configuration + id("org.jetbrains.kotlin.android") version "1.8.22" apply false +} + +include(":app") diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..9a5a800 --- /dev/null +++ b/firebase.json @@ -0,0 +1 @@ +{"flutter":{"platforms":{"android":{"default":{"projectId":"ta-running","appId":"1:888886225940:android:c49c02701a3ce79804cb01","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"ta-running","configurations":{"android":"1:888886225940:android:c49c02701a3ce79804cb01"}}}}}} \ No newline at end of file diff --git a/images/run.png b/images/run.png new file mode 100644 index 0000000000000000000000000000000000000000..18ef13d96da36217c1529654da3be93993d261d6 GIT binary patch literal 37993 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 AhX4Qo literal 0 HcmV?d00001 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..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..9031830 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 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 */; }; +/* 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 */ + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; + 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + 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 */, + ); + 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 = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + 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 = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + 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"; + }; + 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"; + }; +/* 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)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning; + 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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.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; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning.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)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning; + 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)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.taRunning; + 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..15cada4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + 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..ba3cc489d42aea570524a9f3798ab36caefcd6fd GIT binary patch literal 119853 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∋1a{G(TjVkeCg#tp-ExXn=_?Jna6DkVc}MOY#_V{kpDAT zE^0XLLdl?zd0q<0;o*JhY&+9t`{N=hfBwFQCN_~cBs8sxJ1Up8*1@rSPv?Z}$Jqh# zIdIF2Q`4iL0AO+X?j4{CcFVb_p*c7Gd-syg;IY!@H6$AwotIiA*Jlz;lF7^^chR*r z5=Uf^Jpe`vS{3|ZW+>%clkb#)x$#4E==bp`okTboF7|sK2Dfb5l^Wvgj8(pnt{g~u zBX{!TPJl5R$e4zX`LIo}(bLnn58nE)gGe+nB!C*z+Ji;0(Hd`doeY)j>jU0RmOYZ{ zdl;ChvvZgGgcaP8K_M{n^JmV#4i459*M{ERW@E74BqT`6kx=*BFz~qf0IhnL)7SH4 zL8u-4_25A$>Mf)^%!N8pfeJnGJ3`0Q#e2vek;tK<1-G=ZNpUGM$z}wKbRA;Y_|4gD@|Bs zOreJwe2%}-BuRd*uyA+(l>;ZOXOLP_MQ{~P4iXSj2nMg(Vgq@2R#sMB#l(RoqXYAb zv0P=C{J^MQya#c+`F6>GI)ZZ8Pnbie-i3vlXNorwLbvqrT9?7$Q;QIM) zP6I9qbwDfI*Y~u$`&ncp6W;iw-_fu*1hfj&%eHc?GY9f z6wHcy&;@c=u(YEGAfNO^#J&*-TR@?3+xSjuDjcVShiCvB{)a3c=5!B1lq9p5VR-su10@mbybn3$oW{P76WhlV-4+b=4R&{;HlAT5pusEqTtMVn z-!(9ps{d%9^(GfE9Sk^)N|DDc&t7i@Wp5{n)PhUDZBpkR4IsA#~OU2wCPaDOW1m;W|xEvIsSzUjdx(5pmdQlMu^Mns#V z0|H1&b+w;GMMbaHlaBUQylP)iN*BCd5bNTw3Cn*>W5mbKs$ITyqzBaqP<6 z{@uL~(Cr5go&Nl!P((yG7FvwDy=Y#d6iq zh^?bR3-X_XO)t5Y?9-CA)KLT{N58<(_qO>#*R1OhMo1+}H;dUeV`yv)G>ni@gX&_Y zpD)um&-^?wJu^48GFDybyPB>b)5UZ8ag@D8Pl3K!$xS>np zVhn-aOVl`G&FHUyYZ*vbiMzGmhkX$y+2wjrd<)7EBfkVv1JaxpZA!Nm1)GcLB%%f@ z!D-s}YGa?6fisEd&B4iGYH5im3=Xmf_Tpn|f!Fc(p^EL@o-A5Qo)p|?>rGG%p#Sh? zSS;J!goLD)x@D>fdN7!)Yl-el_`@r1^crL{Y7=Fju#u>AL7q?nwsq1|bdxb23J+(X z4Nh=A>`18ep92VJcFhGBoO%@B_Q9PUq>|EzI8~+dpXWoX^+;vMvG4i*7~CC&*Lr|m zi+Q4eY1{&aquhy7?_`9CJk6e&?WF<2 z(!l2v&`)pHH%GkB^Py0yFYl=wm~WUR+atP%3RuoJw@>b7 zcqFoh-e7$-tVcU&%Vuh3_S>Dzf2HO{FtgKCOK+3DC&{WO83g3AvIH+$Uaw6`;vP^T zw=IhwJ9bR-44Ph|N13_mbvy?4#dF^$UCFDX#(#5G3smG;t-{N#l?kHueW!0NsO8f#RXB|*?`yf z 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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..5877f15393ab61481ab19d7a81601672726d32d9 GIT binary patch literal 1271 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 Ze*yPK^b>}NLxTVS002ovPDHLkV1iKhEDHbt 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..0602e39c2a21d2a7a09baca41d8b8b64844c0fb1 GIT binary patch literal 1998 zcmV;<2Qm1GP)a~5W%V~tsQ}iBAY^4R2a3QwlGMGfLNt~s2oaJELy=(h+9R`MzJ6r zQDIo>f(RHPpdeX?mj(}{I5Kml_nepW^6vfK@7??Tzx#bO{O_g>U=aYyOZ)=>t^s(i z>7f0Gm)ZmH25=le>jZu~8lC-vj-I9J4@HX(5X1|oLN<)2Jxx6d>Ck!rrzQjC7#r#c zqe5n}wj~PvluFE=Am+A0Hr&ZIooh_hVuH%h{S7?EWD+-n``3<^NQZi70{Hb+P$h#- zrGy8*i4zrVZ(ghGo(`a0BSxl>OEx~bU4Bf@>@QkcOg&JUED)6O)qc%n7E{z(9RT37 ziJ)%-*bd+rfV}p51Nlb^Z-?>p7-Y>XHJ}C~F%|&$lEKGLT}>6KRxGxgg)SQejRsK1 z=kh?0xARV~sCi^cipD{i4C;5Mzgup!W6xF3>MIYqBhPk6eOki-&<5bgG4F6QG2oRs z+0S5|x_G5lu28s>A8Mh)a+|Bi1LzD8+S=owbSjl{r&nbDyG(~AihI`^x{XSYEFm0R zic`9JhOz+oYLwK?($u)@$3qz`bL;8&mVeqYU`u?JT%qtj*WLM!t&5}YTXxof4)eu; zruMt2IDDBuQt7ncK@|$6Tg;Bj8CiLafn7aA{0XFPX>Df8KbM`(G`Fz?C=~duSV}&h z7qBJ%%m}#FW8R;!a-j>L$9Xa6g77-h4j0@7ARP-O=j&YnHvoh;we)QQ(60e}drw60 z))@a)Ogc{w1A{|2FRaCi#jfCSIWV2V{!_=}{yCVW(P&hn;`6OeZ`^9`1z+&%!@hpW zTN*KQEKQ9o{k=U{D&Wv_c(0F?U%Fo381lFGXI;5kgOl+~kazYDArkikO66~tdd-UZ z#L!HFMyFG!&a~BshpQQS`-V*_&fK*c$+%}sOknD!aMtVA(^VO&fkC7abBa$Kk9lvl zx3Ru1eEw>M*t}El^;`s|L<-QgA(hJTRerG&z{zpYXM?ikD+4Om05ByNJbt&WxP+rL@D6ez`Pz>PvF}_H52MgPC^&MbnQxWWG4}EqkHYV@; z89*rj0f0^hUHig;-CJkS>DpKqyUX!q9chMoeGZet2C#R6m`~juED~}e77+wPiq=lm z+`&X&7iw{y1@MSL*FImCoj$|E#TiPa65CV0nmrLT-NAl#^v%Wwa*zkv5+?$VlqxZF zsRI~n@|&obX|Atw)V1~?%=ZJm6N2-C-v0h4r3d#~lR(mTq-ElMXV+0p=okLJe$h!u z8Q8u(ZgD~3kxu~Z*NE9d5R`#?)BXMYqH?mbAd|@v9v*|DlKf=3Ty_({`Oyq*ot7nt z9yAd%9Nl4K{R1}q-3tfS&cw8-Y^+KWNDZf$(zqZ9Bdh7Kx3N+I*w)sD&Q|!~+(KqYE*qsT-QxgeoE(h@$S))LIwLV_7L6_j5Ac)0ctX;nz zjg5^kHZq3YbPH4$B9cpCWNwQ!@dZc@a~&jw zLvGmo8liGQP-MasE{DRu^izpCL&fO)j6y>^y}Zg6y1Kq`K;B`<9`jr3Ebp9c$xup)mU!kxVMdKe*K=+CTOHQIz@#_V0}2e36rPy5mtd*^rZj z|GY(Rkt}t49cQD^=HcOC`znEel={Q2t}e$VOWkv9%uHssp0bR>N2kW!MCK=^ojz{ACv>*^bH`caRF^b03Y{WvJp>9?rwtI0FazwUQL zc!kIAFU#0NJP`N8JupJt+5MQzq)r`|Dwj#=M~|IM^m=DLVP`oF7YcLP&L0F+_KN!} zNu`rXsMZu9p9ngU9jLBr=r?hHf44*`eIk>~g8|fQ#3WVJ2#4Pb+njPTJ52>TUDpnE=;1l|CPxV3Vub6F!nA5-1%`|U{1H&nA`_E#EU3PC&b+d!oZNfE#ybBfXy4PP1M@4Z g${hfl*4(N74FYf6ezHMa)&Kwi07*qoM6N<$f;D)@nE(I) 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..26e3e48e608abbab6bb35b3e87a22c964d3834fc GIT binary patch literal 4722 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 AEdT%j 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..e94fd89866f784f1736c4e98c76205d3c60d8aac GIT binary patch literal 7511 zcmV-d9jM}oP)1#G_o#watAYdT-g^(6b!$~XL{LTsNj~0_b3+mWB#7