From ed8c7eacba0877ed42c6fe09bf1fede7b68c0d0d Mon Sep 17 00:00:00 2001 From: Jaybe Date: Fri, 1 Aug 2025 16:45:26 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 113 ++ backend/controllers/subscriptionController.js | 138 +++ backend/routes/subscriptionRoutes.js | 3 + docs/deployment_checklist.md | 127 ++ docs/subscription_qa_checklist.md | 133 +++ docs/subscription_requirements_flow.md | 204 ++++ mobile/.gitignore | 45 + mobile/.metadata | 45 + mobile/README.md | 16 + mobile/analysis_options.yaml | 28 + mobile/android/.gitignore | 14 + mobile/android/app/build.gradle.kts | 44 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 + .../kotlin/com/example/mobile/MainActivity.kt | 5 + .../drawable-hdpi/ic_launcher_foreground.png | Bin 0 -> 33007 bytes .../drawable-mdpi/ic_launcher_foreground.png | Bin 0 -> 17939 bytes .../res/drawable-v21/launch_background.xml | 12 + .../drawable-xhdpi/ic_launcher_foreground.png | Bin 0 -> 50055 bytes .../ic_launcher_foreground.png | Bin 0 -> 89967 bytes .../ic_launcher_foreground.png | Bin 0 -> 134341 bytes .../main/res/drawable/launch_background.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 9420 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 5150 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 14874 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 27516 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 41679 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/colors.xml | 4 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + mobile/android/build.gradle.kts | 21 + mobile/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + mobile/android/settings.gradle.kts | 25 + mobile/assets/icons/app_icon.png | Bin 0 -> 14039 bytes mobile/assets/images/logo.png | Bin 0 -> 103697 bytes mobile/devtools_options.yaml | 3 + mobile/docs/subscription_integration.md | 160 +++ mobile/ios/.gitignore | 34 + mobile/ios/Flutter/AppFrameworkInfo.plist | 26 + mobile/ios/Flutter/Debug.xcconfig | 2 + mobile/ios/Flutter/Release.xcconfig | 2 + mobile/ios/Podfile | 43 + mobile/ios/Podfile.lock | 43 + mobile/ios/Runner.xcodeproj/project.pbxproj | 728 ++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 ++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + mobile/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 473312 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 1695 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 3961 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 7170 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 2592 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 6797 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 12722 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 3961 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 11095 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 21016 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 5421 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 15766 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 6614 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 19484 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 21016 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 38677 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 9420 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 27516 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 10272 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 30027 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 34677 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + mobile/ios/Runner/Base.lproj/Main.storyboard | 26 + mobile/ios/Runner/Info.plist | 49 + mobile/ios/Runner/Runner-Bridging-Header.h | 1 + mobile/ios/RunnerTests/RunnerTests.swift | 12 + mobile/lib/config/api_config.dart | 38 + mobile/lib/main.dart | 344 ++++++ mobile/lib/models/admin_model.dart | 265 +++++ mobile/lib/models/club_model.dart | 77 ++ mobile/lib/models/event_model.dart | 73 ++ mobile/lib/models/member_model.dart | 126 ++ mobile/lib/models/score_model.dart | 83 ++ mobile/lib/models/subscription_model.dart | 243 ++++ mobile/lib/models/user_model.dart | 45 + .../screens/admin/admin_dashboard_screen.dart | 456 ++++++++ .../screens/auth/forgot_password_screen.dart | 168 +++ mobile/lib/screens/auth/login_screen.dart | 212 ++++ mobile/lib/screens/auth/profile_screen.dart | 186 +++ mobile/lib/screens/auth/register_screen.dart | 222 ++++ .../screens/club/club_settings_screen.dart | 367 ++++++ mobile/lib/screens/club/dashboard_screen.dart | 394 +++++++ mobile/lib/screens/club/events_screen.dart | 671 +++++++++++ mobile/lib/screens/club/members_screen.dart | 1018 +++++++++++++++++ .../lib/screens/club/members_screen.dart.bak | 1006 ++++++++++++++++ .../screens/score/club_statistics_screen.dart | 501 ++++++++ .../score/member_statistics_screen.dart | 662 +++++++++++ .../lib/screens/score/score_entry_screen.dart | 378 ++++++ .../subscription_details_screen.dart | 393 +++++++ .../subscription/subscription_screen.dart | 486 ++++++++ mobile/lib/services/admin_service.dart | 358 ++++++ mobile/lib/services/api_service.dart | 133 +++ mobile/lib/services/auth_service.dart | 166 +++ mobile/lib/services/club_service.dart | 208 ++++ mobile/lib/services/event_bus.dart | 28 + mobile/lib/services/event_service.dart | 185 +++ .../lib/services/in_app_purchase_service.dart | 284 +++++ mobile/lib/services/member_service.dart | 229 ++++ mobile/lib/services/score_service.dart | 296 +++++ .../subscription_notification_service.dart | 90 ++ mobile/lib/services/subscription_service.dart | 445 +++++++ mobile/lib/utils/enum_mappings.dart | 110 ++ .../widgets/subscription_alert_widget.dart | 90 ++ mobile/linux/.gitignore | 1 + mobile/linux/CMakeLists.txt | 128 +++ mobile/linux/flutter/CMakeLists.txt | 88 ++ .../flutter/generated_plugin_registrant.cc | 15 + .../flutter/generated_plugin_registrant.h | 15 + mobile/linux/flutter/generated_plugins.cmake | 24 + mobile/linux/runner/CMakeLists.txt | 26 + mobile/linux/runner/main.cc | 6 + mobile/linux/runner/my_application.cc | 130 +++ mobile/linux/runner/my_application.h | 18 + mobile/macos/.gitignore | 7 + mobile/macos/Flutter/Flutter-Debug.xcconfig | 2 + mobile/macos/Flutter/Flutter-Release.xcconfig | 2 + .../Flutter/GeneratedPluginRegistrant.swift | 18 + mobile/macos/Podfile | 42 + mobile/macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + mobile/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 mobile/macos/Runner/Base.lproj/MainMenu.xib | 343 ++++++ mobile/macos/Runner/Configs/AppInfo.xcconfig | 14 + mobile/macos/Runner/Configs/Debug.xcconfig | 2 + mobile/macos/Runner/Configs/Release.xcconfig | 2 + mobile/macos/Runner/Configs/Warnings.xcconfig | 13 + mobile/macos/Runner/DebugProfile.entitlements | 12 + mobile/macos/Runner/Info.plist | 32 + mobile/macos/Runner/MainFlutterWindow.swift | 15 + mobile/macos/Runner/Release.entitlements | 8 + mobile/macos/RunnerTests/RunnerTests.swift | 12 + mobile/pubspec.lock | 671 +++++++++++ mobile/pubspec.yaml | 123 ++ mobile/test/widget_test.dart | 30 + mobile/web/favicon.png | Bin 0 -> 917 bytes mobile/web/icons/Icon-192.png | Bin 0 -> 5292 bytes mobile/web/icons/Icon-512.png | Bin 0 -> 8252 bytes mobile/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes mobile/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes mobile/web/index.html | 38 + mobile/web/manifest.json | 35 + mobile/windows/.gitignore | 17 + mobile/windows/CMakeLists.txt | 108 ++ mobile/windows/flutter/CMakeLists.txt | 109 ++ .../flutter/generated_plugin_registrant.cc | 14 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 24 + mobile/windows/runner/CMakeLists.txt | 40 + mobile/windows/runner/Runner.rc | 121 ++ mobile/windows/runner/flutter_window.cpp | 71 ++ mobile/windows/runner/flutter_window.h | 33 + mobile/windows/runner/main.cpp | 43 + mobile/windows/runner/resource.h | 16 + mobile/windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes mobile/windows/runner/runner.exe.manifest | 14 + mobile/windows/runner/utils.cpp | 65 ++ mobile/windows/runner/utils.h | 19 + mobile/windows/runner/win32_window.cpp | 288 +++++ mobile/windows/runner/win32_window.h | 102 ++ 191 files changed, 17491 insertions(+) create mode 100644 docs/deployment_checklist.md create mode 100644 docs/subscription_qa_checklist.md create mode 100644 docs/subscription_requirements_flow.md create mode 100644 mobile/.gitignore create mode 100644 mobile/.metadata create mode 100644 mobile/README.md create mode 100644 mobile/analysis_options.yaml create mode 100644 mobile/android/.gitignore create mode 100644 mobile/android/app/build.gradle.kts create mode 100644 mobile/android/app/src/debug/AndroidManifest.xml create mode 100644 mobile/android/app/src/main/AndroidManifest.xml create mode 100644 mobile/android/app/src/main/kotlin/com/example/mobile/MainActivity.kt create mode 100644 mobile/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png create mode 100644 mobile/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png create mode 100644 mobile/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 mobile/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png create mode 100644 mobile/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png create mode 100644 mobile/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png create mode 100644 mobile/android/app/src/main/res/drawable/launch_background.xml create mode 100644 mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 mobile/android/app/src/main/res/values-night/styles.xml create mode 100644 mobile/android/app/src/main/res/values/colors.xml create mode 100644 mobile/android/app/src/main/res/values/styles.xml create mode 100644 mobile/android/app/src/profile/AndroidManifest.xml create mode 100644 mobile/android/build.gradle.kts create mode 100644 mobile/android/gradle.properties create mode 100644 mobile/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 mobile/android/settings.gradle.kts create mode 100644 mobile/assets/icons/app_icon.png create mode 100644 mobile/assets/images/logo.png create mode 100644 mobile/devtools_options.yaml create mode 100644 mobile/docs/subscription_integration.md create mode 100644 mobile/ios/.gitignore create mode 100644 mobile/ios/Flutter/AppFrameworkInfo.plist create mode 100644 mobile/ios/Flutter/Debug.xcconfig create mode 100644 mobile/ios/Flutter/Release.xcconfig create mode 100644 mobile/ios/Podfile create mode 100644 mobile/ios/Podfile.lock create mode 100644 mobile/ios/Runner.xcodeproj/project.pbxproj create mode 100644 mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 mobile/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 mobile/ios/Runner/AppDelegate.swift create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 mobile/ios/Runner/Base.lproj/Main.storyboard create mode 100644 mobile/ios/Runner/Info.plist create mode 100644 mobile/ios/Runner/Runner-Bridging-Header.h create mode 100644 mobile/ios/RunnerTests/RunnerTests.swift create mode 100644 mobile/lib/config/api_config.dart create mode 100644 mobile/lib/main.dart create mode 100644 mobile/lib/models/admin_model.dart create mode 100644 mobile/lib/models/club_model.dart create mode 100644 mobile/lib/models/event_model.dart create mode 100644 mobile/lib/models/member_model.dart create mode 100644 mobile/lib/models/score_model.dart create mode 100644 mobile/lib/models/subscription_model.dart create mode 100644 mobile/lib/models/user_model.dart create mode 100644 mobile/lib/screens/admin/admin_dashboard_screen.dart create mode 100644 mobile/lib/screens/auth/forgot_password_screen.dart create mode 100644 mobile/lib/screens/auth/login_screen.dart create mode 100644 mobile/lib/screens/auth/profile_screen.dart create mode 100644 mobile/lib/screens/auth/register_screen.dart create mode 100644 mobile/lib/screens/club/club_settings_screen.dart create mode 100644 mobile/lib/screens/club/dashboard_screen.dart create mode 100644 mobile/lib/screens/club/events_screen.dart create mode 100644 mobile/lib/screens/club/members_screen.dart create mode 100644 mobile/lib/screens/club/members_screen.dart.bak create mode 100644 mobile/lib/screens/score/club_statistics_screen.dart create mode 100644 mobile/lib/screens/score/member_statistics_screen.dart create mode 100644 mobile/lib/screens/score/score_entry_screen.dart create mode 100644 mobile/lib/screens/subscription/subscription_details_screen.dart create mode 100644 mobile/lib/screens/subscription/subscription_screen.dart create mode 100644 mobile/lib/services/admin_service.dart create mode 100644 mobile/lib/services/api_service.dart create mode 100644 mobile/lib/services/auth_service.dart create mode 100644 mobile/lib/services/club_service.dart create mode 100644 mobile/lib/services/event_bus.dart create mode 100644 mobile/lib/services/event_service.dart create mode 100644 mobile/lib/services/in_app_purchase_service.dart create mode 100644 mobile/lib/services/member_service.dart create mode 100644 mobile/lib/services/score_service.dart create mode 100644 mobile/lib/services/subscription_notification_service.dart create mode 100644 mobile/lib/services/subscription_service.dart create mode 100644 mobile/lib/utils/enum_mappings.dart create mode 100644 mobile/lib/widgets/subscription_alert_widget.dart create mode 100644 mobile/linux/.gitignore create mode 100644 mobile/linux/CMakeLists.txt create mode 100644 mobile/linux/flutter/CMakeLists.txt create mode 100644 mobile/linux/flutter/generated_plugin_registrant.cc create mode 100644 mobile/linux/flutter/generated_plugin_registrant.h create mode 100644 mobile/linux/flutter/generated_plugins.cmake create mode 100644 mobile/linux/runner/CMakeLists.txt create mode 100644 mobile/linux/runner/main.cc create mode 100644 mobile/linux/runner/my_application.cc create mode 100644 mobile/linux/runner/my_application.h create mode 100644 mobile/macos/.gitignore create mode 100644 mobile/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 mobile/macos/Flutter/Flutter-Release.xcconfig create mode 100644 mobile/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 mobile/macos/Podfile create mode 100644 mobile/macos/Runner.xcodeproj/project.pbxproj create mode 100644 mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 mobile/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 mobile/macos/Runner/AppDelegate.swift create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 mobile/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 mobile/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 mobile/macos/Runner/Configs/Debug.xcconfig create mode 100644 mobile/macos/Runner/Configs/Release.xcconfig create mode 100644 mobile/macos/Runner/Configs/Warnings.xcconfig create mode 100644 mobile/macos/Runner/DebugProfile.entitlements create mode 100644 mobile/macos/Runner/Info.plist create mode 100644 mobile/macos/Runner/MainFlutterWindow.swift create mode 100644 mobile/macos/Runner/Release.entitlements create mode 100644 mobile/macos/RunnerTests/RunnerTests.swift create mode 100644 mobile/pubspec.lock create mode 100644 mobile/pubspec.yaml create mode 100644 mobile/test/widget_test.dart create mode 100644 mobile/web/favicon.png create mode 100644 mobile/web/icons/Icon-192.png create mode 100644 mobile/web/icons/Icon-512.png create mode 100644 mobile/web/icons/Icon-maskable-192.png create mode 100644 mobile/web/icons/Icon-maskable-512.png create mode 100644 mobile/web/index.html create mode 100644 mobile/web/manifest.json create mode 100644 mobile/windows/.gitignore create mode 100644 mobile/windows/CMakeLists.txt create mode 100644 mobile/windows/flutter/CMakeLists.txt create mode 100644 mobile/windows/flutter/generated_plugin_registrant.cc create mode 100644 mobile/windows/flutter/generated_plugin_registrant.h create mode 100644 mobile/windows/flutter/generated_plugins.cmake create mode 100644 mobile/windows/runner/CMakeLists.txt create mode 100644 mobile/windows/runner/Runner.rc create mode 100644 mobile/windows/runner/flutter_window.cpp create mode 100644 mobile/windows/runner/flutter_window.h create mode 100644 mobile/windows/runner/main.cpp create mode 100644 mobile/windows/runner/resource.h create mode 100644 mobile/windows/runner/resources/app_icon.ico create mode 100644 mobile/windows/runner/runner.exe.manifest create mode 100644 mobile/windows/runner/utils.cpp create mode 100644 mobile/windows/runner/utils.h create mode 100644 mobile/windows/runner/win32_window.cpp create mode 100644 mobile/windows/runner/win32_window.h diff --git a/README.md b/README.md index e69de29..41578b0 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,113 @@ +# 볼링 매니저 (Bowling Manager) + +볼링 매니저는 볼링장 운영자와 클럽 관리자를 위한 종합 관리 시스템입니다. 회원 관리, 이벤트 일정 관리, 점수 기록 및 통계, 구독 기반 프리미엄 기능을 제공합니다. + +## 프로젝트 구조 + +이 프로젝트는 세 가지 주요 구성 요소로 이루어져 있습니다: + +### 1. 백엔드 (Node.js/Express) + +`/backend` 디렉토리에 위치한 서버 측 코드입니다. + +- **기술 스택**: Node.js, Express, Sequelize ORM, MySQL +- **주요 기능**: + - RESTful API 제공 + - 데이터베이스 관리 + - 인증 및 권한 관리 + - 구독 및 결제 처리 + - 영수증 검증 + +### 2. 프론트엔드 (Vue.js) + +`/frontend` 디렉토리에 위치한 웹 클라이언트 코드입니다. + +- **기술 스택**: Vue 3, Vite, Vuex, Vue Router +- **주요 기능**: + - 관리자 대시보드 + - 회원 및 이벤트 관리 + - 통계 및 보고서 + - 구독 관리 + +### 3. 모바일 앱 (Flutter) + +`/mobile` 디렉토리에 위치한 크로스 플랫폼 모바일 앱 코드입니다. + +- **기술 스택**: Flutter, Dart, Provider 상태 관리 +- **주요 기능**: + - 회원 관리 + - 이벤트 및 일정 관리 + - 점수 기록 및 통계 + - 인앱 결제 및 구독 + - 오프라인 지원 + +## 설치 및 실행 + +### 백엔드 + +```bash +cd backend +npm install +npm start +``` + +### 프론트엔드 + +```bash +cd frontend +npm install +npm run dev +``` + +### 모바일 앱 + +```bash +cd mobile +flutter pub get +flutter run +``` + +## 구독 및 인앱 결제 기능 + +볼링 매니저는 다양한 구독 플랜을 제공합니다: + +- **무료 플랜**: 기본 기능, 제한된 회원 및 이벤트 관리 +- **기본 플랜**: 확장된 회원 및 이벤트 관리, 기본 통계 +- **프리미엄 플랜**: 고급 통계, 커스터마이징 옵션 +- **프로 플랜**: 모든 기능 무제한 이용, 우선 지원 + +구독 관련 문서: +- [구독 및 인앱 결제 요구사항 및 사용자 플로우](/docs/subscription_requirements_flow.md) +- [구독 및 인앱 결제 QA 체크리스트](/docs/subscription_qa_checklist.md) +- [배포 체크리스트](/docs/deployment_checklist.md) + +## 개발 가이드 + +### 백엔드 API + +백엔드 API는 RESTful 원칙을 따르며, JWT 기반 인증을 사용합니다. 주요 엔드포인트: + +- `/api/auth`: 인증 관련 엔드포인트 +- `/api/clubs`: 클럽 관리 엔드포인트 +- `/api/members`: 회원 관리 엔드포인트 +- `/api/events`: 이벤트 관리 엔드포인트 +- `/api/scores`: 점수 관리 엔드포인트 +- `/api/subscriptions`: 구독 관리 엔드포인트 + +### 모바일 앱 구조 + +모바일 앱은 다음과 같은 구조로 구성되어 있습니다: + +- `lib/models`: 데이터 모델 클래스 +- `lib/services`: API 통신 및 비즈니스 로직 +- `lib/screens`: UI 화면 +- `lib/widgets`: 재사용 가능한 UI 구성 요소 +- `lib/utils`: 유틸리티 함수 및 상수 + +## 라이선스 + +이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요. + +## 기여 + +버그 신고, 기능 요청 및 풀 리퀘스트는 환영합니다. 기여하기 전에 프로젝트 관리자에게 문의하세요. \ No newline at end of file diff --git a/backend/controllers/subscriptionController.js b/backend/controllers/subscriptionController.js index c5a4f9e..1709892 100644 --- a/backend/controllers/subscriptionController.js +++ b/backend/controllers/subscriptionController.js @@ -685,3 +685,141 @@ exports.getPlanSubscriptions = async (req, res) => { res.status(500).json({ message: '플랜별 구독 목록 조회 중 오류가 발생했습니다.' }); } }; + +// 인앱 결제 영수증 검증 +exports.verifyReceipt = async (req, res) => { + try { + const { receipt, transactionId, productId, platform } = req.body; + const userId = req.user.id; + const clubId = req.body.clubId; + + if (!receipt) { + return res.status(400).json({ message: '영수증 데이터가 없습니다.' }); + } + + // 플랫폼별 검증 로직 + let verificationResult = false; + let purchaseData = {}; + + if (platform === 'ios') { + // iOS 영수증 검증 + verificationResult = await verifyIosReceipt(receipt); + purchaseData = { + platform: 'ios', + transactionId, + productId, + receipt + }; + } else if (platform === 'android') { + // Android 영수증 검증 + verificationResult = await verifyAndroidReceipt(receipt, productId); + purchaseData = { + platform: 'android', + transactionId, + productId, + receipt + }; + } else { + return res.status(400).json({ message: '지원하지 않는 플랫폼입니다.' }); + } + + if (!verificationResult) { + return res.status(400).json({ message: '영수증 검증에 실패했습니다.' }); + } + + // 구독 플랜 타입 확인 + const planType = getPlanTypeFromProductId(productId); + if (!planType) { + return res.status(400).json({ message: '유효하지 않은 상품 ID입니다.' }); + } + + // 해당 플랜 정보 가져오기 + const plan = await SubscriptionPlan.findOne({ + where: { type: planType } + }); + + if (!plan) { + return res.status(404).json({ message: '해당 플랜을 찾을 수 없습니다.' }); + } + + // 기존 구독 정보 확인 + let subscription = await ClubSubscription.findOne({ + where: { clubId } + }); + + // 구독 생성 또는 업데이트 + const startDate = new Date(); + const endDate = new Date(); + endDate.setMonth(endDate.getMonth() + 1); // 기본 1개월 구독 + + if (subscription) { + // 기존 구독 업데이트 + await subscription.update({ + planId: plan.id, + status: 'active', + startDate, + endDate, + lastPaymentDate: startDate, + transactionId, + receiptData: JSON.stringify(purchaseData) + }); + } else { + // 새 구독 생성 + subscription = await ClubSubscription.create({ + clubId, + planId: plan.id, + status: 'active', + startDate, + endDate, + lastPaymentDate: startDate, + transactionId, + receiptData: JSON.stringify(purchaseData) + }); + } + + // 검증 결과 및 구독 정보 반환 + res.json({ + success: true, + message: '영수증 검증 및 구독 처리가 완료되었습니다.', + subscription: { + id: subscription.id, + planId: subscription.planId, + planType: planType, + status: subscription.status, + startDate: subscription.startDate, + endDate: subscription.endDate, + lastPaymentDate: subscription.lastPaymentDate + } + }); + + } catch (error) { + console.error('Error in verifyReceipt:', error); + res.status(500).json({ message: '영수증 검증 중 오류가 발생했습니다.' }); + } +}; + +// iOS 영수증 검증 함수 (실제 구현에서는 Apple 서버와 통신 필요) +async function verifyIosReceipt(receipt) { + // 실제 구현에서는 Apple 서버에 영수증 검증 요청 + // 테스트를 위해 현재는 항상 true 반환 + return true; +} + +// Android 영수증 검증 함수 (실제 구현에서는 Google Play API와 통신 필요) +async function verifyAndroidReceipt(receipt, productId) { + // 실제 구현에서는 Google Play API를 통해 영수증 검증 + // 테스트를 위해 현재는 항상 true 반환 + return true; +} + +// 상품 ID에서 플랜 타입 추출 +function getPlanTypeFromProductId(productId) { + if (productId.includes('basic')) { + return 'basic'; + } else if (productId.includes('premium')) { + return 'premium'; + } else if (productId.includes('pro')) { + return 'pro'; + } + return null; +} diff --git a/backend/routes/subscriptionRoutes.js b/backend/routes/subscriptionRoutes.js index 13fc40a..983ef08 100644 --- a/backend/routes/subscriptionRoutes.js +++ b/backend/routes/subscriptionRoutes.js @@ -29,4 +29,7 @@ router.post('/payment/request', authenticateJWT, subscriptionController.requestP router.post('/payment/success', subscriptionController.processPaymentSuccess); router.post('/payment/fail', subscriptionController.processPaymentFail); +// 인앱 결제 영수증 검증 엔드포인트 +router.post('/verify-receipt', authenticateJWT, subscriptionController.verifyReceipt); + module.exports = router; \ No newline at end of file diff --git a/docs/deployment_checklist.md b/docs/deployment_checklist.md new file mode 100644 index 0000000..da38f1e --- /dev/null +++ b/docs/deployment_checklist.md @@ -0,0 +1,127 @@ +# 볼링 매니저 앱 배포 체크리스트 + +## 1. 앱 준비 + +### 1.1 코드 준비 +- [ ] 모든 디버그 코드 및 로그 제거 +- [ ] 릴리스 모드로 빌드 설정 확인 +- [ ] 앱 버전 및 빌드 번호 업데이트 +- [ ] 프로덕션 API 엔드포인트 설정 확인 +- [ ] 코드 최적화 및 성능 검토 완료 + +### 1.2 자산 및 리소스 +- [ ] 모든 이미지 및 아이콘 최적화 +- [ ] 앱 아이콘 모든 크기 준비 완료 +- [ ] 스플래시 화면 준비 완료 +- [ ] 다국어 지원 텍스트 검토 완료 + +### 1.3 인앱 결제 설정 +- [ ] App Store Connect에 인앱 결제 상품 등록 완료 +- [ ] Google Play Console에 구독 상품 등록 완료 +- [ ] 샌드박스 테스트 완료 +- [ ] 실제 결제 테스트 완료 (필요시) + +## 2. iOS 배포 준비 + +### 2.1 App Store Connect 설정 +- [ ] 앱 정보 입력 완료 (이름, 설명, 키워드 등) +- [ ] 스크린샷 및 프리뷰 비디오 업로드 +- [ ] 개인정보 처리방침 URL 등록 +- [ ] 앱 리뷰 정보 준비 (테스트 계정 등) +- [ ] 연령 등급 설정 + +### 2.2 인증서 및 프로비저닝 +- [ ] 배포용 인증서 유효성 확인 +- [ ] 프로비저닝 프로파일 설정 확인 +- [ ] 앱 ID 및 기능 활성화 확인 + +### 2.3 빌드 및 제출 +- [ ] Archive 빌드 생성 +- [ ] TestFlight 업로드 및 테스트 +- [ ] 앱 심사 제출 준비 + +## 3. Android 배포 준비 + +### 3.1 Google Play Console 설정 +- [ ] 스토어 등록정보 입력 완료 (이름, 설명, 카테고리 등) +- [ ] 스크린샷 및 그래픽 자산 업로드 +- [ ] 개인정보 처리방침 URL 등록 +- [ ] 콘텐츠 등급 설정 +- [ ] 가격 및 배포 국가 설정 + +### 3.2 서명 및 보안 +- [ ] 앱 서명 키 확인 +- [ ] Play App Signing 설정 확인 +- [ ] ProGuard 설정 확인 (코드 난독화) + +### 3.3 빌드 및 제출 +- [ ] 릴리스 APK/AAB 생성 +- [ ] 내부/외부 테스트 트랙 업로드 및 테스트 +- [ ] 프로덕션 출시 준비 + +## 4. 백엔드 배포 준비 + +### 4.1 서버 환경 설정 +- [ ] 프로덕션 서버 환경 구성 완료 +- [ ] 데이터베이스 마이그레이션 계획 수립 +- [ ] 백업 및 복구 전략 확인 + +### 4.2 API 및 보안 +- [ ] 모든 API 엔드포인트 프로덕션 환경에서 테스트 완료 +- [ ] HTTPS 설정 확인 +- [ ] API 키 및 인증 설정 검토 +- [ ] 속도 제한 및 보안 설정 확인 + +### 4.3 모니터링 및 로깅 +- [ ] 서버 모니터링 도구 설정 +- [ ] 오류 로깅 및 알림 설정 +- [ ] 성능 모니터링 설정 + +## 5. 법적 요구사항 + +### 5.1 개인정보 보호 +- [ ] 개인정보 처리방침 최신화 +- [ ] 데이터 수집 및 사용에 대한 동의 절차 확인 +- [ ] GDPR/CCPA 등 관련 법규 준수 확인 + +### 5.2 이용 약관 +- [ ] 이용 약관 최신화 +- [ ] 구독 및 결제 관련 조항 포함 확인 +- [ ] 환불 정책 명시 확인 + +### 5.3 지적 재산권 +- [ ] 사용된 모든 라이브러리 및 자산의 라이선스 확인 +- [ ] 제3자 콘텐츠 사용 권한 확인 + +## 6. 마케팅 및 출시 준비 + +### 6.1 마케팅 자료 +- [ ] 보도 자료 준비 +- [ ] 소셜 미디어 콘텐츠 준비 +- [ ] 프로모션 계획 수립 + +### 6.2 사용자 지원 +- [ ] 고객 지원 채널 설정 +- [ ] FAQ 및 도움말 문서 준비 +- [ ] 사용자 피드백 수집 방법 설정 + +### 6.3 출시 계획 +- [ ] 출시 일정 확정 +- [ ] 단계적 출시 전략 수립 (필요시) +- [ ] 출시 후 모니터링 계획 수립 + +## 7. 최종 검토 + +### 7.1 품질 보증 +- [ ] 모든 주요 기능 최종 테스트 완료 +- [ ] 다양한 기기 및 OS 버전에서 테스트 완료 +- [ ] 성능 및 배터리 사용량 테스트 완료 + +### 7.2 사용자 경험 +- [ ] 온보딩 프로세스 검토 +- [ ] 오류 처리 및 피드백 검토 +- [ ] 접근성 기능 검토 + +### 7.3 최종 승인 +- [ ] 모든 이해관계자의 최종 승인 획득 +- [ ] 출시 결정 확인 diff --git a/docs/subscription_qa_checklist.md b/docs/subscription_qa_checklist.md new file mode 100644 index 0000000..89de852 --- /dev/null +++ b/docs/subscription_qa_checklist.md @@ -0,0 +1,133 @@ +# 볼링 매니저 구독 및 인앱 결제 QA 체크리스트 + +## 1. 구독 기능 테스트 + +### 1.1 구독 정보 조회 +- [ ] 앱 시작 시 현재 구독 정보 로드 확인 +- [ ] 구독이 없는 경우 기본(무료) 플랜 표시 확인 +- [ ] 구독 상세 정보 표시 확인 (플랜 유형, 시작일, 만료일, 자동 갱신 상태 등) + +### 1.2 구독 플랜 목록 +- [ ] 사용 가능한 모든 구독 플랜 표시 확인 +- [ ] 각 플랜의 가격, 기능, 제한 사항 등 정확히 표시 확인 +- [ ] 월간/연간 요금제 전환 기능 확인 + +### 1.3 구독 상태별 기능 제한 +- [ ] 무료 플랜 사용자의 기능 제한 확인 +- [ ] 기본 플랜 사용자의 기능 접근 확인 +- [ ] 프리미엄 플랜 사용자의 기능 접근 확인 +- [ ] 프로 플랜 사용자의 기능 접근 확인 +- [ ] 제한된 기능 접근 시 업그레이드 안내 대화상자 표시 확인 + +### 1.4 회원 및 이벤트 제한 +- [ ] 플랜별 최대 회원 수 제한 확인 +- [ ] 플랜별 최대 이벤트 수 제한 확인 +- [ ] 제한 초과 시 적절한 안내 메시지 표시 확인 + +## 2. 인앱 결제 테스트 + +### 2.1 구독 구매 +- [ ] 각 플랜별 구독 구매 버튼 작동 확인 +- [ ] 인앱 결제 다이얼로그 표시 확인 +- [ ] 결제 진행 중 로딩 표시 확인 +- [ ] 결제 성공 시 구독 정보 업데이트 확인 +- [ ] 결제 실패 시 적절한 오류 메시지 표시 확인 + +### 2.2 구독 복원 +- [ ] 구독 복원 버튼 작동 확인 +- [ ] 복원 진행 중 로딩 표시 확인 +- [ ] 복원 성공 시 구독 정보 업데이트 확인 +- [ ] 복원할 구독이 없는 경우 적절한 메시지 표시 확인 + +### 2.3 플랜 변경 +- [ ] 현재 구독에서 다른 플랜으로 변경 기능 확인 +- [ ] 업그레이드/다운그레이드 시 적절한 안내 메시지 표시 확인 +- [ ] 플랜 변경 후 구독 정보 업데이트 확인 + +### 2.4 자동 갱신 설정 +- [ ] 자동 갱신 설정 변경 기능 확인 +- [ ] 설정 변경 후 상태 업데이트 확인 + +## 3. 백엔드 API 테스트 + +### 3.1 구독 관련 API +- [ ] `/subscriptions/current` - 현재 구독 정보 조회 API 테스트 +- [ ] `/subscriptions/plans` - 구독 플랜 목록 조회 API 테스트 +- [ ] `/subscriptions/subscribe` - 구독 생성 API 테스트 +- [ ] `/subscriptions/change-with-features` - 플랜 변경 API 테스트 + +### 3.2 인앱 결제 검증 API +- [ ] `/subscriptions/verify-receipt` - 영수증 검증 API 테스트 + - [ ] iOS 영수증 검증 테스트 + - [ ] Android 영수증 검증 테스트 + - [ ] 잘못된 영수증 데이터 처리 테스트 + +## 4. 샌드박스 테스트 + +### 4.1 iOS 샌드박스 테스트 +- [ ] App Store Connect에서 샌드박스 테스터 계정 설정 +- [ ] 샌드박스 환경에서 구독 구매 테스트 +- [ ] 샌드박스 환경에서 구독 복원 테스트 +- [ ] 샌드박스 환경에서 플랜 변경 테스트 + +### 4.2 Android 샌드박스 테스트 +- [ ] Google Play Console에서 테스트 트랙 설정 +- [ ] 테스트 환경에서 구독 구매 테스트 +- [ ] 테스트 환경에서 구독 복원 테스트 +- [ ] 테스트 환경에서 플랜 변경 테스트 + +## 5. 오류 처리 테스트 + +### 5.1 네트워크 오류 +- [ ] 오프라인 상태에서 구독 관련 기능 동작 확인 +- [ ] 네트워크 재연결 시 상태 복구 확인 + +### 5.2 서버 오류 +- [ ] 서버 응답 오류 시 적절한 메시지 표시 확인 +- [ ] 재시도 메커니즘 확인 + +### 5.3 결제 오류 +- [ ] 결제 취소 시 적절한 처리 확인 +- [ ] 잘못된 결제 정보 입력 시 오류 처리 확인 + +## 6. UI/UX 테스트 + +### 6.1 구독 화면 UI +- [ ] 구독 화면의 레이아웃 및 디자인 확인 +- [ ] 다양한 화면 크기에서의 반응형 디자인 확인 +- [ ] 다크 모드 지원 확인 + +### 6.2 사용자 피드백 +- [ ] 로딩 상태 표시 확인 +- [ ] 오류 메시지 명확성 확인 +- [ ] 성공 메시지 표시 확인 + +## 7. 보안 테스트 + +### 7.1 영수증 검증 +- [ ] 위조된 영수증 거부 확인 +- [ ] 만료된 영수증 처리 확인 + +### 7.2 인증 및 권한 +- [ ] 인증되지 않은 사용자의 구독 API 접근 차단 확인 +- [ ] 권한이 없는 사용자의 관리자 기능 접근 차단 확인 + +## 8. 통합 테스트 + +### 8.1 전체 구독 흐름 +- [ ] 구독 생성 → 플랜 변경 → 자동 갱신 설정 → 구독 취소의 전체 흐름 테스트 + +### 8.2 다중 기기 동기화 +- [ ] 여러 기기에서 동일한 계정으로 로그인 시 구독 정보 동기화 확인 + +## 9. 배포 준비 + +### 9.1 스토어 설정 +- [ ] App Store 인앱 결제 상품 설정 확인 +- [ ] Google Play 구독 상품 설정 확인 +- [ ] 스토어 스크린샷 및 설명에 구독 정보 포함 확인 + +### 9.2 법적 요구사항 +- [ ] 개인정보 처리방침에 구독 관련 내용 포함 확인 +- [ ] 이용 약관에 구독 조건 포함 확인 +- [ ] 환불 정책 명시 확인 diff --git a/docs/subscription_requirements_flow.md b/docs/subscription_requirements_flow.md new file mode 100644 index 0000000..8322712 --- /dev/null +++ b/docs/subscription_requirements_flow.md @@ -0,0 +1,204 @@ +# 볼링 매니저 구독 및 인앱 결제 요구사항 및 사용자 플로우 + +## 1. 요구사항 + +### 1.1 기능적 요구사항 + +#### 구독 관리 +- 사용자는 다양한 구독 플랜(기본, 프리미엄, 프로) 중에서 선택할 수 있어야 함 +- 사용자는 월간 또는 연간 구독 옵션을 선택할 수 있어야 함 +- 사용자는 현재 구독 상태를 확인할 수 있어야 함 +- 사용자는 구독을 업그레이드/다운그레이드할 수 있어야 함 +- 사용자는 자동 갱신 설정을 변경할 수 있어야 함 +- 사용자는 이전에 구매한 구독을 복원할 수 있어야 함 + +#### 인앱 결제 +- 앱은 플랫폼별(iOS, Android) 인앱 결제를 지원해야 함 +- 결제 과정은 안전하고 사용자 친화적이어야 함 +- 결제 오류 발생 시 적절한 피드백을 제공해야 함 +- 결제 완료 후 즉시 구독 상태가 업데이트되어야 함 + +#### 기능 제한 +- 구독 플랜에 따라 사용 가능한 기능이 차등 적용되어야 함 +- 무료 사용자는 기본 기능만 사용할 수 있어야 함 +- 구독 만료 시 접근 가능한 기능이 제한되어야 함 +- 제한된 기능 접근 시 업그레이드 안내가 표시되어야 함 + +#### 백엔드 연동 +- 구독 정보는 서버에 안전하게 저장되어야 함 +- 인앱 결제 영수증은 서버에서 검증되어야 함 +- 구독 상태는 여러 기기에서 동기화되어야 함 +- 구독 만료 및 갱신은 서버에서 처리되어야 함 + +### 1.2 비기능적 요구사항 + +#### 보안 +- 결제 정보는 안전하게 처리되어야 함 +- 영수증 검증은 서버 측에서 수행되어야 함 +- 사용자 인증 및 권한 관리가 적절히 구현되어야 함 + +#### 성능 +- 구독 상태 확인은 빠르게 이루어져야 함 +- 결제 처리는 최소한의 지연으로 완료되어야 함 +- 오프라인 상태에서도 기본적인 기능은 사용 가능해야 함 + +#### 사용성 +- 구독 및 결제 UI는 직관적이고 사용하기 쉬워야 함 +- 오류 메시지는 명확하고 이해하기 쉬워야 함 +- 구독 혜택 및 제한 사항이 명확하게 표시되어야 함 + +#### 확장성 +- 새로운 구독 플랜 추가가 용이해야 함 +- 새로운 기능 및 제한 사항 추가가 용이해야 함 +- 다양한 결제 방식 추가가 가능해야 함 + +## 2. 사용자 플로우 + +### 2.1 구독 구매 플로우 + +1. **구독 화면 접근** + - 사용자가 앱에서 '구독' 또는 '프리미엄' 메뉴를 탭함 + - 또는 제한된 기능 접근 시 표시되는 업그레이드 안내에서 '구독하기' 버튼을 탭함 + +2. **구독 플랜 선택** + - 사용 가능한 구독 플랜(기본, 프리미엄, 프로) 목록이 표시됨 + - 각 플랜의 가격, 기능, 제한 사항 등이 표시됨 + - 사용자가 원하는 플랜을 선택함 + +3. **월간/연간 선택** + - 선택한 플랜의 월간 또는 연간 구독 옵션이 표시됨 + - 사용자가 원하는 구독 기간을 선택함 + +4. **결제 진행** + - 플랫폼별 인앱 결제 다이얼로그가 표시됨 + - 사용자가 결제 정보를 입력하고 결제를 확인함 + - 결제 진행 중 로딩 표시가 나타남 + +5. **결제 완료** + - 결제가 성공적으로 완료되면 성공 메시지가 표시됨 + - 구독 정보가 업데이트되고 구독 상세 화면으로 이동함 + - 결제 실패 시 오류 메시지가 표시되고 재시도 옵션이 제공됨 + +### 2.2 구독 관리 플로우 + +1. **구독 정보 확인** + - 사용자가 '내 구독' 또는 '계정' 메뉴를 탭함 + - 현재 구독 상태, 플랜, 시작일, 만료일, 자동 갱신 상태 등이 표시됨 + +2. **플랜 변경** + - 사용자가 '플랜 변경' 버튼을 탭함 + - 사용 가능한 다른 플랜 목록이 표시됨 + - 사용자가 새 플랜을 선택하고 확인함 + - 플랜 변경이 처리되고 구독 정보가 업데이트됨 + +3. **자동 갱신 설정** + - 사용자가 '자동 갱신' 토글 버튼을 탭함 + - 설정 변경 확인 다이얼로그가 표시됨 + - 사용자가 확인하면 설정이 변경되고 구독 정보가 업데이트됨 + +4. **구독 취소** + - 사용자가 '구독 취소' 버튼을 탭함 + - 취소 확인 다이얼로그가 표시됨 + - 사용자가 확인하면 구독이 취소되고 만료일까지 사용 가능함을 안내함 + +### 2.3 구독 복원 플로우 + +1. **복원 시작** + - 사용자가 '구독 복원' 버튼을 탭함 + - 복원 진행 중 로딩 표시가 나타남 + +2. **복원 결과** + - 복원 가능한 구독이 있으면 구독이 복원되고 성공 메시지가 표시됨 + - 구독 정보가 업데이트되고 구독 상세 화면으로 이동함 + - 복원할 구독이 없으면 안내 메시지가 표시됨 + +### 2.4 제한된 기능 접근 플로우 + +1. **기능 접근 시도** + - 사용자가 현재 구독 플랜에서 제한된 기능에 접근을 시도함 + +2. **업그레이드 안내** + - 해당 기능에 접근하기 위해 필요한 구독 플랜 정보가 포함된 대화상자가 표시됨 + - '구독하기' 버튼과 '취소' 버튼이 제공됨 + +3. **사용자 선택** + - 사용자가 '구독하기'를 선택하면 구독 화면으로 이동함 + - 사용자가 '취소'를 선택하면 이전 화면으로 돌아감 + +## 3. 구독 플랜 및 기능 + +### 3.1 무료 플랜 +- **기능**: + - 기본 볼링 점수 추적 + - 최대 10명의 회원 관리 + - 최대 5개의 이벤트 관리 + +### 3.2 기본 플랜 +- **기능**: + - 모든 무료 기능 + - 최대 30명의 회원 관리 + - 최대 10개의 이벤트 관리 + - 기본 통계 분석 + +### 3.3 프리미엄 플랜 +- **기능**: + - 모든 기본 기능 + - 최대 100명의 회원 관리 + - 최대 50개의 이벤트 관리 + - 고급 통계 분석 + - 커스터마이징 옵션 + +### 3.4 프로 플랜 +- **기능**: + - 모든 프리미엄 기능 + - 최대 500명의 회원 관리 + - 최대 200개의 이벤트 관리 + - 우선 지원 + - 모든 고급 기능 접근 + +## 4. 오류 처리 시나리오 + +### 4.1 결제 오류 +- **시나리오**: 사용자가 결제를 시도했으나 결제가 실패함 +- **처리**: + - 오류 원인에 따른 명확한 메시지 표시 + - 재시도 옵션 제공 + - 문제 해결을 위한 안내 제공 + +### 4.2 네트워크 오류 +- **시나리오**: 구독 정보 로드 또는 결제 중 네트워크 연결이 끊김 +- **처리**: + - 네트워크 오류 메시지 표시 + - 자동 재연결 시도 + - 오프라인 모드로 전환 (가능한 경우) + +### 4.3 서버 오류 +- **시나리오**: 서버에서 구독 정보 처리 중 오류 발생 +- **처리**: + - 서버 오류 메시지 표시 + - 관리자에게 오류 보고 + - 재시도 옵션 제공 + +### 4.4 영수증 검증 오류 +- **시나리오**: 인앱 결제는 성공했으나 영수증 검증에 실패함 +- **처리**: + - 검증 오류 메시지 표시 + - 자동 재검증 시도 + - 수동 복원 옵션 제공 + +## 5. 배포 및 유지보수 계획 + +### 5.1 배포 준비 +- App Store 및 Google Play에 인앱 결제 상품 등록 +- 스토어 설명 및 스크린샷에 구독 정보 포함 +- 개인정보 처리방침 및 이용 약관 업데이트 + +### 5.2 모니터링 및 분석 +- 구독 전환율 모니터링 +- 구독 취소율 및 원인 분석 +- 플랜별 사용자 행동 분석 + +### 5.3 향후 개선 계획 +- 사용자 피드백에 기반한 구독 플랜 조정 +- 새로운 프리미엄 기능 추가 +- 추가 결제 방식 통합 검토 diff --git a/mobile/.gitignore b/mobile/.gitignore new file mode 100644 index 0000000..79c113f --- /dev/null +++ b/mobile/.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/mobile/.metadata b/mobile/.metadata new file mode 100644 index 0000000..fdb4416 --- /dev/null +++ b/mobile/.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: "fcf2c11572af6f390246c056bc905eca609533a0" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: android + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: ios + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: linux + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: macos + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: web + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: windows + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + + # 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/mobile/README.md b/mobile/README.md new file mode 100644 index 0000000..7b01285 --- /dev/null +++ b/mobile/README.md @@ -0,0 +1,16 @@ +# mobile + +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/mobile/analysis_options.yaml b/mobile/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/mobile/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/mobile/android/.gitignore b/mobile/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/mobile/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/mobile/android/app/build.gradle.kts b/mobile/android/app/build.gradle.kts new file mode 100644 index 0000000..ee96cd7 --- /dev/null +++ b/mobile/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +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") +} + +android { + namespace = "com.example.mobile" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + 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.mobile" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + 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/mobile/android/app/src/debug/AndroidManifest.xml b/mobile/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/mobile/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/mobile/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..77be3b5 --- /dev/null +++ b/mobile/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/kotlin/com/example/mobile/MainActivity.kt b/mobile/android/app/src/main/kotlin/com/example/mobile/MainActivity.kt new file mode 100644 index 0000000..b5dc9d0 --- /dev/null +++ b/mobile/android/app/src/main/kotlin/com/example/mobile/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.mobile + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..cb58f081378268de8427236f8363a53289cf5837 GIT binary patch literal 33007 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-v21/launch_background.xml b/mobile/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/mobile/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..97a66ec580562c729feebdeee528c36d8333bcc6 GIT binary patch literal 50055 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鐣jcacq0H}Avy;qXjNpLiC^_nM|G;y%|mLg z|AS~a3hM>;A`gt1MQ9hrW=w!tHerXc2}3MdA_?G`0GeYlZw%z#VCt<2AZZ;K<3t>1 z=EC=F~|Y@0p|k8QJNXh!GSZ!IIh&@Kw{Py2uDl| zaTS;&dxAv6jd+CwOLlbksY6ZXM#ZQZNMdzz<0(S&rkcK)3>e39jEFe1RvM#8hR#tg za|9^e@uIJBasn?x5GOvw;p5T-c$fMyA{kY%KrJe*42Y|xfS|b1gbXx3`wZ(P0<|vP zXQDMN+co`Z6^SrY_FhUV_oQZqoE9%R`$p?iP9v0cfOCO*E+qf|oV|&bBRR4qW&qr| z#+FNU_ZuB)X8!-PB#rc{Dl=o@?hZi5HoyR9WWOWUL4k}UolajaY`J!=T{VOf<5l&h z@&r>+esQIA4LN+Xl(~@`oEh90roW-U`##7(L|K>ou6x`1FuEP0^6VKbU>;IYDib(I4)v8GHJV4nt@5%9RN zwd23hYuEg}f+7e23XQ|(GGqKO5b0I-FIP)YhIiHK(`3prhM4c3PkR$I!FwC1*Lv|1 zJ9N!+Ft3ZnSS(2f%P9*OW)CxhmVn}%jD;A*lAL+mX0{@+ClSuq8^CSi*SA}SX~L2C zHO-!_PXbZ=jBYm(SstI0)hYrU$^IrG^wX{E+J!U9y@liEIE-@=y-++qqtoOH#u7Pu zz4orS%S?~+L{CvpahXwL0F|w!b??em%aJ*ksYs{UDw(E1TQ*5L8_#zJ^=!KddnH&< zgr4uZbi1AXP{E%Tob|!+MbAc^fd7N^fGL3ZKleLvm)Sx@5Zp**$x4J4g2@~&+IG5r zhpSacCp5PfV_R61OKecVFlp&eaTRJz!QDM1CPPeMD3v0fne7j0mKYKwQ;nns58D$(=J%EM-KG_O|<)^;8pJzoh>;_KDGh3Ptv z5<48k!X!7m#2;C;B?u_mq)M@9O?(j4)v{NI3CQ>QfZdhR9kJ?z*pN(C??XKh8;0nB zvRY$~fiN3Dlo1Oc^0*NY$`J6o-uU_DiX)ks$CX|?etq+BxdB`!9{9OwPB6_8CYR_t zoK60eN+EB4y|$HiCRQm&HEC>Il4V9gUIivrQZ~4e901OZ44)KM5WNl?wxI$78blDd zpSkDzNCjB32vuZ`5g4*e1xD)u-lMtI-(z1Hi_y}$?tG>J!scI%D`6L1r#g)M4m<|f zsBZEDDevfG_$T%$!G0#-V4r{pi5epuOLa-E6$`GjY)Zp#SL$^?OLgQPybwS%v)d^; zI}w!3&Gu}7+JdPhBwU6W`^S1rj3fdq;sq8?Ad;flt;Gy6xww%fhE7ouBg7G$;2bBi z5V;vQT8555ur$w+Ot4a7auIB(k_{xx<)XN~3@Bc-`MgR@p?eZM3kOI%4?$@q793f9 zLxA;|8T`gfz_nITq}OJM1&ClbHWp;!*F$xWM{%de;zqlYNby2=Em>)yJOpPvgpRhe z1VejKTFzVjo4t4~6jnfNW6gDT=HF`xW&dy03u!^oi`vbIS!VAlsof-A2pk0-?~BwbDD#3acf_HZb> zEujDaXFXB54h@;wLAfGl;B59eGZO-Pm%Qf;yOd!cBkYG6_7hr(16hi@!2M6uz1~O} zE_sXqLW%|v#Rx(O_d*I!9m_-s{pNghIME1#l(1Q`oA_TkoU~#u#aVXdZw)Qam-qR^ z3%koR888(P(T}FAv4d^m7$KR(lBFybn6s$Q8J&

U8z%Yx=xi!}iD46`;mROg7b2 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

FEjVE*7wUdJdb-##xR# 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 H!6x#528_l@ literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..668ba5f81c84bea1e65f515bf66c717663928044 GIT binary patch literal 134341 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 z z;|kF4%d55iUG$3KdgfjO^w(&3{vnU_u`9atpq$jhs0Uo#t^F9*yqpU0vI_C~)eG<* z$sW9-2Ku@XWi{KKPDEa)ce%0<2N7Ns;H{na9s#q^HbkxgDMMIxEMXQyc;dVaaLV6GY2A|7+ zpp?hc`1A%qE6XN2^L#?giJqCGv0j^G!SYSuD+%s}Bu4qy40Fo4b+mGhL6yH&PcPBv zOIe3Zv|v!?nUrzJY-!@)+!yPWCO4bv&4IPokU&d z!RyB`+8!_Ko0I`e8g<=o=&Luk^wsNIdh_OvUcbGgx9@ySeY4qXy%Kc#N=p)_

wv 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/drawable/launch_background.xml b/mobile/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/mobile/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..5f349f7 --- /dev/null +++ b/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d3fdf59558d159069b1a2adaa4b412ba853978b0 GIT binary patch literal 9420 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b6749e73e72afc253bf7249a0e0e07d6a61cb9e2 GIT binary patch literal 14874 zcmZ{rV{~T0^XKC{v2EM7ZJSSQCllMo#I|kQwmC5;oQZaRdlvuQJ^P|>zxaNts{8c4 zeNI>PjZ#*WLV(4E1pxs;kdYQw{ns1+rvae;J&!Uxx&L((ZW7vVW+ratyg(Q8e;o)b zGb;xJGbaNJvpNeqFFPkM3nv{jGcPkUs@e7N|6yS7Xl8BkJXMpmb2i-fY{t-$R7Ov)QAgr8fctz&_RP6tyDqDM*+i8ni z+nYPMT01&`u(L9|%pXAfzl_fRW>}dyDp9Ux|1re>@#E@f;pS=LVh&>E=H}$e%fw`D zZ(?cwuUP|a8690Ld*%sp|EE87D|dTSUS4rWp!>gwZoIt8|4>&Dmh$gzrvHnP`HvS~ zUTJe{ODi`J79Lh%180qY4Ay^Q{trL@gVC}!bF=ynvRp#~_=n*97ewLT)ZBhJnS=cI zQ876=SPC_1D*j)76x9DwAS_($JRF>yTwI(641$gS5TyU&N6p&X9E4d^G_^?Z`k$ov zUnC7x84wF=JM({2XR>#2vvag$vM}+m20A*pGX3vWXEJ9oHRa;wG~r<3WHViGj?xz7_8fX4IN^>G? zSrs_HR9YZJi8YC}Q{cyZ1AE8l4I5g+!{+x!Z3Al7Vce)p`L3^~12q$3-rF%Yv>RutKo3EkQIS$F zE8m0T;cN3Qi$Yth5$c3Nj>bXUe3Zc#Xu+#0QCc*EiHT29T39_#?ML!!paOpD+CL@pwVrYlV=t}U#Us?TGw`E zFW@0f)ak$|uqnu8TIEr#Y)0f-P&(R_bHX4*u_a6SscFw_HLGx#~?o^YL4$aLd51#|+KKR&`f^x=_$9iEdfz)3JII z#PU*{${_xfRV?ZVKqN<{<0Y?H&6ZqbkOrCzB1e^3R3u6zDx4Bkl?G6YEDebw=mB1v zVxB9kVUr3T)Ran%R(KUky-!&90a6iEB*{)=-JnwYOtZf{Uda@XkIV1JzTI@RQs4W^ zRR;ZcUGwM5EV|mS;63MqBrOSxZ&S#Ry}M78x}M*nzK4$igL=I43FCS{TlYWD4>xr$ z!er0G#GAtqH}Gp0!66v*W4wZ`@}Q)DqO^43Z)(H$@`v$^NXW5<$X5RC2YScH;;BX&{ zB+^0)(&mY3EK_jEmd<+_sN}wK@F)NT>U`ZB(7i%{5r_oFq48$h^Gq|jn-_jxN)Ab$ zdyN?F0atD7N}&0^-yCmO+d{DjwqL=!{_hD(`yXowP~yZ`GKyI55OO4=s8uV0)oya~ zP*Kyb78i^rpn9_lQ0g{1MFb!C7D*$7mG`4xv z5;Ia9*i0`eM6?Uvdn}Mul;CN9EPXiZewHc_4{u=f#TRPS@q9d^}Wu! zh|9ulj=H}fe}0gDjAAS}F{Sr>u1^Z>wDUdGt}%IlYePt^Su1c^iDKHKxQ#{1kEgou zQB!=v#BWYQSXeHdE0i|`qPg)Pn&L*%4R8$oobs|@24w~|jpd#zhiZ0FW^qCg<-$cJ z6PYW`gc~p`h`3dNl;OdkG&&;FH#`h}n2U0dH;yZdF3w?h#etzAs`G*-sHUb$&OI{g z)E+fZO(?g{M9`-FR1@i?D4*Qnb!JLcO~)`l26aZlq#axnwSGNS_t*HsJSO6v z-}jL|ikc1ic7fFQ8-911e&3JjjN$x!TNhUALxi1!W!0sq;t>?AFG6C$LZNpQ%DtNk z)Zq{5w71vZNFKFIFV3fJnF4V}5l+E%Q-;(4(SYBgWJix)q7GWrbjnhZCPOFVM1@VE zF?}|v-4Vo!-Vmge)B(*>VplH}6LFn125YB`%WjgQBNav$lV?*tZV@M-DOwZ_^iLP= z!pC#RHE%g?S>nEY=T@&<4Cz$$Em4h8g5AudGAj)1(?;_E8eCdRl|4Lh1t4E5@IIte zryFW)vAiXIIOc!Qe;qh}J*CkVnA~vLbp+Y%_Aot+pnX>=vA7eWY)rU2fu?!0pgqTP zKLQ2fDdm=7Y9`xEel$U{>0{xHC8@*KX@ReUK?Kdhf&)umgv7xX5-GiKtdtqX{EiMIs&tttPg*RBCu;dPo6C;K9z;FKP<+4pq!q&WC{AEY4C$ z{C63Q7AxbQ7TQYqsd{=Wi+kZIt++3#up27$d{Val>(*iM$);yCNBWjKYH3HCy;SA- z(e1UnuR;O$D=S!nuN>cf5rpGx^Iyl)bO#sZw*wMb{bHnk!=Cd0JYB1m}?-wT&mP7{-j44nRs|7=|G#tsgT z+v=A&7p*zuoDo26LQx&Qp_U!mM4=fk$$Kf5VP`7>lC|b$BIt%#n?K>vmYRUQz|o{; zB9N;G`bl!kv3)QmgmnRB2N%I`7!G;yb2G6q&EFd;iLk4DHqx1v&dT8~Lei#&ma}H6 zt^856k7{Kv82-pUOxF88*SEK~jw$(nUlG;r`;W7HyzN2HQy=8_f1CGQoz5SU<$v0) zt@W3E9vqxZ2`|&7{=}k%i0MqsB@pdy-ht5B%p2L7L(DldV-aIDo7wzfnBghDR!2=t z)7r_?lKD0Bbsi{VTRA4RJYkuQ$Mw4QD~36p3gJ~$bYB5vZRWw+>Q^c!k(^CmS{R$? zRT;*%_u=;{Sx{z>uEZ3F4tn!uN@WJhEG+?ze3In-+KXdtXRgUoUJ5g<80kF<7KD!I z!Z0;v2O{T78?dGujc?lAj`3tOPqor-q`IyetxaC_udPO+{j=%wzYp&3%JPjmf_?Y1 z=cQ4Xr(Q+i_gAYuJs%MGUiev>rrS_WAX0yz%IJb@#zt-orv_s;(*`tXLz^ZD)1)|j z%M*~nDJ7$1IFbCl)oNW3Pd^P9)J}j&CWIlb45freMb~8uY>);l(auvdFoTsMf=wNy zECl_KB}PUKn%qfqmZ6VD;dNs>HA*RBEgFOg8=i>^Q~{I1Mxqj)rKiAk28mBSU_y+9F+kvX_<$R40U*4a!T$FVyvWXqWP`9Leaf#&7rm35a< zEkoPv70GZn`zdgFyW3@Ap7d3Jjf*K&m-r-GLTk3)ZaRB~!A?Aj|E8m9;HI?M^ryI} zvctUUYS!NSIRvt3g+Z z5Gn{nb0?mNX>45%sVqL}Zg`xCBD&iGK0>LO;l;9`8k*4=Ceo=c0X-RU=WrD~bbDV| zf+86pPwJ_MMK)UEOav)thO>%4Bn=7k071_BYP_0#?S>)saph#?#-5A&9y!S;#~h>a z%BJYmUll`!zeE&Z>lC5-xeHaLxgm_Ua)(Q|hBZo*%mv`&V89!HY-yVI+mLNh>Zi73 zFb-&A^=xv0XH6Y7ZimA)L%ukzi+#edcn5Di9yHLF#Bqm@JSO-VQWJRW}^zJ=2(z{ z=dzTG`O*dZafNUYIF$#|p!u-b3^)|o`yP~&OHQfb)kC=A8yCfP7(*>cq<&AUJl>HZ z5}EXjGc5<1rYJ}X@nf$mbdPdD*nvk_t`ryLs3Hp-17K$#FWihbSEF5Cus0S}P!!pD zG8Q`$GqPFQjd{<&VR2M`*oxrXhhE8ZbKK#QGVDikL@hdQ720F7)=(9-B-%KBm@tL| z(X5r!%cmGj@W%i zAoD6u;o7WuT7*PuLA5~qF9z2JpebyE;@Q#mRqLkj&$_4jYw6?5JG37HSEd zz)S~4z+Dzolb{hv0}n4;c?suGxv{EtyRs*bEHXBRVE82{;;9_BD!^&$)d?QVJlo$z z`e@?-=k%UZ?%_a{2oWoi59|U$f>S0@#;ODj_6CM%vO|*SOwKW>|mE=UM&ee%eauQVd65}@a=HIU+D}9 zM$Ui*#HV2(p1^Hr(H@F}$XmzbVgR%;m__8XKC(z9V3t^jZWvGv3?O=Q!N3U^y}MA) zt(6L^(+ZozNC=jlGKG`>I(5SC;xBS;=mx4qa0Es-d8M>U&kp%WkU)rtj4A)dmeq)x zEE;)h8LDgqAuGnn!9B*#rJP8+q+VgS86t;+2^>p$1ccjakjrAYDT1*X#8YIF&)LqJ zipXL5<&e;UVQV9eKo_E}bkInM0NPzzmXYaIW5Lvok7s_62W9qxA2=$t5vx5GL?!6T zZ_~2hbaHxaeFTRGzu-s+1r0H#TkhEVY~t^g%dmB)Fp>wF4Lo8DFKog zI{?6#6~{CYY3N7@W1d0s2t;%p)3Go}En=bW0HlI5Nf&7+9J<8=y=vmcsKD_FVV&GI zh9?(sWzEB@WDD#JXhsv&Hv|pD*WC!&j-Bb1s2WIf2X^e}pmx}omY`7t*%64Z10du< zSxjumP3Zy#v3*l=X~J%8Kzk(A2hEJtOi`6906=ugH|<(Lj8F;wo^1 zO>^+Y7ZJJ#cC11?OgjS-YQtGs_@~@c8#R6I%|XxTjW)~rXw4To?{=VDPcQ`2@FIrt zMc7Zf(+1G}8u#q+8Q8Tvq(@NNY)CYdI9SbyXIpjgE4E*{&3VSGP_*Xfmywpw!!TmO zsx4)KnK;3#&8QVdiK060#yx->ZiB(YV;+3LGAAqPgM$XizAO<8nw+Hp?at`lQtO@R zpw0*OwH8lPdp$Z#a(%N=wNZRov)m-b51)o7!#dKtOG_RHgabXAIz8~otYxg4(AI>yyirnni$g;F1D3Q zU@}%rh2H(N6%D;iDMM9@wV5&&74>MFEa7~7f+;f-a~)ucQH+B`*c$R?XE+Cbu#3W4 zzhP^12-5n=9oEd$y@M91u7n}91txV&33a|KqRmu;(bz$9q6HI%hyElL;fhq8n?W2I z@(W7SjBfKhCys83To&7l-8CbvsU&Z<3c0jGJOYE4y*)@x83QvpdCPljP7+n~*UrP@ zUS-3*YTOm0v?+P|P#qZze`|HLy-zha3r>NkX~qeo%huqc43b`1SwqR_aM>ILrdjfN zxM+-#)DAX5+C9Dgv@w0iI0QmK!;e9j+F-Q!_NIFllr)c8^TDkz@^Bz@DMLVJ z4#s=SR=YX!aO(NrTBQOD#7GBiF+-1oEb*vA$%_Z185G4Ut=6D1|CI33H`G)+&lO~l zyAi=6hMpiNlK=o!K`~wRD)sO8VAjB9X9-o5m_5~H79fZvE=xKwie+TyOrB$KW?fdB z0o#)8H*~M)6*L=lwNX2OEbdR=+XHy1j~&G3X%Q>&!h@jL(*3y zdWWqYYWJ8cb~3#At#C644R6q9F0NMH>`~J*4SinqLS~+5u%>VvviQ(xZzv4JNLaxN z?TUIq-C%snU;zHIP5V#l8hH{#qf+I^BkC2HvMSs^IU_42LnrLaoU_b%(7(;2Dsh$T zV7&4Ii9)>+b0IO$%1x>)ors}2;#EMTSPzNQ*jMWk+EPXJ=p>Z1@Oup)atUB-8HDAA zM1r%}s`2XaJ9%xInYWj@U<*lDZJmixEwqCk9J-Rj)|uayfls~kAWTB1jDU+EX@W7O&mD-{gse(XP8NcJbK}LeLRI7_TkdHZ5@3u8{(M-4rQ*$!P+|_1IdAx z!N@G~>AtbQC=?aY@OcOh?wvrXBw-{ed7>eSp1Z=C0KPZE3mptQ=={O zPeYnnscVC?^$o-5;cdK8Rqh5m*ePjp0>v_GB2E)sIR2)aHTYXV?=`Z7<@0Ne_GU}5 zu=+F{A_4}HFl#6Y zNRg9s&unN${pP%)jw;KtFz_+g!QfcSSA@cD!e>E)EISN8cAzr0uS{6V3ifiaKqaF0 zjlM^>T>6Sec_CUrAuC#_j==mgh1(0)Yf8N}UYt^6NVt1!MlrtA4;{{eg4xl73ey9^ zO3v1)9X8knz=}&P#*)2BZP-XMZN|sXtgS{Er5#xJ%bMO0cO2u&`~G+wl5m$NC`2B?Ztz9W+s2RwEk3>$(!j?vtkwkki#9`g@>v!fxM{EI?N+6x=iyXfx zntFD`Hnpv-DU`?#;K5Br3+Kc}2A>e2;YJx|8xiq%zzLz8il&MK8kWXt3C6qtMADvr zfj@8xpv;AcD)%q{dtk9Ou*^^}iS9N8nlL(GfHe~r#El>7icLJ;hJz4n9m;@?Og+(+ zP;g69p)L%IrksY_V+zxx4rW7G5=ADfE4^c^GOCMPuC&(p7#ditAYWZv%rOv67^We| zs@>ND7jx=Xz^5mkb8?VKi=KY3Ahf*z3`OG%lee<82v1$OMQ^k=hobxWbkx*4;CY8L z`tyvA8WKl-8J#no=ItAYg`t}r-%uFJJco-ZJfWu)4XaMBkd7}bgEj=RupXhJVHW){ ztgOVr_*8scI8ofN#%@-qYE7IL9#1uNs<Zv^2=uhGVkiqKp1nCev?_(~I% zlMPwl2~}QENToTZw_fsaSARDcEpdFni!_epmtT8AuNO3kQiefNkO8oTZZWP}iUF6R z@$dQp_KIHt^p!0>8YPy&Z~HXSPdf(Lgs{@1JL(0GM3{lPy9wD|gxpI8jiV~uVTa(d z7lzEI!^?)xGxZsbjv%P2KqWqbe>%6I(AkT(-_$Oudwez17-qt_aNM*Bq$&B~zo9IZ`#sXwgDv z<^`ju4BZ~hm60Zb2Ie!T56kR<3%3oM;r@xQ&l*6|=e!QH)BMWq#pwZih1KOXkJ0S3 z3L8~7W44jF5F~Lg>YJ-Ooghtk4XGlaaT9!{L3W7RWss^liiGJR|J8-cx^+&* z^+2%?{!ahw@XN4Z87;bdCYUsQDvvNF+!|Nl#s`n|On%(T3}~V}RI3*lVR_ku)gfp~ zE+Etkt(i?;d$5wyh{UWjb7$uz0mHiB)59W9#81>^O{YGbVfXZGA@O3-OoI5@BJ8rU z1}5Ldi?T2VyoLkD(vT{r6>ic0uW4#RzWCt=N@O7#G7xwVOMyHeqUD+-MBR9{LVdfZ zIfP-W>vVJJpCeQptm%nPU!e<`L9V53WZlFjhB{ryq%p{l{uC5&UB=Do2EkqtX3t4l zL!mpfw*i3j=`df4B13~f64Dy(O^7qSLy6bt0Jq0RLWImA&zbY@cswI*HG^p|7QEce ztsp;IBa|QB1?-sehjI{zZ+HRVh{CiZX~pLy?&2Y2#e5uFy0bLv@V>cdm{7DR)B`15 zd8I{3ms%V&w`XRUWwK@2b?S;#sNy@Zv&RqTti`VW{&E_VTaZ#J>hWQ!ibxQSKPwOq z6zv7yM$~M4O-#rabVFU&&luCI(+=eLRFh65jjRd8BMtl|I(j3&Py#=j5LCWljciiJ zhomH}#gJ4vhjyQf&K(16${5JawtXufFKaw&2+^&bHs#(LK$RJ|xRbKjlqA=z2^A`b zBuxsgWa7UKA8fY%QAN|R5Vz25xAx>|Ev~hQQeAjxA%8%jKu3i@tPoKj))ecjxIqh7 zcsB8%toJKi9}R=$Ms$N3>{ko?AvAbE29{OERkrLd^#mD2S}L4iIo3s=gB!hGa2r~= z%AQcE3Ff(INUE7>m#lHsUW6qg?2hxdjNPV=Xy1&8Iu*Blh?RW^TQhVf#$%FpA9j@^ zrtBoPO-*>B_>i4~@p(8&PYoV>8)fpQ6D~q*L|&onCU?OFj&1ujENYtw-mK>qxlK~! zA4$?vJW|}Kwz_hW--Rf9K;#Z(5|#Zxc7VZ?yi+@a1e;iffSkzCoaScgln&O#DBB`O zH9~H+WwHMoNLk)?$YqkV@;u}ReLMm65tGu%{Ydk_lx>x!elumvmpoy7O$HQK26{prt2S_a!O$oF2HF=YS`| znG{(=Ee~*={>Ua=J0?k8deFIu2(J?wwdo!`DpGq3JPxb|Si=YAI|Hw<3Q@sC0#2k0 z&@)3(bE}+C$lL^iwVGHvL0!5ikAohICdWXeyEMQvdhu+L5;UHU;!WGD+{2J2--Fg_e-uK+$5!}Jvn9<~i6s*SJ z&5JIFvS#T_p_kW^s{`0j;miU`xJQ&Ezi}Qo+@*!=3dTtI=k0Ipw4qML5o~9PZD;Dq zG#Noxc}rki!eG_wV*jdx7HNwpSBk!arfNmNgHdB>c3V*gvc|BXj0w{~x?^k8Lt!R} zw3`hy}Q6xdWS#y1ijFOlohBq@W{Xoq^bpbsvZsK+CS z#KsLV$&3EQNbG`mkY3@6CWb@p!XDf=jPn) z@<6l{nVE=#D(INZ?=6CF{2_#a;=~5Wss)r0+IpU}+k$`SsTxwLervWEAsZHjF zK5Sl52SZ0ICC9EA+jcX2uiTeBRkTO9T}V+;p_r95_-`f3iWC(woWz7GM%8JER}jNp z=2F#M7^tAchDy|u61#VuiV(Lqxfqw}$PuzAHCsh)6iGaIu6&^7l5s7Aw3~a-^E?Pq zM$pea#*r=71toW`vf6@Fw0ljl~H))6qph= zX?nfzHMq4Q18yu4&M4NDpPgm3LY%QMR3oDD^o^a})=nAuL>8=N%q(V%Qq&_;5|R3Z zUlV|yW3l^iDdMrQ!syb(y^4~>N)m&N487F_NC_DkwUek9CAQjfVNqPS2}8Bnq1Y{J zOa|4ZEL2gp(1LucT~G+;A{ksz>t*vS&Epx3EaqVy+Af+zJ1Q?nXwyeaVu5C&nOEjc zKP=jagkW@7l3&ST@W^bg22)7|h(|hDQFizjUQjUOkjJQmmlY81>Q#c5Kf-M$!;I2@ zikQrGD(W$-n_}-3-cRhozAc&x`F{i^-0kI$H=5#Rjfz;KcGW}IrrUw^JAupQ-T>&q z8H?PcB$BNeXfZb=nXxDSBn}g@`$)Z|^Ziaf@=MVU(dT(a!;+ zQDxm@f*mxFoolV}LjG0Cnm`s@Q(xYrl0UZ|w^q$&AIcO5ggU@6BDT#rX_ZktIbzjd z#unC>qef#+jej*sXmbZJTFjh_cq&1&X2N$k`^9cyA3zI6kCIZ3Jz^8$4jvqkTyJnh zl8q~x(rUGR!keo42*G`o-pLbRzjYsOT0y*K~&r!9NeR3?JfwaetU}PdX6t zQx$DygrIzLdm(9kARVdO0QC2QbKDkK_);Oz?ETaz5G$&^D96o`F!t_I-#V3(_m);V zAx1Jeca`@&I zydO-^0b5^rBZR;0f;M_D*P?$t<;J74!CYl-)YO6@0Xn`9K)aiBmNx z98N1e+B%K?qpua-dg*NZ^#W%2bWS#FIaTOm|9pJuJ3MWQH|B=rdXv=Hyv$o0jF!G0G-q~!&J!schI zfTIVI|JCr_NF0|wBqJ(}nP#oz`1AUJ9y6T8I;0A}Zd65fDv|;&MoD3zc06-(P{M{6 z;a=UD$`1#uV6pK)Rh^&-T-V7+;z5tg2`Ym4+Sp~WNknu?PXhJz?{S5{}P?&|2m)e!Uq8 zvc(9}#}?r-*73|?&u_lgbe@NbhZV-QVgAMt%GNB-jhr$u$k>gS8nC+$^^nmN8TZ@f~PIScK@9e;5O;7jcIq0zaZ|kSDQw<&uLo!CS15e%#C_HVN0!?M z7U0Po_|rdX-RNTvndmrN+;)9al1>L+Wg2DV=QEU{6LC_Nk8y+&>Gwu+#mx?=2BS>b zGrRc)>;W`Ogb=?gv5$?@`tlJO*N2a<#UtBW@&0>?mQHB@M@FYFLHNrTMzTFo4ro>n zq^yxlluhU9<@EiZ`2bwFvsaPK>+prsqkboGE89mNRLISVD1pW|XEA_>KR7>?+5@n<@)7ww` zi|a?Kc)Plu_g+%MtFMR1?o34a03hXde*U0~x5-9-H(nq30zUqhC)c~_I}JW>bUhQkWsZV_J?+y_tXVF} zybcq2GjSTUq0k3wJWT`sTrVP*IrC6SQQjMUfAD$TAJ!Vvw>-TQ`a-GF?!0gXMB;!8 zFjdbqNBj|VaPb4D${w(##;2JFe}OkW$s0$;=dX)2nnO9Y2Sw9zuYdyy~xf@||y%Uq{~~ z`n}EUz8y`szik`7CziiWL3`JLvt4-bzXN3{GAdJD1=vrYUObi)eBb=euWlM*zH$9C zBzw(2QE5&)LpHPvS383_=4ssPw*TnJ9;`5Or%0z&Q44kBb-oh?5fVO7BOs#E_REp< zt#5Dr+dB`~epd^5l z*toYmjN=^Ur}c|(Dv&i7wlv~tX^%4Mu;ZOEWIG-U4@2U-0`u7FbBpnpX5{B__^oww z{;2u1A-CxE7?5iZ(LsSLJvz69`>Q}OU7<+nuy9F@r#0T+9Dfy>KDGNQBMF@W6x)Ymvn1n*)n>i z|Mq%Y@VZn~ALxXwcFaI4NT+m{u=*&~|_QETn^B`bHvotSxWP`Um zLb~gEc?F(NPI=455c>#Sd{!msP+dICRuF%6|QxBkBYw$`@bt+$ueWN&-`yL72Yx4Q9XieX! z=Kfi?6F3Y#j{KHZlI#{o>g!-D7v1;#*EUgc6jUbxw#4-_*qK9YxcF_$UTENHH({Dd2Z2URbnv5-t-<(9-pB6zyVyYMX){>ximydb>Y~T#d$`~@ zg^8p@4Xl31?!3M;4Xn8<7TIUqHNzh;o2`FNqJOSRX=tO^nB@89?O|2UZ4m_#whp@+04)5=L4->%o zP2lVm(Vv63431_heUx`FrjkMUulH}qvNgu;=WpA?*PRY1v{!lDtt4>N zt8mgv`8LQHOoot%+44Scsm_q)dN{!mE!2 z>^D_V)ZK2MPS^De>;GaCO@{TTUy>K4qugd|iOPj`!$C|=iVRwk+#DhH>`xunaPj{xp;cHmg)re)s9XYCsI|V_FEOM=cbic(S$a*moB8M{IR(XWTFK5>j-RbD z&Y!JVn`Hkg`GKC67K`(a>b;fd${45`svJ??gv1onSQ?k5$brq_lE52tVEf(}F-i?` zooi%UcU0T(BCo!qgjES^_vza;nbD?~8qGjrD0DkOp=m|@7>4Y-3k!QlYJ_l|sY(8m zluIFNBtIP5a#qtE$dzuDjW0Ssn0zhAq~+W@^UsnvX{vye1449*R`;rCOytX%?4gAG4@m7lLH@!*pI}l=4ufI&f;hw;_rn7^cMfB5H_wK#9*igb>W^eBS1#CA z*LI`Lp8(MwzcoPU9?}rwMzbYzqvN-Un^DIlMeJ9c#$dK0Xuj8X`u!xsI`J4YhH@uD zmVuDq&wTg0-h{*8R=Ol7nGPE1j`<(1eqVSPhbnY3$wp-dWAK^K7{~}oIcnxE`t$Fqps$KjTPeq*%YK(k&S+t7--XJZO4E545g!x**{A)9ghr_}4Do#h$h#g&i9`A0~E;*j%C%uxc>qb_aC~(&{e?0uD?8MhTdOWn%->2-p~Jj zVIco&^SdPAYyTVYc=jySozEVL%DdG=gI}M<>(-LKl&uSDalPS>es%VSBtaTMT7sM|%gta!)wlNRy&JBO14kY76Ag zY&{5@NA4S?_XICTgV*t3)ZvhQ+k3UsBT|4@K)(*meg5}BN`}yUqMbm6lhErunB!SV zd40|7n`?wdaPRGBeK^=Z(+)4LGD*UuSc_LV83*t~Ucg3of514n-!Jd9y}!`?F~8(2 z21yP%1gutETHso5tf-H}-uFQ3Yd`~Dtn^)jKdNRxHl`Q+kf=cwdC53lU)0R{N-12! z%I13*Vxocam z(|$}*7qD;(!IG@Y4n@C{TyRkzS_DjGxA8YOf3x*}OZ>$n@Ah8a73*&QlAGl^e{f5qz#AB zY+=aF&0_FYm1?I=@-mlIuDSOUOC`jR$EAz?ZhOCv z&VOHt>$oWH%K3&PyTN%Fb|z;NSg!>T(pAe2Xc%g9qAWV%D?u z*h?gU{(b?T0Q}1FuQ6;zpH62Q7=mYolMfV8=)6n03)CRj$uAK&xgp=t!ZG zY7F=`x!&nT3V}vEKB;6;zv?R@*Q8p>d`r^`#8KKZN6`~L(QmYI{$aIW_>%}?YFkm5 zN#h_rsPVBX4|}8cTifIHt9Zv9Tc$K+!UFZ&Zoa6r6oaK%h8~!xTA*4^#uir{yCimqSN#DiPE-QX4P(-6P>1Ac z`L@zeb3ie+Fe%b}TxRHgp=aY5@VXtp^OCk5uO+uiMVGe^Giw3j%Sd8|2)I#+-logn zvc*T1#htOLZ6R0x8HriWF$fcpavWK-*jLemoL9#dk@~i z@2cCs{(gM_UH0%uLkpkJ$>s|9K&+)Qk&nrxi>oZS3u+>ETO{H&}PmKO*AM}m`!rJc3k|3ATkPt)XI0{VX{ zSozvn^Gmomy0~k&nps$Zv7zQe$o&&B{+B5Ak5I9;_OS8h4) z3yYnTnT^%IVQ1mM?BZ_IGfQ0fKm9aqy`0SX`6XQ}y#7`6DfB5_lM#s+5)Am2eVjVf$KLr23AWHw1=IQ5Z z1@_-(#p3F0BhsR+{D1ibW@b7GcaVP=%==!mq#?kVxGeELOr8m3giZ# z1ph@1hVK8&{z3@d1@?bs2a5|_sGO7rFPQ8VAGWX&?DZZP;CVvdE$pw`(H}|4MRk-j zMTV(z;L8+ST0Mx;rg~*4C)75$aktM%kLZ~V9En-VG3q|-ZHWp9M0&(|DD$-pjestJ z1nx7N8bNM2GlYoO4W^o8U&)R22ia;crMb=`}cBD<=kWk)d$z-z|R`U9%4j2PaZ@}cnZiO96vlv1pCdGtqx66uOq z3Z{L-Nz1CZNDcW7Ds5*rLW>|?z^d>YLGaBfs;jr#6DF_u;~x_|$hWutdzY7pr_QhZ zFOtpcEwKgC_=IB{ba{MS{qo%a;d8+JfPS6c`ASknpGOTU?c0nwkgqPH>Btlo1yA1; z>R27Zd@%ZeD6+Mb8*2!P3W6KND+z}FH5z@8#a6>b?m`Zwup?LE7hik*YQxV9G(&Q& z@cQX`$k|^W%&(U+2g3>NUFiu-+l0;11YVa}XyCuqo3Lv!ab=u|a+~jY& z3GnyxHKh`)ryE~(a^IsML%Y)cr<=c*Ic&K#(7a@2+#GVHUf^H_ybfrFJU~Fi-$WBt zmhr9oaE^S9lZF`4J(Vh+I#sh^9xat39Lj}^Ix<$Q^qfcpC0H@#K{&=J^X5pheKVYg z$>kf-@|u7itnRVt`=u+Xvi@-fbQ(sD4tR&Vs8xM!oy2KD{azc5CV{5DsDV569>Vz{ z1Qkx`q?j(4qoq00@yN`+zD^g$h|y;L`-bJ)#s=tOzBPY1^z8%u={cE|09h4_+PKG8!p=s*)*@0BlDf>Src_Kuy5;!@ z^ykNtH`O0orhYer6)gj@W~mv+wAOQ1ZzTvw@CT|n4N)riR46(6sQ6e*h%}>kNrp9l ztYL97jL2B1-{g{#JGvC)DG(V_(G=Sxna~XfZmMfp-j3AUofr)#Or)_jQ_06& zDq5k6OgiGQdMXZ>U+ucO5zqyb1s=az>FT_8stPzNTJ;5LlRP%`zgo6jd8rhcSevs( zvMwrWFQUdD`N(?(NpW@hACo^_iQxH8se$-X5x+$BCdRZG^75$SE=HthiMKZZkIP87 zxT{^fU+Jh`Uy8`FNyphCud@e?CVsfM$2t!@pCh~JUk6_gKBeQ1sUy7x5jHLpOkI;k zycY%sPo{RoWKYnx`9w~>Dv+CDi`9`yl)R~ElCVEez>VnV5~%p&=XB6ltRkIc6Ezc! z((Fa}7e{~0!?s*ZB`8q5f9C26f!caL90(iOo%EY>eF*kqs-=P05@%zlz zt3k;A=!?oyXz&}*;{BaxXSo0KxG%o{^PF_?xLD}b6(ndMKVf?#iz|q3^ux{2?A5W^G_@@SOFh~4S}aK(+rCnDCZ)gtqQ?bTl!|b?Xt!PGup`EnOqmf5TAk_#ZdhH}EVP`(BQaFBg z)G9ETRQ$$ytw!xNXr}#!T>ZpvI556p6xGj+9J3Q1GxoRQZFuJR2nxs&0~gm783iSQ zNDYn;hT=eUWi+hpuBJ4uV|)!Px0Sh7`#uX&@04}%M;x`!C0sU+ zXY*K1>$gc2lm1`6W#zn=LxuOj{M~6a*~4=EC*H8jgFAE6E#x@4K+CL>Z;v7(kmd)k z)4T6V?`Msl48iBm!K9?0Tg4SNs72MJ??=i0UqF*D&mnXqlu=jDT|WO&zHa1FiQ}oz z#7ikl4XgSyFmp1fdWEoQSu+8-rc9bOS&cd$^$P@34TQvuaCgze&^7Q0ec2}(A_3F$ zIbc3=%pz@{$rI|dnAatE+lVIp3+ZCEOGQ7Uy5R|?(4Zo9YH*#c!| ztb)71znKYRn>P&?=3zwh$xLmg4^PE~L>9d_*!%8fzwv|R>-It=Na|GN{?XuRIBwVm z)p&p3{cW@(LL>`3X{Ez8@LHnh8T5B;V*?QKLi&Nbe?MzNLzljDuVUOVP4n7Ee>%tS zHaSQFew9*ys*#U@NB?6JT#Ax@>1X1weqL-6RdtdyybB#+8Y@<$FnIND+cT?tHaQgd zLR>|st0p8MiT*{N9uI6e`4?I=QEyP!IG61Gf@@ZZ?Q7P~7S!(YBrL#T^Emo1at~d- z?yUwW;FYigGOGt6x)kr!mC*SxZ1?FQ9`AMtJZ_lD_rOq{AI9vrRCRQ#qdi& z_!l4N%nrD#qGdAF)OV`i=;?$HP-%S`_Eec$n&{qIkwVxOWsBg1bJj!_RBNtypjO!e zF-PR`gPKvmI{%z1D;~m_s}mj;N^C7^e0#}-F^SG50Xo-rV1KeLYA|d3%0O21(MCkS zc_<2FLwpt~79iIZEAd_d=J(yFlJPJ|`RzuQ9NQzQ>`t!F2`3Dyt_so}I<5fIQwEPP z!NKCRg`JmCzWW=4n-n^{4J(IC5Q&I2uX$6)qHoY7B znHRGZ6%9q+OuD58>RZtL{NI%%T1-V6i>V{rkU&WDspv^v6piPnD{`fkVIV9^`m9Jm zi#C7jdAUF|+ckp3wQPuqs7Sumol2~*J1{MUCV3D1A+@1d@ZANTa za!)H<%8x{FpBf7*M9wxOjdXXvH}+e82nT|h%5$g<0ju5KDm5{8pC9&zdxEjIM z1yt%DtLrlyy2Z=&$2d5+X=V8qG2L)Z4lRDet*p?--S8eoG03ejz&_L=s&0lfc9`R^ zxjk{r3qeU!+5h~=-VJc)_}JUA{>1&<{t^wjhArM-oD~_tO%8r8o(lckH+jbn`5^4S z^|?9kzwMMAAzn5TP&A&MA8BSW@V#E>sz?it9>(xG=uyQ9sOYLD@C5EMW~dDO7Hp6+7r(*Y459reM-bR zMNDij?PFUX9US}4JVn9r)R^8 zmnaq7`)~+;DF(v5a^Z%)$46*$1~{5Af}MGAjlNkMu?{|Jn>@?qF%suK+Q?->Yek9{ z+Cb*}f(j7>za(4I!R(}}@yb3;bb_xS!r3!>|1}`S2rh098Yb;rI>foSDNEWInuR%r zp;q2Z0u-$uy~%M@U@q=>HCr#D!>Wtv6T_aWz$oKs zV}2z=KL?-(`ulSa!3@k;k`HsD z&#=--b173xM2Lwt!-@_k7ZWp}59g8ruG$< zN2dFAldtoAz=NJ9QsvU)9Y&-ri zAnT+OdENoh-!StnU4_K>>!y`<71iI8<+D9NVDalA`!n;*CHNX$Sm;*+@(HR4A2mLz zrp>{&C%=mKRuBI-M7Ly4;n2Y#(1jCpE4^7Xo1%*meS1F5op!-K?Bgl)#lW&+QNEWG4PN6K814addg#~~N?21h7BVB;NrvE>EG>4BuO7SF%wRQfSDB(CT2dUC`%ou7>92Es+Ku*;wd2lM;gnS5@O z_5`xcTJuyeXUMOX%FNOT;jbg3*I)j@zcR4c^~%~wM!J$*xf)$*KrN4zk*|8>#elU7 zH?Rxebc>JR9WKgP!$FB_j}<(x-;@VLT2MeRk>#b8>h&&x1#{!68VxSRvMp=jMU8$a zqhFpm0*j(lekw7&hI`MH^;4(kRCOXmrt#457FwlYLL;>`n?l4Rk9Cm9Mq&l$#%iQ* zwnevck{m6R|L{(zk8*E+0j9SX#Xzc~92j!CMnT_&B=DlPJ@&b_y~Qz(S?i+p6qg%S zAC579)H#HgRpHv67oMlcTas5tvs$F#jlmg+gK(&G%268kbBw9kdM7e`^)%0vDi%4M zWHipX5zbNCfQ1YDGm~4p4cl_R~!uRC>J#rfcNUriFpL_?O6=h~f`ql9`^4uRtwN+c^ltJFhStEA18{3jGR0w)cj6c-m_3NhKgUEJT>w=Mlhiy z24!-M%n56<4B$YJxE@_^(;wSdlR`5j>GoyQtH_Y@lu37^tC}Wd9L-+h?%IRrrxqvC zz26Sp`K-d2DHYaJ1)$zJ+>Um5**0=Cfe6*cXUHcbdh2pIJrnDh_7_HHzjBwr<+&-UJJMsFeK3f8 z1iH2_L7~+!FmFVd=_4V&2A5r#3=_)@y>cjxhdt=6~Fkw>uwA9i7ny!MSE|- z8xutv9A@1txSZ<-+c~btq+ydq35Dp-JkD$0xTA z>d!lwK|bpFpa!Z=#uPEx_@Eaj1aS9yv*F-~?6f74_#~+xjc}0E^T|2K7A?AF5zElx zrm_%_Vkar)&_w2H*BsY2hQM3BZw?%UbH3+7s=djedFSG6y?JI_Zprgv+%%W-o}mgA zMMk-c;R%_%56K1ZZ-=dd=RNc_ho$VmUqJ2CD)pK85CeUo3*LNZgfeFziXIO6ThJT- zl~mlU3*PTI!OR~Y+0SuxEFNVvzlYezzTrFCC+xq$a)+zprrCf99-wzNUE5O<;4o!! z@b;t)3b3%1?-6kQzE4sB+nL#{?IOKQkF3QGhwnBBO`#lsR~Ze^UvzaF*tb!r3Kv58 zQge|sHSKXOYUN78Hk%kB&_r;i>P@5k;K!~c7@yqdC?iLc&WNPaz9DHJ zX6TVj6-~raYt~3iN<#Mi*rRLc2*mCr7;$ygJWIZ4;$BA(RyO$=Vd*ZkB?Xa9heEW3 zdelg(fId;X905CIbIlzO?_6S8swV-V9*zspxMe)-V(yD4cQR?V)|5R@`{~`|wx-mm zolei9f?Fjfh|a7=%$yk8|7VRwi0sa{aZ?HkO#<6~U!%tx%2K%xh&8E_7KAe)F*@j1 zG4epwqonoy!p=`aB4C7{`r&^;JL8TP9FkDmDJIXB2X4Y zZ7`F_sX7RH)Tx;lV#M;(`B6v5_TkO#+zah~2@%(SU8kl5wsd1Oj7lsx`L)8X%)`Wp zEEJ@8(-6*6hoq@K9{nZpUZt3YZ1AGYi#_C%7X*HD?uo*$gH8A&WhLb%>&o^x{ZJPS z1YFx7uM~)iV-VU!8o0;)?Ij7$`NLb!xuo)#HdE*v|9czj+EZXn1A;Jo&Vy(YIioSf zp3yl9-Fck;120XUQO=f*)`5k^Ea`TK!Xq-5TG12qn1`zs<$-LNfpQ!L)UtEcu$xkh zB4pR?>aPANH_)4nhN8~znIVP66>awZ!3mKDbuxrf2z5dO(VOvpsZ50?gHkwFQaiT$ zy~hk(9nfEi!5uqAK*fTmtP9q6R?AhrHK0bAY<57diOt#w*BZ{s0;dOW3C+p^uXhEo zR>Kk1^_Q;;8{{oGdz2Q*oEo(kam;%r)ZNgM=l)*4a9UwT? zB*Li>y;2B~k5UBbtjWBw6*t4M6gcrx&hEIuA2w`wU}Yu1 zw>k4(mS*ADCT@AwGkB!G5M@O}KO|0C(4`Eu2_-F4;4YJ-5Oj2Sgmv_^McW5C2WD$OEV>K@c}ZQ~3TETe#eJ~`GnJRAwPL;GhVd-jI={)V74X>&nH z8jl1&V>31WLu}d)z+X&NB-Kd10Ncx(h0Iv@8LiNgx(epsa*;sgaD#0Wly2gSQDRaU zJ|gdRDShOX7mpCaDj4w~2q#E(Wpip>9&n?V5V$-BROlNXiUtzu4*wucitx8ZH`sHW z6D=YI-Nr^!H%enDRFl$+hB<1}%1?-hKbnZ8Ve8{kRv+#OyGY7at zf6@N)IVCRsY6*;cZF04l7{>l)8&DIDducb6i+gcroCX3xnN~r!wXCG?jQl*Bd4W@n zHLT}AMR%wh#LroPKZ+Gb1r8mK8whFr4Ubfl>A)($wSd=Xy6^taI!%cDPR1z>-vbmbEF@gT7+$kO<0e9Kyd zgO?|PoYi&5*X6hl-J$Dhj4aiDUHrtS8-Oy0vko-bKye#EWmPpJd0<3v%TccW&|*7S z5uy;%4hNgLB7pQgt!l)AA!0Jz11~`*bFfzY0GSpj6?I;d<-`tC_TiKED3*y*-E>lc z{YIP+oZKU`j)zc}Z0=YuwMKy8!kZ5nlhgL^ z>5LOun>)0ux$iFCg=f%j^c|UI5o0lGz!BX{Ep@iBB_8`31C!FV0iIU5jD-OS7r%ot ztWegB#Vpkr_O~7EZ?}C$frhj0EzWZWRf!MING`Le8avU6l=}_;;$St;`nST!@m*1Y9Q&ri3Hf+@PI}$+kn^XQoEHb<2 zueX~q_(mDZafxLE;(>8XM+h~0(N{hbUgbtv<7#V`8M{1Nzvnfg`+xZ|`gg|}DqYT#A-XNr?=Fj4h zM_7=7W3#b8LD@Itlrv`;q+S#~(-*8_;bhzV3+BQ}_QFN-)88kl_uqB3Yo4KfQh~o< z3xSPKr`G!F_>lC}W%n*|e*pOxYR|5 z*v5aTl@*c_CiXY@r$DN%X$;5|)oiLTWf@H?f6ye?cCgmgG1j)d*N!(GynOY~c|9$Z z-5Di^($U&brTSbe^QKMCSS|Nf2wsN`PMrg8?7!E-D|nsQH>G#};bjz0(h`DUVjATd z7B5S8wv8B(g}hoa-*k>M@60+gOTi&SDC$yn&OEN=LutHGfQ>r`b};~ z1ktEMyi)*4iyN8l5Vyz%GT&#N3DX-N>lK}uwi@v>n#*6KTgQ&7^ki)s8A+P3783>Q6|HOTo5-?jLhx;9Jq(Y zq_Y(%{mMh&gdo(VQl*2WWPnrimC#LK^5%~WfQ7#z9rb-~0PHjXo@idr=(Q?BioO=I zbi&~sJL-Rny@sYVbVdg~QPVjH{c*nu^MO#1DnpdE+LVJA^F*hrKO8cMUObXU{+#oz zHO*y$YaM@_h|$(9@UJTqT=)WHAd=pic_6Z!YBB z+J%VsF`v4FTfN6pQK1m@hkifNi<6l}>=A4Xtp`0NjfoBvcO?YwkBy z-p-Q&wv7`%s0Pt+f*j@+GiQ@N_N|(lQ<3kVQR&0fqqV&Yqf*<;8fr1_q&3n25C}RW zpyg6Pnd5g_spv|p=*5}`az|wx?0)WxwxXK3b38{BVrLh|t!=HYPF#?!jF}CjE}{KH zH#EOnlrENVo18?6r(>FrT0-bts9C%X;Xa{=kRA1K;{|BxcH}UFodArpPP%)f%9|dWG~S{rQ}$)vax{FD99OH z#GY!Rr^?7)DnOw#?5JI$fm?VOhwQJh7Ol-5(H#yyYh?M2CgoQdxK6Cffa!Dy9*0&N zzIK?|djyjy9AD1j1FO`7EzKN{bfQrSXYwqV-k~=H`+#YXsm7kK&fZQD;8G~cK)^8G zL(Um34kJwnE8$xp7udBDoh)xwg<9|1uKI0zrrFIm6ZuG^Il3}ErX@TXJ&Cgi=m=STvWtY@SSUf zBf(F*WDcPswQC+DJCO}LGO1@EU;dy@p6#?^&4pLB_+>SZ2K|sn)8~a*07Y<|&Qli~ z0uixzR*+F4u!HXAHC)RPpIMh;P_^$E5Z)u!g3~#)^K+yZGNExx<#y01&L^2_oHp9eaL&A6VFN#Sxb4m5$v>^(%>b8` zi9B~!h>AGDX;m#8tqQeMGS*gGxa%0YlMsq8 zY=}Ctvwt0c!f6M;7H5s5glaLCTiRbTnWoO`&|I2;v5 zXzRM1_q(~sGN2aeorgP^nhp~~aW)c`$Oa{$+3Ur;2y|OF)T$S)vjNIb@I=HS!C)z= z8frRjYNc`O$=eo9rgi>Fb18xtg|oDg;U7uE9+kRz^8>H z%+8rk|E{4IMFlwtAfWPURFiZEqn1NJIG#%}Mtp}f*5$=PJH>t)_S;W+Od&>UJdZrM zK}wIn)+ro(St?E9Ajyz$hroG?5iROo8j~@M*V|1u-NptqQ~zTnwi5&GK8PvuJ|7KWL+`mb+N7 z`}qC_2%AB10RjY#!el*yN;il2pjU;6>_(d|dN{;rNZCDgDw1+RmQY&%FoAoBYbx}e zQ!iJ>@6GiXL$QL>CAz|cCb8q=d~DGcuBBW>+1SE`_JVqcyhfHetn)I5Y{k4aO)J$+ z^Q*i&nOz}Zfv$CKJuJ=ra%*^Ov*oE{80eYgCg{fL>R;;TVw2ht2SUc%GY4N+66vcf zcmKX>I}L#38A(s?Y5qIS5an0GdLQfDtHf^F?W#M4j1$-khJ(*K2}-gtM!>3&7%8vp zC^~$IwlMrbF?S^H^ioPg2Az)L2^&E9M+jYv9@LBOGS$px1t>7gWB2|ucMT3CVLe&y z{A&cFZ9vwD5_6napz@cC%n(yM4fKi9L0c({(odeM76-n?d~2Ro+K|QQX~!MJPl{xi zg?9FY|0@C5CXSmdgPZMuE^>rSUS%pWwD0L2cN0Dklml(hCvt&m%x^je^iT|0N0!d_ zohuLiOir!Tst@;JXDeJGp5MHd0&LQuh4U?awZJVL)ZmZ$1Q!m|JEp%6-ZF#A0*K$I zWQYS@V_XAxBp47_*fmHHI=Rrt43$}t7#XhL1;5SI^>LL@=K@d=wviGyCg7y0LWu`9 znCp^Q898YXBl4q$myvk;K{?K@?x_b48++!8U3qYd$D$o`bd!1HHVf(WVAC@?L-hn{ z5*3fr3C_6=zC5k!THt2vxpjXS#bC8q;^(OL2+X!x^acWu)c!uo+Llj{sljZol@_;< zOReEauHh39eXpCvefCjztY^!n6$%**G%1&NrmRbnikxkC&gI~GwWq@)sGxurRMFFO z7>i5DM5uPfd%{M6A?|5iAARhFqO~y!Ja&t_7A`mlKxH?a^3TBuS}`|0^PSi3qUR{U zf-d^QC%mCMD)52AeE?^lHgK;wi^~_xnF|61g51J6lJeFv9uZD{LU%~t#NEjFy!n1< zNBW>Zd#^IqJ$pPXO&!3JH2IKMI}))jFK8FD-f@J_FC98C-Mbp!WQuEqPkFO3VkqX& z=8bfb2pF2+c6Bkh`f2R@+p`*@IkSh!F$)cJ&}AIw)TI4Tz{!vz4=G^ux8@c_(r$m~QE~P==)Yy<)F54&AlNlB(1uCa+P8K_ zSAsG&hNBYHqj1CXM2`MIB8(uQw4l_tsj(hom5FROi*F}snrHjuGHimI*DU6zL)PKf z>>=0dw>@v1xrv2uO0?-G^8-5}8%+7t!WH(r(>(BxapG(dykKC(?SY^`yLT`a&kny1}|Lm=6_dv3t&hc|w0@$;@fbwT;Q`T6HgC6J5Bc z!qq0GiDyAp3Wc6s6w7QZ>>f5O)200!HTpn+QqpLUJ9Seo=Lf%`Euby~4;P&ohi!%i zqml>ZSONB{9Xb*bEt6Wf6m%*R#?u2- z1)->v$LGgnUu%{PcBd>@cU zwW<~-;)v%DEeJ(ZLU`r_0qD|5IopUGRdWX+z`S>2nNgg)u+$d~`(XpZ;&`5C;`JJ6i3QY~E3My7(tQBj=IWhHEU zy1rQ!9b5&OUjoIAs9>K;4I70Tq5dZBEXimIj(Tg?2EY!{!0x0aoL(WP6buKGEPoK2 zuSN1!L~l!?XSNTq1BUl9*FpD-(>Y>f0M0R9lCZC)dSf3N;a9QYU< z{(MEvyT;tiRbZi{WqdddM|~}+&_Ud|5WZF)OHWnITqEWZueyfUN_1YM+&`$nv0 zBlh%Fxw_Z81#7&baq00+wdw;@?f%dP^PvOBq4t!9jiIHR#nYtG3h`RJfJH)>dc zsa#bvjFpBSsHbqeN?o}S_A$G!)rA@yHYFf+=nmYRC*F}va&A$YI3RQIj3GwU#sPu% z5Dv-mj!5vZgaz7QqX7f+%8A>^phs0V%^14Q@Ds|1qjsfra-zS-P=^J#HAPjfyoz(Z z#inJ9w}bWM!XE%o!YH6YB>BWjdN3aU4g zewjA4T561=UI#-Y{OeMUMVAi)73VV$l5SsMs))G@g!bZ3Da2A^iMsG1`=v~RME(|3%rh#h1fGH*ZYzlgo*s-I+rU#uIWTEVEQC*EXZZf9O3(K3J7 z4l?D2rQuk6#mei|o{`oD{2{RjrAO>)3GLu(Dcv*ENGXsox{Vb9SmUml)Fz!=g#qh> z03heYBy`pbO#e6uip1j;ikd9-ByCP70@3Y87~$Xo$68()k)-AQFF19j4Lhcd6x0+`B;CZr%+vPH>ue%tb_w`~UVEqSS-7~J>R|!dZ-RAgayLT2r z7`lQ$`ReYCEf1~z{<6BzVnB&ZSAplvo8sO9EN0-l=lAR023L;yUd56!eY9)F4%H7= zVR3{$k}GerH=(L|{?bP#$^1>UGOn?CIP~W`AN5$ys8~$h%z=rqMGJjhR=v84+8ANz zwqCY3>7c%e3T~{KGb^r0rqn}f-2ONFT_uHP)J8ac*WH9+MVZ z;5xe#lx*`s?7t%X^kS-cRuPhowS4z^VsMFCoT+9!;Emw%jA$3%DRncZ$mO1-RU^2D z%9vuOy<*$Z4}YMVgAJFt8LcV9^2?Q!Ed^kY#J*rEot>)rjvxHZfI)H1UU#=yOzcH6c6zd8&sht zD+Kxy9XR-41)ntlE|rq%!=!0foOGmmTc_1$np&s5+5$%&GW)418lL(16VaC*ByUjgV{?cl$CdudNq6~x%q7R|6a)P=2F&LJrg)cK zhg3_sroQWSXkOro5yr@~iNql`-6VM{-_`@c*%`*!A<^(M@H;^!Y;D%0qylBqybEPjlo<<3K+r zvFS!L=;8K3aJX_7yYH(CaLmFW$Ty$kP8+UW<;&WmlR^haa!c$J`U&P9glXs6YJUyi*Rl!wbqsuF4eDHZ-?aY@dVkm^ zcXl~kyP7Up3-v3p0p?d)A+D`PgZUixM%CkS+dOe2*ef8A^8u_WyNW<2dMK19eH~dfOb^8OAE1 z8wy!K+xPNoLN$U+XOF0i9br*$Wc?ces1dVUBej`L%yf4>C6jr7| z4zM(V`(q%=F!UN}cd0}@e9$R2NB~v-{i+iG^CWKM9y6*%(aiHgOuW%b4W(`g?Ob9= zAm(JtA9cRoA~u5Qq>#ihLsW(>C)r}y@X~3HSA5mC3ho0*trnB9wA3zHS6o3{-`HYQp4V5X#u0st`sRUfzV9n>E zHclva^d#E)5r4J9HV1(T5s5xyYF6JfPDHsedA+`PD~z+#zPe?LP8#)Kc=QovY~7J^ zT?!}_VeAxV@x|%dS(y;9Y}nWGrK@nTmtO8W>bmtz=W_87+E5ahZL;6mhZH+q&rjHV z+s<_faEAk;XGx!PU_rRUAY+DEF5R}I&4`k36N>MyOM3;!-#uWh=X0E#BRQ*u_dIZl z2}8~(#<{S#_x#&6-pfD-pA`-KjS1S?JpD1Neo%E6^zLPbkMWTQGLxd1Wz-xD)!Y;u z`yF|kI8~m5Q_a#_T%Z^D1lWs7W)KXvyE#IllZSW8)!uvm347)OmbiRzMYgedm%p_G zR-a`07t)qmjp1{?+iHODKyO=b^5gkHcRJgHtkYA}?6FZ(Z`zZyOB+ublmR}2 z@te>aGUih3#Lj#|3uRu-K!oe+w({Iz>aKD&&*3ZESz%=5n_R|5ynrgQ9`Tv# z<8S5VOTImGj$9N#cXndDK+)^d@W-x(OV`t!8=war1EI{i4<7m-z)&Uray+=@KHnV4 zgGfX8fj%O$H{(DI+*YXj7D$H};dOKQfu9g<%Tj?&F^5-wW1Y97HrAnAgY`>R6cCp( zvFxvk`k9B zMN=nm3FySJ4?l59yblVr*P2W7Ggq#5UpIA7It#-3D{;pwz=KQ`zasHTw^m*rUrbV{REJ!J-Z&XSD&Iy4Qc^lbl4g?=SE_AS z!3OV`ZB2_ zABo7EKhuBS^^YrCyYg_H+(KdNm?mngRI=XFI||3p=kzdvd{x!)UD*r<&j4RXKRb74 z@0ye_!=5bLR-^TzbTAW6CH5R!1|ljWlbs>2cjMiBe31VFh4~ee1_CJ5o`D><*L!@m z33idRHjyC@ss{o8`m)=$Axn&sF-+aUm%~*rShO;)s$R+=nV47?QnC%>2s~s#dB>Up=E3JN~}xGT8}k0s2ZD;b$3e-8!mWib8I=X_Uupi zyP|sdCElg|>%YA8^&Ogt3|Gv#xHdb@1t$Y9oC1GQ&q#V;#me5e!jN)H8PT)FAzr6q zz;PEDqt2U#`Z^K2TVR?8L7E34-@d_BD3~p*1<($Yw9}DQavZXll=!|8Edwj*m>Yh) z^013drYRW9h7CBq@*AMWq2ZK(S03SJ2ds6Rco>B-nC!gLcb3j$$|WEC$sNpJgb;Zz z15#QwX0b;YOu)8B6-|Dc=Omc#zn>&*M_h&>H1XJh?cRp;U>4Z){1r zdxpN8fX#!zZ9Oo%i%Sy$nyB+wN=aI<==hkP8{amK@~&20Yr<)M{UQBB-At~gX$3yW zpVxB}X~C5%nhcyER57K&%vmS07Jl9t$)fJm)g9%yS`)5Yc4TzzaGl8v++e;6f^vkh zv4#l55W8Z!!=y6+yBqbV*s@3TkhohaWFp)Do(;a|FBn@aM`ivEs802*LOEgW5BrEB zJZ<*Vha+>@M?@`C(@^(1E~-6zVZs72y*<%P?xgO7 z)RszXFd!y55iV`&y7?^CW=Secy6SftNuh(#DC?dCUuJZliX8D$^G7r4kAl*lC84Ud zdIggC6Z!Th?Q9=H9KH|$FPd#V@b%d zA3>5n&Jx7Lq28Tlt1`w6C7Gi11OpCM%iPVCB;R#;ZaUN8?3Gd1Ac8M4yGm81rqwmH zMRyeUXf!m_=^v(%r<92Ar#;Uu9Gx!%&5ZP1Rld_$@D6YoO>+=+HIqF9#eMyeh*XC1 zBYgWZ4F=Y$Lw}Lq|(Sv1R9fk22&6DW14~802!rf1FM8Z+-rwYzI5-Uz^ zgB?~`5GU;op=l$5o$=Gq7aZvAHG?!X6mU4b;ue_yy%W(V6-{~@a0LU(kDMamM@00P zT6>@c5P#P64aWxZ$P!eZ{Dg<;Wqu>x;Xip&@2}{^Dx{Jk8jcl=(!9^xu*>)Q95gF|i*4uL| zVdbD7sI0Kk6JLN_SxxDAMk#&XjSBoS%7_rY<9r%05!nBp)e1|0GwT&275WiAX0XB9 zH8x2sE-mRLPIP;?+H+IIz&yfggWJSnQpV3Gv=mqybg{j)j>Cf;93SrE=wKK7d%M`!7-4;V zh|$^rX__LAV?T^5f;t>g7$(`AP_zkgbwrl_WGfa)WgzEeogiM1Vb3m+pPWOVU%`yW zu#<_i^SLv5X00_`D&=r?LC#(S_5x(j1l+kGx)89Jg1}zo#sL!|S_ncWrN}$IL9sd7 zEsr+uR{!cZ4$b;d>DMnW_5b>R{5|{m;|I>I4Dq0R#c1Bj&uW*{bgJ@;zVVHpr~l-e z-{fk1y3iN$BKwj0)^B|(KKtZ_dh_av&#Bk7M)s|xp|NgctXs3zu9I-b0Nr=Mhs1^j zH}G-a8z@(X%_NXz3%Bwb^$6Qr+t}aR!R_Ni+_`;(qr+Y7?QUazZHVEZhh8^Dn#PFv z7)CP8d~8l`zNB*Df*~0LT^W>R9ZF&IXTDG z<|T%BnWOZ91&oEr>*&_5!&X`b%$${`K0-hpZ8x(wl5WYbuPwJYw71aH?vu7qs zk#L}#OeU<^xp^nMl@;?u9&ho1_lnRPdxFY{^nb6`Qzzyu)V7*L>U=!9CoT?dc16Tr@6}lGL5Ng%vAm;1;=0W zsc3JDpr@xD1N}WXe0Uh6BjR=lg9Cl&?de2&Gy>t>RHW%IZ{70 zG)|kY%V0S!%4G}LY!UH93d<{Nn4O!)+}sl8=hqNV=1?+BsP9jUIjlfM0bbOnLlLO` zgYbd7H}-8K=( zm*8!r;H+%IUR;B>nFP<|Do1eF=G1jAoy0bi!z>k5!k6l96Q z%t%PH2fDkx-}_fz<>N<(@cQdNz#sk5f5XN~#Y4TA2ND}oxQW;B{kIMrFS{Vj_=KO@ z9;g+f*%yBPDd&HD{Xdppe);9xo0m3m?&1W2L6-_yGqal5@+Xp+-eS?{sZ0&j%IuQc zC|8k=_7F~=I)-!SCh^#X(-<8+gjlQx(MVWM$yS8cYAJ+UQLL#ipEc3tS`bx6ohtbq zZv<40GcD-N3Z#a0z#l?aXB1;&gSc?v6f&7DEG(|zr&p)({s&Xo*i4E}sShA3s4rM) zdX61~I(8J~$Psuw?Qp_DK-H=hQqm};*S9WK*O`}MoQ&7&JMu;=dd$?ZK*}YMlwi^) zVXO)2K^k5<%ULcjj^rM(EQfe@nZQd!@iqwc775`C9DJ2A#8s7S`E?~5397kY{^H|C zTR338e{IIOIyLR36HCm@#rePgcmEdQa6o#b&(6+2xJbDV)Pn5ox8Ig0o$P9X2ep9X zn3h?{=MBd;U11q7j~KjCmDW^>!NCEX7$3p;^OHC^aSS7)L+FcjA{YwDElM(W>LmXr z%E-2#zMF}#y}^Q}VM$U|6G0PSsj?yp&U|}Y2;)Z&p}Q-J6UWDpFNnz;qC*KsWnD)b z8HPGO4jeiRuP+AX)8Hwz(YxWiPGcoCj&R-ZgVfDP>c5QO{<O({Wnpw7Ej^iC=P$n7Y-NH^o{BEIuA7f(!c=5Ss@ceU6U~=Lpdc;U@ zwUbuyT|*O#pbA2pI&FJlH-~BW{WZ0qbdD3f^%ucu-=mcyC~J*}C0Ry1$~mq?7Vq_*I$CtxkE!&_bl+e~p}a-5oF zi#t|{!_E?T8vtM7j4V(E^HjyMrjU(j#J8nswCFf)xsZ)}WD!Sg$W|ZxI=CLO^$W!2af`E4hfPy_7Wd^!JGxHKjJ$d#3R~vFUvh5+^RS}8SsP9E>cpjOm#Nui zOT#n{pJ;ZaOK?Tc=Jsva^YdWwI7p$$smCnBNQP6o3c|00dN)9wn~FkKgF!vf(H6@8 z!@u`;+>VY8_LtxP0p9-c-(YR&vylKF6e4(j=kNbE{`gyejHRU|I?y+vXL9*L!?YeH zMEepa>=b}Oh0@U2=qR3h=5g}nFMk1}V}t1I3`v(knL~=)Qq0HI418%LS>B!H;Erq1 z?p13$YC;oxg-}BrwE7Qi>_ci%5ROQVPgm)IcvUwZ+0d*KziHJ`ug1NRVke?dSav|f z0Ni>U_VNmx)m1p_8$dqmQo|?{&&`3e1y0Frt|&K%LTCH|ZMm&YOKxp$mO8^7=JPL} zc3=D9D{ON;fz5av>EvfG5#BGB<8gfRum1*FlM;WZH=M{B{kDUPE|h0D*lCd(b#_F3 zN5>A~Z-41UJbCdvjvX0BDD0~$=-28q4eDZpB-i*k``@yfvHf&**I?ZCY30$XB?^a9 z)DqPrc%4sC^;Br+v)2X-1)V~*U1)|4p2)yk*?=><0Be1NyXh2T`GTu>Zk8~2lY%dR z@@tAlru2X^ZJI_rs_WU)Low@v)H<_`JWBa3{Pcq>SXo-Tub1Pq0zD8yN30#AC!@&O z5#LtH={3skDGofwLC*keu%kWd8y_E4UVQE%dG?tLm^gj}ZK4NO_e`uc37fgE+fP!Y zrnF!00h1l~HMtEnMMra>Y%3}5I;QPF(>bd4NY$fyWimjr=BfokUXk{#sHRqwLs?ZM zQk<}St_!tTgtD1IX=)bc%slMHMKH50+PSs@6bZpRQE(N&yNW`uhXUGCcULg8y13$X z@gRTc&>5`Vp25|HW&EFSeCGgf(`Ofvt{8sqOBeB9|L`~PkN)u=g>TMm90v704aUzA zf>8n<5^ad5pLz_x`m0~YV5|d?aG)wKiYCqLy{=w6Y&TNshKk~jDzlX0tL7}#77X7- zQK?;x+Ppi0osC?l$LIv(%4yD>BYvN+eW1Tvd*Z@b zJo&_cojL^2=ZOTR1&Aj^6I}Z8KzqkUMNK_YM&})3+D#=db)2?_9cu zg~fIGb+P)4jSk`~zxW)Ue)23Pj)(4gt-Vn1=2xGm+9b+QIbqdSAX4eFD?-mEU4S{W z1Z#Ey#_Sy2Y{unQu|(ixIQ6b_?!C`AyA;xt1dY^Bgb@Df+uwt29=zNA zupky2k@Nn^^afmCXBdkAu*b*~jIooHl77FYs%OufBu`zuAp2UPuSDtzbF~(;&){i( zym()Wr7~{KEa5xf{gDiw`NcJqt2H!Ju1sRC-6wxqthW=9a1gpsYP%1pgm1U4lt*^S zwr9|U_)$C!Yi=FZ^c=SqSD2lMyPTO>aC;rZn*s6ORaEjpKv$=9Li2XnH61I*jbdfR z`Mj?@Lqh|&c=0hTE@rU4o)CpU>UpGxGjfc9p6B4BV(aSd?V^vIo0J{(SZ`O=RUFg)|Sr~ z4DM7#s9t;bl>@yH4;w`AeEZwqz{@Xx71yrcr0tzUda+E0Z3mM8dxVIsD;n`lPK@Ki zqi1kpd`yrVDwd*6^QgN!o%fE)X^SG0$zypXF1M|6*{qBmHCyV+!WnJa;!XIWHRpz*+}&Zxh9Pk5YD3 zQTWZ@{pvqSMnVDO|9{_2`x}Bb<9p{{$ z07p+S6!edd93n5i_$LRD&8Ou0xGT20>s#i zE^M50MXR!?{dX zDRlI+f=AC>KqwT&x4->8d>(P@?1*4!uos7h`y|~|)PlseRePMcMptK>e9YiL z5B$O#eeb&Bomn9}py~|p3vJ?b2JZ3-%2T&tEiN&n5*{ooPPjJ%=3b%1yX4m~)fQAY zUC%ZR%aj}V55N1Z1HAN~4}ANT?~2BS9Jnl-2vC*xx=c9^pkLEyC>#pn)Z|f|oESsU zuSk3Gx~ePTJJ*?A*B69$adO(&Ok;U<6I)rK_2Z#G)?E#h7<5g8BBcHpm#fN&@x$_{ z9t!z!V`?60!M%boeDR~JBZ{AU{sNwP>KwYe+9WxR)vMokZ@BISRkS6POb*`SD#|ye zVJ|E)H<>KM5OXH%Cg8nC2!FGq9k+ry*&vLR%0>~kS&$c4xP9XQFa75OSEr_+X(6;l z+JqNJ)N%L#2OZ~}_XGky|Di*@n3y<<(UC!E!Xh<_nskP?QM~r(StV0h+@4*=| z2+p-fFwozPXP$nf5kQfUc%E{yBP^=lXgn2(W|4w>-M>Ttm2OVMx^@fB+#*x*C6{~d zI_J2-2>FSs;?k+dL$`kAxBClky^?fqypu#BnfRGXl=ng)7)EDzA4)}`5niI6Yw4!t z^)p5eG4LLruKHuKZt}>v)9CH#lGCG7c>G=(mO`b&agoaxarwO|T)uJxiPV<-8m(GA ziFU>ES{$#v{+?Xj#9*P=&YD-Rwzh~2DzOR)i2j$DUfoqV+_l>55j>pVvCNE|4w_V$P>rYI_PpTHg&&qu>?J!JDmq|!N=M9Tndf(SC&DwqR4oN&xP(OV~TAroMae@yXeL{yV>JeB+yc z=82i6Y+@R&`S9?OKW>PVOWC&3HP{Eo_I#k z^Z?<6`8b?T&Pf*`G)jp|MbbRb--}?tClxFj3b8w99{8RslgL-v+rk(a=s|C9C(@b9 zQM`FI2>5l`5bf{ll8>$3Cyx2H?P4RILOhX?D-^2ZLfzf%GA9y`m$}fk16bqQHP!xm zA=#^n=PfhJE^(E;!4!7or5DZ>e7b7?*6;oSa`AasrR>38<v zog8SRlm>LohrYhvYSme(&T%yq@SEo#?sRRj>co0FacW`=^9!q(n_rbdA?2{DiXqWx z7^hAi!T8a`GAMYpH6b1+PHeBg`2pU&azoaF1bVvL<>Oy`{yZip#^mRB-kt7!NJ!-b zKcW=xJo?z!t>63?FBUHSc+q|9N7FKR9J6$Qm-q9H;8-t+8ichf^c00002MMWQE(bm zsH*t`0d#kFqqDO^R+-ry^5upXeeEmTJMv-`I{(NC88o6|EV}GsvQ>ye4fglo^yCpd z|IDMZa2O2w<@brxnRwi*uU*D#Z@h=;TZ^*zD6p~`mkGJZsl@H)UwBMv25rx;YRu~9 zDU6SX$|-+K*L*kqdSFwhK6`F<0n^jdt(E5vh;(#-kN^ykHVRo*O8uPB4hW-aRna2h z5IQ^BWd2hzaN|4v(s|Qh*WQ2YB7j5-LbN1Am047@XLl45#f$&)3YEE& zplQ%5L2PFb37NavV!l!m5<1gVa}4rSR6H=Z?!RzEJ)UwIuMJk}&%VqE-Oy z7rb)B?&u7XM9B?s(~E#3ENf~CA>x!Hwvu~#8@5q6>b}u;|AxJumRJgdevBR-kO3ri z8WB*N@k&|}4hLo7@r7s4%ODc;j!JcVCogG#Xa&$dAv6SqJ*CMs$~g54RY?vZ&ZBM&5)gF;-i^_Co$78a%I5oY1o3|F_eS$!C^2DgT^$Qmz znWKG_Ak|%-a&0Q(K;Qi{3{qzjR&|rAuRp2lN>@#N?)i#)Qz@FO)%9TFI}@edHEo&R zYYL8x4$5ltxijPP>!LF+YExn&RdS*E&W!zF>rg9z_6f!-2InquITw_lv6`BE?mb_%@n$wmg~=ZGR{7N1f{QiZTU!h3a&--> zHQp3F4-TyW+AlakxxlfS_qgf71R(`*H^=5w~{tRM76WN zD}uIv+_fW;<^Zb|{c6X#?fW6$gFw=lF}u&AQx&ZM+9y<1tDZpeAP6}in#nmtb~%Nxk5pT7`U8bAqgGFSRIW4xXyw`hM5rytihXr|`RxJIbX?zO$!IU!X(ahUt~7T-D}eS1L7^b^ z0OG>9$Rb2|kP*kRU6$Rd5aCVBts2i%^AOT-JG|Gz;C^wxvUmqUD}eS1YL!4#0vZZI z)ig2eWq88e4k$UU>t=HWJ(b=9Oqq^S%snzOeE4sWwyZh;ktKu&6KZM8UFKtRsii28>u8Tzk^8ED1rgi zbzN30m%Ri7a?E39xol&7BQ8zam<$|Rb-k&1T~tkncO38^R01(YmO`-V8FP&zN z?VA7d8ASa3&Jq!rT{LB9T%=0EzLMSWg@DfL=Gu#kN}Uy^qg)R?!Ne13=YOgxezc-+%Hp ziiNVRM|!ph<8cn8K@>Nc%8=!iHM+XKiD<}&NI?IzpYq3sRsbCUvF>4f@!6O0%GNhv z6lYwOpx_a{1_EJdmMTo}AgrM?U!Qy7J`3 zM{(rHFrsa-x?SbYKG-MKIsZ7&3ZVPI*w`>aejTs9KgDxqI7i`MW84#CE(4ZrcW%a$ zfvKCfq{YDSU`*PBRv3*nk{4^b+QYZ{pcO#(hsQ3Q1ECr&eQ*__AT|6xWwT_mTOf4Y zalKffX!&m4nj=TX4w18GCJ_ng@Cnytp;ks}m1$Pl&K}PAX$8>z;0s@T3A!(eZ++)g zbVPiX$4JU_%$pwgX~uELW9Ym+yFiDp_mgLyei9>x`r!8kE9QQJ&`z4G(hp|@wF2lq z@U^df4bhG+3=Fp+6VGy^=5ok1`hEt~eh%F3qt z=3AHPq2WPvcC^bTE0z9W)i+{~V0lo+a}OH3#1%fZXYx5gF<-#!)D*&9$I#x}@AhynN+Def-!MVm;mH>+P1~(R5cL{qUg`Ko1D9{v*(QK`h*Q zmpMF?p-^W$#@{A{hCGi4iY2q>@|CM38i^2Lb2-o_d{TW6eM7YsKo1D6U4$4DgXe*H zMv*ghl|p}C*d8#BHs-L<+}x5c8VRXGgE4aP@iQ1X++SrlHU-g+e0ncV{bvOt_*((= zfUtD?O|-Z7VRY;fEX;r47RuSQFEDuBW9S1X?Nm`?>8)JHwd*$(N<1PogxWhI=!QstuY8YgYrjKyvthC8iI_rGQ}C(boaWh;O_ z1~`t1Y<3gRec|U2j6}St>$l6QrYxyC)f|%vMJg_Idp6_dp-Y#q`lzBP;c$pZ!Gl=0 z)Gw?UvWO+9kz8}$ERXjof^QF4-U^_P2fy~4UyysyU%mYQct`)SOdu4!<(NjX$^jDb z5t*4?>@ZC$P%c~KSAO|R@CSnEi;2^jBOMLVBz!43jhuW$v-M!&PzMLCYPphD0DT~r z3aL-ZOVnrLx9Q;R2%24U&<}Ra;!Xb{tu5^1!+Y;s1CaqV4!c|gRZW{HQ5S^IRXu_GqAq=E@(4zTW9VoL${><|>$S9~_OY6WREmrZt;NdJP?N?X zuLjXw6cz5dSV^#LKme@(`uM<+hKskwjs(I&PyMFvw>>D*0JWoT?Q- zp8$mV3#D-|-ot@_0phIzD%?ncIuuzaX!Y_4N(1x^f;TPaMNge+-de zu#YURPL|_+MpKhCo@H6cYMo&zq&hE1MR{awsWqlJXcI-^!M{i=|?8b8|DWwjQSo z^UGv$eg$KrBN!SSL~n1mv{eWMb?N^_X;llcHa^|N*WWG2SwY=Fx}N`3f<?|z2PPedk8Nem*w%+L+VssO<&D?hmrl@=6UTA(>?DpI9mdd5Oq$7QT4iFE(nbJr zsh8L|%J0&mB8}jw)S9Ra9$~v_nl6&53|7`QFf+S=>({3+eQOT0b8EU!W?}MgkRf87VbmZsK-OzPiIIb(L5e%aYF^-*1 zXJz1Q#*4g0QwZcm;=k&LP_}g5tn(Mk5Ou8 z{64P~^3#-2)>4k6t#godfR1y<51W?TXPDVYYAYL9T3yp;=0ZwWXB+M9=_Fzm>hA6! zU0v-mM-uAv!rma@4?x#-X?H+q)&7Yw*tYP~u;i^+DkGmSA)Cu1l@eB&8JGazQWtSgbu1rq5k{pQS~B24Op0G2=CL%^>|&$4JFh(I6+zuzxcqKaO0 z#gx}HO=%4!S02NZo@BxbN(7eJ!i3Hv0bE(g0x5CO1SnZ2z!D{FP9fN81<+><<#HZL zuZTi{K~;TTXH+ftb?W2{Rw`M1#q-!T0t^Be0>=;`BnBwm9B5~phHRJkU4!|`rmf_Q zHc6!mMAVL`QrW_q@@g>ViA0$TcV}08WXxmoMokW45W+-MrwKt4z$PJNl@hY1P`)10 zm6WcK)(Z4lgX>ywUBEDaNZ4SM!WR2lAP_aeUG1q*d&hEOBhgvN6?>V>`WVp9If*fl zUVwCXjI?`f;=H)ix8S7gvSYmxNZ70 zJr3rkEhC>jGIF}y*A;VH0rVM0p_q|3fx{;raVO3lcOQG|Lh034UQNv0n3=OpJ779q z#P!flp>zpzW&pi}D1y-6#z6xd&}#Y(gwRGcuy(NLk|@GJSeX!3AmBoxCP{##s*ofh z$WRq|MJJ{1Xux)iytll$%%7V4DxN&|QtK4Nw zFFbE&jZ)!Hzxij0t)jVDwq4;K6lRNR*Lbm+ZI literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..99302fd29c27cedf795f0baf7ebce4f122dc1f34 GIT binary patch literal 41679 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

B(d^qn4=&$78n(e%8e2dVZODlntod13^XFjB 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 literal 0 HcmV?d00001 diff --git a/mobile/android/app/src/main/res/values-night/styles.xml b/mobile/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/mobile/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/mobile/android/app/src/main/res/values/colors.xml b/mobile/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/mobile/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/mobile/android/app/src/main/res/values/styles.xml b/mobile/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/mobile/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/mobile/android/app/src/profile/AndroidManifest.xml b/mobile/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/mobile/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/mobile/android/build.gradle.kts b/mobile/android/build.gradle.kts new file mode 100644 index 0000000..89176ef --- /dev/null +++ b/mobile/android/build.gradle.kts @@ -0,0 +1,21 @@ +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/mobile/android/gradle.properties b/mobile/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/mobile/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/mobile/android/gradle/wrapper/gradle-wrapper.properties b/mobile/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ac3b479 --- /dev/null +++ b/mobile/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.12-all.zip diff --git a/mobile/android/settings.gradle.kts b/mobile/android/settings.gradle.kts new file mode 100644 index 0000000..ab39a10 --- /dev/null +++ b/mobile/android/settings.gradle.kts @@ -0,0 +1,25 @@ +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.3" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/mobile/assets/icons/app_icon.png b/mobile/assets/icons/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dee292153ebb622f8a2a4a3231f211dc98c71f73 GIT binary patch literal 14039 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 literal 0 HcmV?d00001 diff --git a/mobile/assets/images/logo.png b/mobile/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d4705693077951b9920205e77add1bca3784a40d GIT binary patch literal 103697 zcmV*6Ky$x|P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR92q@V);1ONa40RR91%>V!Z09q6~TL1t+07*naRCodGeFvZ&Rhj=c?e=@$ zeZAzpyu9=tNJtreHD4N2@bBN_1&i)phM_ZUe@qEAH}s{=5&WC_6n+paVWQCZrif!wBR&o?@=1CX?IP-d?z{vC*D2Yt|tF3P5ISBiH*s zT;?B9hfsHns@uzcb3Kh(E!7b?VMn0!ft|4Zt9Gn90u_yb%hj;)Y5>gs{rk0@JN?Gc z&@MBbwmpSH(kd47MlxB{0)YTvhCl<5vAw$ZEW=x{yoT2f6>UAD=kv8%(GJelKA9Gek1*hh10u3WuJbp(!l1hl0~m#TNx1swp7zIt%bkfhI&oN0+SoD+abVG$sVg<#{Nm|p&g8S01E^k_xknGMjf3xzD8YY3<4)3joLQ8)VoVIyA5 z7qgjMrXavBT?%NA3ux$eE|)YdeGpJJP$<~3Yxh!+E(fQfLGY-K#kg@IGnQIrFOt2 zViR%0JG|+@6%8O%Dhj*Eq459>u%l&gk%T7tkZmS2Vi)tOlbQ~!v_#hdphX+o3TYe_ zGYzBH5WP1ZU-MO*(YWx!3+09zZg9`8mN{@@J9q9>;N*f-`I75{gM$YgQ^AiI+PGZS zW~^^OU4yy`bq{K_R7c=Nj{rWzYN?LE@gIS5@OkX9$BgaUQ&xNX3~ztG?JbzOpii@E z#PmdM%M%sD7Yy5$R}&*x%r#+yf6ZUDr+B3wfDtntCQVq;r3Hfe3H-rw^h!S7W5kqi~4(0XSFy z7*#0@!;iu=g+0z$_#182CDiqmP6*5!QL<3b3@~s8o2usIr3z%JB#){W3YL}0*~OIP z(-8NGy4v{hrEp`oE+j*0+P4p`)}2xyrMZ6=0G1Z%TOb$DZG zg#h(1>N3>7pzcJimg)#pJOWifs(7fX4PVL;Z~^GP`$XR=_nGxmPV@A|w)iEc1%tjw z1jIaAG|W0PY}R|UV6>RGn=^K{K9?@kfhxnQAnOxb_dp910A&w=tOq@&lXN=(E#ST8P}>wYYMhk6|hq@FsEghbG(C+Fy)|a@xrRcn7zVo%hRCYMHp~EK zP(H}5Ox*@$wr!mvHyFPeSSP2z_gT~JxFY5dYdNAe0E_~ie2!WhAuyR}sVWZ9u%E== zGEK1n0L?K6a120)f$iK^4opG6V`XOmu(*%hQaMMZ8##v?0x>5bQIAtl>i{Jzb;=H zUVwqA+2DBW0yzlX12Y72IRZ5cxf6qW77*-WE)RKELFx-BY}dsExDa40a27tOn|!8$ zlbP7AVcnE~#}aT=;<2!u_7EPAT6O{3Oq`Qk3PFlX{^m7!J)p`kK)Kg;0g1XM%abYr zQVEPev>o6fKoNw<+c@h4s60TD`&s$Brx=iIHY-Evq{Nab8H9yKER~kQY)ay|@0es^ z>!3-GBw%6S=zyMl@<~~+V8KiL1Yg|g$UWVA@4fP~pZ!dpc;X43gq$2{4P}3qqh5(x zE!7ct!3b0V=>ZpaekLEw}6jx6*Cx*|Wjl+bdz+EA1`N7|~DH~u`#IY>&WFpt3*41B}*ZGNG&RGgY zs%dan0Mb1AObc>S@(e_I8Jw$oa6n?&jNGvO8Cfy3Tb+eswWg*fwSFS~S-yO^eCIpg zkw5+EPYQ5LeY+pa%TU*xNPVsL<@k@l@TYM6yHf4J%W(uiq$!F67qk^z(DR<|?u0)d zC`1ZryCI(`HV1s(afW5K!$i3)pUyNu7gU$eXKHovgu%7=bl78q3{$D1L~bDHTCvy% z(*sReApnrzrCI<86~zY*0%mm*F)XR^d89EMl=?tOBEf(}{eB4r{o?a@WlFze)J;(w z0l~mYsXHQYnIP_kd`1BiL5&}PURr_+Q;#6$cXUeb^H4xk0w4uM0IPBUa@)D!q?s_9 zLvgq!T($I-ktylnqXLi949VjjayU6PN3>!PAJk?rSoq@V z`()YP&EoUYD!SZm2G+BT)KOssm9Sfg>6L z4JO9=Raf0^tyu9yK-UYAY*wo)6mku)6l=;_(h5r23bvpf6u%Wy{6@&wV1^Bem}dEW zKqvr%VJO=&_}I{>0HQV}h69_-;Q`a(iX0fakWutg#M<{?~@2baW$4H zAuK&;XX1DQ3w1qVY@_I|kj+Ux56uiJUvyeHP$y);fQ>Gv1So=t%OSZVkn`r<)sbb1 zV;bg+N_&QXyXb=L8Gr?gE5=hlN;)I1D}cgpH|~QASgIX*>d!hrs`dj&f%%HV%HbO1 zmQoPsL7yfUZ+c9gP4>&=$&;0Vfph$c`#So1dchn;WJDvWSZJgf3MI}$AfAC6ew;Zd*s1i>T6~PY>3-xq@|%jnrmvL#_JPA zDNq4>f&dcm2Z~!F2pIq!4dN@I!2$?2NH_k`X3f#}(CC1?i1VVucmZu72~!}19SV@h zNtKtZaS%W%wPib(lXBMi*EtV?g#ZUnCtRO*#PhnG4>=|D3@GCO5PL*DQt6;FR5I-J z2$(6uJG2CML||g^gDWgRmo$6DUu0h{Bj=oRj@)z4J!;>};mYhn(-WgXc7V0nq4(IYYKVsbY1P(n0{CcPZ(z7|#3|v3cAkS%O@kGRe0fK4g04|2q zL*&-h)F|!Etx_9}$U<;T1|uAhE5U_qw58t24^f>TTv2>r0HQZ?H{gg+2|l=(nBco; z#85~$1ReONtl&8OBXos$;_L_>|;{b))Py#24$jCvJF)PEIioz48F)mF$?9hdQ?i3iI9eE%JoUl+Q z!5?hLFE+wIXG!s)dwoQ#Qzv(Nt5%)gKt09x0qDB3!@fTXU`ARUdhLM+9+20)?scjG zInmbER&^|Wm6QEJ zUvTH-hA5J&uRqNPUzZxKkZSgX>pC)-bXO*}ze_yc@d3ZTEtyI->bXJ~M#X%&YJU=$Ca17>71aPt5W+% zHyl0)1{bRT4j=|{4j{R^d6?q92!vR-0MvVv&KR&wrB1Qs{z25SF$x3gp^6`dB0P6z zXQy;^b;-nu6J^q*Niu!SlchX^iui5AO0YB-+ecmz5yWlA@u9& zv5u?m|N9+*Dj@y+KHG}!jNH)KXJ27tGIv=&|M|~@*`aKGve?lMs@nx;%*mjC6aC)M zI5QZn2jJAEGYB;84^RaJG_W-g5G@BiMkbSj2uPP8EZy2-IcaNbmI)ngGA>#tbs-;= zN$~vvU|ETT1mSoZ20;vfoAH5*u~?}ODnJi}6ZawigCcbnbW4heL$n1SoFN=r0IesX zEW#xTvFFeQ1Y`im19Nc&Q1m@QP*Mdz1Oxx~M#Bl^&4k}BKDfZ78eu!Z zbfmaw<1QWG8`@zYaU)Yy(HcQUstf zpinNCmEGwPtGa`Q4N?b;`omB_M^b3Hw|@P4RYxD^!31H(j2Uv;X{X7nU;S#O$7*hF z9^Gur-&bFKwalJ9o1#0|wG_U(WXY22FT3or+(j2%A*V$^y@UC*_yI(<;59ly#%I*FOJ`$~EUaq+{5S$N3$&EhZyt~r6S6E5OM2Fj z2xq2Cw19E!AE4gQL zoLx(oz!{wL7|PxnKvMz**XRKuAk=l-R74cBv5as+PXBX`akk=WRD+UXf?CHPh65_! z?qZMI&w^fx)BtmL_JIOIUYgfc7oBp*Ytn?_kXIv zQzxCFdcPZ->Mn>^x$JhA;9PfOeJ_Bo(n1j+bwXeK;uq!Yv(K*dFx3tdAtATq6yG-j zfmuJCJh?tr_x95>%PzmXfbn$(`iRb2ZTxZ^0r$&%IrhEU=OY{e5I5}#a6?ybybHO3 zvcaB=H0Y8W2djauY%Vhev3MrIk7r!6&u;P=o|=Hq7cAO2WZ#MFg?w7`m@q6LPn}7K zznGOq7#Yk20G-m&C6nsvB|?gt%1SL_xv`k|O``+O>P^sU8X`c+qzJ4cF$z#zAOiPN zdK&g61N1T2DydtElA zy`Kw2?o#0p&g}w^tCJdrHgaM()+S(}&n~d?d?RJ#E*#k65iHJjUdyGr2u|Vjf#ZYm za$1#+!cX?&3)|Mn_4^&CSQ-X|LWsaLMmgu4b7a}FW#R#VZ<&Ag0r!2tp$I;%VNmk8 z_Fe>5?M4h&0@ha4&8Qoo=X*XAmy9wFIp9duH|mAH`OR-u)F&QIb8tHK4!~Fi`JTFq z+N9509&-}}x4Y~7p@DPHeO-FitjqJrJmL((ftRfQ`a2o{_pA6jx~1x^j2;13H}v$= z+kL&g@o2grEvZCuJo3X$f{bm7*XJEyEEL*vsYE>@g9iQMnmw6#(kKqbbRFU^ireZy zIBP&M{Rmn!yQN(w)i=si7$r2rAi;yMHaf&R0kng414L$niZIh4LCx&ZAx21`v#aZb zI?_jn#wb83Z6r7466%q5&Klb(K*ExY41c>z7ibI`1#rjc;v!sW`{;=`2|Z%u3Hd-4 z7m%D^2LmLBb0cK%-nisd&2mCLiaT=7#lJ2Py|ACW|KV$w0BPhn2aw*g=_$DKE^j~{n{}r1Y#h8(r+0@ZZqcWUPtSR7%94>lSh^R)Zc>pWo`D|g z$>g9s67Q1-2lhz}7Ljh5GG&T9{`lh(RR$>T)E3~zm<9DNS#m*q*|KZ0curMdI`mM!toOX|Yj|1TPPOypBLL@Bf)4;i0tO=Oa10K&gXB};O7%VvMCjpow(;7h_vFkXL1U>Ji<;$1TpbiEuTyP(Vrd&%SoZAG+B-a z(!F1I3FcA35_?8?auH^2+7M_Q? zH>Q#}GgK#kn!HE>4i9pHi0eH6ARWX|$l1~)o=X>$xE-OM5d8@N44q*f+*S@Qz&U^ipy^-y?eI|F{-7DVaTkV+;t zSozczSjy~~J9pvWXFhXbwyI}R!}WLd$NdKXu5Rj;elrdbJ>t1-*_~1N1+^gi=tPg# zKiLdMCJx2p6D6H$gSNjx3@ZTI>oxKP!^jqN1BL}25LKVG6XAKh(h;nMUZ`1SLnk!B zA4SkoIHkgZt_D_Y`8Y&2Akc_QDnUd}@OVvNS^+^p;iRfN3U>mK!}&N%`s6r_3pp5v zLvTp(fv+I}hJ{;6AobzV9T?}29PrCU~8 zbsgy|O84jhQi+=aAh8`|<4s+0j|`zdZ+zn$<(6A+8M9Z6b=T6;qT0Qyew_TEbM7IJ zNircIK*t$#j-e8YmO!ZpQ66-GFgQW14OD;JGXVP z{WG7*-dHt&INZ>_to9v930_uRuXc9y2)G>4?f0#zNem2)GyJ|O!EkhTA{n1rNF+ND zRkQ`65F)167s#hmmX=BzK8S>B02Dz0gg;NhQ3b|6bS|YxiucUu+(@UcatH0(w@)nUVI!V6JHl=LufvYgWcK{OOqQIyGNHjv>`{AVA0E_}P8KIm2#U%^JbR&*?)w7SP z-@GOgE~@ph{=EI|Zl+qv|>Kn&i}`#m+$&Dqq@nuf;O z)yYI`U9zWl*W$%f20jB|s&Y(Yjqr)Tza%X`@jF`W;h{%>K=j@3-srjLV^`EzcD~)4 z4NR_Y=$JD!6q^;>KiK83jWp&=Z#W<8Lv$X^%%_GlKf)M9@bvvKLWqK(j5EVBgAS67 zEwa!*1ocu;y!&9HZKM%54n9Cg-C)BkJD(X61Hh940I8WhK*kDs5xmq=apTeu*Z3Va z2v|dVI*=Ej5W#{ZizJmqj)m(k5GkDn+hJcG=G-OBQ0;g$+fr0TM5CC{ggke}Bhj`ThQGwi+%>V8;~UC!KVX z5|K@qFrma{4L3RH%Ja`ZFL&H=hunVq?J8doLF?hcUR4(Xm_F4xRZff6t9vd7CXjb9 zurfskYReF@gq+5LDPFf|Zd?$c5mlZ|vKr(ob}EcPl4cb--c%xEvfWT$_t)hBu@Y zb16M-8fGCH_QD!Inl-d$AmYTH{XH{HZ*X;Od;6M|D|fED=%SD9T)cSk;Ah$aOgC0d z#t$>hC-kl=Af3>U=kT3#MRONjc6k&eq1EFFPS2*Yv-G?%C($$16%GcQy{11jw0Ez^ z@_UU2q+&>bAO=B%J?TeNJWS#ui3FlzP)KR+B>BNG4$T^p7+QHKJbBI&Z4xd;syP5 zSU>yO&q^F)`kUYUM*jWZ|6MtwK91+`-c^stdpoDd=cdkf&RH^GFyNO(fI>do5|YA4 z3w`D75`uRiB86Kj1*CGP*l_?PgvL;(a6sI#T6E88z;I=FAov{J3XtM29dcTYh9mf) z01eNA;fx9ZTorE*;@j8PwJ1R1ecXEMt@7ayf7m_!A(u=Y;+9zrHPY8JAbrqb>Q+bt zw{HyLLFKY}3+8(fbfqPqPEQ`_OU;fLwa+#93(swMWY_x3B zzHF9NKzi9cs*#Q^MW)odF1pBj(Io()fYn+XX_?;NJ2XoY$vG0P?=W#BWE6eJ^(5Qx!?))qObbG%FfNJSw6@+HC9z+u(L$Oll^le9a!77!pP znn<_`&~6t1MpS5HFaCL9+Fdf~2JNKJ5%=T(N+eurmJN!fKnYuD3~(QGF^|RvgPVc1A7FUp>c?dHKIqUiG5(qe%VbzYm@ej?iNtCHi`SFi` zEZ_LXH>4NIqJFh)gFG4Qm(MLYOS)h>&wC0CItl(17eWIERCod-LOF;tmfN!Z!@a3A zN<+C*Y#SmhAod`hDF7bNl8h(0St1Of-4fPr4$1g((0NgEL}H1&N@94NFhV`>D#ouw`tg@TNS4rpe5y`0oOPNp_SB>+O>K^Pws`W_9@7IZkd(yUj9-YAP~sTm}>qg0Fr z1_T(A9@nf|86p6oTwOak5QST?w&OM)=VTue`TpLG@{@fVr4QFCFVq#h{`Ieyv(7q8 zS$@$el3`~kCL`BC@e*hBTr#m6t;qK5*`ut=uGzN>1_!(3!)=r0vI#RGBgCv6gtCA> zIUJHED`0h;fv9mXfz;naap^}L00$U@C0CNf7o6PyoIf|(d(l^iSW=YsumAe5ir|*_ z^=PfrFoGgH>Zktg-~J8YS(L{zd!#QdPxnyp3b|BtXEZQ|; zPry^>^%zAE+*GVjq7sLllr3#mKo+!j$r)V}Whw}uFAg*rfo8#E3IrH7iy`hdV^J!@6!gQW|WBKI+3Q6JZ2Jk&Z5R^mWUB zfb-ad?JPWg{`~pMM44vF3l=OGCUB}j*&m9w7|gT0kO=nA{Ngu$7oB{jx zqaXc95I?Q_lE-ZQD_{AF0ws#_XqDG%?-ScI1LpT(JQRu`$pSJ1F5>**`Ea=ph9xWn zc8VA)DXtEQTyhWM|M?+S1w$!bOk5}m%x4(T784RoRHz zb4k1;DpsI+TR7Tiiy4UlwsZ%gdAQ}2Q%-SL54+@~!!7MNR~SB1^qa~W5H~}gSYHP> zgvLfWsbjo6wq=W~#KgppceUTrwLQJv$kd4BBeiw)`QCKc6uk+7e!FtH!jw>`X%*6N zt+?y1HEWuhX79Q1!W&Xm{gOM zlk?9%-?3nWE=H_rz)>s-1|;|-^jIS&n@_ESh%KW6n?CZ$BV%5k)_oNJQT(>BX}o;r z)YnOXru$j=odJkU?6)uxvGBaE`yH$B9eM7#=Tx(8bIz9rj}HKuNAM6B)*T)$qP-M3c;0h~j4_5%QQ+o;EY;SkG{g#pH3HkaF($)}!$-}hsf zn>>>%ARryY zH1O>Jkdtdil_zXkBSt-!Q6Kxtie{qdu1JR6Kw$Ktb>DNe_2SFLp_6y zAP!e<-7Pow?o~~gs(_q_n}6p}#~tZ*>P$$yzy9^FD~mNmoRAG!=oS2JAVjz?%=~FU zMo6V)okk7_Aq8TutBlEDA|@Ba!z*1VX)fTl>*A=|cXQ&w~IMPh0OR_dZE zA;9I=U9x0}$`1s88Z}uEdk5H;NoWFk2>@WF^C|C%Ii^@D)gRHQfFQ!M6CCo-mOUUH z;fPE|ME1_wdZ|TP4==bH8{7!f$@^)LfOm$*6nQ-R0zkpUei#mbtAfD_%>UUfn&>lr zpc6KUz~pdAIinzd9CQpBPCohMipGMzTP_$)M3jpVz?dRK4HG8hy~nvBTm^s@vT_?hFZc#yF$6-g1HN!g4bpbB4#ft> zdqTb^cI@4@n&g^Y@QXry3{Fegs2|wAnRc;yFeX#Bc^&T^4 z&QwmJOc}uP=}&)JEiYTY3So2{eax#~^(rM=tB2m|XcTgCU;XM=RX|P#^0bk_ub7MB zo+g5zf=B{z6#=Hj1NkBlagZ{RG{7?N7*^1v`$)lvdKg;BQEa$j!-hlN8g(HQO@gLVxx+ zCL2%1`^D&9ugv`GAlmJO_-{gIhcvY`%8c$IfPe+xGgwhF6bHCz4SGh}De&sVL}y&V zDS^Qtr-Zi$f6xFN)6ZbQvJz1|SQ!1gl5+38_YOBZHPR$WJY%@SDsdu`1VdGb^!9kp z9suUx{vCK1YY{sU-vA79Y7pXT*0i~@qi(-!-o8V2`!(t5>qox~EfS6x>4F}FC4GC& z&W8{MqA{DucHqW3e6{V*+;`uGEp2TJ`o8zQf5}uGYlk1faa(cTt>bq2>V@4AAXl_% z*{VQywy!ynwq{#i|H8a&Er8m23gl>w(0apm%rGz$*8-Ti8sL7q!ag};`Xm@DG)TCZ z5fenf0|K#lAH{K);ljvS8S-LV4!$|cY?~jt4;m!U59Soopil7HUic6JpfLUZ?yl$M zo87Bbx0vVV4R3gZ(s2-gM$gC@?u9xZN73!v2~!*}od7w8V^Kcxk&h_LI9|)}c8cX2 zk0j}^nj=S`2qcK4qT_HT9dbZ~h5*k#`>YB~T1g+N+xf5m`Y-wRx4$jS5p*PlB1?i8 z1DjS-cz!r|4#%gn{76j&&X0!f6pcv%++A{~I@R~T|9$!7CqFsnX{md2!}riMJ7`87 ze=nTV0BAF06pbaoRDkeX@=;H%)WX!hDOw{i=M*0}A(LDZ0KrF!L2$x0f)F|Fg6=RF zV6x?=URVrnT(A1{mbbh`{`99mjoCjopcwYozy7sq`%}c(du?4C`ULYBaAUNOq$@M6 z{^*qJLBbUFIEzUYQ$c1SBgn&WC#UjW>GIz-wmkmCld>CDd4|s`89H<$qPS9W>dFBt ziO%CgyGJ zB*`|MijQO#V)TsjNukEb4|>gXOpi!fYrv=2j@j$tt_gBl=R|3Nh{`(vksU0O0+^}- zTBN5ohHKN2l5&4cFJXpDz;U;!?VM!e+oZFq(yplQv?#Yi6!LyJh_d|P2S1QceBu*o z{ZN0HIh0AdT2wH8k_FvQfUdfyW|$o}AnD=GOYtTx2oG66$TjM%6t`@_ zyxx!Z29|d?pwS+8nM`pVRq3s;m2Vh95%M^2X;@-> z2v)Zu?%=J^fiCaa35V+=nLKC+QLjIZf%t1}P52h*y`HV=mk#;H9JL*!Qq^)CMu6hE zQ%nYw z1?F*#w4H|KoDQY0520H)Tg^Z=!CW?E3!HE~5Zi$^QgzG9b;|vn4_h^ZQ3D6S(E)S? zNAl`WM>1BS*)joX>eQ)fhI=f*hLvtfy9b)nm1XofYL_`mW5oz#{fR1T9IP-X!o{^l< zHP>8I5eG_6{^KA2xB?^g=aS}5$v{fTq9SZKtHbXu-(Tn5=6Dm9in0O|kY6G0;O~3) zNfyuHV1@4`T??45gZZOqXmMbyK^xgs3QKTHOZxl!zXrdmXK>7K0g~6@d?V(62RnIn z+eNNW(oVHyCU6Tj3g`nD=;d zSv^?HYE3xhl$wYv>KZR|T3e)+irzfZbi?vZLv~LKv(^m6IcbPA7`~+iRG12A0+R;L zh?a7SQ!0^6f)SPDbZ}*4ZHC%mwpDJUVtVdF%hZQW&f}qn9y;s|(TC>BE3cGio_VIC ztflVB$k|Yd?Gk%(T3uaTFPghrvSf+efB*gJ^q+r!NV+;|WgLtsLK5f4X~z z+P7-es){WBy1ToTsk+<0Mbj<$-p9i-cOqi9!33GnCzPH_5p!CeIlt95MKvAEvrqph zDOdf;nW=Na@aI4Oxgxz1&D?2q$MXKSw#a{db}9nc8uD*H+$7iDv|VkdAwVO{ppUeW z6Jhjk>XuktpRe*I&#msI!jqHWpLyn)3h)_jsnSBjk`I3HgQ|H0(sVp_@;T6J!Z(WV zEWw8yJeK^;F=x@pj^aIC38R}I?Aa=}gR3tu1Rkcopy;!`y_^bB~-FxjJqiRj$VG@1c%8LmPEq_2-d|07y`^9IFw)2d+%HS8rPpl}xtN3Ww+9 zQrS~1k9Vf2YvWV>{S7q@O}@xbznRO#wGckQseyWk<|fFzX2hC<{p~gc{#*rd#Ktu8 z^1%Fh8^QtYLlV8wg*kX8!RKVIKce#Aye86!6ynqrIARYa4gnzLF&oWsNkGDq`!9at z5m}XtRh0YZ&Lvqpw1rjtEC7tE#T{GpK^{|#iyhL*MDhCs0Nl0(3K#3D8#!Dnn{zvyl`N96J>Nx&k zUnmm&hky77#VynD<;4`U6OK05joKf;E~Q7g-cIQr=7?=eT9@-KeOQ&k%r zZUo2`-3X%v8OpUtC@?z`iq4O1-#Jgbo+*()pfNSj9}IXso=hsGO_Xk}U55$xxOVA; z?0$DDCM$b)$>VT1?Jq?=;DaN0R9XTMvAm~YoLt(}DdPcDk3TKdqiv~cGV(Lf^XHiFy)qnoye=6lZ#3AauWBnm9{>e{%q9SaM)z;nb z>a*rfvgDDUHUkiB`OzQZ@`ay3=7dsdZXSZGGQY+#r%gBI!Ec2S!2koKrs-HxuBE`n z0U&3cSHN#>ht7^O`||RspCsi6H#-vtS_bmo#wvgK!yn|G?|i3f_KVMl*#=|%uwPqiG) z5g6u*w%%XsuW6fC+WZHQYo07b}# zTtc4c+5Lj#FrtkZ1w7u{Rs>)TeTLl7mRVgrEkYq;yYK4-0?jRHWq!ErED4cHDk>B16s6FNY0u=B4$fJ2{z%3DPYm!FLNj zV>xj9w&vp~EBx1CFrk16@8#VCJ#y*R=Ojr7T@;$u|L})DlnE0isNYBH4<}s+xNAci zz;3zaDy)3W{V~SUi~TPYV~laoD{*&82=Pk1^`n2!w4j57YheHWeXSCX%uWpqEAJohlIV6sJnSWj8ok&lMq;G}7KwGG zh58+uEdTCzzf;QWuOrpMvrt6;Wbzy*LN|kB0tZx_IuO$FQG7q!oU>EUQ>hWa=>FV& z_uWdALn7}M(+W$_7eN>trakY2RiH>S+?A$JF=fHYQ=lXd$ZgBE%8IoEGB7Zphz`Y8 z%qBWkIp>^n6d;i~d0#7o3r}~*LNOE*+!2)T zdgYf=Jxy*T#}?2r$?$uIYRr%m2-t^>FXu1X)EN(zlI$UU+=@_b&F ztsI$@RvJ%@VluZ}_I40S3jjl3e>xSz--b00pD%c}phCO^vvLM#Er4hi2|#$bMdo8N z(GI5cIkrN=!7RAI_nb%0$|=kdR7pASyz^8ugpiXP?j6y&z1#qa+#G}Ha$?|uQ437U zzjN}Lm;g0N%J9Oe0UQ#nNli?UoQgLSh|U!9E*McnN5ha~1xDr1=-hM9RmMBKhf=u! z%eznyH(Mf0J_YsjsGCrKiFyWVwH#ywNQtWDB^&|F=(H(QUhmmBu(=*KyR*d`I?eQY z7UeUksglh!gC+IXTbAid!e{|pLfXv9rab+IoI-I9^#&jM(1(V7QQUnm#gYI)=T#ab zu)MjxRlePIGH?m8;2^T&#Q*uWdijUju7yKkUd_-eO+oGUk7l*hak!$w5L7Ci;DV-2 z)nwMxdU^Hfv!x-dNkh~l0R+x0W(VQ#83QzD5Sj-0fQm8Yb2H;3G1<|B_mj0AFbJPtVFG5kSCa9RdZzf>yAu{;~K%wXQ#CDX8`SgPSI&dR-5kYl=W)b>~O zPteC|d8tMKQG|`g#_53`E!yJIqVtO3!WsEwa$!D~=z?i>ZP4<0{79Im5AA~+Vo|mk ziDCZ@5?hLJsGL1g4(LewPr#!U5yRV%Yx;97B+l^6;HqS8V~Oc#tMG>K{7OEP0a!fIn#5ac+NG*UC9VGW{|unq?8#5$^4A`33p(MGl9u^>^-aR+vt zM2+Ugu4(sydq;kqdg`f&h7nX;#dBLm1b{CW4v8T0`Okk|83jE3^wYyPmM;Y4{+)Yd z^X>teTo;uo5LI`aQ1$`Z$`G!H?=rUYquv#jooQRNLhv}L|gWjEn9G! zV^_e%*a&Ac+=tK3JKcU?%M|-`1d5sMnP-O(8{F+9#AX$D4Ec;~fSo#aTvNc_c=ucF zjdw1wH{HI#-u2hHcJH#;_TYWf?bzL2cK;pi_TX*JcH*`sJ9T@Low>cvPTy8zr*CPo z)3-L+o329)n9?}C<~6UWs1M)y&Uc27sgF?LBQ`{q6&;IUu*1i?*FBm`_O+4%Q+U;{ z+K_WU>=Qt@l0$6-4z(fTvH=D*pUv?q0AL#q%r^8t!(;3>TJ4E=*JjIfd!bCR-yS*D z{_M23+K;^EefERryvu%j%f#Wfu+n_dU58JX{i#oW(&jrfVZsC(U}T5GVf9|T;~np? zkqgU)IQvDNA6)8iA93D)!?PJ(K7tLZ&9Y_7Y)p7;gh;Z%tq&hp+E4S-Z=g;7DOC1rr(!qNC@yAuz9a?dPA)2byL*j>}ULqTjSiVPM z8OJ)0;eaT1siaW8Pu&sAmp<4iA9}M7(G>DX{>Jb$(6^*hh_?qB9_-HP;ArY_+{KKO z2IuTY0oHb!;Zx3$&~nQ;pBs=z*W{H2A$>%~n%Oc)CuRNRg^rqZz#OZ5`O9Bcsl`XP zBR5G7mX#dl!IlTxHoEQTHVjlt>&USR2&w$#FMm0p8O4i1L`)c~ELk$*FwC|*hK{1- zutqPrjgF-3=g}(Eg)(Y|YqA~;bV`l1Ag5Ja{CEe#NSAVw*(-%;NUq=MSbFjvsDm2o z*^ln?ZMWSfU;EnE4(3lZx~UQo(pZS;>)-UIH@#s0p*Bz-Mjh?OjT==HaB{E0dt5G` z{7>xoGIwIqDF8&SszQz&lMwzHR$V;~BQO`&{5fj*?BVUlp&u1p zl2&xmFfHr}O_>p?pM9}N$5p<-%txY)i*^S?vy%~PV!lP%i<6|@J_WVG@(YU`FHz<&j*LnG5Z0%%y4`6J%Y$+%;Ve!AS^b_d=)nV2T&wTExNmo z+wzi2E;-8C$6Z$Rc=m)~z%Z@{T#=IoJ$PAC0Uhj`|Eeb_vej->i`!|8m+~*9> zjJ}X>QZ{OI7Ll0So{9Q~nkja(FEo5_Fdwxk!Z;BMf`<-&Ou7}d^~iKPSU=wOhMI@_ z3p3q{y9!G;bzC&0+r58|+R3|W?eyJ2fQ{G*08#EP!_MB}v2%BX?ED>dcILJQY;Qzu zwv)HF+L^oB?c`qqs3ALbSH%AP(vfld=}&)JQ9lqmX1MQsr{FkQ(QzkgBXDj9+|Rsu z^D62p!J}M6)>1nn^5eL?mld+s@ z`#mGi50<5)4?XN}a8fpOI|tm`>EWn-W#@GJq1lV=9rMq#cPzZX-a7wWd-c4t>>H*p zus=C&qCLSIIN%t9GPt?JUaNd3g4d25ubbeA8p3pj$GwqTvcY|pH$Uh)Bmf7D3685l zeMJ@hIN$B-asAs-`Ox0QzA&^3WV+=RL`$&wJnlOY3f?58FZ$+>u4zo|9XiR9zyqkHO zQI*c);71&MEB(rT|NGw$iyaH;oiLqG!c7mxBc+^G46j7rpGph;>|XoY*DC)t9y1q# zg0Gu4TdtouPu|%A2l4>YAt8L07xA+E83bF+`Q$urqkN@hnmjc747svvhO~GbwKc;T z(cq-yb2MfbF2DS8X>Dy)?GQo#lm2kS>>F=Qs!9rVERJ6c%$o}^eXf};v4L(R|AVdvV8M@) zR$r6Tbbu0TL$>m6YxI@(!uncaq+rZbyUWY z;B%ll&s{oa&GjOVU9TW!Ox3@kvA%Rc8p9!*!lMi>5G}F<$9-kp)9`&7P-gkmM>5ROSmyb(iMd6V3JnofNjx`{C7z0djnd1&LXR{>K%-~7W zPPcHjzz0mFAIh6iPepxkoy15#hxE}7ogCg`7|R3xU<}Y9n3TUImG;e01%&=BZna; z!H5p@@UMh;F^mht4w1MN?QK#!uu0AWld&)Fl}F$lPmrNgEgf~oDlQ-~7*P>sy9I;? ziXlcGQ!?bBLbC&T(1euAmBzU!xgZ1KVRS@zH4E?|#P1;xO{8N35kc4(IGN7q)a0RO z?TUeMG>1gvf|qllGiZ6K>Ahhmg6Qxb=E%V0gApdMguf4&VfujS zz$UFGB;im&rgS)NHMIEWWQ1*K#{TGk(%OJx`(w^R0lN-H9G zzo)KMe$X{X9ysZ2*>d_@d5JHP-_l<0v^;++|Wp$svUX zv)k&>GwXgGK1mR%n6PH^LbYxAl_-fPA=s78Ak}#f_Jjtj>U82 zyJ+WAa@HJ=eDPfYx$El@*?3K@eC53XgoEM}7FoA$of4bTqO8*Lm9Kn7HRYSixECzU zgj?xzBWK3gjV$Ljx65S>ostV7$sql=5F4+EcRCtE$SQn4vEF{%IrD+BV%o#J?3@MR zw_z8+J+T+M{GfBTOu+cC5HQ`y?`p##{!p~)CQP&oLp7$Ia6FpPz7h_}wLC1Hz6wZ( z80VK_GwnAWN{JPEnRE8ekoAWn(u^VHre4Nj7o*NVJ!S>ORhu>ILeJxm?`;hEWL|$y z|7-CkkR*upo;l~YcUcaNJW2+}Wu1A7r@62zmaRYENjrNP@G zuhJS}KI?o)H0x%B>q-jzF@~G<4-Lxn_PCrpDLuTcQb2O`9lb+{y@qf*45>p^I-@mP zn3YpE6hI9@WD-Gk&nFtl}BWV7@SDqjsY+u$7Fzj8U?S+96!P#RGKt!xZ_wk z+&fm@?s%?K)WoO;jNZU3wIu9}LC6#coV1mfN;#x*Kx(f;{J>%eTxS3T*#i-*rZ|dZ zY(P?RaK?p%AXtL&AlHEWmc4kXfVW7~?hEui%C}fIuZy}3|A}g-$m9Ml< zQyt(Wi=wznO1aJ}pYCmOkEw)1;xjKRuSh@|k&%^+#8Ft~Q~n|9bXm|kP9h+@o>;&9al7+Ak;7v=y0HrHkDyTQZ}R^73G$KVsnQ&Zsu*c$#6zQu zp%3TxgaTqV)=Ce=UC-~@C(rKbk+u8#WnUqQXb0mZRdil%iv1WWXskj7F1_kW6z_d( zpImZ&Lgsdi990Prur+7zPd@pibVCQhLOl>ac7xdf2~N0Ajk%XVfYb2DLiYhi7DOoE zhHy_Fh;5VoHJH8P)hrq~+K`Fk5jLTu-z6}Pl?t5VM=H&GdU{kJ+^7-i#~6PodLk#r z$-!95!?iiwKKH!kZ7Alcv{cF=m5c16b(16oPTd0WMR->vaLkM0h5W9VLTtVSlK&+U z4FVGo%pRg)7lljya;HO2imrjDf=Ek;_?3D-au;rrLZLo~PFE%nI7U(3o( z4?0mOzWBv2%6Gr}-HL9D?>>E$SQac;pdzkUav=ST_{>RfZgVk0?q! zT%qKL6CfoiC?u(bRizRR=_mjaWu8x#s?(7Z{O_>>Bo4!mP``|7!6ROA0U;><$12oY zkO0vl2jw!i{d_wL$(4mx}QCOmo@&Bl8zMO{-!VG$# zm@Oc!bOHn%j-!x+7ZLv~0mF~|AQmf;H0_}cn`K?DAEAEy$PZI5DZLJAntBk9UgdyD zaRak?92yOW-cgTmKmbx5dM+AB zP`Qk`HBwK&A=Zo_2x$lj0t1o)C)A(PB?IoMu^yS+q1(vAc{U!0>_5B@$F5b~uar}p zG-=W>ATc;?CFNiasFfUdEZb0gN6A4Y#hv&;jUwOrQF;+so7@n^=t`#q-4Yb_YI4D6N9wHzF1CRBf_7UlN>ErPKmC*s zddC6j#ydk%7maxMZjDtqiEs-YXDcb>j%antqH7-65AN?ifJXO@eKK#-WSKu2h5%frdKK8N0&xc9V zy1KfAL4onUD>)_ssuHfYOk~H8DLkcC7t|I=?D^*pQ8S`^!tQe97{kVg(fI{ zhAcfzpDFvTq;RHH0wgy7II26)l^lLVZ4?-39lrKiv&QY*xn`ji44s?GrWcxCYkV%1 z3_)LH=mSY@5pIVn zQ$qk1C|w}Amkgps7Z5#K4?-@E_*sLxN1oiWLmpbcSvCyDBnC^htPc^B@m2Lh%#t%8 z;xb|D2S8$>g#ixnrWxDl&6wNM=oImo7xUZE0>mY&Poc5RtuR zvlA%;PpF7%79h?eS7l;iWMD?2z=>iz^pAwx#>4^U5US5nyn3I1r!JrUc|md8x8HvI zuzvDjeRQ|+{c;P%eU%h`GcISTg_|Ygt(7=L-Jz^U_N?0|>v#3ZSyQLUT!^%5!5xJV zaIlvBhn~!X?rRXy(fEe{2|yI%IRzqPY@@jOHIb&$Hc>7WV*wHyGj1XQNr5+h^O;ow z%4HnV-wH+_z-7y6R8^%+zG)6Y;($Z{+Ji332Y`x&l~m1nBzGNT18ePd^*P zq~d;B=@I>h_~WH44rg?_FA`~J-?@6jLL*vtZZ4Hr;BSa_^SwECOE@e{+5dP<35Wu7el#Baea-HfQabaKxl}ZXZBt8!+ zukU`^k_*rC%8UtVS@sOlC;*K3!HhN-7=2y_10@)-tlw(OYv+LaVM?ts(_)zikf$Jy z(|q+(^fpPNSR*@j7i8tyJ@Uk=EwXvr9@()EVmq){=~MyW$XPn{9*7Dq`HTWa_HV5B zhCx={a6y%FNHjw}puj@V0SQj4QE6tzic}it5Z1BeI=4~8sMra#!?RQC++G3|wFK9P z9k>r5KG)sKHVhp@(G&KWS#l&e2lX^qs`d05)wN1y+HA-%az&L0zaiO33pj-|)N^Tw zuXK5~J1$Rch)dz-wMYws{7M~`Or0`8#E2Q{adPDS zhirY=9cN+h|FQ+$K4?=>Ww?Fsn} zLyyAnyA~-U-acos%!DcKc*xR&un;q;@a4w<)8;HvjIS#*NT|e^q1^D`E%gn^3loD* z#RtM&L`*pl^V*1{;Nb0_AAT9$?Os8QKP=Fb04(8=)a8UvS2NH_Re#qk0 zI$XUW3i*%!_>YQ40Rbmf95{*&Z(E+1?59nc)=5(16pG8n0wiX4b!F(!ZP&oxMKM!E zLR`q@vk)l)E}=QElMOriRkv#_>VV5R{!TEuy%v706~S7k03pL2B3UUQ(QQBh8ShlbJ0c+v+<@Y6k_ixFvq8MId{dlkX@s9UHNS6Q*VUmFNjs(02?t)we zIi|W=9TSLa1Q)nM3=FkrlaK{f%z z8R!F-?cOCDd-~*zNt{GZ5+g~D4_qh4*9V^`74%1SlJ~%^@QK3lRtR}oOn)k+b%AhPFl&y?hj)4tWYXbe5+XW&l+f+KGAU2qAGBjf)*&90 zCpR^Xu>9=!!HWB$TM*lvWLlCjp$`IA(8r4Gs@syLEQk2&nVsE|1kuVM0z?j9ejceC ziU3H{g7-!q2D2G3joBnVHm5KkDow{3FtgG^u^j=aA69brJyVqF<8e==Qi-^X!8^M! z!==dLx$U;}XWl8}?n+SOG(sltSo5T=MB@{9==q|>W zW1@sT+^mR}S}Fa>+jSsp01`|n2q-+7#F|CJNm5VUufT}EZA@nDB+(ePg5v7v#%k*7 zkJ!!x*I>X2RLML+VLb?`3vh*wh?E&z9(W*mW=lq%-n3RcH#{c|^@w^f zy-`j-b&AZJg@9Ofwcspz@Y*|*1ZY%Y_Kjl=ypK6JHd_tSQro8hiQ_(2A-K4uQvanJ zZ@kexL?SwXJwF5sP23B>H*3~_8zg6k?;?PADQh7;NLq$AZkM&&cFVgKpDy)y=UOqD zh$0D!o*aNRXC6U+q1WUb0DwdtC+-OMSd@BBKu~Cm!gph=^f2X<6CPIyAeD*hc*u(d zB!W>F>FKY2^(zHNJQ)j(mRLDKpmd75H{K7*hfDQVEJ>U1LOpKfcmUE$-0cmh7jaf} z(@i(2gmjgR0ChQvz!I<5n4jp`JKpDm-B+<- zMhZo3QaCDao`14T_V^?UFbaa@w;)o}A+iHBsF@W>6$wx85m-#I^KQ7E@yhQ31c8PO z-k|JC!bE24Zh0D>^P7h9vd@5?1s_ocpc4ss#p}u7rRtUJP%pqKH9QWS74fB`lKw~w zP4O8DhE{)neOwS)h8&7RR4O$nAooH*dLEq5u2hRW|LmYV1weiJ+1;{vS3*322#7p% zM;;TLhXt_6gO~tNF>VB+Ab>xYg|!=MmLCme`%3)f+)X9@ATYXCgET*;n*pOaAFfb8 zMzJL$W5k|*SoR0N{h-jmf~B+o;RP5un-oD;{#F1eK7RrgjWM`%f4iImHYm<1x#}UV zs<1iqx1sov;Z9VR%Xy7z6Feb z0iLsQFFr31#BtCc>c`8_P+GRy2tkBN zS{9SEEE4|ldFikm+@DHIPqI(;+;fM#&$8w)FI!VjOu>gtU((+P?$gUiaz=dycbz|k{8Dss&*nd9T&^h-|(fJu+o^Cg^ zzP;+It5l_{0m>UuG4*)m0TOSXKyndRXobTJsg)GY-YMrVJ-n9!knpMjjKCSi_U&B+ z%5%0J2%M6P?dhzo2?w)-d(3+AYEv*ffBU@o(uo(h1zd~?2SS(;KwpCd)tm)m4h)GO zK43Myk~G9KEW;ub_3O}oTtEteSokA#@;u^cZQ0ikj%Yuu=wh-7#3YHHWc?AzfoND@ z$A?mTF!S3DB0i$8Vk|8Ld6Y{py|iM*_vl_x0ejkMrzrw{>++m@|AQEzMuw27Jf~lIZMDR9zNDV@b%I`r2VQj%#Jh5?^Npybwk2%sDfzY3Z(dr{QT!XSIu4w zha?d^Kpo;z5NO3EDe-cV{HS<9a5bQlfpx#}wI|I}Vx)%%vMJL!f5LK2WIKtLb~$R5`b6-I&A z*Nss|$8i@YE~Ab!j05VZIF6`;JAxp>xQ2a^Ei57X+DWH7y?0mFUiJSzxB7M}O}eW( zAmsmfJ<09b?pC+%?{~K6JjYHuX^tIt>>Qif)M~M8zwPTDum*CN-Tj3tREly(UrO~> z60x(uld!s*+%q0NTXpta`}o_>wr_vyH+I*(J1xqFVVEW|cs4;os)0Jf+8{Sa zQA|mcOl7dadiiqSdGdZ+wtKE!a^i6)pQxn=`>Z|}q8pfuB#LQK*b+ZELV3lml=FQi zDx`8eBsXNKN4Leo`9nuI$+psm>zvtO;tNMXV2 zuDi~m_Yn%HTol%1*G!YLWIG&Yk8bqZl6H=Z$m@}XSW1fXJ3IR#gczxuub6AS$qL)n z6|>=7&<5zhIvC5?Fa@xg05N~y>K<}S=^%iPrkP;h>zG+0j&)1?#7wm@pztK+ct~1L z01H>#q`CWgvPboDawm|~oxdQT!}*OZLI`S6q)Uju!h%v|?v+Q$9OyjCO%?`1kB*JP z{Xt2UbeE-ndmD~J+zC_D+F`QOaNZYXPLUV@q+eHD*91c_&%HM=rkxamF9$6*F-$of4+$kSlF!cx zV0eU;N|@?8jD5C>$A8yzm6(WXY&xPM>>_!^71ApavU9(`yrc{CLL6^G(Ul{#LNMA1 zIIVzLUtZD=%GqwhI{eV&jH+wqWRt1W2%j&n2uDxew`X^2U2Q|OVW5{Pj3LjFf!X%X z^WR|AnD}$JiL-+PP91~DAEks;W#HT~BvVC+qhyG32Vo|#QqtMk=}fE|jBa>kkV)+> z;@r0n_^pRnyoU&PMI{M-lKEM@p)7E6M%cJ@E|2I#ANr8P@~sfnOC?fBDoB?6`VrW( zVS&Eu(X2DsilRj~{!~)TB{v)o*#J~EfJ2zzxZN)8!erSzZ_@7Dndy1k zs<6;0lBL8R7XKL*WfHBQ-D3T}1Wv#1v2n#%idyE(GtYF0KXtB8Jn@9lG1VFx6qT4< z6h4#XDDNfz40+z)-D&<67ag#H66OWb$reOmIYsL9m<77-fEw_g3$-o#*GvEMC(Z`C z#`G$3H=pvcm{hl156Qi!wBs3Xyx8XGegd`VW7)G|n`L@OY^1Zx^4<6g6k5m0vBdF` z9Hd{6e3p_aD%#9^d4Ka=p=jfF$=7(e*h-%3dR@=4&;XO zcvri}KuV>GVs&nki3}C4fm8VO;D22YiTKNCeN+8u`}Xxd!f&lcP>Cr#rG@P6``V+< z?Y7%)E1Pb~JqyKyv_cXV`9YS`1$ma$BhW%AQJh~KcUll_@Ol=^&a#DRqb*e3 zQri;i899Y!Kr4ND-wCnd!FjdOs>tv_kN*Us?(H>m?Sd0dwrXJ3^CBTj?CG#3>VUEt z;^GRxE8OIm!PH_nh#h%G?3w{wji)2gjVT6hc`UN(_2avb?jS5a>pmuhdt*Je(`GOq zG~f}T7E^mE7VSkD><=6W&MD-~JKph*vMjdZW0dn;`bIG~ePjtHdL!ZECOx zN-58_Vr(8-dz2XpN!~~~im}*J(>C&w6w)Xqx~^i^P-r;)o$JiI_;~1?cYgQ6 zOHOP2iF1{73l!=ho%^EjVd46vesZJbxQ`^|*5IjT&qWDJ0V~u}j<_C@r>WWY;Tib- zOm*CremaP^o_z*I6EGO`4OybE-(tPpHrTb-QeB-8VlZ(-d*!%)LYolwatsORoh%H+ z6M%=IWXuLf$)9pfqhSmNJX#NkyAj^++n2D7-55@Yj3lvTPbI|`dMRVU-H(h5No9q{ zj%x?Q8BJMicr*5l-xi)Q&u*Omf9#gq?y_6%*h&cjh_i6Y0sw&qlNr7qZxC?+#%e== zf@(rFWV#~u3+}6DI=9=!=d7>={TY319&(#`q9U8(G3R*d3|o#A^Z4oann;d2aUU{H zhlh!4BYs~r(Am+wvbLe#+tJ%3tw<8D|t!fDkP?hwos_LqBSv;J%tGW z@>D!^Vr4kgS{tc~nGM?F*8Bdb*{Ah24;L^T?U4=e6l z4l>c*&V5u)LLs+u2EHtK-K@`S&sxMO4rH=I$_bY#tRbbQwiR9yK7X?{v_T;~o+oW{R9p7UL#E{gIDLzZ0NHkUUSMroqDV z8{rkCjrhob4Z+Yb%=fMPQ@izZ&&Tm7Ara<2$6ydmxRWy_WLrTvj=DD$F^}L84&yyJ z-Yw|80Ib>RctIi21=XQ&D!vvIpS!hEdcU0eQtP?f9Np@*5MkYYy<6#{;McvuIhj$sf7=3#l zyvOF%&b6l6daH?40W3-YQc7W5n3W5-a22M`wH)uL7|@W)cq^(KXPr9G(-o+yuL}#0R=O{yc;udHAxsx-NoI4Wq%zranXHz=W;`#S%Y)z^^7|m_ zT8wr7`d6QA!D0BX04Fp>BP2q7mY@!yx+a2AFA#8n$4kIuDJI>lg%FKu8$8zRAdIFs z6F!>BH_i3P%j-)ncF6yr((n^&Yh@s><8;x%pS4PX1FL&w(#1SU|$e}1Bg*h~V zD->0ZXwr0LbEm#xLCR4`TGI{N#;!y{d^IF2%x%zey0`?#gPR0x483ZVMC zazu(qxj|RT%^#_ah&Tx)9=y&xugRFXM|kAdm#S1{{#w=NwlE zM>p*2yfMiid4R5nf3TDYeJ1pwhwn1CnVitjpo8r5gE$?5m={bCh&j-LgS+gA*_HMW z*IdPUTxbi9u7cB!V`1bZ6Qh7N@VY^E4iLWcqId!*=Pr=5&vx&zNBF(B?%WM1Ct;5d z7s82r^Rg6@j31YiPv2#_3JFwGU^F(`8i-b%IvP(b&v>$@b@lI?ivd%dQ~E5szD)a< z(pL+QLlHO9Ft+V09nm*X~mq#RT zQrA|4S)m+Vvr;)HO~@Kd3aR|??gW%FAw0IE<24=ZI1}GfxJ(|ekaTf{yJpNYsG;$O znyvAalbkTzFq!6IJQyi?5-(WY0OP-LQBtLI|$YeT-vDnZNYqQ%SxA+(b zdoE5j)i5c%mRtX^vdx?F`c?j5mV?%v;8ihPfUuv(txbJm2%q(|s|btOs)bic(IT@LceJZ6c>8Rp)JXyn3Pv~q}8pkJqUNeqxXom?+0&sDJW03q5MMsLn4?@HCub(fYtMyVdf0c9j)6)HbeSbhhV@ z`0eh#`);Srhx^`Ck3zyJ{HPWp@;c(*{<0*D;}vCA)dO z>1Y zD6A|>N{TBtv&Ql~`tfEf2ya!>z9C1ipDc7$f#JAqesV2&CKOXI-cS$s?I3`g(GGs7 zf@)R>N%d^yh#OATx)af92ixBD{PbB=$WvK>3MX=}5S%S+QjY;6PzL9d#bB%eo!Z{k zY_Gj|jvaAy-oE+0`)%uUedqnhE#|`lVCX_ zV1sV{u^U-l(iIc7Lm9P%J32Pcsjh21H5`eYofsZCo{VK{RXAK#k?8j|p^VOKKg!Oa z{-GWV$w$xO5rrlkAhVfAFQtw60;~u3k5_7Kng6)A_%y)To6v$d;-BBqi_M*HQng^yZ^2BopeNi6925~tK0|N4b281($ z5eVA{)JWdYKAYP@QF~LB&22vmz{B%)``z2&?3)Q|NS;t~3s7&s3{?%583dM3Mbj?4 zy!P(fm(1kc`}(CE(%HD26;)f zsv=eg$#O2XEXK<(zub-Wzk}`nnPnr3gkjTyXVg3=8jYPA8y#Aa^9PoCBZ1aje7LG6 z6!y&yhCNGh(a)K`&}K6?rWvqdEUP3}Mg4mm1;m`F(45n1TazYMR}O`welQtkQBa|< zCy2$GiIqiQm_(}Id`g@$coSriGxRg+B|7?W$9B7C-3DUzgt1Uq!%(dZ$}>V#{r&y# zf4^+Y(%ERjAGzSyUVE*RkarW|TIJ-0A^WHQTV?P15>@KGIlJ$^`zCC8@Rte|YLY1= zk@<3CQjS8BSE0#9MS{H@TWo})%RG4q#p@H~TZED?s2f3}wV;%wjgW#`*QdNWQBX+s z&>EE3^cACLW{c(bb~yAYLeeRuC?lX8(ZnL4gOr(SJ#M}AR@+PK4@df-(J9)A_SudF zD@CT?qg-U1y9?2~jG;)~x17gvJtVF7kN^0O2W+bsqKa{q(`1ihA@IVs{C2s{-Im(B z2W08~Z@53}Q&>&jpBm~(VHYcm!lzUJE%x4ZPNhWSL=&>YVx%QeJV5N(NcWS*pqGNL zQ~-WD#-`63Kpml!00yOFBYcQg<*Tx`S+#ccRZD2avCF>polUlI-dy^3K^_bBkUXm# zArBATas>n-gy9&6J>|=9FoR|i^@APT4NU;e~fM3V0Pb*Cq0S&y@EJZW&+{X zc+dJa;-S^Lx5RxZqvOTO1ch{{9#S>uaWhMU#=96aG&bc_tRWJE%w_o^%ja06n6yl) z{0Hb3utT&{=Y?rY*>n4F!ihnC4i}Ec5lDl#yR;^m)tg4W$A~hm(72`Wm zEa@5{qP5(@B9G|>A)LcSA#rXFoshgFulk(G!Yh?{*G8&&5ky%N4Dx=$B3~T!oIX&4 zGTPPMxok#N?TUfn{*xm?-&|^7Dzk|J-w`#9o|EdEY#GItGl?-*(dr-wA*!ETj&dcS z@Ww)PJdP zP)Hq4h*P-~4YX47mbbjcQAow>72U|iZ@=KV@;92avnbh93>PW(=7zRg2H#lpcFZ|7nEQf)*Q1);`w*AR}N~V5T7U%I#S&!pcRa{^?JD8b>$kJIkAs@}5eH z0Syb8FM^=@=D|p^YRMvtbXHsE_Gdi<$suP%h{sc;0Hs98Mb$q}Mad>5SOoStRPX4U zoQpsVPE<=#hhjP5gcBTai%NQAz^Mn`7^?D3tf%E67I{oRU~xpF{BRKh+K!jxRMbn` zmMg{FP1M?a&}ve%lL^mhfnfE@uHpVut0IxM3a_^^lp69KU(@6{n~=tZ5RlHVV1n%1 zN8{r>rEzflf*cBBsaGaERsp*}5GzY0i+805hYnoi0{UXhPjfuG`( zV7jpE^TKSMsj$a)_uK!{F5=-mJFJWCmkUWr^ zZo26JW%QnlD{SkHA^XZZqgE5v#82G?#eY?GZMOIr!d+vc!qRd?YzJb5aAd6Dw;T^i z>yHB)xcM`964^M#lyJEz1gh@Ydejo;`e_OXp_Bq#Z%jfKu4&PuPYPdQ)Ykn9soe8$ z^I5r_o6Ymux0r9$Tb-{Xk4&Ma>C&w@8^6SVR3j!r%yA1Fa7^IuKVvxo2M{TVatySW z__Y3FyHg%>Vpy?Uh2-XQdWZ6M@A?>^AQo>NV-U0)OBnjDO75sC!sSso{3?CbRtc&# zthOej)Gh58wZ@7njKVI6RlDq{mQnlCwQsP$xoEcKVjCEr@IlQ1dMIc#g0sB;&%e)df&1R!q>yw@$|X6X6E6pKqm>mlSh;d# zVMCD&W^!jFGU=7xVE81c5?iu~1niLgzIJbg=X{DUSIlj*29RR4gh!fbZkNVm!O6F} z`WjfKfs$&%BsnDSNJ=M#B2r#S;05K3oMtOnW11ip!`33&AX1_fxKlsV&_;M}z<%}k zGq$$3&*I@Kzzf8^0XW#eR$_ewzY+b2rHVV9703PvVWip)c~fHQExtbQy(nVO-&kw^ zd3Bg(YXB^$YO2a!pNXwQhQT_afv3hPnv6kZ@ z>Da}JF}HJ*dEfU@^Ni5}={l&6)ibw4v+f2x~E*P-ow2rQFu^GDN$I+4T*m5j{+5ec=cg6(vCgv86ouM0q%{b z4KqV#h`wGdxddYsiYgWEHr3W(d{SqKcNENyK&ZOc>Ovj%wpA_miEG*|g29-Fkwqf1 zV!_x;i4;L`_)+VZ${%T+VuW40NQ9XqBILZbb#Alk*FC6JoN%G`U5-JbJf4i)QuE4$ zu`_8-$2ox){<(s;zM!|2Xa3&zzE@IFYF(ZGK@ike^U>Y?rV2%s zD@9%su$#SqXQQ!`lZm0Zk*aW|Cl~k4@&r69=P$66Knu+rN!UzU8wBITlA$~C1hK1# zMaMzdLAFrH7om(40gwW6@W7Ee)euk+qie?+h3qNm*ag4X}QCDpd!n~nC( zzl)HZr9hMBX#@0w83@!9bO7BKYQe^uZTCI4&wh3H+VMk7WF#K{;2=-rMNE_lH}u4h zo!8@vfLGbAn;b}eP@xsVDQapc9F)R#d4U|Lk#ZrxJ~icIl0tW3Cg9~!DC_YDNLwy9%%=_U_o9CR1#?M=MGC_MMLZ-)8_zOKzz0ML6)Wto4Dn9ag z3!iZgb*NmQeS4iFzZ~JZztC4aV7CH-h`@HNwcE!3j2-A z;iiyuVuFA>qGHZ5u!8&6q>pMorDU@s$$ckyqv4ilWhk194M1p;@*Fp7rk&I{!)8&P z-2@L;t>X#F#b+WUAC$ozB1*(ksAdpqM+(SMNGKzHCh;+$MrbA{=7DI4P(W>?bzyDw zu%`hmfQLHw*#ADi!8+I=4hiMHRL;7G2q`e}`a$2hqC8o-&~AA}q97`sEZ=iM*fxE8 zmfi4y*|wmK8(Cp7tg8^`uwx`_J-G%;*BoQ(_XX{%|NRI1>USQsb({AC6Q%<}7Gv|o zM0h#jvi5eYO&F^s3YR&LdOo(GZy0`sYpd%kZ&Zr_7+G1R+~|4oP8psvl{mjm9&1?8 zZ&%7Wk7C7GNe$Bs6x&QZu$F7Cwdyzgt-C8nDJVpvaA-LY=AxDegWn z##Z33tg%HOz0R7Ko?{IdF!j{>I|vtg}029=XUdA8-tmpjj=`lGy~o9h~%2dCKJ5EatV?D9w2ty+cLdFP#F zBS_^53g}Q2Cj1t=0Chl$zgew)70cnMke=iOg~D)>ZWH6O#V0@U`FLxJd?pY~@2L$X zNBq^fgy$%r#wX97Wk+Ly)S^6qtUwE-3I!}Bl0Z2YLAPar%SB4!F(m?cO}PF-(J5{# zaA^=NrTBCdG*1+ol!1XbEfr{AKC8v{z>D?2yLQ;!On5nJ9d_WU^xz4E>Zsp<+CQub zHa+Z|vMdX+Fq9)oysM_fRm>NjVs<}a*ssxE90LyIT95UC7|M{F%6Mo(MiqK+#!~Bu z&#)VQ^pL&x+CSLM|2u$UjIeHD0PDEZZQggq6;~W^y5%SW4Qe+(mPH{+>AQ==Zh^I` zaHv9|#Y>VR;siAzbcAshk=dsCz4TAvQg3^~L(&ON7+43Kqx+&*F_I0pS$%P9+Cx`Z zJlU$F&bG*kw~@RmSa}NJDIBV>sKR*V=Gxq2P4y_xRt+hIN>iv~JYS@ZYUh|Oy2!Tv zd5d-b?mp{X^N@}F>E7|(Y4FQh|HLOg;ebqj{p(*l;D=)Bo$-|qvnRTDZ@A$G#{(Vr zA{2^sB?>(l+e!QS&tvxAcS>2A17R;k4C}1OA0aK> z_9o5BO^rz@4@tkBTN~CU9MIW% z(m!$=Z)Ry0!L{Js6I-=Uwxzsbv7?A>e@t%W@qO-#;zxh+i^J%-yrehje1y;_7v?Aw ziY$5E)aleduS!#orOxP#IW2Y+P~!?}5uz~shJeG#Gjc`j3JT8wVQ}73owT6cVqlOx z?*JFDq#P6-mUWigMlKk#5ttQ*;KUjxob(VO#^3MQM!iwey5oIVWKmd!@)W)HIXAp7 zH|%ty)E>+IKI#*-di82;;>dOH_1OF0fJ;x_OD&mGgg6u`^wLQ-#lS|*Vj%)ud3Myk z``^E`=QlIvRejE6n@W<IXpUwOzCMs?Dt_3MqF$w@87;0?e zbN0kHzJnXaeweVFM>R5PIs;(Udf>l>9EL)g3gc;!cOnl}izX>ehUJJR3Qbn>hQtn` zx{M+Vv9JqgVxGqrYq8AsPK*jdbnDky+%aJK#}6a#Sanbb6XjEsV^Ub}V2?U~LB3yZ zQQ`7UfNtbH6z58)QYER#cg8bPo)F)K{Lf78kL}JW3S=TMO(}Wrd*ACIRAsb&^#|*% zYu{Y^>b1++R|l|f$~Usq7UhR9#4ySY1e)q zC57nN#pABjdFcDO24j7&lJQ?KJWF{<#n)sW#`3Rv_t#huohZGP3|(lpwTj#=a>#1a6%rX zR8TmmD&XI)XcbL_TGZ=E%4>ufG|tNY_ExO2gx&h&V=ymtTR()Uy%`_jyl$(VF%$SH zH@DoWJ6cd-a$C>!38(hlRl^Z`)ZEru1;}c#O#nR5>#U-h)7y&Bm^EX>X zbiVEC$Wh(D!9M!mzkqO(x(o_0_6<aA;RoSbQyMGke?Sxpk@8i6@RFovAo-~$$7j?5LUV}6R#I< z6^V*O1%uXdFp-C^^DI_Y#n1KIO37;cyjal$Bm+cw59Nb&Jr0mSEjg08d@ZIPXI$~! zl+*DxF=BVHYTmiWkM7!Ocdq$?U9qy+-f-dZHvgzukiG6; z-(G8KEJibfm+Z(j}OPSwmC|9Eu|sSQg|fQTEC(DAY3Own_$Y;~6JD!bXKhc}dDG z(Jd6{^ROQ@U2Q#KxxD>u!+QJEuI)shVWh6BwHP6#AQQkaG2kFf3>87(s90;d(0yZL zQxjIH>V4JkxHr~?r&QQ2|J1}-CFM!oMJ&xtFZSzj9Ts(y#WSt8yEACN{oQ)VJ2zQx zb(`((=z{8{)}pn|HrP)FCWU97<{FTbk*AG>LX46FBa`JgT`UUf> zym0)ms^5~R%Z{#(uC*h0EFKh)tR*FTBV2FU_W_iLpL($x6z!j{xzu7iHaW>#F)qj} zmf~@hklUi5u)_&|E0%D?3daB;wGGrCE1iW9zRn=O&mSkY2rqWBhonP46z-r`UMlfL zLDSTMeQ)4)aw@R&HF+{Fv^=3z0^i#?AcmOg(Zu(Ntg-E#WLymF8i!C z`N@-#a?&CtE9mgVMR^;c<3w_*VqiUL(d4T8LrT&0qKgmi@lawBoI&`y9-~U%L8A#n z1P@UQZVge5JuHRjkx+;7Dy2+IiM&pQw~ATRt8u~>AL+4oUw*tTJF&t1X+~(e-|8zl z9w^tx){ojx{*<&E?<^=H9Yf7O<((DN8I?M=z!g%yl3=i&Ys1_^o=RTp3zYGMoe9C` zh8^9HlyklR{`*ZeJf%b)^F+{vayz9EunHS1nlvUVRQ-ng;vkP7=e;lKeIX-d0F?8a zXnlFGsy!ML&3-Fb9(Uh3*rNu+;VO4t`G=>LL9s`1zfW)Ss!656jz!}V}gk@e(M1^8kS*dvjhVo1?_}5}6 zwLK`AUq83b?(f`bqZN&ojYP>OG0?~*1+c^*dmxk+gAh4x^X728d=(0*ppo2Utj>2b z(FE(t1t(W%2b=>+2*ucl$F~gz=6t4(hIR{W~yat&m%19!p`JpHyZ7X=a7?0HkL!!yQltL;76nJ)QMhQsSIGa04-nq`a)O&ia z=_kT3qp4bELI5u&&vi>vBbEa8?x7`sc;z$~OEma|jw@S0?|FPQA@_!{NwX}JN9lIJ zNAl!yBI-`&vsfhnNp!>Vi|Pcnc3 zg_kJnU&48@pqO~nXO5!6o0btnyvm6RI4e%_N8X*R{o>HiB&$yAZ4bF2zpoDa2|hf) zLtYk*Lxse}J0}o}LgP|Tv`2=pRo-IOF+i2e6TqaD$YT{tiO`^$1clHY;;TQjE^iNg z>Pf2w%y49DwKdfRFce2^{SJB@4eeJ%3SWz^Y+_+&spATy;VL8jq$xjXmOObJc3sLl z(!Ps5B==bAc2JHol2LiEwi9m7*4^L19w$UMrt*;fmhBy7Btx{EIw<#eQnW?NNN+1l zH>EPtN{6#T()r0%JWWp&z8e4W^~MzPp7*@Rq0&*vm7Y*A3bhv%C6V?NN#0IeVM)1sx z78M+Ti%MZ_Wz@R+_SmtDE9}G9TwZ^4IuJ~>HcIqZ(&_pdB z#bWub{q%PF+F)1);9m?xYw;lFSohu$a#o;+C|8fgb~qagNTE)%FGfTX>RM$|NXn^9 zC9<|vt?sZi@7OwiJ#}5RIN?xs;9hgRmxXB={c9QWef@n{;MA?~rHP&GrH+eGnsPp) z`@^aSJ-!r=+E#eN*clZ$pD&W(_sKBPry;9MEC->eXm%%!t9+`gdSgO%d-)bTFvuLnwPi_n|PpY|rH52pN@GbRs78AHCxAsjhC@uL^R9LD;zi7q_LQ>be$*F4SE`uP1$axGSWaIrC4lERvh4A5gH|QX+R* zmem)&@CAE-e9nD|-F6n?E6oW`G3!|PtpM?+BoixB6!a3&k0hEi*4Nc%O_hy~p_vep zuBz5Lsrv4zsI#9x{+vBE2*n7NS+as|G69vu5?YFre~3XF)C_+c_s6?03EKNEU2gND zd+pQIMo3E42RJM7r#SbruCv!JAwT8u%mI~CWzo7f**%ZM?T0^q((ZkNV&3W_2q9KG z1g1=IHVd!JM_6l!3e?!>M)sC>AhNO|3lo=nl<7Yfcg>t&X-&E_eHSJ6b33<*T%RkI zw-6IW05n}Fk+mq^YZQ$yh;up?x5eA`IuQ5mTer}~w4aGemOn~JbtHIwo)8WSo-H#x zzbTWg5L&(p+=w8oM4?Q;6O{`@lUe98eV!5MpkkOCqxpPpG)FsA_|5v*w$GEz4&ZSP zdy*t@Jh?(#iLimG|aA(Nd*cM-o9d? zUoY?J9Vw=eFB$TLBQ(6B%Ww@IVNFhMblwvLxPh+ngeVxT%6kG0IPgumT%ZwKsvdW( zE*OYZ`Gek2IvWqB(?D=MITBbfgJKC)R#kcUrjC`KhiydR6(6Bx?+B_>|H#8}F)$M9 zNLz&=O`QoS4R}2a8g#D1i3`$70);>*(BoBE1lK(elQu|4=Q&rMT^5q~9L9^nlfqGp zing|PKrF}E@y9K2LedHWHsj4}BGZJgdryyUzD?nEd1jheWjrbbtjB-7?%zQ-KIfpu zG(jszQcm+eU0H>^-v0KtJBxCEfZ?<-uYFrk|hJ+TS~561g_ zV=GKkA$75tmWeW-H#GM;^M(+er6M8j4n$e>&Ue1keW}Nfv)rU7<;dZ#kn|nC&hnr7 z0R?|9mr_W5fW-D7DCBp$ciNe4wG60&FvP}eRXu{@(%XuzIEpH7{oVc6+&IHV`v5|~ z%B|wPL2fiJll~J>0qyA8V_m61^Hqf{QUO?iM7iR|4Ivuz(Ya5tm%n*yi@pAwlW0GX z0ueVz*Y1Ly>_RgOXEOO;C7G8mU+!3Wx838lt1qpw-hr$gdDN-)KRio_2=jR4s z&z|ShGYvw4L`=j&jrEqS#I#TBv{byqIe=ThHkH*TDi_7POZ7=ov7o#>C9mZnl@eK~ z&6|H0e)>M^a0yDv#WkR8TcR! zb0b*0UO1d8k0Jg?cePw9iNcEGip2cBz+k}Z8|E00k$DF2IQC`pNfb|hki!nsE@X&F zbkLX24q=>(0PRmEQt@=9CzuKOtJ1+>E?raOXQ|0?-Et^XoxlN7E+H$3{V^GT;=D$Y z^JPrPBQKUVODK>`4hD0TX}q5>QBAKeJ}Qly4hMX>YHuJ^7w~wR__8yyzI;<6*4yBZ zL>p0clx#AA?L zXi9Kl27$k}4&9%z8W>AP0RW{j7=lC=NP?p8_&wNTi29x?A_NPMT42jgUuvhEd=f_D zd}qR{gd;9MxkQE>t)c)@R+0=#M~X-Hf}jd(-Eyd-EGR*{}(WH-EtJJzg2Q84)t#bII+OGxJ;6%#+p7?SkXmXDvI!v zpZugOFHK&QIP)Ye6ybkv(JA%|a?8|Q`6mw z(mB_$M;0$$mq*c%Ds&F&p6<)`$ZzbS=FAz7#R?0wpl@i%A55k4VJ4GkHtVU0*3{M} zGl}|CBH575WE%qke@h_Xo14pLk4R@SGjiVAN`6DIHGCQFovZ*5QU)jjO)}}&kX6xu zZ&=qEMN>_S5gAIE0g6K#o3QkIU?1_LRPg&fc&>OzGn$*|fpvXHrV#L`by$UrNNuCVC!Mu6@t(HZnYFzx>Tc>l%cni+*1cjX9T1!d|A_E_ii&d;6rjQe9n94q3+j2PUk1 z3$Nd(_ml$?Sfm`0H!9|R%>iQ~rS`Y(i*g?idk;wi6$aiLbGgjt zx0mozS1y_98w4v|kx#|^P~?W^_>whq+taS%DONgNcNGTkf+@MK@c zSJE9EZlX7)9}}QOK8dp8$F)8b)Sf^7@tMG`UHgJ@Zzde7@KT=!8f# zvUE6^Jvy7s)u5EQG@u84gy9I)j>X|4UA^CNInE^-i?H~wOyp-UYpI4zQi9@6!E<|re9!itYqw9N~iY93Jju1FdE zo|UGpjI`r1bL9ocIBedy@WKy-?z-!Lj)IuyQEuO`@(NJ9GLak(`M2<_uaE)z0;WrgiY4a2(7WKR;hyY=xWZ9Ai?lYB>t0=u*jZ>b=h zcDU@Y#YMe)?EK|*_RcFWw)wt$nO_-r0cuIq(FET6U#`j8J3m*rTNUytck)xcfChqE zwac1x1VDxcv@_tvcUC0wa#V*U@30&%OdWUM|Ni%n??D|-rEDfvVaw8e5H2c(DsH;z zrsAsW@ogu25}Ms=!KT^N_e7}QBA3@gjzWk;1LWiVeSg2V|MzP{e}3kP##nD`(ZI;ix!y>_*~w)37{ZuJ-Z+qU z6cn~f!C0X{j+)d6)_K5D5(=?}!U0YX1P7P$nB&?Vu!=}bk6XM1(&4D0!Ol2|!vpD4 z>I|hKqeotpP^pEG927mgCr?bbDmgpuQ#NEv@?-pbX_SxdSJ@d-V9MVrLZSPbeL79D`cdM?J0%@c?GVGJcSK-Gw0Bu7)%7`oXUFRJf-b8QXE`E^K%}Ia%-`KS z*FN8}kQ-mob%uewBNS2=xSi^fT(4;unw{v3W@?Mfo&q-g$8Fo~f$kmFO?c1WNS`CD zLdE+k@KEx@T~_BCw70!}fxY9c$J(rBxHX0!z)Bne2*F?_p)`nM>l^ji(XS(Pf+!E8 zIIad=xgr-|$wGNC6Gb^4#d(E(leZ(KU5=>UK_R`OA~|O>DI+N*g-Dg8RIjPqZ@+z< z5OdOflY_vFwovmdt2|=9)wBS%pbyjD4O=bw{3c?0Tv13bnZ0m$Kq4}61(}7?G)Iib zDGk(&1#Xr`Ah?x*J|OfxzJR9-^|UvW9^K{h;SB}7o$=m5CCr9eTIP<GgP-KX~AYt@9qa@8RWN{Eu(FX?SF4S#mhhD365r8<$lYqTsFgNIt2mF3BVo zBp*~;TM3_Dj~zL`o%`oXyWqStoXNhD&(Z)QVzFT-B&U#@ijifBCy0V7@*t%m$?}^@ zQH207#3>f{qi_`N8y7*)9n>T5Id98@QaBM}UAa$4K?!lb0#vZAj4sL6t=sHf?|Hx7 zd*A)eYyHtV2+1W&z8uu*_=eMXqRCcsjR;HiU0qpydB{HTHx-};E6BfPZ6IC2J%6;l z?h{YiJ&)3Lnh1(Qpi_-+h5clhmLewAaWzKOz*Dlkron!;_(Y3S0#S>HMT6p|1(LYb6v(RAu!CeVbcLcDdy zo^6dJa|>Ql!9&t>fVhrgl2Yo4%(OmqM@Kf~ct&gEy*7XaIV|WLv2*%40AnR&Hrh)s zrCz)E>?V89JI=IY7Wi#%$2x1T86vpSW1}cKFTjTc`_2)0dfO-C_S=UGUXlt%FSy`> zX=9|+(ng%NyZ|5Y4>AH9Awk_n_(p$E1K?x~7W5s`ezz+5kIA>xGjm~^CQgrt+?h!AL!^f=xRwPLtV4tN0% zNE4KN9UfjNu0k6BL|#)t8EN8HXi*lqo~JNSoKPcU%sGGUlVg7Dlh=a4`;YNG=!pu< zRez+=b}<6f$;x{v0svSQbMy`GqoC&WuvG}zDTfmVlzg0}uj5CGtg+no4T2nt%u@2<8AsTsX3lq>JA8Hi z0%L>7KIJ6|@UX5H7aZc$Up(-%t;-MF2t=wwq-$uhqKqp8Cup^V;W7jCu~{0j&wuju z*3y);&Ye$M`&_EgcaWqfbf(YD_ zC>T7AOdK7K`t}3FsfY;t(o3!=WS3v|X8X`T(Cl%+EJ_3@VPIdO3JS<@qZ(*e8J3qiT1n8YfriC5=XuE;P`&mo2P1vA%q6w7(1c1rVp`-XBF#@RDiAx+Uz&(wBEt2)7wftiC(OzmP!#1SAM>b!u0AI!rLiph``i2 z6tmmumvzPN_0B4y8!BR8a5o!&R9IEflmZIQvnCu4y_4U04J))NRIfr`MU%=A(Ivg_ zeasd6<*hvZ>He38_DuJ}VJB~X^Ur+u-1E7{-rm8}D(jnGH#pS)YJ$@si7cG%+vJ?H zw7F^v6vr+{mM>rKxV<&p?Aw-{W2xa0YnTbG4xxuW3iBfk024$@kMj7RT*UtH;GeCF zT+(h3Ug~ocXrTD4w~L$4Pt8oss`5Q{_mDuj;ww+HsW4U$D z<65GOG|ec5gB9%55#a~%2DxufI^fI4Qi;SsHlG3&7ue+ude<|@t%o6DLpmDV(=^&M zJogQ6NUoYaJG*-IKWRIbzsgisfbe$kUGMrdZmQ?J!BqMUSVJe{xzy)GAj?nS1-`9; zBZ?#{Y;E?eCi}=oKWJCJ;}VOFP@5F%CocOT=C@&Jbod+tE25d#xHOCm0ka}Z`cD5KICq8z@wrk%BhI;KqVAHnJVwB zaGDs$6=Bh`efxIjQB+e>f)k}>X2d@Fo`rVF>4R2Jy>u`$WVvDL=I~B3YWf!-L`meL zpE1ySX#rfI9PW)b-Z*hr(|WCtxeD3carz%^$Jv`3XFE|GjZ;6z3WRVNNN8)tKD#rRj2*d zfxrB;H-G6j;HK~_T=?opcmGJcKOa0flZYSdjRc!LzI-s3h|}+pN_0XBF8gsY405Wo z5h12#%nElcR(H_-NUVFT^OI|@}bIq~zf ztbMGYS(SJ_ojYvRYg+7*m917E-h-vI9bg!=HY6B@G=d0Cqm+3dZ?`|3uy5QEvo&iA zVUXf;RIQX~Z=_uR(jsq2F>57*-5be=G75g?tAzHk_GH~M=6xrfW}dHn(<-|5T5#Ff zv~0)1M(I~qR#DfKu>QTfY!+b>syPW+LhrwGw{@=HWFuR)lOy6$v`!X2S5%T_Eu z-~Qv@|JCNstF$efcXR*Ev?zt+8V@t)%)&b=K$qPMQ>={K_nh36Gk+6$Q!e&}bNT*N zdFBzr_oVB{P0~Kx6DC?g$z|5enh!$9U=cwuPsUC+$*Mxy6NJigau5+kpo@~k13jr+r? zr02N$CcA%c!9|rdpt={=Vk>p}vX&gkH8;@aV_#!EBQVEMOOqsdyAPyLABBKxfp&j! z6zD2lBs2b$g+U{YGVu~{vZe^h%HH*M$`MAZ;}y2zv>K9&&ynbbNR|F7X%IxZIdi#g zyZQHC`_J3*_QaibRhxezddaLS`}#lQ4S3xD*> zC|P3R@{F82fk^=gP-8X9q(mK$g}FA$U8ML9L7?2gzJq>RL*FRHT0U2*gmRuTmZtFu$zEtM8tk-vLO-KxT)XD7lQ6i}!ByF5kubS68UXeUjaY3>qy6ELq`mgz zi~~fSu3dVq>7IkaX)9N*bO=_p?FH3McFX*wPCu|1(HgH1zRKTm?Ly2q=dXXvo`exZ z;mT5ZD;cB$X%x!`KlnlW>Q}#7{MMw;mA_WAPNDwBM-E^haNdQ);v?xSMH<%ql_Y4;8+ z_v?17v;TXH0c*?D=Qy{@xvysCgBg8}n9GORuAzPQ0E9n?c=CynC}P znN3H>E0)=DM~BFOY_}BUFe(J}GI{6N&wu`E*uHUF&NkBu!WDJN)Ug%cRpM5xxvFYb zk(w4YY*W!+DGSHlU%8J8M<~%L!p33=zV31hz4ODoRY*eXvw{^|m}HVznjtJ}b<$0M z<^f)94ZIGM14{4MY1WI6}~O$Y__w$p=scp6Xqs}^=DQCPFO?u@~=|<6_7G&Z(kAGJFsB} z?JAC^iQ&o_GiILJ)zLMV-?gHmrpBwfpA6)*LnD25_R1CZ<$w8STeA2VydiVA4zqzE zvldibc)FHfDxWryAH3g zkJ>E2M|c=PCi_9aNHjq=UkGCpD{W?7t95m*weQ@t6A%IO&$&lYo*-V#UYc&w0v-N3 z<)1b}*y_rQ@sJcX5&Biq4zJ(!txGT$bzPuS)Fom5AdKUDEhEZ19pQBb~ruqmVSffYn8+np=;I#q&#JiTGl|Uriwz z`9vX+Y{hCj1q<(3ti4Eci=&YA1%&b_S0O2PqE4Xl6n+@%vdc*D_7NtC!Nc_wIgmRx zZ=mcIC?~Z)eu`qr8ZtZ*+=xuhgIfvLL9F+|Rd(75K^n!ujWx2znXCs#^7idt$H@^T zu&nkgB8B6mh(x7dEMhqL@sEG({J^SLP%K+Y>ocGEjLBkgCxzl|%6%?xMhHF?1nbd- z)M|SV-eu@rA2$E1UsI%t^hrSxIqPum`$2ZVaNsadL{ZpLUVBJ_cY&H4ed<}WE!0B{ z5FQ~>E@p1{Zt}Sl&Je-NP&hae%MbTLj<5$WXe&vJ&6M+RWHfD$);4r5Y?wK;YSl?8 zthFqYT)tewT%FrrrEmo_R$5z64|jBInO#}maPnw&XnClz8fCP%4N9S^nyM;)FH};3 zcY9!2xcrLC?O(t0&+y9C(28WxVHTJ%vysp8+{43oM3gUZ+a?I>MXRc50YSFDNP`rV zkwS9^{sMxIA0YbNRW?N*D7tV^8CzGM%QPzR=7Cys@=@&jppX0a+E^Wnl*Oz*=Lt=lmZ=wDC#9&IszJ$MN91wwEvGEe#mz5)2Bft zb%#L6Wkw-K#vQNVMvL{@Tq-)=`L+}7_2)0b6L_9UyNjZ@oPG1wA^Z9-V}!U0qf3KV zFmoxQ;@&|AJ2{09#dP4-Br(xAuD8N^LcvW%_fxz-x%p~>rBI-}At|_t;$QVv3%uiM zDE^}deB|B$@{kHQy2t9VoKsZl2gtWYsiGh5*kv7$!<8k#g3xm*idb0!sZ8FJ&VtCz zCrM2ZmJ4-NRD`z=<-0fJvYAalf;U%$gS)Dt(Z2IeKX!y_?!SiR4!HW$e<5WAVl=#E zOKNs^_pW7_@++$9Yfi}|Q?1kzN2o#b5A5sl1o3#JbUyUKtL=&_FLQtlB1=tEbXpC5 zd1#0nNG9u$qIwi&MG0k?u|=ij0eR{qD!3t>CM{z#-~{zkWXAA4bR!jpzyV+C;GWe1 zt2i$lr3CRhohLc;#3Q|MeHl@Lo)?U%10U5xL^&1kvnU{uxsyucp4PWXU_=2Rw3_M$ zyhm&*o={RbiYafN-aY28gLbO40)xN`TI@6(0JSLHz!)zdzm1T{Z_$ z!7lS8cSEe2u`9paZ$G;i-zpGr5Q^nY^u^ywaBIzBLM=)@vSg`UF|*A=6e?FkUxr~0 z5iW(rTxWr#R8w{zWf_-kddyj0Y%W3=PA0_&JEaF6dE}9@DA;7s%8*wr;+SZ1S;4Z+ zedDEk)NS;N%ktH${cBeL*Nk9&^mNc~msC{GT*l~V@n%NDRk1R zt9axDp9Cf4zU4e>K&@Q4(h28@yKmO4Sx(J`;J8Y9YEiv}ZY;stCnIh3t-RR0Z@S#< zhy_La*I+KZlp^wC`pQQtya#JJ?7_8=m}a_rY#aN}(JauIz=%!Y8G$6iQUg$!^Y}bz zpFa@G2ZP-(UhGJYrk~+Np7GZuH)V#?yX)sf2+RE~VL5Zcaz!Wb*QbYY1*D9wy6Uqq zm)tqKr>Fb0n#Q_wQ>olZ@l>KU;P+J~Mo0bONW_yR5q}(%KVSOt=j_~bPPCrhL28U) z6mgnUj_?!3tR7O;EbTpp20@Hg)d0?8BBhyDm@rY=1E_%sPaJi6bV6skKQOi=GMpqL zBc4j!^`~0rfX{@)%M%Kx31vYJzJHz8!4#3gT6!P&ldv?LAE9(mt{U@673(slqA;-N zyb>b!#dR7T%|Q`XL2sgcwsOUVI3OPK$tkPknv8UI;4xN_L-NuFr2}A30EYBVJGzxj z{zqSDOOMRi=-wx-u_kTHKi+2#Kc6-c85iej3*Tevze4?qi9zF8aw4AE`;R}xj;*e@ zN_g^wVijF3Z1k3q5|)PLd;Ztn4*REF>z!@HCNWjNIECv3g;&wMLW1J1EJup@Kv^I4 zZOd66Vfl;5E3S}MuU_q4{qO%(8}()JGPY(|{7e)=M1oJFMzVel?m|Fiz&bNBoLqWkvRf}x{)IhZ@ zH8n|a6d{MTJ3X+)E`99+d+$|CZR7Sw?MJ`fX}|b=;h5T9@KV7%#hdqHs7#ayRlcXV z5KsF*6!DS0_Kbp*EdT0W;3+=Sdf>lqDczPDx@Xpz7{{DBbS~VV) zJCyJ6*KJ;S1-||6ZwKCUMDpfXi|;?+7T~e5L&I2YQ^Z7JW-hx zUTeZHR!EaX{Fzn8w|8$kXUnla?yNKMGgl$`H18pTk{v`!DZ+dxM`;2|iE?Wdu7+SU za6Be}OCp-h(>+L*zw$}J0KK}X9TFUV@7}y!c>Zf`BZcswJFK!MLOU5aDW$;c06)<} zCYS00VLEK59&PryzdOxNSXf~rd!Mic?;Enc{dtFPPt5t{iaes_%a=PwrMB_nt)4;Q z^7-?RvoqTlSObbQGD-(peaK)HaLP$05m5iwwhi__aCGWgi>Y5VMw5wZl$1XgL4bJY z$`NsfPUxTZI<~vLoNW(vorC}4hq||EZYPVcxp_%+V8j-A0^aj;LEpKsI3LqEG+b8) zCuC)|$8*UMN81I9+pH4zw3eEeDkI)4U{5Y+Kk4tZzuV5Fi750X3ionE&Ef>L7Ac?~ zw>($h1|R`661~>KP7TCPtFKB@$k}h_oJJ}0s~6eLzusy{Fd2{U@#Ztng`>f>1mM@k z28T8;Uc9iU>CMX%YgVt;FZ5S=39oT1pX3+`yfE zT*ZV!@?=5SiMe$One_N$+m!lT;WQ~Et*7Vuj(RQSpyk!)e%PLS_Gt^z?p#V~nEp^H zP54cX7E@^h4G;a)8lHM=qkZ|4ms@3iot^N;+nl4T_tQI}_|iBQMOY~j`qgcz;{_~H z5pK2=o@|J5c;UPw?CmF>V$oeYZ7#oCCFIX3A`}%A*?aK-U%TNcdoVWO%w-1)(-$9G z=sL|)<#gcHc0vKa?QL%x_l9}v-7MeHXMag?Z;8L;F(%zN*!R!_5A1Bs1%j_h=hBxX z2Zm0ln9$NxM1PNep?9Q8!Dxw#L?OBwRHnbLPx(ydm94 zQ&}YL`sF?<2PA-o$V-a{RMm=$Acq*W>>%xZfa=m|l!n(d8U>)>oz-GKSbsf7Ei%I^ zay=ngy6I72g(zN?FN6|Oyq$b33_cXIRzq@1L9mMJLd2)T@XJLKSkPN{S=VDvnrH3P zMCH&_3{*c#Ekjb14d|~C8m+Fa?i%Xu+FTK>c$!4oqw(H>^)+*wI^S}^vJvR&AzE;Q zf#rVlzphv63UEKDHm`ES&aTCTv@WJU-?{0&-i0%cXpQ#n+v|tm+!Lt`+1%Dy_Kk0R z%}!oC+ktv3jI4V}kZ4W1T8i(jQpeTj+Ge7-`*1$vW7RfEyxc4Mahnsjn*6m3YJg9Q zopHZ1F~1mb&u_AQOjJmEt!<>JrM#b9=dmlUdb{IEZQHt$^T}D=>{-^oW4Be#nvL;F z&UoJro8JRV1Y-lDy|791UMN>6gY^l8Cl3)kLf`{Yg0#^Ua~?>^We#@|y|Uy$u` zL>``iSZ*B@+g!`?g>trivFp6>ZhNtNEOUDir(Ozis?X~^-RlXzmLKq}p+ZAyN_(`nXSe zHi9pY!2w`_dAli8X6(Ly`D<)G#zh39d=^Y8e!RE=ApOTYwZ_@kbZUv5 z4W{^`GL$pUIK%1OJGR=_c)VtcOwJ8DEkkBWpt|-{=Iorh(}W@aJ-pQeDhj=az}Zn)l2Mp+n|bYDpE$l}+%CYkJBIkdAXY&Gr;F%HL{ALh{zGzYJ;36@jgxj9O=1ws- zsEz!X$nAUCl#!0frGNS5(MS72Pw&_{i@Jwbdn+Sn=d<~vfDhMJz`f&%k9y9f7HIjg z$6*c7k{dU*hKV$YYf7;!-jPB{@)igsQ8k-qqW%Badk-+VukzmionCflws&b)y~}d% z9WccP{{w-LKD5@Asv=mpx38F)cz#I|42}ohGCQ z)dSL^Emx>pl*3n|C>GkQUiB(x+m#tj$IT=up3Xg{9-|5PPyh5!ZgL8o@Hpm)X43HL zU$iBE^tYD1>Po9L5d{UN7{G5Ia3m7FKN>1OlrJZ?{K3cGbL2~3`b-vFtmYHC{Z&cTi`-uC7<+5h^3-zDWC;lkv#_Pl;p z3gjx4rlwcJTpLbexnaG1<^Qe&LWuN{I($KZ*Z#&^V)pDm#_j7LkJ~k?tMqB=Ds zbYD{%8J^>%vSkChP92i`>bZUP4idM*sIJj6raE*3uaevFAwhDH*t8V!Avx_p{FGWP zEVv{|oKH~7SB|)NJbpq);`Htbu16A!P`8!2{NWFO__Pwnre9~KzXi7;|B#|p6mF@| z%v$px@mTvpLipYUO7OcZx?rJ=Qo^Bv1e5~QQN1N{)ooQlj$9%7sY;tAmz~WROqeZI z%Sq!Q?MTyypjMa?(lFlxEV3rXtb-7T08&_D^LE?wEi`fP=tx(G5sd*N83b!4SjZRC z$zr9jyR|vG;pmYg_eY}swZ4k)X>iW=edQ~kOnl|DpUqQo@;oD|y~LOBQ>MBnw(M=m zB#Rffw71_pdSu|jx~Ar~LLnE3)kla?DcDWdUuA#uxlg;&5G_=79Y+EeCLNYtM_5I0 zHD_uBSC6Z|XVYp#`$Xrs-zON!zkTN(yZx7b*VaDxlpQ@f3KNvis_ec$^4KQ(+P~a| z#?fJ`Rxs~tZ3?+_*V5mom|>@SrrM=X^*PgZw6936qiRJl)^6->zVT*zdgEq$;rTs0 zni7X2l#wJjh^Vz9!lIacfb^6cX7Vi@bH$})Yveb9rkC<5yL?5+-gj%rE?^gsZ|#( zv)O%T!n!Z~C#h{qp=T!A->}$MU%q0blq{ z0NuV8^>~Rd6pVVx6`vv|=k#>ikALu8TfDFXByR{Pub<#=-Y3teRXzRMQrr+g1`nPZ2WAD4;Q|_L%-)8#M@n8MBkJ~T3Wr|syXXg@=QF>Fa zf1+#5w7<6RROjn=G3Kd#)4s{S5%@%FG*$_$G@)pN?K?PZ7hQHE6?RMx!K{K18}Vx)baH|Tk&oEZCVeN*t!kNx`XvWiSlpxTiy z&1aRey)@T8?y8^oM8*60&;M2&#LZRZK=@TQJ_byFq%%}02J5mZPdh~PvYt711rR}9 zNBSYoSOSn#yqM?0hE_>sCCVzyvX=khF6F@lS+|(7=8FJxtXTc^H`tul++rnawG6Qs%3xKg z&p5Iyqdrc#zi5m~f>ldGlc0t4CbVWr$$lVW0&I$K(ggOR7WqRkF~*<{iK+|6?b(0W zUby!G+yB5LW`_oWJ0S`ypRI_eS3G&@-{uFHfZ!oj)-kj{^_TKbx3%>h>hIr>e(!s4 zdRZpol%CeQbG)*lIf!v7YVVgX)DZ^r+K}a*E76jdtJKC+(eYe;vM;=;YD5 z&gr&E#&LoZYJEM~=k!xGF14-9+6rPeFC(x?sKs=^v&N~dbcuZvD@qU~7c4s#YHfj! zQles<@3A_|alER2?cAHP-uVp_?QFC5#<-0h+DlLt0K^TAFszhywuG#sQT?S*4d-C@ zfv#bqN8`El!fyM{eMb?sfpQur)rImFP(7Z7J0W0Z2xb_Eu{}1n-*rJKHMiY%+w|_7 z*59%WDf+M0>OCC0%Fp$l8IxsV|V;JO zkzkJurkWx^i}<-gQed2Z&m>a*lSQvZyiYq>FWY3N?|z3ZS-gP!QKWiuWK;s81m>XLmP(4h-0e$W{tv9b$CAcR zb$=cEcVGTa^)TqNV=$U&qS2?%mriw?GydHpdm0Q%>sSD^J{Dh)0IOBY7ug5j|8C1C zj+noNwLCt^G5B(*lja5WqUhx_61PJbIR4`E&)PFDBtaX`TGPA>iKxQ_h^FH-R9;j? zc!AJ8ghJLWMJ_3I(-z9uoN&fI@Xpr|CEIVUjXt7&_wl`2y*D2TTM}ltIWZXpH!GO3 zsRN>lwjcV?hbDJj80xfEZ{TGc zop*jM9*lYyXN%cOEHgeg8Vp1#BSYSHm`$)SV%IHQWb+8GjN&}>k{IUdtSESa-z7m* znUQ8|wREy0mC~3dNTz&Ci>XiY)}|geTr%0!Y7V_rO&=`)DR?GLoG zuMK;#AUzb?hBNe{6*lLFYpj0h67$qIqN3n@c1)E+AT9;^uD-dR@(ImxOiBI3y2fuB z4YVQb)+MAX#W93nX7zsZi70JS{T3N#_SoGgHbJ zQ`w?74~%i>h5YE?I)a4%E6^1ENmHAD^IKnc&B%EZ-AgrNPJLbGROs-~zB%4de2v%R zUyW6uE$9yi(0Du}!$)o9>Xr81_q~hadL3xQiYi6AW)-7jGuNsKu&2JuIXXgs6?2)?R-e^Y;mn_(^z(&BO^B`fC zfP^c15h4&k1p~w_08ho&3o?0E#Ak21aiP8HvL5pT>fGQ-V$m4Gr-jRxDBUDJ=KUG& zJJHT0#1_-HT&)?Ug(Y4<@4rQWpIFyWg?DwWhg(B zO%p_$%7W|D=|vnMA}xoaiy-0`IS1d}Ja_WEzx>O;JdR0B{%{swWQ!LNs^HtDE(>YA z)>vOwuMv%tpAhXv>uE3_l2Zm-uVb*w7TV(1-fWe*J(h25v@}G-O$q`s@C~33B1JJl zr?wh%QeSIB5 zU8u4XkL}!bVAgkV=P)Br)ZDeF5`hyRcx+)zKSm3twrHmRc9OpVut)j>9ta^%gh-Wk zfo9@TC0o9v&wl5(?r>Hd%rdNTtQRn>iW1SWWaJ13&lkHftF_q+`^-M|xw~z&++{-} zSb>(IDZ#M79^^{O3gi^%NrmHbm3v3zY#}$|qsd*0r%zFIAe9&7gv_-<< z6~16})nK92iblnNytM5lSHrZ(KKjJ@eDK+Gq7mQj%DQWMx z{yOWx|Iv`A+yk%44^z@Yl60c*N@+(<3=uQpyC6#Rshpf5qKsaw!dA*SAzKKeegt@& z{`8nDCZ*)lB}4u9wS^X5YfbT>^)vzH9|~Cthi4%SLn?y(hW*#W zR+5^tV4k&JbCrdN>Ko;_Gz3Oa^3ry^NVblc(5Djl4x%zzkoupF>VNiC@5Uicq7t0G za__u6SAb+W1u(=g@kQ_(9s0qKZ18EcqJ8^Cp*WFApG_6Zv$kPG_q+?dt_i>=gu73-bqMA_5SDof9Xcxz<~qd{fCDZdA-dykPLQZF_-QRgb0DG z@3kLhVyKh*^xU->tM4c3$H{)H-Dt|E5VaM} z%E+?p=ojNF#^KQ?`&O)^QZ-fw(_?J4DSfoB?2~t0r+dJ&Y{(aVu zP>Xit$rlTxJdx??^N@k!JMzMT14F<6Kab?mmTIGZs$0(b_X#pL>+??ggwKBV&S2i} z>&fR6_>Qs*$m(h+q!Yd-hCh%Ww~M=bZ8-zs$L|qmq16$XpsC^IKnk{m^sIJ$F8@s5Zd=O`j6no_)5z(O-$c zki0AM*({3!V=SgR0Eeke8nKW4_HW_K!0#Y}$=nG?nDY=xX+>fO`tG9Y-1=~Pw0Fuj zbLS-TOcME-4|(xk&C!Wz}>9u^gx@BMpYy z$#~9k=^%{B6C)h8ozmb}tzKn03S%{}z(Sav0+=P_EAg>;p~M76vHJKN zJ$C=!VtyOmZCjtmhFlc-UL(>?D_PY@NFng?G=s^e53N~l@#TxHK#i3G(ocmv28T4^ zVRE@7R>As6(hV}HBaRU{p$TcJ#8#fzYKRPe^%=;R3NtkZ(+k77M)w`EosVrWTla_s z#*#29W^oDCtHfYiVZayiZuWUSKSdn-QA=a^k-3ridn<$6lIKlyvz-|)&GBFS;unb@ zwoc~wYHUFByn$dW90+*DY=Q_|Z+zn$i5gu)8bQ(pE+}}xnd!7nq*0?DK{sd5Sf+GG z8V}R(w3?WhYkb`Hx@%7BoT&%h_S(}wXYyXU0QZ~ft38e}O})Vk-yM^wJ@*X1*LHc( z-g4B6VlXl2FeX@UoLPc(7tn7+xm|tL<#yZa-vD(&NCv9Qi!fOxaKVfJHak89Z!7`9 zqlnoK8v~N-KknUS&+jAYHZq@M8nFV^o43T-tX*lgUIH7$jLb_xKFWUZ;+%CoGM#puMk@~=x) zS%hOG)Reex3z3?BG^lIlFSPci82v&B3Isf%Kp;xg<~%a(FG9**_M?CQVFTBz65`qo z&f(`vc40juKAccA5br4!3M(1)#k^RJqPLM~p?o1}mtTC5wGb%=6bjK{K8s3Yz){PP zyM?9C7q{wOw*YyQ(k8G)!4UG~dZukOHExgZ+QkcAV+ERwft|O|@2t9ku%T^K8i_ z7nvXX?9p_FB)1rI8#^+DB#&vbh>lONXcZO+E>xlXh31@-YbOR^y5JX-1c!+v#Nvpe z9S!W?Z`Nl$L0%lDI?N`RQtAnhe$Tt!NpLFi zO*2afXh+)Z(p_1ii)1>ieUAbTb1sqKOuD>VtRTn9DV+P&vfwvqN!hNb| zP`LLUzxI|>9d`Wh6KjDds6GSFp}xXfb5)hmGq$clU#gJ~FbAGrE9YGR zEjM89@?zerE!Y6Urp#`U5CU+sEH@%KgvwtL$JeNt1T;`7htoQt*bZutMYpD@B(E zO1@aMkoAVL19l_O8n0_>vcaNql%)(3a@{b~=MFIj))xblX0kkPnvq-6)D%~r; zN(6}|2v=_+$ia`Tb_8{L4`I$*JDTltPd{!4;yD{DjB_NjhGSI=UN5Nw)a(LH9Ur&SNfhvdTS;BO>!MWiz0XKvbG z+g^OcaXCObY=X{<_)oT(PM_E(2GiTyY2W+)y2-;&^hFHq@4xW-cID-(PjtwP`)kjl z^J~p9$0>i;_Mh_e*d-idGB>yOtmYLHJZye;#n_ocso}$x!YlNJ4B|YlA(v z^;z5U!WQTS#rtHrATS}2$7IL5DY2gAEFz1^vi=r32HAfC)sf znyB_zF<7)*pkz7F7?RXm3P->ujEvd5_JB16)3$xYgJloMHN|7Y{yA@w>^}9W zyTBt3^ugLMK!li&4K`Ltje4W_Pg)s-d7WL92v=Pmg-!Ap*ky&}9R|Otg4!d=LAsLs zMW7q=iS&RbR10nO!+^$li8;7c+B%gHz3nEmhyKcI|MjUByJ;!+@e5}zX3y<9Z2$W0AK5VJ0E8|$r)C(0g?)z( zTZ9@;s7PkLJ=VKyiN#u)Fws#egFe7ZU_{4EkXRhulGkVLyVgn;CLLmthwGUv5T7wZ z;R~1}QJ-Pfev0aGA<9jU95`s(H$G=$FYK_&cnbePsN(YnOLKCP8Qhn^050{%YgUM*oNx1u3QEN80tY#sqQx8Hud zlh&JwveNu~(V}$(RjTTRakQuU;8d==(^b&x^H&h|L9M@ zMDPxxy_!gmo3HL>Zr9X(zx3wU*w?=FM<>;k#JF_KaVQO3$@zih3!d1j7uWr`7aL25 zHFivPc3RHlL1*wqeQ^&z`*Zb3GLfn&kU*xeFnLH(G$oK$Nhw6LAg9RXYUm(Yw-6p= z%2D8l{6YVA=Z~zZ4XChj{6^7668WKl940fYOY49bh#{(?uOCgdzRm|C15v%NB{*wB z_{ak4>WekvCMJj+$gvi@^4G??>{l+k(k`G>#!T&#y^HOQ?LB&^<9@DI;5{~PD&#$_ zp0fg^{-M?!?W zOqx;6H(I;FvFlIt5aQr`BK#>vDthWZYbTu1C!7J2J5wtoP*$Izx<)6*8XDvp&mfbj zkABWyxBwsZz%3+A+sIxY<_tHI`KtulG=^odP9X-hT6ybB>Ay?c;DV_hnCFmOr2{jY34WLx^U+Ijqb`uvZF^A zvAAxctj-mf6FNMFOrRM<%8<)8D~(G< z`2;H@spd1E`HTs3uGXT|BKgg?)Y;d6ztMjAmY6kQI;+P#BI)vQf_Koe*baMp?CU>x z+Wzz2gD?q#75qTLDwu)Dnj!%j<;FH93Q;z1e6@8iU2G*1eTNCsDBv)xAUWlcl*DXw zO&^kzkQiiw6cegV49Af05lJ)3BQbh;1|NTWnaIjDYGOj=31Hau@S|4Run|oO9J6Sw z!W|0vEE#k@@4iT=@+kH4?#-5SPn6>6gOvjZ&Z92WUi8n{XCiSRjBj8;CY`$uDf{v~ z_Ih47wrUC4r<~L+|?q7uK!NZhhB2{WeppF(l1>^{@87 z`-2_$K^+5drp4+3tf7f7GhOg>_CZS=Ou`JuN>kGqVnpW{ebYbM1Va)d$_OE!=c=&Y zn_AlKU%&n>Ywet4>7zqnZ9;DlK83dl_#GQBh-*SD9Q~>gkhFXI9$V1Yjg|%CN|e&+ zxe;!a=bj2VM;IlHyj%cIOy)eyfx;F@g1|> z(AcnD)zM`uyL#-FXtTYc5#gWh105vVA{?a2iImSv!&eO&6YUWdf@ksqBBlnGGw zBE`-qr!=WltFac`ThAJuo(sAKAHc6C^0JUJu&rZ~D_H@pA%V|noC>d-@Y_7O4`}valO^yuRVV}$C88}& zjie@Qpenef_N{My%Q2&8pOy2!+B%w8^zR9QfE~9#dvCq@N0g3Y})G8$qsv|2VzL9Z~mj55_F#;pDNYpe~7u@aFggXO%9F-Zt} zcm6LiBR3f|&nFjObuzfc2$PcfoM%G%K=}1y3dqCIvf%THAw?h#0ZLgs_oKThsJD%0 zBr(<>wfYh%Y)P0=rMx>5Z+IY=N!}fedLN(HR6JPOzyCZls=e%=u}=jvjE(KBD;G<1 z%K7|4Ow-L!1e9Syy%E-~qAu1o*IsT}B1a{~mhcaRh_+I51ahYS@Wbhtv{VY>H-6{S zPEecaGE?_SnA5SREFV!j>4XngJ79L7$1xw)%}d=T_|9>+QSj7cgPMCW!%G25V4b-2 zb=TV^S6^xAan>o2UKJk^u=r%ul#irSLD8mQrUI%P3H_dLyAKEKFTU_&+j+Qb0||n% z2y*awVFZ+j;q8OK&shqrC}pXEl(s@@r_~4g?Uw5o+Ny=TWAZG+(1`#RAx^d7GVTkk zONR&xf9miNOQRu`(byIOUG|Rdg`lgA6FqDX(GyEFAft)o3-1n?{?Rk`ro2CK0>$aVMHzV zdv6cnJVYCT;W-RFq@Nfsw^$@!h*uG6U20G67^6h-6V^XS>EcWsPR+SUmYRI^nCW;z zNlX{4vc)%EYm`s3VHjstfeK7e1!LrasYleKzj6;u3_CBs)@l=8pGp+hvGSK`QZ~YP zJMod_NXFfG&%I{PV;+Dpg*Dx?nL<959P^cnyEthb4%eSFMuJcDGx_SZsqwa7e6t~_LZr}`nO{Ln+{!_lB$!j? z&uMqhQAe}C`^WFh9)FH=T+=nCw~2idy2SKfPx`lnu;cw0#~&`SR8fR4X`2|Aliq{p z6baY+QNEWSO@q=c?vxMy+WRd%GGOso)G-LBW#RKy`U-j!bcjBp&49m8Zej~Gqt$jC zHmofh2`-3(!q7)VuLN$;y$LxNex9QB$k`+TK101X!u`Rw>uN~bufF+u5Lz(tB?qwp zjX5h)0F7xFttttFTEG8*y+G7lf!xFjSeZp2Y)D6RKKdv^Zq4E}wXfCG8qp&%q5*T`#n^u2Lv23`8Oqjt!1>-+S+ta~g4Xj3Q2bx-17AmE!Ih$7b#j;rcwZynz4MwR<*X;n&uv>mm{4s=sOTG!FG7u zvT`M`^zH|L+Hfwlq;txU9^SPp$$zb=T@E>9GyAdThpBmo%PkJqxk|f0K z+Go3ee4p8dXWUa#x`Sl4aeStwWL-S6525Jsd^YnyV_kgXCA}97ZP>7Z6>z@&ERVn^ zFxMSP4MfM2<8vbQ^}U5sxk;g91qmV`L9bZ0*cQxhA%`4c3;{>l5hcT%>E}%PC1y0$ zly@%h=X6cS0JVBJ00CfC>jAGi!XZI(!Qj)9uDl<0_^-)`8 zh?6kwQ1+qoEz~Q2-7Pm`ULWVl34oI80EXoe#1D)~kx_UW=nKLo94tn(+Y9{(8-U+@ z=LgT&rft9jH7&=_+(OhIOoWInA1Df;F!~jN1z^h&+Fh^)Qbxk%L-v;2R@vOnqII^(8V+4DW=3^@L>mlIm*MFrZ&AX755Yk5?!MAXjCbt zAaG>33mSRuOBc+8sU`>uhgL$*J&|yIK2zu;uw!}u-hG_}j3JSqn|7j6pY_$nCHuDy zG?u)fWsLlCfFOan_5?iu1w`rG6`k{K4rZuE%xuj#;WEJJ3y&)bBk@pu(FX=w2zZn% zeizlMSN#u#z$;^}BUq)0`m$UYh<9=5`G zhUB}|*4G1uLuS9d{}##-UxUq+9_#u905G9Yk)@L%Rrr)^pgbV01vIP-+#(z7u&1`C z?K?m0=l2%N3{&*308_zk+!V(_TSq7XldkTPi>+hL8aqgMwy%lE7i?~RLN=i!Om0cI zNK9N<<)!`VFB2e0g-I_AIjiJYqI$}3Ua8W`Pg0&$J$-J@qgn0kxBhjH8sRk^~zrtpX@=`Gm}S9ihycTv2QW4V{ab|h&Vg4W1- zw2sK)G3HAN_eKKxTGDrC@}+kZLa`Hu8Osu1oaQI16n&7gP)17&G4~d=HQU^99P}52 z^+KN55)vp&qVM5lo0Ey~E}i9dz`74uGy;=CMdc7+J_PYW00o7&!uWSe zOs+JMYAN!1@cC6Gg}P>txZ^gEskguR$~u?^C=AIscHCzCHb|;Ge~>KdJj_rb-rXR7 zkAkCDst;RQ6O!kwNgSHf$LbpKuK8P*XqjM?o8;le%akXA8`=&pvmg~oesD@p08b;bW<@_t2^Yks z?Pd==ambS8P9ov(BYAW_0aggBuMGvyv}t`Y95Xh0(893hq_u1(Kc0vSSH zjwl@q5<0#H>rX3|tPny`DLDoS^Td3C(7a-~vN)OYw*2OAe&L*GNwrbd*qw2ccC>Nh zQ}IAJwwRc+m8g52{z5j`K(tT@?5!0bBrFA-ju&migSJ8tEE&uZ@{U4wm{ly_(LRvEOQ@m(-7rGM!+;Z3u(L)X%dfv~fi0Pf zDKB@B1I5E*hi%I)gaRCp z#RAODUx!4(J;}x%%8!x!+GV|0Utz(%UQ6LGDr?h(n`m^CUWwUO8Iitg;;P@0c1tie zg?K8zN{~rzgCMozbBe;02A|z%g$)3u4jjdVM-o6LTZ(u*atX$tuyTmkELq%bt3U!5o}CXRLhnln?Q$m}DZ`6o!J#kEDx_jQ12CQ_ zfd^f-pZw#yAKGh=ZKWJ~r2|6I0RlJo2@6Sqfs{=jOO97qpP)E&Qe9x#{D9r|8ZtX` zN30p#J1e4f5sgfZ86tZFXh{Woc<1wW7$G@B;{Ld3Dfd*+m|P-avT}h4FS8`V#2}0H ztMF+a>0AK53MKavDt<9=LW@YVi4ch9E#?@FlF(t>%7yYW`nBNe-}}d?=JkwYIE$U< zgdzR*XFnT^#yjR@Gr8rSV0eDeQ;G+G2x_8ZaU$!kqGpGfkvOi*4>jM3282;|1H)@_ zbFPHBtjH#=t=?7KAo4OXf#uL@#+V3C_Yc}Zq?9zwC4tws$V-S&Jj7E;@SX?l(j{h> zEpM?Ha2tf8@Dd2UMjY`<^@X8%m8XQnnMeIq^j;L3aF7>9S}x(20UIv$+LO=c?AzZz zN_<8W<6TGIX+7b$M9#rTQwSr{aQa?#qjg-k+WLur$|#Z!3L<8szD#fGsRAd|I20+1 z$RWNZv6JegS4Ty_kp`lx-XxfO(wc93qcs=d>ip_ff)O6rBTNO^-| zsgFFdxnui|#+lb#>Fio{HlM{cXIp25o@z0 ztt5=5F*y-6Qec5OhUCaGq5}&{%-U^|9(YrEFqwoAOhFYB>qAi=N<9mk<6_(j&{{A6UY_qX3rlsZ<&p2MrSU!eERu?hvWtUhpNabTN zN!2zgAmAz}gJ4kilGT%A^1_r!O&>MM^}=B;F4EA4Rutj!$i22O;hCcwH`?Kc9x>ay zM^|BXWy{2NXT5&!(M&P75!>hkR0Mm>;yL*8d1k~Qy`mZske;Y;pvq)%`~9-N2Phfs z3B!;o2ue5Ha9x!QGFN08k|Z9)+Z8vgO!EIak{#SqV4ZHBFcbbklb>jh@I9feY z#R*+gU-+p?8LGQx`~M_EpT&vOMa(KgV*TQ`&I0JHS1DmrTGGuo-GE#nnv!Du^RN&n z>>y6T;UJh0+6k{6TOA!ivW4N~Abwul1f$UR2R9zFAK$x;MASxv`l0IQKKPdWS?b<9IA!DttCcGyCHy+z~;FHl*wQi2eAJ1Lm7 zh~%X5=OcgVJ3q8(Hr5)b*QCRFOhbXBRByK zf>3A=Q6mlth_37XXlc0tK`W9vtCz2uMl#*W*5!yg3`HD&fPvVKDQh=ApQHSc<>g8h z4p6BsmmYS)$JJLZw^v`WgqM{jVv^W>1xRpgNq!wTfV3}}LQ3R2DTN@2-zl3*R`Kt` z-Q2I+{`04YZ9M^PWluAaaf)>lXd$8CaR6QwdOmNCUHqoo$$<*l0hn&AgQ8h57?~DD zEUNv{`Hr2qahm$g5f)}IQ;q4!#smU0%0fiIBuQ%9_0YrAGup?{pfYpwVmd)cM`?)c z=}kpX`H|Fk=J7cVz5CB6y-p16E9`^PCZ2N98zlNN<_`qxuyn|3i;%<|VoqO9?W{C~ z-Gu5cRml-R){hg;m}e(yvnABRl$$mF+zD=9Lwy)eVwE^S({Jy)<5MqUN^-C}dN_HW zZo+`LcHAO5wv3KHVdB`6f1C+3s$TKZ?dGP#s1@aBb2lmBkqD~Jur?8 zrZ*2BM|mAxD0xl<3`YkR9xDvl|y}E!O>Yz2d16h>#x;gLx#{UeMix+eJ0&N&=4v z5Qx(Z8u(0Lc7k7~?RHbEx=&2$*+;)=zx&a5 z+VW-d(a4Z5+4Noe^xJeW)M;09rnuRlKK$m#{`$q{JJ!vyR_%u)h{tvw`=;mDcH*Hp zcC5Z}+?g|@<1eMZe2h;XO;#pUKeWlMXG!AFgAk$GD^_%4jl%*Xl}SuTCP!!k1djz> zv3OmpEt$UxXfndI5sYOjA#4_g1oH|t+rd$@pWOSj?Kwb6hze1;s6P_svFmd^^p*mG zco`RiV8ehLD(4T`Ti;CGBuFh!=ID^PVUgz(Y#E_fL<>J}gP`L;^c;<5WpJ0!4yS=Ok)J!hsM#2>AszUTj!9 zgYwSpPrFT>1*d&d?Z8VfRgLvvb25`!9P|f!Sy&AaW?zIHqcV2yK*id zt*iR3ers{K{xcQ|+E6e9QictyEc&KR6e%QcOS5=vtZ3tjgeMx_g=)OMoKLJT1cSRj z@{zZuxyIDX>eA=iD`W)bjExcAlxcwLG!jFLBvkT8AUuw%1ozAoe}E8mnTpk zrajBlKa~rlWZM%qtpNReqC?p4*4haVIN_B~`h&`wyRlYq16q=D#}uR_b4CUf?%uu* ztTsHH_z`Q}y%K1dv-|TNBSgzBSxCK7CDr494iTvrAes(N=aOt&u;@Mf=&(JvWj9m+ z3y_NQ!HbYdxE}OECcjkP8sb=Qa66O0`002M$NklUW&RAY`yqyb0`tg*r3<+g6$ zO8fh@Fw@qGjbw+2!!KF4tMEu}K(XCy#pPDH^;Ubd(Pu-w4K_x!OArXTR+wfOa~r)O zNjGW@sPlC&P!G{~Ii#N~%q#;@$zzu-FzK@Ri5l^%36n27K4M)kCEqiftnj^i4Kza} zFJOX($IJDxCXf)l2co&uvphG)3VvpBU%Qd}&5N>*hcj3KIdk znT&{h(Hjax1K#x5A%KN5cEhEMjc^BO0~$UWwg`e8 z?Df4ie91zyc?(F#Z-Nok;hRZWD<-&Sny<7cOI`Mj|4dN{dbPzyF0*)ME*eh@)}cCT ztCcJfOJX(JiQj0qwNy4)Ec3A4dSlowUP+JB6>AJ2jE^LNQ1jTKaFcBc&#^yG9ku`L z^x3waoE@p`u?~O2y729XMsOP-fDfaw?Tf<|`JN-VuvVZR$RSVT-{_t5G;& z8C7`mj-6QCJ zcv1zfI$geLjzqTqy6eYiWK|VANQh$|Ca0i@oRpDh$eORc4o9OBTN!V5>EilO52}Aw zzv;W1ybuuPu@gLM5qA89;T7m3mEC}zG;qJcz58t2#!Xf_I>@iwZ+xuW+}@Q-rBeeS zZ9bDqjIJws3tMiyP6^Onn=@z5i+ZLt zbJ~qVtLB)AGpbYmv`;^i1J4-sVd7>*tQ|6YOE#~r9nrHhrfCz5gSE-Hoz14w4^B{) zxot|D${e+O`aS0L_E|j@2;6Z9t5rpW7opB6*%7l@ay)I<-*_XD2$=1lb4VW4a8sl& z#}QhseFv#Ub=Qy9+Gv_6I-;!oVuCPgr2wG(Afhl{NGAczdLb-P9mqJBUnKtzC^Pv4 zk;kH=+?46%fu^c%(&la3AwWbL6PV>9k8xX6=`#W}MwtM#tvVYuk9aILeOCKe_3_6D zEun91Lqv zibME;(eQ>EERnw=h!7!KXkU*F?e0 z$pIB#C|DXEI5^bQ9NSb#Cm#tlv^@Lz8&@A)yY>@RuC9)pZ?DJ^a3SAHSgTZ`zA!*z zrLx~KB!ny_BraXLxJpFMqIVDorcrgipT%Xk$P8!Cv~PyPX15CwlI0=)g(IM>-Jhv; zl0H|TxB9eIqFu4Yee<0;t;CC{;5#qqQ`dm$IGY?kb^R7=X|cAeu7F6u_+UT@%y~u3 zfs$e=wrQgfpdUQ2$2Pn`X$fdlvLFTteZo%^!q4uf=!`dqO9abPuo$qeSj1j^L$Q7;I*Ipx)OkP3q09?pMMWkj{eIx&nYQ-Yu~EA@8{ zlb*+i*@~B#$GrB`zWoML6U+llCrn>r78(U=awurhZoatQE?z6&JL?(!D0Wj`4)@BT-4zu7FSzB7CR=sm z^=QI!KJtJvCAbC8cdk7(WL-H=GD7MaUOMJSTNGnbfCUBgc*#W9p*6N5v8V*ck*79U zdD9Cn@B`6?0f19^N+Z5dVB7GagOByh>wTgz>^=O$AN~;0>U?{pkAOnHSqvnXlnlZ=F2TKJ7n^Hi_VH z8pqZSnR=VmL?5+s2WG7229E-y8Zj)Q43r$Z zD62eqDL+anbie)T8!oiIh79*0i3U}Nhy013>5#tTBo^fp;ocGYQ7U+VXY2a-WSRk_fy(7=ync+_rVToTT!;ql9a1v^c+kZRpw;+= zZoaa|`q~l3DNP~5A{R&z?MRj<5PxjrfgwA93q4I3cMiH$29X@^wu_we0IR0xJT+-Y zz==4fgecB1s3sjXmB_uC14Pj>5O{p}Ix+Kk%B4yu60Gkaw{Ec~;_unJ_klAiaXxE? z#Nc~2Y2Bsh02Gl-Kb zQk``|d$TRL?n>KBwN8Iav#!oRF(uhrIgaa=lsCma*vSUdg&ENcb%$r+Kd6EqMi>w? zLOY71H6?cKwL?#l>~v&+gEUUC$O7ea1KxubPvKD*(>hWnpMUkMe=m7Hh`|lz&&7XZ zW8i>!3W$~hQqBV`<|BHTImH&kZ>b3H8iA{Qo^8hk?0Xzl)tqGB9@l2tciaId{^O2c zd&>!{!OnD+D#r>bqSj;}av|<~o~!m!YDs!8wQZ*7g>qO2(P*;f$YiI@SyEX45~$@8 z5bBGfgh!xd$`xw4{yM^f2`GShI237UU;-vn47E|&z;EBYYXi_}ozR&UMoECXRXT^b z%eAQ_!29%54n15Ru|;z#cEQqSS4+zWT~cUz1=k6IywI46tjiRY0jlWd>pcp6{4~mkFUTYd;1EUbZr4nKTCeUi8unE!PsaVe*|4oLk1xDTY_Wg3`;YnI9#M$iwGCRpC^^ ziIO=_OiTWw5RA1>FMNP#K``n{yLa=Fg|0_5NU4~on&U7!*GBND);HEiw*2yKH;$bT zVmR6KedYZ&Hb!DdiK>qtUjq{v(8PdGYeSfdO(4Y+w{sk^n@ae!e$KRM-D!T#x@lcb z=U&tH%@+0H^Pm2me8 z0K<{_%P}S~BwY{YpuD6c^q>-}w*!=xh8*y#(a~pVkl?i1p2}!QoMS zc0{O5`jD!F?fRpyyjV$kHUE+rl>#+nmXz%^0+Wj&rX+XnveK5V*bIj(;we=q#zh5+ z%t(FEx0O0a>pg|^vyF`lhW_Cn{sG1MeEWGB0SFlGRM})atxV1~ra!sVK992fwbc_f zD!+HFiQt`et4VoWNTx9fXO6FN=~FS9+P$T1Oh0z|zSBj0`0C$%d@|9tM!+4htljKf zerov6kSXce)WsKj*?zRwF_}0kJqiGx=Rb=V4*P1oA zzz8Ijh?WCQ1aSfP247Fy{^j4++jxdZJ4)f?i3+B;BiG`M;yc3O0D}T2v_f$`-x0fX zbqDSYl|)CB&k_^?cL{{S1LZkJp|o2EhiyMOPzmT$Rx}ExDa(^;(N<&pqkn=&e zp)dH5Bv?o2N0=apCeB$v9%c|T9wgZVT78g;4;@4XFCH5iU9k4aZ85AnI{mcUtPa-2 z4<0Pn5wX^bg4PFvX^uxCK3@^cI2g~$?oMlhnFv=&aQQ;I4MZ`Ikx*K#^`mGHSOgqh zFI*Tt#M2QG!pfw-QJ7i9V%XGSo+04tp=5xc=TwkzXdc#H5 z6u|3;sm{wyD*^(zF7gQ9A%x9SPRF6cpm-0ves`47H@1n9p(Z2f6KXux1GV8Yp z6<`$xsk$IeZSLx}1y^5f#d<2hq6H1|^1^6LDg0p~6!H&gV_vyARzokBrYGn@Nk>`6 zL^xE!gNouq3lLr785*%ekAvV1Xeu49q(=se!H{^{=>`DLMBiL@OuyeXZUOR63r}NV? z5t*Lc239h$30c4`cv%=&8%}_lMzKYNr!ya2U;EvmQwaR@eWyZwc;?Y>*xP^cmg$ds z&i}6U*L|utqBT>V`=mG2p*sE~ZR+*4&TD_`6emOwM^Hzia}f=M9Ypt&*bFUD5-kJ> zwFQe21YVFqid0HMcf5@amgAh*6;~qE5;aHhQ3pSRxi1TS%wW;MU}XRC{U^ZXY_Y77 zRLk)>a@PuIMk;Yo;CtB*jmsV&-6>_azwQbb3FlXFy)d~%)Hi~P60z54`=OPa`w!#8 zLSYvkC$!jy=}@LXg=JOCoFHKHY?5g-ckt?C8U$$qe8v3mh&98IE?u-3z*V#=Xmh-- z&YK!f)TcAW97D0t!68moTuz@_yf6=|XlOHGv8R6zBEA6X_|XB+nJu|uqx9Hq%A zVCMW!o+uqJQUtFuVpoCR)YF&)ukHZXX9f@vS5Rfe32mr?sZd$WK?Y5myB`4w7!YkV z8M1rUJ!jkZA|3FeNqV*vHr+BzLlH5Gj0i3z#JgF5hrAxZSf#4Sf8{3Cl;KrhCz~h$ zOFoR$lN`mt*i6D36R}RwdT5RE9c@|nAjz-0#f(5}9V0t9NUFB&CuZTvhPvn@`P2wV z44cm*F-#8X&(D`X`IA4f$~ago3VSlLpC!diY04I0S-d>WN$Z%fF>NaZXX=AYXEc)! zq`9t52iH#E?+R}3Ib&Lzp07If{Iby zpjR~}GWl8iZL(u$@t{(Mpl7nAxPj7G(;TxBHG~m~9{HID@>Li3o`+@_^%}$A|8({( zu+bp`63}SG4XB_1h(pZA;5&~#b%63{2)cnT8xd?E%*|g<8Fe(HA~ZNao@8AZZK*tD z7cTFxiX^gF>^Cfijml@zfiw#gx$g+!k<=B|rdS(kdfG3^6DV?s&mQ#H5IL%j0)ZxIvV`tdPmv*=Y8Ln^ss? zBT_-`C_XesiQ`;FP2G#XWdiZCPy$Q_`IIDi7JX52iyEwdENpkL&AQ;WikAX^++S*{ zmvGIpRO^Oj>s@mZg#lVgjO8WZyF%P?wpyopJ84mUtoBnTI%!M#)TXilQS7TZ014}u za2|p^n(6c4wim4Q?52ragz<{MK7##j>@ZP!&lddohw|mItruVXfy5_1fw+9W{d|r< z6hKV$cIFOJ)&!+ukAf)0jAVs5`z8XY&>ERrj!mWNUj1^ciQp)%l?l!>;CtmcT&o?d zMO$0A)nBR?aEFNzu`XC&Q@2SXKS}s?jj4C7U8wdcGBkCo?LWt#wLZ;s*^~V?)A1+U z2MLh|fUPQ$|9YGQDG#6n$!Q1P}ReVVZ*=2-&;)xM)&~P~3M_o8idDP}Kd+gO$Eg^c2eWelJGNItS zFA`d;90}N7g!@gP-=u=|mVhZ0k(H!C$XHoZC`7mQmm-I&t_YqN+8QDqCrm$D5Z>4H z^rEjZ*NFV{drR1aJh4!OdKx}Y&vQ=*aP^bZXOOxzW78}+ttN8=A*)n#AlBUL=`58? zanu!GfVCAQ_h(s87Y~QK4cj7pa-6gp)~(A|C!_d=2)71U&>&og?>PV2&nt71LK&%G z1jHj{HhoCbJ|!#gyt$MO$fwTIf^28WyF+tu59{u!J91iJ-8v*+Lz( zxIGeUZnsn+-rs-vIZ3+1X*DG}6};uffIl#YLFy>yvk?lydLl5DC=b7?x5qq*5sN{L zl~CpE)sqsEY}crR5N030$=RnsHkroC*eT?@$rCh~Cjco0e_gkCuYu@RwY@^XgTiH! zTA2j*4ejXl*DoabYy?x@Q43KvT#P6qElLc8(JJvb$}7)600Iueiqes(Hk+X^=O8tY ze*EY@8x~2Z>&3rCPL${am|$poM7cCrJ>aQnRM;fX7~qgMz)_D%g1V{ujtwE9}BX+71yr;`o+%}pjZE$-9Vs#p7Y`@hIgq%qYypNnWA3`rIq zrwi%D@VhK6LT}L)gt&Wg7i19V$$hnKd)(SDzZkB@DHWI!G(|a&UaH6XA}zL$Op&|S z?yy8kl?XtFN6;=4bqB@d1Og^tHW8rCd{oa~(C)X_TsPPKg0~79DS3$08H9;&tjYEg z5V3Ozb6*T=5c5Vr;(q9%gc6nN5$UYvRZ4Z|`t+v)t(FzahwsKmFh&$)tS2$IhKC@1E{DA|Hk|yeH$rTIT%+nV1wm=Y$q&i1E z_)5BQ%K1{`*cHK9V$4OPd1`k(CnfMrQi9vV0uWA|oOYfGzm3pTa!3vP$3|?!z+t`< z49y!suVD;?c1*n>u5r=Qdb@H}JEeRNG4PlNVPdSFs##A(`?zOO8i^Y`@`ZSrsu1hL zW;&V=*rt7>wth49kAiJzWEAYwi0h#=WH{@(7cH{pg$s#9!GEPbkW{b82UVD6O0dp& z?g?g8)sQ6pFzIBMlrM};PR#MdD1J4+_3_dVfX0x2ewRb`#j{xP$HIl|(7GBwG&632A5}@`In7rpbHiCPt;E zPd!NWZ|$u9P{nQ3+^)7NqeALueYs8Mch>Xd-)Ea6w_&z@ds1g&DX5v9^BrCHK{@*9)VtZmb{b$w4^7t z??D-e+8DyN7Y$8lGRmi{MG047*LZ$M&n3{nTJ`MA7#~7>9mg-~YzIb2^8y7T8Y7FP z7%QaGT|R%PXT$a*;ZG0{cRI7-v<}k6QmJ$_U#RpkX?rUrN*e-~pxP_}I<|EFJUR}f z1P>G>yju}-jwy)&v567+=tXskGf0@oibw{+e5-)rBxs*9ej`d+*_Qo#EyZ<;iXb5Y zOH8Op>~tA|-`*Uw>n>YrZFMpW4g++GCPE;DBtCJKGEAcg6DT2lz`Kz)HHaW8z*JPe zckhve-M4-V_E#K<{tg@GlN#mDTu0;sc}K0b=z`UjhuddxIQn==g7BdDEk&w$PCyS~ z!rY4v@hWS5bBvaIRn2xl&=Xt{7O)}7XP)7t9eCskGxDj(hU2tSh18RzMM8U0BSTL% zH#cu-Yg-9u>YdDj^X=z-1Qtcdkd^!@5->oNowTItdxtM6?6!dLbMBg$(iFzz)hC)s^6>USMNFHzUQt(uZSz@g=R?akgS1{;c_3v zvR!kgQ~?E`Au-+(+(j!TkO=cm$PVMUjw($tYg~CD$+E5dL3p?j6u5vA^DDsy8&7-e zf%`Yxz#&Yh*#K!U^{$4IPxX!@+^5rs1_XH#Vb|B)V3%GLa~Q6wj_p+>G8$5j2laEU zokxak2WT-lo=s>(PSEC=s<3WVlbznbqp^I-*ykds(Ub%&6vW)MxTl+73i{*4+(+1` z*AMaZ1n0n*dVrk3uH`P^hT#8a?@fRtxz78}S6P*HpM7`F2@n_%GbDI`6h&GGEZMqj zu48FI+O=ev^3sw?I#x^T4%K$n@JDAyo zaGP7Y0+YZ9sM5^@xn@A0C`MKMczS%qyzaKw0Bj&}AlyES6R-u7u+>`Whmb9*4r>7u zgU^hrq&N7MnO|Hn4A4__41%h^CBKv%bMhv-DEnLK=-bw=<~U+HcOC+l}ZMfd6L;Lq#k`l-ruI3Fem1=4EbLwsz@qUA;cd zpEda6X?@yxqObmN=P7^Mfv?IBVjL1K)I=Xe6{56Ac9;DllbvK+0k1UY0z&!FKcyH_ zIv-WdKJdCbj9b8pgHWsr1*(3KAtg}<0X>U}?aAXSW^tapbXCgnkSsL;Gx9htM;$mH zhSLM)T>zP!#BKRK-%a6C6&OXENhvm4>kR7_-YgV>z?{Bt0ka_~+fcPEorbn)>ZK(` zZRd@pw=xR~DTq=B)AP;L*chY@`p+dg%_e2+;;BR?HAcMEJ~!#S;PU2!l{L8Pb+1C# zJ@LSmRN&=y#ZsfMfoY6W;E34N1+%+;&isp+G4tKEp4qqB!5T%-Rc^wpZn_@?Vx$ISqRSGa?AKIHPCgd?pt}sxTH96yRjl~A~-Nor?Q-2D?r0X3I;_b6Skgs31HhvYE>aaG*$!^cGO*#h02&18m;Pk(c$Vpf1_o-HLhW)ori@oL>1fk~d2AU`VW2~(RDOsL>sHJ}8*3I`uX8uOu&wDu{R zQ^&-o0N@-zwhL-%>ypFT`#JtJ85VPI(s@fUy>)v2W za@I|&K#=ENzun!>x)S?MWO4e-)iy?CvAC@mgcg=2A)ezK8oVfstmx zH%xAy!I;0Y$ai|!RCy8M5yxD>O~)zSTV@{L{Kf+;2ASQX=R}XD-bd%rRrLi@2F^7X z6JV`H5>?D~n~k2iMEQyZwm$Y;YZ`&W(+ezmJYe+Mx%Gglkipj4(Cs<3_97`^dmY+G zN>{NGB=~<0BQ{A;N=O9#2Y_$K#Fa{iq;l-YBgWs{GHr?!0^4p) z9wPq^1fMAhU>4eJt~nS&9DOiUnrz^TYwfOiiZT;E3?!7~0kTag`NfPV-EHnTSTuLu z@mlr^mMDjywurgK05R}XGXx;zkkaCM*15J1H}~AK*#OM&@QDj%V@u9FF+3IsTTci- z4IcTVZoTu(CPyMwAzdO%cr*b6rZkukF+fb0sJ%+vp;WF+oKPnmuG;fjgjp8O^4aso zJavwKiERZ~6N7%e-KugkPsOwDvHsff#k=qN;4q6fqw}h3-4ybd7OR$87%0w-*gl9@ z$E+-`LNHh}A^;~~Q%Vd~o;y=dzCCS1HtU?nLGRkLqh&DvcdP_3~S!)Dx&^awS8JZYF!;!O~G%;-^ z<6L-QWB6 zH<(fh09K5I0i*7BI#F`p;!aMIMlcHJQE%6Vu4y!?RM|Z`hufAw6>8@g&I)M;te? z9~M6bV#Ec75sSgSU$c8RSqQKj(u0I1i3yUUPU^oVQRqJ0NNcFcma(@ zND>D#VWU+y$-+2jJ)n*2ee>{>YdGvEY>3H$0yH+J$X8}v20QkeTTBJ)e+%@>!`B9Ma1eW4N*r{zU zUdfJ(d=0^d<~5}{cR|FdIGxW3s$0N<)+a&`oBj&8$S2|n|EL$=Sa{D@zba$< zu)P{bpp(QZqC8hD)R@FF8tYh$=fZ_qq+qb62y6f{?K;!fG6@ePa~o&GK0O00&7CHz zfVN@#=0;%PbBjjz+7XVK~Ohu`|hLeMQ;U-T_T%ApPD z@!6$KK0_DrAt}^FYF}g~7Ne4O$g%WOraL7GND)kHm60a-O!<6Zddd{g-pKyVemd$= zdp(F%;@M2Amx*q)^UT>!4+@#jF%Bf zm>(cb&{!F$cb^KeaDImySKwBJ4IBN}9aUd^8UX6&|G%@)JdVljl6PoltHxV|(b&Sh&IF?oZ4Lq#czVFp%oMan_l zRjPv8BW-&wsU%DHdHX!z&VGXe^Z zMPie4p@wu>*FwY>A+gi0$rC3|@xX&#La=c_m|CLnti!{Dp@(DGUiJ}?|3<>81Oy5E zdY=^CkfsZOgh0>;Wyd_qydU7wP@XtTct{*w-m?q97lt*!P;m&ln3`%<2?{PcD$qv~ zH%6P^_IX{Q4#oaAz8Rl-4*tM(2~lZF5y+ItX9s``-tvV9&*A%_nn|*3nOZ;^AJ~nh zOGJI**FpaE*Uh)xxu5VE!ect1jb&HEe?;sKw3iSXDEX;*%ytsC^=tYermWH^VyTjV z#FQXv&|hBYx5j{e*}!mT3}OSRK0B=wnUcB%1We&vQd=Z0T? z?sK1Wy}-i;7~ca|E>jmUk)|U#9AB@W*=_O+o{)s}*lGykmZ1V;c}~=CF%~^CnhFh0 z05j1hTI?YKghC2o6Fo|?Iw~4b`vVOR?kdhLjuzrO+B0Fyx4(IYnj4Fl`G8$3ca}Y? zv?NSxTtMmCBR`Uuo{)7ckW`)+rJOl@5A69LG|iEF>a&l6|!PWD?i2q~$u;UWLQ>GT*YOSY*PtW_&Rao_EoNzWmq_<%Du+ zqRnh>Rm~GmJOSb0H?s7|udJDq5DR@Y#k{GIK()iJF2}@S1frkPj1u^m0twr^7wWEo z70NOS7+rdLm&xqg2l1tZ1R4;aYBGSs)XS%9LI`* zs^F?Vs;YxbdZK?R7+D4@*{$$~L?}xZcb?#;gOE}yy-AmnxWD&%hZ%(DZqLb(Wa~R~ zX4P$ZUYU{+;I*AX=uu4r&I?q)+%}0Vk}}){23iDJiA~dT&I(}$!?At0*X04yeW+E%eZ|PAskhFvwfZ9Fr-JAEdGh?piSiZ%&%23J)jQYh8tHaD7D)YhZZ8 z1h8SMgil)=r{WB|AWqtpl<4+L=Dx$nt!=g4M&g7SDOlE#W+ZhKhBS5HHdANv+C1pW zoU8gJ>aPa*YSXo%&-xDZ2<(#yz+9JvDN$j~fKE4t#c0S^SJ0uPXD2$F_3Jgd>&qAE z;1m5=bM}t^{l|wH8LkfOtMXl;(CSkjrAakUFu}1dE6*n-7te-cE?>UF(y0?dK}0=k zOwWp><^dW@s5{$uj-oX=czyYXQhmD7_VV@QmAR6%0%@^V=S82PX$Ya~Ynx{7@`5GW zI?i$}y(*&&^pT=hCS9RaIkPKfCbOTKh#$7?5u zJmI$(4OIzNz={?$JhTY`5@r>McNLl_Lm#zKpq1)lL<5zCn$9BFNB!>O8jB zs}Av~d#L)Lb1TF(95M`;2`A}J&ej%g=tp9tp1moV>P9b2$DQN^FraCeKo*k~ zr6%HLlGvNqlt)O7!*4+brQqyxvZ)EqjUHtGX)>&)A&G)cYtujrChe-u5Wc1}E9+*3 z0a-^aj8mt*&kZ@4)w`{AGX~WAZExIba*4Xh6RXr|QD}-NV@8`T8X##pF|MO*3U+~T ztxS3XJVDBwIkRQXorehqMI?$!gu>*(hrL;3U-p*UOlFMI<@lodXhBx0!HkGNYKPz6 z(Domzscyd)v+AKT%c0i>rdvUR$-sNc7&T1m?RAZ2fDRL%W|zi3KjoYa_V+GyR< zkWwjP(OG8%RoiDu>+v}s-j{f6t%=D#(~-3N%+D|JzVsz%6PgQ}LVzVHCe0TD&khd2T=&{r3HryQE*^#7rh{t& zUyCL37U00!1SqbK;vV^zEN0AVr)uiddz(@^p$hqc(2^Q;gkQ>}w{Q(KLB=&f<{kOk z1!9BJ6d;Ask+~rQlCMK5whXj6g)q6dDs9HS~FPKZ=!wl zs5)!R&3khMv4WVh9G(tX1ck0C$uMfVJG-$Ebh(aSwkEn`Pt0NZfX@(crd)V(K5Bq% z(awC?Ox;4xI+&p+X2fr;dacE!li5B;f3Hn@WUom7%c$O7vq@rEcpDe-mR5~-{yb4` zsLg1Llf{u>ef3H`Uo4#Ckdw(=`qJIM`I|$Sw;jM&_n*7&!XKUTn#E#yso&`mmq@8k zNRm)>GW~q{%U{7CAb=Kx1RsLTc8cWpAYKYLxY{sV>zT2_nf6|NCaxYceD`9HfS6VW zFcjp@5@>0!vdk%V>~B7IpY_YAE|EL%D{0Q8*<$@ElhHu_Bo2p=M*@2!>_RM|X>t+t zYPljJfo62i%hLd37K|qn_qCWU&L`@*zXD+qOnb{h~pHa+*l&ip! zBYN!0?2F|Gf(1Mq(_MU%Fd8(iHq44^*q~mSg`tBg&o__Ovx>=1RwI?>(fX6NW!D}w zRMsIWN}`Su-qj?eix(teNCmb%#8J5by}%f9w}MT_CPTkJNuNtM%KlAvp1sY^{vM!r zhjg-uDT)r2p}`54Q&a2E+>BOHglfCou&p=510l^v6BS2l@Gu?<2q0jCEdc?S!0OEw z-GEY>*Ex2BNjkQ4*)({ikOh;==<=gD5XFqsF*oft=Fn@#h!k!`H_O0?afCA2X+&gZ zlZG^SATiwuGTDtym})a)9y)S~3Cl6hVB>5bgf&p7IBwT2Gj-eTL^soKCPI)#Q2}z~ zBE5*I>Jr$7d1FBuyjRl#;V+T}5-oQA6q8q`JIgqu(baKPlb(z_K~2Vq6kBe!Yp2|d zd-C>){MNlc@*^BMY_Ika5U_zrq;?|Vte9qV1t}BZ(+3zO|7zTPnRHXj%XJ<ro~lRr8dVq~$(X@~`%>e0lFbV)&wSnh$H~QJ|^_HyvrB%|8CMCvX)oj}mM-PQ+d@ zMfL#b&gkS6%t$_{Xb$aMiaIi4geb`_EV^0 z&W)sPlR1a@;%66)dGgE#l(@n*5SUe^00G`XOH<5|vT!g0wZs!3qNIck0T|*d6h9&=oY5TGCQff;=NFR+r*S?N)iBvT`Y`8&#W1;cW||c zA=!r-M@}~MAh(?uo_K^b0z4QTFoWPfwNRbQ-a|+c zKe?_w>rUDDa=CmiOt_PNFPI^9b(ZR|bcK5AiL{w6luR1JokFcsJh3K3gj&o(#JZb^ zn1(t|fG~q6zYJ0Yn_fM(80R>8d4WNugt(nBY?IuWtvX0Fl2pmJym24j)?gIOB}h7% zVimB}XTqd`iOJakhqGIT#L>9c%wj8N?tAbIs;{oiLyQXP@S7mTiOAw$#>dV0f!7j< z3y;7_*e4u>12N443x~l-LkbvdEfi@-RzqTOXc6g}%#n>yP9dF)!ju-icH9`!9$A=o z=!gA8;JMlKYRB)Lb93pZCTCLBp>}lL+Iv;+c=x;S>bDxrtwbgVLn1pDL3)`?7V`ks z0!(**d;bGklB_l4K%Or(5d{^S95k)Z>sxf}_4|i=Ug!u&0}#P|dW*(YL$2CIK64UB zTWtV7QSh>4<3IhgPopIPyb_ce8p0oFh+xrVW>AT8=!>A?1K*XdaV-Is5yr~zs75}5 zzWm|}ACdLOSFTJD#vWCzZ#wuUAmC_8Vl?uJ1G$!8yboI8C4xrGO6#n%on?^{&JQWhet6*=?=o$R|WUqD$2M-?9?O)ff z9gm$a4ZL<(5h%A?V{^pnGIW2nHGw zqimTG17dGL+7Wh1F`<(y%M38d1l2VdnGFh)x(ZjFnKt;3@C9`@U}_wo3=1;r(FvtR zw;GbBlK~Plvds=s(tPd0mU)CsxDFHID>V`449I6`Q$u7K{9A7^?$o$hL;CQE3sCTD z2zrk=E07^fzUBPVkRt6U!9C~_mg&+JG2NuljHu{IEOW~bD=PyQI%S6-B}LB(T3#$% z0AhF6b7G6{eb>8&+EFw^!@pNY0BO#}4B=h@sk92$X`u;)vH~dI;#a=>pjleMN6C8C zb0hzenw~K+s;EJ%w%-q42j2`|zsV6`%&)d>W+Xa=B}o1hSzMqRfKJ+$$)GS9@=``Q z>|iJgA5jzWR+bti43I>wX=Ohw_tl}X{7GtBKP*cC{H8dK02lX^A zG2cb{It~+)e&vLHB7OW6IrYXc3r=UV@zIZc>@zY~UDvK1^_?$g$vM>Z{1Rw@Nrnv% znFotURbxww;q*Rdv}FP|AO6?ur{Xa*%|b3z3Gk_Ap1xmzz4Yi8_sd9{y# z{7B>b_7GLkxs0%P1;MJ08HggAj0{is`Sa(^efQmmqzf5=_zi+FMHq(dl^p@gEP$s8 zAty&a`900&{^kL*gjRv>V9A_(J8IU~#3cG4?i31g{5aMWH4$|YlWQ9^OtC&zfamZO zVKFY|7$4f?;0p?1Mm;|FoRrzM_f`lKU1>eQvI>(2>km;eAk07*naRJPWHGaphKD-d%x>89P$g@sek z3jdC%Y;+#`7cNIR%LIadf0QU*xKE;p!IT(1f&F3xR*|$-gUu$cFQy~TsE0<)a#8y( z`t$TbkB(98qouWVER3YnkR%}$mqF-(m#69HL*8+po`sM#Yv`Tlj+#j${zs+seB-{PxA9%pj$^4;b%f_qlDihwY zy|N>qtPBb0gtVhPrl~IQe1hH0+S*#wvF$n1oJoKXeY9p*Xha{!wmuJ<=;xq8p)BpO z+1*9A@EJ1mNY+#>zzQYHj4EQs(0umabO2ufaX^m0I1q4zVc$%h4T*tG9ENo_- zShfzxOqmyz?L!Pj$3k9VgapjyToMJOmHp@f`_d(1h$+94HYmMGs9NT67=+Zj1lXe4ez_#gQ>gujgagf|~l-PYO zll1+!jhJG8$v8a%V!_=TQmZ#e1C%41c@Fz%0W+FQdER((6UcbYv~W7Lio49wWyd`H zluuySBsSHeX)p-^V8PI#@JNn4O9$U*YH1{v9B}U*xP1Ay2%62NN2sereUfy;vXKcgV(zfV-7SG&-%txrwp# z*+QYQcIb~j7>P>TlQn!9j=*39-uccMzd$Hu%v(R}`_(IctJCaaVsK)FI;6_x&;I0Z z%-OSx7(E~gF69V7I<*1)cx1r$c$Nm6e4vp(RsIR;)j(hd+u&Nm*B3ql%H?ML$X33$ z#1yg$iAD%l5PS?jUYGdG3N@_QZB9{1;In`I1>)?dvC8F4vQ{whUJ1H`1qLueKz0Nt zMt!s{>3Zg8P51Zz(tI0<wE6GCn%NnH359j5&3>DUCyuKIre&N5rcMdJGnoC4$uAV=leF|U}%1-VB0jGZZw||%F(rHs&U9&VvmLAnU3OOc2W(Fk- z@OU316M_$da(!*Ztl~dcei@4GyH5GnNx*!1U=mug2a!yT8;8LP{gC-n$6!;qLk@^X#j)*u6%occJr#dLd zm?V!7o9hbM4anBTX}JygYZyVBsId8IRhk#HMNA33 zW5+ch8ZJIzeb}0F(My_uT>;zP+mYNUWufvBqET6V>^P3(HZlvB4Fylvp-mKeOrx=p ze85BS$A1I!!e6c|2h_pYw|Cl1jKQ!xOvCh7{wfw3_X(534|JKn`p`pZj3M_cv!R;h zFVS1p9zUV4JMl^S3&pUAuzPYJ?HsI4J(SOyugNKj0H@Q2}SeQB;~$PT4|n@4ea>8|EWJj+s7o`#x%#;)VhtB5+}CIDZ0S+ zYQDkMhF`sq5l~#E5Wk{bJoRi>X@U)1VRx7C5ab2(KR)#-Y8PQD1GtbvgH0Xw&E4+nAt+D`Nj8cS+7T-?yY^I*Zys&RK1Ono{|i3`YE1+yf*8QgBP zoH4iT15Di^yaq-V=iE{tgxb>xEUvFnw3K_|ce-KG+o)%}*d{?J>fd0GKoWv~D`~=> z31A3}qb=zpjvDmSSj5OG6pqf%SFZy$=$?0){70UbPI`eu^i~W@WB{zK7gM~=2%1er zPAUd_z;HCk^w55`#GFp3Vyu{jRSg*c9c!fod^J57QV+HA5>+uV=5df5Zghd;FkA3& zwb8<;I=F{@;VJ`+1fiRiCL_&=$?}0`+s|SeY{&z2l?>;^U0s?7g1yS^fC+by2n1-b zYlLiKdgFLa_WHqE)hnO2H<2nmeB(6q-p^lO0%y#E>?E%Wy3g*nW+zi?p028_h*;C}kQ*Jxd z21-hhwg+L{!=EEL|B^CE*%2`9+=l1*lj2)L>7n0 z-egIimKpSV9dOMiLVbsRdjKS`F50GbC*C9mYH2i|EgYOa(mhKjQ45H7DwraDOTyr( zF(-zQV9Do*Br4SWZt_=t#V%itjGBJC(@vZ?7-P&pE(c?%Y$dKpWK}F(TW^k>Prtidr#57_GLe&GJV;HCwc=%PMyvv)iOA6P{;DVmB3<(FCsu~_V z0BC`VnjwG%EsQ`Cf*6uzSkQQjmFKgxKh7-`nb=??g0wk$Vwr)bV_n%~84jt)JkWfw z$pZ6A+d+P?o>XHk3eI8srUzU7)wSr3?LUjq4zM&PHZdbLmrgh4mN3#@;Xq~($%x+u z`13aUe*a?3cP@_KG&$6c>}U=DypR!?nVHdJz83Stv$3#yp0WW|5^wr`s~P6c+7K+K*ZEV$1u`M@U;zQz*tK|=o2VZ zBFX8medO28`o@-JFfCPwb}_a3*u#>sdOYEf5w*6~YqqL|Jct25?2S*5g$-fWG9(1q zm5b+10xd~1DvgYgdZtrhElexd6n(W!3A!Z4q-H5Fj6uS56Y^EszYABym_^1>GMvmf z>Sr1sQOV3gqUK?mJ?RzHf=l4RM#Wy zNuoeigb@U&nlkMT7@pk+v+&>sRYHs&Id;MNjHoLPQiR7AlndTQm9{;@(%bo%8I2oVoC!IMOPFfiWrlwE#X-7i1cfi&^iKn;X}&p+0A9; z*8=H=tt|uuKp{2|btE4+zhpY0EJPIdlMmloqf{tWVJ=D=)Fc)uWp+)^|pMV_rtQDqys84E&o08%%-~;+jE*7m!7e=CF++&zB(XG%WuxCZC zvQp3w%gIDCd*Z|i-Plfh+K0`}3sj>`7Fp+$ZP zb#l97J7?sLv<=(n7&b$mE9{y`c2y|*oNB#rQ!#?9Z09xc#2UqcvP#Q6upbacK<&a% zb>YbsOAaQ@f*68qta?6$#IuMzNidvC45`tHn===iNEanESe%NeN;Vjc1p`|*H{E_a z5KPz{ebNx>oO+Oz$BB?%YpWd$h8)Ln`M0DsY2)g`)ho}P5~{W@Ezn2qk!a?8nkpdu zUJDP|<+vNn!3l9J?X2Wz9EN{~Bk(*U@bQm-yhoYMD{;p^j_>$%uhm-T8R=nf50xBq z_S|{%$M=33VyGuU4}qAHw(V!_Y44urV#BX*JOa=aJ@bPm8Y7F2!b(+CRIk7Gk>4=Q zR?nL0pl{?+%lO{bW-Xq{oQ1r6)h%W}{h|Ns|NM)0{?HHpHN4}inT&g}QQd0h@9yIefb%gd!X9$ob)+imhQ6k1i zjVGAjBHEntjr!R7))e zTv*UzzS;&fSXxJ{)2WgR)*nr}sj*I@2{#Cxat0eH(L%eyyC*w3JJ=hgy(Gb`i#G|@-NN|jju1tB@gn}UvRMblnnRV-#01p-fUc9>J7IQ>$(|~$ zmvR)4`D7v*WYw!z{wNKnMnvkgf@EWu<{XOqJ@Dnn0Zs@#$8m@T>0}Po6sE_Zm|Zi* z1^E)lek-I1+K<(YU{rwmqK(0__d|zOd`dxY((IJF-D|Z;v5_=+q>C$O&S3vt#@-5} z)AW-4l0dmN-)o-(v@-wp*S)?aiPsLv@Xv4rUf>AG?E8b?@rHWX51#USy`!l@W|n8I z+3R+L9E2uDeBbZ<*H4(w{=c7x=u<@o z&%EE~`mCG3_PfDgNJCIaN*qvvO;^S^E1gpe0a<~`zx(k|P)Xn@<1WDfJqouu6G4zp zX3qD$Bd95V`L6%@AN}o5yzA}1ednEbd>#|v-*BGCF(@r-njmljtWm0_W-fj0m>C7J z=TN29?~(|BFD!6HbP;-|{#i>9uXMp~?4~qHirPoYZI?6^Rg%S5(}MWRq?mL`C=Hmw zkLS!|PtFp*mH~W6)(6mbDhjCdMDqPOpqMiWRlBa4JMY*lTm(XVlgIW=mSJQzEjquoXe7-%=s>~E<@ghNME9@mS`CTr z$&@Otuf|)u0I2>%kek$6kJ7(*2w_Uf>|I}2M9m_hBI((4h#B2ptLgdO%gn-gueY)M z{oj8GeSFx4Bk=W)z}w#THZLCUEh4HuL43+n*!6@{SVER zDt!%$k1XzA((=Dtmvs9G>-#Ux$ZEInes%ybcrg;t?dsCJf2Y8}y8nU+Q>nC1{Z z=xczAB~6Zmnx@KSEm;Hks|d_eG}#h+>&h7PY0zgGj${^8I=Li_U4;NEC^f2KYk3F68U8?#uS7o9 zi{;zxDn_`gYj%er9X?E<(`r1=@e@H9FO%L!$?#xEz8OzsObN{)%S16`mVu}PVn!nB z*ETr>;k|a3lCJ9bI34ro=?XrVDrT=1$2h2)J}4qmlk+`hG&GevZkvYbZNZ!mOV!haEYTGTE(oEI1v{rjNi;p8TmF{+{J`zU3`=wT*elJNC5S`i9pp#*(p< z6fV8cYSyb9OK~GCO`^lAt7dCqiHtFr>@;`K$7^R$Qz{>}%y^=KGU2(Rxk%PZF@(*^ z#LUA(f=qW^Ne&I2P!++cme|JZ8o! zXxz9?l+jzMghWRJXx|2Xy+WLo$9~acS(ijFl|wYj@*Rzy7?J&cTf zHDPo59k4WxOe9hO?y_53-Gr2(=nU7a-i3uDan}h-+}?y2dKK8DK<7B3x@MXT4WQ>a zIe)}Cwwtty9nFGMT5X6^*YnC- z*X>?D^u2Ey=BNxMgC|>y)}*A@YghF**ojy9&p^vEw#f9NQ4pOjrZGO6FMR1Sw4+a1 zqMpj;fKR6azt*HmgL66P2T%H)=CR2G`&JMvuKG0?%eTGlJ*||JyHc%hol0a9D-gJz z1aYMxLhUjuBr(lHZWGL*BSJ)zurE3#Ce&wIEnU)F)2t9Jet}Tk6OAUHUTJ2UZ^#V_ z?UP_)^Vjj(;NEGR=V)eP#avNIqcaIT26 z^KLK(R{9X9?}5_Lru*yBuNWv6`H=#O@m08=)svv>fNA3N!hwjn4m~M!gN1(JEs!Q+ zK}1)`QtGswu%X*>vy^UwQ#Sei{{_{ z>@S!Lvl}SuJeR` z=v&w$^4={K*YNqBpw7|5IPvD*`>uCDm7dwY5ajdyEzkzDg-U4wA5tqF2cRu22?nw? ze;K-m)d>Eik`s`hohG6$;o34J-b*`CIh-V$Tqa^ZK3TxClj8{AxG+T5psS*}F=cK5 zX?$s+W$F#~JDBshg6Ol=rU687c217_3oU7KvWVi)fk{PvN3lH7Q6&;sQw3T2WdUkd z@ZqO0B2iIoqW_jYi~d4GRfQXW8gjc#ccCd!c3ohH2*DR7dZK+GflU{A5VFB(ZX-PA#~!7Fefvs$ac z6ks+m1u+#dJSK^cf!V)@P$BA*x!~gYmHn->BgBa9O+p8}Rll+~2B&A1dL7rCKDh$p zQzb?XI8uXdQQabYZGP93ak8LHI3;Ngw;g(%iO+U0VMNk`G~ssA`K<;``RSbPEaAHE z?mDqk7w2H0oELj42F-q$bT(NXmzvGZOOumR4V4t&+hH4yz&AAl_ul&>{-J$u-on6e z!i~F+v|7!x$yBnMuZ&PSsUPM^L$ipc{?GsUPm;|6hc#e^5@8w5T7xw!AMvn#Gb50K z>C^xmlu9GE{70#rGVl4Re{C*angi^lz|vIMX?6R_Y-TeVcTWK%dAQqZoji2tJFCwI zXwtsDdtcvjD;cz;+8ji2o%A<-5o@AEi9p*V4<7Jum`uXDDx%(78YMc#rZi{U%9BmS zlY%KYXjE29f|6xNkmyI1=}iiQrRgvaVBoklHt{qpE|Q2E`XAz37gU`*&?0ouRs?+# z68I!$-Mxog+M>xYq=an3Fg*FLRF`6t{G&}U0J`F!*?uXv5%kmcl`lk7Jv1TAZJblk zdCte@GQq*}{i|WHqw7uvw@j7*&P=6p9~X(5eIpxQ5OiT}K@NhSv^V%M*SeOQYq#|=@hZ*2ax^-mjwyZlMztXmslMb=pzbsva8VbIdJ7yW zfi~nyWn>_1gBgWXFbt{l9x!ma=|SV?3|h`?u651%r^qYU1AC7Z*0O1J3J#68&W!Kf zMWt9wcC>`7}9N4J1PAm~yxHF&B)B7|TbeSPjJv?I-|yvZEU>b1Ht z7s-{9NI+N?Z-4K*x(u1_ZrFw+@J)}v@#BBw9lB-ra;sf^47~0mBn-ZUL%I$D@&$5m zu-6@V_!0ASKljU6rAcLVg>3o7GKUV8^lx_XJ&1JyrhjFTObS`o{PMs15T!s4V?8CC z0^la}BM4frf$Vy*xv};L8qcGX<(ro@XU}zQft?b`;!4o2lf*8zjE|<{AX)n=?8$cJ z;w5&=&jO>_rXtcftSdoel1=o_QW#W~G`=A1P(D3rE^ZM-0!2qlg ztPylw%vN$0;aiKom!^HvyAUGC^@< z#?VYm!t^lRC8#!Qn{HN{MopU1_PL@jHBLbPkz}?uTV{2whti^fVGzZ^rJ{-Hz)VZj z`%vaxO{`TZx!#~@g0;_X+9__oJv3IeWPmNoj=D#yEEvm-G!99)R=3^uWBwBKVHVWG z)?Lr+;NT*|*Wn0!10x{e=HS8cc79~!Vx=;61S#sVdabtLCQ}X3F*lJ6bCd-5o!|K# z^U;s}o|&GW07YEmnTTxs-@qk@KiM7u)jQfEK4@xshUB(?X8!Yk{w++SWcNnWPnSlZ z_1$J}e0;v=`;VuJm4^uGx$s@zRl1@7SYW4A(ygT`BXbD4S3IxRfySVmVBv#+Z(IRf zDf%TQ@Qh|@*R}f~@Iu1Lv?e;G*dmuc=gFocrXboYB|vAA0>E2pH3?}KnfSycgdnzG zh)yGTD+$}g#8^c7=|e>4`LReM{6lr)T7bC(e;>4no<^Srz1BWm+cF})a>dv%|MC>A*@s;y9yz*C#6-^?$b8Hu=?W6a%X~<$bJlpiimOz8ilq+UD{O$f5Xjo0CHb1Q!dnM|o@s;ps|n-ef5`FQ(6vSPYPC^06^VrxYq1}hjeMBvqy0Exz+Qltv6y0JumrPE!0!UWYXJMQ}NI}hAd z)m+`^9wlJBaeuiJ)auL0j=w;R8CY++C2u`dTFv~tDPa?1MOHGDc zba{$)=Rh||d+L@Pvk4^my%Eq5GuWWKt(lVsI0q}A0`qN!r|kf8i3=L-80r(;MsDJg!$+oUb9 zdTkClzO&Flmb~=@i7RT~_Gf7{Aka9KCHWjfU~C7JhRyNKyv5<(zzda6i7Oc_f~HVR zqUK2xR-yxGN#eN!ZmjowvVD>oDjTS@mjv-g%QjO3{$4n9ihVqM;>t{_!LDv43C<&? zV{!1Pje0M3WM8%4_B{IDs>|G~nijj-hLR=<5km(geejPUsLU2WyFx_o>h$!T {0 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 literal 0 HcmV?d00001 diff --git a/mobile/devtools_options.yaml b/mobile/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/mobile/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/mobile/docs/subscription_integration.md b/mobile/docs/subscription_integration.md new file mode 100644 index 0000000..9f1e137 --- /dev/null +++ b/mobile/docs/subscription_integration.md @@ -0,0 +1,160 @@ +# 볼링 매니저 구독 및 인앱 결제 통합 문서 + +## 개요 + +볼링 매니저 앱은 구독 기반 비즈니스 모델을 채택하여 다양한 기능을 제공합니다. 이 문서는 Flutter 모바일 앱에서 구독 및 인앱 결제 기능의 구현과 통합에 대한 상세 정보를 제공합니다. + +## 아키텍처 개요 + +구독 및 인앱 결제 시스템은 다음 주요 구성 요소로 이루어져 있습니다: + +1. **모델 (Models)** + - `Subscription`: 사용자의 구독 정보를 나타냅니다. + - `SubscriptionPlan`: 사용 가능한 구독 플랜의 세부 정보를 포함합니다. + +2. **서비스 (Services)** + - `SubscriptionService`: 구독 상태 관리 및 백엔드 API와의 통신을 담당합니다. + - `InAppPurchaseService`: 플랫폼별 인앱 결제 처리를 담당합니다. + +3. **백엔드 API** + - 구독 검증, 상태 관리, 영수증 검증 등의 서버 측 로직을 제공합니다. + +## 데이터 흐름 + +### 구독 구매 프로세스 + +1. 사용자가 구독 구매 버튼을 클릭합니다. +2. `SubscriptionService.createSubscription()`이 호출됩니다. +3. `InAppPurchaseService.purchaseSubscription()`이 호출되어 플랫폼별 결제 프로세스를 시작합니다. +4. 결제가 완료되면 `InAppPurchaseService`의 `purchaseStream`이 업데이트됩니다. +5. 결제 상태가 `PurchaseStatus.purchased`로 변경되면 `_verifyAndSavePurchase()` 메서드가 호출됩니다. +6. `_verifyAndSavePurchase()`는 플랫폼별 영수증 데이터를 추출하고 서버에 전송하여 검증합니다. +7. 서버는 영수증을 검증하고 구독 정보를 데이터베이스에 저장합니다. +8. 검증이 성공하면 `SubscriptionService`는 서버에서 최신 구독 정보를 가져와 로컬 상태를 업데이트합니다. + +### 구독 상태 확인 및 기능 접근 제어 + +1. 앱이 시작되면 `SubscriptionService.loadCurrentSubscription()`이 호출되어 현재 구독 상태를 로드합니다. +2. 사용자가 특정 기능에 접근하려고 할 때 `SubscriptionService.canAccessFeature()`가 호출됩니다. +3. 현재 구독 상태에 따라 기능 접근 권한이 결정됩니다. +4. 접근 권한이 없는 경우 업그레이드 안내 대화상자가 표시됩니다. + +## 주요 클래스 및 메서드 + +### SubscriptionService + +```dart +class SubscriptionService extends ChangeNotifier { + // 주요 속성 + Subscription? _currentSubscription; + List _availablePlans; + InAppPurchaseService _purchaseService; + + // 주요 메서드 + Future loadCurrentSubscription(); + Future createSubscription(SubscriptionPlanType planType, bool isYearly); + Future restoreSubscriptions(); + Future changePlan(SubscriptionPlanType newPlanType, bool isYearly); + Future toggleAutoRenew(); + bool canAccessFeature(SubscriptionFeature feature); + Future checkFeatureAccess(SubscriptionFeature feature, BuildContext context); + int getMaxMembersAllowed(); + int getMaxEventsAllowed(); +} +``` + +### InAppPurchaseService + +```dart +class InAppPurchaseService extends ChangeNotifier { + // 주요 속성 + List _products; + List _purchases; + bool _purchaseVerified; + Map? _verifiedPurchase; + + // 주요 메서드 + Future initialize(); + Future purchaseSubscription(SubscriptionPlanType planType); + Future restorePurchases(); + Future _verifyAndSavePurchase(PurchaseDetails purchaseDetails); +} +``` + +## 구독 플랜 및 기능 + +볼링 매니저는 다음과 같은 구독 플랜을 제공합니다: + +1. **무료 (Free)** + - 기본 볼링 점수 추적 + - 최대 10명의 회원 관리 + - 최대 5개의 이벤트 관리 + +2. **기본 (Basic)** + - 모든 무료 기능 + - 최대 30명의 회원 관리 + - 최대 10개의 이벤트 관리 + - 기본 통계 분석 + +3. **프리미엄 (Premium)** + - 모든 기본 기능 + - 최대 100명의 회원 관리 + - 최대 50개의 이벤트 관리 + - 고급 통계 분석 + - 커스터마이징 옵션 + +4. **프로 (Pro)** + - 모든 프리미엄 기능 + - 최대 500명의 회원 관리 + - 최대 200개의 이벤트 관리 + - 우선 지원 + - 모든 고급 기능 접근 + +## 영수증 검증 프로세스 + +1. **iOS 영수증 검증** + - App Store 영수증 데이터 추출 + - 서버에 영수증 데이터 전송 + - 서버는 Apple 서버에 영수증 검증 요청 + - 검증 결과에 따라 구독 상태 업데이트 + +2. **Android 영수증 검증** + - Google Play 영수증 데이터(JSON) 추출 + - 서버에 영수증 데이터 전송 + - 서버는 Google Play API를 통해 영수증 검증 + - 검증 결과에 따라 구독 상태 업데이트 + +## 오류 처리 + +- 결제 프로세스 중 발생하는 오류는 `_error` 속성에 저장되고 UI에 표시됩니다. +- 네트워크 오류, 서버 오류, 검증 오류 등 다양한 오류 상황에 대한 처리가 구현되어 있습니다. +- 오류 발생 시 사용자에게 적절한 피드백을 제공하고 필요한 경우 재시도 옵션을 제공합니다. + +## 테스트 및 QA + +구독 및 인앱 결제 기능을 테스트하려면: + +1. **샌드박스 환경 설정** + - iOS: App Store Connect에서 샌드박스 테스터 계정 설정 + - Android: Google Play Console에서 테스트 트랙 설정 + +2. **테스트 시나리오** + - 구독 구매 + - 구독 복원 + - 플랜 변경 + - 자동 갱신 설정 변경 + - 구독 만료 처리 + - 다양한 오류 상황 테스트 + +## 백엔드 API 엔드포인트 + +- `/subscriptions/current`: 현재 구독 정보 조회 +- `/subscriptions/plans`: 사용 가능한 구독 플랜 목록 조회 +- `/subscriptions/subscribe`: 새 구독 생성 +- `/subscriptions/verify-receipt`: 인앱 결제 영수증 검증 +- `/subscriptions/change-with-features`: 구독 플랜 변경 +- `/subscriptions/autorenew`: 자동 갱신 설정 변경 + +## 결론 + +볼링 매니저의 구독 및 인앱 결제 시스템은 Flutter의 `in_app_purchase` 패키지와 커스텀 백엔드 API를 통합하여 안전하고 사용자 친화적인 결제 경험을 제공합니다. 이 문서는 시스템의 주요 구성 요소와 데이터 흐름을 설명하여 개발자들이 시스템을 이해하고 유지보수할 수 있도록 돕습니다. diff --git a/mobile/ios/.gitignore b/mobile/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/mobile/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/mobile/ios/Flutter/AppFrameworkInfo.plist b/mobile/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/mobile/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/mobile/ios/Flutter/Debug.xcconfig b/mobile/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..ec97fc6 --- /dev/null +++ b/mobile/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/mobile/ios/Flutter/Release.xcconfig b/mobile/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..c4855bf --- /dev/null +++ b/mobile/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/mobile/ios/Podfile b/mobile/ios/Podfile new file mode 100644 index 0000000..e549ee2 --- /dev/null +++ b/mobile/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '12.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock new file mode 100644 index 0000000..9d540c3 --- /dev/null +++ b/mobile/ios/Podfile.lock @@ -0,0 +1,43 @@ +PODS: + - Flutter (1.0.0) + - flutter_secure_storage (6.0.0): + - Flutter + - in_app_purchase_storekit (0.0.1): + - Flutter + - FlutterMacOS + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - Flutter (from `Flutter`) + - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - in_app_purchase_storekit (from `.symlinks/plugins/in_app_purchase_storekit/darwin`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + flutter_secure_storage: + :path: ".symlinks/plugins/flutter_secure_storage/ios" + in_app_purchase_storekit: + :path: ".symlinks/plugins/in_app_purchase_storekit/darwin" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + +SPEC CHECKSUMS: + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13 + in_app_purchase_storekit: d1a48cb0f8b29dbf5f85f782f5dd79b21b90a5e6 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + +PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5 + +COCOAPODS: 1.16.2 diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..5fcef8a --- /dev/null +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,728 @@ +// !$*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 */; }; + A2B54DBFF2070F0147141B2E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AB1FA8761A510A1AB0E22A6 /* Pods_Runner.framework */; }; + BED0EB1D643B5C8960491578 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D87907F099B026F68EDEAB39 /* Pods_RunnerTests.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 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 = ""; }; + 2AB1FA8761A510A1AB0E22A6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 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; }; + 355A374A8D2A72F499E2A232 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3F6039EC571A40CA5A3421CE /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 53D946C2A42D4F1B1B4DBE9C /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 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 = ""; }; + 8154F9AE74B580244D51C084 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 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 = ""; }; + BCE312C5D51857E9B078DC0B /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + D87907F099B026F68EDEAB39 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F9A79F7167432F25A9176E3F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A2B54DBFF2070F0147141B2E /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A3C195AAAC5367AC911F04A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BED0EB1D643B5C8960491578 /* Pods_RunnerTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1EEF9CC0167CE714191E3BC4 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2AB1FA8761A510A1AB0E22A6 /* Pods_Runner.framework */, + D87907F099B026F68EDEAB39 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 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 */, + F8390BE3267FB56413CCA22F /* Pods */, + 1EEF9CC0167CE714191E3BC4 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + F8390BE3267FB56413CCA22F /* Pods */ = { + isa = PBXGroup; + children = ( + 8154F9AE74B580244D51C084 /* Pods-Runner.debug.xcconfig */, + 355A374A8D2A72F499E2A232 /* Pods-Runner.release.xcconfig */, + F9A79F7167432F25A9176E3F /* Pods-Runner.profile.xcconfig */, + 53D946C2A42D4F1B1B4DBE9C /* Pods-RunnerTests.debug.xcconfig */, + 3F6039EC571A40CA5A3421CE /* Pods-RunnerTests.release.xcconfig */, + BCE312C5D51857E9B078DC0B /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 8CE422EB9696F2D9AC24A2BF /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + A3C195AAAC5367AC911F04A6 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + F39579041B6959A7AE1A2D5D /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 8A77A54775D4EC0D63AC9681 /* [CP] Embed Pods Frameworks */, + ); + 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"; + }; + 8A77A54775D4EC0D63AC9681 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 8CE422EB9696F2D9AC24A2BF /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 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"; + }; + F39579041B6959A7AE1A2D5D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* 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.mobile; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 53D946C2A42D4F1B1B4DBE9C /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3F6039EC571A40CA5A3421CE /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCE312C5D51857E9B078DC0B /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile.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.mobile; + 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.mobile; + 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/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata b/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/mobile/ios/Runner/AppDelegate.swift b/mobile/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6266644 --- /dev/null +++ b/mobile/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/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "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" : "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" : "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" + } +} diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d54f8b2df9b36dfe9b64e87d9bf8122291b5a2 GIT binary patch literal 473312 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

O_8iFUGWJiXKs^j$2F_55HwA|dB}iGnyQ^cH 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çP%9&= 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≶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�_L67+c2vGQU{# zIBr3|+;EV#+d;{tS{t{k-|UR-fbV&?q+)JQ?K zXy)qiR$PFG@}&QP4vD(kPAN*I^D3f33CvOyp)bi#O}_}dvFAV@X(b$fY1jkT@nD0I ze5np|bXOhce*0GUrkIGe%i7#W)0`r_>s8WdxPxzpU21-sZkVRf=f6V+G+mXift2j~ zXd7n+w+aR@*x_eg`}ND=%=12uf3SufZdM~?23U0LCyWB^Y@XX3kKKPt zkPVb;rNIr+N2J$rc(}?|ai@PwqKMX8)EKNY9`=Otp=pooB~~}&NwzY6=s9!|MhrmQ zd1LWvOlX*ZrAlv@yKuTQC={NDTz+?S!Lh>_U?t8=APdG7NG6v|-TV4r{wq+@T69uP zf>i|g|F;r9q1JmiZ6#658meuI@cg^5^TdL%+jPY#uM?-F;Mn!~Vx_sMXw(x*jo#yigZ!LO`7knr< z4*+XPjr&-2T&OS&0)Y7oKz)&kGEu+{JOu7oMV$#k=l9F3x$w6k`7%hO@YV{sa{gg(n6Wutn*DUn|((G8&kDo`A;{Jzl_L-Ux^0r!DK89(l*e z2q3GN-lcZBr7EEiiT5DqTAcT&jK0WyStk)p_5Mq@Tn@$eDgC7Pb_)*P&EB!hxFWR| zfYX25z>rWD0Sh@vlix4m;8u$iTA13&RIRKwCtM zhGYdd+P-}>sy8f+{@KG4mle6#E2i8edI0Yb9?5;?^8J3Cb0qF+>bQ&m>5M#pr9$r} z;DW|9*nvla?EqKp2X4F;?i9k|!vj5yZo@O{CKGxLfu#R9rTsg#_Yy-w8qP}9h$ord z*jeuVC8``fhZ}&w0mny_i%by46SX{}&e=1BJ`Udoj52Nmeksa!60jNUd0!iJRbFDz zaDT%`h3NG*&8dB8!x#j)Ma$Onjlwk!woghEl%0zAd-sB~Z8N1k`+(2M&g=V~A+pMb zIRf||zA3UL$+@$u9`tM>CB$4Y5VhJ$w^NmScspv=Z281Y*zH4FhSlhNd7svP2!8## zq>PY8;VppHw?*nfhOCx4^pQ5=?BE5a)jPew|6lNTvvt!ycQ+TDL!1w+TkRdGHQ2rS zv-U_Ll+SfMg}^84roXDP517FTZ^V{lL8kkFljoP8A9h-@v2b2E9n_!u617gP)S>>K zUN7-m0KrK8s*@#1>;>(I7|M=q3^iVD{23{~0?r<|-IFq{UvS!nlusX~CJocAr<3NQ zGQTC=CZz1FbSj^DwqoR+!h#+pEgYCjjt1I73`TnvWhq1haV_a}^XcyRJ>X*tz+wry zDp3SYl%q&$=|C$M?}@4&ncV~T*1yn9KmWUE>Wnruz4U}tlM^2G|An>k%Q3NqdxHUz z(doDujXjVeFEp+p7Qn2XO0XUg^_{C+`#@k5ly&3*fA1VmhAP+czU~fEd*&k9?SM;T zaNQ%jFun*~?ntc&ctKk~SuNyl^P5mwEeKa|-L<~#o#1Aj>hn~^UTUgW*df(sJ;LX< z-^Er2J&l7A&HZqZp!!AKaGfX`rp8hCs|MjQebyMwhOiLdxsib=<{4^PWk!)+OFwZ+ z>nCJ?1^NohKJNh+5x)6cESYQOY~b@51W6Wj;ID2;y`z&2Y};+CsRSx-T=wdpMJY_Y zItUuwV*dYJsKuy&C(Woak8|4uRrhs8B%Uze$<=bkV%_0m>~FhC+5_@Hs0VC_QYm@C zXydnp&S93bt4Wu~)*BB~iRam{BM9p^_pKgpgh^eOE%mw*S@GEV!}zya%6QB3#<}#? z{+l$z+i$h^F(K|LPh`t_K0LnX)R{&dH^!TiJkPDThA0(gfONP#TVpoh2hp79=JQf+ zGJA-KU(iW?OsQa<9G&FRf=g%NrhyNflaa*vpeW5gW}eE=d7fsx4ln0363xptd)WWl zi$ge&u52EVxL9Dc+YuHfFhu%wf6bAM3& zG0KR^_QZ6F3{oKRYgt}sW`7X-GQQA*(Y?68ZK7xq zcVbsx7=I9<96s(mrk%B-yRG#KU4FwsPXHmzyzXJy+6*4DII(K0c-(h1UC9jP4l!uX za5o~{E84Il+!D$VeE@xBn#9KAn7Qz}Bron?rxlY4O@p`p@`N>-b0k{mqUB7LTl|jb z9)P9t!Cmg(`8zI8_L)p|XVGG@c#rzm6z=@qevIxUl@vXj% zM_2x1qD(qv6c`(em;24oKlsJhP%x)G zSL=0(k!k5rRGis&a#&3zi5+p#5Kn z`>KBZ9P)VL^KcV7`JV|ZI8$)3KKR3nao5z#_fX%qzwabVJY=}5q|*0d%9%GJzOweN z-jH4`L|Q)uk~f|`x}u}_pjhOd^6rD?OE-{r<2=87ubEn&b_mYRa@T#Tn_&}fj$Fr?FSleaMz0ueo7;q(hMWPlYMft62P}K zery5txzHpJcO2L#7m7=XxIukhLl{Q#s6ij-5=;mKR*Es_G>qIxdu*UTa zG1qnf4znTK%LCPnyb9=KJEVVV=JAWhmPvq@a7Blk`POjmg^dDrbZ7{FZGKmU6y8{FSv6{$K6*uJ_qyPYl`%YUcsMHjd7@NST7g`&VKdwHggRFiSqv%8GT3&b8T$k*mNWzcO9 z`h)@^m}Vkg`CSpPm-y>|xeZ-E@4ry9ncKyvCRTD_X0*cOJ?L&Oz;<{%sEuo7pF8VtV6Z>e=mW%spCq069x|}en}hxQeoAHjQB{-%+@!Tt1yh4 zpL&L&-ViibLYPOB?9V*jh<6poNwn5%Ib%Ott zROA(%Ebr5emzdFxq

^&C2hlS)0>W^DvC$c!v5tF-&sDaV8*0ylQ5DR%A{_2Q{sU z@F|GE;<=LXj9ZJd0eC@wzT}IIYUi*<0Iyi8UI5poH*Rp8eI4`He(ZZcCvN#ejAQcN z&Sh4f%nZ?m7#R=13P69}gRnKBxxJ^`#vq@mOsF635T>8tP*LKp#xpX`WKVgii+X(! zC>ZWn^(|Snk3e=8h@+KHUxOd!g?e0iw&-JNsx(XPKx)K~k4i;5nw>R7M{)Wu^-Re< zbc6M2^)pGXVzRln*V6ZZ;%>h!0g!_#@6l7Xax-Wf zps@c=I=ZPQSo3*X)JBLjJp98Ujz?Pdr@00-J`P3V5%xPY>UQ8RAdmCFAWxCZ9-<*aq<-XLVhWlHv{qE3**rXwXRjXS_We?1?!xcls}yR@ zzCQ+IP0>1XInDXSQMw;@UOL>UD(Y!C_?uFZS5$p`af%#Twy=1ahxFn&iA_3&Smh&k zC`B)|8IDKD_}#j-SU>E+o0rqS7=6PJW?eo0NSqnvz=4RmN*vh-@Vtez?wmtMMr7Ex z_%oHR1Z#{Ca~FMZ0fTg%$ex9*zQ0^1e^$uD?H5_1EJnN-d1aR|>@G>ob75?0>`0cM zW~|%~5GHVL_#VPhR6k8>jj^&9NNa3>HGfd@}n5vGw%62#@7J+|33+hDHFbG zl7RzX!V4U~Qo7h}uPN3Gj2*hpG&dgEwFew-=;1P2%iU35H@6<)vOpnB^F>LiWhWzI z?xY=+qx(tm+Wh7MWRUp60xv9)I|gOIF!GeZIOBGi8U?{RVY21rllntEz@&rT55wM` zaMu14v;NjeqjWnK>TlN>91Ftx*RIk^kH>(emegNKia2|II8V~BqKS<4EzqcRj8wVP z_uVTjD2R8rI^6!UEDUfhW^GA@z9A7+xT=b$S5_A~7i{=Qx{cPQa>nnW0kjm<3LSXR zy-dNsgX84*8GZH!zek%L=tAL6M1c#Imh^VM`-}<|hxn0uLM`yY zud5u+gyTgjdmz>kwtku*ck}trE9ws>u_iH7{Z0Z~&R#gEnjU!g*~gseOab zqVxZ}rEr7q*MB) zxi#w}>~DscfC`%AHs=d9X#9qyay=?~LO4kpmsodP2d?z7t(QUad}DG}9=hOUJ$}JS zdiUME!Gvz;j5F1RhcsG^p1c&k!zGXY%dN_5CexyG5vGO2-mNRjxz`sq^z+X|cYHo} zY1=(eapr*c1Y{G*0@7MDpsFk7P%&{*VL~aJsXu_?e&QQuqh6+k_+H6^!cAH0pHU zoD;+1ADRyS73BnUj~L*YN8xd+&_4%=*{d^h$vHn)Q^vvdj*- zxI~v+qW7H`;2(xIZb5Y`>Nn%U4F0Zd=a;*heR@|Y0{A^UUm0j_V#FN9{^A>AcZVt& za(NgM`Dlcl{9f$85E?-|Okh{bKJh9^s7!wucLTFXbm9p40`lkMm6X5cg!^8?t)kWsVKO6enC9!?BukM2G3cCExRqpARsS*3 z5AU42B0I^mZ`~(8_G3MNNWC13_bD2CTz&GO)60?rEhqa4 zwy$~F)(OWjJa(9fqt$^kxOakgnXXo*%uNS674Pn)+4$zcb%>*Mfr~A##%LIQk`Zg> ztdkFeQOYaOmOaLd==+` z4f`fe-$i}1<&rJ8G~j{*_B_o_nL2>@_J#dN%+XW_PGq=j=c{&~+cy)o6)rXnV@Y8T zAS0>lZ*N$xV&v_^sw8IDS&C}y^#jX&Ep0OBgu)fQwUqy&h95b1h?z>QL;)K@R(;Yj z+Z1+}qj;W5+uLt&B? zQI^-N93S0&dJL-^89G_*@@2Vh)*z3X?_WD2&FC08EB{wvn=^6M=XgkW&e&wp_ZyRzB9gv9|rt1h{|*w;Daj<4YOA zky#hY9+PX@2bh_?1J3*Cb5)O)ia8wm9*bS8ci-5Ysy*8NVhHp1V72uq)~5Xz4q^OC zDH&{lB@@#+^8qZDR(Y1w;t=BCCwp)213bPzLQIbJaF2akpF$t*KCm34;1()gVO!O- zU^At#Gi&o6`jp@UjTV`Y)r2o?PrPj@A$Q9_3A$i~1fj!zoAz1Jh3+DRjD-__f5Mq( zFC+>nZ;oX~54df2u>n#$u_q_^3*nxu*o;YG|D;^tli}*QU!?YYyhqb|=*I%Ib!a!g zhhNy#M(+9Rzbd>53Ljg(1s+-_zPoQLuJ5Ed9}S!o`^0h(`FpTTiPeI({2vSV&u!_~ zomQQT-VC?^<$SYcu+Zve)aHCB`7aObv ztDrve$k|@5bR9D_+Om=%#ghAd21_}SA90)MPeKm;J-bBA@UybZH?JCt1FFvz^$<2k z94^A?%Ijbd4=LxWLPv`gv6ynBzLX!|0d)UZaHCf_YI{Yl6kjhEad58-*t6r2=$B%#R%5SvyJM@?OF`k+8t@^dYHq<5Ek6E8t1=S$0btP#=$*e3ZM|3!m^NASgNb|<< z@N&<^Z*JSRlUHU4GIe3ng4MtY{lMWaRc{&2kOUEjrOGlovb)Zw>DU_CL+H%)0QTT& zt2B80Gv^<<3o)`*e0Tr!xahRk_23Iynh7C@!xC~%&-yamRh!Kv8ym8D!VA~-F<;%D zk7aY{@+}o3b?&{_I`cqHH}Uk|Y<2-(Z8p1Bvq`^_{TyTmAP@Yur&5fe&9!jmIkYeC z==08bvDLv!6)mB|^7iaqfn}V>4vTLM%w}A%t&nK{Bw)|-$AYe%d9m+P!I%Uy0`I*L z`az|cDUx&is2Sq60Swwjx}_|$ZZ8ZK3`@8{MaRLsvfyJp7E4MQa%naihmBjUVyo5D z7GkeUSu_WYr<^X3FFz`jTe?4cqETq#14ze1c2@3WN8#7`24<-(d+yMfl23E;3Wz-4cjs6<~`BRVH;`Nh$&^t_@mY9ZV09id;O()?rhqT?C2n zTZEtayTyoJDf;^Cqw6C)!nL~dUfIQ&P9WBu&i8|?E=?htod9KCLMLQM=Y)Z^aF16% z!8AHM?3%xYC*quUDn1M)OsdqkZksRd35_fsg%otbqao}RoE*JODy5ig$V!~r_%DjR z#m-I96H#h2RpEMRqEr6-ig5$D_(sU!KxE92(>9R<`E{ZDBk-zD+7xGLi@tTeGmvrh z0F-xJAqIHQhF=q24Y5BTN*VGO-WU{A8Q1e%ISWmEZ%!W^cSMGmDdP)vKK`|0Bhz9j zCAYQ>D@T=o&F9X2)iXcmnPSX+L6C5UG5CQY)NzZ=p^_{a%l^oQ{vGY>Dr;fMAw$dK zNutNTStQ1L2q5NF={_$Z`&z>M6=D%L=_rCXb}B&k&)dg1%Y{?m>!J*U6FqJsx$Qe< zn9Q#ng7G)^RjEM>9f()vKE4}bg?HM*LXADq*V>PP{AVVy4Pm)HP50M^8gWkJ2!}c$ zk_Iwdi4R|~K3XaRc@#kzI;Mn@yJf6@w7y#5lFd@A3&Q;-o=mX35BI0#G@tzb*qE?S zYhB!zV{?efp+F3rWq8Se3Y6M5wwTz{I$4ZU{XW%-4XxLr?;X75Z|fZS!VxrTcB8mj zIWsQ$jU3HdeJ@N8&;_eP5ThgLRly<-wx;R7`|@U2R2NJdZMxOP4tAMR!V6ckXqL*@ zx6VQ_fMoqQftyicXlq%h=<5WtQVwJ*4zxd~eP6>#jqvA-7FZxN#l#$D!PgLXhb(x} z2r19=X0FQv=Ul)uHC3tP6QrP%d((cuBoPdrO}-y-smp0FlV*3*E6TX+#0AsAiBH)+ zk#DSd`7T#%FTH6xeB|}`w4@#)T`$6-ppf+YuA z)`0{Yn#Ci^Q4iWhjw$^EM(`s=%FUHGh6UHmk}nCK8__!}Vo}9nz(=wO*9(+gDw5kB zSU7rBlRR$gdU}C87Ck$jdSGODbhcz7Nq+3h&C<~Y-)6qaJ(aFIRcM5w7kOYv#KyLQ zn0J;pe+CMU`}>;2D%hr#vU@W*8pK8;HqhaprecDwcKKw$B6}h~T!CNW+_jw)^2q5K zeT^M4j(o-~RSSz!rB=vMljLy+`mj~m&greYXB^He3cR_blkT#+T`&DBUGl+p?nDgj z%J-P`@cQ?3k3!0zV^`>o=dDQgG}?bR+p}`5O1HPrzzJ!3^o|kFinj|RR9D4;2#Ru9 zVHhRnzcC-ygUh=(*o@&qklAWkdXr>qCmzmkl0?@1%m$!ySiGa5IK}4Oor$p2S6fHV+K!R62SAU6h8zg70zpAs|T5H&V3ekvbF%dG&Rt5uiJ3T0DF$;b zQfjSAw(}HY_(zT$expDKBLF-gsK|cGGew+Ep>x0IhpXR}a!hl*V*$mKL{s73qQLRH z3Uhvg-caNUf&2FjpPK4$jvr@kZS^0+r6!M0il`{I#y)(Pe&CEcSWKnKT z0lcB*bylE@`3r{WoilmM!>Ut(_es{LsZS>qk~0~XQbW0~(?VtzZ)^NY7|ET!@*~dH zWWndYf{QYH$j1)jf+3FotViZ-TuhrC%SF1{vqtn<8%QzIUW+G;v%s-K{EB zvfb1FeEi@7%_=FnrEz|oDnjP)`6w`N;>>@yjQj8M!oLfTri_kqV1wTk%#wC1Fry0+l43Xkr&{~V0q)ntBi|P!0Ssa?dED95)0IQ{2R2M zA3Vr^Z}pI;33bD2J_`zX`;&>%AoaWM9qeN|xn7DNb($U}Z=^It4Y(;S7GH6^tMp%v zT)U7x-vTMEmv9|${t2UYWu|tFoJcWWCm7}7a{#Jq>E}m#fCnhVu>jBT3nII1 zm4tEXtD_EPj01a8W}%bociCOqRm;3#OuwFy*G+g~45oras=NNv)`szMQ84dgq&2BG7f!_f(Q4Lc&;Iu5%Eiz9k=n)aM#*!9hY1y7k)~P1h-_geC zgr+%3wecDbQjR1wqdAA(qQVc27_UaOGr~kJUI)CHtmTn~_Xr1AuDf;k%#H0E=v^&w z0VI+r!j^}pep|k$H7jIubeUu~3rZ{>il`QMy!Kk}4fEeUYv#Yn6S$SzN(_+QLlBW` z&t+bjUtzUU9Y1Zoq2`?*8PzZ+wCBfh!{5})Jb)>NEuzk0UN@YlPTrZ(kl;xa(w_u@ z624baI!|S{)+Ke$dmKLZY>s`a)^=gsD2>3?eip7Ao|^uva>2UY4E+HZBJ&sv!uXbi zDR5a8ZV|>!?7gp_CD17wty-LS3#gRO;?_F{V=28^(=SEj%sLOfo;Ru%D(Vh=3L+xFP}A(!%KbEqZ_MeDB0h^apF>P|FjOfV@T4$q z%^nW?d=$q&9tQ=A3K!y;msk2Bg#hw3h-*6mk)ge_iGuB*itJzaC5WC&%4Ot`PgW53D4ejM^iOSg_(XQrU$EJGfCbOFg`CJd2w} z_rC2p=+RDGs#C=q2lr<}2~do}cR=thp#XU&5^%?;2>>R$?rv)iS3ft5*Qbu%7U;V_ z{CvDr3;(|c8ZGAk4ELmGqyXC26M60KB7w9A_$8qnCtWBRxF^4d?~qMHu}6QNHqy-% ztnPG;s>fg~h=^0P7$ITCNnxN)@Ro+d4+PkZ#*;%m1Lla&CPIy3C8tF8AMN_*%wmy$ zA3eyrV+hh!EMN-giKVKNV8El;@+V_dHI1lTt|L4C?n`!ck!{x0_59ez6vR9Ilqzl}jk!d=%o=?BE)E{X#m!%KsDf9chJ-j{NN%+Q#_f$DA zHgenM?&CYPdoK+`q_>0~c$&{iHZXaXEjT^g42lO#|GEYwjING_=0xkjtXou8^OI9aEhS19V zvY?9`s4QVwj8|oz0l+4&+h5;;Upc0H=L^7x))=nN3jjGP^`Exkkkfy?^d;p0sHH#| z*~tbZ=_1&WL$5^fy33}Pq}}(P%*MBa_3S3npyOT8cNPP`n9=4kD*z*dUuB|XbVKWO zepf76FS2Vc_jb|TRTmW~_FK2lucZdW|BGPtUl9~VR?w|G&A-6N+MIT7W~*%+$uYoB z0f&1U9_VWwX@mNm74X;eW6dCGO=E$V;uA0R5Q zf3HbsZ}`WU9Q%6!wb5-l^a@9L#>16r@X>40zPY6I&>%`)24d&>*v-ivR(@2b1|>rQ z`iOhS&ei3gtip4$CR+$KaJg@|_+K8{S-4Ty zr|hdRhmptxjNz%swu}zR48)8B-U_vI5Hl%?h_-?2zR>%F=TFyTcfOo=Wh^*=A?9M) zGcK)Jg#IJ9l(~`o2SLFNV(gyDJp=u#RO8B{n12%9KL0tS{5eFUIszAZ?=~tQZYrbg z+dp2x_LH1(A8}~P+y#(K^Cz6;>XoJ!Fw)v-N;~JdNYeHuaP_i16QZ0CaHe0)YO(^| zYxn-J?wmAr^*MW@eABR#1MQ73czF9Cd+7FGCC0u1)wTKWkrnx9{6mme2H~deDoKY3 zi**S>Gbc-5b2_IMdE2`}E6_c+#}Tg0LB+*8MJ7&SdX!L&taf1$y9n&Nh^`zWjnk8C7_F!~Qlv~KUlFFg7n!~Xm=R5d zpa{DtEy-PCQ85(F$x=2?&jI9d06@xvherJKeN+hlI64YE9U=-qF{sJa#@cr}p?5YT zXXn&y7}O9F-(%?cB9!u-s0qAUJOIUENte898E!x9_oMR9bsjJ<*5yZV`P|%S8W%=Y zi|%O+&fOOIMLYVE^8gnB5R5GTw+Jbl*OV62C$UhUI7Sdzgq~`GVZ4*8C%SEZ%^IkJ(N`*Tl-!?v_dC7 z@z<@T+8tLRAfk(PRjh|K0#4WilPk<@|66fK@yMFFHWzk|;l9Fnu1m9264Z*#X+iCV zLzB$v!Mi;gK#$Jc94FNp{IEsEgB*I}TuY4S5om`S2xBGw)@Aga0+a%#@Jmos#U}B> zN^lOKbcz9)Mk7}08b<05w8OhwUCRI8THx^_7NBy0WdZlN5?FjpnA2Sy&jYIE`h8Xc z3PzZquIr@fwTF(R&?PV!(x)YCQV2S1kpB&Y*fC}UUx%p~HMUca0e!z8tNP<@s1Vhi z6(%;wt_lVJ=OI3S4ltmcah!!TiTr5`H1~miwxj}T#OGcLkw8g&3|Xym>w>|#Msa#z zFrE7lAhYCH|JC4E;wnxMad2z?QXBP*8KRxm zK0V=`5Fp;IjY+;^f`Qfz_Bs?j<;tkj_t6{E2Og9mPj`Ac0q@5pnB<$3JkI9xYX-TY zZF%vjHRz!nrdk28ew?x*u}YiWh5#S+rdtQE#c*3aQ+_bbWpR7r86$&->Oy=x66ZeXLi62MF?a%c zH$r}oA$_`pnY_u*sO8JQC7QpOVfqGWyl&65Vw75c0Kc5L+foBV7y69&B_%>*-O%6| z@IM~3F#S5nH9~`N1~jR%<>#2-{cnc3S#w5l0v;pA!)A2?@}rO1*NELvY&$ zuo!OkllW~Vk(@9;l6!Med=eHrFp2e#sxJD6D>1LW-0NGNm#7GMKe2D75Nhp4F_Vel zRWx|*>rXFDfc$K?fT!0E&=vwc*da9`aI72F;llesxd!kP%iuNy=aA)3gIMq;56_vT zQPaU2Eez=VeBO8g6}NubZ_*lbXK%y<~v&V1K^LQlNn5tuAqKAm(S4 z=7>6Y>%kS~qS0o6Ym9DLMT`Tu;H0x+FFe>@fTWnsjvwQ=1oEh1-+2@6D-yH=;lKb` zVz^Z>21j^7`FpLsCnsVV!Nb$RJKxrHM zK{$F6xb6wSD(%b-dBmLnKyRy3{9o6obWpEoqvq3ii2)j6l1_T_9b?_cBw6GylvIN_$H)q;5TuAslvfuKPJ& z7G9ZVhKG*;{(MZ?5n9f`Vg|(lk~oe)D{zn;*Da4wZLea-8(I*LQ28#Xns0es)hkLO z+mRa9bo2c{3o?qs5LExz%kwBFf)Dh)UyUD70m2T7Hxc+4$74Zx<`-MIs!kxD7t}_9 zw-bq*E1MeiUBbRUwz! zx*6?aHeI5IG3}!5|K!{QAr@&d;Ikk=xtoJaME4e$Lg&WyvN!IF!mE>v{-~PxXEr>M z@fCh8&R%FTVon@^cD7XwYadOY3q~z&MgOq8XCy>^4v?sdpbCGv0J_sAKN|OrppLk4 zx8W}TrQUp=4a04KB_HhrkX5#ZXu(^OonV^J`j_|Y|O{JA&+s`UfiND_b3VrG|a?S22+P8uN zy`D%AL^=6Xz zTzBF&mNa!PqScjD!rSHz&%#vHAOBZ7yRO}>ZoaD}(BL^m-1$^DU~-YE^ppKi0`UD+ znWsWnJobdpPQ>^`4(hoSc#phMdcX1&(hr%btM_Kx@b%~e)p%Q`Scf*dN``e+@M_o zRu{WJ>S9#27RNJZVrWtNS9(=nsRm7Z$ftgGzRsT)Jo zmL)A|8kvVwP9r;#u3*ajfIKYr!NPTbM{O_9;1egHethL4a`lQVsg4IPN*4O@{TXMt z9O-QCARI#L0~dyTbdVOi82lR^l2?ZnkNgNf0+d@L90w*fa(~xxS50v8hnTG60w)3t z!HwxF{~lM=zuL$3rD=2!I?J~;6$%`r+4Kzb4^p2SZ#|W4&#QZRMv?X_amW0?I-s|6 z{5WVO@S4jZiJb);VRTKEO#`RbFZ2=Q&=zG?u_(tdAe?G1)L61A8OMWPS@uyumUD4| zp@}6x3U99}Ff$2+oDoafLt_#Kl=_F2IJd&;F{J0_jCHerWU5~7kN&M%Xt^r{te*;3 zm07l<)jX%l4ffr%JqXhREIQJkemJ~ooh{=$-E#Fi|_jf7H-~y_8Q_k9N&`%cp{V39wizV?tW3m6b*a zK>POg8UZysD^G#ZPe9Xkrl7F|1aFU0jzOvr;?a(hmNmotG2|8l1m4PjDF2#lu5uk4 zMz*`O^EhV!7*It6`v!sE$G}SANp<98ODH>OXaVPM9!>as47@l|MR+xRmz3d*&nM#HA9eEL*#*8vPXzY-WloP0@Qv!=tfAt zhmv$b#nqkwXkGyPyj6)T58NphK)h?ldY?_MWXiW;@Y;^mU%5Zf3TMYcASv^ntiQM<{NK@ zl}L?PQQvsK_okjb7G`i@ms^N-`L+XI32CgvJmfVsjTEb?6+pbA3f}Z1#dk%->5;Co zgY&@Qh4u`u8HTtd?Wc+>2qml*(YR8>8*YE z?$}xQG6%`P|GTf@n2@iTW`1!ftlYB$Zja^-zNB3n5V&cX>V8Jc{HASssLAX0NIP}~ z(-aqlx4Rz{O;zN;%-wl-?GWC4y9_5qJU`3tWK^%B-1TW@ecpU8&1<@#?9YWF(Ee-%hYau6r~3n0U^B$7IWW0QFhaPuI`e!)*ekW%$?nybeQX2XTS`^xt6n46mq7yjsl=LN;2Vy(zFRkKq~#Oni!jH>&lQXt_qdVC9AG7L z?+K{F6^ z$1n1e3voASpSA@O$i&{OW)p`90!q~qdiwx?5t$Fu1RoN&zA4=&?qCnwD96VR-jqJseLdUP4d8rzp4I3FWaTbxI zimX9l?;C;qfgb;A6^T#kv!(=8~7om9?P8KsoXBT30jy>}4`DExKt zyTCE#d`DbgrOTy3{t=+^^Iej^91Cd_ogOnek(jk=vzu1m`d9$;OKDNsi9JYL@Q$ie zUj5qP_>X@be)?berjp3q;}0PnBz*J0A+ehR&{@a@2td$AnfYcJL@8W=u2s>GuMyj) zol3u?nRMrPp(k??z8-X3A|fZ2n3Dh`UO-&$0C*0(_g`U{H_g#EYRS)=TOZ2|Cup>7v`fs>Vy85`|>Hf)b zrpZMZ4O<)@SqBjz%4;T=rne;*zH+XHjLocdTvp0>-(8^zWO|(>MKe6LC%vf>gVg(j z?=i{dRc*e@?%@hRxfkL^k;#EDUhMq+fzGr6IQCQ67f{QJ?Gy0BGpzH1`7jm#=={?U17WN7{(X5T zfAr+Ox4&!MIWM(9sH|@4hzt12;5h)Ojnm{8HlQyX<7b)v5u$g=i zs1SJQy_MNFOWmG>%T8iocJKWCJKZfGf>U5>=kV=%5Aboti=6q+^>8I}hB-Kwt4^V`V{y5R*~Zt+MR zAGA6@`Wyz56asq`0iRA&G~%}+cyQE`u7F84qj_9?ngqO-+^u^0b3#fKpMcoCnRV_b zWz}SeEH#H7azp0s?s1vb~)Fl&$?)3&qlCV$z%>{Oe0sg+gHQs!7=*!N2DPoy~lz=w%%y9n%K(jMjHv4GHNc>o6{5=H15k^xQC_~l zixr2OCEA80rq|o|G;Of`GMlMMQzyqFF4YF|5eM{D@-+~5iP{^CK%3NpNTZt1*x1?0 z0}S5p5>Nioc;p|AKXTTzZ+M#m)$za%Vke>(3EdfZ=-$T(JSfF{tzcn#HAK8pd|Aj2 zWj#~#^=4gqjbdyE53;q>uwpm!R8R0_ppHtUOq>q)M~=<`nFHJW_(~J~lFJEY`{bR5 zB-{4wkiR|MA@lc`ZQrbS!KaSiB@97uw4sIg*F%$Aj)Ru=16_#8tHF;Dc#oqg#1ex8 ztnSK@XZn?F&yX&;4;#F*E`NQY=dJg9#o|J*2M6~dTjzO5^5`4|=(!ZhZteewy6$)? z!}tB1W1M4;tV&2_WHpS6oI^xPlt|VQ8QC(k&QWAll*%fj5@ql0oQx<$WRHVnWM@0$ z{k{FZ_5J$8$6wBK-uHg)=en=^y6y)ri%g^u1rdtCa3G$!db|J9N1uh=f}dYckwOwz zVi(cjGMQi0w-n^iD$cybIZ($Dy~<6UL) zIxl;+?_`w7zSl%!)$6_8WxG-|PX^LKw(+k=v8kzCh$#W2)D@;DGAodt>->Dpx!d@D##$OTB^&;HAoLfsFJF2Ksi7TD7 z&ZDj6p1&1fqxY12&%@>0t$9r?_nvytHWX1Y5_HxN1zwpT0zO&s^v^rM9OE5^^O6MN zx8=)7zWv78QA+NGro-fBqQJ3IFT4P4zJr-i&g$_-pA9^TiF3~U@Cr}6NkhF;XIhCZ zhvo0^66mu30&*5XFknRdu4f|gRrzk_Ip@FjFFV%{C1I^-)hsvra_bMb-&nu&@~Edh z#wg{a*d97x4$v7U3Ni+9jC(SQiFlR3Wz=54s|@<0m`e7WI%S-JP9u?U9)7b;tYETM zV9wrFQ0Bd|@Ulbz;S>oG>x$t8tO))q@0fZg-EMb2GkPa&ps0VcBcPp2(Ne^*KInB* z60bt(2SR@J?&aZ)p&f?`s(Wwl`h4--*hJ$shXW=3R>XHpY?9^YhL^3(3ybazRnzL` zJ4>%jfn%Q~mgb--c#ClxPJ$`M}ptixNANPsQ+!;*o zuj7R|5Yu${N&Y`V)LF%J_*zV(sx8#NQCE`W6FLseCg53VhtWf;|LxDL;CgC13+ZVqWn1(0QwBInFY~?P>|7h; zw;U6_eUr)B54gZa_t`W0lzmu!==7Dow7P4_PG!9jzmUh~Lt8Vr?^L!^R2sdFb@*j37`C-W`l)(5G&F zC4TLgd44B(L1}#ew{1Dua#f2J8Fe~A1E|FK%R*&B=YP?E(TRXpU+eC z9L6t`p(QzY+x3WXxNgQU{LRXOrs08K`X;tkh%w<%6$7amGDr)_Q0piyfUmasoJ+GYM%Bf^s$5j(x4JiCTJMaIE0w%7~{pZ27Ei-8*B5iif!4K%J ze#N`y{O$|yQ#1NHXmvlZI^^)eqfy9niL5hcydDUn4ZL(?HSv-DtPUqhgn4^}3e7U= zx*o>Zuq@u`RRj_jT-e}C7IClBuj~#HJIeRwooWchX_)g4)FoS26~^y0T&~|e^Gyp2PfjCIOB?j4iIM; zU(3R^AF!SzX0P-UYQy{HoGRwMO6@mxnhcFFRcnE2E#|#7ff--!nx=-M0LHb@Go%DL92Tz9BqNZrw{~#}tjJ376#(hK>G7FN*XMiIZSA(7Z#FX1svnLEn^Gh)K?0Z4C z1qk8h(gs!WbbLbGT0|UVzD8etLAlS=P_gwnewl7I_xKNCzkMPx99!+t>_mzFbqh1zzHUXQ_enxOS;y`3RTEU>s^-hH6X4 zPr}`W7Le)*{A*GoOw}_6m}mJBr%!<)G)bK~{SerrALB*@Oj}|^h^T;-1EIu26bsVHk^OrsM^Ae|mi2W%pph&M9(Z-BsJ~@0n?M5Y>^Hn+ zL8%3?>&K5}`6Zu?G@s2uRt6$%(|wl~i|#gOhdP6k$Q`@U4a?_Bri$Gim zd7NX2S~R}b>&!evS%xw(Ay6zo$dAQ$6$fRw_8>`40{*|8nci^6?a9pD&s@tLmj_5s z_jrA|bb7}IVcFS#Z=G#ff9K0D5cg=qjBbKU#LQo4A5yboy z_bueh<-vlwYwK^|>6QO0ge|%E)K7peYvLT+S&=4U%n!AW^`EiixmX2aIKz1CeFm&0 zqjxKx?o+Qx7foD2iOAD3?zkK8E}02gyDleuxf%_Fuc-Gfft)0X@bX`4P>%@mR5h5D zrE@WX!4hU!cWeiXu>9TUBfST}LOFvdli@*3-u|DpS5sd{J~?SAf6_7`Nq(B$^bNX@ za}?jnQ``=b`dT~^WxdomX$aSL=CByJ5MA_}Fqv?%!cqDY5ahkJFvEm4G_PE9oZLO5RU zg#OXp_)C`5lLjX2Vqc!yd9C6qY=(CN($lgf9EK7Pm&_nuhS48w5JyuRE0$j2pGqMY zP6Ii~&T8mt@Mb#SQVM7JrMn!03?+gfzl0z0;^*Wfo<)$PJ2p1%mWue{ z*RpD}P9lue3mKufow@^W08XZR0zOv=Ta5p9#!!IR+5+Z~EaZ7j-h7yl(b0+Nd@ zwI~R&%AWwHi$&js!9v4e?i#I281dppGgK;w=oA02WM{_@S-g?PHJu0EW`yEj?!^(? zN3q9I;OrH2;Rr#^6f$yQ%C1E*vTisL22?+dgt}yUJZ1-SHl-ftd=P4is|9;On_VZ1 z&?iuej%!#QpTumGo?{c`8@rE8n|#J`YI8MhTTUb`sFEgU@h91g@%}CDT#OiQ%DYilpNvf43EPJbJxJEHoOI@_+c9#vQldWE3IAb zYSe<1iyEFr&i}%R3Ixnf;ulYYB_WU1f`6p9x^;~*WUK7O{aqbNvQIKlM~WF; z&gCSWmQ0eIZky5ub-50CDup@YPHsVYXS25ru3dfIkeRjX&c{i}=pl}}F*-Uk+VMe) zaYYn^V77btqATK9@0BB&kCL_u)yu>!3S=xrO#%#8F+)(q67doD)TW8_7w)5U%WcXB zlE&K#VZ!|{qSL@Ci#}|yp)~`^DgS{U+a>9L9y*-jKUM(8JG7yml?rYs*|%U08q`F@ zOa6?otjG1`-?hl9XCfS0?_7Y!XlaS^M!YawHG$`l+}gd~o~%#@#yhsP%%@EZ3ir|% z4&a?~Kn0}=ls-u`PcNG|x!4CaqJj1iQVyrFEQ8o_SMzQ$4A+b#nKxZ@YT_mf1 zyiobl*pZvDRky=qjJb z^NZ!aQz3&6!)qR*TjC_eX`rkBwlk+E&?1m z2||w&-%U2)N*JzDD-K%}3Ct+staQc;;hNpDZUsxTWrPxGIWibFKoZ+R*$ zpp#LE6-ey1z2YIj$`NlAVM%F*!#6s>oPeFpvOu^w3gU+$xgxrF> zyR2{Wi8-spyBwsnaSLv2D7;PT{|SuFo%AgZ?yU3OJ*j_`E~$VlC6PWaK-H{<&84jL zeRCn*2T)~b*9*GZkk6qTCQp6#+)&}QJUY$MLD4js`-PBK~yFPDZIi@X7@?M~qD2BUv?c^QHa5t6FL8ot{HGhpluFg470~2>B zoMc5yfk)XYbFiG#X|UkT=u@UKoGPYrQgFom$NljcNv$38d*bkNsn7q0CD&ImdJ2u) z1Zk})epBo8w79hLl#i>&Xz_q+&~a^C)O+5GMJ>7Ex4b6YXF58IZpRJkfJ=|fQE5ra zPt=ixo8y=$9)NjgPl@e7xXO_9c}SV1taqk=E#l=Y6P*u^^{W#Xk32+T*=SyZq&wcg zB7X@u9@_J5r~lrCufN1w>nQNdMgPk0;>aB_dgmZ`CUjC-imxAiqtw#9MWXs~dKhjb>o%a5k?<%g!?Rgd7+`@a8)3i?^`yF;5W+<$%srby|mf6t0;Rali{~lOc8{0->13DuYhB#lw+`jh65VjcfyQcNzmYT zj;8s0w@jR+Za+88SKwQTa;q`5q@cZLZ_vrciXBM2@fSv7Y?Gaka-3jKQ>Y`5-mno4 zF<@sl22GG=Hlg)Z94jfh{i9*I+OZP!7JfqD7QS4Z5F&Vbnfy)hNOB)s&0qP}pyLNB zs|e>7FX{$6B^(Y@Nz(zTM;U8JSUjGs!Ftyb^*wOfs`$$Ts;eC}ygPtQhXom5Z_>7Y zOib9kCVQ7VKE<7Qo^z%?4`ETR858aJh<^Qv!Hwn$xvwX^YWomU6s0|B63-)g@yEAB zWe~>H79o-lb2c8=QL4%$`;5ef9_a_Z?`1}xxyvBE1+cZ#H^qZXkl4HBXb(&K%lpCs4c2SgFvrqkRvm8cq#yg}2$i$}`A6 zAbT_pQ5XySx1foe<){6Qui~U!Q_dEBLX*sn$~kAwU!DCxfm|-8ZMW7})a9`#$Z3+5 zs<+KBMf#vc4143k5=@qPFt)=wyWslETi4-jc+~*8t`B%$;|y*xabJkKp-;Cg4MI=(9>WFCgfKe2eHdl6o;)n7%#_ITLQJ`OMeW)HaSM_@>deTm&HX;CC^g=_iD&eqj8*zO$8m9qdy0goLkSdmRqU25RUX zEQLHO5u^!2Nez}GDU*#47Rg^f8&?~!%wD_ayPOw;nG(w7Vb0Fs&boVhGHp?{c=>i_ zTW$B5&hoP)R`jpKkxvMH12Z>Ah)nBBek7q`KfbYpU+ol-4-xlpv{z$FTxxO)?xOT2 z+be?bW_0-90YWcm=xc(qP`hs%pqaGUnKXO`E`**GLjNgvvCZIgiaEA9UE)`Q2_r05 zsm*<6DjFYk`r>4Jz*vD~aD8?l;q-0Jv|e5cR0E0R{Nxx9kw=M+-}s~E z^%CsfY`l(Dcp_<-+&JM~_*HeG8HDIjMHRMgLGkj$tQK6sx2<4U3<2oEfBOaJdX&My zFAN*4=Pm@lmmT=M^f>JPOh}vS$Ax6#LTJ6!Bl`q&GhUj{ScDh&wq@PUcquulc;&>$ zG>dgfIppEsG%3cnCTKAUc!rk#eTrtNW{67^d>iMKHbFZ~4aD6(@QI=P<~i(smI1Y( z^l)y)4VT-D&kx--$nIdROv&IsDa&O&?80bmrncSro5zMP-R@BP#Y!NbbDDW*pN0%@ z%!WaevWo z`w70(gxaAQlZ2-4^>6ITHwbNaGJY2COyBnnW59~yj2K1V3PoA_nJ*0DXPyVOTmtn~ zi|bvhe%o1eK>$bB|JqpRY!CdJ8g&&#B)Za}_|qWd4vJJj>?XqBL&BqOjcgBDQmqPP zI%3U$KRXJZ;=Do`42SjaLuhP`We;qxB8`O=JcFaklYf5U?8lT{bi#FlNmA=kYwNj5SdpfEGJnOrD@}?kPT+HPd z5oaTLfv3}Ax}~(m#iz7>Wh8p5DlC{|{7QppGgO4`>O;Ry`UCd=DV-;7?*+k(>F~;7 zCZK>w*MzR3NY&NG^}}>ys=~T|Rd-NTmm*GTX7D^{pBBAG^rPGMU`wEsJ%rOmPVPLz zQjVL@(QsaOGY7-aPR*pGVt*cMf!8rCAtJeuO2o@U>lYQr@+2{pkn1_?Q@|zVV>vwa z`O!w8=jyTn%#@jdN?Gr!UB5EZ%diKfLYdi`6ZjZs5B0ZyymgWFJIZf|xi24!+6k;MX<94rw{ppt=;x|lLWE4m+9Ca(@T;k^j2?Ux6ChMg|D3n_^r`mG_b2+si0}}0>8At2Ah(3> zM(fOY?bAyNSK=Z}@s83>1^tZ}(=|SpD+iSwBU#Q2RYmLOJ-@gihUH(CZkdTWhABpp zZcRcH#a%Goym9-H?Kl2==5vRDKGhr<8r=CgLG0Q$%gC(Xj1`%Tosm#E$GFt;&f6ZH z&mkhm{6)~P1mnLIEmv&x9X7;EW)vx_QvkWWrmzIM*ukD!p2u0`P)kd=dT=+ABv{fs zzgEMLZa!l>hB-cC#W-#ye9YJ)kAi!15qGsr|K9!*$4Jr_dAgA|Rfz_jXoq6^AlCur zF2@EU@5a`99*!#|OfXnGrpDsJ1k;*C+DcisT!4vsSo(M*;7-?PCRg5>-US|*=mutp;uvJ=u^z3d?X z{bmP(wdRqK3~lx26S&!;$;FlCSg)4IAZCuX7CA!;QC>|;jORyGk~`ZEei>w}_Wf;q zMlvJ!bEp$vq!{h(X>e|a%!)901X}a+8JVF&Gd4gL)IC+Wkc7J2Jf2 z+F%7yzIUAyk98)h3{n`jVl0${1qE>utAjP0#*aAnu}jf4e4j5qO`%AU+G2p38Zlfr zXk+VuLu3%Fehd7EJ00NNe3o&=C>Qaaoq!9O+Y9yuZ29{P6QiNdG|{<<9>G7YMwkJ) zTh0UgK;kynw*uc?J_k8wb|w(p>^wtdIx(KZY#nSoZL*8xf{gaUR|DF+zZ;-v3AZru>3-HR>3D8a& z{>C^tp(VUNsH%IJ=!_WW+FhTEKTDqliMe*}+CY%z*Niv8)T-3yus|lDONmenZ*lgt zBbw0TO(+mSuv|!s)quTW`ktrWCM3Y<|r#NCCjW@ca@V4*bH+axqTC(#Utk_Xx z*KgX$&5zfdej~B?nJWbm+!bc6b>d*uLS24we}0?v^_40zMW1K9GT~3q%>N6TR2v!E zweMDQu^4(fIfU|vzLo}67N$AKa7sBr5C)oox*gno_Et(yzNhh=QQo)o*sXp>y57}jpGp0g7+oG-<4N;&`1*Cf334>Jf5`gO z)E5_bACu3ug3RkibI-+jzK=Z)0+pTDq@M;RhF#&zUbDEr?C;p(Ax8Lc+?(3 z?JtH};gHV{|0Jon<<;e*{}RGMp4`8WJPiw#`p`E4{@A?VQgA;B>)=Wt(y$W^UJ25igxgNex|ppZap(UAc!RiUHw zjS!B{ltsS-Jln76lwr|7F(-N+l;)*1Agmj%pZYop@lOck_Pe1c7Hh6g_z<6v*z%XaA$A2Gm*-E!P@l@A!3rghh^zrS0PbJ7$hT(^#s)=ucR%smS4T{c2ldq-s!l* z7xQ-~_(i!^#9OcQd)-2mx5>$b;w09O|EZ9dQGe^?u9qi)**N(IHRmLjX}-*-u93cU zdz;M_wr$!lrVD)IKKp7*()H~{O6;|*t%NV?>k9ggF$RntGRSN5-8%2!_G6y7%O-wO zh^gxdAaiz|2NE{PvwfQd7f~gJE}KF{pXtXL#BRLOBv$uH76hj7jKU-0y|o`&){lTZ_InyS2eL}VX5P#M}j6#{cX{BR=~;7|X< z;a*>XV>#q0JHAE6XF>EW;yb+xQ=f_#cf1Bq02f9vqX|umflt6`U_kqU24t4$V$1+4 zl_$juTY!O@d6g1W*e zb`fPwskAVCglKQ4ufbZMHNCakt}-8}tg%2xuZTI$cJwBzAL;y>MSwas&)}_L+6cYk z0L@DRoQGFDe(107MP1RBnQ-DOb^a9T=bbr}^PS+sL&MYn|4qA7IYF?yByr7P!5j)e zr)z~~Jm7vTnbfM1VHvE9*|#k`>XG)KQ<+(88WaxVdD)QPj}tCPH4#On`%u%f+Xhoi zVNyuPCmP8NgrH%98{q3*xM~b16HNuSVTnf9GcfDZrWfxEmCa-9^iHSr;zUR7>0Xz8 ziEy8Bo}REh*uqW_@b>t!Jvk^%P%G%Hk z7+LfD%kj5g6FaDZsFdZ@jxqI?+(6+ol++n1zFFZ~-#R5mLpyJ~58-vE#+Ln?RW01u zefC>^$ty(IJ->gIEPs&^=G=h4=s)n2#gC|eAONP@jyxXh^vbv)Klb+eaxKf2gmua( zR|LV;LTr+5YebNrEO{Q9AL`sRqdh}bU7hAEa*Oa(}Drm#WtNQ^Km@KUpvn0%zm z84iAb55AqIbYhFb+vr$$alg6a4X}?fF{}3sEud1hVd{+ED#oB(WTn_bR?(x*rAR;B zFv=6`M;PXu`(0voK=Hw`@O44;7UV(>c#k8uAl6y7UNI<8$&D45jhZ_u3KN`EhY)|* zEuNY{ubKSk9Hd_<<*W}McrSK2{OVw&iaJ_BzisR8mOy}Hqp01J$7v<}>`!C)b&HpX zue4tQ&%Sx%f^{?^L)^F3R;Q9*xq(l|#t3xooBF6Ot$?Fh(AfzLP zJiK;C2zHT@~H9Umq^!U<`y-{r z>iO+9-om%_8Y{8dU_VCpy@cc?hO3oVzm*7p?;M6XiE$2s(2dQnc>5P7jEM$60Na!H z#%$~WoeQH7K_T<9Y{@ZqYqGnZBqghSng7-Bs-w<26z|szP5c&~M;JXcJ^bOxfw+yV zt|yVx46R!sqD9Cq;`fOPzJ&Vsa7cr3^S{R=B&_wAlVFzpLhFcD0Y>6Ht8x(mqx#y~ zFak-4Kv$2Bs*Xp9gGDC5Hc%o?aB>$g7dF-XC1I@GedwE6jsVcoVf@sKH_AnQ|30sT3%lndz}dDD*k!ca>UI(@`STqYx!%OD0iZ2|hv!Iumpo%Ij@ ziWXYP30A`f&u7{SQ1558OGI zH_vv7Ccc*_a4hWF19O+g1hrF$dUZj{l^IxoJH8D59)2y{S3)FKw@=*l&*xZ}dh^@IPhhI^&M?;n1;c+Q*4 z6=G^1>S}T;etIw+eznzEZE`GpJocp0!L|vY`>s2wx>e9JE8#)Xc7_nispR@%M{W+K z6p*yD0}xnm?Q~{nuuHAE=8_fTzySdFUMk+u>ORqe4$)~YM>wNA;d@r5n%cFKsR;uv z>06>Yu-uDWfO~Kp$bs)?t^_?lLxJZ1=KZOpG7BfM;9q4S0d_*b8gs{OCr|__Tcbmq2<( zpE?|4G5DTw<`k9mYkiYgK}v$^Bt{tVi#gF{8lM*H*nq>k(Jpx92TEWcf`^#5T}4tJ zY{U=f|EG|GRR5w0(fe8nX1P1KH*#*#1KsmJWw8kTH?!g zW~3NP#j&ts(hA*rv{)a$e;GW9#$TK^=&gn_=#;`57P@p(Jql_T0#7V#_{Mqh1+QG8 z+h~-FJcwGx$}+~?P-I9CR^Z{(J#u|WFFGIZg=lKWn?rtsF$`8?Rz z{BIf0WXm-#Q@RnlH{>h_6JeyO{xP!Ybdq*GKjXE#<}>7K=(RJV{6iaqY+^z8v6upP zZ=WKAeko)rJm@(L@<9P|H2$of@F>&x-iU_k==1^2dnVkvE}@ZC{vYsPMt6zk^kE-A zpeRWY0FJs8zg1keqcS1S;Mo!onxS)P;s;o}q8Yc&gHQQTDvKC51cQn5|BZ_!q|hzf z&U(?p-VhsR!doVSOFaFVDa^^3YWx@tbWu)|AfsD;RI+2rrj71EG=K+8n`~!k}4s*iAg7 z{?ftU?lp8<4eKvP%hVYue;1>7@1F(x*zoUr2ROUw@5DSxQEILmS>KG|=Q=L;w;+aG zrY@rfk@HP`ecEp=AEL6y)1>Uq+UxDuBzO&s#mDmK%6_+Xa%ReDL7TiPDj1?FD7zHY z`SDmP3e7XU<`;RisGTT(ICzwN;uIo3n1P@>hN)bZ6pBVH=E^X~Ko(64!$9#)msWM* zezc2zTK-~>$GyC+YS+?SnY?+uw&E_Iq`5nmx!lJ(_WZovotBc>FWaE~lx4_O%9}qCP5#&M(71gFAze+~V+WfMS;;X`klNXS zMSHyHPZbW0`&WZsrGKG(SlcjmSkAnbhj?a|BXR`|3q#^R?T^p3QN~+E-HHOF978hu zv2YS5WQC@CkY0lMiV|vYgf%TR+nC$#tH}}X_-1uUCbis!Zl$s^a{bRmvSjp)+}?1c z{=hr{sh<#LLN=*tTDBeJj>SI$MOEse4 zTA3TRu>Z)qT~e{;iI9sd}f^$shAD$p0eFrY8c*IPCfwU^?G_2smXp_$`T6-gY^Zr zB7`XDi1`GT4M=-pw77!Rs*Z?x1~D1%BVdn>cR5TY1OFp`Gg-^w1?Z&>BMIhMw&BqX zJ~55g=PooY8T)MX8?V=!sR*z&_f!RTHXCh-?%y{3Ftn1%KIChQ;}_BfR?RK&n91F= z2zaa|(|Fg;^?8Vo3A{La%W#Bayo#Y-Fr!nfu!^r8VOaSHOf7^)Y}P4e9Gdg zr$K3d)VA|yh8yJ+4xY5TKzEZaE1*2y7R{q?g+X_1;YI#eW4(QF;v6$JdYtG1W{+dK zgqa9tiHcu37wAJfvFzZ$e1YAYs{$YFHeL`5{g0{Ftn@z!RD{mP#x<9$xGq6r)WPe! zceB&Nd~o8K9#Vk)6?B^$I${r%NQxF`ariG;ag4eBVHf9tl8OXBJB z2ZTW?;ux&p4+Afbb(=E~t9z^(5Qe3oFz;Gd}WEX8qp3Q0rWA0euY~!@kK5 z(ja0bgP0E5IuaUEEO&(+O)#qyUjFk+9et=Y!Ex+*&*I3sYV)E%cUq*K?S#H=-^Zo2 zMy9w~f77ir;~QQIyrrI@y)nQd`PYkJ0mA6c@`;gNwW@O&Ft6Kcp7GMeEHT`6me?Wp z-R9$iz;5CYJxgGB<`txU9c5)=E}gB7q#d^?U#>zZ8S6DX(Jq9Tmjn^1ZSZQrio@Tu zijf%c9fG~q0qwB(A&-L5M!*Vty)yrgBoBVqLtwbNtJ+HcR0{Kqtgm7Ihm9!Lc$^AD zHUqf=lrCW$7GK5W%*gM$dJvb9(v8DpxX^pwS-~kT`7>b!nKO8YWKcTiuNcH(~#q9rEgSwrJpc9`_%vE$K~L< zZJn(@`Ul0oyD0*uzJ~+|u)L86d5Vh@EK;4baH1`57}EKU4o`CuHh$g4%hRLoerQti zOm;C4Gyh3yCb~D43_?My)V710@e3dEL8Y{St^heeZ`LL=V&eKx5u z`Z0)n05(hUo=@^$L9M72B=+*Te!MKOnANC(=AB?}93kG!AbO09HOXQxjME9WDsc7j3)s5ri3T`g|7+HjH`r*FWG@TooNg z)Hb?_r^N&^)*iKHVjt!_#&5Dp%pbgid^bz2K$7g>)>m;?V;*Sq-m zG(O=1d;k%<%GHN*i302}-~1#*!ahE)DSpQ$pCGc^lJ}l`W=LQkx4SDoU)wJ=C(5@d z58RFH;?f~lrrJ(JK`%cc7f!+%{nC%|VB8U*(4eFA!FzO5)BA{vw+jnk76Ks3HT z60ZsKJ@60as7N?&YlrSyJva|<2TM!(auF#}tS1Od$3ihhp< zzpSz^<-S2o)gWE6H1u+rK-o4fA$)p%U}wt%D|fF@04S=!gEN97zY?4FeXLt6XhsIR z2~vagt#b@lE>Q8XGX2j~GA{g?C23| zCg6!8#Dc@(mi$s&%E&H7_vM|MS%LX5a|{fIE0-c}FL6VQ>0R_q>W<7PzGmc$zA1lXzmo_rkNQir7`dxN2o6NVJ zEN*(4)k2=rn9Sfu>25-CLP~{dFc30hz2JIXqy01a*P@>%j6F%I>{|68wT zsCfs1bR?-MWCcXq|?4raJ!@*0OnRol%v!->b)les&Hm8aVC5!Wc%gv}Gn@yT^Qh zchRW!))5mO4Y`JE7W;Bu+HVa9Qt?H1z=hv>h|DizPnJXc{C)*Wrsc67V+MEZ)3&yd zgqOl#Qgq&gIvjIZ5`~pz{>}q}AHchu2HIb%veP0``;0G96_Skf0{iP@*}eTJmE z1)|}8t6z%@F1xsiAy;$TFy8bQanis9xsmSAPW|zMr*J1#GunqS&(FP_fsAsLW)jwB zQxVTSI^J)ry7O8+ypI-pH)>m?k^lG*-F6z^XPfFcYM%m;^)g*LokeTRq)E2Cb%l4J z&JiwN^Z*vN)T{`u3QVT`J)5{uTZk zo3h5oL`aO>l4B5;mYDBY&p!lG4`E-*6ouS_A;O9;K5VU|bMH14>jJFjPJ=7(J@Hqp z6_D#o_!6qaeo>EAoXgNy4(}D`l>9sHo~ts~1T z4tP!XA<1Y0qR!HpN2z@!cnLpCor$MmIHIefAjL>Xu8H^vRMK$CVVh-m^*5xB{nlI; zH1As8?tQGjOkp&i#qELY=lhr6WzuxU)1slDCwc;^OcTe;pG$!SVvO$Db#YJu8h(g0 z`U&oKhW-h7)zugOd+v{Be#1B03Z%6ZSiUtIA~MnW{TRGge;rs<7A1D1-j{#bey?CJRjG8jp(*~D++n%x*b)=&TrshTodGWz8~q%cySd-@qTg3KXBt6ivfd6TX{#pkd?)P4VfXF#pZ%_m{Nt6)D;Pn2J%aV4zWHS=na zT{`MV_yd>NiYxc_*)k?89AlB}K(;pA{?HC%qmA-?wrK6J^#QH$ny#Z~Sj9@&CLRHy=%=8{7!im(NV!;<%)c&)cuCv@Kv&k zo!67g(8mm3Aky6kd=Yrm!W)E%RO{xc4i>2Z%aePi_xU{jv3!#YH&WK8e|daAeaKxN zvnE1qXsO%GgWA0g>L9iQfAeZ6bXo**{s+v1`g=OR@0wsah6BHe5#<(7$RIbqlm~>S z^93%9Y1r(c_6>eLx%isgDXqU4P}YDAWBc`vAO+y@NKObWtiXMRFS-ohPsQ-nEtw#d0ZuV%a^zyIN}%3n6d?Z(j=L0?K_?X zv;J&VUUPFTLA0W+zbJn^M-he1{Bo2Ye}tBB^Xx1C=h*8YV2cP}9ut34U|(XS-5sU; z{mhqU9fo2+os?lP1^XCD;Co+c{6s%dnPa-Z*mkY=oVzx7T(MUh@@F5#tIqoz7*aS$ zpO>ee*4r!04@yAcHQM0OtgENrZ@V{OCOJy6=_OGA-K9fdjAn3 z{E}M`ESp%mEc28l>3!_A(u$w-(fYxH9iLdrkU3E^6u+2<+x_;{ee3)?#y<(b88%y1 zsQ>Meg3hjLNN%7&k7ZSKi>n!7)K#{088OJ@+Qy>$x!E2vZHH|u;b7Yqe0!$Uoau>eXm+_F|m&wF1tafZl z`f!`BV>1{&(Dh(Bii>w^f505MI|Lt99iqWA{=OolEtXLQ?u8{_4$*OxWtM*t_N8z> z^`c;kW-3YYbF=z4Q`yJ{g5r&o-DtJ)wmyDAFXY0E2G!y6XD@1{-o#P!yzXwgPn=lQ zp46xq8T>@eD71#gMz0We26ix0zqzUq^{=sN3$e~OEf2+gTGn=&PR@zh{DUpj*YFEt zMmW^0TNF&mDznVCYVALeULJ5fjHo39$l1f!-8i<-F9+k>3iy$!SIF+tblmm}xY^j` zH3?P0mx9y${@Qgw=N;a4;~L1^n{G+Xx+XPe0;cP)V0XQK*bSTnt!Fp*?vb_cmkk{`!tmFl3>eex5e`Um-3*VpZ3%{iy%CLfXNa1i)R_ST`^3_ zn>bf(QNa)80vZdxa?yu7nBpuJPF~~#rH_yEfd}p;&b`vAp1S%Rx7@ZAc)OM^6Ak=S7;DGnQhzMm_g~sgo5{P% zX7~YMB=BY1lK6VAG|-m1)9F^JohaBDy9|kDf5&Pxn4sZiCUzLlj{}jJHgfH$g_-kP;ND z^`FvVJV&clw94{Tl^H#iWh6QKQxGQ53Ey7Z;OMh4ex}|dq;W`kZPq!NkkMBX(~lpKty_zUU#U1 zg^m>|iUJ}{q?d%EAc!DHkrt|eNDD22B>T&G-|sxndH>}if0*2R&#akytu@h3*w&1; zE=m;Q!KTc4sP0(7%7BUM`|SWvAqjHvb{E{&5}2SNi2RO9QN{v60fx5WDacDAa8pLt z8bJ)CkF6J=nzicD0y3QYx1GR^1-!D2?$HY>XC9gv@oSIC_@nmgJV~!IPlo(`nL2%# z-~T7?9*iQNktF+O4>(0QoLs$sLmy-zn ziWF3>&k(&OWOO}qx-xuy27->-YVb4D&sXb=WqA)~b5e>*6muMWo2QeHsY|?;y;||U zlL-MY9%kwD$Wo6DKjU)I*inH1yJEnVZw17j)iWX@>q*obN7PMGtea+7|M51lA7FoT z4091zI?m0`gYxXSNdN8!!B;y2cC0`qQ&>7y0( z*F5r~Jk|XUdNk_V-<>)RII!c(FQq8OU(q4Rqt`D7GkCTxy!Y6>2R2?02$f32!^#f_ z9(;c9^+ILYyhr`DUa{bw-BD~87n7J;^v`?`c_Dg04!ZW2aViSc~Z<`NBrD%l74eNlS}Zhx~|0GFN)RAMc?%(x~m|mjI3xTcJtUC05YAT#72s z`s9o|yZ7*mjPviAazgt!PWycO0^cqxm#gQmOi*8zWJZof`9XG`;1Yh<&zJ@HzsJGj zhqzMpRB<0syu)m|%$hqOsQGFj`snqfrT3Pl_udd^W%RcFkl{y{;H>V%eLoS4>1*(G zjwo(eQFetG!?!KxB}_D6gYiFo%4z5UHW?7wu<)>1*_ieUmdB{nm~fTModUl~=NEtE zlFW(89nI;LUT3rE(l6MxSEOFvw_}o45_E%$_hGZD-S}^McL(c);P|F(y@!Bshnvc- z5&yR{sPV5@zWwJbHB41Dj2(-G7^cT$?VZ+TKyw1GZw&B4w~{1hS85KdU;=<*GmKcn z+=!l@DEJj^u)6U7um#%UU0EkCA#wTZ)M{gY{spaUWJBhL;57sc}esGb8xJDZ) zr{*3r`PaXa*c|@ZTCpW6?rBq?;HmT5tD&BvskWy2^nD zU;2PckBVlH33gBp*`vHX>a?Kq zT6`vNAr~@mhQnu?a{6|989_k>sJ+ci4@7!OW<_{$ujGK)5VJM_B+I2-r=3FLa=Os`*6xl(x_e|cj54*4vD#MKcIJ*iKkpUq0L zAghf|zdxv)cwjs^Cg+XpFIY7J+_CsFZAXxhV=7=|w`B!vSy8tF%7(@{efT7iUw#4S zS8+W^%@g%yQV(TkMG?=1af@KHkzAY=^~jR2NYBij8~hRA&$zg&UAxaDc|-rhAaW5n zTd6ngHaGXM$&ZBB-F8+zBB#_pHL!TxaHI(8C{ntc=MCoj=C|=FW90oJApQTGuJrch zaaLe+ri>0lk3mxjGGxM7{;V2EITk}&Q}b_gf8TnO`gtFVi)if_Hst6SW(Ho0+CBTs zGi#9i_D{Cn?|z%<@d5gfm~RvCt4n{dL%ul09m3CCeCJVJ$dCFn@8BYSYbdG=#WxFX zC81&@djaF>^1C9}x@*aJ0;yT}Rf{dJ)Wzlv+}A#h6i z0Jn|&DHlw5OQcd>KY0|mC%sCu3F>yJb3im)q~a3>He6tw2>?MS4*5}JcCxL>VE*8< z3@wcwXlKDu|EbkHDP1CkL?PUcGB2$I@{g5>iICq1Lx3t^>i{IfK`0HY@b&2_3~N?Y zgI;t3C)Pw7D9{G1qS^YcY2M1k^3_%MzU0=Peanm$V1<>SqF7j8=`_%ZbBw$)`c3A*aqH-z_*0W5vY8o zh+-UqyZMN0R+X!+S^hFqgosTV5C!ZW2T_uCkvyOAh3NIL#o<#{M`_0yH3i@s$pFYk z=C0JrAlim)94u|)-}3zzjLb0A9|H>MXDg8%Xy`i}H?SoEkp$VvWvt45ygJcjCW#o` zc9Kq~PGK!z!~iJwb*%2odcTm!x);*^x(4|10f;in1aQXNQ~u~roB5OUT+T9l^B_+j zHDj!0bMwiYUSy6D)e@LZ&~L-M=RbJwm)elg$QR||_nSi1AN1k^63Bkii1g#slsiuF zxOB+l$)@cYxMH@4h+dMAEZ2*`0`Rv?Gswme_2}DyThb0PWjJ*+6zme5PNwJ57NVMG zAEpJqrIm~LNGz}4MY7ocBpKf`0FC=u50ELym?VgZ1gm?o84x}u9*wU7oEm|W|L7>5 z-Psbi1tfVrYv?fdJmf!n293D`%0m=%`7z8$+{gyyPBfP+r{Q9L#7$~zFBV&|$lCKr zztYGn9<0@hT5LhG05dkI89A;V$g>rqidJj|E`jQkNN}Kd39;;YquOa_5t*%y;J>Ua z)NTN*Wv(pkNKrsRw&XM>*r&1qEPYe6)8-k?2hyLYDKDLH^{wyfySys?Op+0_s9-u| z62w_WFZach#1xQE8JBk^ciUd$D*>gPew9z@|JAAl5I>M}%S zfez7nX#?oFg>Dv6GS=q|mjm#&L6440P5xHkpqOQL3n<>)?R>`(Rv9K?Jce* z>0C#}k&ml!d7lQF0Rf;vI3pikt#*`F*9R-mb|vtxl*BQw@7;O%>~Uw8sA#at_o#|} zr8#^$w%*mD)LwpHqon)-A3|1+ob`xJxjY)z4ehbYYUU4wy|5I0c7G4?(%br3X{cV9 z1Q?a$+?@D#y59H^dT8DHUSLegPkiQ)-K_IGPOJ~P{t6L_-esLDM+-@ubBWR_qNay& zbVCyI4sattAOwLO z|DiO`9A3%NIb&?MoqSC+U`Ox&c3T z*jleD+ygS?_WOv~FVljkXC{c`MTyY2i@K|LHSU*f9N$06&AL;s>ZYN1NY9)5jN+~~ z__W-#9b-5CRWN&7mp$*`{_TV1USt~CrJjy~fH!2|vH$+C32rLyaApnwQg&d1^B=I;q=n{f8a3{u~>qLJp`nn?aQM7lmuUc`ax>Ntk~k zCpJ0(gx0J}QHF#8-8FlX8-eE8Mf-~)2W^rCyh=Q=V;_0qVEE1mBy9m+U2FW{_dXE8E>u>!Y` z&`K3=uebBJHdUTt@bu2tUqU7^WncM%6E@eipa{Ke*_F?KN$Z8o{-;h#N*(+Lh+7EkDiHW zOpmD`AHA>xVq6$;jJ`01-#~-t;`WI(`S1G&vpV0&hR63apUe9I9VxE+uZnk$Ty2-a zkEj0u=Sm~w;9UxhG98d8iLpk>TZI$j5%jRn&__pdwxPpQ1+b^M5z-obGsyAU2x5~q zX>;i?mTad4W0cENb8GnEW|K&sWV*o3^q0l;0U*3RHda(;rtXS5f+C^yfF-;kPg}nx zj_PTcru&D7__vQJxAlJzz`)g&Q7|NDZ{cCAG_h&)h&& zp;#!v?4{+_k5ALp)Qm8%;P|wfaz@T7M~jj^U)Cx}4VuVC6?hu-}p4CVPRvVLiPza_W1R$cx45oUX~!xoG`8 zbR7KE%9#Vay7J{eT38JB%nP|Zwv)__%U6I|HBSn)nt%=11J}AhFI{N5s$eumTt>6~ z?7-E-;@dLJ>yxI0*aO#mUieARJ-qBC9;~)KyD_c9;=L}N# z;5>K+z2)Nn0cUY$FsF}dM_C4qpM$l-9aLq>@tT1{Z5sreK znIrf1+c)6vEw@Zwm3*+`6Sr5u&n4ZwT6o%LN_K! z{Rg1jrc?$|%)gR<<=p@Ciaq(NU>`Y)k817czT)=7tZvKx$miwTUc5j>NPTp6ckJDo zFjaMWr`j;ROb_7nA?JrxtoQoqPvH&`lVw~%o~4JQMgvxHQf;Y^Cf^sM_!uliZw6~t z1TVy_{#3|);~OqVQTOD!bW>97md)93n6g6!=OmjdJ_CILfXm|*Ys5zE9y#k8hx;O! zGXqj9!fBx`)`6vmUQ6KbYD^z(aKtMZd(Bc*k9p!JeXW@}vCEJjGAkpeg&CjMZW;9t z*iHJhXZ!#F6JSXv;Ic7b%aR%RKNAYM{3>5_jku4#mr*J{Gns#NWAj$vHwRAtNgJkK z87+82ZMbY!qxap?gXbVhWT{&}estR+7m!V*_DAeIv^@Hug=GfZ6G5EO?ZxXQ^psmm z64AN&%z(x@|EcM$jRQ*bhk3PO2000C_wbah@aHZJF?d9cUkCF9pP9*PR@%99N>V;$a+?=kRYwUOQ^*&xTZRJu&a8QCyNpmN z+tzKyn$eIVs2ruVh|C~Twh3m?8dde*yr0Cy4U9ja4n1d;Y^iArtV(Z`u6G+(_^`9g zZfl7R2pv)fejmQ=B_ov6K4aO?f{{oMzF61q95s=IltvuX0>Eyw3&(~!sYcAoALSJN_& zy21T_;0p1oInUQ~YwTQBPNt8lj3gZfa`Q1on3!5C%%$%zExi5V6pOj1Q7NNW{r&Mr zX8k=IXD8^6cBS9{Vo(Qnescr1uyp*?m8es}uMw~D@d)&OuALo5bt)z8kKRcO)c)Qd zmFHD|dQf?6k_)iLWr;q|qKnV(Cmfobxz=*GJF!u9(3_(unsF$veH|zsMidXT$>a0f zY|NV0)BJ`PZ853FCr`nnqx7@%xu)a+4SNY%hm~6UgLPnP3ePpMJa9>eI04qzQ4H~m zGvWE+8I?;jc>UZ9(%f_4Yrm~2&Vw~D`Nn^-8EuVd>X86pOeZy{?Ks@~ z7JK5MoHS-e`^o-9$B*j!^b;IOhpxu!^8B#eZ+?8oG_lW1IIdAIAryWyF>!~Rx@G8# zgAPeb1XVrMmK-`WKElseAGc zlacu>Nr#n$JTtfK^d)P(Qr<>G?|V4>%+GL7AJLC|?&YGguQ9#{QmhsXo_jIw5GApVPa&IxUJz~!u8}%XC-eN!5>e?~md_f3e-!xF*Pz4%VS0UvzYP%LX zdqs~hj~61P4VcjaDhFI9zgk@UvHWk5uY}7(G^uA)lL)Eod+}3l&~be;2lRlQI0p&?M2}-rt@g?M)lH@d-t{9L85_+Loui|$o^C;#t4R^t%=Rk|z zt$WUig#_f{XyL9rms7bU2j-(?S6p(#Et!k*#BYZ*`bL{;4W+&mR+hwY`WM#zyFYEh z_c7Pm!K|v>O$s`HbN0c)Bns~3xhtHDsVP18~P~HK^;`lp1^gU!a z-`;A4seJHMZ%+R7R{dc*EsM4tcOtS<=+pmc<*nm`>P0xe2!!2r*en;r)-!vf?nqHS zv3HLUHh=GkD;p^yxF-A~|C|9HHQbQde0<;{vlqkY*(DK@1C3gt9(TQIqnSIc&q!_# zs6@_h7KcX^9$YNAw)94SW-2H%<$%Ys;~DFf=4 z%?+9VjJ;NU^!zKRf*LMb5G)oKC^1E3(zYV+@axZaxXm9YK$0_$7TfkOwf*RYeyqJ^ zN+()z`CPnD+(l#l>Dk*@UQ>{x54^bOt%8BDLVMceR)^znqYowt!kbKCJ_1$p1MmbOK`sPX9#vFZPu$)|inVXOL{ z6aO8*<27kY|DWDa{~_m%g!i z5nKn==px;@tu$t;XIFk1wQo;(GU|~7>^dowpoT9s7C7|ye91`#raOT;p3(6dwF+a9 zSp_BcIrkdVw!a(RqUaIT!t`P^;*PXp?+?rxmkIwTmSdvis?f+`d93F@r5a7&>f>n9 zzmJaF!=5F`rDgC>mu?^soCpxu2ykv&;x96)D5J%?9Gn@50bb1=c5&e*1mUvGU6;4`jl6I6ffpaUEu_E zph{H{P##mVrzN$~&v3}9nxakeL!f!653PngtO^s!r%b47x%}o29?;Eo8r9S9t9ft2 ziDyMKAUDVL&|ui#ZN}r!cJy_GQPjDqqYG)EDrImDJn?Ux@=Qj|1QMrUY1^u5HmHk{ zdK>#DCs#}(Pn((^Fe&V@r&Y@c(s@cQHbinfj|P$5=^>@i_U+!(SrLvDNcIBbw<8NX zg2ms1uJZkx%*-QODChPj6a6nr2S<}b-q6@B9;kBp*mpBgV*S_fTJtaPpk-;(H{dYVaPTf~&55!Rxa zR8CeUJiHeP()KDc!T=K>eT-&I)ZD)J8<8QNUPCPG|FICtGc*uFF{OHF^@rVFgFKRU zf|G`?2`p=<6eqcvo5q$^yR z`fBb|b0S*|Y|8rRhX*0u+?7H%#g1f6F?@FR)BrOW2$U!l?46m4a$@rml$MKJ|0>6G zZD>W!ZI7UX{%NId6E5n+G(ZT5xv6w|6<_!GK}Hn%Y(HLAu75CbE`Z1$+pDdg#&hG2LX#^ncCetag1B1jqDFd<{b}I2O~t^Z2uf@2PH} zPauyyk@9cNb&bI7H3bcUKfc1}Iczj;h25N8ET^l>Q#LLj*7fjZQM9=}g?kRGPuxbUTM6A|XSDgJM= zOC2m;v+$=IZ@5sj)nK|v_e-g|B}KQUk{PiWO>L)Es{QJNu9>j%sNN-66E@FmpO>o9 zO0qy~EpYjU+>eUQsufxJ&=!#3WUaJ2lHQHDDF*?rJA&JvsI~>8ai4jpFW2$+;GWaA zmCz6Z^DvdmKBzp4{-&gPp;Nq1Ige_OG|nUMCfhUl@jKerSklwJ_y9jAIMUCG6o{PO zdZ#5xrmafdXfi~`PgKWzv8#iL+7ECKP;;Mx+l~1yx|$I)N|8J>?>i+k8XmgE$l-C! z|3aToI+oDnSmH(bCMT&_*^0yclE~F{S+_R_OBJ`ddHR~|Y%0Ygvkc^8w) z`QhkCthG(WGK#uKq&=Fn6>KMZ+A+DD{x95Y!iR7zDU#-EAFMao`7-IvKNHY{@~lQz zFXldW7l_eG6_^YN6BgeBJGKpk^L9^oQ^eQyDpDEIzqNG8!uh=&_>$|$mS`)87tO;c zi_Zmu!oL6S0|{Rjy6rO(w63=KYH3k6!*fk5lpALcyqJ@}HWLX=nkWSGsPWYcb=I~) zm#G&;V7KtdG%oKhWY^?ppX8m*y24F~39$9%Og2lN0IK#$@8(6D1`$j$izV~i!VHkz z1}ZIk_F>*0R{9mxmTYmE)R%7h?WGqjk%1Zx-P7F@)#RZ#pZwsvZPNm1MnPf$E!- zDI;4CdB9#~9RBi#YHn^-y3vd!Qm`2yC+nh*R?J3s>GeP>_a$^7W1UB4a>Dfwz33p# z3)_0E=f!hEWDrwZ;gI2`G}m-4(VZ1%{CD3g6C!q1_H;0|DrSVS>g@Lwa1=(a0|Wnd z7@I77n#_qmz*yoNZg8St?}$?)%U4%0#-wnm&C?G#HVm7@ocA_6Sp&STwpl9Z;mb9o z{9ur!U6gTgt~@EwPm@{EUie(=e_^ga>j7ZjuhEFIr=Ax?=~Xms{J3}!F@U{E^>A>r zfAaN^SbHA|dNCV8^WMT5{O9h>A?m06G1SqRl$=Ll*!&=n>d{Z8AuxV z*}9It#8*i^LqZp`?AR|HC^{$PG|B3(D`DKeM!ea1j3_y=5HkXa+lAfa3UhgPba#CR z9iOwnS zk;-ISP@r*;mG#qT@NqcjB6x;?6d^4i4UCv=2LE;b?Z8X7AHM}BY0Ov3z{7v2GAtcZ zJ(By#t?y=hb6X>@71zGG7J4YUPx@q-BP$O%bHL+}2_VT28{fyP3Y_C9?D6`w_AMd? zE5PBpSZRWG$xZa{Qry&plkvn~?;+~;)0lL}ht@iq{WUvne5~M>{tbkY4og%jaTBHX zYV7na@yq|71}l77X60058>eGf#i#C)sXs4b;L!bq?O<*EUz~z}ti@VgfDa zl(1&=k&M&Rjlt{Y#DzA9Im$%b>E9@i>9;sGpYpEH=#QQ$BY#UtX?Yd{zYRn6K#lcd zk)w_Sn=+rY;QOAVW*D9il^KyLqW(2DfS-_LAWT_c#=7Y(Cvz-wn*XjqzjoJyHQTrBPEDrf{uYlr9&zRr{DNK@JDr0$ z{WzWpK3DX2kafXLvPIdAj>gPRDzi9=97|?=crNI#3-23oE*)W)ceuP$I`S-c!tF8^ zk=w@_j=X|?(zYz-b$8(>AKBL2_$Mk*-{AbCH(V!^0Y{71lJKw#j$ymUm{jkHI_Lb= zOBp%1dBFrVR-gVF+^Rh?08E6Y^oc;wJO?Xp5d4LC9DQNX^lhWsvVkn>T)bcV7bi=w zgh_K))7O0EQzn?B@;(Mp_;chv)G|@^fX>NQy()daHKTrSYqm-)%Ig5TgIh!#9$x_9x zP&i(V95$D@Uccc<`rt}fU7oJ5m3%nART*UT#x=cFRYz3Z0c2+ZO zWztD9`x(Xvrl`ff$>kU~A*^JU80Yg%IsDV3$cFfAILn00X>-1dewSAZO9oEbaTOph zUE5TUMpc&Z_MUn-bm{T-&7W?VQ8~$90OB3r))nKj!#n;NT)dy3X?*Sc(v0Cskn(-aeH|m}Ym6&)>VWWCB{N9UbGFo$i%Gp1+aIn>y zwXjLqIo_t}=uuR-FFRB!S(j=FDKK>H8UKrLwdpJ*!ScnnGf#$MG9B3f9XkdbJs`hQ zIh#s;{F5=w*$TaPEUtGm*xo6SUg4r8fwP}rcKj0y@h#ncHQnTe6^Xw>zuFi=49{|H zowJ*^A3uY?A-KCmVX?`0aBWEGJikRe$F09MrC%i`cFZR03KZH+oc5^;y&ztom|e(iU7cj;gW zoflHj-Phv%?XUtBpr@N9$hTh#bI-TXnXTZXtIXlZYX;-QFGm?6ig9I}4poxpmUw^2 zwa30bixUv5YPOq>))$**VmPd-m*QiW=o;!`ioW#e<=?o|44C)6@z=Nw8u?n=Y?*)U zV|{r)3|}5@d7ZRx;_q4pxjrR=>^V?zO*+(P`E+eb`gQx#ybMF_E0jL7Pqq{*$IeaH z(jCOvM9!p%C$Uf1fy)vRaN2e-aqPR~2hQ$FGG3iL|XR5vI5KWc@@?TIi{_Iv_ckwuJTE+utmbUUi=HK;pj?2;z>kIeL?|_1K58_mHcGmY=vjP1*$nF7OHt zgo7V5b%oo{et$fFDDSONQ_hYvwIWC`X$cMIaKTu~WlTjmpcsFHKIf4L5}&;PuKcE$ zHs2S{CX$B!I%@`({zvCTpSHp#KwUYf#Ft-#d2X^KJ5IEBc`m9YZ<${8X_hTCAm5Oi zL(HcUOOUTB{bSCj?B(0hJ<%mq{%mEvym4%=s2nJV`&mLA<;<5lSQi7P-ct4wlD5up zxd_~^+*s*r)z#D6Ik%{nh%uPgGAFJJ$8;-@FC2tmDDZ!dQr5j*YszpwmWfLYP-o#X z!`!jY6_9}rbMxelhUC@ez5e6e=DH+)Re*oDRB0u zfI!d4O6fK8cg$Cx7hcoJ+d#P57G|Hx_MlUl7tAb$zu4>^2GTXvP=}U3BGyl|Txk~S z9~;|-*FGl51hR*nL(?5`TtSL6Kyw>(C*tcY=(8Gm z%<8x6n90Iohx+^$V@7^pE}onX_F;xYwoJaMrR4rc{nPS@D zQkdz(2uCOH+oYhURJ?F*M#i5c@l-Z3?9BS}qk@|Hj`&KF=k?-Qkf`6kbTT$QEumjw zRn}={CrzxY>+?+!J1ONG^3TE}^Jat2cSc2U?nLE`O{#ySk9z4zzq{@u^C8&B)M`*K z>bX)$9c=2uy-EWMODlW88M^~cnz2G>832WzP;uy=*2!GAGUq>cIG8_$?&J+C? zf}Y|M#@pCrhvu=L=?i#*_+iRa^Lubjcm`4}jY+v7;H~%%_)*JsYdL;PE{CzImq+gn zz{v((%;z|zT(du-ny;dQW|>XfIJ)Jy-MHQjJ~^4Fo){)d$Na~usuZsJ@~=EY3ueZ} zA8Xe6hIzL+67vc9N65(f!h9bNM8-L+sBY|^SPy*@Hr7FzkHL>(X;vR;sUzJW_1}@^ z4QUpjECnzdPy1xw{QbUskV&IRd!urcrbTF5b`MZZq~GUGx+nJe!98~uc;VJ3%ysT3Bb1iYG8arg zDz<7E5FfW?LMA=PW_r~zFBzgVyl0*>$&%nuWJIgX;&H!B5_3g1d82i-Uk z>^#fF=$4dU8^5!yW!O%w&C{0u3eNY@wWcud>so40b>-|5Vk(I@{HB?^K=f*8oSKim z9LJ~+b`&d;cAo#=xy_B+X4GO4LgljZNfV}GUffdL)`mmu!KQrJf%xonWWvFwc^w{W zINM9@E>_Zswx3;Hy()op++OvFExt!zpfq9|;6S|mMST?7RGDG?Y@BCzkbPWw%r;dp zTSFk#-W#h(I|$_|2*fEI zJ?54i&q_ocGyVFw{X|H09l*}3{Bhcj@qt*k!<)qQ8$C8rJ<=FCIWe6f1Hec+pZNPn zkwR$m?%l$x>Ez$dQTu`&tm&sr7|DT1N5yoK1fw6-D8T6QA zrp3oppWf<$(vaV`I@4;(eW3fd5Ez<4F%xYsAM8Ig^BpqxJA#FyiLZSlPbzhV9QsX#CoDXZ5v+# zKkaMJ9e7BUxjsl{s@m@kyTbVY10#d^V}I!}_rh}RfZiYrMqK!5*en|oib~3lX~PZF zZSB{oZf$}P!_%Eg{}*6lN6V{U>REOb?q*k)y&NnIr%Z~115OQFAAd4Fy!SlfHP_I* z?tXKeh(xLBMCl}Xnz^b`3G+oA;sl)WuCPG`zJl&(vax$5wut)*&;|BPduJaLx=LX-y zFMbA-tG$s!0gupvbjc;mfPmtJ(ouUa-kZ8jtZV0qGkEoPhmZT$-RhJ7rs=-%`@rF; ziAK19R8nyx&4D%PV3U=mUSN))l61*SYRDeK!}77<*c}p@hsWl@-Q|&{A5F?((Jy4v zQ^RA*l~Obdz8osbY-Zc=c)nEOf8H$b>i+ecOu(ew?E*)y;7Dv{q%C*(A2XG|l_@Y$ zRU-;rjgY_95a;r?{jM_1QyOPPCP~X5HRY1+j3kW!$;06iLN4rs!5s?CzrAkB@8*^F zQ7ik?jx;(Xvh(>Ba`*;KjPxrRo5~$Dq}Ht}$CUe%-oM5%*uhMmdN3#ScVB*vrXd|N#MoL80Kv2uvH5ys>zyMQ^vuho6eiS($X&^}rw91()`B7-@V7*q%PJ#n|?H|H`8FTTFm!{Q4y%}k*F3X57TI=~2 z0Wb_bD^J^C)=rZL@RHa4kduUmE^HG8tG)&&#={=kET7{uJ^@*kT6K_G(dEA*FP(8YFjnKMS+ z88;2%Q-m@YZVJMRz6&x{W`ToOfVc0XaM=>kRvMhJahCgVX%80U>sv7%(^mHN$4ptl z?rT)}^4Wa3@|hYY+#>a>B4om($-0dt9G-8Y6X0bZ%@W6(ig@qIcA=YOHO()41fC^a zGjD8<3&SIQ^EqatsT7$q+5-7=*?F%7Fki|xEXUFeFayD`mffj~pXXV1j~se{d2#ZRSh#{9r4Vkoz+J#Wc3g6AHfN)L79}cj~nwAECPK)qm%sv^RCv zw&}Gk*Q_ucCeI6uJ5n7HKroOy_cR~hiH2x$3(6)K3z8Qqx6(i|d&QXiy4cgJ4HMLS zJ-zn(oStTC^eK(uJxp(XV8i;d|C}jWzN?x~vU8_s%Wp4+CN0Ds5M=`LX}Td> z%;LNkZGPng3u)tx(HoQKe6=p&M-M2ioSRvLE^J+fI$j%;Uf(vf&@kXet-mqM(O9Gt z_?ZU<$A`aizh#vj6V0*uve?;K3Z+O9EGMJ$OrNm&C-se_Iy8wmW$Yb$vd6X-&adBY zdAXA8b&kjBh0?cCuPMdsi`)22_FFGwb=$k+M~q9M10#yvLmHPVC=qG;M38!uicKh|c(M^WiSB{wk!tOX$`EE4Gjh&u2yE{3eYxH{d98WQ@c= zu$p{g&I)=KSf3<`yFD_={%%z_*ObQ1|3DK4`~{p~vl6tPgT&dOr+b2gr;VBCI`89W z$Ixc_cZ$D8xUDH(dyz0z!(u)zfGN2Q{=`I-XB&$Ecx6Gk;d}S(lsc>$I`iBwW?Mun z!A++aPMQL!%EL$kD9YN9w2c{&=TMm1OcfGRtUUsYs0~e==F?2l@bM2wlh(>X$G0Yw zg}pBt#A`(BV||8WrIIuj^4I(aa>Rj4apa;uP!T`$kP9r|4>T%h0PaK!5U{kXy;1s^ zawYGzUp?4~$B_|8oV{B?V-|GROPxLmVppPNt+9C|PvoiDbWWt{{-zkxmyz~EK7nDj zx0j7#Xe>OIzkxuK9>_RN%24mdEQ1NBz@}#utnVMVO&L{JDB{q%j9Tfx^i|R9DltFo zB{Osb|GS%*t0MMaQbWp7vbZIqxVN8quNlqHNo{ks5+pHGsr6VK?OEL10;xO5#H}56 zmC2j=d3uT@=s-IxRI3ayPmu5X1Z*D~_oF+3z3;aDpH9C@)rHN&oHnC!-h-EpO;k7_``K1hYY$7YNO%6=l9q}_#;z{IjI;$eZw?}0EF8V2+p(78NkJlPwGX)za6{s8Y;%M9fEvtA@M)R%xQSM!JD&7SS7mc;{E1vIp7l;S0C(FYdt!iT5OvT$!#fKrOR!PSk}5NY*KluD9M@nX zfg@SqcXuFDt?lL_awAd+^|&0NEtXWgC7@nMS|?I>adXSYr#-sw9v49{ zj#6PY2YMEvnW3x

?Px()hpiMtZw(Rs?N_ry^2?aQafXyuV8pHHgMD*!@z#=At%E_>1J$y$fRWVeo=s1%^*9Wnw#9 z2)mL;M?7IA-FtDnuVoj_8HF<)uemr(UcS85crwHR#yg zI);as5~Efhr;3{uSb)|4au6AED zb4ud|)tx5GTv@g>6L{gTN;0Ui&gq3PyVUrX(M(G zcEdq$1`#dyMLa#=XeD-{jxg~RK@(iSpBB@mFG@PEDq~lgnVeJsLAZB6^kpKo;0?Ui z!TCCk_B-+?jWhf}$ajF17%AKV zjh5uxG7WJqgnoWil>+(d;ej>+s+mPA9=WHqOY?(bkyVkIL`zkZjegv4D-D6tbh zKx@-!r6Nz-U+5qrg4pbYAf?g_I4|q zPry#|7g$rn-vi2Z{rb2OChDC~&_gdG7&? z(;%CytGcH|Qo+15I~Sye5ZacXsC(c&96B^m;FKk za7;3w^CbN%mKjdY<3;|S9G((`U)~+jDp5AS~g7QaZ}@o~D3=Yl#oM4PEwtuEnYzlR=SQkaT?kn28MfGrrVRz*!+ur-A>Es`GxN^8f$; zb&hj5B#y0&V?~i@S>YTbE77o0Mp2ZVjI48rC|OA<;}B&fBP;71l958$^H^m&h=a4P z?|FZ}pU?aC`u+pg56|m4?~lj*cJHlyjxraF>u~gd)M?%qwBFP2A^r?)&ON#@xF9?+ zXrNorG<*BZwS~v492wY&#}$<*Q|za|@%P<3CU3e#JDEm!)kIWmhdu{us{8uuJk@@w zNQzPEy9`jh2N2pGD%auSpoZfAnS!7AXtdXLld_;WeP1+{k@s7T4c90TG*Yt!l;-=m z)OLCAOeQ#FD2a!wzS{ZP5$JeGqOggHE0=CDN1RT!n$OzfrC?=u%~#8S#d(k)2Dygp zJdabgxzvVZS!?{>V32@)jr3^sD`wV681NIat@neuKmlZG7?xtGi!Az?Mrq8;BB|81 zhc?fNt`kqFce7h5p4N@Y_<{_YFqy%b>QPZaXRw61ENCu;hncE#} zJNw+Yqp%NI)Bf?jm6YABxrk@~m7+`<;hC!<5(u;gG=0MVI_puKl5zVGd@tVx2p`|& zl>oBIMsv*)sm;tjvV*in+mTsbPA`FkZ6(`}hlM*YKt>c>qvMqL%?qW&49EmN&}7Rp zce%IwT?5;|mQSzWmd_eoSB51^7E2_}lh6qkaH(eDN^MMaeO{QnM?f+;=c#p$aO;&P zHCHM&(lN&kk{D-7_4gLKlqi!mWSekO^AV=;EsO}PM|~FXDf^;1i`dv5Ek^LCWdYUS zP9AYi4TDVSUkR3qO2snk_uQU!XpB@D%Jo9a$?b%^4E$S{`y@rM4o!i!9_t-tZgw8T z(Eg&N?(k+)4`)rs*Fh!2Dr%)c-lK8`HBO&k)dcC2iz@GT)mu@+kTjw%sIW8E-l4wRv*h^PtHgmy)bc+SfOeC=ubP?wt+a-kP<~sQMo6|E_X3SsPlO z7|t|2L&(RY^ySh;a??&z{=LIb&=}qYe&IqHpxQZj;6vEj;aB3}egHD??T>JVfPiP< zAUSofiG+gm1ycThY4wpv7uzM-O#m z-*X{mXTPdtsj=mu4yUwcso3`dPK$BwakZuUG8$*M;A=`pjhG73w6D#@zZ5B3W#}S! zD?y8)uWuqHk&yN!l4rSn;WyCeN+aCW7$FEZB_KD7B-ni9VRY|#@V7WC#NFUKKW9F6 zL#TRA$F@zueNpgWM$Y9G)m9(YxurF_$8L2**f^Su zV6q+zlAYi+PORMlO};Hc%Qp{s>Ej61eYCZPm%xBlt?u%S|64~la_?g!W=#I|Zz#1G zx%{rH3;iidN!uH6b>h#W-r2ZCLX<^q_e1TUy3M24&%-AoEO}?GQ9BosLAFcUl zZ#-`mqpKpYsNAKN2+8Hzhkf`_TI>U6z};Io$?Nu(1b%wShih_ad=cH&F}TUiid~W- zbEQ-O6Q$$zeW51Bp&*GNzKfa%|NDNH%kFS#V+4p62gIr`G151$fBvn`feW4w&&-VN zNQwTlIiY=I)HU*NG{Y+X;PgCWu$?*@jMk3XjEJ99zdE6~RFS$H!A;+&mBFB& zR~|=NwB0E!6@?>UK<0eT@U<6o%l^FBdg4*2Cp$=^{W$ld8>8gUmYS) zm~r3wM5s3|BB57myHdMtXrrRv@sVvjP{vxt5fvl-+KyqLUge?o8`_no9!#Hz)`H3+(&7h+>ZG!iz=*A{-xEUa=B3msJ@7?v~mN=OeLTL zPqb3^XWPcFA8ZU1@*M?!q)QnHt~RJgMP6U)NmOh19K5&q@Ta1} z0k|Y$8MzXw4JduzID4vtvL&weu23e_#blT>eq*cpGfXMjJbpIvy@JN5AJ zP`6W1lFqAT^t0{p8k;5Z5dF3`3x+TpvlpbN1m+!Ze!zBIdZM=k)N1c%W4@8fh2dv| zTg~R%A76jH3HjGha=9PF-cOZ04_L&-8nqYO*k0&FURA9I2W9LSEuxuXmQ`LmKFL-MY_^XpG} zbSmWgmG8Z_fd`KNIb6pzgAX#qTGEfmI%m_Ofo{3QTSV_4sZdYXoDq$un&_wFTIETC z&)(u}^BH#Ci9|gl&hB%~bW9z4+_?I;mY&PyBAn}0@)LsxBwg>T7feR;G*X1{ny=Rh z?30=v8>Oosk3?^Mjg1X|i=n&xj^N&E2=^3OUC3h|pG4~hCT%3m6Vy0}DLYusQJ{Mo zIdU6PcL{leO}UFuK<$^%UzQv^V%P_@*UDLb!3g&ic3&)$@$(X6yZ5DR=UOe?OjO< zR#K&oKW729+74%--4;|&YzW4I5gD)d)%YX!Rd0&X)QXm+E1pD`E;{M(hfiQd^OZ9Oohv_*#;GB5M7BYpQG?fzZ!!^=KdXwt3jCJjy2NF4M?9XUtR!LuE zBcLI7$hpIB7vdP3F2>USG#A;5g2*h%lrY}k9`llcG}^bIgX59gD-~m`KHOQ6PsX># zK&@n^1$~%}1Gl?ZyFqvt3rvZl+MswYWR2Ha7sH%hTdF|wISxzT>nqDZt989V%j7W! zRt2Wuo8QrkasQk)PLOq=Fl5*4dZ=L+dbB?7X9OyLN~!)2kSq)wd6ZVtK4hGD3d5`I z`qAEtbd_QqfZ6(1r-pJ)n+O-;G=xccb=$V!9>AuJqP299H}&4KSZk&Tcj-s|BX=M- z+l`nm*D;x{I9d@q6T&r8Fa&u*J!_&Gbp|bEb{b~iTfUx?f|V9JF08TXWGlZBzCCiP z%-7yFT||C6{yFWlErTWH%k29^VMN%%3~%~FzWeF71e?Qg{FMi1L$rk_fkzjn`;=9m zLQBsB9UU!a(kz%s(UHF2u^PMMUn*qZ55c3u*NNT1M99XC0PL_Orgt@IiB>z_V>!I^1C$Co2G0ftR+*8XhSv-4wz6w|C%4S=?n7VIC>&e?xk|NE|dBe8$2&;R$fU8(DLL^Zou??!}cACmmo z7!P?hfyEfNiS3#G^~3JQi(d}0Rq!_LRak<~1Z$>8;Vij?>PIS}7^+*-Ya|rGsd1+j z(PdjQjDGePA#o6_{_WtIwdb=^M{x4-2$j&SiCL)fi>hp@F~l~VkQskJ6__`!=v_Xf zrzet2*`b^O@{P~_W4vSejNY8DgF|YJpM4eXyB~1!K4~HJ3x?Tc5A1E~+sO|sgNCId zjkg!~yJhWfIL5iURhFe;+rC|ZxJKgC#FXq(E*%Gfx^IFIX-2S2mLxGUJU*6@pbyjo zzQ2V5tG8J8*V=t!ke+3L=%0B43Bx^9fEH#DMn&fR{2<9{+p$E<(Lp1{Hy%)Bj!8LQ z&B%Mw6KeAP)fW%i-GCvlII=&VQl@8>_xd&PF`F*+^=3T|4-Zq}+D>^q7c#;F)k9ex z8fQ0B(34}_Mnb-Mv((v;3?T6k+eHLol+Bksvi=IR73Y{oj4UKcskSyMNlz_I{cd;a-{iQdAbPaXOP3{9!$4rsX`R0@dL~q19x{rNLew zWp3A~xX1Lt_B|FRd{Lp=nz{6cOf(Sw*F<)L>tH?{t~e?!ST0gtv}~vKhU#xX3vh=Z zSI~znWe4snAKI@~Kg+`Wi!2)ab?uYNSU8U$KD9FpN$z^=(R7J&5#o7pAMulhp12Y#U31Ks10@}2XjBNaKF9K*+OAL6a_ z8TVW@q->cLm2UdFSv(enlai>ArFh$s3nShgW(Sr%EP%49UOmB)QHGBMlr|JayT%G` z`|cG&EX7@+RF)vIPS{%%o`HmyzL?w1*Z{i39!+F zX(EYtm^$4AJj6HDoqMUl0cAxOn?aTAt6EWb;ggk2dy@)2aaZ>wJ zMsS$V541cbVpUb#SLKA~__UE|7MJ5FIjNhNI@L>718<^V>`y+p9H3lkBEvqyYjE)& z%{?JcfbR%H?QPFB&109JTTvGS5*R;Oj(`kNsguEly?=hGS$P~uZn(RB>z&`Ja2L;c z!ZNZ+QAJt?H_-X+F#1}Iqw#hH0yvW*iMP%s3KSohHj{H@O2Lx5&=nfKmw#C*C8mLg z<8%XdAp@I6U^_VJMlV84w|Ka}jFqVbzP*y-egUe?;7*<4>%5~d7F6Kmn?fF@t&rgx z$Nbj2m@Xv%nf!!)><@cY7%o}N_pk$CdaOUPz8f4chU7J%7n=?K=QpO9d_l#tt{t*muLxMno1iYK9> zw_}E%%8_cDDhajw{Ag4}3T-pf)xBkt4PCB1M5ySC%$c^l~O?r2>&Y!IU zMBfl}ssJ4OWN7uv1Ee29q^m#XL3&}Jn6pRa$1zQ*s7R|XUI|7_FFt+}B|saW3_dXl z+1Hs?se|+>fwnNMR4um5J+ddLE=TfSzh1@)s*cm)F`Hf#kyte&j~@7#g&njfNC-pw8o6Lu$8hJtsf8JSOL0P8tfKY zyERPb-?0ozRy1?wWWDsh%PsK4XKefsvu?^ekyP?0wA_(<%HtR#yPmLml^TvlG9Lki z0C$nNKxWG?k_5tWl$X@6TI{Kf4RrvV9 zR;*h=7Q*)0SjUGgO6XD)+q(r+#7`0tJp^n zHddiCgATzT1;n2SHE>6@{NnW!d)z@q!}y~Q<&VJ716Y7DXTS*3d5%4Fw|?mb|29F0 z_a7=(oBBb8{lQA0=Ashw#=eu^15=d)E%p3WugAo{S;wDg?am=kiW7padNd4Qf50uv zmH8$m?bbUq?u-HI9YOMv*{U=1hK%$|Ox0B4n>yo{x<`-f6{l&tT$}qrXD^(Cr)|f3 z;3lDd_QWDf-sCykbM5_bSA77^2LzzG*y<(PVQL(Z$BfOB#vjhbzJIXQyEJH#(Kg*` zM%!)C{mkv7KhtO&GA^H9x>aHr(e(PT>e?r`eGFQQC(sKbZM9MJE9smuagn=@6Y(q$ z9yAL~)j__hFEY#?kJ|toYfuM%vy(!D%r^k{LQPtl-h!nEiy6 zM^!BIpWVs|_U;4HWh!{tB*gkUPLA_Y1>&`O3=nLFUtEeZC#S^%_rOBqX+wb08gw&1GV3|3!VuvGM<9#cJHX%OXz!$!bdxV$9`Cv zFwXBg=_4G6`b2Cp>4}x32gq%y=SEmieM}-2XKX7XL&}{^cFJ^%%aT@7DeTL~7=kRU z;Fyp6JBnrQJlcjaj*^@J^?o@uOY!iuktQ%yQHuXR0(BS%f(K{9lwI4*AqHIKa~{8y zJaUHzhlyKPsYfkUn${!o3M4CW$~SQZN0UGqyNp140r(SoqJA5@>R@!Q9ho&{JX{_@h&gKr#A6A&9iqu1%g5ABZ!yE$H1 ze!KScywIUS%5OgN))!nab$g%PDG|23dS3qKN>xkMq0dgdP{u7@@Ke&7JhaM706_A_ zMU3zy@eVT2tpT)UY|9BQ@imk!RR`%ycw8}rO$9~OcBPSDdc*d@$E+#%l0DQIW9g16 zV`L7+1|EGpd+gzqTD=%`SaFS}OS2g8Vf7s>0lQadya=qQvPpGfI5TsMOk-KmM4+7! zMLO?DseK#P|KMezWuOGVn0xJ> zc3<+xrR#CdTfI;A`Q0p1pM&g&5glBur_T zfh4y5kW=7L8&N}Fwb2RHTl>|FATE1hTS4HY$$8+@-v@levx1fj1v#c;Y9VeI_|{Z< z1}AFwIPw-&b*H6H(+5&gapJ=H}$ z^O&+0N>8HXg=3v22^9=-O~*G-j|Wq-{YsTDXWJZ@dYorQ2>+>34-uy^LOaHeqQR4r zl|WKgGi{jn3v*d{f47+FC|dW5iAqYX4iisc(-wsC7{k14dm@|SrE2)vY#yMW7k8}PAiqH{O=quPp2NQJqw(q3%!&~kM)xg#J`YP9ZL7G=n|Rlp}z za_*^`;=b{*?vx|`woH_?MLTGdA=>w$ae$LBLJtVb8QHdsoHte=J{+czU=UcQwFy#$ zXdaU7wc_{Ci~AbjqDH*4q9_xYy`T&kWaGJffabn{*eU#VT585!t{E|!Otuyj_(&gq zn<{j>G5h(wF|}(h3Nz;oqh77;(~23F(@8&r2~Al9+Z`VoBdONKgP6?bTf2pN1iO99 zB_mtahUt@}m(JCPl;_xE>aMZ$lnuvfuu$2#kj?=q<%Af3;N@zt1|)rry535P+uPi9 zi-~&G22=Pu=b~4hGi~oqiNGFrwOvJ4@h6!fTEYj03T2Js+^crx5~oS#?3Zt$3|nuC zjn8>>at8DLQw3nI;&#$FXnsNLix+i14T;&(BD*D|G$y?+u;HiJ$oF3n7Rk^Nz*aL)-{pwE}LevL#v z0jJoq=Pn5-K| zPIu}cGa*0ue9PA!0v6NN0?yxIBPce6E7-$KfKJ~9y|9HK8PRM!f_9^oaYSMR9=Ze}UN62t& zRfxM2;alVLgHKtuf)C_cQ<7tKecY45z1#LUi*J0J^av=2-jv-_;jnow7Ig#ngOAe~geW1tEd6#N0KoP9n#a zjz1?X0n}av5)=1#)kHzR1(>@yT8)8f03t#BDV*f1*oG0Xe_`@b)sEr70hwkq2%+cXBU2t*!Fc)df`rLw-0hsyXH3Ri}_4K~& zFO_)~FIt~H0nBTQmxJI7eaWq{rmXjDY)@@Guqt?#rcSRk@!Yi;St0nOO3p`jn zt0%{NDVHe8jkt^~e!#iHCKBFP5EExIo%FAHr@J{q zED5BvRA|iu?z%Ym*o7ZhZXJW0yEWook2qq5WG|j)gGV+#8*iO_Ek@CNl;hv(hu}$# z2oqw@bglBOurZx4ihX&qyjUtH5X%FfvjJXEphd#jT_0NiaM>N_-WX7T1vluW3*x+P zVGsxMr8Sa0#rErZv_464Jq;J;pn0WuLuqbfKblrnykmFMY`Zd!I?u3i%##SgoI<#i z?Tq-G)#xbxOn8Shu6C9v3W$mWxm%>EFIcHSAuwZ&xlc`6KTT_@mk41lIny+Mp-w|7 z0zi})(Ug8Mlz8wbS|h@_pTvhHf8iM61m<>jWtzZ??p4^u$2koAv&grNQ}}$FW zx{D3=Nf4eJ&LS^uK7`zrjvj9p;Ne@1hupQDBq+5-=3o$enD9Ld)$wJ zQV=+B={&&YYH%LV;5&I&st0Zt;wv?_M-*$tR+>VLm>kkL>x8@N%EV~kjq2)kBciTr zZYK_4@KcUGV}AD27H&(eA=#{@kFuAa(`lU>_$ATUfD3!+x+W{GT+=77V~2x042_Jv z@Xf{ANZU&OFBSS6RIL%TTG=V{yU})3W8x579SRgNrq8VB?Y3e`Xi0|1IONumFcKMi z4i2~*Gt>HbH+TKSoe!1?dF{{romtda!;>{pYqqD8_t(2RDB~O8813+SyWfp#xEG!Z zOQX9?us3Y?$AeoJ+I04$IIrA)KAP3wwxD*;M)}F}vC=kRTNmIe z67{@iLY||;M>w9NSq)`t8k|71&II|)051!1VX(kO3`s0Bbm{^hTga*2l(Gk)kr*i? zD+nmE7n462Iw>N1Vx*I>?$z#4Ejqq(|H#P+_DfcP^K8X%#iRNZcBJCDlg~R!foyj{ zaXZIzQY8HJWKW+zPdq0i%kI)eYOD~_Ghgb1$^Edh*MJ%2dZ)7h)K!8()jpQv&9;d$ zghZ>|%Y6#5fE9Mc8n&mFhRlSP;yqJtgx~1kf0{oVgL9M%>Ve+l6)EH3c@krC@xFUI zr1%zKmY$E?|78y|Nm{_P-e1-)l*aYyGn>akGfT4?zbF(uL+`qRC4Xg83O@6K?)?R) zMkxz_Etr;ukir$l_z=49BhPBHna&T?bexXWV9%8L>Ca_@;8y;uWlz9WQ;I?YTg6V$#64-&%0=Ik%{J_Zb4R^g?}Noi`LPJEwny`RS zB{f1r0Gf@Yf2NYh#U~yzZf@TWQroFh|BL=nYxVY^!^9i?EuJ;N=?+I`4EdTXvwy{~ zfB0S-A>zKh2UY|+fRwfU`LeV5J$o);$Uzfcs3`PF0V;R4 zbw0G~UBG1A3(1@m(bGlhkLpGHG7!!ugAThE3>u4xn4B^s&ayuU)AHkJ^-g2ncyY;= zpXscJE7>oEL@4(qb%ro$Fd$p?lJP<6Q}9+a_7H+l53paJzJb(;1H8YC9!cJ)a+sE4 z=jH*FMhcARdY{iN5%ut5m(-Q$sejn*jBz7yIgJk%S_)1 z6Q+i2g>GK~HR%LaoX7GFbb>b0)XRIJM~*k^*_YQ+sv3|?QOw`!%V*qOQAU3pIk9Ku z9^5Cxa6MpnhyE~M&U0!A%c&KhjcPHWhh9Oao%q=DI*U+NwC^H0x%+IpcZpg03tbu- zOMGndNJ=#x@^Oq%0^l0zA=?@Omz|BdA^)9vd(gDog2wb}RAb=N3nwq%Urn>Ix=>ex zxFnkx?j5RpMak`C^HC?bQ1sb&3mHiM;cHh{J>YMW_A<=)PhK+VL_fD;^Ov4I8TwhU z^nGna*u5pjH3ZsruZVB&YbIngl_5>{saNxQ_>Dasj#GFDN!U|K#i&+snCoK*1vSgO zQLNT8cKu3eposm5%+O0f^?bV<2f}~#JhuCpK_TIvUtaS6W_FS8&P=yBmF9RKH zX4r@R+qSKw8$kH?%<43yzqQBw=q?d_*^Ya zkKzp0&_#<8}3ErZB zvz?%?_H58cMmeKAuxxBa1E9*>%`d`IKf&F{g*x!7;CRDPo@PTsTT ziJoT~FCvm(ZG{B9>6VIWN`98{3cKw8E#l^K(vuEuJ9de4&?^U7rjYZ1q4;o8e$zE3 z=i`-#>y{>9*Wo{@6v%>La+$(Mc*w6)&aC*jezqI&n4kE!H6~W^XkI%xQ69B7z4y-UHKr`O8P zprxtnjqLtC!=YdCls9{%F~D30oj9roe1kEoZj+%ar_mPI-{^uwqsyv-buliO) z4XJ(nMX*j+#63U}(0>clJf<>}2^`4wD6_OaZekMnOiR~dSDweY(zPXO>`=MLJxY*- zW{z}lfR=;hNbEC?lem#=;!5^|ULj@}Kft>4aQq@r8IgOIui2&ooDE46K(MG=UkyZta26-7}HD!2QSlNvVSgDRKK}*C(p^B{IYj5YnfRv+`Jz!7DQQ6 zYPMF*76-muXcF|T_q}5%+7)rt8sTYW1Ukq(c#BSEmE+UnumQlcnuz8T7Qpggxc10? ztvr`_DId#`k%<lLY$x!aJJ|mn zmF7oX>)K8XdCOb&+5SRGYm zcbsNQn3@fYCi{yz=%?|OblpI0sFghN2v7rp2woTP{3F~vCf(7`P7veydh+(4U3Nk4p6>0pcNlfZCOIX zd#12PRMg)J>kZWD(b~U(A7p7ak_enUKOi|I7ca<&#C`$WzAaycyBKjdqU>MC9#+Wy zN=S-uc%bAfnMRj#FIzhX7mC^l>7qGMKu~||fYd9!3#XMwzSrjm`tk_{U%|mR zWUk1X|9R}gH&b|(lV(y|ucYQvJ~9%>!#5FWfBr#r7h8PtF?l6L9_{Gq)YXKI{ud}! zRR3%yqURt^!NaPnNdPG1f*7PreGBR3?Bn06WB2m%{hLRt=3Wry-^j1IH+-*Mw#Q+F z^rvV2A@(I6JNFR$u2k?!%WHngshGKDSAdnz=`wnk!eTvX+c9^Gim{G6c%$8baRQt!UBBYKE4%P;Kn>cwZu%+0MsDAq$Lc#sv#bsMn`29*puixwu=fl-NhCq&IiGDG2gtbJpOv9@kPKj_q#OnBE`o}Qvcm; zFw-iKYf|<>kV`-R+&JQYy&+NKId(GdqR1r?+&kbt5&ep4n!(ARe$ie6IILc10LW=b z3A}H+o>ByR@&$3bY^9JEu3|-TpwODH{tO@8)ggy=-HvVSuDx8DEa=)AWxwMljj4oR zVq@o>iL6)1I5Dljdr6GLM41goO()j3yKpiPdTu*z9sVV(MEV|$CqTrF>AKICquj1H z1o}dQElB6ICZY;@6(DS}>rt;spk`$f>G*EMVDr|Gw|>1Eg<73m)k}>641q1Q*VjMZ z;zMH<&F|#p_bqm)HC_+L z1IKC;YP?ivHECWK?vnVO#??Q(hG^^H^4}D_hMF@+i%D_VPiqZNnQv3s$LjQgct01T zwfLN+=*(+7G+#M<03&f?Guk((7*I2Za1W*QQl7`>+`F3DF^Md2ceA=_h8rSa+b2I(T;#d7bJ-36k ze^Exh%~kwfOEELMJ{FyS>A6p(+?1O%^U7wycM4V-JY|#IrTso~AoU4!k)Qb_>>YOV zC78+tJ$0xG9zTw##zUD@%wDJ%@oFqFmr6R#_67+ExELEpC5+9Po(yA;2&cR#2Sdjp z%^2Fs&@6LF6s?T}0~3RVXKmq-N`IEMJPFk%Zc=Q~B+O%?~5I zGB%2Mksy$7XvHsNZiQ23KV_7R7`#vFB%}*gUSq5bL^^iW=Ah^KXP_Zs|%129()S3mlH$} zLpPc(wSGxmxcfR_@T*i^Gxh>ycOeyt^QV@q&eC&DS=+_;@gSSI+sNW6xijHqsa~c?6yj!X||j6<c|=wLLPZNc0x1!aiSbH=A`FPpX* z-M8q`!+n!H4-jXFH?!Z4GOs@(9tEC7VoxuDGNV|jz1|_C1K0rg^uh}M!`l1)wX;sd ztZ};*J)n;-yeM(0q$2=t1)C1zF{z4ws5dW^I6cps{eTsG3z1UHaE+)`b3O!=&&R-l zx>AuMI>FItX6<*vlw-skhUml4GWh2T#yqumzvvHO=ZNP~OLa-u-EBjOUo)_^yfc=e zSBSpOnLj_#x;O$)z9wao{_=ZT#1ZDJw4v^&jSeS7grUB_o3j6Eg?%{mD#iseLQOjB zll-@%{Ds7>&b!7V#~ZdA{CAv8n#~UnRD`Y9CC$iMR$kPY4iDh8yMqxraG!T0PagJc z7U&TMuffWXLGtW2CXT4qat+)A`!_J21i{0VfNxGquRWl9WNbkMy+9*{PY0ckRQV|; zQJ6?QXMTP)8Y{JLauMdcLivq8xcx<89^YwAB3#|ae_*n`-rY?a0%ts&6==8lVIdn* z-@?yNXr*l^cy>$>oX!J0D|0D_w}ch71`IgD-0vaG#*aOAwQw}#MerHsM>^o)Q_<5`qSrO(<(__ zJ)iURCLyQnlCQH#9n2^7RA@n#1C0M931Ls^lZvT{eWA19YH;Be9s%n)#3~9s^w-Dn zG5=6F@|F$*CV!B@x0b+PL1dDEDb$d z&EEUj8l9FObGd*wH7zOF!Y{gKk4NWmYut0`Phvj@B;zCik8jS(EU;%&OZQG1YsL|M z%E0L%ybnX>|C@DI92g%C%<7juosGH&bv-aAdvZTddVCeK>MrS&M6v{MO)UU0*+HEc z7AhM);NW9hccaX=$zfWNrnHp}hbz+$h|GOMyZ^>M^6IYB*0?GqoysFirN6s;mD@g6 zpPx|s9JEO9>a1RS7ch+}?~2nHItFxE(^FYJ15emEDhb-sOlvC*4{1>{EtB3WR>c|2 z`cH3oaP#S#1wK3=jUkW^YR+IO&+OO8!$nsqSbhyRiC;))Avy(mdg;|m+?x$_6(DF^ zfnM3fnr(#dWXrFxA^=HxNaBnKHe!kseYO>iXA|AGWgQNrwNLesRgGi&D)K;Q8}B}> zxIO0(ki&zM^Vpg(;e2@<3Tz1C#(%%lVwvof&H*P#ROQFO|JADh^G>2CIlE`-CYO;n zPQGTo3Nqmr>N))-|F+$HjN{}x-Lq1IQhEX$bum(T$+4NY^KP520)-1whk%Kj$yHX_ z+rI~^6aIu7uLKX5+&?s!jI)z~j2M##UqY_u>AvjMp1(4q?iR@({-)Qf9*{8Ay|`ff zob14!u+4ko(J`cNHh-Tubp99fvX}VcuofCkyB#s}4SOGzU5dW;_wjQ{O*?Y#QZu;@ zct1}(+1?iq3~0%fH)Vtq@l8+M#dizPO;=}=jQOT7W#L1&drfo|$PGBO#8>rb=1uU; z$a{`6=Rhf=bhDv$;gBs78#+J4Cr@^aL*OeS@1q2>s;bn3<7JThRi1ZLLihZ|*UiT) zkF9kK8QGMV8mR?vY$AxFY@+}BoTU2zMQPXnwgeu%8yh}XF?Y9cgX^yGa%NoqQ^aj7 zv3WBvc5M?f&fr30nbEuGsToFr=l14b3G@`UmBHjmqH%a7om;0pa#H%r_;&KD*KG{p z>G>xW`J94(2GgxXk|*>Tx}5yH$Z6N@7aH)U7y2~EE5~B4{`|C-I!=D~LhGVbbvb%j z6RPancaf9m0%FCKHQ)$IdkBlibx|DS@r8ZR#ZwN)1N!R|4Vi?W?Vx5?tRClHAlLLw zVMsQQ%$|TQZfas$0H`>|c4oqZ73FOTPBDEdQ?h%Z7#|2R!pmf>Bl5-RCnztPJFBwM zEHV5u%z19Fe0MwOj}Bf0+k@9;0?$wS?d+BN;kQ%o(q!71`FCDEfAFW^m`6SZYx*PS zh4Z*%&E|r?+wMWr4eT+8kxwX}W9Q0GFH}sF11(Y0N-{nkXd!>|{D!ME)@Eluhu2%Elh+3%k5~(`#<%=D(Cp z9$sNi$)K^Cb1y6JYU|!ZN)LULwLG%nK}Wf9&42HTI&wS995Z4FJxO2@JC7|Fqpxs zV25yd>_x$H3KT^wNDFHiLNv>h$#3eC6uIR*^Y-@AAMTj!RXOS}`90SNfb=WXsM~B3Eh&hTJ6c!dnocm}I86J9RRNb&ks_$mdYtX>s7}0ac<(#AN zl$oQ*3l~Y9y5n*SE6?xiI11O3P`~{M1vEy=I;!T?#l+pv)(6HW8T<^Zarjeq0RAIZm&BPzcHBBb}!>K_%_fVZm)4`Og1>6U6A%R0r;4?{(l79L=WD6jHEv!S?O z&t+R*^J4>ld**j20*HMT%EMZ5KF7JxuMl5s>~5pJS$rJMc^;4Fa{<`?_nuAAMAS3z zN|ANsZ)!oP_4hoHL+2WOZ1$a;Nj4)x@R|k~thIi*kVxw=h+{G$Vmmqvc6T`@&<_Y+ zL3a;1U$5kr!34Da-E95adA0qBoBc1DHW$+arRIAoA~znuq?KQtEe&kGp_y6kphPC4 zmKa&*V|g{1!63%r!rhej5HmY2ANPEGtkiuS>tcr2k9Iy`^=#y0#b(sLu|EmaW=H0_ z3CekT47{1lLgE5awE6JeTb41AZgL>&HsGkoY)3~H9D+NsIN0%6v9J*<-i0YW~0 zm|A6A0Yz+?j-4U<)dI$apRJiitCd}Abc)Q<*Posj%@3!goY5?&tew8864OQC3Rta5 zQIX?SH;Cdqah&`Abam$8P;Y-6|IQ3%G_GWuLP;8A7_zoqBPCgiWVs|%y2>_W=Q1O? zbh}v#>BjWCx*}#Iq>LqQ4at%)_9YF4VXU*5`F?-X@1H!s^Zz-|c|OlM=X2h#^FHUq zAb}AO$DiHg?;1Uuxiyc^P=+Ie_5o!m3iBRsw)Yw6$?vXQasZ9LFyI|k&B+W2yA*Hk z_7LehVpTN5kI|-&@QVBbFS!MTMjK~n`eA^TLq-p5Wdprqz(W^}6gJUbA(#h8D#xi2 zuP%PQ(eOF0ev%c%T28K80i)g)k%W3A;j*zvIIXQ-LcpV`_NNNZ>V$LcY^#Z$XS{~iwj&c z47aE=R?T}Qa?u4F%AD<<%aD;@ zHtW++;-Q_A%mB&tD8vr5J^X?}*%!|rdtcL#KH&}yE59K;M&T9aDk>*Yx4~a== zm|AB^F)>5a>#X;Iq1R{4g(B|6G8cku_@cNs6GKXsU#fkx;|^4I$4!Kij#UO-(A5#* z+I`OBR^<<*S(`{d$aX6aAnsSki9bncjN%;CAZMScVHT3AEl9!0W`RsqJF-i(IR7M1s-_Jzv;IZ#4Qp0?)Z%BANN2S+f{6X|^LBXuUOFT8(GfD|wkl+FDftlxAR&s}kRav^NOaXsEyL>e~_J@nkX zC8ru%N`v`(!hfn?9l5t~whXxrJtm?0>BsYUOALf_B+^n7yiw!^o{@NZvZ&G(bXBx` z_{859JSE(Wy}VLn{a4w)MY-4)doAs|upMDDS8O=;tH58CB#k-GZ|-N(tPgoG@yOjW z&H8{Apm@td12K=1t}$sV`vddyLN|Nff0T~wL^xdlIAKgBE$C{F*=`M}Lvn!CI}C5M z+8S}A)9gkE8~f+6lMagV+MK0qU3_t}bfVQ@4AE`+wblW!lvcVvsD)l&eLJYI^K#%p zeXmE_*I}nG0(E#ay&N}&$NbhX{*{$-8^Sd-M$V9zeW`%p2Wy#LPF|Tow)_P`-GW~zrci=jvP{*`aWis_wK4W~^ zQB;@i`ck*)2x_>m^$oaWBz{dbeV(1i$`L)<8|uA4*dZ~aoaC9zXdP}}O^=CsmCGp# zK)kaQO|*`H!D~ri68kXXV{`)qsx;NL8IdL2< zrDwW8`D-?1tsx07)Y`K{hcs9brMGO~kbZ`7xT>a+}w&b|? z#MgC(DqXaJ7zdYsCqg_J4a&UYeZr#g#@@#+pn?uR&(MS_T+O$l`?$yW7+c&hN<_Zn z-ZDhmGT;05iO!*pTa^yhjl> zyDk3&!eWU}=tLK{29t(iWKq2NnPP%(3_Z~7sn^5^SSoVzEF!EGk_ysDgncSHh zwvuLC%t1i5a}>I4G0M9?ciPBb$z6r2*=eM8U3${4G012a`S#Hqye!gds>Kf!f0p8E z_IivO+ThLdqE#HTa@q}(cW$#?yjFouQ!dw%2VNo+%iZSo{F~}KlkinZI8zrjyZ+?l z-R8fs0yJb&v@yD8^1z6k1d8o%)g8F0z=w?e*p%(ZHd%>KRwr!b+u!VXt)kGc0(IF- zNnQHnirFR>3{aCudQZtJU^UHO2reL>7b|MtVTWiL8F*6hvHdUZa=gcF1c}*Ky53H@ zB}%UotK2^($yxi`DW1)(4i7FV#j9}Nsif|1UV9wGI})%QDAPqIEhF~)0G{8GKohWK z%8CzCCoz^k7R>+Q0yyf29pt+>_5rrUQM^6optl?peK(FI!fySb4dM#T2IMWcOWY<; eQttmd0jg#iRjS$Di9zophnHi~LO_@Sh=7McjL;YeEdUuLQ>;O%H3{U9>=<@b28n6~ zf(#He5RCo)FM}8sh=e=;-w;aYY()+F^Bo|WNXXa#N5V0_QM^zHAT7vOWuv0OCy|K~ zUP7T1LI5(=*SHiyRijU;w@3y>2DpgCkVGniC4e0njOiIs|1T5xnIVIeO8sZuC}TRG zBZY;?4qgldgd<3lltCnl#Jn&FJ)+PE8#pHHV$brzfATotv0^@h;R1)oq8$+i!y84V z0I6c`0`V(`J)gp0xIv<@a0DRH$?JooxhV6^e9wMez^-Iy+~Vt{X!o zzb_=N4;v7QA|Z5jqF91N!eK-qFHRH+OQgiluTF$We7-%6%A=5|wh$TO(P&^Om1GO@ z={z!zFC^KZ4jXj7?yyIR0H97_yEt)V1v%N`NMEjzV(!W7A!W_@?eREq1Jp@&T4mee z;SzEnSyu~mJ4m!hHt*Q$?q+DPwe5fl>rADIuKBLa5gn4P8J`dBue0E}sYmOwFvgcI zhXh@Clhb(a+}ojqO*$!j&U7N}>d~W_i0j{M)34G8+mEP` zE_wW5D_~ryq!CZf6&dx%1TaIqy|g>u%h*3~9OLhu;=B++OG*H{XcKpgSl78@gj< zMG9A~`r?ddGRGokIg?rMc!<5QK~qLQwVYu=DH%0f!M5_$B_D7mM{ZstRE~vP#AVrc zSca6jscQ7<%7MD@8QQmnOIQhBOM9Lp`zh6_Joauqhg_|uCT?+I4^aDyiQulF z_&U}TtLcr?+>6U|HmwS)hb_{GJxIGUUezjM=Eda)wAR66YWY(C#rbi$yxJ*TS~;tD z#?V`(uAVl%K#^pmT@g*lF&F|G-LuNBbKTVz61I#cu~&Aa?2=7*Ynv?R58lYb@+&^p@ms8y9)m zQK(IJ@PU;iBiGh7TD#V1L==T+m*1(%oYLSXCEE>ER%i>K`KgRm6V$K#@U-I13V5zUw7_oh3D^ElJ(eM%D+t;&J>ijmftfMyf z;LGV(2j5GBO&kVBS72Wbj#SQle|5_2Bqp%#>HR=ElZ0zsZ7uuc=i~9}V0CMGCd0Tn z>Q!H&^1S6y-|P!HfAA}Q#u4)pO_EJ%H~*aEP9~`ay;~-6O$)?%2}>DIG6{a`ANm%) zTmRur3NB`{Ez(@0bJY&HLxM`|+aWF0l!)@#Jukaeb@XKK+tP#OtT;*HT`N=V^jS-M zN3}}(ijn|Ow(Z07<8S0uAuWR`YdJwXEG7N;frez)nYXQHS~_p`@0KVwK9l>HPw%#9 z)^M6=Nj-;IeTAc+TJYysdvJT`W0;i5U#0FqTOuF=NXbSq51P6SpOaWNc%- zvlm$+#+EH2LfPKwJ)Y%$p7(e^oY(o`|2zNZc^=nseYoP_Hm00x=hy%M0H?W`@l{$@ z_#G@vv@`Lf!H1S)aV7|yI|_$}x&@$V37`s5)lhDAB>?!WoiVM5UW zh@oNnGrg}g$>DF(wX5a;4~#dOwmR6y7w3)j1bd)@Fm71iK=8kB9gJ3Sb=A_=L}{pK zs-acUC~a+so2H5y#8n5SigNW(QKnTW)8-rSTnYyOI8M!tVfMkfU0LjY_TypQt$~|& zW^Ys$n_yE?qGSxd$VRpqP=eZ!q~bb;k#v8N9)Deb*H7uI6KTb(=i}rt8x0gpo_VfZ z7rs-jh9b0Zwp$m(Vb;WG7BN$u@%qNb!sg8VA)UPYjzagpj%l;5zWH>0qknUH_PF5N zY2N8|;R1Nw8N2s7xla=83$!X@+F3KlRGoU|g=?c&VL)DB)js7@_9;m$3H=U@JVSd9W?&iD7zSNKBtYw#85nfibTQjP+ z!(`~<82DHW6odfm#;Q6_3s%T!SCi)c+|QV-^-sHrlT``t>+OipG!~6^m zg+p{H_0F@BQIrW_gG4hJ}pq0>?rS`w}Xqvv6BI>X^zW z#K;1I(6bmC=r9(E5+D&mg#<&oXj`7eUXB#TFB8O_cb(6CKSnvJcbdJQQfbCG+AhxJ zt3z+jFH8|;V$OP6?dLa)e)O>EjFoa6cYtk21vZl9##G&oz_-sdW9-T<+^fm7U32n1 z2xiKap_79d#B8YWunGWTIgL>k5ilX`)V4BuDFt_W1%ONr9wehM-NN5?(&(`hP-u~r zC7x2FXK#3sqxSp9xZUTmySt84jpt)a)2)v~OhS7v1nj3AI-5M!*BvQQfAF>fe&ehB z)^$;!K&Cf7OBv4mB$A)eO>%`QIM~InU7!x}qBCMLO3a3AtU-~}_z@Z5pT3$mAvW`*lZgqnN+#(U7+LF(2p*<@nyDv z6mZr^*xtZZLs(l%s**9VgX~W@zb%y9owhR1foYerV{m?B;M;A~0 z`G8O0KR06?@bZc#OG zfMb5Yr2pK3+<9KaD}t2A+&~omP0!uevhzsgn6eUR=FEJ%;{^`;vmy%p%mK|2rh;%8 z_Vi*g7q&w=7zK#;RW-gFpX$#qcFboJWT`#L+vVo?Z1_-i^z9L1&9O$t^m3Ag)DFlJ z*4=JYBJwBTTF(ZmU~$F7GZU(|}KS$+0i zY$Srp$D)1RLh3@IWEny`!{cDdjEQ-nu;dk4!hz%y6)~5;>0cc0tzUTe!uWt1mq2t&-@Pl5h z59AfkW#SI!??vwT2Pf z?>nV}r0m7R7`;{L%)bA`#7uCJ^75hpeGp)h z6ZJI9uP2+@*8GCC!>{N+co;=P<(_$aXI~(Si+nwU~vo6^!7e@PuHJL ztsN@vyldB?DOPyX1vo#{SdJ6&<*T}J2JDjZRs=T-Q`@vM-28G(IUH#iCqfP5MS!@l zVZu?5=3TMC@cpP{m!aMHzI&m5hZRDL0{hfDHJyp3uFi<7F~i+te6&_a3S(B`;LL4a zy6Zd*Bcc{q{op=x8QXl`Y`m1+O13~<1{YN}OXUg~+3eyXt41m#7BI%J*?=Icp z3J@HMUTGpsu#-{U@`bAW&P2k4$K0T=Mt`iD>`W>o=X$(Q?8P5dR!SWmo#6^x6J6BZ zVoW3wwRJp6Pu*4jN^B>|M|@crp4E|aB|@)4u6mwnpM}G6K8rh!i&+YC9^GE9*G_$u z;uSPhSy?H2ui~cQL3P1VJyQ1^IosM;&~_JxZMy>wi4*G#p_@L*p4yt!zZpHL_9u1! zJ|)^fH@_`zY-i%+NW7_OUviP;vft4h%D710G?b>sMyzJ#u?c^GgAY#Ln0%dx6H4L` zFMU!Y--8x^@zi-(Pgl^g#7<@R2RC(6tfy8C1r1NOc`g3BfcCn&EHm>|KtstRXG72J z1Q0kMd$(}!Pai8TegPVIlT+?2I1iJGD!ddooyZ&;Vz*L^W`lvD=n}PT9!g%x=o3XD zY-@CXa)oy}=<@M#_KAwl))8tz8v4a)Ae1`Pm zo)MgQ3`HCM{JiOHV6#KPK&64@BqA)?!Iojk?~9JfiezkZ!a;JLzi|xrK)KTK%!I)# zzGcrt(?9S0ufwJ7V89!#EaV5Zq$IVmqwk)x#CUe2$(n=|P%dD8Tfp6fFjYcPTy{72 zF`Inpi8OD+t`wd&^DkgqK5g>;I{r9f!BucOq~lfpt~?X@kAaMY!OfNKUyV6+Lq1{g zf{P(Y;v=V9c67OV_gL@f)v}IUu-sltIOV!_ZH7!o&UyvXZpvg`|CuLUkNx&@vbIzg zqB?rFaA|S9RV}MBWM_HK>E>fc1tC`>Gb7PItgyyK7+&&6TXxe{jp-3T zWweNA+uDj;hsly+^I{pY_&K~EE=6C8L0cWcsNT^=T|%NBvP-f>2Il?`gQEPnc7e*) zU40iH0=k9OuXWjm*Rb1OIu;c$>24%D6uRCniu|G;_qi)|#$y3m^)pUDEU9CG%T|$P z*O@EIVJ!=xwB|zlEy)E9y@&V@3 zxXusKy%X>Dy*?U|_RTxGXCY>GxkZz7Yhzx7K>?+kBWzZ}sT>vfY$zF-wtQA)6|$Vc zWABg-odoIS8fq~?z=hI$%WjvNI~=65uQ2HC7jwVUIK0?rlNayIxyhY*$VAVzdk^J1 z(pzOmiZLC0bMFkev5bij|1RV(Qd+{~?sGaHYvZmgp5h-{7c0Bim+fu4znyaKTxmo_ zNMS#SUY&Sc?>k#Je{#6F7p$@DSo+wx=ajom&Bv2EP#L!I_2*ug?TO#iC)1O?Y6CfL zgv6T)$E8JT68)&1V(^27Qp+nROD+3X}=P-)9f9jjDsr32>KNk4imp5d{T zEp&f=>+7F}Q^PT)r*m-<{3cbWy$s$}?w@S~DgDSDS* zJy`5y>5Hb_1d(s}3irU_ZFG=s@VATKu1CBQ;r8lFB>9g_w?{fEi-@%D)k!>DFClWN zUpn|XRL+jgPax2rx|_K?rPDbp6rYIN&p!?qH9!L8Z<M}2kRyqF`1`$I z7!5Tpaj#ojzgpZfqM+**K+hO`>TROT4#FSaxTU|tIKyEpEdG%8*#elG*cewCA_@Nk D=I$@9 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..60127e974f37edb63f72718865a5b1be4c91dc77 GIT binary patch literal 7170 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 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5da2f8ba1e68d1f7b60c1050ec2392a038e59f29 GIT binary patch literal 6797 zcmZ{pRZtvEmxc%TK@&VU!5Q3bAh-+`+!-X;0D}dB3>KUq32wm&9^9RvK>`GVySo!u zzO9vicWW=Y&&B(k_nfY->gwu_fT%0rVN+lO002BCMLDhKDEiO9M1P)FTa;Oz0~7p> zKHS;@4i&X>gFXiUFNjxw6C}vV1JdE)7v&ce2DfkZ(dBI|?o|B>M2Vr_5Z^ZzGU ziRhR;ClLNq0qSjUBP#3S=;Edgv#^2!c<|Gam7YbS{}SIk6B;%)?oc>@S5TWW5BjW< z{g(={_l7#^%h@|Yo!#wSoB{m2Ah+=q)c?yE{5Qi35-1_uAAM$M|M78mv4MM8xIqDS za5&6el$+b$$-)-;JnXF;xLn+9TgRz0|I<&$&cn%4R8-Ez%Hz2rTvQbDjJgAOik@1y z{}-e5kBg|NBGlg24i4ZE;gvRV)qQ42|Ec*OKL5e!*;~Wy{z0a`(P2I#83#XoE6}#9orzT7}3l|WGGWjMZWxp z{Q->*m)YKcg#hEnmWH*#GG98X!toS+8W`Hp*yU!KQn9y#A_Ovnbmmt% zRuW7{Qq({#66~-iE*Zz!+`l3=ak#de_iIE!PHd5e`jfMW6> zl>0T2P$)J*WEe#xw8&sAeK75Db5)X@@y!xP_dNo= znx-W?^+5B;fp;UY1w%<9i(tcG5o4B*pzr+7WqJ)zy= z@1B!bG}<@s;qaq&T-{lqkWO`q|Su$>6M<3mkeSM*}&&W@FVyInoUY4r#zO{2;*V5 zfZ+Az%&}7Rj924Ee{9qPpQ*{n2Z~(t+2#?I==zU;HdINUT1Z@=Bl)zjK7n ztT|ABYLRj8UHc)L`aNgp=i8l2{g<(MNo=50ln^`_))31RWWqkZBc9@%_LiiClL@o# z670?h^f!LUY`hf+(msf!cJ7Ly=}EoUt2}9vAZDB~7$({mU>;krL59U-FU22iz2MLA zu{lxUvj`h@At~1HVy26=4(^~qv*z387q8zen}<<;qHw3>b3VF$ymr`cqHOfZ8ye4| zoT_se&TEt;02d^nxlD+|l{$^_xZLSVP?$q$qF$21u)6RvGyoka%{VsC{e<_+=ym5^a3k-$c8vGm^5UeMS!(|dO!dx$kwcqsC2 zF@iYCG|?ZEcs#KtzMy&9yz`B!yJnB@mK=&*bQq5WRX=Vwp(nNQpDULHuXCn?pJ*5; z!DYsBf5gGKDHW9Zn#2+I0FL2%CdDl{<2g1dX9SK9o{JIk77TlnB!vhBVkPRMmmN6B33D~>3JDzM zr8Nir0aG;Tbn9XZ9I-gZ@o)fDdpq!Z*>8yXDCo5XI`b=NBEwET$^`cT7Q|9F23>=I zg}DMw>)w;y3#Y2YJbF2bE<*G<#34JDC8AVUZGqd+fH=gd&bRM zy$IxU#I4Z8um@dWbdKT%>zaM+5?xRtHOZlb;C!@c^O+^%Vm6j66+ z0_L6?bwOI-mayclfic*NmHu)uANSo|mDr~q13mMk zZ3yA_>KfC5Jt*#Zp(cM4aZ)&3&$f^h|=Wjb4c(5^5fXKz4>+{|~noYkBHDlJ_4q0#@C8{>E;KYg> zY4ecu7b^2Kvj?Z%`1-FqYDkCFTwI>48T%G?`^jXgO@lU^b3ob;JTf0F%PHRv9QjX@f!c3rQ9J-(U1R1~>wzwOq)WpGI&gUtT>9KX;se*=wWs5Jw zB}N#EizoEWRTi>XGbaeKte&G3|VM!JQjyVI{cL)_(OH^Yd60!Pl>}Z2RHN z7RboxRC0vlXs%ViIv=Niz>Kk#n_JWT8gxePVC>|eP_?RNP;@~ZNSTd*qa2W@Ng#{z zi(h&cX-hNyOE6KdE<}XXnF~Le08`z#4x;pRhhuc*-oO`UsQ&d2<<`bH^K(zq@eGwVVsGHgNuPSkn*h?QyPkS$IGPX#)o z4kDw3t_VkeN$spm?7UBc3GJ3EVxRq$+030(*7f$yaybrZp;H$bS=ho9TFW8*S-1wh zq#L2j8OS54EI%StKz*{c3xlECG0IHBVfa*ESHBFG9b=LQ3Q0W zf+@5LBM7^@+S28yI(%7+v%oEDCA9L`*#&Hvx5%z9M5)*u%@~Z9kiudQLQZpt-*u95 zfxSmP2!aDDjoPh%)3U!XUr&j!`_g*=m!)lcsmc;Uhb7@-+bvP zMhiHr#6q^rkxm&p&%zoapT|J)-tobyJWAdnCxHcPrd;w7n1X1mC;T?vy^EhA1TcoT|I$}ZN~Ll4|@ zGm|IWrLAB)eeVER4#=bCbds5~CfW!Q)p;CySLK8A3DbveO9XMx6qd(g*@nG~6>M3q z`+tsFvmKn}a>-TvS%L-S?k+gvaPULqpI(RFQ+QcS*l= za{Oc%&IW*aE(4MoEyB?>k^<3sOI0U7vtxSB?3L`)=N%loN=Bqh$WX})6L|cdY+VoL zr4TYL=+^Hflq(G}1-)4R%u{R##3eDNT+FkqqI`-5YmRbXjNssC5HFBd!6_IsgH>&E z!V*`=ap=E!LbaG{IxQmSAt^LSo`+ zXPo?LHz9XnsX2#9z}>&--HX+Z#-C zsJl*t4A4y-1&GK~BXW&}G)zIrTtkzZe{|U)xR%1QCYD-_n}IDN3= zi;K`P^jnqw;x0d+W>y*ruyhEl-wJ#6*3|vQXOlL7zh)N$ zpz|Lxn!&6czoXO-)=L>pEuO7c^4^A18A_QZKNM;VY$Jw5L23x{T1wct8awR%&gdsZ z>XnQ(idAnMfi8zOUgEoIm?`nh(tGMVjJ3J8Yrx}i$0P2;MIQ@T*z0s$N$^jPk zX|cs&hCOLLs_Cipp5PpX*zVt6`UPTQQzN6vRQuE5*m2a>HeMVRi4{AC^A{iYfsNq$gkS(^|ZRL-(*RM zn;2Jz7V4=H{b^C(ol%tU;G^Q(1zjq{^Cw^2Ja67}{-)e3l&gUBgywcT|0utTlB9W~9Hiwbw#zqB?02wKIP zMls@8DL=m#dE)o{_5ytMy;7W9@W2-JttoebAqYwp8!SFW&|4~~HD=1=}3U%0AGY^u~p zV$)$c9GRoba9suw#_Z*w8%h^t&P2aV&Hb*Lv%yCpul5Yen2vxY--bRu(W?V7qt_w6 zE>=DHKl?i#-BEEzF&HFHpDLoRznxpsNP1k)PAmw8RQjEA`K<^1*`KxT$mPaP;aN9b zJ_rpiWQ?{(?$L16-EF|%%8~aX*YuO7=!1k3;qkoQA z$1XMOrS;_&sMrK6uKJFID+c;4^&ejQq4-`=qgdfS-E``m76rgDoK0(S!@Z<-ecje> z*vOWQZB%vgAchcJ-=(Ly4w+-h)|{Y+^24)HF+q=eS}6`~`f$y3PLiQwv$iwhUL!Fk zt@iblPrWR$R1$~b`SC<9tv;A$kBKdQcm{e#20Nd*Lf_?X_UQAIG`KJE{iO4LT<~(# zuVYFdHjoOqionOqw+)KqP1y6?vQwQU<;>XRz9tUvIMjO?69USupePzQKB4Asv9FO5 ztLLCJYB=ov2_q`gcN1~6)K|6mjyH{jNjg7g`%zZ5wl8CRxWD`L*skzu0papc8E}=kRbG1N zdpN+t8AbARoY`MCl-J^aJI}4lcDstWQ1!fDEYA&0OO2`f_-3^G{X18WKMtGy72eA0 zsH&N~)s2k1ctlvS4fXf;EKL5K)XMn~t(Ry_7ZMO3jcrqpf~XtNw+=6|YM5}w;EzdB z7s1{+v8%GRNnzG^zlT-ANSoO!O#;=@&4Tu^N78-=rj;h-iRT}S#@!ueEBi=|P!6DW zzvuX*qF}`&(`xi^6V)mA0)wkBs{nJ!p+fR}S0II_{8fZC#rd}S8%8RQnxmHX0b*Pl zic)rcb<9e!Awq8z$1{ohwov+LyqQS9z3|%QP~XyIiyz&oolKfMZw)IT3R1Yz9b>`* zpt(%7AO?|)!RSP-AYR=@4qc9itTRokL@>z!_kos!;7q}TvhhRO@g0F{+W@mr(z+b4 z1(s#(D=Am>)QlL#6q7Wzm;LQl^qMtSD%paY{GNGk?WzkPmcF! zxIiXCyf61wI=9)z7bzwsUvE90kwxDNOy|}^!R@-)1r27R)Vcvf^~8RqSp@$$bdyPkFYeSx{xKd{tre4`I=a`AZ~uwK|1>Pw$INh38e|5(s*A0Ga7 z`KjnWqJ+;3Yp~lr(Yw-k;6+1p>b9E8>8TacbZz@mZR1v=kby#6wr}Uy>V~$4%e_js z_tdiU1D}@3OO|LoKR2x}yQW$X5BudOAMyX*04^P`E568FPVx(YrI>0$Bu+1)@UumI zneTdz1Bh#jQ~}ATh`YEVlB{!TZOE714XmCl5GcC;jQZuI;r7Sh@Hg9E09_c4Z$OgvTn16X68B&TKFp!K^QB z3Aot`SiW#u*Jx;c8TAH5o{@ysc#1Y8N|m`t>v!v*!7U-O2Vn>eHrmOb0g9cJnBF#9 zWsQP&%<79mTrdALSUyJ59LzPfSh6H%r>N%dCzO0^aFcuBWelB8AxniA&DiXG@91ce f5R)`ydZZyF`2>1u{QL9y0|KD*MqRD~Y>xOhU$BHW literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e56544fb429e023f4635d7cdeeacdb5ae2445a23 GIT binary patch literal 12722 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 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..6b277f0c34992851b39adb0f9576770e6c2298f4 GIT binary patch literal 3961 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 D=I$@9 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48bd6d7f6e64ae0ccc578b3b0137f31b8627e7b7 GIT binary patch literal 11095 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 PlmJE94>ENSlaT)gJj#J< literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4b918c007a9f4b5247d597764e403023c63e9de9 GIT binary patch literal 21016 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 N002ovPDHLkV1iv7)_(v1 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa32d2d5e199fc1f77d14d3588c577dde94b5d0 GIT binary patch literal 5421 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 M3hMHuvStDQ1=d{q&j0`b literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..239bf8b625bd74bb46da46e1c3b7d6d3d7750915 GIT binary patch literal 15766 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 E4b=6XxBvhE literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..86bfb9fcab711a02d5a6203b5cc1e48be2a87492 GIT binary patch literal 6614 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 z zvepa&tJGn9${k5f&7|Nk>7&YW|F*Lzr~28uVRU+#YSDhF;Vi=`lQFUY0x`F*WSu?S zoZr5Ch_{Pmo*b+DS6j7bvoU2tAE3?mLi=AsbfzX7pJBgH53>|l`rWX1oOs)E-OMX> zb$IuYlbC%$i0$6@sPKI7XbE>io|#9I3{o>|it5h+o4Vhb{=B;U;Jqm%b%LJjdyKOr zE#EPAqsz!lQJ(b>oaH{yElC4On@k=FuEy?@9gZwL9K zVOH>Ps=m~o#u%|j9My!pjPzgMDzR={7QULb+gCds;66H0s`tyw?YZU6x9XD8N@-!Lu+nF{s}(;M7yYxH#A2Fn6U>JO_ST0N zhOX6_l@Qmy5u(A-r&n2=I;}LJPwd4!oV?}+_N-fuPj5H~$3G{)9K?uglvzoqRt#84 zt;_=A#d6=J1bcv9F2%k_4Hc8Gd+i-)k7ufYUcKfgY_-_-i1>}M|1JJm+TO&t5RYjk@UoB`+RQC^PR#*bxB^ry;9yj>_WqCDNrL1}I FzX5CCJlOyM literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f76586528a62d861dcba9ea2e2f07318eec37fa7 GIT binary patch literal 19484 zcmZ^pQ*@@m^XG#%$s60YZA|P;Y}>Xcwr$(CZCevgY-^I8-=4*Pch6q*(--xrZ&jVX zc)IIUgo2y|JPZyD2nYzgl%%NAzuoCS3kdn|8@ChU`)?z65z}xnF?2EIF?KTjw}G%Q zv9QxKanLg}sW7wguyOD(bI>v|@h~x=m|PzI9}c$mCYENN|9=N#ZWaB14#@wBVCrFM z#v@{HWACKwU}$U#!i<;&CiTyV^1qB?{|I?AGiOs55Ec$)+(OfTR;>SJRj~9hwb2l@ zv^BMJwzRhcVPj!(n%e{Xzl`SpW>}cmE08Z{{xL-V(Q&pnb8$CxG6k`4adB|wVPv$l zH8eNUbg{!R*509w5vFpExE<8L6|4?TT=CbcD#{Y|v`i}|^ zkEE%kxrGY|GdGK%uA}Nd2J=5L|A)^1VAL&5TrB>BEL9T&{~_4_1(E$%nv17{Dae1% ziqXN&T%b`+?*Gz}RryDOFmtkTvvY88a&qX>^EdoM5dVvgvZa?P2$QgIav}faKa<*j zF{vs^ftXp^nEorB(bmqz#@?LK%+Sr!*xt^W@qeE>qbakI5hoXiAv-e%t0{}AAr}{u zF$Xg%lM%Nei=mMjGs8a*hJX3ZnE&wu0g)<{5*1SM$lmUOt~Ocoq-KN(yb%$O8yga(<&uqY82sW6Lpuv14oKN%h|Kv4@B9&Con z0D;v7ECw)7^S$*c!5;7?fhsLE%^jsXSpr@;z-EOmpZ7yi0e5Te?63&$`|s|zn9ked zi!;Y>@7tRfi1fSZKd|XJ)rNiK<2x}7wjsPE;^j1<8@}{Mma^!A zXbW)hyc;bW6KaBZ(Sl@%jVRBcDPair9gGEEBU})Y#bsKgPG+SSfA4Hrx+ZcFg`AaZh$>NI7KdkA zwX5{ceJ<|~e1GnQTPNL^~{2 zNK!#m7C+~u*OXwz3mHvU^3t$Y3SA_pQZ3R-;Z7izRtZ2>G5{bz0Vx4+!`m!r3VQRw z+(f~dexnvRzN9@{xwmY|+|ddxq04W+79}9mAPN2xDk7B9mIW=+`KX{M(t(no4a=v3 z`4s_jB&uDwVqsa{`?(bBW!2ph)H_L=KLA3?RGc35E78(_CR`Sul9g~`X8AXFf^Ob@ z{MGuFGG)X0L>$SiC9#1+XPkNE`OxRIof}Ns; zWcw$&Lc%%b4+fw>>4YI&JDk4;*RvQli|U>`%K3=zqrk+Wv>y`z_)Dm)ZEskG2Y?M= z({|M5EyXxQi!jPs#59s6#4G_U6)j0tk&?`!(xgZz_~Z)&CMfmu(->wR(!O3(2GhQ7Ta=2HYM|NKzK*YQ z4z8xIZAxv@y`hNi_9TooO# z_^g7Vy&aGoDhDEF0cI@=SmH*)7>^ram0+fHlCRWwYNFSV!ZT^sP3?kU z8>WM+lq%;L)F$JBF@ZOm$IYrJOEjUHG1|`4G$x&#{>jmqn;If)V=6S5Qx~56=zZTb z`NNyG~M>m;ReO(`Zys$;T8DM{|JW&-EtS`QoudDJn| zU<_<>V}z0N8{_F0rZY^YGtYA8P~=esFoj~YUP!zWp=8Jqupp2yNY%+@f-$G4KpV92dq!8@aQTN)6Yr)92}Ub5i@;#&P9k zyTo?z^`!z2I`d;@%TCZ54vA(X@1y*pLmar#; z-|md+&8x;U;%u}Kv$V1V3;mWgk7TM&;UXzIHJ>yE)z=C<`yD2WFU)#$`Pbg*`+%bC z6EIRLEY=#f_Sq1Mk_mvI?d@XL`_HE6=F1{c0hbG8W8`6wF})+~sY3?y%`>mChc z%edb~2td3Q?_4c?THr`{hbypHT~JsWC^Vk{6GJ9M8d;xFye^5-i7$5ThQ{5+Qqjy_ zN;1d@tmukt45e_9Kr-hJKZ;?}>XU2M=yv=*my7>Y&++?4H6K|7kGN=CU9bw<{UJ0v zoimg|nKy8`P50|A?F-_iXW?MqN&(TB9hZDU6W&wJ+BH-#FJCK$Td)Oq9>X$P)6P#(oovc|Awlkx%^e;NbEB2keVEk^M=E3QY^ zr)inQy$oB=i9liseGlZGE-0JX5vY^t_`B&&F}|^(`MEv!7w^|T<}c8pFQ&+A;MS(a8}A3K2rO(H zMTwKVc#VUe42yhAHYr)ofoN=U22Bk2c81#zjzjcu$FZ^I3&Y_Tra}B=paKOmEx zU++mGy71wOfJh~F zrQi7i$IXKnK1rbbSEeD*M0AMxg}Onpp%f>Q3Mh``h-tev)T>X%OD@%V5Ns!otS@6^ z&n_neB@Exz!jD0djT*_1T>|AtgcQi%pXHK5r3JT^4PCb0MUvGi3k zta!|jwW{S2BeN=<6Fn4rg00XObC>9-7Syt6}p$lLIA=r3&!Vb`;Z>tXDPH0?b6hiJG9a7S>Sr zA}=#u_7g}s)=UdO9ui=)j|TbP5i(pUIMmr;(=4IorI<(*P0)%6#0 zKtuvdh0Zi)HD_l-x)0am!V_!8x^PjvXo^CHG9TTsX!Q1`Wt&Hhsa9#=kPN zaINwcWQi@0PcGA1dzt0&FJUm_)wDK>wQXC*ait zm2zR~?XsNENTGu_mGXW3%;8ma9=ZZEjYpG=fJ9~XL48CH#c_7%RvS1RBGr(Guxr^e zDcEqhf!bMcB@WfvbFQF>D}(+GgZ6f8uD|7R)mCS_E5-F=ucYDaesS^I24$Z)Y)V2lk$FGv6esLujXh^Yi^m6E6l9~lb5p7T*8r$^U1nACV`+|iO7T#vTYC!M= zb<1pzLoO{&@ECCDT$({L2@{o66f%sNi{dXanwYHNd=Xd~lZU~IVL3OR>UH5Td>{ZV zxLIxRRp0xuaKG1{ZBO)AMRm7IsjI!%48x;dZNlJPMG)Cg|DqC&RJuTzoPug-!YYDK z@wOgq^hm8t#?CeHUOGA329y-Kz?>H#uN1%;G2hk^|2xW()hiPEZ+n@;DEMeqbaJUo zbROf1L&a&*62Vxph=MT;f5M(P5gDgK=Lu(c%x3dS{B(7~Krllb+Ld}~#Eb8InoFu~!DERD*Pp3*stZd3x3~o8Yp^ zT2UPKWl|oO;o{6?aLX1XLWNhkuV{NWh*MVX6pC|#b&OWDY!HEmJ|?t+ms|+!Uz(ha zd2b+i3)%$ zQ3E89scpe^8r^dk8<`S(Xf;%Tq6O#s*=ja(1M&FqZZ!nbvVK}qvrQ5Az{NX+GkfDe zAfZ8vEEJS$$o|1{|L2dV{}2&rHw%fO;r<-F;c9s2W` z)xYNxRWu?8kb=r*I3bQuQF0x7q(5<+MP<{w@QjSu9o119l@~lwU(-GvFo}82I=^)! zip;6Qa_KV|raCG!29hT6=`vA7ng!IhV7#F{o72JKTmp_f^Bf-sk5sfs7hnoXEnotD zi46`ec0>*6Q`RGl@W`MumGVo_d2miMUlQS9S2!9~h;#x_;Ah#e)*LFpieR#7JRnt= zo(!~QO7o*18`OmxM@qcfD`$O5dsK%r9V{^-^Cih7XrPNDwvvU7FtR#;mTZ#PV`i8U zGRDc_;xS0k4xycg`PZH0StB=G=|^ZH+4<7I%H#sU2z0uc2Q$!|sc{*0mCQfZ@JdHri`9sl;qbl!s4wWYkFDN`EHCt*V83 zv?ezPkeDrQn5DP`^ZKG&u*%tYny;`q-=#Q$`naG1^|Bb6LwQd~eP4*E0lj1$6S|dn zq2;E)QzeU=X%dZ!br9wGwj=O_22CdzEx7JGAEjX%|wF z09C7bCT&&KEo=oO?M9QFP5==ao)1UM)D0wB1(HM%Edog+xsKzhB`Vvg^+?o4v#s$g zVp2r?DVa3{6>Qv@X7HxD7)pJh#$XuCVDL~8Mu3OqNMLi7L5<8ovPI>=N`oqsAC?HJ z*n_TsUnZrSuP4UIhMOl`hw%G0C6O09Sf5LjvHLz9{+5-Bs*^lAm8N!~SnU;+w5h5v z<*j=zgU*t&OTFCer7AoKMxzUgF!TitNg&o&0GTVKC?WqR6=Qux7m#7L5EDfVGAa#J zV;Lo#qN5V5N-8)+@F&BNJHyBZV$7l;f^+uReVP%6kb=u0n01)UQitf$#ci6SFnYw3 zlyN?{X^gU2FvN$6#a9|-hh#YXGook_?P<5I~Na!ep>$$fbGjSgJHwA&tERLFlUN#fq+wWL>pfY8gyJ z`xCbX7hFCL=19%iR}39G)-D$kMMp9OPU-HNM&X~z78@hk3Zjwd-f+# zP#WH0TF5jN3MZcX7zMx7QBb*>j5?JEI&}+qwUfCu35`C1WEl?`uPYPYJ(MJH4m=qa zI+PZHLV^zu*VVE6+Q4jj>`pOofklBq3e5*}F2%tEF3oM92_md=`bDdFJY9Y>Y*`Xf zUDXQ2A`Cq@CP^wcY!Q#1=wWQ=;IG9s5C^&7kTq+0H&UP=45-68d3EG(-1N z+<9^$)k}t*Ufl7mvKrv z0S~&m3>v{Tu$H?_6GgP>(jr*~?8(r;D|pW%XMY%L=#DvX0y!q4QoMvr;TE+$wq9#Y z(u%Pb3TV=np>T;gnFMX^eQ8+Bs2z==LI^S!XGH{Vsem}-3v3~mKwbIZqrW$|Fk2Pe zQ_MFxg<}XS=VIDrTV?2^7UN}8K?wYtIyf89A4I?R1v7AN7TqHfq83IH&F&U5SPO=M zULWt`_#-*}fh3#Si%Zvm>5wIwhaoh7?-;pmM#7R2c6`$72T(cFhs$(yLn&!HV11k} zZr(Dr8&{Pr!b_M7C!gcT`nkBqsToc?2J|J+H0PHnITt1s7Z@r;%pJ|hGSxtXRBVQ2 z3@R#MsR+#&Jy1(%pbT0kbMSzb45EO$xvWtY>gp(o4zm7EFS5u>$DeN})i=C4Zb3`) z8E;roRrIBxbsE!DQpwJ&=J^Er7r&-2i8>+SbmZ1_DJ4Z=G`$1UKJz#+QK)!46ChcAm7_C^_*Ys_ z_beVVxIqkqWUZ8ioY}LFo&;q4PWRV;7-%>H2j>^jw1p3IB^{c!Mz2^7` z`#6zhR36L}(lC^vz~eIAY~Be+uT&$eMF1srq#R6|i9#AZTGo-K4AtRLOcP-`UnQhf z=;{R_^rS`ZdDg6sIU6@i%U@}!S>)3I44%0^Y!eTy1jxb1ShjK?#J*I-;3M8AGewf% z7V|o+>6e!FZo0>#r6NC#OhgS^OYdH>5yNybtGXDjYmv9Lq#eCA4NN5tiAXFc;kqLC z6eRg9sOg%O@fd-8N{$YlM+faU28o?mD{x|{XE@#x4?ObMKiX;US7gY^mR99ABgpV{ z&-eYg+Lt06pXviRwc)qrNiT&o(`=%-icrYa4VtqL9@$1vANUFK826^(Bzh?Jxry;G z0xOB8SX00Yci>c*zzSLNeAbTTduW2CvY}&Qo2g!mdyI(Azz>@VBWPAo4Jgt{-;M1< zCh?S}*1|kZul?W^YA616HU&~ipccFXXBJ6K_48_ArJXG(<{YQZStl+@m_efoVwosI zII|6kF%AcHKm|VAqf+1z?YGrDp5(w`FTk?sV~Oq-6!^ie41T~l@cv|;fu2>D_V8&B zo%+|^YYAp-#IfK|A3PZCKDoTY;Z%XDq$j0_@84nSZ?OyH+|=DZ3tbH!H5;74Gzf)^ zH!|ZJDM>=eZ`VF0Z{fkU2cEkluz^>!Pk778aFZ-w|)C-YBs_PW8e zDPSA8){a49a~6T(`R}FhO09Taewt&ts+nx*?~u4Dsf@io-=6?Ug$W~uUl@%wL>_wQ zNmw?Ead)}TWmf}M#~AE!VduY6!=OcvnBdkB0){|7U`E>S)E4xSLQ=at$#vC^MG5)B zZlP_3i907PqDf9nfkrP`T>@6eDMH7_qY;VTiZ;(7#UE4SFFu8XY38fLb9k_w9oA8S zrc4Sd9tq8t)a!4)f(X2LA=_UiHvgh*c;YT?fv<=2|LJ8|zQO~U1!sv^;eb?%CIpj} z4iz9izhL1G%mfu-B|3EpkSkt@q#hI z2G2Ai3>VXtUhAln387X8;+~4H(^uheq6ejI3vT?rUWzAM(y%GzNY6K1)Eh**!ZM5D zlO>}Sy+(Fhsl3N60RVhnuUa5(^UO#>AJ1tWh>jW zHXw{Xe@XEa5@!dslg|%(hTUY+JP!gZ zUJv>1jOL?WXcVleQl82lN&^@|w*zm9fD!6BHY`3U(jubb5l=#=in$Ul8P$bD%e1U> zvl8^p6x-JUuN}`HX{=Lt3D_Wxg-znm<+?t6rVg!|0^=lXzTJy2$a+03MaYy29O4=l z$2m-}S{baMu-(Ux)4qJrGjPg6uyYZn6NBkW+(e1GpiHj@Ei2_B$auJ0*Nlawls%sp zpNMcaNH+n6Gu(h!D%wWH5K+-|FcyM9ZS)3;feKv~;3v=9NMGVpth0v+DQSiNv36n# z8A1^15?QzcbNoqHO(9EWYwfk2+TF;fL}EN^vgf}dIQZUsVQ8g`&=}SITB9QGW{hheW8RoLO%n9cv{W&omv21gk|7RjB5&K*`NURL>>3CVyQr`)I+V zjv&b#1+uFJ4vc(HAtF$QSt%{OMoEY3cyGIV@WP$^_rF)BdyY|6fep32ROvb*8i8a? z3ERk7A=EF45e=YlckkM8jhsI{F_IGGISZUBx)~)KL!Oz(d3P9X8DBOQI#nYA&~_`C zm=qMZlBfwMKB3ejH||Np5gUL36KQsC#7Sq+^yhGZU?9jgCZ-0s#moGRgAxN`A%UlR zMzl~XrV$&i4mbQK0SRZ*5h0a1=xmfj9E;j=nHJ5MJ+OjjY}o^pQas>r2#1tC zP>EV>A!@I2J<|v`Frz{^IBZf=Q9EMyRA4h+tlvUPaF7VdaHz9tpWKYL(~g(<;XPlujy)nV1!qI zZYDl4@99+}I~kwCnU4aBO^M_Pw_*z}1j_>#@6xFt1cEP)p}JP#&k}67v{A$^j9#=6 z+wlA6Kr(={8;`;!-`z*@@R4jRV*^ZXMvaM6cl1>OQSp zO85i9VywZxXObIl6?SX#4#d4oU1;75Bw@-)esgLF?uRHvX%l$p>rE)Kcq|3H&<<_azXi${+(tw-H z;k9_UeecT18MeV!au911#iltHJ#DfEKz$^2EIDC7W3-S6yHG5p8J$3m6ipl~nqPP9 ztwHf~B8&O!bd%W5j`{it3%nbAFN5M`;Q_ z99@FcrM~lUuQa0h8g^SRsl5-%1`1B> zYiEDXj{x;++MjEv*|`PnE|G@^HlUQDx^SKqEk41+8I0uMRLN4>6@ha`(W+WhGcwCo z45e|Zx2wK{pBqtNb2_(o%bJl7ODM*FhC_Fs0T_;H+)G)H8Ku)?oqHT)zb!vBHk|8k z{r5&2hjXBySKWXJJa`4SL>b`cuS6p-9yM?rNzE?q>?w97&cBzzfki}b)?P>&A~A8X9@b)ojAu=WLis}>{(+u?*Lao$mJnSkc1~>UnL=mremcPhi{`FyubRLq%E&#x zmm&y0$55kAoI(R4<|+IARIHMR(G;6M$0hVvMABq#T6i+r47H4`-5tPf9aW7jWgyB@ z>aoxRm_-MiT7^GiT%epB=u(masH5{pXTt4ne+yh4xb z@AU1%E9*@}jCYF_5ZxAuLE+u>#DJ67cD_!;M8x=bsJTQ&VA5|a*aQ|Zqriqjs8E*l z+MpaR&{Yd?Z>W6UuKBGlg{`jmu8;UI_+p`Owguo%{3hSZjy&d>i(n@VO+LB zI`$!!6L`DmQRW6KF&VAsQ1YA6PZi~8^~pVfcQ~;Gwtkc3{Y4D>1&%nS)Pwz_5Uof_ zuXR}1_O_b4nh-!;FS_CWuizT+F{?5u*ya;|oGV-$@Vx9`R%f{15vcP^%95dB2^hY^ z(Wd^Xj^{28D~Lax;v8&T6P{=hj|v)B^YguujeU!4gV3Japj{Qx-}fn5H~sY5_y#?k zm(?;5m=mq7`xpnr*IB|4gK!|KI`+mS6oK+VoTTwHKf?d8i%wNZuC@^&;>;^z78E!U zaIJ63J08jf3gF7z4vQhq@i7OE$-k-%NO!}A4Qr}r8gU4+E$E7u*oZ8FbdS3U!OOE& z;RRVFP*%V(KM{RoeIS8-dL=@W4^jf>SvkH7@4ukBPwtq}@W<%8bk&ze$%i zjbHI0xWIczIxbc61XsZ?o2-?&Ii*gb14#vYBx=P8-9%=o)ZZSCIoN)+9{Hz8Q>{uU z@Nq}o+o4u$XdZn1a7nunys{U8LU1WwKtQu|F{ZO=xoznp=64zyiIPvgTh{?i8iB-H z0A>ASXljTRl~2wWU;wtwoZo7y-bAY9b3<#1dF2A2-9pgQKRuA& zRi$c!QK{NP9iqz34s^G|FtLI(@&N3RNLYQ=i0L;zI7j>ncr6$7GwF_PM&a%@GkgwE zAS?U32%0DE1=pJmxoX^Xg2d~E7C((}BD~;<7K?YkifCE)2lX`9_q-?fk=o2FKP&1H zQy8-NfseDfL})0QQ?p>g*(Y?+1Kn;zZ2uMMXvC7tn$}`hTfDs!+;bfw!3;bIg+smT z_0!Ow*IlIhyD;p8QT<<)*hL{AIwRa0+L{BK!pX!#!tegFlJF~f#Ka6>Dh-~ehns(~ z>gby9jthq;F(isqLnPrH_WYM=Zp%*grgK7gd7=1K!)jBAVEL88gzBp+jYNeW#;b0; z%V&2`{I~)y6>nWzo1{6!?#tDK9>H?(f|_^vsMkKBUq$B$*|e`nrl6c%#;K&0zByY z1Cgq616_E+dGW{9a4S~;o1o2d1)5+J##F}0GfJ}DZkd`52G06>tBHdjvt1tV2mg8u zsL^Pfw~|n`Vg)wXv@OUPEMM?=4bKgzUhS=C2j?>kwYyRde(39#?LZS`YDRyRDF-u( zy_wnmj12Ic%m4!HAevV-4^3TVycIC0gGqt_>>jKU5^QeX>hIX;VNISO6az~m#A2{; zWhB%u31|~6kq~B=WI-`%6&jnsT2Yu4M!zF(x5p4kR&fC9wmQrtcKPADh&O}F0Ql1n zq&aXHevg5m=O0vIBF<(VHltTq0hAqPBv6C+;K5ne7}PGD!FH`eh*}EXVG3dJ!xS%Y zTJb_48!`Dq%ZpMfctkP6+I?)W(Nt?-v}TH}aOBR~24xive%c4CmHo;mK!&_WN2}=k zYuuyF)CMXv)@f8k!vn*I`5|i=96ty8VePiA^(}YgF-U$|!IaAULuChZ`5^&!luZ3YH~4C65$54QWd1;I zS#0hpuTx2aLb8BHu<8c;y6PIp=+_jajsdZ037x1S_?alXo@1;`mE8w&vrS(9PK7cT zazrD8UmcatA&BHj6TnB*;JpQhMrdI_2CobnU$H~kkCvaq1ZMB*pBgZb8Sm|l^znfN z1z)p?ZwrATsYa-9GuUhCQ6A--Xq_LElD0*PWn#8MeZ3_Za#6C%4+V+ zP>E%{=}P_ND;y;@IAv-?B+SDC`GW&NjWB>yD@dC@zzdFIb)MHdJT)z0yCcrT7T>Z6 z!W5=h+#%Gznzht(RkU~jZxf17^7o|);}X)|w2t(cTN-vv%a@Ka8(64y6f}l9MDHDi zgIA`pTVxQdsu=6DgK^BEbshQZ`wH-74I70!w*>VM%IO_8+H9W4-6!^~u`&|*uDD5r zp``Y{2{#3BPMQt!ccR3K-v%w7b=L@P`?5nYq&&p7+}eATi#_7PD#y`rtDM_2(FAY~5+0!n4Ao^ez6{swlfG@&%wE966M_uvL70KfDV~ z3P(iJFoi@6847x20ApY$2klFn`BlptPyai$pYTf))1D6X(yc0f6T$-7%LOY$=47Am z8R+1Ia8&?PTtTz0q&izQ!TQ5_H#OqYje{(1+e2+&Jj-Lc6wxlb-x89jD=hv(TQW_3 zVP{)-*+$q692LQuUI{uuT(k-S0tb$ZY~CBhje5M7ViT{+-_GikBizQhCUf~xfxOAo z-dn)JzNxr-e;ks(o?n^TvJ(4PQ^cVTq_c8b&rJcM#xf>Q-dZ*mJbiJq+Db8OFkJ4S z5`$Tuw+kuj1$lSx6l+?8W}GU3gJS8`JjXJ34qIG;CY_rjLb+*-iPsr!Nf{LjmvHn} z5}rJW)p_jMJX2*1NQ+DzDCa+F2-U?4rQuf}QSyg7!#tQ7oUUr@Y&yR?DrB%pi?i0FDLz!vI#cB4(?_i-k|T}WLYT5MUu;)dm_oAdJ@!R5As0{Qc_XjUmofBl_$I8|y}_@56Dq0DEe zhwHlU%_lH>Z^^04HzpnwY{zSVJ)LuKv_@*|u8U+g*OdBpk;X#&`hLi3(n2og)zH)( zcpl~H%t26$y#8DCeNXsM_jO0u6;)OBHN3oCAN@FJM;Z?mlTV}c$1LTMPoV%Nr7><} z!%~OK4=0TwXXJB3Ih~g|DB_NX<`0+;DPO8K^rp5-PtMQSY&W;HnIJYWU8q=m+_4N+ zN{2rUupaMc5)JLm(HCnsdz;$s_08STy^XW^9Z z3c85Y+?AmUva$6NQ&BS?YP-Fylp+5t8HyfIg@G=9KusJ2BBdn$-|+aK;n5Gow57#Hu^UA zXg1lqj5(jGiwID+$Z@tC~<2;t=i|7z;V$X@jvNjJ8F_fFaSsNCD}1Ci-i zgo7JRtR9#5e7QbG*zTC>F|@S)DU}X#GXp)Jz|#>K$+9ve%x$`{si=n5=k+eE#2T;6 zAv28WM)q#B>K(wwMyQr%kcQ66*?FiOA|iSsm!VQ~xwJblfp%E24NGy2O1*7~XtQ=D zs-`f^!faYr;C49ryt&o!#0{MHL-#Yw&-r^-SIaNr&N}a{ZvlRjD&=C`vt9z*RIkbL zbc(Gt*nX*1uSUh;co~}SdmHt2T_SfZ1h$NsMG3;)$>--qw?p+uJgF1O>K;+hv%rnO zRl~mbL5nb_Dch2>=Di}fGng~0@@s#Sy#Iw2`tOmba=yQ0;~mQ3Vb<}{TMSy2P;=FB z&ke-j-X!V0$iz11dzbhm9X;V5`?+$dYAu@r3OuoJxyuCz9OwzK2In}Y?>x?@_)Ioj zV#vcYy6oHnLFK6XQTkt%KYIIu`d@tczIrhoZf0F=ZZ6wps$@_dll2lZ`D+ToxJ_+b z+9Sv6bOz;pK8;^b!~B3rha#zr)|joALZLlEO*=CAyH5|Xc29!r>|;&8Tai^#K}=5W z@eusRK^cAbu#@wCLEaBLl97**uxz7o$_{Uo9TKFtHu^fG>sp46Ny$n)3=kjnkh|!2 zL3p~OALW-=;)MYY1Q$%iEFDE?@BiiPI#yIAqI#3B^?V@LMay~pI|v1gv(LvbAM^Hu zHyTOceL?;JclQ;iFx+uAtaM1j2PE^8%)gAv#nr1)&hOD!ATaN9cy|z0ouR;})9yi6 zWZr&^a5%nisfx(A{Jv*5vwAos?Z=P%B}p^W;y z{eA~y0?~-Rr<&P6Sc8-jOng@LM34x63!PbTroA9dD83czci%L8$1$C{3xv^wE1N-`pOV9EnoChcM4rR?OyADyuPyovsDTo`3T3vBwi(;!n>wqi$G{rYwJI? z-utvFIHh~7-L|^AX3O*Y@|}p`{1&aPtu{7x#a5hutA*X~V%FM0vfuUwnP-6x;l+pj z+dcoPD0{0iaB`S7o423$wJg6Mmg^Up&BYuc9AFOm(_X$u&-9OOieg`t6+a!`kJn*d zy|-A_BX(Yb&R^p0>YaV$rC0L`r)hC?oU&3}6dAkrB6KyRy}kY(reae&J!pn)Bgq;? z^Y$pEeTq~MoJq}HN-sM@OUfb>gf-hM+Sat~ccWkk&xqentbc#t#p(|~PFQw-2eBSq zA3L$zgpY*`##zKu%9IQqg*Z3O?!KMn5fOfjLoxkeH+!KOr^xMH;~pi8fWT@Ad%>S;a*#`fiGrytCn`syLGA10LVmg%NuX=ZV*|>Hb}m~@1KDL zzwkcob^{-1!3|$sD@M?^6<#DC8CDNZ)vx6GES1diej0SSKlu2i^BuMODi;3u@c>TY zm*IGSWZKLN&xZQ}aU7GKkl9_H?6dsRGs$}67x?RF1e3|njKki3u0Otw^6`eeo9=r-KI z8r%G*bJt$b%F89x`q>0Dg8O!dt$1UC; zvfJ$~!6Cd;;Ro&CUtFmgS{wZ>7ccb&KzH*Pe!3I}cL_S_7ysv3FrpRpEMl zm0hq=TGxawlH0nFQhG&nf0OnL4rsq`1>WLPd*AP6c5v-`N(#&2kzE(gKc8a6cdgT} z1UcIf8rs@IxRAw;RphK?^C*IIs8e)r-Vpg@bA5J;un2KmaYY{su6jRzuNK{&z_IQh zpQL8aAb=@DlN=RWum{)aFYULq6<;>Paqe>v zpRIAPF>*(DpRsm4-Q~TC-aiR=Vh`-+q8}h0U=iR9K;?ZP{rbzAH}d<7n0UDYHX;hd zGnkdb<#-wIZ^20(Ips<0kTdJ%$k1VqFxgSh0QG~%z>7jvssath{FONPoaJk7R$4m@ zV$aPMI>j81IRu_aO?y}LHSU_LhqI8ucfC}3yHNONu??Ob|NQq_-(S93 z-JZz&l~1|j>$(-JI{7_wfv3EEbH6VENY~2Rp=?yc;Hcz8)Re{>pS_N<+wl?4WttMw zUpA{prej+tt3Tb^aEo@%Hpi2B@%|`*jue_($BN%RE#NR@3q&}Zn=hQXBotTp)=|^t zW#^3kktt*5=C*RL@+q$uBN&DLZR?=?NY4&F%xPEjac<4i-9)u;#s*y07LA(YR`GEy z?oY)^*cp<8%25OF``rEfd@*zTh8erx#QA#oe$FdckrVpSRtP;S8REHHB*Hp2cAJ2i zH?%yA^mA7JF@eb2n8}Krf(O{?adi&X`?e{2c}-Zz&k{^Yz#CSU*BxGZ)G z^Solr@$Fs=4Mt*QN5Gyflm2r+U2mZ8ePwQc_5i2TFgox?Yvv=v?`G(AS>6vWMS20| z`?Uf3^D6HXiNM>1!2Q~6WO*Y)D*J~o9_k_K_v~(%d!4SxOO|?!{ZGxRu9AHH1-L%_ znmz09k#8@vL+id4)ZOp%N`%Z0?4DcueyWtJas+uzx#-l`G_vzzrAxGv+3}+zEZ^t9 z@`fJeMs1GVR+}U@@ns7NsKs=@^~cQpE@(Y2j!AfgEM{!5#M>Jj2>brNrTx3^J9}Iv zu-^L4E%N^Kax7744&)eOf`V%t^322hKCw2aYjHHVedg2)(9uEe#=le|?-Rp%D=hph zsZXiZ{p*$ZyQ?+o__~1n@0TpLSsbV|_klx_AfkGRo4jSr;Ygu=HZQX*K?j??Gf(2p z>x16A1sk0lO11s<{(FoVVCQFe56H;tRM*R@gWnnG?A+Xj%NU;>2P6Z!Z?er<)!GQ> z`dbOq^_e@!pPSIv+oR{gd?9an+BY22BgDBpfe*?!9sa)ekG_|ZN7%mJ@cI_$C-79l zFENo!_>|cnyX7Fp_z{|3UOvO zm4L(Bfa%hg4-!8)dRD@0X-{3&x3}~1?-Wcu4-?HOx5tO?)4altme-w}o<52oEP-KQ zr=e(T8;S&#?ivv(f_ryE1M_q)7i1c%%nGHio7k!iCy1%}2!-uuRv0T~-2RZjJzA?f zLVc670sGABV8sMauHQ2=pVJ+i&sqx@NAswY7W5?~}Sugv>3O-Kmbx-q?c*$NB@Nz!3j% z6&|gwArShG+`0279tujzOAK@Aef-kulkb1C`w`*>-}`01rYRm6zt3>jH+~5Ex?mA{ z94q?V9|}ZIM0EPxr}LTdyGJ=zWc-mEDJ zqaj~SKL57Ane^IfpFQnh6+z(E5xv5-wQeHU);k<`%i`jIAp^cEH4Ek~hGCp)6KwLM zjptF#`_1>hjR!FbW zJBfbe&>(K#{l-3jXrvEgClA>rAAEGyO3!TjRZ1JnFa3`16UyTIrO>4ykxjOK6xE=V zN@F!=Xw8tV&X-me_Ph_Wr>o80={Wn&3Hz@+!CuP47QbN4@x`b+BDpo8PE9U3WHJI3 zjO2=4NaY*;{M*NhaYtn-Qab`mCB&7p6(K_uoy8>Xk>!!#^%gdfH*ZMSeuKu;x+Uzr z!wiL{T3m3Q?~EsTH@8J8?{F_Pmu<=f)ZEBT3(3mJDL1=rYH_dK!yr|^CF`f1LERB4 z2qN+tLq^ps;t|q}o9Qv+b;Dx1ZrbJnVo7niSmj&kreT|k_DNMu_|}{h-(Tv)sS0zS z8F%GT`SR0gHR_H?htmO3B+ylr65`{|zkGT%)vSSZMzeP%WCyXW9$48gq-;Q3yh^3h z>bbYQy#6c(L9Dv1idB(Z^_FkPp^dsDQgMrroFdY3?oVl}S{sZAmYU77WGZd9qx1Bd z-6FTedXl|VK=dqXi>O|Qw5?EgMDkRc)8RzX(O#znDMpabq_b=zmVlbo5eT>|&$4oB z!0zbXd>-nKNWsWKlspg>4|8zkQXoorBZQi>p03BF*hT`qJ*`FeS`3CaIeP z3JxD^wLW!-Pr=Mp#z;CAi?__oE{J@34R*CuE$nMEHM47QNo4dgFS$|#Fw4U5OB%)r4qelEPnCP zM;JbO1Zg$PC>-muOP)-a{4KOBkne*W*P!a(0X(%Kw=-|Hya7H+Y#wMD(_o4}?j zx;Osmy9m5&@zKOR_&N@vt81@j7{)>()JG|KI@W>FUJsBm3?4b3%4! z&2L>3Swi2y2_$2SY%RQy6ve=Old(&Lh&^gnANcahb)~btjqnP%{=J>HqWEq^gGd0& zv*Yl30`Mv>BavJSOH%7NW!T3c$VS}56lAr$M1GKmKD#cM%0c>r~=S@zu z1zWlXkcckA(p5NQg?arRRq=UdHr8{WGYX%k8RWsE*`V^z%PxPDmvC`izt3&ErK8-_ zNKmpFt*#}mZTfi@-;VCmv$3=<(;%`6>2wr_1`cE7$f$MW+C*kx3dvR%38~C&tbU;nNG3t(IWV zQ$sWUQ}D3_*@&mb@$s*FxhOr?A2>C3jC8a$!66paGs{I+#mrA_qXud=G+&eHN(-e> z5EXpA%YDD__luYCkBgI#$QV-5JCqPt7(}|lz2+H{NGfHVzx2h;&Rkv>Gn&rMy?c^$ zcQ$bgpR%u)T`pTR?quaPCMg=1l1i;esl#iV_JnPhG^Khl`$c1FeFh9MT7aH53!(=0Z68!&B(r7lhxZ*uuOe|BlT=apyLtxeJnM5pV&m29evq zwpBwK$4?$da8IxH*=OUc9%svcHN#*Q6*GoT-d+yH`(hgtO-suW$HJ2kPM zUybIDo`^u`m7I=^yd^~_Bd0TJeq`#wTt{dnBs z{vnFhZ33IMbgEG1Q|Ik zOIreLEf#lNvvMp1V$CqncNrt6;&H9-t7{MZQWmr(2emQyE>Wiy{%AtVA$BzliC_3z&bh zgm8Ersf@~uJU3^NvLHgLLF6lf_xDfF0lKjWS@xSvik#?d*0j}#ux>KU5Rl^*#A6iX zfM${2d@|FV&Su?nORJ)1{0{N?6yo=L?SLrIK?oO!;OZZwsQ$r)C@gLU znm3tYTFkU8)3T^xQL2K`1PEW(l4T-@^8z9BE{QC9oWgp8$k%{n8BkR|4NCBNH!Oh( zDNj?Ey0?38MAyyf<%Q)AGf#U=iXdgAmjPYWLc3wnW<$4>49nZ|DX}AMr7%+{maqUvB&(`58g3<`^QhzkAMBU zwaZs;N{O8Av?y_zl*tx|C`h)+dSPi<(!FDpao1b{W?q(v?s7ZzwvK=?IK0?{^+S6 z^;A{Y>6z)8nwj593X&*@1c(q25Gc}8Vk-Zn>wgCPmw!iIL$29>g33``)6r1h(TERh zZ}d+}3cR#rY%Rt&?lz5m0&%Er*l*zNys0OnQu_0ItC zp9n^-X2yKqY%Fc;Rc-abMi3yhbSUY6N{s)d6#qvk8XG$pIYO{;sS@TH{nO(8FRhZ9 ztC6Lqn3T=1{cnbim9rFZI`NMo{f{398)HWoeS0GaQ%6Tz z2R;@SGb?=)qkqE;Y{6_}Z_+VEl=(mXshK)i8SwFm*?^t?MRerjQ~HNGK!A!r+gbiE zM*2Tq`1quZ%uGxjAwaxr!n$_q{}|l=#QYzA{s;5j%+S&FKge7K8T>y4|Gyye|59^w zvo(VF@3UgDwKfr|(@^-o{K%{QqaZ-s9K4)dT-@ATx=ez#{}8nQ;z!lY-3WqJR5T$^ z@a&&T>aj_e* z8R_%zu!6Zj?5qa7`fU0J#vtZ@7R>+VH(~PE2LeJdOIl1s%{61b)2za1#f_-x!8Vw` z`}M%Btn9nPckXm~E*htJ`7jJ3$$-pdRw_zAu$b@XUrAqKVJO0yh&Ndv&u?D{31os$ zpo}5B76x6dxO739d|gP|VHx+-ZtAFAnN@tH*+s<+5>TyIg}wic^vAt=r7!(* zbLi#ZV(PBzV;-f$_LvceC9}7=>q%X%vXVTEGIEvdaNfaLd!RgIgqyEoIsPYTQQ@aq z+FY6jbRqp$ra#)JY=9YBNJKGA6FsU*9>_3XWp;f4KqQ_7 zIl|H#74k@sV^y@gDmV;+)?o<74)2&+$>wg=l%z>kw@)+Od=ov+(Vgs=c+vFH11&An z8Skz=56kuM^N3SxNy5#E-XX%z*8!UI*SDFa&#PklZlAm_UA8+=%s)FqS-g&AQ!-Qi z&;t`>;>TI!Y%e0)1_&oGL&>l6WEiEK-fMor9+hag%b7)(ipwbRRVS8VlwbtVW8@)5 z#6T_B;zNQVKr~dO8A`*j!0)OcS(-G*0#X#IhJ4M&_V=1r7e`yDJc~d+&Vwkf&{Gbg zC7bpO)2Z7sKp`bFE{)OX)Tz{f>HP_O{-)x<7abW!ARQDCebGy%D z@=;jFwX*SAx!Q5E2pjigsH? zh6v8q(=?6!Q!m3kp^plNSzZASh8a8*qztj`@2hN#Vqsqb;^g#+h_#~BsPSnCo+l8c zlQQc19y1+hts7p38hp0=tu{7E0kJ0Hs7Sb}v-cN9!sA{#_O zcJB=w_OPQ_&38Q8zUQ{iu$4&vJ7(`;ZOCyH_^t{3nkbW9qBA+O7jM+?15$f}x{vj3 z#_9%KYw3=+=lyZ}$tn2MTmCeZ?VaBB5qZhe{kh}PB=n1Tp-|1z%+@1)D23-5QZuwe_KhdHC*~cFRYdJg?FC_H5=rbusnyiHei@c zS)01bK3b+mLoCOx7z~q(agbcPM3CQ?pd(|Fg#y1ru7TxMI30_@M5T-iDjf!yiIG_i zk)_G-agy0*YUZ#|y~v!RtHA}1q||Autj+~;!HysZJ2wvD6lmK>Zrr~+y9D?Hc^wOQ zdB0-nbk?DN#{0b7o)A`V^^v@XRPXM*zY5jKdmBRgynw%7q4~V$moyu^rGMU9eY|#m z7Jp>FjixV1AE5k<>|!a%ZO2 zLBos+P@YsaLWY%5%E5wF+UM}2i;e*B#y&u`EauRUmZZ^}rork{8pSKHG0JzF$HyWx zE^uZctiXgJXCZ`5S7Avbz(9-2qk9OF@1vVVO3~frOwS`)kxfT{=XddFL}T(bul8sS zCU~6rYw4XhQ!xTFVgns1sZhj60m2WIxog_s*8;)|@5h(;&WWwJW;kWi6ZH7bQad6K z)Ipz5!e2ezZ$jQE=^l^XH(x&94ux#Gy{{j;0)rYEcrN@tXHMH&y-DdCo6^qi%#mak zrc8s3U^&ZkY4DW6a-{$gS}eM2`ivXpi<+|2xUf@$aU;Vp%!oGBu!P(JJefdpMRdg>HW`pV|`Rb)TG{HPI&&_V)Rl^)TzF` zJLGLRk|wVQLI@n(`s2SH`P*{iw9>Rv7-3xpPo|ICk>ei!5L9NAF%xh|c#* z?T(VX4PIJSGu`sJlx-Mvp^H-~a;!deg3)BeYENJ$d^-2TkooGrfd+XMp%TODTgtiBr{(RnZ(9-D2tdgyU-iG2dUHQ zQD+Y)9O`9YsFjL}Ahf9XiwdW!ib+qZ%@56tt6~wkFK^p`)%KJFHQ7xhIDSg2J7Ys9 zdmXr?l@tV1^Sxi!$P=`5(M@8BuS(I#MxW+O+jEJlS3rT zi;RIPn)yu@nnq@aG|7-9V$_*C2kyOxH)`*#R&60|(ZNr{#9-Sk_gJIgniXUJ;?cT% znAxG}&-00XBipR$eOqtiElcP`fNtdog`MbtMwVHdQrw}esEDPC0vm@sA@kZ-G@&v`m0)EGFSK^0zogd7eN`oX2=cZ# zK!3YCS;3RP7*V@;>F>nE_ig*$%~Q<*E%vldrKO`fIVIde1A8VTbsjrQaX^p28}a~ij|on^cT){}H(NBoF=cc~&G-BL*X?gE|Rf)zG8OvY4F22oR!M-sZ9E~+P0B5UIt#sx~k1XKJNvYb% zi5l0zkCgt9?s0Vg=49T)L6g-qe5`W(8b;-gSWCbNkrsSsf>i4#!W71&vMh^6EW$wq zkv?6V#q)$`hipI=AJmqi1g!^ZC-3VR8|o!z#k;aI)yOFit98*COHUPK`?kJ z**c8wpI(c~@B1B-|F!Ut>PQ@+BD*2|G2P3aJ7)4-$S1@aNHkPARZ$t_ZX~_6TuJq% zN?|g$hJ^Pq8;E0WBS=hhF<{VM$;?p7ViC!S+S)@pJeF`!%yWnorTE=5JA(EXJ)jpUglo17!t6~VS97*k2QZaE!G zTWYmIB*g0HHzR2Zkr}p_L7X6Ct<({{Ft)iVOf#ZEG8ouC)`K?9i9@?Q-*Z;V=r-Ml zf;nTw*W7NJdnsKonNkZacGe~R%>&80U<;}QiFpXo_3nPq?1jQ@1=dpz&Ye--3MV2X zKRLZx;(jGD>%3RWT5G|+`CHR(%>vBNa z`;T_aopXJIxklj1t^~SqH+NxV41pIqhlr9Y)P__Jk!(Yt1kKlWm0aB6BU8VwIQT?4 zJ;}@jRjt&*xsG$wOjmNhck_Q03y+blraew0q!y1owIUxDtO97)KB5hXot!^{H&!IH z2sK`mM>$3*-YpkdDv}_RBJ-++v9~6;zD{V4Q>R7EDE(vA)gD=TmokAtKa-Y*YA7Xu zYN}VgJ1jpIux|BeTfegF!k;-Nft8#V$QYRLGm7pNec_HT^2+y-|C;67_BWlf@~YWC z#Ey+pI}^A%&Rv>Ae+>YK0&w+m`2|!ufYor&0jq=*6rCHjO`0iIJ>{K>(`wAOEkNMv zV2+f%oft?=CO@BpV0tlz6Oe-=X$s>7O_0OvR|Mg|EbK3wgMuc9?ngdLY1V{Xm9f}? z{}#Jog0Cl{@-4$WK3)}BkO)537Q1;6y?(QNCuK3pB7s&U)h+>L_JB3Q!9Q%T$Cpce zNhHxO0b;)~*di}IE>vE#XjX#RBdZKQe)ZcA^bkVhxqTF*OXTFDQls(HeQfccY!QH9 zv#nvb;r@IT{N^@Y`}{da?mgQ!CUIrcE@W}V7Oba`s2B!uCK?(Z#9Q8wY&zW0XC2h= zt`Pi5R>Yu=)@hN29=O&)h(|3>K4jl-F}*qoe*2}Jf2GmPa3rL7+w_iTbBLfLX(hf! z*fNS{Ncn-Ol;bf_sAgiJzU~c%k*aZ!!K#pe!lf}{T_xH=BZiMEbjh?71k?j#Ma<=e zOzlzl20>N;6M^v};g~<0Kh)7@gzQdhJFOQoE=>JIs`9j+0a!~ z0NcV<$!{Qr4xO#4$l8n8YJyRfRIyWt6W%Kse#yNxtaSXHVaA|veN@~Pvd|d3#4V8h zXDlNw@Fr)&ndII-c0vj3B(&H~`8Qg$UD~f30dMBZ*~YvOhe0SDxhK$eCxTGXvQ#*M z;WPR50!+WW#|#X<%!|TaD}Iz-Cq81V#^UX&NmQM_ ziY|j8RZ2!FLJJi0CryG8HA|-#t)He8`7sL<1CjxpZq&kZhXv+{qVV=r*p+96NN)|3 zvws%h=?_4W8V$uXqgOO>`gVSMs2?fVuius~14)OAw!=GV)26+^Vgx^B8DNP|vhMx0 zi&7S_{py}i;u_sQvUm73B7?!TMVooofGosqk`)R;F-Xs>(9|LSev1+L6pMa-$`?f% zwULv8Qu-#Ftb;GdvMU33e8fxzpfvCg zjAzw$D*^9!vP%G#1B`e!=_QpALmQOa_toJRX1{)X9z{eN2MV)Q)gSrvDD}>TP=Oq0 z06%nLEJ%Hr2GN`qlOq@cU58+dPT_nK)JQ zf{a&kgr{wcm64zkZ~5G!qM6@y^<0l3)XvnNjt7byJsv%6kd9oBnJxFjvqw4 z7NA#A#`=>i1<#IE;~u1KT#`gvMip$IMS7V=F5Oey=gw+krXTMPPo?!IX<<+6QT*JA zfN}zh{|lBfHHs#S({wm~8(FP{wKKN4d{BN{&x~|Le!O6mIdE7$X9e5z5!T(mX_NOq`-R0r^)=pqspjPtJV{7m@DI#mmt9pm1pn+3q8$|aJ5N` zk<<3!c$)hgry*v6SAohw7r)xq>H-w@nG|m*bCZ_%-sPB^pD=YkASg z%gLarR<! zBhP_h$D`QgBA@Z9*&-6L%EW)idPdaIY_sd5NS8Kjn%=TXpX^6WljKNIJ58$|iKQv9 z3An+t)IyrZsjo_Td{4_Wl)EihCc|%y6(&1ajVzWGCyO8zR&x9nrXf6Y#9#6V1afjb zC>j8XC3(t%c*+7seTSOI@}}z%Wgn!SZIV@Gm5%!$W7_4Rs-+suoh$lDiJQwV!_00Q{3X?SKqukL zLt>9NWeqN(3xMleyy~}x$nQU{`Z^Glu3=@|f@;}Vwa8K`RTvf6#ud=Vqf)b# zBNBWwNctVXJd7|D0K8o+d|9%wxpxN{tP(~W6S>%P7q&&30L=QVcdTEoVGU1R0U3QA zbMV3{W3*;xCI2o%bXt2oMiV>=T!0<#0|{IpuTNac3~&p=idahvo!tjc4o5D2l2PWM0JWWEH!}uBHY=@fa5I zzpV$Wssxrsj>K3yJcVj!yekG&cCFE8**hPD@v0xuF5)|!39%*;(J9rdMEtc(Bx2ak zk1d(DwMWxW&s`Mkouua$Wnh-3ub%nqc=wd&c0N`;NNz)D0-YjKT}oZUQS2^@@7@62M<`J+o4fcOr^ zSo>?nwXP2BL5<3Y{)~P~aIm6k1qlY@=?hav`J4f_ncTCmQ`$`xK4-DjPxdW)DTB9> zUI3XZ`lDU(Mo*_Z<|)zdG$_7^yeYqwp&Sn3RPmG>P7P`z9qrMbG1#b}XJF9~C;c-X zFLCdTpH;Wqtu?*m926a)I~a*$y26BM(Ij9 zNK|WJWOSKeRY%pb!5Ck&8oz}?C8p04JA#^wKh8z3V;QD*@cq z95_-o%LZFJMj^`WgU2JGlX1T4{Cucs+Sar7&ru1BdGxT=B0>Ev-wBaN)b8qdLf0>5 zPOr#vzc~*!W4&rK8F{$_-t-zC`K3V=!+%*5!f+o8z@$K<70rB$D8Q>F?vRAa6`*M1 ztd7^H!vAgXbyZ9#e~U8+fFE`exs%B=xHz#(1;vQl|46PT<5t1M`}D+#tJv(d?wx1n zQ6E_>i7`wRrSxJ7K&ves%7;jA6tr&QIPik|PEVCFby&0gL`#^ZD*;`VNPcZ?{f#x| zKs!+_=F7(%^024@#l?;{`krxl08OW0RG{#Wes>O9$=+xXFL^D`gq^kD-Wyc^7{}ll zUa#rQT>%s-=$T_jNcsSBkwV=-Cojv7EyT;&V7C`SR2!mbS|!a#{zrTxH;gD7k_x3) zWdlSIEUQY4@G(}aOr*3bY!Re5P@$)CnQulZebsMei{VEgwRjdmj?>7AeYicK>|KhmB}8xxX+)`&$O~Dc3A))@^8=GoF1k2~JQoAHTn(c< z#4?Vv3RV?k&z(8wkgesQVc%aO%fhwF|5U~zqN93e&4+;p=qy6HqEKW~_BPGIJROUFm|PfFs!Ks;5B;3gy^=4f9=0?%`bn8Mfz zNUU6f-3RdEcc3j0lP6m=Q;P6dhH2ZrwopnTqD@$x)mf|r+6T;O4$+m`%fsty7pn!4 z4ePWw6c)a47z{G1Er;tmLPu$2=d8dHe9f7QGi}6LCCXXJ9bKU~3ML=|?@LicP#WZ( zS>R7il6Juu6PK}@o(yIbOE_addnAG4Xx%Y_fFh+mtSZKMl@Jt0k@g6*xODWqQF-|> zE|i{GzKj}rXladS8;P&PfhE`QbFDN&s#fZ3=L z#xrOCZh-4Ae8b13L%1svu11rH6T?Mar+Na&!l33b^RY~{EOX|aR!p5+lvP{FFsn6Y zj&*>M>5?cMVb!>1uJW!Li?tfo6!Zp#q$^T>>?+{ete+WFYe^_3OwS;%$>eWX8!#O0 z*)@h)UcN`z^lO;;IA$U7=DRgWXT zvuR-k|5lOK46(JuV(alXL}tc%$*qa`E27%Zn`4U?^GGQJ>sM>P_V5&s9bBsHUkVB< zy{_YYaa7LPHnSaW2ngOsj!(Ksz?q1etD#*87!8zMgvy}hks}xS3-%lsOjU;?>EHLVb`;$XbTb8nfuWJ$AP;m=KTIOOTyVCvY+Y!@d%9(4cJgA|2@E|9Se{`w#-PAE ztf4SnhXno7GB=c&-BmDFi!&l@;0+24gEa(x69-Kr<>sT)Bj@JbMS$VWU|{KE6H{sk z&1Tx!Ng|abkz;jqiR?3_e3RSP|00i7 zdY6n012HdSXz+AUCttv2lW(rjfNmS1hj|-Wl1#1Q!;Go==-w=eGnLS0HN(`EXcwAWiN*r`VmiR z6Ozew`x$EcP~=U(v5Hi(phQhiVhjdhOPMxJAwP$e9d%sZ zeq0fgQ69u7=bl0UDG>(4yEL7KA;ZpE`el1f$;5mSY&p|OUOb{6R0(HXEWkLa#3;|_ z`k2)>R3%&~KOHr0%MSUefTXc}QUfn8X^@v^>$WgF)xE#lddqA~UBHwD+-P3SKRYlj z7nLGyCyP<6uq(VnA0Q_13*Vp~?t~6=`f)S7ED*C?E#2UbC?a;|n~czy!<=v}Tn)dQ zEOIks`>$F>wdRHU$?UH#DO{%B@)yIA8Sd}vbQheJ#3FDQiW8rUfenKUWoZSd68zP| zFpU=Z#U#zVAO}+`S_Ke_m1BpD6P(j2C{+x%a4hQF_E2u!kaLO>s(@6t)ff)x=Zg&M z2oxEBY*Y4qcMjx-BSU4RN1Z30334@aTVs(3X+{8}TxHk7SZ6kI&6(Qj! z0vW%YS+z81d4nBJ15&x>5MS}Iu%!X1eKiLTEe%2Rr+IAZ11HOjS=re`*`Ce6t2;d+ z*4lNi{2f9U%)-zrv9D)tfm79{7Tw|nWo4GDk2K1Gip3OiA!pO~N&2+Yt%!Edv|WBsaw zqj4*)Dz|p0&I~=_mh)F2w8UThcH0l)6k(s>Yl#F=o^$AvDemSbPMs7Z*sbrFcaPE2LV_YX)!(?&L;08nL`X7O z#lBASm_q)bA&5qOX{jZ%HA~%@^$%}6hAJBK!ph{rJJy<#hj|cyv{pmhIYAYu4p^y$ z8vBWWYiz&$xl-(@^OIx2&KHQp^ps5-q?y)!(S^%b z(xb>hupHxXcWwqGI1tyP8^MyawSH>PNm%Ud0jA^2o{HfjVYo zBZvb!W?I!r6rXrcSw(ziRoe`A(>C-wI^$z32c8sJ(Xd}M4@4b(zFl~D`~e5ZyT+1g z<3BMVu7NcMs1lm8MMJrV2R(#V`{qt9lAK5Rm?iz-fso-Cu8>DE^4~dR%Ix!}(!TBK zP)jCsRg8QsZD%{<$b*i9jXUYF4VALP<`_fYwIWL;sovsxG(j*v_pp&bvw%@jebb6& z%Co@CbqZi0E9>n}Vt_QRgbubZCI$qS z-UJuxz|fUquqBpqZRm)@G)c@A{ow08sRrr?^@<~eie)k?ZQIWNRy{s9G@PBg^-)8* zphL`~z~k5GQ2`&Nj2)~|NZFqBq~IguoypB;>bdBlE8>6=KuxW{av#=P7DV}@Fsgaz z5;wrwiegj9zk)NzpBaim!IF>1TFkW}_v&E+wW`X_bK9JlCF9=CyDntL6F%Cxk}v*L ztQvMttq4@p+J+?VvCZoYMZZr+thUk>A&n@aD|I2t3YX?)>L}oOS=+O;b-puY{c!D? zP6017Ju9E}hcgtd=34nl_Ar*;0pMwbV9*4A{0vWo25`k%phaM6SUUo)A< z*#?BUIbE5I?6CWtL#iOVzVZ}e+_1;fRxszfYD#uAhHnmG-fQ`I>aF)2j{$l>$l_v|bsDNDzS98^%^ zCwft#l>6+e1BYJ`ZGPHppSKeUtcKam?+a@Nt~`jnh!a|8{-%E`ly;Rx%3()}$=^G| z@e<4OEdugQ6idkJ88sT>os9U_5e|)u@GKTvtm{WLaC@^NXP_JzSErxUsj!`-iiR7; z2d&(7DY$LOO(sRAAd3$BPK--TIhI|Fd>P@yXI|K$QKXebiW@Vm)kYsls1nOJ5%h@a zPbcvEeiM^U(mV2uFUJ4lsLCd<+X>!ow$YYLj5so1aPuT+c?FXb%bNHz>O}GD1fykE zS*#HKwV#%OogBw_>SJ3Eg0-ES_%5pyBoKJ2Dc?XT9hK*-`I3-Fj^gw{ZNa7Xf+nh8 zmPDqdm9R6gGNEwUC8Lfjk;06XA~kr~geSc%#bB^h99HMoKH~_hgr0N}EQz^N1;9o1 zINhmfB`?Ow9E@RNGCIW$QngI{>z`;eUg4}`<|^tRh9?lw`$DE!jdtfAYWZs;*qk$W z;)1W}+crj=xKa@(`=b~u$11A3Ujtjtc>ugi7LV&kMf4vA!6X{;eK$h6VGTSR7g%>oRBp%u)rqUof;~nC+!k6(|&L9@b)B2kCqN>x-QfZ zwN*GpOOq%BCi#4+FF$Jq@k4IvA`;ygM}=m6MLKe2Dy!+YSO5iK!LV4Crmxt)CR0uy z9$$pWI6gj39|Q`h0Sf`yOj2sTls*+1Sz2W;O-t8+RDp)~_o2T#^L86)6&MoRsEZF6 z#@=oefQ?gbxUvGP-z+az=;n-yhk(my5FR+=jMgv%$q6B?Egf!+)aOgH0ntX{R|3y= zBnsES58S&+UqE_Bmd;WcV>0Cp82TO9*Re zUW4O2qJtXmzU#&{#I3HC!96EG8LjnU2o2%1*IEuL!^rpf7lbA&ol zAgS93I0?~)$puw31xJD_3mS&x=_eC(q{4F&&=rs^1tOG1F;n7|mOzNY0Yw09)(zp_ zs{kBjia{vHO*l`q^$9-$iOGApNNBSxn=3+S^)WnaJiq%k(nh|#esJhJcq9NEx`$a} z44t>+AMxre5~t}mKnZA^8^`zUb2Sj-a0cV)~BTSYiI%Lw@ya7()b?R?TEd(YNTfm z1%QK*H8!bBCC2;!r$xkRW0qGax!C|@>mY*zGm;RqRBZF{qJm)gl_qdrBqia|qS4dR zRV+lECd@Ct!3IBb6I-wh>^m`)sKuF6fRh6FIZUJH*)QL{%4CpS@X6QCG9^q^Xj0C4 zbH?vqyMh$tPY>0`t|TOTsf&83sdplx`|#-~m|uK{xA79nH~iMOB(IL>^41;!XCxwy zeA4hZwdyUx;k_p8Wa~*-8qi{jPFN@NEit2R3UOtcj&uHHeI^?{4NypZR)gU?pkPVntuF3(QmEnR~k4XCPk$5;xJVW zUfGqQ?8jxj0F(w3dWW(vKggB|0w{A+3+nr$Mghj?3^-gQsp!VutT?lBol%5>(Xq zQVZB`b&Qw215NY20mfoWb7A{{xsD5vA~#QR0%(xuw=S-3H-riSEFlqOW<_5raR|3Y zV`)KmXZYsJm%hxeIT`_B{S7~*W`h=(Fe$n@5iwAQ!M0wwU3>k1tJK4n^9WL{$cqAsU+eXofKce?YyJ2nF*;``K*aJY7Kh!L=jbI|Ed( zbL^?EN)c+<8Elz#eACh;y0vR_|3s7y7^cY9vqQVdiGU9rN)*Z+_P#P^CUSyH^pQ6& zpzpat&EC+^0KjZgbFN%%rXz*#LahJ%tA}59IupN)*Ovtzl&Wyc*)DtXBs&XYclxES5X~G0J%2g()8&oiT zEB2dsj8 z{>Q&TauHDm4cfg@je)aL05>7DCA%K2J{u&f0!fhjJH&>9uSRExd!=80KNtuk-Z^TC zGHws|CPinc2h&f7<0-5H-w2y&H(hCZ_#a^xqiI(U(tsqMhCokeoXHjSE2KlxWE{Z0 z1J|(Oxt|~FLQS%?OD_PgsX%lP>YFMAfEgTGy4gq)Ac%!0`M|n`={N@tAAyy)T6VC(M)_OArDjK zSh{eY$1j7dCvNs7BI>Rr%)QFof*dWfNWcv`6LloLlkIDEu1=MKy#dy3y{e{m#^7!r z@_{im2qYMGB8C4~h4@(%wd&M2&5KLbD%y>R!YC{cUIaaF?KpqoWP5uXW{n?id3CdY z@d2{Q`JuMmC)Bv#vJ`7gA>^~Yy3x*uLb%g{YHivZwSf(>&Kc+9nbVblAx1U+=$V-O z2Nm^mT&$dHR#ajd&Ip_K>H$uCyb-;E3m9@qu8otQG=xT}{WX-^WoBz-&aSe`u$#fr za@o-gMps_+4&=8i?ccz1iv%O7ie@6~esx-TUu%^f8>K)h&tj%bYE93;@jdpTqUrLzd?yn+PSLs>GE$WbUyZlqrX74G4b)qh@JHnY@IGg$Ykb>{*x2( zBI==-DGz6;SywLk+AC!LahyE}Xdd0}6e~u9AZr%k%Ei8iNx_SCk5HGbPCt*wY(0xt zya^4Gw;xL=4?kqSjNQQ2l=41(ukL-`#*QhayK`{+;TxoZ&o9h`+fjcQqrUlVw%C;@kMQOy$cVGhcX?&Bi0cbKS-sw zzqMZ0_4zOE)!395{NYsg;QT(%O%Y$SLaceuIO-h+v}Z;^Wv-V)CUQ=>&O;^HZYax!vYMWtT<_Y}M3BK$1YDiobG6EJ6 zeDX}~i4HF_E??LMUx;n$<1)vkMaQdf288B0SYAH=&2^E(8S1?EZ_s5Hv&ZxVfdGJh zh)Qcd&@J2CiBJhGp|5FgTD$Ow>(}c@;iLsgJHf|Hw)c0>_o*$VwbR!ZpVy_eC!de^ zZjt(xo{Ni*XyXZzn--5p=AWL|;_K}$Xmj<4)1xjZ+iN!Sr$hj_zBJMer9mvY!==gH zL&0kd!H-&8yW?3cIR%ZK=ctX>08On)x}>mH9v;fSF8Nz$~3N&kZqMUef5tTky)?7HV;*W zLEQc8G~8=U`dTP=Qx2C)qkzCn-WI0Vkglm+Uc)lAoFKK@Rx#FNX#k4ofd1olLH)yx z%>0T)I3aiSA7?NLTJ}ZGn%PQcyo*cw^2WwTDFGKh{En?dJn23lZGw7Zd6^L*7pLv~ zK?^$^LpiNAD!g_E;JLl3?s>D2d_5bUTwBK$5-S6_F7{|-W|)H2DHbaQTD?Q_*Vs%{YxqPec+Eg5n2iVz5HA9B$DrGUGPWd zWXWLJ@LSj80G4g`>P~+&0Urd_c=ab@$);#eu6x#jJ5%~OukPoeM_P0RqJRxZ_N-Tq z=fZe}-rS;dDA$jC5`Uj(g8e(JybQ2Nv|MiW7k+-Dtn^N*#`5Xiir7>iOGuB`P!hp~ znR7{{A8=s}?qt9Ba42qsXH7FP+@kH=+qEkNN}?hyo!TeTz6D4Ph;shWy^E~C=;`lX zegmZ)ND4_X0pC-Sq?{`x^N6rjC zDvhE9eQW=e*TLS#)O(-F-^;g)%bjSS&v4WEC?7S#H?ipMTL+)v%^si6Mwa-(=flo? zZ7+G5Yb~W0eBoa^2{^x69)KU4)!tE_C#od9vo~1dB6qJ(r;i?V zZrRyX-6Ky`Bv-EO_J-tXteh(4F|yKkVoQunCj)0EVCVMifdDFbJi-7$-du>UW-CfS z0Z(63FU*rCsab2995%suC2o%5EsBip^Mj0#_`S`U&As9GKe$PI5__dDmmh0BVcMNh z&h^(|)?UR2*Z0b1CEBPwzNWaXN+%7lh>xr?OMLi-C)&+E23bETX=QF6)il`^g{4yShFND_T+Yp}HE?1~W z>huad+TrVKe*};KX*aAxD8tOf{?G(&Ta8_1iq5n$7}cDIaM@I+CK z2iqb;8-ah;xr`or2w_3#>3Mp&(?$xsVvh`IDt1Z?ad*Q_`5cVQGxM#C`N^{9iN@80 zJ4Pdd_1MqR(jf33OpL!p_hTLvufbndpI*(hVR)?7M)iMDwok^epRya_XLjkjZT;nW zZ&y4g(CT$td1dG#yM%^HD)!bqR1>wQ=V`ERy!?et6XlwXDW$5;9QX!(62nY;F= z{>{n1Pnj8~mY=hSKM|_8S}IA_JEJ6uL$=-zTzn#$KWTh;s=}WKjn=!Hf3v);RpY|n zYBU(LFkp8d@lGzUEWjQ%eisU!@_xaVi;SlFRR4Lx>uTe1o3+=VUrzx~0VH0$dOAj3 zhTY2yeFYL(tc=1lFdKgqd_AN1+*u>UiM`e3in$@NalTN-;Rq1P^H>Un6@ zV6*Noz_-YO+%7k$h!?vxuibHB>s_y8`*0(^84XqHbH3z*a;`i0iO>q=B)qi*rxB8n>}7w<509{TKBzM?jZ-FUK~#`#E&cg$LJgq!oFVD<+jRbG+V} zS6wben#=)WpPH(6vLYY6GdK5PmjcK4(diC}vNK4@f)$_DEbk2bRoBh;B^t%7e0%}L zgf4(X8U+OruZ4RB<_%@=ftXGEU_smWh;qLo}chL znZu#hU*~7?o#-rv{UmC{rQVoJo|5)rxyuv#ps~ZNkjYy+Um?g(-YXy0r+hwyB$>Yt zC3n9$VIis$GdxD9?Ngb04NmbcAX${(#aDa7SR87^Otm}rqzmLPew6p$dZ5XmNdM}e zSc|^izNU8X)VuN|6ScIu+{-+DtgY>gR$0l>e|twde&nrN0*&PrT+|1vU-iMyU)6D2 z=li^Np>jKuZ&-5uM$J;f@d;sj9vW=?d%9Gmv+Q{|)V{G%$uvMdAW|F^5T8l%ko6JC z7gktDrEn5Sp;0=ikvHw8z~B@KGVwO>9Dm<0C+SC8Vg}D!K8Ody_f8j0jfj5chk!)O z7Y0YAp)(a&L|PS?(Bspi6$whXSDjhLD_mdoJ5uHh*-67GUX5c;N`gNo+K;?0t+3C} zCHansFb5vtF}G}ip7Fx#KF84C6+Zs_dX>BudXD6t=I3qLt?51=UP*L#x)t(3iqyc2 zU}r&I=umNmOsl{_YMpJZFW;{h`lK75lv{r1ubX~5yY}vTA@RiHZ)FZSY_;W){1r0w zHhC6z>cK2P@j|ghLiNEHe1MOC83GvDBx~co$bCO}%z1o-5wn#Fbq!a#=R|y_p$NKB zcrCzL@BY;M{K)PO_qg=Dto8!=%te3RH-ETz?u37GcfAe!2uso=hfTP<{zi9C#oz^T z^7abd_2OQwCx+ARyFF~VQKp?D3%h5h%g_CycPeZ1o_d=bze_2685)+DHg#rX$>_)u zE!FHf852lKHs0>~^+6>B@yg?5yJcGK0XZMW<&$4WD?k>mz?_p<86Q`|0~9J6E$aKz#h%abB(B>2}(@N$u_}{4n`y zCR*nkXsU9Wj1busN7g$D7^7kUzD0i|w%i^aVisexeHa&D&id86KF*`F)ELZNm$~%Q zYc%-ZuNJGn3_Q4>FKwxZB(G-BehpT?6<4n&{l4D0xEDen^2`o+)raWpiu`DAp6Pb@ zHP*jJ+^3f;>>a>%|8hj@WnqwUJ|CsNY(_$c>H%*UXx;t{?&uVH-TR0iwoRRpNes(W zVuHM@TP)+_=O3;9*%^v-IORJdXQ-GZUZgPU8{>X^?xA?SAoRht>3U1u^oW{UP`C4r zN#aFZ-T5M-)86)FG8LAMSy!|6rTlN9mVkTObZ(Ko_r(pqPP;p5){FsK&e+`ijL&*d z>-wsw?K_u0KU(5C|HU-zrV@I>_QFcMQM|7HUzVf&3HQ%^h8pm)SE;#nj zZc!tw+}M+s43LCmV#JiG==awC8!WZx7x zYov5z8kkgt!HdN*E?pkM|GfJV?tD6ql29B4$N0n?GMPL)9v8YgThYf6| z7fQOCn057M3n->yPkAYKCRCRjtsOm>pIt#ZXSfMii$qo?}-y564^^wnT_Vh7yb+$Q|@n3WY_J>n;7xRVpw$2qk2wq`nTut%;mvV{m)1X1GNn@s1hw46X$*H;5A zIOpDSxq^5+jaWS8$T~GlRq}e<@#Yb7eM_!Yr&gz89|DymGdi^@vz%I&m_pw>di2oE zfBf4Y6#o1#f5<+*dI{O&;uBrCFAIdPM6sfy=g1&ZaXpw#+npSwLlk0qd-jvAu2%Sc z9%m|o*WK9oX1gMngo>uRfaa5#CtWuhT64I(=Zbb3O_piv%m_k7=Bm1#L*93*?X&CO zRJC@gEfgMPqC>CDftr_@VqZ8k*gbOgrNQ`*e*7P7YT`CZc@Z2uy^s7(hPbd5(}ZqN zYB3(HTlrpy&sWq zKsvVY)e$FBFQ;?fu!5@(#5OFx=G9kTL^fNH$00F!AlhE{MMF4u`WU`(=D0lih?fv$ zLUFIY@biyx@fSBRHC^2?#rgR3%foo%^|Ls8`fD-~(pW2AJ1_lkid9beJ8so|_5ArG zOD-2T{_fx2M?Ue@z2`QfsW}L(XFp;e#Y8?&Wn2vaG^9|)69{PNXm5k2`D!A#n_~UK z5+sOiSe#)+wA_859rqv1!nAB09_+y@XOH99@F4uYYIH0{PDDWVU;lkc=ACUv1Z`$+ zSq5ujhZ#E5gXU;NHqx(cseSyJSSa~l3IwBxfBO6DW+A(PQf~5DT)Qs?G~R>`7RItY z1I9ErCu)Rq5>XW5X^jTZ(i}pQ$K}XNI2&}Mqxd7PZ7`_eTjx*V^h?8XrbrOw_czJ3 zq%iA(v)bnuRxomF4C4=G<(6HIxFH`eE+_EujeD|A90&yD8>hZ@sdK;BIQ7sNpsCS- zU*wvtQf?l4;qz@K|DsXR4dgOK$DcuUbD{)6c)&%8+R_|EDA)v-i*9J0L1RYg5zSU& zHH+hq+vBSCmn$2OSmGEZx;RXyG}!pHwq?nWW%DH&46d45ZsU7Yi`i*;qc!xrlUsz3xd%(BtZ8bY#S`3;5;2>gnw zP_e~|l}8-^;>Uv5jxLRO^jZ@nh=}{>;a=SRYyzL&o0KaVvM)@P5x0oO4|KIud%jjP zY1_y}Z}~I7iV#ESstW_%0aBPqYlhCkAn+*)C1UDN4q!j(TGo%Z&R-kz#blEZY%OH5 zp*e(eXO1D6&dN8OXaEq1MgsWyOE2K{*G{9Oy`}0SvCVojc00k<@|}Vb6VAXy_*n$N zxksq8yFIEiG`^J=YW$NoWW5O1&mgRaq9{0ZVn~(?MRa}h_I>&MVE=yk{E@@G)!>S= zhllbH``>!B`z1kw=q8hr6n4?3UPFH~qKncSk>>;ayPsC|~`ns3eK*$>wNvH48L( zJu>4ZvRP}CfwtK;zpDur$p=H&!4sk1&P791S*mU~%;!EDe6^Q+^)=Vln^qsxOULy= zzS;+g967CaZiK^H^;zfaQ`gDF`mJJ1*yRKZ`yGzNiYbKNivSV&A3EopTeeLYt0`AL z;@;Qrq4nEwP2Pg=#^VuLR}CU-?%9pI#*?(*uE(w>SX^|gLa-dG2&Jf^@Ua%DVa7Nw z>n4$Eo>d{uoF`I<^WWAwfD)Vz%@ z+)c5o3HEpt1Vb+5V#1qPdO#bDQ`52;QmG6|r7|p`eW|QF4?WeI`h2mg2^Pr%pVuWH z6QP7cP!^3BmSwX#v{qy{x? zjywY?*tTsYlWBJ%nMPR`K1J@TwQW`Irh3SEMr3Sf65>g)s|mI$B~Co7%mS)sMG39J`v}R5puj$v~)e2%6tz=JQ6dI(y3Gd7Ci?0kxMJ;A;v4JVJC$A!259mR@Wq^h=LgHMAf#rR4pc>n$s6=R$o zt<9o=&1t1%^?`W@+Z#Lk{IKf@cDuYd*f|KF*AImjbSQi&ZL)EI$BV^E)9C1=GCDRz zUN}04fS)=O{k58rBGZto8K~zR5kCobJ;AZqG=BKz_Ye+u(%v2%jDF&`=@VTq`lqU@O%5A`PHhA%qHRU7ftkMDn zj&!2E>kvkN`4a|L>jDM+m~(V8hUQ$py#JkdeopsABSiCivA-j_>8$Qf!XClvP{=GG zKBr<|a~BfHL=nt0MrqSk&PY2WL>n8Q3|_eSff@=nkzal7EFuyA+8JLwq@m+;|4ym_ z;2y#2P|U|+RPtzV>lZHWc9Yk=%;COSD%cSa8qVcQLpMh5M6`g{6%1?S+?f;bHMyj9 zjw2!Kn0z`@`VO;tpH zngnA@ONpTmKD-g7E>#T#G;-unuN*O$_>Q&VgC z*larKc_v4Q^MmdY{3!hK@Baldi4NF$H!r4RWlB6#jN?6FD99K!)9Lcb3qQLWW`vX9 z{EhFBGhaWBmS#;BC5Uv@bGjyZ)o!SYb;LGy4LnY8V+-JDoNV3Oq92Lz(P;2F*l2?1U>SL#C z+hQGN9?=i|*t2!55#Jeg*(3Nd;7G`8MJyGHC&xJn=Geg&|-ijy6;}%4(Q!0squlLHWjJ%+)pfJTIV?h`T`sfX`=bld z>B+a$Pww2uuYLD5{K~86aA=?p0U^aCyr@>E1RI9a@O1H36ee08nrbH^O+_-s*oIQO4=UzSu zk;e`Oh1P~r?de)W_U4lfTLl#^<&2|LDq?;74=(xrFgBipKoov;+t z)QMt=m-Pyb*}yF4c&S*_2d1VLThi&Qe{ynO8M%HB!$*gt18HCHe(A9!RNP%^)mFAP z*5a5dtggt$T80eS8f?@=i?->Ar=`+aEG#Zze0&0*jS6z-Ft?D{Blt;h`SNA?C#7x_ z3NhZ*j)G+drYjXS>vHLfmPMyI$BU+c;dngXlS&q&Q}(~iEzJlE7x17TKA%qtsEKV?rad{6?yKdp zjzX~{g~P>Y&BDSmX66?8{K68JV{w*BW$lV(8{o7^p{6NS(t89y1KgL=VvF#41KjJ1 zRQ4Yz$0lcKrcfs19QFtYJqf6%0Mc(V-jT@U!--6`>C>?(RfwB;y&mZV9`Jh+4r$Od z4IYnIYF&y|%$SXGxr{=gha#Xu+_o9Fx%df_K`nyN3?VE|fCUgtQ$i;ciW#4aEc!i4c8}m^ z2(gu#rU6rkK=33tDp{i`7%_VW`-^>t55;d?yEUCjX6~34YqM;-oq~37pp7%$!Wbe9 z+-GvDni-LE;naEE+Az4JT24Unpu>`VDK3 z;OB(0o<~^+41jCVjLFTk_*FO%)>irl4ozyUQU5P4ei$s2&8Wp#l!JsB=YGbCD%E`m zMO~zjS3O{*<1aH6!b*xlvx-YeheBG~<5jbIxl~Lf7RyYn*tVWxdMSu}ZZC>{?kMKc zxPRxm{3RCS8!vv__=Dg2bz|uK@%+r4J1f&GX|-(H9x;Y&Gw!xQ6sppyN}h8(7GyJS zgAv9Fw{4Yh)9a=cug_iS>ut5Ppr6GS7coD+2)*hEfYHKjj85Lh{{vTnM8mj8rkel& N002ovPDHLkV1iv7)_(v1 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f93a31edba7e76e3844952ad60473c738f44d9ab GIT binary patch literal 38677 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¨h8xaoMrI!hq}!$Ch6 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≷*m|$)kQb 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 literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..15b87e473590759937d8a4c3b906662a19513455 GIT binary patch literal 10272 zcmZ{qRZtv2*QN&_+${`)2X}(I1PSg09o(G&!G{^#9Rh>9Cuoo`Kp;qP4=y1%2^w_s zZLR#fTYJ%cF5c(7r>&~1x;j={QyCxU1r7iJz*kjK)cqIL|I>h&|N7x<9nOD&#aGGL z*B0VyCvM|y_b&hh_yk^Y^9ghF^Xc;oi3Ck=P#Z{2vK!9=1;Qf&c#m z8!>&$e+k6@sbCl2WG}AZ;p*Y7=LxZ~1Mm}mKvn%GlKd}G=^vqGZ|`I03lI?2qbafb zr&9edRof}R&ed4a$<5B)$H~JTASA%&J-Lbg|1u{3n-So9RZV>K{U1aBA0HnNdtZNu zw;jOI*VofWoR`tYr-v5hH{f~>dxQd;VgQG8iUra#O+{@q}L;0VY|HJ2hFh)+czK;JvX6qP${}Af` zf@u7kns1<|9pJx@ir3TKLFS{O=KtlRq5qEp@QVnEy%H7{5fL`$mTvxs5dIe*J*W3} z06uy7j1uYNf0E&UkqmTI0rpO=cK@c%>*nt3>fyj^4|(TgldxL6&n43IrtrZyy&yE@^x@v2?p2YW8 zpC9(;r~+tC(ysS%EXART1`a8yx>0*prOezMQpOcKERw?_%;+!(AOkQ1hvBOL(x6Z^ z)I(#2toXDPExd@lnku0YjNl8}4aI-vHzI8{kKpifyKy7{q7yO z4HL)y>Li)4{jS&X4_t>cWPyjl9=HFfECXMElsVIiNV*iJSbb?j1|zAKO~c_;QSHNq zr;w1Cp|Q#Zqok(lF9A}a+KUV=beJ?Hd{HJy(FM!xN6V+DA+Rbx!tt%Z!t%QIO7CB< zzcW$U&42pIJ!GtEjSAy)1%GIB5$|j%gX6jLMZVPBkJtz@#eThb=O!vn+q6>UE1|)j z$0#eQX!SJ*VjwtB$3&6%mLW|De-J;8hykb*#i7zu4p5gz0x?)di-T`<`^n`!Iy17E z9EJAvc7v1fZukd#I&Bb~asB&&$VZa>HvBRvc>#=5y7jK0CW*Y`L(`l6MUb1bMPN9w zfROm~kv>c5Q-8z3pKAO`#EU*~@68+I=R}9)2(MS3Y41~V{-mtSL1UxYi z+2CToI{Co%_rBeoCeUsK%8A+Tzrl*=Hr;-x9ihX_(ch8-PV_$Tek%-nC>BS4)dhN2 zWcX$hSv#q`$7f)uqppynm>--%#Mr!*jN*wejuL=jSYe|KiQ#Qv=>^8Bs8pv$YN{(9 zp6SYDPSFqhR0~q(=<`-_%h~bD1$!PIJsL#edZE6ia;8#1W5~%&fM{soh%tC^6%J1X z$6k_OytXV(5&yOFW|p}n+$WbZBaw{u>GE{F;7c5f#C6E!n9opSw{JwynSF$JHmjN{h0Ussih}`*k(N7gPxavi5LBM-3>|5j= zfE-U(7uZjajoqgk&WEFknyfQP&AQ?O-4|FoOu2;8`Zh5Fw1|xJos#tl<kn>hb@sg4z^id`$S@*k9CTNl9ujTSmW)bmIql#~m1VduMQ<73v3YNRsPY z@#hDd#^b=Wup>Q@?X%vS6A?_;gBkekkyc1-@RQGCv_!@C>c3B49&9^VA1|tTDRY=b zJ`p=2=-T>eo2hb16N@-ON}p7T7|9?O&@F7D{wr(+VBhegVHB)1X~V)UM+uTT3g2YX})c~w+KQ}ETAa2iPtPsCmpT;|LX zS+*&9_<1Rd_oc-Mxe+b*=dmHlCnVm^y+4>HY^d(--DrE*^<3{fXQQ}KPjh9Hjn<2M zf@}2f$NNV2p`gY)(}d3ITS|}HQx10_M7xKtHGapJmUVK2*?QnXO?gLIG4&Xcl05GX zxXf2Bmw)4r{N6oMC0rqQRM^v%^fbZ-qm zTVrjPAZg3{qtvZeKYZW@!jP|wyW8<}mG$8_#L`qS!bT`)0w zZgLQR`6DmHUUu7du`HLnC5j4~M8hj&@r~%oTH32NY`n?6v##;vIx!=wgUjVp#8Wb$ zk@7X^I;;c)s9Jg$ANWPbp>O6mNt8C=J3hc-$rwit1|de&1OP=jU+#ONoFYE`jyKrp zDvEH$Z~j8{nTLluVtzVgaTR}pX}{lPW3E?HCEkHg85lr=v9V6EZ1$Buw_~UIKigPy z^)~K~Q)ex(f@{37ZkkaCB(`?uj$^*u;%So)>%jZe16+SKvmtv(FWY2ZA;z_s_ zuXc{B;7+TUsY)j+`7grtqcb++WOXx3BJ)c~IEbbHP$&?9?p-N)lPNseb|6!JO@z{} z*1yhi4Hb$N78sRsAao-@W%D>j;?x*r^cSQAXZ3>DXUj~t9)TB0y+R35DFJ&SgqQ=Ip7b+4r^9CM7 zejCM6mzzJVwN}yt)6iz@?7Y&6sSyQpeAd~SEjTewiz`<09weuw$H60w;*-OOZ~%%{ zG^V%V5NnDB&%)etsC=4(v)P1efC(*!EnE50ZfDQB3 zW?+D$l=RJTV$D8Go=cs4&mPp{<4LYaVG~OkRN_Y;EQnE?6=z1z^voSqc!}rk_%Vmz zo{AoPodJ^c`+6CgEP=h)l(x(nNG_B$3&^ zFdODq*RS7vF%$#vQizG(;&dxF`xxM4U{^CFp_M2mgg34;N-LW`g6BJh z&J|mA;&pO@Vq&tIDp5h6KT{gETNsMjB9NT?V15qW>m2tB3R^YLI zh}nEzf1M%-pQy?&?tQ9`Xhbvw7F-inQU*$@&Ok*It%rx0xqQg2z^hkn68gfY!Rh^4c~-#TWd#{^W={|?Vza2|wUk=)W6MN=GoZv01W=$<%1OzV%lM6_)H=ejR6**s;Nh+b z661DBDB{Wa;WCvAy!sw5T@x?e9`r#fwih8}uf&!A!#Fu!mw)avoSw7KAim)9iazN# zp{sM zB?~eh+rQ_9UM7L3O3nO=o_dyr%n_vTfv-J)KDWVvK93cQa&RB6HkhyQ8Sh*@AdP7s zcQ>BkZkQz$7kg~iG1Q#|_Xpm%Yl(4l2L-1DcFhh+lmU7swFWdZt^|&1KS0z=L7<*C z)cq2AB$F{1=peiuu^%kiB$fzag+jE+-rrfR2JTW>fDwv~!#YjqZ*7>2KXE1b_mtvO z`UX}pC|{w_vXIY)_sQc9;ejAI0_dj9o{mDWVapM#v8T}EBi>?;VV# z{y+32(pBV`iHr1Rv*=6+)Wjj#ZHVzSTMjuYwh4U{@i!6Yh;#H!PtPB42Z{3`WqQ`A zEnA<>PLN_R`qq73<1&n11pIn324BznVf#SRuodmiPnIUnP^qkm#8P2N^mH-?JOVA1 z?_#mccJ<$1Cqit@jZowFH54>Lz%t!oBx1Y~j~1XIt*H3}Wo`1@zMu)bozI*DIqT}F zK#hK)wk&P4e#jl3K4qh{s65-}`6a)lz7Pq~_jhqiK4q}27TA#~Q7Bami|mIyD}9l^ zx|-J?o596H;zczST*Ppi|3&^XcZ_=CHalJ~NOId>YPv+@Wu!;f+^ zCgsw?7zRG*%-Gr*dF(vyYUk)dR3#i& zlz((b71v!Ghwh|q$+wGF3?=t8_1h{)z zq*4}3E|1N43A)@WCZ2ffGdOveMkw_tSxE3*HVK;2tZX%=)gkJHDDKq-CH+PaS?)me z=DV{fK|b_tQBO6B)3qEV0?Cly&IOOp61FjrP*6;8v=}znmka#FhU!XED}kNh(gP~=AV@_dcQlH9pl|@XIw)zUzj}yhJe?(bB=SU*yuCbX52rKoRT+fE!u9 zKAm4XSB?`E-Q1}-)7mUfl%6op8(hZSF&3x~XERfgK{d?`%(6s(K&NLUs*7P*fITX6 zOI{wMKRr?>#meJsf**{jejC)Lc5iwY6;m`QXRg_P`()xUFYu+e}ccuYnW z*`}I{6wLQjf%AELG5hAgAJdm|??bgST+G;kHbq&)lIosvFz92uLe9KuM%UZe5{*fykc*1i)J!NA62{*8%twN!*@iAEZ96g;RZphn?xjQO z=k>jCVRL1S`j81NW(5?*3@$SXZzR)ceBm$2dpPM?*$-EW!iAw!}y!BTS zGF|Lj#gTFOu^Cy>j(#Ef$jsfk4)SU5);URyKpr18;GU1{G$tK58k7fS0si`|;K2@j2HLyEjA^#tm3yHHZn0e&V`%G$TFn ze2KRIi>MnBx@&O~B{hZHFiQIYjVD4|sm1--gh&!op7s`VIEA#|?S_(1RPnrWe*v;~ z%#3F_xXDk+A_$E}5bm@U;z2%Uge$&EiDT$|$4yc@0e5wJ&BMIKo&w|W2Sj5S^bibw z#H=LgIJNMh^I{<4S+QE?QtMGp`O!sqJ;fIA5;u$yi_BGnDmSHHI9TgYt*1^uV}y^x zS}$cl-@u(?zZgbjZlK7-cjQ9s;)3Sl4xgThtD)vTuPFtx$2B>~yaca@TR#H=iUFc5 zL|d36a@ZKX&J#I%W@C|zh0z9pNGg!YkN!pk$98V^pN`8qs)S};ns*@jfL$d*!Y{`1 z3^JrD%vR%vvbWHSzMt^r;VKhp3M^>DRotqN+-!<75sEB zjM&JM8&ZXuvcnAXBcfi__EC%vd&&pWMOMd45@hR| zKS|!pwkA~fU;H;<9$|m8$9?LF_L+4&^A9r4FT~CrLRIs(t~B3v-)L`ED;5Hro zYM{5OH8k5^0q+as0DA}8?uM43@9(>S=;4ZiAN$ENb%V%_oG?cx$iJ<>OP z&pp#5QE<=Hf67w%U4zoO(PF!?N__(7=9PIF7JPHkamTdCDA-FA^iC4`BlJ4REAJyt zE87P(ZzXm+uhTS^feU*snbnYhKGEP^<7i)%AahCmg_w3%88w0q|*LQ5+TD#KPD)+ zCI0Sz^k3Z#+awK3<~9X~J*qw5Wl} z7x&YsxkHCx4Mt74^QDpARK&gq0ZWJU|KAhiJb`oHkw*W@wT_D^?^2Iy^ zL(62P3(l1YOW-XD0|6siNJ>!9=E-Wb?oFtXE$eHPXQ2F&thKj-AIIv^-BZB(&G5DE zCgQcphl1J~*Paw|hTEW+yr>8I6CbR=mO8uYb`4R51p8lUkDc`Ot31cm6F#Yiph8dLu~MLw-6Za%=$aHIXha45^%{N{KCf=1Wb-CfL^tTtWt99w*&VT0 zaK{G=*}DiV*`Xo$Ry;_SE-Lj|XRu_g@OCL0>pmI(JnYMTTQ%Lsv)pw()Qpc33(o+$ z=M_tc=KeB-!G?}f|Dj&h>9GG|lBIpsoAj+|S{_G}_nz!%ZDW3oq^8iHyf3H+4}<<_ zsP(}kIqE}Wnegz+I9Eoi*dltvPL5HQ@!z2Q?~U~LgL*|wHUyDj#zfE9ij3`(r*&uR z7yb56qiy&Bcg_1+)Uu83G|zjM)BG;4j%X(k3|8IQI;>Zx{`E|j&ns7s9`#0U+w^sw zP#lYqpXBuG^iti|SENWXKG2J4J76hEMGCMhj@^YL>2`|hp;DNs-R8?B)_b?@tao`7 zU98q{#N+mU;}8FPx95B}AJ{5dcfHlCw(&j(86U*em4{T5VcI!m+V5Z6{}!CQE) za*s2ulXe2>0`t=)-&++hR4ZaTQtXV~3@Z zZnZHV{nybP{6!pk7afRi80<&Gau-N`cu;oS{z)uc7#8!sJqiES`ZJ#B?_K+;>4=#7 z?#F<2tPTJ2E0MwnAQkotX4Z>**&WfRyNeHPJ3lshXnwSvef`LC;kiTEFtqG40lbz% z;{Fy-7SxZZCFweBt6D}y1CK{4^WXjQX}USS!e&4H8TBm4c-zRu`{QDH>~g^ZR4 zNtj@p_a4hq+haMi{Jas)R-?*b=>mDSWgQad<@ov%)Jbh~X_KutaLhblyE?m%>Z^^G zE9O3`fAHDM79o)b0xNR8KI+epjW5m0WLK}O+&175$_RM-7bBw74g7(pB)Pvkf)2uo zm$WL+*-#d{7ce0v6NyisHe=$kw+zli9bQrJBJ?WkBHFI+)eC%Y)-6sy(ta4ehHC|5YkVI|t)_fAO1nPf`oW z9-l0$;fH$FYLJsZeqa&5oqrgp;pgpat$P+mGL?`6NOP9n?o3pXxr|Achj22T7GQeO zRpFaNJ}RUei-isSNSr)diqz@}FGhk&=J6Brclxt_!n|e^3kSFVp1fV2qOGjfCj}-o z9Boy83C0V$xv{>AQ|j34CRZ7>G48bm_g>UbZhd$TV10LTfGqh-+i?)(a(U$Zt~BjP zGYdD-ks*1tf}3iiiTI-2!y` zj#F#w5o)n#*%78UYTO;{i!gqHFpW>QoCvN`CdODk+dKOGd>m^l&Y*tg4gcw1-_VS4 zpiY4>jlt2(hWBqBzTxd8`fW_5ec`HSgAq|pD*4_Oy?xD#P++-xLMKjo^>2E#=lA*S z;`(x(Ae;Sh!|_Ac+4f&-{~omIR@UjG?ao5JmBLrU%eIRzCQXBmIDfpe=cx+CDfiuA z$J+k>wtBa?Ar|5a{3OahdFJX8m+y1!ZBApTKDsDMJv1wZN06uyh-FYp#BsG7zefm= zzS$B5bB)avfhSGmYX?8)r!|@b@B|CiUgF(EH+(&FtE=1@c>J*Ol4`xXv-ePpMMLv8 z7+c%}`Ow+YAdXV~(^<8X)(A|alq)@6xRylNeZv@hvrvfKcmA2VU2zU)-C-0duBk`=YnGDDmZAlwhbIN9D8$GMj=Q4DyuX1sJ!@vB+eb|wCq+%*f zuWD=@+LyVIdlaw0{H^I;d7QM`J|mgKA?jSNs8(+k75D(Nm>jy|hB5yFV9-`>U`%|( z3w~hAwlP%ZMBJae%kO%Jy-@JUtTF2kEc527!evCyGt{G#J+XliwRWo5V;5k1cwO(^ zhkDH4#Wpji)_Zi2tr=%mOt^Ua#D8MR5y*7x8lEu;ufte|D-Cj{84s4XAVHhdEP zyOLh3?qC!}z|l@|c>0kmnF_eJK6fL-Uaa3r=qFtV+9m8pUVe!TWYK!XJye#WpsS4- zS&1T%?7SQ+J)(%o@`rvPt^hTm%EOH?^l0`L6>}v)yfYgK1r*_5t;u@PwB8S9!A3`X zg&pHZHm{}iAGS5}FJt2e!zv>D-U29u=Pz3ecVM8@qU&OWwBDiEK@m-vgQeC4s-|<8 zO6^$-z%|&KN~2!zk203GglO@AgvDC+`4s>`Jg)rfgK}8m!rj8M6G{$}?euZp@~+nK z`OJcSsrl&%IT1U;}w3>LCT*% z!41&69+2=DkRp_h|9Ka1y*a&Ym^_Ai*7dBjvzBdYCck4Pxz*@9x6inZ@qfg8Ga~G1{ z-`jgbT#iP`<5e7#eds6ii_XSGRP8qsRP*h@hRwnJ(I)Zx1hh-9{`gEN{h8XbSqy&s zX{vYh?Q6a53B)sJi7If z+*kFcYM<9HN{+K{Bs;e=&4WlR??)>~>?jK{^a8W{<^qbc5OyYX3K;DhNCWr z#4#*4bni|J;$%dbR;~E=IsLEQ<~J|7-}vg$m3KF!2db-&=^GDTfVR-b_dT>UXL~*p zo}M0BCq^N+T5seQq@EuT@r^6j9{x;CF^Hm0?kHe6Q!1|tt{sng;*9V8E?t9t8P^~7* zeYNXof4W1{xsayzJp>kA?ML+?>)&i?vB0-^FH+RX`>4?NrH6)D`9uXGe1)TRM-0i3ZsxqE zF6RFX6f208g9*gR!~#-dVdrJ%|zdO<>uz( z%FE1bZEtL8{;ye^+J1F(vFw^A&iS8uYF6&{CcM1jj;8MadUWIERr-gzLa~&7bTa>6 zjLd&jczLDGtu3wGpjdcVh4r1)|1o&~>GOZ+{0~Oc+RV-BKgfI)InqA_|Gyv#|EA{V zN5$}|3lFKi;k+bw>cC@R5ZCz z@a&&U@fl=C2YsE+tu zFf5>GDR}g7?$f!NPnB4RgjpgCNMKZAH4+28ngQ#eU(~|@A5bD72+fHEI;RnmZ-YD- z%4{XsI--Rxph3E#bM>reFQZfdo#Ws$#<*5uqINqvoffNv%2f}se)Fl?V$GOVd)Vd6 zl5Fq?={tW0$?gazx>G6dh#vaY!5?U*lPHZAl@w;>Br$kNc(E-yz=$MY9{mv(7OhD80r=xx?rFV`5+S3psQ%oNSR&3r%k2$7-yZ_Qw|&PR54Un zd|LLuW!@9|czpMHZO(f!e?|1idYUACV5qYla_)YA3u|hM&cVpxte&rOldSrx3{DQoK zzQbb*8ud2;nV4LC1rqqak}-NBO`Pu(J$+zbj*k!hEhCd)JF+$wNQHBZ%t=c-S$o!2 z?i`Y>UGdijF-3hmFB`61`nOwd=Om6Ju2CpY(H_jJJ?}_gONH}w@!{`!H}@|yZ||-~ zbNSo(Tu;B;)+Ps9o7TNRkZNk2A5H`sMv-`Bl<+v}!)537Vuy8Yc=1n-YbJ&oUQ{=1%w50wZFTvw@RCHgO`Ud!t1o z+<(oqL}C+3Wb<-&0uYeEA2bUv>R4ZYv329Y5}wO&@3d_Or51Zq7p=;A!^dAMQ2| zr(l)MVeR({5J_5TP zefHlIdRM%9{OH>r@qZM0>lRuAy!w5A*Frs8-+t$O|7-Yh`jle$jN^ORxjod~>8Y%% zQXK02@my>$k!H=xEsy8Q##l|9V$N#JAQ=SEdgWiB*w>!GYhdr>CjMzl1R^kID` zLkKB4sHwin>sP`wW>wlCkkr;#s=Z$RdRMGizN|T08usHNMin(;K1I=N#KK;@iFd30 zm;uPs#a@GB_@@&o5gJ!v&`JHo{m-{wTd(iu(@q+vdsM;^ALW%*yuEvV=e{jf8f$mf zk3N<}f7E->RREUjVtS%bj zKo>-=Ei8%>sRCsC(#FjKQgMzXS7}R;sIFHw)!7Xp2sV+1bI;w;LY*AZ^&*Ni&o^UQ z3LaxaIaLOS2l>_IvNAeNPH?RFSXk~M zZwz++eo*s1V)z{1D1JI*<=eKFVW$Dt676!Fs@~W9XxFqm%Po~jfGrWbXcO8%`>yox zfxg*0*!KNzsXyBG-=$J+{*95^w>8JIR!8Rh?I*>LRIi6u34`mUKev|4SzD%^6&p3K zU8lqz8P@UX9voJLz0?qzL5H6!M`7F?5O(;%2scUbb`5&fDApqDpX>@U^VD=P3PJob ziMFw73_mMa8j_bJEwIVqza;V}5HJ@Pj;O@kzfEPyARJ+!NU*p60?t>jFBOH3AT80< zs_+ zD6#{OWBN*qA88mgbEn1{*(f?pE{_ZxakF&S?+@Lq{2z`4?;lAoc5g|$`!0Pi5uaWg zg|Zv&4Lbri`8J04Mtq+3M=l`I)6-Y4t9m%_r+a%|I_kWg?e%-}^UqJGc%?~eFZR=; zQ;S_|h_@u^o};F6UUt?c3a|tWMn8pv*|AlnU5f9788{ZAsAWwHIbu1Ce{x9b80WjS z2~o!aXi=rVun?51xHWN5D7hUmA~;r&FJYQ zWn-n2?v|7v3&LZ_PzJ~2$WcMWW_*oTTL$M zkLVe`VNg19+=_FZJng!;j66L$1j*!!9D<56@gj?r`GE*8*5H?b!ky#8# zgluatG!eD5BoagN6woY^i1LZWtwnNp)~7%dO6jSyrgz5* zCX$K`*Fqh0K_SBk~f4Z0SNj#w5_KPrP*E zBt6hnckOXp-QD-E|0`sL)<2VabjYo)d1d>hsqAdb|Md^etN+vGE8f%kzlz!4InSKs zJI7_+OWGdz*3bM3^FC(y%l4FA>KCt#S+-Gav4|mVxtll$=fPeAIbdrB8&`wx-Sm(HW$z}l9oJh$ogB6p6%@`(F9-$VC65lQ2N^_!He{KpMLzJlNKLSlYd5T z5ON4ul0B)rmJ1uCa@as4B3( z@R=H+NMY=@{M)>G=AX&4{l9L1cZcqm9{s`O38=~6 z!gMOjmzu0m?X5%4#Z5wmDnuEhBB3&yiVbA9ZN@3)M-oC%}28veau9@2kjN<;{;6& z;%R8UC%ulgUk#w%i#0}1=PRT4{O>jm1$1C8+5!Tej_R@w>=dY0v*E_+k zHzbV*yB~`N@1cORKU-M7M~d&*-)~C&Q4Iaxsoo}k-M3EO4=wiMjUJwoc5PO6`Ta>J zVJRO$^%nvHUu#Tq=^qB*%v>l0s6xe(=0q}$J-G+podSaSN8*%MG(r@HfL`I*0xHbl zLij$};f-S9F$VFKiuJnyr)FKC@?2f`jhc@XK(1>TLh;DZe&|{qrMOZ zi)`&^EL&&21-AzJ`|E}UP4$$CD$=RINvb+cOcI`}Y!OSc`z>$&Mh+qU#ix@O!@sSO zg{ESMF0Q_99gV*XyL~@0K8Cxco<0fPH$IVmKi9lky{-K)LU?c$dUSoN^uMp&P5XYF zc6C;1+1BcVzR&u0*O)eXuxR7t;nDK^aOSeE`4B<88CreG_Tm%uhB0tK*N_$VYL?HP zMmwuiLOo>g!)WAZdI=r%Fw$WFh7T(Lmq!wqXA$6N1-(H3j7v4Dk zV!vO_G(Uk;d)t=&>t@AdJBM&dK_MBUvH?&(Kw{vE{AJ>2dz5&3eQT&-97cNl6iS!q;5d8n-}LbbP)z*S$zUWB0(Ucr<#` z+QVN>BJeEp%jb^i`^yEe)N-07EARale`RY6tt1I!t4m;bv-9z)_G2|~MCfVJzig{p zkV}^^e00>E#oP6-#oyIs<_G>)V(K2nEg`iy5-YVwjyl_3Lb?s7G9zl8<7)98G7h)o zlD4b^ZduoeKzpFf1Qn6=irBx^Xs}2*HDM&3s~9g<<%RU)+t6BLQ!aFCEX8{j8`#}0HqVUHi z8;gqY=Y*iOJM-kRLGIp#Q9v-`!1qie*$`zicmY%*>=UrklH?bkJyF3T6W)nUXqxw4 z{@uXGb5#ON+76TxUG>&R`ksg-M?$P~&Wa%g+W{uedbWLOw{c;?rbcvBkWO-xlawdt zpyHfB+WN9emD#g~a^3sI>H0%nF|89y;_8X!B!I2B00x0u7N=#N$TJ+)_e|hx&WM-& zbr0>oXW_*>BNw}vr@C@B#@YwD!?6B6WYiZ?+z|-YX#aa`r!Dj{dHMEm%E(bF`+S=B z!RC32=t=Uj{oV)v{c80Szu)yuOW@m}qHmOM!cOb=TPg1L^qtdI&9P%^Z$H(z_hZjr z8`;cbMPsLYEvcW8v>zdF%DY}PrdtF*2;@=C3GuVu7>kQ2i}>gVh;w#l%vNMD<>5=C z0xYl|^!5r?n)#NWBEF;HBpLW7SZxQPd510Usu7uzUx(wXF>8N7!aJ0FUP_fARRT0+ zmN7X}2L|s;FT7n-uo*;JqFdEMpOMS9WL)`ZUaki2L>>3!`Gh9Bz5%(t{i4Eh>cTxj zl99zE(nXDRVG(s?fJ5qqe<&24c!4u74JwXfn2x8sJkFfI?!I@Ka8>hP`V{&=`I!YS zr`@i)79C4uo}?N6VkwQDGtf6!T`YY;yjLVWyTU8gY|}}J4SX9Fy0^EpcZ5g@c~^fw zx?MheZl69}G#dE3|L4{1ey08-1b^G;$`pZ={$U;Y)(Z6}p_2D9Wm^(qhY-aEDZrVT zR20=NnxjPicThN{28$8*W+;Jz%+;NB$O8IQm*^N#r{=TzV1udB7x;c5|@9T4@L`z{`Ns=^^wYrK!ynp z(XWB<19RPW$+YqA>2=IYh5Gqd0O@8{lvm+TVo@*rU+;o0RaDH_JbF3S$zDOLT01{I z!20T7jjBHq%IV7z##8iphPtiVpw05Yc*fZj*ltFCfBn>VsgEZ_OT&^V!p;{ zNB+mUk7FPAjhgR^2VEHKewR|E>}vsikgfc(#c$3kB&(RD&eej{Qlt#ikG;P65KdK> z=Y$0NQps%@){eZxw!C;JA&#~zsH{woacF_7^bQPlsMecXK_LLGY9R0$ko(yx^`SSE z3ALuDyr=7?ZXp3w-TDbxpz_IQdVCNr!{mk#mEw=-zDD?Vj*3E;+%>^$I_Jmd3@oP<*G60qeLN4XMo(`sZRI2{+8y|s|LF6$IoWi{ z*3+|J{3=w%@bR1H1B1V(fS-im^0Ii#5iL>@%l=0-rE+IR$(QHP)?q%@VPDFTn)}gM zR4gbrsQ*kl-?YZ5tNJpOpnbK9OdY1pgcYBy)A1_{!IOFSJBr<9;}d4uSs38f<{nq^vLoCe)*7oPtzsTY!t9>ZhugILn<{n*#hEv?t_(V6Kotpb74Y3 zRAH2ocu&*4;V|ve0%ip}QlY~r*=3FzS@G4erFj8EE+GVZPJqBC_p*a~>b(U6_~Ym zKqjuUh>`3xO9bsCp`90~;g1+}gyhi10>zSwpdY_3MxSdc81fB%{lJVI<5F1W1eNU- z*``0Ki$aO%yc(E>C|jT{+=hVcAFh6mL0P^v^j%*MXxi_mR!grrdoorlpPX**GlfoZTht8XDk)iyX!`KL$I&zp&Ih~psgx&v5 z8iPGxfQ;zVMJfub%!QzGbWx}&R(aUB6v;%`*sV=OEH!1ya#4aAu;==I_>Pq z@S#A-n319N#w3<6o1!xhiQIkU(Rff#HuJ>o!CY6%;+3QmMyCyBqdE>9Rd zdKoU}AB?*1Aw+^KalZ=M1?7S38U0QJN*#RCe?$a(i}(kM7>A4tVeHw=<2SsJqD%Zt zsZ({ttZoXwi7nomx!>`gXiRP?))F#f^k--|s~$|u?V=63RifE4xgf%A z87{2o_hVt4ZDP!kqLbVw>`TF(p;Emwhz)O?9bYZ;)oM(Ay9wwpsl7L^xX%%{b?KTU zE5F{2GQk-UHT42EfT9Q$i-E9x?=af66voVOJ^gCXSeRcHfWY9yL<$*WY5K7!Zm`4w zp`&>u-*l+%vmqtWd!;d|G7_~Tl0)3yeIXkXB;aDi#o~s-V;dv9qC_ASOin^gXMiRJ zHoyiORNZA&{GQIS=;tPYL$6=dGTUKhi9x|x21ACcX91c zu{zxN9*=v>KJ7lRM3KCSUH>%xC1@#1f9b{aQef4;pBNTu#Qx(0jw1pi1H+i2RV6Sh zjCFkuA*%t~7&SBz680p@@be0p97sD5itM)}1`}56i`f?~m zU$mxrdP0AV@`@ZQQL)Mf)rukgy_>{wWrOsz4Og3ogY7|ZSs%f}U0U*O7XHg9b^9Id z@<|_UpVT~EE-C^z!7M$Dc|Y+5hPPu*DHP6D)*Jcw+{OmLRy}I5$T#lC*xnW{7&X`X zLsACe_VaE)hIzIou4T%Ag!ZnAhW_pvpPuU%TMP~Prpy$uibgEPvz8RyBKdoSx-BAM zQ{MQXVeIg{DXh*$)r+Q0rIMS32$GbG=#Xg0(gj~wD|Mfu-GH8zwTVis zhJ8NL7iA6l{+6Yc)Sl2mBO00d9P^bi7dtB68CxFbVCE>;D?zZlP340VkzOmIphlGf zPGy#_<{vr-VZ%@8mHMjLL&5o7!GW=zSHtIiXyA=-4 zR_&bpnsO@cKr%_;!677QDjj*z<|Qk5yBT(FmkP!6TJl+Z2{IGdtEn{6JyjS4z~wK{R@LyXD&`h}&> zkB%#T5#*AYf`kle0;wYC3#zaSbi_L^<=r{nbSY%T3v^6=611yPaYz^(;tlzbX}#E3 zOXZ)AiQq!H^L~?0)DKo!H4UBmI(!~GpQ6aC@`GN*7jiVW!qD9u0_T4?H{5VD5PxNe zCe+-E5~z{jB043Z-o&rhszE|9moX?x2`0xwrCub7H2xVWl?%F2Gfu!jzz0bOFkXxJ za>_E^43aAVBMa(cX8#@Dtf>8TrMSZZL}g^qAcbQkr&~mFbe~c7q)E&r|5P$-j|J|tp0Q@Jd^QlE6LU= z5t-9n_!#-Cb09q6J$POlCG6Dr($4BalaH_lqPt;OTUVgtI9KA5TqV9V+Dryl3uIpQ z&Ij;VBm1G4D_KV=L#N@A-{s(PY^5;}Y2r+Yd+Z`D8yFAm7BkvZh&EQmYN^4>OS)HB z{2V5q<`3gB<%Ss+8wUSjA*PiNBS=c@14{$ZafV^FLzGK``ilFaz4pgE9BAi}cSVNA02?{GN%17rrLGlTyNU0 zW1`1)S;5q#E)|Wk3mFW0OSqaEm`}r%IM9iym>n>cFp|2cF;etF18Szpw(_o_#{qRL zYAZxooRYm}sPbVXUs%eZK@))@Q$VvAe%w>&(w~5?jZ$K@;1@cYbLE#^}p!r(+>JN&+&tq;O%Jp zg`-8-0YyJLWxmqG%OHhgJRPBNc&Ed!1A@zeZ-gQZE%_9Mhit5V*PQ%0qhxtc_5p zF7C3sNLlY`Mu1f+Nt~Y|QD{rq(GRL+A>p?BrgG*0^O8k?sEdM_MG&q_@In}J&H|dm z=+e&A0h$&h3&Xo#4M)MaEHSd+UM?dcS7%xA^>n^TT`-*a9X0blG)jp`OwqhDlUaA9 zz0DKIq6C?6WI&?xxh+u*%lg&DQhI*5l6B17{m}>*;ChZGkix zLJOB@?NMkjU{K)6_wC16Fm+AZ7(rCS8b6GLtm%a!wWPelx_yBtVG7l-7pa^F%E?e1 z4B$gf(Pu4nS=xK8$MA|UCJ`rD5;4QDqpX5jqpsLY2GZT!D9b{VMXaN0=hPOLx!p}Y zwQL4abIN1ts;>SCDsJ6Hu;C(DS3@*+S6_cm5A!KN)eC!~?B~5)v#@Qb8hOaqYtD65 zBg^2rPJzKbTw_O7W1lZWOAAJ(^698V!|g-dm7oNoisKf?t{*qHlL8XYisFOiR1{w4 z_HCz_C#oz0Upkx1k{+56JanIDG|PvY0u?B?O%=VMxK5#toXQTcQIpx7!UpvSv^~O6 zJh`w_!wJUMj5I9LaR|~}A-ik4uO0nE=AqH21Zm4LwB!J*NPN_{@sen z!EOimkONmH0-gCd9}$@+31uX$@LcKWq;p{R6 z_Mt#P(whuWr;`Zz@x4{aPi|zcT}d=GVHuaOctGUXNo}Exd9H%LPnnuLIk?HDjNJ?@ zwKNvHhE+NMyA1cs!8koPYDkS22F;+aE(intkRYEu;73Q`7xgOsAPt6o>}JsQj1~`F z0aLCzmBH6fUE1p4)&}n8m`_sV@)|JYA#@zEl5|)H^w34g_3b-ObtBwsH2mD4w$41r z#kZhMx;maaU+jUy&^Y(PL zb-J#1%{HQ2@q?cr_DAzM(SlFRk`3B>FCnJ4FCwopm9uW6k5xsYQe=!glnIwhXmDWA zdTNp`e3+~G`jEy10J43wws7A;m`Y(lf( z?bnT3a63yjw5N;)y(%%%T0~%{@P*{^;oq(j?!uK6Fa|L(F(=U6ZhQS~OITOh=TnB5 z?M=*!Y+I~^f-FmLw6)V@u=8ev6LX@jyw~K>R!6ct*Du!|A#W@;|EJB;8*m$TbXSgb zVa$Vl{W1(Fhs-S_)VEak6g0JCKXzes43Y@2wx8le^n)&v$*KussVAzbs{mh5f6o$q zAaKrXY1?Kh%QYZsP*7xmEj{?L-(lqP-apm~xiriP!x zl&&izV4`o>7Y>B{{Az9fKb_o!S5}o*fL<{OXc_y;Fi{Bi;*~J5TaEY93#!1T8R;z2 zjT`Fj&h7_}i?XD$g?tTtVOyno)wE_6o0CzizsMiFdAg>Orv^?JE~)Fer;qO`Qx{9> z_{NjI;smAlnGsRC;+T3aQ-Q|vBP2dz@!rcJgZ>(zZ?!mE`c_?F#4hj%_<3pPt$1V= zwXIwa#9l5gCkb(ar|11DU{J;Qz#7jb7Apmd1&Px?e!^rXNFJphW^G+MZKjh+1`_Uh zpKFru7>wIyYIyCyV__#7eM6{CrOIVad$M5}xpfKUYUvH7JU>&a&=A`0N&{CZTh#x8 z=U?G^`a?S+<*CBY&Cb0x3j~}f5nEW}+|b6d{uvaU)E#EbFdYkUKn1g}xWnjdpDY(C7=T|8-O;J#gIKdKCTh7hE+Rkn7C3`e*IR zWcjlc1WWnb7Qa9)RJY)mMzKj%+!Y6bUk^5)bu4=|3yB8z%H;L6A92OpUL*GO7O3aD z>Ggdl{Fbyk@0Th)lv7nkT7Y`>1SNN>Kn=fOmKV`aWRf@+Uv?7sodFRO5Dxz&$Fn0I z_x`17a4G&GC(lfWiXB`4_6>tb3Vfn~JBg!yU}?0vR;@;5dK;{Sn!jrq6jNCHr?!Q@ zmcAU~SVTmW$4B;y^KvDCgMx1v6jnvPI)I5hUf;3Ey=WA&G9fGgdlHQ7T&vs52F%nE zDw3&DpEmHe6Sq2Y>{V_j1eNtWvnp*jbP+}!ulMioBm>CI^7ZFi@ zjI_p?Qsu}A*ks03(iG{Sx7sD-M?c>vH{1>y0JI=@mvwP~ z;8}to)k%O(O6%*(IXI3Lk5?MgdL*b;!gWi~!b)3(%##(Olp*1?dt!u0qaK@N94948 zhl0!uyCfcmoo^WD0^Y`UKK;o_&oh9(4@=N+7eaV?-B5L1)$~+RcIBqN>#n^s_6!PZ z7i47>dX#E@NHz%Nu5Wb48zCWq;T@G@g?L7$E} zbfb6Y&yQxhd;UUq^DvM`mENcO#&v>P3iDtFdu6QzPZXuRjMm&-m&zw*TfERCcS7ih zH5g{12D4@pvX?-OB2#D-W7DR1ETIH*Mv*-$+nJDLb57w332q45)#~agwKd;9)!1H# z$iQ}U*f6^VYwoh##VS+V6-h$_EeW#3f^)iw;<-oeZ6dfVQKq-Nd>`!MEFDq0cx#;9 z?Lme>?3BJAh+0mV53iyqZ6=X>CZUf5sM|n*laP$_zx&7N)L6nDlW1sczY0 z6&qs&6ZoyKZBG1)f_vK}R{shZ6*FFB?6+&bQ$7m;N;P~;SWI64?A?!Im%@r(RwR+y zAZK=k5&9DJ!BaY+h`F287|DJ4`y*K!s zNtrN9<^Viq0fTPs9TU3tOccxtd@8NPzF1fTW=26~3-AvD-{jIKFn@m{t$V-#zw zT4+N%N90DRvoU_DM#u+8kB+u)eVKEI&W@}Fxl_@1ByI&2Q&+QkF7pkc8L*4g&Yln2 z<3nJuef(tP=ig}U7+zAFl)=WqZi-z;rY2?H`eK5IR4vED7gN)y6EZVVk(wB>X|z~D zEQ<)^vZl)P6Pf@?O1&)w^1J8}m*aY!C}$Rp(9cu-@G#@D@Nu=Md)B~Wu=#0Ff1lKD zrq?-!E_cwflSxe1>~E{;K`S-F-Pr&&*!ILb=s>M$)%cwN76PQ|p+r9O7)gL4FFvh2 zo6!%7!h~4if;3*Vs=;>gM7bL*Pj}Z)Lhse&JS!6(so<7G;DR(T z3a-;Mb^rje3U+SGGIrGc!xDU~L@po6vg=20MNg1u%(r1q{Hv2UpM(CQ7@yLpLsP*p zPd)3dO-YX!D&sd_S*BtT(!m6$ZRZ5E;JDm(d$Y}rpJMI``>JN#V2>RVbjN>{YY|KEu(kroHlU-Clw{E4=um`u z8^%}|P#tiQYb;STHF3Vy((CD^v}N<@F$0$w`tN0pHE1Ws;VORwiI;q(BU{0|ASf2w zOVj}fF%S!3aZv0VxPBRe2~=aRORco)7X9_o!Zc1b>Tu7u@xImc6fT0fF)@R^mxO?I zY*Jx^_xm)93K7KKt@axLZ(*A4BR_(hWg2~sZ0uT9$3bBi6FA9I$1=*2gIdpGW@i?A zMvDQ_Ta_foi>A4&*l#ID6Oo?DmM;*$6-0}%u4~C}AzlI!Qvp9Uxs5=w(1)LHQu^^~ z1G$di%^*_^CRJuIpD`Jehkey|R`hodTrlpe4l|gpUDS7veM6^f4iieoRc-4rH{^z; zqwGBY)G=8uwDgZW0tEdMAoGZH7nd+ESa@Bj8VtfX3Q=@h(j5Km)KWH7g7x-{9rlZH zun}38nSB~sTEW^myM@1%dn}=rRcOUtrUjR(fR=U(ZI%vVb!epwHo3Vq4jYD>XlfIzKGI#fu`5}-pCcKl2*!Z4_WjcLOHeXWu*Jib z)sg+m^Rrw0}ykpGwyc9 z?VX|O-zj5)L04{ia4QCN)uM^OQzC7wZj=-F>=E3 zRSz7ucy`k5Ux%4WBY$ji0U&PQp{LK8N}?^x#Yfx5dzQv9Z)>jP@}Ak@a&J%**|S}o zc@x>$p4p>;hzU?x`-ax|XC>;%JX5TqSz3z3sJPVYSv28!+O1CD1f=VDRN5K^dhw=# zhTV7nwhw!|B`9ZsP`5wA(zkQC^!bBU>E+v#5EnlsZOdO<_M|{|y0Lw9DPqfw zwD>gu2g^lCI^wd?Qu!&+(siHU|0 z$E#%^>Jxntofcc)hE}Hv{y4R_Op~b`zP`+=ck5P_e@(^cDI{}8>!=Vmho`a`SVZZf zg`_cn@g+L+f-FB>*`Wz#4d8rwa)HO)t0Xr2(~g%twdhnMsh^sj#_`R9*moM@q`3c0rc6%)nKAvRF=5yYT>SRwF#xW`6B^6jm79(cTV47N zGx(gSa~_(66z$q<8ggqtd`Su4mZ`Yl~1kuXBKF|9zt^1 z2a%4UBSb(SiVVYXSU?hrf>dX&x-X3O%=XjxZ7O74Jq{Clh`VxKcuvZ@OD_65?^6>4 zGUu7Ve59xfJcI!jIAiO)U_SL_rAkbj`k+i^qcqpHA)@a+0l&2Sx2qtIxR4>3uFQdD zRy{EO!Y`G@v9`Mu4lO-cOSX7T8mjM4Rf9XJL*0A`kMXD%B-GHO+nZ!|5qC1l^lG72 z*!+|PibQ{v#bjrkVkZ~EN_f&1_-FQ4og#Mz02}M+kgONe*9Sa?*Cb|#tLIUU8V$7J zba>7%G(^?mqD|-?SH+zX5}@ymu&fz!%GV&@uhQ1K_o6;Xx(8aH1i5y*XH24GoBlNS z-BS#Wst+9g`hI!!`tP>>lE}b-E$&EIyGgP*mYzN1d9#CRhHVS9MACehU zFpM>0hC&eASA;=J+G`2>ByK@VkYI!PycAJ|DV!GEHtWfzy@IIP6Hi{w^27apIdcG&af42v27FA&yf*R#%F`)4 zSTH!xaDcf+xFHqKsW`L}I91Ur{oC#2G|IWftgGFGzmx2&+xYAf$zYUR8}ILh6T{HE znq&%!+K#9t7e$ZcCb0ZT!OyPd5W$6|LY!64n3DK}=L;c-lar082kxr{ngws$a1v~= zqtL{aYF^CM`Act-A9A?)=i6ogvSfkfAI@at-)Z89Z-}nAq zsp%u|d+PN?wo^T}mm>@`ho~XR8cMuy1~h<`GK){z^C97qSmg3t?EFkvQA)&W+6yI( z+9^_miASw>JTubt+@N*d+*ggwEf~zFWhQ_;g5^2yx-@bB7p}vct(OU^MKxY|+Sxr9 zq+vzAecaxOOLzKo|4?hClo}Kk%>7!7KW0fZpoXf?J5vZZedN^0pq5q&Nir?-yi_*W z%+FJt<(J7NMPO43+C+?3#>Ch4Tj9V4hiM#jpUjA`%(1ob))DG zlrX0LUU;G>7M@EbM=z*N`q|Xay^UIa0M}>|(C8JWd4!<2{ROyuYl;`4mKZB7Hqd|x z%igC8|GQTjeU&yuu#qQpE3@Cukz#X8w4okZAfrEi*eMuV&ju3fM#oVEpXpQ@ge&9L zASnAI%K>j2;Bxw0;jrHRC1Y7O>OP<|x9e|edDZ31#bRss#<`{PW17zNGUwC7fVJbh zF_%U$58XZ=ryu4|e0uXT5tOwFk$Y^l3ySXc_}5p2<7b?xak*qoO(!lc$SMF#?xi=Y z)-c7%C|wMx0XB~9Zcd^YcIoc!EQdI5C|vE64eY&PJPcED-r%TYBFZYY?UfW&sTVho zfOyI9*@WfHI(nz-dOa`VMVlSpUlmK94)q~hEkhPPD9HTq@#X}BnQPQDTkY}-qgJ9L zG53L)?K)Onf~w%_-0K6~_|ifl-W?@!6eJy__6fTELMv>{Tj&KRB!OH}d;8#)*1%2s zvU7#9Nx+O5D#>A;42&ge)sk_#tW`#|YaO@2K)sh8Q}A^ciQMYRXNOpE8-)NJu0p{p zWk2j!vBrXX+mDRlMKDawSMeB>Evb1)RPV&6Ir_*Y0r z#+U9M=&!YXX`05*;|y(;giohgO2X331X{8E;XEWqa?y{==1wrvTMYa>Zck50(m7BRK?2d3X6}oPNTn6Vo5!L5aCvil~xny+!&w@g-f! z+;4TqpX98Cc~J89nke{%+@H?OV@Z9LA<;)@wedJLY51w?1c|Qg(uI^~bhKDSYay%a zfvek69$+MQC#bD;34xqm03z)?wz(Vm0)eVyf}=kPaPvmaRvCT3ZO5hC^=gbR6 zOWxtz{(YUJNDc1Ng*Y_{i^5~4kr@sNuF}?-Z6Z?&3JZOifi4t8bY3?3eh_u4t~r-$QG%)sywY!Cbz~%iiuNx ziV!v|PTZ`DehlmSXS(O;{`dITjh*0M+m5EE0^X;x_|;&SbJ9-o*z@%vXu9*CL%QD^ zMp%N@Bzf7bVKd02m1Ix^i2Cj1jXYWsHo9Rwz0rKU<4(?q9!`inJm4AdtSbRVSb=|> z>;)?NLt%Cn)dNX$xqXj%Mp`cj_*Y0xEt5@tFeW}#;4hu+MUDb$8E(Kd`99crnQD?T z;`w#9+*T5%&L%7pbn;9&Oe!#VD5YuG{7a9y8c*+y|1u4l29J(D3$g1{GSWRdCdAb& zpQ{wa$0v|CVMq-%BaVq8loNj-_pE2C@Z zvXaPHs<)6WveCMA&B3C;Xtv&w_-a3L`V?SY}du z((w<8M8r_KK3DSq>;WQo3M{>S#s%fs8N1?(sMLG4T#nX_)_~?jx0k!VuBCTsPu;?$ zIUJad;h1{{)3TG;kuGyHxApXwoQt+%$@9?N7UdAfUwCao8KoQr_ZuS)+%7(tn?LMY zUH_V*Gt?T+nioK7mkgsUUc|9X1=RS8(~Eh+ldB%g}=(#r2Bq^^-@GilL$Y=q5awTetTvCj`r3EIg(Zc6z zriE(fV!f($5y|)B!5S{^pGQO>-B!5z1L}Kk8XnF^$)*{)RvzOZT}nt!bM_|diX$HR z(Q7;57dGx4#C3#X_^aV5hxzbn);0R*518Fqp zW#&anq~(|u%LT49)7rPD+fMduSedxF;ek_M6RR1j=0c(sT@-E2%ft4IiZScwZG#?> zxt+o$$tQu+1a-8vF~4{)&y3_VBFKcfpIxGJgb3KPsV9~b$_n!p9t8o3Qnt%u*v`jY)%k))jMP|%bNcBj3Pv+in zG>YRkTa6>;geG$KIK&Mh?J)nET`gqw4c1I5_NcI0zik$dQ!yBO%y#|w%`feABX?<@ z@L|Ea(IJ);eJa0mx3^k3wc`G(3+Lak?=0@f6$4cKuwINe>N`;FWxbUs9*YSRfOfs` z$;5WKt*HLK{!R;N{i5p*ra!iVy2(z6L0u_-k&^R+D1t)*@QB@i^d8~UPUpjkPr8W3@eMyg{ zmQ?;$L|-#YbAMa!QTw6IN+DwvJ-0G_#FK&a{sE>I@^7vF+I?r`uT=m>0z6l$xy=6- zMKrq0S}tVF;ey6N%jMYnUfWqGBJ5#nq+*n8#fkA+-;J@6TpT=H5nQy>X#$ldL~<2O zF}6Vt3$aIJwN6Sc>nLG`l~5c(}PM2p-xscRS^%@+&c`WpV?687Rc zz!3iG8t!@qKbwVP;L9akwF;hDhL}}+8hl6M)LS1(0& z&Vfh1ykfjPX1shyp$K@en__Rwq5r^$u~@RrW#UwV%jF0!&vN{u@8015{%nbV`n<%V z%24?sAoGtY63^oS(mRL99z8++(I?P{cYy6JSS?Mr9LiMRj>n8=p=-xIsSexjCA7aE z4!WN6+FnpphxxFK)HerN7bR3sBrITWW&y>nFE3FG$S4PSz6i1yF);B`Voc(tBrIyz z=3VTa^4=+Ku7XURZn~Gv-s z%qu`vJpA#j?i(5R@U*T@WpvqJ#M{$&ozyWPx114&IamU8C*G?RR;4I)f`w76jdI!$ zCkfdsLy?c5Mw1XB)W#UJH3e-?VJ0JJktI2c`uqabyJM8^j{~;F7Z;89uB&yC5~t%d zB!GgUrj1TZJ6$4|nl>;xg%N>e2=h%JYWUALT~$Jw3xRG$f-a*5WW;;zdnX))fp{#} zBrh4|IpJ&xJU#VcVx(ExF-~s`UY!ws^b+{~S2ce4%;Mddw0C8&ehi-`p*qwX8!-3o z!Q8)x3ykvU%vId;J#YAs@WV4r&}V2>?0L>x~gmG zs@w0~ckj99XqKy31zNQRR;j7KP`6TsTPi~qX_YEVTDe56E@Zta_+M^*ZW}IvNcVrftJ^S{(sm ze7g*F2gui?Vj)v&Nl!QWaC6PWJ9iztd8dJ`JVUM?P>pLz=K=1AB>vUtFpM*^(9X<* zO-{g$$Kd&Ws^ZRAThw24wSaLTV%9a{qDYCVPSWD*x5$1?r5vdSM0MALK|w{*euWA| zt^kotL!>e=^Lg0SDjb?aqtdgZawn4db0CDpq#$XGD(UBP$TENufFfh8%oxd>%Ccm# z2*^q+&>DcKbBG#)Y;Z7(W^ILv6sb;yTqW=A!0N5^H;0ItjdfZirBrIVRC)4qCdtAv zETsrY2y%T6O35P(WQw8DbLOhT zptkeByxzd=6&p(%E;iFZ+0tQBxk5M8GOfi25EvhWK0N_rb_VY7Ae=-Tw%@08S0#FF zOhk_vdaI_>;;lDHY*00!rtD^O`BvlRHj(XY@OllbRDsMFVP*30vITh5xGff?D3{^Z z>%y}wPkQQ@XF`fPlcEeM3Jfw&7tUCLE(|C$ND8nr1FJK}>YStQ3j`YBP{bUJjoAxx zL(au>eQq{gc9vG}yRW|Wy5~~RwtolSlpXIW-F6jP5Ayyd$KB`i=XzBrXH_T?aPl#9B5QbrY3J9i>tQ>1-b9OkM@q-hNtL_LFH8 zixt#rrjiMzl}-PPH|kj5vyd*3wMw8#_@fgdd8v&IgHKJvKRW|sasq5*7*4>iYC2BK zV5+-RfL5Wi-PcpARZG{iIhEYhZB=Yi(na-}h(swQ7V=k z(=;8;DiNRGALV41Cvn#H@SNk4c(4pB z#~QV;cL}+)w?PW5fT0Xz`}?Dqo}9q!%oNU@oyY9#B&H_D)QS~}1QGE2nrhjcbzD|t zm-}0%ZroWK4*eyyzIZAx6UunBRH`DIEnt0P8>?&USXx@a=H@PT_p&HgEY)(--(40k zoq!q_BNb=_!eH@!7*jLQ&(6X)I|rHQgB^{45>QLin!&}pTR81=py>3aMC%~ctgi`W zM4&ikt;ua&c)7;VkJ~8*TxmGy~&$u9kZJ(Q_8Ip zi3sNBr?IdwhsBF$Ff%=g@$pf$ibX;p1OtAhkI^*c^3bWau+HJ6>x6vJwqmR^$#$?} zwhSt1rK2K3G~z=r*oUFPIHsmY@Z^;Rq|;Afb#)VW@2z2JWkaoIda10dsT^9hcsKxU zWDNSmG_<)hVAJF9#)shf1CYeWQu-CFBawB`A?x^(b=+$O+AWcGg}P~#%&2ecAxc%6_4k-bfZP{gDaMe|G~@yX&rXi^7p`5L zEv2&g#?D^K+)X82vu25Wj*FY`T}L?V!`j*kO2rI>*HCX7m4j@O4nP69B7p5<#Z(U{ ze_35!{jeXC$>g^8+H2oOI<-SHZqPvz0Rh{i!JSeqCDpd?xy>D``H54W6!iO4V9m~q z;oP|yT)cP|XUB84&hW7lY7v`29x3*WAZ+eViTUo>bh1A1oc`xsN2^rjynJ1@Bfte(K}1{ z?yDB|c2-a*S5U}obh30!_+5sm;ll) z(X`7(tvmKm#AR#ng*63R0=@_mu`uRmCvf%3MRmf|h0h0rNPkn42%bL+Ha!I~HUc{m zgwUIqEC53bb?%qDUy%fA;3bIh9La3m9 zgII8!iHd}m63p9Wn%D-%2Itt~jBRTHWEn)s%@)kWXw03y(&z5Hy)Rz=!RumgXA}7% zC7uP;>y00GY@7&&M<#Lc(lfYw`#MU+0?QXNyi_Xnd#;!(H_Y>n?T$0y1*oD(b*f+_ zfQt*~aOH_bJooIASU5L}ndwnPA^}y~Qr(9`td9d~4?EZf-&f53Aat`fdP_~sn-9v% zth3ZLzbDCvD9ue!J4>U2>D)a0XU@PlHxF+x4iO18*{5yW;?7>(jf1~|_TLFQe+ezE z0~)`o)W9+Y2nwq0ed+BJEhHyIvFyP%E$PujswguJX=vC7lbg^41=eQ3ukGtPOAE-N zkag3wtB!DL(xU-fD~wvTgyL=mTid%I_4EDMz{ydze-Qos1L}KS4^Um!U#Zoio>x2L zI^Go_`Jx2I8Kf^52yiMd%+5~Zxo587nWwJc@}+Ya8b}~aiYeWzR;P^8O=)U#$&TWo zbbjcFe|NXU+LZFHpJ;2<9QW0({32%D`-p-yB$qZz%;<8%ZmaZ%^DbnC_M{;))+}+f<-1hs8 zy}tf<>Iaw2PLbh09 zeep@n_4EGvK2_r*&2!*(EK;fOW z;-EH%HpQvaA?e;*9sqXKPq8j`OP77n;kzC6V7%SkAVtS>GZ02dX>c`7(s{Fv#d-;M z-D_C8Ji=NDJtrLoBDU2UD$f#odvG?^;qLBAFP#>wUbmU!RGE|o32jqq>^{?QPdBj6 zxZDzsl}W@y<@wp6#<|%s&$b=8x25I?d^5q4LjSnc9&IA8PuBPdm67=Zh zcOSVOesGu_J$Bdi80_fnwH>~!`-+a%Z}Td>Ml_LDEuOU`B9(pz=dIF0bH+$(r zlAEqGD7fl25%S?}?ZVpJg0s5^H=PD*RgYVy#e|!O^tL1uOHz}!py^9Y)7GMW!Ge#W zn%+v<<0IqV;-xY1tv~-`Y;W$OR-=Ab{UJWK#|L*eHj$~4TzHWALV7e?ZcMsDJ|m#L zC?TF?@CJhcUtnQjhJWQt&*SSq_Z3V}jiIkU3PbCeJm^ZcTW-kcjiKXij;$woz->o7 z!=dM=d+Uy7v>Z>-8dhtWhqf4rn&=+rk}dr&(QHN&YqC^_x1WWxwF_rs3r;2@y+Xm0 zwYtqcx5%WIVi5Nk$6cr7d!FRwPhYLgNgP*peq=hK>7M>hfs=_4@q55W#di0I|y;?{m)Y`3&t|z^ASK{MWve{(FD-Z(_=S}i-zcC6=u@+xY10isjZkR2vzTee#X8&Ol5xa!$Fyxk<6`$Q@(y|Ln^_P0ve zDOal4+s|TUbqhOtY2*vd_kVC8j;V=ZoI5*>(cuBaNMNStF>wT&x9eAYK+x;mbY*tH zq&t|aqsFQy;I~`^Ds@y>cF?%DjQZ*t=^jXCnl2Y!iA#5#Gx4sJ?sd-DZJ*)W3WfA) zAf%a&CFDyl{T2S?4}bq7y;+|I zKN0aHpBEBO2`Lvi=Oc!$Yl{~b_~)K~3X6*iY9%=cu2#)Y%17E3Wmj5bTIAeO!E0~4 zhwpy>I&R!tMY&vsMFXv*1h$t!qhZ1C_o@304J8l`1=aW6kM$_fnd}ny=$hKmln$s3 zUaiC1Ny1s(me##BSjnX46!W(98Wje27tC7$6K`r7ZuoWWj*s)AXL}9DDoWBNrLi%y zUW8-S9{EK+PN1ZIaq$A8(S8&P4yx4(gAjhl!H57~5Rg}-^kxEnU!uQ1u03)2Jg!}P z0#lQth=hDC@_;;)q8}&sBH?5UsdOGUZmr`ksvfSEF`-Ci8GAx;h;YloSK^CFMj?xoINvxzC;w7c4%s;rQ!zGOO+;%t^9~OF(zSUHa_L&X|e8Jq@Mg7ha zoULsk@+F6Pb`EgY0r4(_cvIJKGZGB$ShaekoJrbm-B}l_t-G~a z8Q**9FVLt}QLlUk>RJy#xmw5OZVLHgl`I4`BNzyJQj7^H=cJUQhQXtWc$ir;8@4U_x;TOdYSwKW1VpV~S3?&$(x9NJbs><5N0CTGRS@}n&0$)42nv>w zkpWzJasjz~Nu3@k$SAod1pIz=pQo;#$CH=OVtA+ze!tPfpy_QvJ^Xv3`-DWGVJlLg zxpW`a(vobfZ%S0i_SB&q*D;W(Cc+C>IpXC2|fpifq*{{7#>b2!r-~HQwaL`0b`|?eAE2C(|$R) zj)Kd!ZS3u3u(Yy;yUQEM<%=qRBC7Jj*=bz9G>`s7OdU8V7^vJp1jXl{xdhMiR0V%y zYajW1Sv}^^U;=06Ch?UoK8a4D#c4rw*GVQ4Z z!t+v);x?5axF)YB5`1}PDv&P~g~x0c&|pI$Qff z)~Yq;xM?ZnEzae2pCMmgxE5aR8{lcLYMHrw6}4IgmRW`H+=qCIPe16x3k1W^4Ii~* z5e*rdrtydn&V-a~f`JWdI`@x^4DpK>7cenCs(OtrL9-TE&zEkrS2Eh#vbiFzzkL_4 z{_uvX%2QvFPKcB*?e6+i8G=rM(P&8JQZ&V_lff5fY73?9k^+i?i?(#A!$}weeKEvh zA(iBJJ@dn@R#F~L96QkK%geCtEW=&jky^3h!gDeb@}8%$SGdNmM`F1BOaE-N>I-uF z_y5xtGU*cPrQ8F1Q=c{Hx(|aRlgg|spR19-k`Az#@Ysw5ALknD^9KxLVqz4R7B8T` zFQJlZl0$kZra~)ur^)J_-85c%{XN{eb07IaSp^PjNl1~FL^74b>u=stV{J5j)TH|u zorGO&mwq1x2m89J{f9XiJ^i?sr!2{Y3%GYxOyPftfhqOm~ibp&C~>$<{ywupOz8>nyv)~`r>?Ie1s8!kT~^6 zjafVhD!@!zO;07$c{Re{eH&UQM%t!J<*Hig=tA?7hZiCh(!49MWq0|ZoA%Rn8f~|( zj(EKfYKH6f+NNODT0^re3a(|w*;~O-=tr|>XP2s#YJU6vmhkl;+m5Q<*G)_5OY}roTQSjXdwDj4iSrK&^8>nkXKeQ&))}3Zsx}vP2F$(Z zG4TUk*MBrVHE{3W{;Pjj*x1@}e)qrr52SWhV3sqd!Sw;4x88Og#QLKcobF@Et!lJV z_6ES%2*4tKpHHLhab$D=(MV9uF}B}J*7e^H110R#9}I;8swjF?>O*ltg;H82!@+=( zaq3-(pyZ#Z0q(S_`jq%n(9=lW(W%st1&fD!&D^$AjJdbLy|)AxZ=PG2UcGjCK7aS# zU3+~dY^b2tenMkH9Dlt^%{`GcVlqr`r2pbvi1ZEfjS zvaXM-Hw5s$pi>3YU_i++ojWsyY__Pj!X`sib_Q`MiJu%F#`M&vIuTMJwzojjw2{pf zREc6gnN!*k1S(6=fna8O4E_Bv^%%X~scug7M?3ZET!{OUi?@7!{(5vE^xl(C%ofki z4qJcxr{BQp(p}UF`;Ydne?~xpza;kSNkQT!%yDhqwq-;z9*1O6P1AkhaJVT-(iexW z@m>#xu41Z^6Ym|-={yewNH`S0#MmINU0G17Ht9@3>32D#h|QX=N!^1;}MWaoPQ}Mz1%Y*n|wA~H#$MNC|SDMPQUM)#qhNo5Ln@8$~LdiNgI*Y{NZ)jl~=@KNiC@;kcU)h8CzcCN}B z?_+WtUfCWDU2?n=2!xBfJ7(iQ{`Oy>UfP6NdwjGWK5j%2!k~;HFH*2Pa;*3JrQ|UQ z79&5FP{7doVj=X!!iqJ~wj1o!zq*aB(5nM`6lg_?ghRM=aUSQ-O`~47I>AB#LPB#! z*Wd;P7!_l;chb1Kw1JI{y-spZ1!A;TP3lV$je2Q$LlF|gp^zE|Xl5IsQa+3;t9R=pAA?I8`W|{)xngl2iN=nkHABi-m^ZwQlJ6O&XIx-DM9NgM-j7J63VKmK1cvC*}0rjrt?Yz?+=w{a*ntUgCSO|Ilf%I8b#CLBS;+> z!_b(|Zzxshhif`Ezx1$Fo7Wurp@-w?%jQv5kqC)USgF?404@a@CI4tmcGC&;h3B5Y z)hEtjU?9=y033I=`!v9g38oy^IBcmiM|wspxI)U+qa`;^V!6kdI_rWsbj8CxD5Yt{ zP^Hz0<{fD@yT7)pf{ZXWI-q!DSDsib=>;@x zuUI>=?xn;$%;UDVMR_QW-aj*WbQ~P2U@?aNL=^g&DYYG*KRbhBxj9Zqts`0n$GXhWnzk> z-{0cwUpPP8b3$aTl7y730ruu;YgQ}X(foLMahlRu1N^xW%MZ9 z&EXb!FD^D-<49D>t~4!jRA*#gMRQ@M zD*lkasSr$dRKy>0h*lnKjYp;0vb*BnZ7tZd+8r)2uvU{jrNqp#Tv>0}%EGd3x2Jr-J1djcmNsgt>M+^0W_9-g z+c=;(_gupc50LQQwCoTCRUUfeqekRT0;d6XOptSIAfUtIWTLAA%#kX%C9*rXx!mgx@b!&x@a$v}CnXgK60yXJ;S1ZmWs zkCkT8OyvVEnIOh#xm;14EXVPHka57o@2p@)BxffOZ4VMGIq8+^gK!#P$Ar$wmq%09 z%S=eY8EiobKA19>Z!}Cv4zU%|f*=dzPO{x%u6DLc+2wV90zK|799KB_I5-WkV}dy* zxK)Kl_QYHlIt3U*S%NOiYM6GQP^{=QY*C}$-%z4M;#2omtBZhqK)&@j<21mI36fFZ zTnBiNR0=(x&TS#Ql3;?2=Cb7j~Qp4u)KhHcoh)aT;L9M7~r+ zvDQGOZw8@2Pz3zCZ98Vsbp%b!R9(kQ5Z`@gcOSVz5u(dLtZ9GO4zivO)29Zf0d@kQ zU?IBlwX2iz%U_yz|L~9AE#116%1OZr5^}K7u;kYE9+Ignqp9qmUxTigs9t9!lWlK; zkNcN7VVnlo34nASh*%g5(20_af*DovvydzcunE(&y`9~pM%yIGi5p~Y<H*YPmXP$mi36lha2_ zWO5zDLlc;vI}6uN%TlGa$7*|O0aRNhiz`{_?B1hV{&2`!^3^5q1|1o=VWsEy_mq~e$k#(P; zH>u2MDeD|m_Ss{-HMVgYU?+&hOBeC0|KL}!y`Mq8^p+Qkgv@eH?AA=NDj*jnWW==W z!1Br(pPQY+wX0V!JQPPX>{n**tQBORj`L#^rvY|?s8q_>-ra(xYY0apLb#sIAk$pK zeJQXiB>ElKOYH2X{CDr&*KXck#?>b-ARG*;6Qu$L8Jg0Coy@F@4e@a{t{)b?evzj* zF}(EBOL*~BAP|}uH*0q;kejS5-eHa-U zQq}z?o8r?YQ+gU;CkRrfDVNK@&JJ`V3V$SlXe?&whA)>ZlFunkvAsx># z%bc_O3~~ZeP6I4jDcAffE9;?m-o1^X!G1={h5d<$3bGbG?9*_FJPoiP7ee7UrsuC< zXZ43j@7}YRZ!pclmpq9<#@K-CiEyoM1>U`Jhm*MP_}C~eEKDOXlxPXjeL7P8(*XN1 zfo!Cco9{q44TM8cQEQYNQX0D&3*3}oV~{K)!9vMYCV2DKJs+t&Gq@}myns;1Q0$BY zZTr@PK0qztleXBknQf;5_G3b=oW|On?_g}~91`(CS+6a-j0LhjBfR9eAP3wiW7<%; zTpPN-wyFK~_n<{00XaC_&!#4Z5f1s4=6z?s>~xJ-$62E-g2*1ZGz zdJM5huz9LHkZOQB`U}YAO5W1l zwVG}i+lHt4ZBvkpvmhb3LeZYSb9Xh&I5$X1+O}0 zwTgA?Xq*PvPXLqCgZQ<7{Y&`PpM4MC`}Rv--{{%AKNMWD%|@lUy-Bi65AE)xc%@R; zUB_dN?V+!)55pv>WEibAL3Btwoyl+cAhyNvlyM#vtTj2Mn7%*JXa0<0b8Q#@{@?s( z>}_#yaRpYjBEU;^#`vC;cpFekBtl4bsaA95?%Z7qYr3x2ZIgZeg{N`u>_t$xZeygU6YcN#DISEVLxp^Ca)IvA{LD?bgepCAPGAY>Y_U2r`J%^wkxy9Iy?2HhcHdMUXf zCD$_9vR0|xjnry2mQ3!${FxWAczzy}<3nH?M_c5wDcvM{Wc8cqQrzi|qn|_pm;PQ_ zJh#&T`-#GBUepI}g7Z9tjJtrp${4mG#JkGah%mm`mD1ts;^I=&tKkGhX_NWpZUa3A}kbRJUQcn}Uqx&z^Yf%#D>@>hWK1dQk zECPZoCF2&;@-Bm17LwV`ELlq734cCU8m`x>(PT2E-_kLg-TYQA+6NfAO? zkkVs}Uv_Lv6>^Q(_3L-_-Q6r(UERd9PhY_^Pd$OD$#G@&9`Na1Sy(p(8xNgp9UCfO zIXrURbv$_DGza_mKno4IFe8QW(Kvqo7k&}9Z{4=ve&=4vuSeH~(75fmu9UngJYKR~ zHk-}W6Sew&s8TicLb1a3lPPxL!WqoZOk!$$1kp%Dxv{lZw5HhIp&(=O#L5@!;7OEU zlIyytR2#}(aBn}Wv^Y)!>|@7G%+2=WH~!^+!0-Lu@5$F+d&Q3S$8$pZ93e!`^LRl> zEia*)o+oFkHFu=Cwi`;OQu?jixA~<@XYtgPMfU8~CowZUjgjFYWeG#t{9Nl53hw2a z^$H3fwaOhOye@l^yXNiWc0xYk)mjxhJ1MN*-^M%dE+dmIoCeq@0e9})!LR@NuVZa( zO?`ll>j}RfwZ53)RjN#wHY)&Pmnqt{I1jKH)AR;1*-Gr4cUH8$ogBOI_6p9-&tiUV z26J=M%DH1`xKDY6lkbqOHx&~ZYnR4YOXcUF#&Kjnli_`CYofIUlJ*%nha^)O?CtGi zV{;4Z>pNKANMdI%k6O(-4X{rFGMNm%{q1k7e{*iYvdRefEhipjZle))0A4k8E9(hl zgk(u6gFZ!tdE97Z_eZnAwgIaALu`mz~Ych#B6Vh)7gQcQv>uKB3?@OuQ2ec;v z?FoR-ISz)4Wjj_XZ|ke;yIS!24Ga#%F*Y)Q>FIGyPK;n|d`L|_4fG`ti$xKlfC~nc zkCEOAHqzKY%Z$Nw9N2WRn*l{DRk2V;I+Mfxep&_9?p_jm$ux4gra`@F+0qlth16_F zUIAmyX@GqqAyBFS8`~1KdJ2#s!K7vt4w5JYT6=(|1!j7Q1(!MPp$`9^cVO7~ybGt!SZ85W!#&hT&8GM2s~#XtZikU|E)h zhG{BS-DvR@z;SHlg=tzAOw&QbvZZC)(zYGp zx}FeHxa7pl7)iFXGJpcOmS(`N#<1h#a+@<$PXp{Rfa_YQRcUjKWUMGXS9g6r!}Ui7?ZN5c`oPF&VQXzGl}qO~Jl7lagdFsQ7y{TJ!1~El4N}IW zhlmFm^dK~<o~uOFnMOcIxy!Db9~Fji&^B?ja;XF0}@Wg0TN&T}DuAa6A) zWw=)D+PN=UqXXmOG{7D+cpeoq^UAA6H++~#40&Ty!;L4dEjFA+sbG~0yIksi&G3f= z*P`WeEn(SSzYt;oj8mZXfw8ER%uqgXj7ioyMzU7Ju~VFt&9fwD!eUI;8Bhk31;$z4 z=hJc;XGO+jNx-S=nlNKw?v%`iu#`{ae>j$Q5PG z2)oapds@8sb6>WH&rDYT*B|`v-0i#fcM8=;Kr)1cL{JDB5Dc1XVQXzKOV;JO#bmoo zA*GNUp39lE4V^a(LpOZ^e`9oF&S|25I%gDQPQa%-iFjCq!U0h=G$fgT)2NbnP6r#i%j)a@ Y2U`~0xGRc3UH||907*qoM6N<$g7iP!r~m)} literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8536ced318de34d70985971d458ce6aadcae98b GIT binary patch literal 34677 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 A3;+NC literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/mobile/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/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard b/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/ios/Runner/Base.lproj/Main.storyboard b/mobile/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/mobile/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/ios/Runner/Info.plist b/mobile/ios/Runner/Info.plist new file mode 100644 index 0000000..dacb531 --- /dev/null +++ b/mobile/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Lanebow + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + lanebow + 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 + + + diff --git a/mobile/ios/Runner/Runner-Bridging-Header.h b/mobile/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/mobile/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/mobile/ios/RunnerTests/RunnerTests.swift b/mobile/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/mobile/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/mobile/lib/config/api_config.dart b/mobile/lib/config/api_config.dart new file mode 100644 index 0000000..c2c2f8b --- /dev/null +++ b/mobile/lib/config/api_config.dart @@ -0,0 +1,38 @@ +class ApiConfig { + // 백엔드 API 기본 URL + static const String baseUrl = 'https://lanebow.com/api'; + + // API 엔드포인트 + static const String login = '/auth/login'; + static const String register = '/auth/register'; + static const String forgotPassword = '/auth/forgot-password'; + static const String profile = '/users/profile'; + + // 클럽 관련 엔드포인트 + static const String clubs = '/club'; + static const String members = '/members'; + static const String events = '/events'; + static const String scores = '/scores'; + + // 구독 관련 엔드포인트 + static const String subscriptions = '/subscriptions'; + static const String subscriptionPlans = '/subscriptions/plans'; + static const String currentSubscription = '/subscriptions/current'; + static const String subscribeClub = '/subscriptions/subscribe'; + static const String subscriptionPayments = '/subscriptions/payments'; + static const String changePlan = '/subscriptions/change-with-features'; + + // 결제 관련 엔드포인트 + static const String paymentRequest = '/subscriptions/payment/request'; + static const String paymentSuccess = '/subscriptions/payment/success'; + static const String paymentFail = '/subscriptions/payment/fail'; + + // 인앱 결제 검증 엔드포인트 + static const String verifyReceipt = '/subscriptions/verify-receipt'; + + // 토큰 저장 키 + static const String tokenKey = 'auth_token'; + static const String userIdKey = 'user_id'; + static const String userRoleKey = 'user_role'; + static const String clubIdKey = 'club_id'; +} diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart new file mode 100644 index 0000000..f8df5be --- /dev/null +++ b/mobile/lib/main.dart @@ -0,0 +1,344 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; + +import 'services/auth_service.dart'; +import 'services/club_service.dart'; +import 'services/member_service.dart'; +import 'services/event_service.dart'; +import 'services/score_service.dart'; +import 'screens/auth/login_screen.dart'; +import 'screens/auth/profile_screen.dart'; +import 'screens/club/dashboard_screen.dart'; +import 'screens/club/members_screen.dart'; +import 'screens/club/events_screen.dart'; +import 'screens/club/club_settings_screen.dart'; +import 'screens/score/club_statistics_screen.dart'; + +// 전역 네비게이터 키 (인증 오류 처리용) +final GlobalKey navigatorKey = GlobalKey(); + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MultiProvider( + providers: [ + ChangeNotifierProvider(create: (_) => AuthService()), + ChangeNotifierProvider(create: (_) => ClubService()), + ChangeNotifierProvider(create: (_) => MemberService()), + ChangeNotifierProvider(create: (_) => EventService()), + ChangeNotifierProvider(create: (_) => ScoreService()), + ], + child: Consumer( + builder: (context, authService, _) { + // 앱 시작 시 인증 서비스 초기화 + Future.delayed(Duration.zero, () { + if (!authService.isInitialized) { + authService.initialize(); + } + }); + + return MaterialApp( + navigatorKey: navigatorKey, // 인증 오류 처리를 위한 전역 네비게이터 키 + title: '볼링 매니저', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue), + useMaterial3: true, + appBarTheme: const AppBarTheme( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + ), + ), + // 로케일 설정 추가 + localizationsDelegates: const [ + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: const [ + Locale('ko', 'KR'), + Locale('en', 'US'), + ], + locale: const Locale('ko', 'KR'), + home: authService.isAuthenticated ? const HomeScreen() : const LoginScreen(), + routes: { + '/login': (context) => const LoginScreen(), + '/profile': (context) => const ProfileScreen(), + ClubSettingsScreen.routeName: (context) => const ClubSettingsScreen(), + }, + ); + }, + ), + ); + } +} + +class HomeScreen extends StatefulWidget { + const HomeScreen({super.key}); + + @override + State createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + int _selectedIndex = 0; + bool _isInit = false; + + static final List _widgetOptions = [ + const DashboardScreen(), + const MembersScreen(), + const EventsScreen(), + const ClubStatisticsScreen(), + const ProfileScreen(), + ]; + + void _onItemTapped(int index) { + setState(() { + _selectedIndex = index; + }); + } + + // 클럽 선택 다이얼로그 표시 + Future _showClubSelectionDialog(BuildContext context) async { + final clubService = Provider.of(context, listen: false); + final authService = Provider.of(context, listen: false); + + // 사용자의 모든 클럽 가져오기 + if (clubService.clubs.isEmpty) { + try { + await clubService.fetchUserClubs(); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('클럽 목록을 불러오는데 실패했습니다: $e')), + ); + return; + } + } + + if (clubService.clubs.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('소속된 클럽이 없습니다')), + ); + return; + } + + if (!context.mounted) return; + + // 다이얼로그 표시 + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('클럽 선택'), + content: SizedBox( + width: double.maxFinite, + child: ListView.builder( + shrinkWrap: true, + itemCount: clubService.clubs.length, + itemBuilder: (context, index) { + final club = clubService.clubs[index]; + final isSelected = clubService.currentClub?.id == club.id; + + return ListTile( + title: Text(club.name), + subtitle: Text(club.description ?? ''), + trailing: isSelected ? const Icon(Icons.check, color: Colors.blue) : null, + onTap: () async { + Navigator.of(context).pop(); + + if (!isSelected) { + try { + // 백엔드 세션에 clubId 저장하고 클럽 정보 가져오기 + await clubService.selectClub(club.id); + + // 관련 서비스 초기화 + final memberService = Provider.of(context, listen: false); + final eventService = Provider.of(context, listen: false); + final scoreService = Provider.of(context, listen: false); + + memberService.initialize(authService.token!); + eventService.initialize(authService.token!); + scoreService.initialize(authService.token!); + + // 데이터 다시 로드 + await Future.wait([ + memberService.fetchClubMembers(), + eventService.fetchClubEvents(), + ]); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('${club.name} 클럽으로 변경되었습니다')), + ); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('클럽 변경 중 오류가 발생했습니다: $e')), + ); + } + } + } + }, + ); + }, + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ], + ); + }, + ); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _initializeServices(); + _isInit = true; + } + } + + Future _initializeServices() async { + try { + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final scoreService = Provider.of(context, listen: false); + + if (authService.isAuthenticated && authService.token != null) { + // 클럽 서비스 초기화 + await clubService.initialize(authService.token!); + + // 클럽이 선택된 경우 점수 서비스 초기화 + if (clubService.currentClub != null) { + scoreService.initialize(authService.token!); + } else { + // 현재 선택된 클럽이 없는 경우 + // 사용자의 클럽 목록 가져오기 + await clubService.fetchUserClubs(); + + // 클럽이 하나만 있으면 자동으로 선택 + if (clubService.clubs.length == 1) { + try { + await clubService.selectClub(clubService.clubs[0].id); + scoreService.initialize(authService.token!); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('${clubService.clubs[0].name} 클럽이 자동으로 선택되었습니다')), + ); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('클럽 자동 선택 중 오류가 발생했습니다: $e')), + ); + } + } + } else if (clubService.clubs.isNotEmpty) { + // 클럽이 여러 개 있으면 선택 다이얼로그 표시 + Future.delayed(Duration.zero, () { + if (context.mounted) { + _showClubSelectionDialog(context); + } + }); + } else { + // 클럽이 없는 경우 메시지 표시 + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('소속된 클럽이 없습니다. 클럽을 생성하거나 초대를 요청하세요.')), + ); + } + } + } + } + } catch (e) { + // 오류 처리 + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('서비스 초기화 중 오류가 발생했습니다: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Consumer( + builder: (context, clubService, child) { + return InkWell( + onTap: () => _showClubSelectionDialog(context), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + clubService.currentClub?.name ?? '볼링 매니저', + style: const TextStyle(fontWeight: FontWeight.bold), + ), + const SizedBox(width: 4), + const Icon(Icons.arrow_drop_down, size: 20), + ], + ), + ); + }, + ), + actions: [ + IconButton( + icon: const Icon(Icons.notifications), + onPressed: () { + // 알림 기능 (추후 구현) + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('알림 기능은 아직 개발 중입니다')), + ); + }, + ), + ], + ), + body: _widgetOptions.elementAt(_selectedIndex), + bottomNavigationBar: BottomNavigationBar( + type: BottomNavigationBarType.fixed, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.dashboard), + label: '대시보드', + ), + BottomNavigationBarItem( + icon: Icon(Icons.people), + label: '회원', + ), + BottomNavigationBarItem( + icon: Icon(Icons.event), + label: '이벤트', + ), + BottomNavigationBarItem( + icon: Icon(Icons.score), + label: '통계', + ), + BottomNavigationBarItem( + icon: Icon(Icons.person), + label: '프로필', + ), + ], + currentIndex: _selectedIndex, + selectedItemColor: Colors.blue, + onTap: _onItemTapped, + ), + ); + } +} + + diff --git a/mobile/lib/models/admin_model.dart b/mobile/lib/models/admin_model.dart new file mode 100644 index 0000000..7dec95b --- /dev/null +++ b/mobile/lib/models/admin_model.dart @@ -0,0 +1,265 @@ + +/// 사용자 역할 정의 +enum UserRole { + member, // 일반 회원 + manager, // 매니저 (일부 관리 권한) + admin, // 관리자 (대부분의 관리 권한) + owner // 소유자 (모든 권한) +} + +/// 관리 권한 정의 +class AdminPermission { + final bool canManageMembers; // 회원 관리 권한 + final bool canManageEvents; // 이벤트 관리 권한 + final bool canManageScores; // 점수 관리 권한 + final bool canManageSettings; // 설정 관리 권한 + final bool canManageSubscription; // 구독 관리 권한 + final bool canManageRoles; // 역할 관리 권한 + final bool canViewFinancials; // 재정 정보 조회 권한 + final bool canExportData; // 데이터 내보내기 권한 + + const AdminPermission({ + this.canManageMembers = false, + this.canManageEvents = false, + this.canManageScores = false, + this.canManageSettings = false, + this.canManageSubscription = false, + this.canManageRoles = false, + this.canViewFinancials = false, + this.canExportData = false, + }); + + /// 역할에 따른 기본 권한 생성 + factory AdminPermission.fromRole(UserRole role) { + switch (role) { + case UserRole.member: + return const AdminPermission(); + case UserRole.manager: + return const AdminPermission( + canManageMembers: true, + canManageEvents: true, + canManageScores: true, + canExportData: true, + ); + case UserRole.admin: + return const AdminPermission( + canManageMembers: true, + canManageEvents: true, + canManageScores: true, + canManageSettings: true, + canViewFinancials: true, + canExportData: true, + ); + case UserRole.owner: + return const AdminPermission( + canManageMembers: true, + canManageEvents: true, + canManageScores: true, + canManageSettings: true, + canManageSubscription: true, + canManageRoles: true, + canViewFinancials: true, + canExportData: true, + ); + } + } + + /// JSON에서 권한 객체 생성 + factory AdminPermission.fromJson(Map json) { + return AdminPermission( + canManageMembers: json['canManageMembers'] ?? false, + canManageEvents: json['canManageEvents'] ?? false, + canManageScores: json['canManageScores'] ?? false, + canManageSettings: json['canManageSettings'] ?? false, + canManageSubscription: json['canManageSubscription'] ?? false, + canManageRoles: json['canManageRoles'] ?? false, + canViewFinancials: json['canViewFinancials'] ?? false, + canExportData: json['canExportData'] ?? false, + ); + } + + /// 권한 객체를 JSON으로 변환 + Map toJson() { + return { + 'canManageMembers': canManageMembers, + 'canManageEvents': canManageEvents, + 'canManageScores': canManageScores, + 'canManageSettings': canManageSettings, + 'canManageSubscription': canManageSubscription, + 'canManageRoles': canManageRoles, + 'canViewFinancials': canViewFinancials, + 'canExportData': canExportData, + }; + } +} + +/// 클럽 회원 역할 정보 +class MemberRole { + final String userId; + final String memberId; + final String clubId; + final UserRole role; + final AdminPermission permissions; + final DateTime assignedAt; + final String? assignedBy; + + MemberRole({ + required this.userId, + required this.memberId, + required this.clubId, + required this.role, + required this.permissions, + required this.assignedAt, + this.assignedBy, + }); + + /// JSON에서 회원 역할 객체 생성 + factory MemberRole.fromJson(Map json) { + return MemberRole( + userId: json['userId'], + memberId: json['memberId'], + clubId: json['clubId'], + role: UserRole.values.firstWhere( + (e) => e.toString().split('.').last == json['role'], + orElse: () => UserRole.member, + ), + permissions: AdminPermission.fromJson(json['permissions'] ?? {}), + assignedAt: DateTime.parse(json['assignedAt']), + assignedBy: json['assignedBy'], + ); + } + + /// 회원 역할 객체를 JSON으로 변환 + Map toJson() { + return { + 'userId': userId, + 'memberId': memberId, + 'clubId': clubId, + 'role': role.toString().split('.').last, + 'permissions': permissions.toJson(), + 'assignedAt': assignedAt.toIso8601String(), + 'assignedBy': assignedBy, + }; + } + + /// 역할 이름 (한글) + String get roleName { + switch (role) { + case UserRole.member: + return '일반 회원'; + case UserRole.manager: + return '매니저'; + case UserRole.admin: + return '관리자'; + case UserRole.owner: + return '소유자'; + } + } +} + +/// 클럽 설정 모델 +class ClubSettings { + final String clubId; + final String clubName; + final String? logoUrl; + final String? bannerUrl; + final String? description; + final String? contactEmail; + final String? contactPhone; + final String? address; + final String? website; + final Map? customFields; + final Map? notificationSettings; + final Map? privacySettings; + final DateTime createdAt; + final DateTime updatedAt; + + ClubSettings({ + required this.clubId, + required this.clubName, + this.logoUrl, + this.bannerUrl, + this.description, + this.contactEmail, + this.contactPhone, + this.address, + this.website, + this.customFields, + this.notificationSettings, + this.privacySettings, + required this.createdAt, + required this.updatedAt, + }); + + /// JSON에서 클럽 설정 객체 생성 + factory ClubSettings.fromJson(Map json) { + return ClubSettings( + clubId: json['clubId'], + clubName: json['clubName'], + logoUrl: json['logoUrl'], + bannerUrl: json['bannerUrl'], + description: json['description'], + contactEmail: json['contactEmail'], + contactPhone: json['contactPhone'], + address: json['address'], + website: json['website'], + customFields: json['customFields'], + notificationSettings: json['notificationSettings'], + privacySettings: json['privacySettings'], + createdAt: DateTime.parse(json['createdAt']), + updatedAt: DateTime.parse(json['updatedAt']), + ); + } + + /// 클럽 설정 객체를 JSON으로 변환 + Map toJson() { + return { + 'clubId': clubId, + 'clubName': clubName, + 'logoUrl': logoUrl, + 'bannerUrl': bannerUrl, + 'description': description, + 'contactEmail': contactEmail, + 'contactPhone': contactPhone, + 'address': address, + 'website': website, + 'customFields': customFields, + 'notificationSettings': notificationSettings, + 'privacySettings': privacySettings, + 'createdAt': createdAt.toIso8601String(), + 'updatedAt': updatedAt.toIso8601String(), + }; + } + + /// 복사본 생성 (일부 필드 업데이트) + ClubSettings copyWith({ + String? clubName, + String? logoUrl, + String? bannerUrl, + String? description, + String? contactEmail, + String? contactPhone, + String? address, + String? website, + Map? customFields, + Map? notificationSettings, + Map? privacySettings, + }) { + return ClubSettings( + clubId: clubId, + clubName: clubName ?? this.clubName, + logoUrl: logoUrl ?? this.logoUrl, + bannerUrl: bannerUrl ?? this.bannerUrl, + description: description ?? this.description, + contactEmail: contactEmail ?? this.contactEmail, + contactPhone: contactPhone ?? this.contactPhone, + address: address ?? this.address, + website: website ?? this.website, + customFields: customFields ?? this.customFields, + notificationSettings: notificationSettings ?? this.notificationSettings, + privacySettings: privacySettings ?? this.privacySettings, + createdAt: createdAt, + updatedAt: DateTime.now(), + ); + } +} diff --git a/mobile/lib/models/club_model.dart b/mobile/lib/models/club_model.dart new file mode 100644 index 0000000..e23b6fa --- /dev/null +++ b/mobile/lib/models/club_model.dart @@ -0,0 +1,77 @@ +class Club { + final String id; + final String name; + final String? description; + final String? logo; + final String? address; + final String? location; + final String? phone; + final String? email; + final String? website; + final int? memberCount; + final String? ownerId; + final int? femaleHandicap; + final String? averageCalculationPeriod; + final DateTime? createdAt; + final DateTime? updatedAt; + + Club({ + required this.id, + required this.name, + this.description, + this.logo, + this.address, + this.location, + this.phone, + this.email, + this.website, + this.memberCount, + this.ownerId, + this.femaleHandicap, + this.averageCalculationPeriod, + this.createdAt, + this.updatedAt, + }); + + // JSON 데이터로부터 Club 객체 생성 + factory Club.fromJson(Map json) { + return Club( + id: json['id'] != null ? json['id'].toString() : '', + name: json['name'] ?? '', + description: json['description'], + logo: json['logo'], + address: json['address'], + location: json['location'], + phone: json['phone'] ?? json['contact'], // contact 필드도 확인 + email: json['email'], + website: json['website'], + memberCount: json['memberCount'], + ownerId: json['ownerId']?.toString(), + femaleHandicap: json['femaleHandicap'] != null ? int.tryParse(json['femaleHandicap'].toString()) : null, + averageCalculationPeriod: json['averageCalculationPeriod'], + createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt']) : null, + updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt']) : null, + ); + } + + // Club 객체를 JSON으로 변환 + Map toJson() { + return { + 'id': id, + 'name': name, + 'description': description, + 'logo': logo, + 'address': address, + 'location': location, + 'phone': phone, + 'email': email, + 'website': website, + 'memberCount': memberCount, + 'ownerId': ownerId, + 'femaleHandicap': femaleHandicap, + 'averageCalculationPeriod': averageCalculationPeriod, + 'createdAt': createdAt?.toIso8601String(), + 'updatedAt': updatedAt?.toIso8601String(), + }; + } +} diff --git a/mobile/lib/models/event_model.dart b/mobile/lib/models/event_model.dart new file mode 100644 index 0000000..c7596f5 --- /dev/null +++ b/mobile/lib/models/event_model.dart @@ -0,0 +1,73 @@ +class Event { + final String id; + final String clubId; + final String title; + final String? description; + final DateTime startDate; + final DateTime? endDate; + final String? location; + final String? type; + final int? maxParticipants; + final int? currentParticipants; + final bool isActive; + final String? createdBy; + final DateTime? createdAt; + final DateTime? updatedAt; + + Event({ + required this.id, + required this.clubId, + required this.title, + this.description, + required this.startDate, + this.endDate, + this.location, + this.type, + this.maxParticipants, + this.currentParticipants, + required this.isActive, + this.createdBy, + this.createdAt, + this.updatedAt, + }); + + // JSON 데이터로부터 Event 객체 생성 + factory Event.fromJson(Map json) { + return Event( + id: json['id']?.toString() ?? '', + clubId: json['clubId']?.toString() ?? '', + title: json['title'] ?? '', + description: json['description']?.toString(), + startDate: json['startDate'] != null ? DateTime.parse(json['startDate'].toString()) : DateTime.now(), + endDate: json['endDate'] != null ? DateTime.parse(json['endDate'].toString()) : null, + location: json['location']?.toString(), + type: json['type']?.toString(), + maxParticipants: json['maxParticipants'], + currentParticipants: json['currentParticipants'], + isActive: json['isActive'] ?? true, + createdBy: json['createdBy']?.toString(), + createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt'].toString()) : null, + updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt'].toString()) : null, + ); + } + + // Event 객체를 JSON으로 변환 + Map toJson() { + return { + 'id': id, + 'clubId': clubId, + 'title': title, + 'description': description, + 'startDate': startDate.toIso8601String(), + 'endDate': endDate?.toIso8601String(), + 'location': location, + 'type': type, + 'maxParticipants': maxParticipants, + 'currentParticipants': currentParticipants, + 'isActive': isActive, + 'createdBy': createdBy, + 'createdAt': createdAt?.toIso8601String(), + 'updatedAt': updatedAt?.toIso8601String(), + }; + } +} diff --git a/mobile/lib/models/member_model.dart b/mobile/lib/models/member_model.dart new file mode 100644 index 0000000..23bd525 --- /dev/null +++ b/mobile/lib/models/member_model.dart @@ -0,0 +1,126 @@ +class Member { + final String id; + final String userId; + final String clubId; + final String name; + final String email; + final String? role; + final String? profileImage; + final String? phone; + final String? address; + final DateTime? joinDate; + final bool isActive; + final String? gender; + final String? memberType; + final int? handicap; + final String? status; + final DateTime? createdAt; + final DateTime? updatedAt; + + Member({ + required this.id, + required this.userId, + required this.clubId, + required this.name, + required this.email, + this.role, + this.profileImage, + this.phone, + this.address, + this.joinDate, + required this.isActive, + this.gender, + this.memberType, + this.handicap, + this.status, + this.createdAt, + this.updatedAt, + }); + + // JSON 데이터로부터 Member 객체 생성 + factory Member.fromJson(Map json) { + return Member( + id: json['id']?.toString() ?? '', + userId: json['userId']?.toString() ?? '', + clubId: json['clubId']?.toString() ?? '', + name: json['name'] ?? '', + email: json['email'] ?? '', + role: json['role']?.toString(), + profileImage: json['profileImage']?.toString(), + phone: json['phone']?.toString(), + address: json['address']?.toString(), + joinDate: json['joinDate'] != null ? DateTime.parse(json['joinDate'].toString()) : null, + isActive: json['isActive'] ?? true, + gender: json['gender']?.toString(), + memberType: json['memberType']?.toString(), + handicap: json['handicap'] != null ? int.tryParse(json['handicap'].toString()) : null, + status: json['status']?.toString(), + createdAt: json['createdAt'] != null ? DateTime.parse(json['createdAt'].toString()) : null, + updatedAt: json['updatedAt'] != null ? DateTime.parse(json['updatedAt'].toString()) : null, + ); + } + + // Member 객체를 JSON으로 변환 + Map toJson() { + return { + 'id': id, + 'userId': userId, + 'clubId': clubId, + 'name': name, + 'email': email, + 'role': role, + 'profileImage': profileImage, + 'phone': phone, + 'address': address, + 'joinDate': joinDate?.toIso8601String(), + 'isActive': isActive, + 'gender': gender, + 'memberType': memberType, + 'handicap': handicap, + 'status': status, + 'createdAt': createdAt?.toIso8601String(), + 'updatedAt': updatedAt?.toIso8601String(), + }; + } + + // 객체 복사 및 특정 필드 업데이트를 위한 copyWith 메서드 + Member copyWith({ + String? id, + String? userId, + String? clubId, + String? name, + String? email, + String? role, + String? profileImage, + String? phone, + String? address, + DateTime? joinDate, + bool? isActive, + String? gender, + String? memberType, + int? handicap, + String? status, + DateTime? createdAt, + DateTime? updatedAt, + }) { + return Member( + id: id ?? this.id, + userId: userId ?? this.userId, + clubId: clubId ?? this.clubId, + name: name ?? this.name, + email: email ?? this.email, + role: role ?? this.role, + profileImage: profileImage ?? this.profileImage, + phone: phone ?? this.phone, + address: address ?? this.address, + joinDate: joinDate ?? this.joinDate, + isActive: isActive ?? this.isActive, + gender: gender ?? this.gender, + memberType: memberType ?? this.memberType, + handicap: handicap ?? this.handicap, + status: status ?? this.status, + createdAt: createdAt ?? this.createdAt, + updatedAt: updatedAt ?? this.updatedAt, + ); + } +} diff --git a/mobile/lib/models/score_model.dart b/mobile/lib/models/score_model.dart new file mode 100644 index 0000000..d69f8c9 --- /dev/null +++ b/mobile/lib/models/score_model.dart @@ -0,0 +1,83 @@ +class Score { + final String id; + final String memberId; + final String eventId; + final String clubId; + final List frames; + final int totalScore; + final DateTime date; + final String? notes; + + Score({ + required this.id, + required this.memberId, + required this.eventId, + required this.clubId, + required this.frames, + required this.totalScore, + required this.date, + this.notes, + }); + + factory Score.fromJson(Map json) { + return Score( + id: json['id']?.toString() ?? '', + memberId: json['memberId']?.toString() ?? '', + eventId: json['eventId']?.toString() ?? '', + clubId: json['clubId']?.toString() ?? '', + frames: json['frames'] != null ? List.from(json['frames']) : [], + totalScore: json['totalScore'] ?? 0, + date: json['date'] != null ? DateTime.parse(json['date'].toString()) : DateTime.now(), + notes: json['notes']?.toString(), + ); + } + + Map toJson() { + return { + 'id': id, + 'memberId': memberId, + 'eventId': eventId, + 'clubId': clubId, + 'frames': frames, + 'totalScore': totalScore, + 'date': date.toIso8601String(), + 'notes': notes, + }; + } +} + +class ScoreStatistics { + final double average; + final int highScore; + final int lowScore; + final int gamesPlayed; + final Map? additionalStats; + + ScoreStatistics({ + required this.average, + required this.highScore, + required this.lowScore, + required this.gamesPlayed, + this.additionalStats, + }); + + factory ScoreStatistics.fromJson(Map json) { + return ScoreStatistics( + average: json['average'] != null ? (json['average'] is int ? (json['average'] as int).toDouble() : json['average'].toDouble()) : 0.0, + highScore: json['highScore'] ?? 0, + lowScore: json['lowScore'] ?? 0, + gamesPlayed: json['gamesPlayed'] ?? 0, + additionalStats: json['additionalStats'], + ); + } + + Map toJson() { + return { + 'average': average, + 'highScore': highScore, + 'lowScore': lowScore, + 'gamesPlayed': gamesPlayed, + 'additionalStats': additionalStats, + }; + } +} diff --git a/mobile/lib/models/subscription_model.dart b/mobile/lib/models/subscription_model.dart new file mode 100644 index 0000000..a336900 --- /dev/null +++ b/mobile/lib/models/subscription_model.dart @@ -0,0 +1,243 @@ + +/// 구독 플랜 타입 +enum SubscriptionPlanType { + free, // 무료 플랜 + basic, // 기본 유료 플랜 + premium, // 프리미엄 플랜 + enterprise // 기업용 플랜 +} + +/// 구독 상태 +enum SubscriptionStatus { + active, // 활성화 상태 + canceled, // 취소됨 (아직 만료 안됨) + expired, // 만료됨 + pending, // 결제 대기 중 + failed // 결제 실패 +} + +/// 구독 모델 +class Subscription { + final String id; + final String userId; + final String? clubId; + final SubscriptionPlanType planType; + final SubscriptionStatus status; + final DateTime startDate; + final DateTime endDate; + final double price; + final String currency; + final bool autoRenew; + final Map? features; + final String? paymentMethod; + final String? transactionId; + final DateTime createdAt; + final DateTime updatedAt; + + Subscription({ + required this.id, + required this.userId, + this.clubId, + required this.planType, + required this.status, + required this.startDate, + required this.endDate, + required this.price, + required this.currency, + required this.autoRenew, + this.features, + this.paymentMethod, + this.transactionId, + required this.createdAt, + required this.updatedAt, + }); + + /// JSON에서 구독 객체 생성 + factory Subscription.fromJson(Map json) { + return Subscription( + id: json['id'], + userId: json['userId'], + clubId: json['clubId'], + planType: SubscriptionPlanType.values.firstWhere( + (e) => e.toString().split('.').last == json['planType'], + orElse: () => SubscriptionPlanType.free, + ), + status: SubscriptionStatus.values.firstWhere( + (e) => e.toString().split('.').last == json['status'], + orElse: () => SubscriptionStatus.expired, + ), + startDate: DateTime.parse(json['startDate']), + endDate: DateTime.parse(json['endDate']), + price: json['price'].toDouble(), + currency: json['currency'], + autoRenew: json['autoRenew'] ?? false, + features: json['features'], + paymentMethod: json['paymentMethod'], + transactionId: json['transactionId'], + createdAt: DateTime.parse(json['createdAt']), + updatedAt: DateTime.parse(json['updatedAt']), + ); + } + + /// 구독 객체를 JSON으로 변환 + Map toJson() { + return { + 'id': id, + 'userId': userId, + 'clubId': clubId, + 'planType': planType.toString().split('.').last, + 'status': status.toString().split('.').last, + 'startDate': startDate.toIso8601String(), + 'endDate': endDate.toIso8601String(), + 'price': price, + 'currency': currency, + 'autoRenew': autoRenew, + 'features': features, + 'paymentMethod': paymentMethod, + 'transactionId': transactionId, + 'createdAt': createdAt.toIso8601String(), + 'updatedAt': updatedAt.toIso8601String(), + }; + } + + /// 구독이 활성 상태인지 확인 + bool get isActive => status == SubscriptionStatus.active; + + /// 구독이 만료되었는지 확인 + bool get isExpired => status == SubscriptionStatus.expired || + DateTime.now().isAfter(endDate); + + /// 구독 남은 일수 계산 + int get daysLeft { + if (isExpired) return 0; + return endDate.difference(DateTime.now()).inDays; + } + + /// 구독 플랜 이름 (한글) + String get planName { + switch (planType) { + case SubscriptionPlanType.free: + return '무료'; + case SubscriptionPlanType.basic: + return '기본'; + case SubscriptionPlanType.premium: + return '프리미엄'; + case SubscriptionPlanType.enterprise: + return '기업용'; + } + } +} + +/// 구독 플랜 정보 모델 +class SubscriptionPlan { + final SubscriptionPlanType type; + final String name; + final String description; + final double monthlyPrice; + final double yearlyPrice; + final String currency; + final List features; + final int maxMembers; + final int maxEvents; + final bool hasAdvancedStats; + final bool hasCustomization; + final bool hasPriority; + + SubscriptionPlan({ + required this.type, + required this.name, + required this.description, + required this.monthlyPrice, + required this.yearlyPrice, + required this.currency, + required this.features, + required this.maxMembers, + required this.maxEvents, + required this.hasAdvancedStats, + required this.hasCustomization, + required this.hasPriority, + }); + + /// 기본 구독 플랜 목록 반환 + static List getDefaultPlans() { + return [ + SubscriptionPlan( + type: SubscriptionPlanType.free, + name: '무료', + description: '소규모 클럽을 위한 기본 기능', + monthlyPrice: 0, + yearlyPrice: 0, + currency: 'KRW', + features: [ + '최대 10명 회원 관리', + '기본 점수 기록', + '간단한 통계', + ], + maxMembers: 10, + maxEvents: 5, + hasAdvancedStats: false, + hasCustomization: false, + hasPriority: false, + ), + SubscriptionPlan( + type: SubscriptionPlanType.basic, + name: '기본', + description: '중소규모 클럽을 위한 확장 기능', + monthlyPrice: 9900, + yearlyPrice: 99000, + currency: 'KRW', + features: [ + '최대 30명 회원 관리', + '상세 점수 분석', + '이벤트 관리', + '회원 통계', + ], + maxMembers: 30, + maxEvents: 20, + hasAdvancedStats: true, + hasCustomization: false, + hasPriority: false, + ), + SubscriptionPlan( + type: SubscriptionPlanType.premium, + name: '프리미엄', + description: '대규모 클럽을 위한 고급 기능', + monthlyPrice: 19900, + yearlyPrice: 199000, + currency: 'KRW', + features: [ + '무제한 회원 관리', + '고급 통계 및 분석', + '무제한 이벤트', + '맞춤형 보고서', + '우선 지원', + ], + maxMembers: 100, + maxEvents: 100, + hasAdvancedStats: true, + hasCustomization: true, + hasPriority: true, + ), + SubscriptionPlan( + type: SubscriptionPlanType.enterprise, + name: '기업용', + description: '프로 클럽 및 단체를 위한 맞춤형 솔루션', + monthlyPrice: 49900, + yearlyPrice: 499000, + currency: 'KRW', + features: [ + '무제한 회원 및 이벤트', + '전문가 수준 분석', + '맞춤형 기능', + '전담 지원', + 'API 액세스', + ], + maxMembers: 1000, + maxEvents: 1000, + hasAdvancedStats: true, + hasCustomization: true, + hasPriority: true, + ), + ]; + } +} diff --git a/mobile/lib/models/user_model.dart b/mobile/lib/models/user_model.dart new file mode 100644 index 0000000..9556398 --- /dev/null +++ b/mobile/lib/models/user_model.dart @@ -0,0 +1,45 @@ +class User { + final String id; + final String email; + final String name; + final String role; + final String? profileImage; + final String? clubId; + final String? clubRole; + + User({ + required this.id, + required this.email, + required this.name, + required this.role, + this.profileImage, + this.clubId, + this.clubRole, + }); + + // JSON 데이터로부터 User 객체 생성 + factory User.fromJson(Map json) { + return User( + id: json['id'] != null ? json['id'].toString() : '', + email: json['email'] ?? '', + name: json['name'] ?? '', + role: json['role'] ?? 'user', + profileImage: json['profileImage'], + clubId: json['clubId']?.toString(), + clubRole: json['clubRole'], + ); + } + + // User 객체를 JSON으로 변환 + Map toJson() { + return { + 'id': id, + 'email': email, + 'name': name, + 'role': role, + 'profileImage': profileImage, + 'clubId': clubId, + 'clubRole': clubRole, + }; + } +} diff --git a/mobile/lib/screens/admin/admin_dashboard_screen.dart b/mobile/lib/screens/admin/admin_dashboard_screen.dart new file mode 100644 index 0000000..77544ec --- /dev/null +++ b/mobile/lib/screens/admin/admin_dashboard_screen.dart @@ -0,0 +1,456 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../services/admin_service.dart'; +import '../../services/subscription_service.dart'; +import '../../models/subscription_model.dart'; + +/// 관리자 대시보드 화면 +class AdminDashboardScreen extends StatefulWidget { + const AdminDashboardScreen({super.key}); + + @override + State createState() => _AdminDashboardScreenState(); +} + +class _AdminDashboardScreenState extends State { + Map? _analyticsData; + bool _isLoading = false; + + @override + void initState() { + super.initState(); + _loadData(); + } + + /// 데이터 로드 + Future _loadData() async { + setState(() { + _isLoading = true; + }); + + try { + final adminService = Provider.of(context, listen: false); + final analyticsData = await adminService.fetchClubAnalytics(); + + setState(() { + _analyticsData = analyticsData; + }); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('데이터 로드 중 오류가 발생했습니다: $e')), + ); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + final adminService = Provider.of(context); + final subscriptionService = Provider.of(context); + + return Scaffold( + appBar: AppBar( + title: const Text('관리자 대시보드'), + actions: [ + IconButton( + icon: const Icon(Icons.refresh), + onPressed: _loadData, + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: _loadData, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildPermissionsCard(adminService), + const SizedBox(height: 16), + _buildSubscriptionCard(subscriptionService), + const SizedBox(height: 16), + _buildAnalyticsCard(), + const SizedBox(height: 16), + _buildQuickActionsCard(context, adminService), + ], + ), + ), + ), + ); + } + + /// 권한 정보 카드 + Widget _buildPermissionsCard(AdminService adminService) { + return Card( + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.admin_panel_settings), + const SizedBox(width: 8), + Text( + '관리자 권한', + style: Theme.of(context).textTheme.titleLarge, + ), + ], + ), + const Divider(), + const SizedBox(height: 8), + _buildPermissionItem( + '회원 관리', + adminService.canManageMembers, + Icons.people, + ), + _buildPermissionItem( + '이벤트 관리', + adminService.canManageEvents, + Icons.event, + ), + _buildPermissionItem( + '점수 관리', + adminService.canManageScores, + Icons.score, + ), + _buildPermissionItem( + '설정 관리', + adminService.canManageSettings, + Icons.settings, + ), + _buildPermissionItem( + '구독 관리', + adminService.canManageSubscription, + Icons.subscriptions, + ), + _buildPermissionItem( + '역할 관리', + adminService.canManageRoles, + Icons.admin_panel_settings, + ), + _buildPermissionItem( + '재무 정보 조회', + adminService.canViewFinancials, + Icons.attach_money, + ), + _buildPermissionItem( + '데이터 내보내기', + adminService.canExportData, + Icons.file_download, + ), + ], + ), + ), + ); + } + + /// 권한 항목 위젯 + Widget _buildPermissionItem(String title, bool hasPermission, IconData icon) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Row( + children: [ + Icon( + icon, + size: 18, + color: hasPermission ? Colors.green : Colors.grey, + ), + const SizedBox(width: 8), + Text(title), + const Spacer(), + Icon( + hasPermission ? Icons.check_circle : Icons.cancel, + color: hasPermission ? Colors.green : Colors.red, + size: 18, + ), + ], + ), + ); + } + + /// 구독 정보 카드 + Widget _buildSubscriptionCard(SubscriptionService subscriptionService) { + final subscription = subscriptionService.currentSubscription; + + return Card( + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.subscriptions), + const SizedBox(width: 8), + Text( + '구독 정보', + style: Theme.of(context).textTheme.titleLarge, + ), + ], + ), + const Divider(), + const SizedBox(height: 8), + if (subscription != null) ...[ + _buildInfoRow('플랜', subscription.planName), + _buildInfoRow('상태', _getStatusText(subscription.status)), + _buildInfoRow('시작일', _formatDate(subscription.startDate)), + _buildInfoRow('만료일', _formatDate(subscription.endDate)), + _buildInfoRow('자동 갱신', subscription.autoRenew ? '활성화' : '비활성화'), + _buildInfoRow('남은 일수', '${subscription.daysLeft}일'), + ] else + const Text('활성화된 구독이 없습니다.'), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () { + Navigator.of(context).pushNamed('/subscription/manage'); + }, + child: const Text('구독 관리'), + ), + ], + ), + ), + ); + } + + /// 분석 데이터 카드 + Widget _buildAnalyticsCard() { + return Card( + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.analytics), + const SizedBox(width: 8), + Text( + '클럽 통계', + style: Theme.of(context).textTheme.titleLarge, + ), + ], + ), + const Divider(), + const SizedBox(height: 8), + if (_analyticsData != null) ...[ + _buildInfoRow('총 회원 수', '${_analyticsData!['totalMembers'] ?? 0}명'), + _buildInfoRow('활성 회원 수', '${_analyticsData!['activeMembers'] ?? 0}명'), + _buildInfoRow('이번 달 신규 회원', '${_analyticsData!['newMembersThisMonth'] ?? 0}명'), + _buildInfoRow('총 이벤트 수', '${_analyticsData!['totalEvents'] ?? 0}개'), + _buildInfoRow('이번 달 이벤트', '${_analyticsData!['eventsThisMonth'] ?? 0}개'), + _buildInfoRow('총 게임 수', '${_analyticsData!['totalGames'] ?? 0}게임'), + _buildInfoRow('평균 점수', '${_analyticsData!['averageScore'] ?? 0}점'), + ] else + const Text('통계 데이터를 불러올 수 없습니다.'), + ], + ), + ), + ); + } + + /// 빠른 작업 카드 + Widget _buildQuickActionsCard(BuildContext context, AdminService adminService) { + return Card( + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.flash_on), + const SizedBox(width: 8), + Text( + '빠른 작업', + style: Theme.of(context).textTheme.titleLarge, + ), + ], + ), + const Divider(), + const SizedBox(height: 8), + Wrap( + spacing: 8.0, + runSpacing: 8.0, + children: [ + if (adminService.canManageMembers) + _buildActionButton( + context, + '회원 관리', + Icons.people, + () => Navigator.of(context).pushNamed('/admin/members'), + ), + if (adminService.canManageEvents) + _buildActionButton( + context, + '이벤트 관리', + Icons.event, + () => Navigator.of(context).pushNamed('/admin/events'), + ), + if (adminService.canManageSettings) + _buildActionButton( + context, + '클럽 설정', + Icons.settings, + () => Navigator.of(context).pushNamed('/admin/settings'), + ), + if (adminService.canManageRoles) + _buildActionButton( + context, + '역할 관리', + Icons.admin_panel_settings, + () => Navigator.of(context).pushNamed('/admin/roles'), + ), + if (adminService.canExportData) + _buildActionButton( + context, + '데이터 내보내기', + Icons.file_download, + () => _showExportDialog(context), + ), + ], + ), + ], + ), + ), + ); + } + + /// 작업 버튼 위젯 + Widget _buildActionButton( + BuildContext context, + String label, + IconData icon, + VoidCallback onPressed, + ) { + return ElevatedButton.icon( + onPressed: onPressed, + icon: Icon(icon, size: 18), + label: Text(label), + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + ), + ); + } + + /// 데이터 내보내기 다이얼로그 + void _showExportDialog(BuildContext context) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('데이터 내보내기'), + content: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(Icons.people), + title: const Text('회원 데이터'), + onTap: () => _exportData(context, 'members'), + ), + ListTile( + leading: const Icon(Icons.event), + title: const Text('이벤트 데이터'), + onTap: () => _exportData(context, 'events'), + ), + ListTile( + leading: const Icon(Icons.score), + title: const Text('점수 데이터'), + onTap: () => _exportData(context, 'scores'), + ), + ListTile( + leading: const Icon(Icons.analytics), + title: const Text('통계 데이터'), + onTap: () => _exportData(context, 'analytics'), + ), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ], + ), + ); + } + + /// 데이터 내보내기 처리 + Future _exportData(BuildContext context, String dataType) async { + Navigator.of(context).pop(); // 다이얼로그 닫기 + + setState(() { + _isLoading = true; + }); + + try { + final adminService = Provider.of(context, listen: false); + final downloadUrl = await adminService.exportClubData(dataType); + + if (downloadUrl != null) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('데이터 내보내기 성공: $downloadUrl')), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('데이터 내보내기에 실패했습니다.')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('데이터 내보내기 중 오류가 발생했습니다: $e')), + ); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + /// 정보 행 위젯 + Widget _buildInfoRow(String label, String value) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '$label:', + style: const TextStyle(fontWeight: FontWeight.bold), + ), + Text(value), + ], + ), + ); + } + + /// 날짜 포맷팅 + String _formatDate(DateTime date) { + return '${date.year}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}'; + } + + /// 구독 상태 텍스트 + String _getStatusText(SubscriptionStatus status) { + switch (status) { + case SubscriptionStatus.active: + return '활성화'; + case SubscriptionStatus.canceled: + return '취소됨'; + case SubscriptionStatus.expired: + return '만료됨'; + case SubscriptionStatus.pending: + return '대기 중'; + case SubscriptionStatus.failed: + return '실패'; + } + } +} diff --git a/mobile/lib/screens/auth/forgot_password_screen.dart b/mobile/lib/screens/auth/forgot_password_screen.dart new file mode 100644 index 0000000..e3dfeab --- /dev/null +++ b/mobile/lib/screens/auth/forgot_password_screen.dart @@ -0,0 +1,168 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../services/auth_service.dart'; + +class ForgotPasswordScreen extends StatefulWidget { + const ForgotPasswordScreen({super.key}); + + @override + State createState() => _ForgotPasswordScreenState(); +} + +class _ForgotPasswordScreenState extends State { + final _formKey = GlobalKey(); + final _emailController = TextEditingController(); + bool _isSubmitting = false; + bool _emailSent = false; + + @override + void dispose() { + _emailController.dispose(); + super.dispose(); + } + + // 비밀번호 재설정 이메일 전송 함수 + Future _resetPassword() async { + if (_formKey.currentState!.validate()) { + setState(() { + _isSubmitting = true; + }); + + final authService = Provider.of(context, listen: false); + final success = await authService.sendPasswordResetEmail( + _emailController.text.trim(), + ); + + setState(() { + _isSubmitting = false; + _emailSent = success; + }); + + if (success && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('비밀번호 재설정 이메일이 전송되었습니다. 이메일을 확인해주세요.'), + backgroundColor: Colors.green, + ), + ); + } else if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('비밀번호 재설정 이메일 전송에 실패했습니다. 이메일 주소를 확인해주세요.'), + backgroundColor: Colors.red, + ), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('비밀번호 찾기'), + ), + body: SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Form( + key: _formKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Icon( + Icons.lock_reset, + size: 80, + color: Colors.blue, + ), + const SizedBox(height: 24), + + const Text( + '비밀번호를 잊으셨나요?', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + + const Text( + '가입하신 이메일 주소를 입력하시면 비밀번호 재설정 링크를 보내드립니다.', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + color: Colors.grey, + ), + ), + const SizedBox(height: 32), + + // 이메일 입력 필드 + TextFormField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + labelText: '이메일', + prefixIcon: Icon(Icons.email), + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '이메일을 입력해주세요'; + } + if (!RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$').hasMatch(value)) { + return '유효한 이메일 주소를 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 24), + + // 비밀번호 재설정 이메일 전송 버튼 + ElevatedButton( + onPressed: _isSubmitting ? null : _resetPassword, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + ), + child: _isSubmitting + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Text( + '비밀번호 재설정 이메일 전송', + style: TextStyle(fontSize: 16), + ), + ), + const SizedBox(height: 16), + + // 로그인 화면으로 돌아가기 + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('비밀번호가 기억나셨나요?'), + TextButton( + onPressed: () { + Navigator.pop(context); // 로그인 화면으로 돌아가기 + }, + child: const Text('로그인'), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/mobile/lib/screens/auth/login_screen.dart b/mobile/lib/screens/auth/login_screen.dart new file mode 100644 index 0000000..ad7aa16 --- /dev/null +++ b/mobile/lib/screens/auth/login_screen.dart @@ -0,0 +1,212 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../services/auth_service.dart'; +import 'register_screen.dart'; +import 'forgot_password_screen.dart'; + +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + + @override + State createState() => _LoginScreenState(); +} + +class _LoginScreenState extends State { + final _formKey = GlobalKey(); + final _usernameController = TextEditingController(); + final _passwordController = TextEditingController(); + bool _isPasswordVisible = false; + bool _rememberMe = false; + + @override + void dispose() { + _usernameController.dispose(); + _passwordController.dispose(); + super.dispose(); + } + + // 로그인 처리 함수 + Future _login() async { + if (_formKey.currentState!.validate()) { + final authService = Provider.of(context, listen: false); + final success = await authService.login( + _usernameController.text.trim(), + _passwordController.text, + ); + + if (success && mounted) { + // 로그인 성공 시 홈 화면으로 이동 + Navigator.of(context).pushNamedAndRemoveUntil('/', (route) => false); + } else if (!success && mounted) { + // 로그인 실패 시 스낵바 표시 + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('로그인에 실패했습니다. 아이디와 비밀번호를 확인해주세요.'), + backgroundColor: Colors.red, + ), + ); + } + } + } + + @override + Widget build(BuildContext context) { + final authService = Provider.of(context); + + return Scaffold( + body: SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Form( + key: _formKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // 로고 이미지 + Column( + children: [ + Image.asset( + 'assets/images/logo.png', + width: 120, + height: 120, + ), + const SizedBox(height: 16), + const Text( + '레인보우 - 볼링 클럽 매니저', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + ], + ), + const SizedBox(height: 48), + + // 사용자명(아이디) 입력 필드 + TextFormField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: '아이디', + prefixIcon: Icon(Icons.person), + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '아이디를 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 16), + + // 비밀번호 입력 필드 + TextFormField( + controller: _passwordController, + obscureText: !_isPasswordVisible, + decoration: InputDecoration( + labelText: '비밀번호', + prefixIcon: const Icon(Icons.lock), + border: const OutlineInputBorder(), + suffixIcon: IconButton( + icon: Icon( + _isPasswordVisible ? Icons.visibility : Icons.visibility_off, + ), + onPressed: () { + setState(() { + _isPasswordVisible = !_isPasswordVisible; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '비밀번호를 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 8), + + // 로그인 상태 유지 체크박스 + Row( + children: [ + Checkbox( + value: _rememberMe, + onChanged: (value) { + setState(() { + _rememberMe = value ?? false; + }); + }, + ), + const Text('로그인 상태 유지'), + const Spacer(), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const ForgotPasswordScreen(), + ), + ); + }, + child: const Text('비밀번호 찾기'), + ), + ], + ), + const SizedBox(height: 24), + + // 로그인 버튼 + ElevatedButton( + onPressed: authService.isLoading ? null : _login, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + ), + child: authService.isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Text( + '로그인', + style: TextStyle(fontSize: 16), + ), + ), + const SizedBox(height: 16), + + // 회원가입 링크 + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('계정이 없으신가요?'), + TextButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const RegisterScreen(), + ), + ); + }, + child: const Text('회원가입'), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/mobile/lib/screens/auth/profile_screen.dart b/mobile/lib/screens/auth/profile_screen.dart new file mode 100644 index 0000000..1425e29 --- /dev/null +++ b/mobile/lib/screens/auth/profile_screen.dart @@ -0,0 +1,186 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../services/auth_service.dart'; +import '../../models/user_model.dart'; + +class ProfileScreen extends StatefulWidget { + const ProfileScreen({super.key}); + + @override + State createState() => _ProfileScreenState(); +} + +class _ProfileScreenState extends State { + final _formKey = GlobalKey(); + final _nameController = TextEditingController(); + bool _isEditing = false; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + final user = Provider.of(context, listen: false).currentUser; + if (user != null) { + _nameController.text = user.name; + } + }); + } + + @override + void dispose() { + _nameController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('내 프로필'), + actions: [ + IconButton( + icon: Icon(_isEditing ? Icons.save : Icons.edit), + onPressed: () { + setState(() { + _isEditing = !_isEditing; + }); + if (!_isEditing) { + // 저장 로직 구현 (추후 개발) + if (_formKey.currentState!.validate()) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('프로필이 업데이트되었습니다')), + ); + } + } + }, + ), + ], + ), + body: Consumer( + builder: (context, authService, child) { + final User? user = authService.currentUser; + + if (user == null) { + return const Center(child: Text('사용자 정보를 불러올 수 없습니다')); + } + + return SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // 프로필 이미지 + CircleAvatar( + radius: 50, + backgroundImage: user.profileImage != null + ? NetworkImage(user.profileImage!) + : null, + child: user.profileImage == null + ? Text( + user.name.isNotEmpty ? user.name[0].toUpperCase() : '?', + style: const TextStyle(fontSize: 40), + ) + : null, + ), + const SizedBox(height: 16), + + // 이름 필드 + TextFormField( + controller: _nameController, + enabled: _isEditing, + decoration: const InputDecoration( + labelText: '이름', + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '이름을 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 16), + + // 이메일 (수정 불가) + TextFormField( + initialValue: user.email, + enabled: false, + decoration: const InputDecoration( + labelText: '이메일', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + + // 역할 표시 + TextFormField( + initialValue: _getRoleDisplayName(user.role), + enabled: false, + decoration: const InputDecoration( + labelText: '역할', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + + // 클럽 역할 표시 (클럽이 있는 경우) + if (user.clubRole != null) + TextFormField( + initialValue: _getRoleDisplayName(user.clubRole!), + enabled: false, + decoration: const InputDecoration( + labelText: '클럽 내 역할', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 32), + + // 로그아웃 버튼 + ElevatedButton( + onPressed: () async { + await authService.logout(); + if (context.mounted) { + Navigator.of(context).pushReplacementNamed('/login'); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric( + horizontal: 32, + vertical: 12, + ), + ), + child: const Text('로그아웃'), + ), + ], + ), + ), + ); + }, + ), + ); + } + + // 역할 표시 이름 변환 + String _getRoleDisplayName(String role) { + switch (role) { + case 'admin': + return '관리자'; + case 'superadmin': + return '최고 관리자'; + case 'user': + return '일반 사용자'; + case 'owner': + return '클럽 소유자'; + case 'manager': + return '클럽 매니저'; + case 'member': + return '클럽 회원'; + default: + return role; + } + } +} diff --git a/mobile/lib/screens/auth/register_screen.dart b/mobile/lib/screens/auth/register_screen.dart new file mode 100644 index 0000000..cc791b3 --- /dev/null +++ b/mobile/lib/screens/auth/register_screen.dart @@ -0,0 +1,222 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../services/auth_service.dart'; + +class RegisterScreen extends StatefulWidget { + const RegisterScreen({super.key}); + + @override + State createState() => _RegisterScreenState(); +} + +class _RegisterScreenState extends State { + final _formKey = GlobalKey(); + final _nameController = TextEditingController(); + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + final _confirmPasswordController = TextEditingController(); + bool _isPasswordVisible = false; + bool _isConfirmPasswordVisible = false; + + @override + void dispose() { + _nameController.dispose(); + _emailController.dispose(); + _passwordController.dispose(); + _confirmPasswordController.dispose(); + super.dispose(); + } + + // 회원가입 처리 함수 + Future _register() async { + if (_formKey.currentState!.validate()) { + final authService = Provider.of(context, listen: false); + final success = await authService.register( + _nameController.text.trim(), + _emailController.text.trim(), + _passwordController.text, + ); + + if (success && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('회원가입이 완료되었습니다. 로그인해주세요.'), + backgroundColor: Colors.green, + ), + ); + Navigator.pop(context); // 로그인 화면으로 돌아가기 + } else if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('회원가입에 실패했습니다. 다시 시도해주세요.'), + backgroundColor: Colors.red, + ), + ); + } + } + } + + @override + Widget build(BuildContext context) { + final authService = Provider.of(context); + + return Scaffold( + appBar: AppBar( + title: const Text('회원가입'), + ), + body: SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Form( + key: _formKey, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // 이름 입력 필드 + TextFormField( + controller: _nameController, + decoration: const InputDecoration( + labelText: '이름', + prefixIcon: Icon(Icons.person), + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '이름을 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 16), + + // 이메일 입력 필드 + TextFormField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + labelText: '이메일', + prefixIcon: Icon(Icons.email), + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '이메일을 입력해주세요'; + } + if (!RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$').hasMatch(value)) { + return '유효한 이메일 주소를 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 16), + + // 비밀번호 입력 필드 + TextFormField( + controller: _passwordController, + obscureText: !_isPasswordVisible, + decoration: InputDecoration( + labelText: '비밀번호', + prefixIcon: const Icon(Icons.lock), + border: const OutlineInputBorder(), + suffixIcon: IconButton( + icon: Icon( + _isPasswordVisible ? Icons.visibility : Icons.visibility_off, + ), + onPressed: () { + setState(() { + _isPasswordVisible = !_isPasswordVisible; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '비밀번호를 입력해주세요'; + } + if (value.length < 6) { + return '비밀번호는 6자 이상이어야 합니다'; + } + return null; + }, + ), + const SizedBox(height: 16), + + // 비밀번호 확인 입력 필드 + TextFormField( + controller: _confirmPasswordController, + obscureText: !_isConfirmPasswordVisible, + decoration: InputDecoration( + labelText: '비밀번호 확인', + prefixIcon: const Icon(Icons.lock_outline), + border: const OutlineInputBorder(), + suffixIcon: IconButton( + icon: Icon( + _isConfirmPasswordVisible ? Icons.visibility : Icons.visibility_off, + ), + onPressed: () { + setState(() { + _isConfirmPasswordVisible = !_isConfirmPasswordVisible; + }); + }, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '비밀번호를 다시 입력해주세요'; + } + if (value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다'; + } + return null; + }, + ), + const SizedBox(height: 24), + + // 회원가입 버튼 + ElevatedButton( + onPressed: authService.isLoading ? null : _register, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + ), + child: authService.isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Text( + '회원가입', + style: TextStyle(fontSize: 16), + ), + ), + const SizedBox(height: 16), + + // 로그인 화면으로 돌아가기 + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('이미 계정이 있으신가요?'), + TextButton( + onPressed: () { + Navigator.pop(context); // 로그인 화면으로 돌아가기 + }, + child: const Text('로그인'), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/mobile/lib/screens/club/club_settings_screen.dart b/mobile/lib/screens/club/club_settings_screen.dart new file mode 100644 index 0000000..a765bdd --- /dev/null +++ b/mobile/lib/screens/club/club_settings_screen.dart @@ -0,0 +1,367 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../models/member_model.dart'; +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../utils/enum_mappings.dart'; + +class ClubSettingsScreen extends StatefulWidget { + static const routeName = '/club-settings'; + + const ClubSettingsScreen({super.key}); + + @override + _ClubSettingsScreenState createState() => _ClubSettingsScreenState(); +} + +class _ClubSettingsScreenState extends State { + final _formKey = GlobalKey(); + final _nameController = TextEditingController(); + final _descriptionController = TextEditingController(); + final _locationController = TextEditingController(); + final _femaleHandicapController = TextEditingController(); + + String? _selectedAverageCalculationPeriod; + String? _selectedOwnerId; + List _members = []; + bool _isLoading = true; + bool _hasEditPermission = false; + + @override + void initState() { + super.initState(); + _loadData(); + } + + @override + void dispose() { + _nameController.dispose(); + _descriptionController.dispose(); + _locationController.dispose(); + _femaleHandicapController.dispose(); + super.dispose(); + } + + Future _loadData() async { + setState(() { + _isLoading = true; + }); + + try { + // 클럽 정보 로드 + final clubService = Provider.of(context, listen: false); + final club = clubService.currentClub; + + if (club != null) { + _nameController.text = club.name; + _descriptionController.text = club.description ?? ''; + _locationController.text = club.location ?? ''; + _femaleHandicapController.text = club.femaleHandicap?.toString() ?? ''; + _selectedAverageCalculationPeriod = + club.averageCalculationPeriod ?? 'total'; + _selectedOwnerId = club.ownerId; + } + + // 회원 목록 로드 + final memberService = Provider.of(context, listen: false); + await memberService.fetchClubMembers(); + setState(() { + _members = memberService.members; + }); + + // 권한 확인 + final authService = Provider.of(context, listen: false); + final currentUserId = authService.currentUser?.id; + + // 현재 사용자가 클럽 소유자이거나 관리자인지 확인 + if (currentUserId != null) { + final currentMember = _members.firstWhere( + (member) => member.userId == currentUserId, + orElse: () => Member( + id: '', + userId: '', + name: '', + memberType: '', + clubId: club?.id ?? '', + email: '', + isActive: true, + ), + ); + + setState(() { + _hasEditPermission = + club?.ownerId == currentUserId || // 클럽 소유자 + currentMember.memberType == 'manager' || // 클럽 매니저 + authService.currentUser?.role == 'admin'; // 시스템 관리자 + }); + } + } catch (error) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('데이터 로드 중 오류가 발생했습니다: $error'))); + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _saveClubInfo() async { + if (!_formKey.currentState!.validate()) { + return; + } + + setState(() { + _isLoading = true; + }); + + try { + final clubService = Provider.of(context, listen: false); + final club = clubService.currentClub; + + if (club != null) { + // 기본 업데이트 데이터 준비 + final Map updates = { + 'clubId': club.id, + 'name': _nameController.text.trim(), + }; + + // 빈 문자열이 아닌 경우에만 추가 (null 값 명시적 처리) + if (_descriptionController.text.trim().isNotEmpty) { + updates['description'] = _descriptionController.text.trim(); + } else if (_descriptionController.text.trim().isEmpty && + club.description != null) { + // 기존에 값이 있었는데 지금 비어있으면 명시적으로 null 설정 + updates['description'] = null; + } + + if (_locationController.text.trim().isNotEmpty) { + updates['location'] = _locationController.text.trim(); + } else if (_locationController.text.trim().isEmpty && + club.location != null) { + updates['location'] = null; + } + + if (_femaleHandicapController.text.trim().isNotEmpty) { + updates['femaleHandicap'] = int.parse( + _femaleHandicapController.text.trim(), + ); + } + + if (_selectedAverageCalculationPeriod != null) { + updates['averageCalculationPeriod'] = + _selectedAverageCalculationPeriod; + } + + if (_selectedOwnerId != null) { + updates['ownerId'] = _selectedOwnerId; + } + + // 모임장 변경 시에만 이메일 정보 추가 + if (_selectedOwnerId != club.ownerId) { + // 모임장이 변경된 경우 해당 회원의 이메일 정보 찾기 + final selectedMember = _members.firstWhere( + (member) => member.userId == _selectedOwnerId, + orElse: () => Member( + id: '', + userId: '', + name: '', + memberType: '', + clubId: club.id, + email: '', + isActive: true, + ), + ); + + // 이메일이 있는 경우에만 추가 (빈 문자열이나 null은 전송하지 않음) + if (selectedMember.email.isNotEmpty) { + updates['ownerEmail'] = selectedMember.email; + } + } + + await clubService.updateClub(club.id, updates); + + if (context.mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('클럽 정보가 성공적으로 저장되었습니다'))); + } + } + } catch (error) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('클럽 정보 저장 중 오류가 발생했습니다: $error')), + ); + } + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('클럽 설정')), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : Column( + children: [ + if (!_hasEditPermission) + Container( + width: double.infinity, + padding: const EdgeInsets.all(16.0), + color: Colors.amber.shade100, + child: const Text( + '권한 알림: 클럽 설정을 변경하려면 클럽 소유자 또는 관리자 권한이 필요합니다.', + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Expanded( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 클럽 이름 + TextFormField( + controller: _nameController, + decoration: const InputDecoration( + labelText: '클럽 이름', + border: OutlineInputBorder(), + ), + validator: (value) { + if (value == null || value.trim().isEmpty) { + return '클럽 이름을 입력해주세요'; + } + return null; + }, + enabled: _hasEditPermission, + ), + // 설명 + const SizedBox(height: 16), + TextFormField( + controller: _descriptionController, + decoration: const InputDecoration( + labelText: '설명', + border: OutlineInputBorder(), + ), + maxLines: 3, + enabled: _hasEditPermission, + ), + // 위치 + const SizedBox(height: 16), + TextFormField( + controller: _locationController, + decoration: const InputDecoration( + labelText: '위치', + border: OutlineInputBorder(), + ), + enabled: _hasEditPermission, + ), + // 여성 기본 핸디캡 + const SizedBox(height: 16), + TextFormField( + controller: _femaleHandicapController, + decoration: const InputDecoration( + labelText: '여성 기본 핸디캡', + border: OutlineInputBorder(), + ), + keyboardType: TextInputType.number, + validator: (value) { + if (value != null && value.isNotEmpty) { + final handicap = int.tryParse(value); + if (handicap == null) { + return '숫자를 입력해주세요'; + } + if (handicap < 0) { + return '0 이상의 값을 입력해주세요'; + } + } + return null; + }, + enabled: _hasEditPermission, + ), + // 평균 산정 기준 + const SizedBox(height: 16), + DropdownButtonFormField( + decoration: const InputDecoration( + labelText: '평균 산정 기준', + border: OutlineInputBorder(), + ), + value: _selectedAverageCalculationPeriod, + items: averageCalculationPeriodOptions.entries + .map( + (entry) => DropdownMenuItem( + value: entry.key, + child: Text(entry.value), + ), + ) + .toList(), + onChanged: _hasEditPermission + ? (value) { + setState(() { + _selectedAverageCalculationPeriod = value; + }); + } + : null, + ), + // 모임장 설정 + const SizedBox(height: 16), + DropdownButtonFormField( + decoration: const InputDecoration( + labelText: '모임장 설정', + border: OutlineInputBorder(), + ), + value: _selectedOwnerId, + items: _members.map((member) { + return DropdownMenuItem( + value: member.userId, + child: Text( + '${member.name} (${getMemberTypeLabel(member.memberType)})', + ), + ); + }).toList(), + onChanged: _hasEditPermission + ? (value) { + setState(() { + _selectedOwnerId = value; + }); + } + : null, + ), + // 저장 버튼 + const SizedBox(height: 24), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: _hasEditPermission + ? _saveClubInfo + : null, + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric( + vertical: 16.0, + ), + ), + child: const Text('저장'), + ), + ), + ], + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/screens/club/dashboard_screen.dart b/mobile/lib/screens/club/dashboard_screen.dart new file mode 100644 index 0000000..36db936 --- /dev/null +++ b/mobile/lib/screens/club/dashboard_screen.dart @@ -0,0 +1,394 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../services/event_service.dart'; +import '../../models/club_model.dart'; +import 'club_settings_screen.dart'; + +class DashboardScreen extends StatefulWidget { + const DashboardScreen({super.key}); + + @override + State createState() => _DashboardScreenState(); +} + +class _DashboardScreenState extends State { + bool _isLoading = false; + bool _isInit = false; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadDashboardData(); + _isInit = true; + } + } + + Future _loadDashboardData() async { + setState(() { + _isLoading = true; + }); + + try { + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + + // 클럽 정보 로드 + if (clubService.currentClub == null) { + await clubService.initialize(authService.token!); + } + + // 회원 및 이벤트 서비스 초기화 + if (clubService.currentClub != null) { + final memberService = Provider.of(context, listen: false); + final eventService = Provider.of(context, listen: false); + + memberService.initialize(authService.token!); + eventService.initialize(authService.token!); + + // 회원 및 이벤트 데이터 로드 + await Future.wait([ + memberService.fetchClubMembers(), + eventService.fetchClubEvents(), + ]); + } + } catch (e) { + // 오류 처리 + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('데이터 로드 중 오류가 발생했습니다: $e')), + ); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: _loadDashboardData, + child: Consumer3( + builder: (context, clubService, memberService, eventService, _) { + final club = clubService.currentClub; + + if (club == null) { + return const Center( + child: Text('클럽 정보를 불러올 수 없습니다'), + ); + } + + return SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 클럽 정보 카드 + _buildClubInfoCard(club), + const SizedBox(height: 16), + + // 통계 카드들 + _buildStatisticsCards( + memberCount: memberService.members.length, + eventCount: eventService.events.length, + ), + const SizedBox(height: 16), + + // 최근 이벤트 목록 + _buildRecentEventsList(eventService), + ], + ), + ); + }, + ), + ), + ); + } + + Widget _buildClubInfoCard(Club club) { + return Card( + elevation: 2, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Row( + children: [ + if (club.logo != null) + ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + club.logo!, + width: 60, + height: 60, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Container( + width: 60, + height: 60, + color: Colors.grey[300], + child: const Icon(Icons.sports_golf), + ); + }, + ), + ) + else + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: Colors.blue[100], + borderRadius: BorderRadius.circular(8), + ), + child: const Icon( + Icons.sports_golf, + size: 30, + color: Colors.blue, + ), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + club.name, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + if (club.description != null) + Text( + club.description!, + style: TextStyle( + fontSize: 14, + color: Colors.grey[600], + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ], + ), + ), + IconButton( + icon: const Icon(Icons.settings), + tooltip: '클럽 설정', + onPressed: () { + Navigator.of(context).pushNamed(ClubSettingsScreen.routeName); + }, + ), + ], + ), + const SizedBox(height: 16), + if (club.address != null) + _buildInfoRow(Icons.location_on, club.address!), + if (club.phone != null) + _buildInfoRow(Icons.phone, club.phone!), + if (club.email != null) + _buildInfoRow(Icons.email, club.email!), + if (club.website != null) + _buildInfoRow(Icons.language, club.website!), + ], + ), + ), + ); + } + + Widget _buildInfoRow(IconData icon, String text) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Row( + children: [ + Icon(icon, size: 16, color: Colors.grey[600]), + const SizedBox(width: 8), + Expanded( + child: Text( + text, + style: TextStyle(fontSize: 14, color: Colors.grey[800]), + ), + ), + ], + ), + ); + } + + Widget _buildStatisticsCards({required int memberCount, required int eventCount}) { + return Row( + children: [ + Expanded( + child: _buildStatCard( + title: '회원', + value: memberCount.toString(), + icon: Icons.people, + color: Colors.blue, + ), + ), + const SizedBox(width: 16), + Expanded( + child: _buildStatCard( + title: '이벤트', + value: eventCount.toString(), + icon: Icons.event, + color: Colors.orange, + ), + ), + ], + ); + } + + Widget _buildStatCard({ + required String title, + required String value, + required IconData icon, + required Color color, + }) { + return Card( + elevation: 2, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + Icon(icon, size: 32, color: color), + const SizedBox(height: 8), + Text( + value, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: color, + ), + ), + Text( + title, + style: TextStyle( + fontSize: 14, + color: Colors.grey[600], + ), + ), + ], + ), + ), + ); + } + + Widget _buildRecentEventsList(EventService eventService) { + final events = eventService.events; + + if (events.isEmpty) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16.0), + child: Center( + child: Text('예정된 이벤트가 없습니다'), + ), + ), + ); + } + + // 날짜 기준으로 정렬 (가까운 날짜순) + final sortedEvents = [...events]; + sortedEvents.sort((a, b) => a.startDate.compareTo(b.startDate)); + + // 앞으로 진행될 이벤트만 필터링 (최대 3개) + final upcomingEvents = sortedEvents + .where((event) => event.startDate.isAfter(DateTime.now())) + .take(3) + .toList(); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + '다가오는 이벤트', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + TextButton( + onPressed: () { + // 이벤트 목록 화면으로 이동 (추후 구현) + }, + child: const Text('모두 보기'), + ), + ], + ), + const SizedBox(height: 8), + ...upcomingEvents.map((event) => _buildEventCard(event)), + ], + ); + } + + Widget _buildEventCard(event) { + final dateFormat = DateFormat('yyyy년 MM월 dd일 HH:mm'); + + return Card( + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + title: Text( + event.title, + style: const TextStyle( + fontWeight: FontWeight.bold, + ), + ), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 4), + Text( + dateFormat.format(event.startDate), + style: TextStyle( + color: Colors.grey[700], + ), + ), + if (event.location != null) + Text( + event.location!, + style: TextStyle( + color: Colors.grey[600], + ), + ), + ], + ), + trailing: const Icon(Icons.arrow_forward_ios, size: 16), + onTap: () { + // 이벤트 상세 화면으로 이동 (추후 구현) + }, + ), + ); + } +} diff --git a/mobile/lib/screens/club/events_screen.dart b/mobile/lib/screens/club/events_screen.dart new file mode 100644 index 0000000..9be6964 --- /dev/null +++ b/mobile/lib/screens/club/events_screen.dart @@ -0,0 +1,671 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/event_service.dart'; +import '../../models/event_model.dart'; + +class EventsScreen extends StatefulWidget { + const EventsScreen({super.key}); + + @override + State createState() => _EventsScreenState(); +} + +class _EventsScreenState extends State { + bool _isInit = false; + String _searchQuery = ''; + final TextEditingController _searchController = TextEditingController(); + String _filterType = '전체'; // '전체', '예정', '지난' + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadEvents(); + _isInit = true; + } + } + + Future _loadEvents() async { + try { + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final eventService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + eventService.initialize(authService.token!); + await eventService.fetchClubEvents(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('이벤트 목록을 불러오는데 실패했습니다: $e')), + ); + } + } + } + + List _getFilteredEvents(List events) { + // 검색어 필터링 + List filteredEvents = events; + if (_searchQuery.isNotEmpty) { + final query = _searchQuery.toLowerCase(); + filteredEvents = filteredEvents.where((event) { + return event.title.toLowerCase().contains(query) || + (event.description?.toLowerCase().contains(query) ?? false) || + (event.location?.toLowerCase().contains(query) ?? false); + }).toList(); + } + + // 날짜 필터링 + final now = DateTime.now(); + if (_filterType == '예정') { + filteredEvents = filteredEvents.where((event) => event.startDate.isAfter(now)).toList(); + } else if (_filterType == '지난') { + filteredEvents = filteredEvents.where((event) => event.startDate.isBefore(now)).toList(); + } + + // 날짜순 정렬 + filteredEvents.sort((a, b) => a.startDate.compareTo(b.startDate)); + + return filteredEvents; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + // 검색 바 + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: '이벤트 검색', + prefixIcon: const Icon(Icons.search), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + ), + contentPadding: const EdgeInsets.symmetric(vertical: 0), + suffixIcon: _searchQuery.isNotEmpty + ? IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + _searchController.clear(); + setState(() { + _searchQuery = ''; + }); + }, + ) + : null, + ), + onChanged: (value) { + setState(() { + _searchQuery = value; + }); + }, + ), + const SizedBox(height: 8), + + // 필터 버튼들 + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + _buildFilterChip('전체'), + const SizedBox(width: 8), + _buildFilterChip('예정'), + const SizedBox(width: 8), + _buildFilterChip('지난'), + ], + ), + ), + ], + ), + ), + + // 이벤트 목록 + Expanded( + child: Consumer( + builder: (context, eventService, _) { + if (eventService.isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + final filteredEvents = _getFilteredEvents(eventService.events); + + if (filteredEvents.isEmpty) { + return Center( + child: Text( + _searchQuery.isEmpty + ? '등록된 이벤트가 없습니다' + : '검색 결과가 없습니다', + ), + ); + } + + return RefreshIndicator( + onRefresh: _loadEvents, + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 16), + itemCount: filteredEvents.length, + itemBuilder: (context, index) { + final event = filteredEvents[index]; + return _buildEventCard(event); + }, + ), + ); + }, + ), + ), + ], + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + // 이벤트 추가 화면으로 이동 (추후 구현) + _showAddEventDialog(); + }, + backgroundColor: Colors.blue, + child: const Icon(Icons.add, color: Colors.white), + ), + ); + } + + Widget _buildFilterChip(String label) { + final isSelected = _filterType == label; + + return FilterChip( + label: Text(label), + selected: isSelected, + onSelected: (selected) { + setState(() { + _filterType = selected ? label : '전체'; + }); + }, + backgroundColor: Colors.grey[200], + selectedColor: Colors.blue[100], + checkmarkColor: Colors.blue, + labelStyle: TextStyle( + color: isSelected ? Colors.blue[800] : Colors.black87, + fontWeight: isSelected ? FontWeight.bold : FontWeight.normal, + ), + ); + } + + Widget _buildEventCard(Event event) { + final dateFormat = DateFormat('yyyy년 MM월 dd일 HH:mm'); + final now = DateTime.now(); + final isPast = event.startDate.isBefore(now); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 4), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + child: ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + leading: Container( + width: 48, + height: 48, + decoration: BoxDecoration( + color: isPast ? Colors.grey[200] : Colors.blue[100], + borderRadius: BorderRadius.circular(8), + ), + child: Icon( + Icons.event, + color: isPast ? Colors.grey[600] : Colors.blue, + ), + ), + title: Text( + event.title, + style: TextStyle( + fontWeight: FontWeight.bold, + color: isPast ? Colors.grey[600] : Colors.black, + ), + ), + subtitle: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 4), + Text( + dateFormat.format(event.startDate), + style: TextStyle( + color: isPast ? Colors.grey[500] : Colors.grey[700], + ), + ), + if (event.location != null) + Text( + event.location!, + style: TextStyle( + color: isPast ? Colors.grey[500] : Colors.grey[600], + ), + ), + ], + ), + trailing: PopupMenuButton( + icon: const Icon(Icons.more_vert), + onSelected: (value) { + if (value == 'edit') { + _showEditEventDialog(event); + } else if (value == 'delete') { + _showDeleteConfirmationDialog(event); + } + }, + itemBuilder: (context) => [ + const PopupMenuItem( + value: 'edit', + child: Row( + children: [ + Icon(Icons.edit, size: 18), + SizedBox(width: 8), + Text('수정'), + ], + ), + ), + const PopupMenuItem( + value: 'delete', + child: Row( + children: [ + Icon(Icons.delete, size: 18, color: Colors.red), + SizedBox(width: 8), + Text('삭제', style: TextStyle(color: Colors.red)), + ], + ), + ), + ], + ), + onTap: () { + // 이벤트 상세 화면으로 이동 (추후 구현) + _showEventDetailsDialog(event); + }, + ), + ); + } + + // 이벤트 추가 다이얼로그 + void _showAddEventDialog() { + final titleController = TextEditingController(); + final descriptionController = TextEditingController(); + final locationController = TextEditingController(); + + DateTime selectedDate = DateTime.now().add(const Duration(days: 1)); + TimeOfDay selectedTime = TimeOfDay.now(); + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('이벤트 추가'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: titleController, + decoration: const InputDecoration( + labelText: '제목', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: descriptionController, + maxLines: 3, + decoration: const InputDecoration( + labelText: '설명', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: locationController, + decoration: const InputDecoration( + labelText: '장소', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + ListTile( + title: const Text('날짜'), + subtitle: Text( + DateFormat('yyyy년 MM월 dd일').format(selectedDate), + ), + trailing: const Icon(Icons.calendar_today), + onTap: () async { + final pickedDate = await showDatePicker( + context: context, + initialDate: selectedDate, + firstDate: DateTime.now(), + lastDate: DateTime.now().add(const Duration(days: 365)), + ); + if (pickedDate != null && context.mounted) { + setState(() { + selectedDate = pickedDate; + }); + } + }, + ), + ListTile( + title: const Text('시간'), + subtitle: Text(selectedTime.format(context)), + trailing: const Icon(Icons.access_time), + onTap: () async { + final pickedTime = await showTimePicker( + context: context, + initialTime: selectedTime, + ); + if (pickedTime != null && context.mounted) { + setState(() { + selectedTime = pickedTime; + }); + } + }, + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ElevatedButton( + onPressed: () async { + if (titleController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('제목은 필수 입력 항목입니다')), + ); + return; + } + + try { + final eventService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + // 날짜와 시간 결합 + final eventDateTime = DateTime( + selectedDate.year, + selectedDate.month, + selectedDate.day, + selectedTime.hour, + selectedTime.minute, + ); + + await eventService.createEvent({ + 'title': titleController.text.trim(), + 'description': descriptionController.text.trim(), + 'location': locationController.text.trim(), + 'startDate': eventDateTime.toIso8601String(), + 'clubId': clubService.currentClub!.id, + 'isActive': true, + }); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이벤트가 추가되었습니다')), + ); + } + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('이벤트 추가에 실패했습니다: $e')), + ); + } + }, + child: const Text('추가'), + ), + ], + ), + ); + } + + // 이벤트 수정 다이얼로그 + void _showEditEventDialog(Event event) { + final titleController = TextEditingController(text: event.title); + final descriptionController = TextEditingController(text: event.description ?? ''); + final locationController = TextEditingController(text: event.location ?? ''); + + DateTime selectedDate = event.startDate; + TimeOfDay selectedTime = TimeOfDay( + hour: event.startDate.hour, + minute: event.startDate.minute, + ); + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('이벤트 수정'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: titleController, + decoration: const InputDecoration( + labelText: '제목', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: descriptionController, + maxLines: 3, + decoration: const InputDecoration( + labelText: '설명', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: locationController, + decoration: const InputDecoration( + labelText: '장소', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + ListTile( + title: const Text('날짜'), + subtitle: Text( + DateFormat('yyyy년 MM월 dd일').format(selectedDate), + ), + trailing: const Icon(Icons.calendar_today), + onTap: () async { + final pickedDate = await showDatePicker( + context: context, + initialDate: selectedDate, + firstDate: DateTime.now().subtract(const Duration(days: 365)), + lastDate: DateTime.now().add(const Duration(days: 365)), + ); + if (pickedDate != null && context.mounted) { + setState(() { + selectedDate = pickedDate; + }); + } + }, + ), + ListTile( + title: const Text('시간'), + subtitle: Text(selectedTime.format(context)), + trailing: const Icon(Icons.access_time), + onTap: () async { + final pickedTime = await showTimePicker( + context: context, + initialTime: selectedTime, + ); + if (pickedTime != null && context.mounted) { + setState(() { + selectedTime = pickedTime; + }); + } + }, + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ElevatedButton( + onPressed: () async { + if (titleController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('제목은 필수 입력 항목입니다')), + ); + return; + } + + try { + final eventService = Provider.of(context, listen: false); + + // 날짜와 시간 결합 + final eventDateTime = DateTime( + selectedDate.year, + selectedDate.month, + selectedDate.day, + selectedTime.hour, + selectedTime.minute, + ); + + await eventService.updateEvent(event.id, { + 'title': titleController.text.trim(), + 'description': descriptionController.text.trim(), + 'location': locationController.text.trim(), + 'startDate': eventDateTime.toIso8601String(), + }); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이벤트가 업데이트되었습니다')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('이벤트 업데이트에 실패했습니다: $e')), + ); + } + }, + child: const Text('저장'), + ), + ], + ), + ); + } + + // 이벤트 상세 정보 다이얼로그 + void _showEventDetailsDialog(Event event) { + final dateFormat = DateFormat('yyyy년 MM월 dd일 HH:mm'); + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text(event.title), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.calendar_today, size: 16, color: Colors.blue), + const SizedBox(width: 8), + Text(dateFormat.format(event.startDate)), + ], + ), + const SizedBox(height: 8), + if (event.location != null) ...[ + Row( + children: [ + const Icon(Icons.location_on, size: 16, color: Colors.blue), + const SizedBox(width: 8), + Text(event.location!), + ], + ), + const SizedBox(height: 8), + ], + if (event.description != null) ...[ + const Divider(), + const SizedBox(height: 8), + Text( + event.description!, + style: const TextStyle(fontSize: 16), + ), + ], + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('닫기'), + ), + TextButton( + onPressed: () { + Navigator.of(context).pop(); + _showEditEventDialog(event); + }, + child: const Text('수정'), + ), + ], + ), + ); + } + + // 이벤트 삭제 확인 다이얼로그 + void _showDeleteConfirmationDialog(Event event) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('이벤트 삭제'), + content: Text('${event.title} 이벤트를 정말 삭제하시겠습니까?'), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + TextButton( + onPressed: () async { + try { + final eventService = Provider.of(context, listen: false); + + await eventService.deleteEvent(event.id); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이벤트가 삭제되었습니다')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('이벤트 삭제에 실패했습니다: $e')), + ); + } + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('삭제'), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/screens/club/members_screen.dart b/mobile/lib/screens/club/members_screen.dart new file mode 100644 index 0000000..976ed68 --- /dev/null +++ b/mobile/lib/screens/club/members_screen.dart @@ -0,0 +1,1018 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../models/member_model.dart'; +import '../../utils/enum_mappings.dart'; + +class MembersScreen extends StatefulWidget { + const MembersScreen({super.key}); + + @override + State createState() => _MembersScreenState(); +} + +class _MembersScreenState extends State { + bool _isInit = false; + String _searchQuery = ''; + final TextEditingController _searchController = TextEditingController(); + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadMembers(); + _isInit = true; + } + } + + Future _loadMembers() async { + try { + print('_loadMembers 호출됨'); + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final memberService = Provider.of(context, listen: false); + + print('현재 클럽: ${clubService.currentClub?.name}'); + print('토큰: ${authService.token}'); + + if (clubService.currentClub != null && authService.token != null) { + print('멤버 서비스 초기화 시작'); + memberService.initialize(authService.token!); + memberService.setClubId(clubService.currentClub!.id); // 클럽 ID 설정 추가 + print('멤버 서비스 초기화 완료'); + + print('회원 목록 가져오기 시작'); + await memberService.fetchClubMembers(); + print('회원 목록 가져오기 완료: ${memberService.members.length}개'); + } else { + print('클럽 또는 토큰이 없어서 회원 목록을 가져올 수 없습니다.'); + } + } catch (e) { + print('회원 목록 가져오기 오류: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 목록을 불러오는데 실패했습니다: $e')), + ); + } + } + } + + List _getFilteredMembers(List members) { + if (_searchQuery.isEmpty) { + return members; + } + + final query = _searchQuery.toLowerCase(); + return members.where((member) { + return member.name.toLowerCase().contains(query) || + member.email.toLowerCase().contains(query); + }).toList(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + // 검색 바 + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: '회원 검색', + prefixIcon: const Icon(Icons.search), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + ), + contentPadding: const EdgeInsets.symmetric(vertical: 0), + suffixIcon: _searchQuery.isNotEmpty + ? IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + _searchController.clear(); + setState(() { + _searchQuery = ''; + }); + }, + ) + : null, + ), + onChanged: (value) { + setState(() { + _searchQuery = value; + }); + }, + ), + ), + + // 회원 목록 + Expanded( + child: Consumer( + builder: (context, memberService, _) { + if (memberService.isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + final filteredMembers = _getFilteredMembers(memberService.members); + + if (filteredMembers.isEmpty) { + return Center( + child: Text( + _searchQuery.isEmpty + ? '등록된 회원이 없습니다' + : '검색 결과가 없습니다', + ), + ); + } + + return RefreshIndicator( + onRefresh: _loadMembers, + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 16), + itemCount: filteredMembers.length, + itemBuilder: (context, index) { + final member = filteredMembers[index]; + return _buildMemberCard(member); + }, + ), + ); + }, + ), + ), + ], + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + // 회원 추가 화면으로 이동 (추후 구현) + _showAddMemberDialog(); + }, + backgroundColor: Colors.blue, + child: const Icon(Icons.add, color: Colors.white), + ), + ); + } + + Widget _buildMemberCard(Member member) { + final memberTypeText = _getMemberTypeDisplayName(member.memberType); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: InkWell( + onTap: () { + // 회원 상세 정보 다이얼로그 표시 + _showMemberDetailDialog(member); + }, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + // 회원 정보 + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + member.name, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(width: 8), + // 성별 아이콘 + Icon( + member.gender == 'female' ? Icons.female : Icons.male, + size: 18, + color: member.gender == 'female' ? Colors.pink : Colors.blue, + ), + // 핸디캡 + if (member.handicap != null && member.handicap != 0) + Container( + margin: const EdgeInsets.only(left: 8), + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: Colors.orange.shade100, + borderRadius: BorderRadius.circular(12), + ), + child: Text( + (member.handicap! > 0) ? "+${member.handicap}" : member.handicap.toString(), + style: TextStyle( + fontSize: 12, + color: Colors.orange.shade800, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + if (member.email.isNotEmpty || member.phone != null) + const SizedBox(height: 4), + if (member.phone != null) + Text( + member.phone!, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + const SizedBox(width: 8), + if (member.email.isNotEmpty) + Text( + member.email, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + const SizedBox(height: 4), + Row( + children: [ + Text( + memberTypeText, // 회원 유형으로 변경 + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade700, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(width: 8), + // 가입일 표시 + if (member.joinDate != null) + Text( + '가입: ${formatDate(member.joinDate!)}', + style: TextStyle( + fontSize: 12, + color: Colors.grey.shade600, + ), + ), + const SizedBox(width: 8), + // 상태 표시 + Container( + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 2), + decoration: BoxDecoration( + color: getStatusColor(member.status ?? 'inactive'), + borderRadius: BorderRadius.circular(12), + ), + child: Text( + getStatusLabel(member.status), + style: TextStyle( + color: getStatusTextColor(member.status ?? 'inactive'), + fontWeight: FontWeight.bold, + fontSize: 12, + ), + ), + ), + ], + ), + ], + ), + ), + // 액션 버튼 + PopupMenuButton( + icon: const Icon(Icons.more_vert), + onSelected: (value) { + if (value == 'edit') { + _showMemberDetailDialog(member); + } else if (value == 'delete') { + _showDeleteConfirmationDialog(member); + } + }, + itemBuilder: (context) => [ + const PopupMenuItem( + value: 'delete', + child: Row( + children: [ + Icon(Icons.delete, size: 20, color: Colors.red), + SizedBox(width: 8), + Text('삭제', style: TextStyle(color: Colors.red)), + ], + ), + ), + ], + ), + ], + ), + ), + ), + ); + } + + // 회원 추가 다이얼로그 + void _showAddMemberDialog() { + final nameController = TextEditingController(); + final emailController = TextEditingController(); + final phoneController = TextEditingController(); + final handicapController = TextEditingController(text: '0'); + final joinDateController = TextEditingController(text: formatDate(DateTime.now())); + + // 선택형 필드를 위한 값 초기화 + String selectedGender = 'male'; + String selectedMemberType = 'regular'; + String selectedStatus = 'active'; + + showDialog( + context: context, + builder: (context) => StatefulBuilder( + builder: (context, setState) { + return AlertDialog( + title: const Text('회원 추가'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: nameController, + decoration: const InputDecoration( + labelText: '이름', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + labelText: '이메일', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: phoneController, + keyboardType: TextInputType.phone, + decoration: const InputDecoration( + labelText: '전화번호 (선택사항)', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: handicapController, + keyboardType: TextInputType.number, + decoration: const InputDecoration( + labelText: '핸디캡', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: joinDateController, + readOnly: true, + decoration: const InputDecoration( + labelText: '가입일', + border: OutlineInputBorder(), + suffixIcon: Icon(Icons.calendar_today), + ), + onTap: () async { + final DateTime? picked = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime(2000), + lastDate: DateTime(2101), + ); + if (picked != null) { + setState(() { + joinDateController.text = formatDate(picked); + }); + } + }, + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: selectedGender, + decoration: const InputDecoration( + labelText: '성별', + border: OutlineInputBorder(), + ), + items: const [ + DropdownMenuItem(value: 'male', child: Text('남성')), + DropdownMenuItem(value: 'female', child: Text('여성')), + ], + onChanged: (value) { + if (value != null) { + setState(() { + selectedGender = value; + }); + } + }, + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: selectedMemberType, + decoration: const InputDecoration( + labelText: '회원 유형', + border: OutlineInputBorder(), + ), + items: const [ + DropdownMenuItem(value: 'regular', child: Text('정회원')), + DropdownMenuItem(value: 'associate', child: Text('준회원')), + DropdownMenuItem(value: 'guest', child: Text('게스트')), + ], + onChanged: (value) { + if (value != null) { + setState(() { + selectedMemberType = value; + }); + } + }, + ), + const SizedBox(height: 16), + DropdownButtonFormField( + value: selectedStatus, + decoration: const InputDecoration( + labelText: '상태', + border: OutlineInputBorder(), + ), + items: const [ + DropdownMenuItem(value: 'active', child: Text('활성')), + DropdownMenuItem(value: 'inactive', child: Text('비활성')), + ], + onChanged: (value) { + if (value != null) { + setState(() { + selectedStatus = value; + }); + } + }, + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ElevatedButton( + onPressed: () async { + if (nameController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이름은 필수 입력 항목입니다')), + ); + return; + } + + try { + final memberService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + // 회원 추가 데이터 준비 + final memberData = { + 'name': nameController.text.trim(), + 'clubId': clubService.currentClub!.id, + 'gender': selectedGender, + 'memberType': selectedMemberType, + 'status': selectedStatus, + 'handicap': int.tryParse(handicapController.text) ?? 0, + 'isActive': selectedStatus == 'active', + }; + + // 가입일 추가 + try { + final joinDate = parseDate(joinDateController.text); + if (joinDate != null) { + memberData['joinDate'] = joinDate.toIso8601String(); + } + } catch (e) { + // 가입일 파싱 오류 무시 + } + + // 이메일이 비어있으면 null로 설정, 그렇지 않으면 트림한 값 사용 + if (emailController.text.trim().isEmpty) { + memberData['email'] = null; + } else { + memberData['email'] = emailController.text.trim(); + } + + // 전화번호가 비어있으면 null로 설정, 그렇지 않으면 트림한 값 사용 + if (phoneController.text.trim().isEmpty) { + memberData['phone'] = null; + } else { + memberData['phone'] = phoneController.text.trim(); + } + + await memberService.addMember(memberData); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원이 추가되었습니다')), + ); + } + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 추가에 실패했습니다: $e')), + ); + } + }, + child: const Text('추가'), + ), + ], + ); + }, + ), + ); + } + + // 날짜 포맷팅 함수 + String formatDate(DateTime? date) { + if (date == null) return '정보 없음'; + return DateFormat('yyyy-MM-dd').format(date); + } + + // 날짜 파싱 함수 + DateTime? parseDate(String? dateStr) { + if (dateStr == null) return null; + if (dateStr.isEmpty) return null; + try { + // 다양한 형식 지원 + if (dateStr.contains('T')) { + // ISO 형식 (예: 2023-01-01T00:00:00.000Z) + return DateTime.parse(dateStr); + } else if (dateStr.contains('-')) { + // yyyy-MM-dd 형식 + return DateFormat('yyyy-MM-dd').parse(dateStr); + } + return null; + } catch (e) { + return null; + } + } + + // 폼 필드 생성 헬퍼 메서드 + // 폼 필드 빌더 헬퍼 함수 + Widget buildFormField(String label, Widget field) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.grey, + ), + ), + const SizedBox(height: 4), + field, + ], + ), + ); + } + + // 성별 표시 이름 변환 + String _getGenderDisplayName(String? gender) { + return getGenderLabel(gender); + } + + // 회원 유형 표시 이름 변환 + String _getMemberTypeDisplayName(String? memberType) { + return getMemberTypeLabel(memberType); + } + + // 회원 상태에 따른 배경색 가져오기 + Color getStatusColor(String status) { + switch (status) { + case 'active': return Colors.green.shade100; + case 'inactive': return Colors.grey.shade200; + case 'suspended': return Colors.red.shade100; + case 'deleted': return Colors.grey.shade300; + default: return Colors.grey.shade200; + } + } + + // 회원 상태에 따른 텍스트 색상 가져오기 + Color getStatusTextColor(String status) { + switch (status) { + case 'active': return Colors.green.shade800; + case 'inactive': return Colors.grey.shade700; + case 'suspended': return Colors.red.shade800; + case 'deleted': return Colors.grey.shade800; + default: return Colors.grey.shade700; + } + } + + // 회원 상세 정보 다이얼로그 + void _showMemberDetailDialog(Member member) { + bool isEditing = false; + + // 폼 컨트롤러 초기화 + final nameController = TextEditingController(text: member.name); + final phoneController = TextEditingController(text: member.phone ?? ''); + final emailController = TextEditingController(text: member.email ?? ''); + final handicapController = TextEditingController(text: member.handicap?.toString() ?? '0'); + final joinDateController = TextEditingController(text: formatDate(member.joinDate)); + + // 선택형 필드를 위한 값 초기화 + String selectedGender = member.gender ?? 'male'; + String selectedMemberType = member.memberType ?? 'regular'; + String selectedStatus = member.status ?? (member.isActive ? 'active' : 'inactive'); + + showDialog( + context: context, + builder: (context) => StatefulBuilder( + builder: (context, setState) { + return AlertDialog( + title: Text(isEditing ? '회원 정보 수정' : '회원 정보'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 회원 정보 헤더 (보기 모드에서만 표시) + if (!isEditing) ...[ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // 현재 회원 상태 + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + member.name, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + const SizedBox(height: 4), + Text( + _getMemberTypeDisplayName(member.memberType), + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade700, + fontWeight: FontWeight.w500, + ), + ), + if (member.phone != null && member.phone!.isNotEmpty) ...[ + const SizedBox(height: 4), + Text( + member.phone!, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + ], + if (member.email.isNotEmpty) ...[ + const SizedBox(height: 2), + Text( + member.email, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + ], + ], + ), + ), + ], + ), + const SizedBox(height: 16), + const Divider(), + ], + + // 폼 필드 + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 이름 필드 - 수정 모드에서만 표시 (상단에 이미 표시됨) + if (isEditing) + buildFormField('이름', TextField( + controller: nameController, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + )), + + // 성별 필드 - 상단에 없으므로 항상 표시 + buildFormField('성별', isEditing ? + DropdownButtonFormField( + value: selectedGender, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem( + value: 'male', + child: Text('남성'), + ), + DropdownMenuItem( + value: 'female', + child: Text('여성'), + ), + ], + onChanged: (value) { + if (value != null) { + selectedGender = value; + } + }, + ) : + Text(_getGenderDisplayName(member.gender), style: const TextStyle(fontSize: 16)) + ), + + // 회원 유형 필드 - 수정 모드에서만 표시 (상단에 이미 표시됨) + if (isEditing) + buildFormField('회원 유형', DropdownButtonFormField( + value: selectedMemberType, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem( + value: 'regular', + child: Text('정회원'), + ), + DropdownMenuItem( + value: 'associate', + child: Text('준회원'), + ), + DropdownMenuItem( + value: 'guest', + child: Text('게스트'), + ), + DropdownMenuItem( + value: 'manager', + child: Text('운영진'), + ), + DropdownMenuItem( + value: 'owner', + child: Text('모임장'), + ), + ], + onChanged: (value) { + if (value != null) { + selectedMemberType = value; + } + }, + )), + + // 전화번호 필드 - 수정 모드에서만 표시 (상단에 이미 표시됨) + if (isEditing) + buildFormField('전화번호', TextField( + controller: phoneController, + keyboardType: TextInputType.phone, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + )), + + // 이메일 필드 - 수정 모드에서만 표시 (상단에 이미 표시됨) + if (isEditing) + buildFormField('이메일', TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + )), + + // 핸디캡 필드 - 상단에 없으므로 항상 표시 + buildFormField('핸디캡', isEditing ? + TextField( + controller: handicapController, + keyboardType: TextInputType.number, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + ) : + Text(member.handicap?.toString() ?? '0', style: const TextStyle(fontSize: 16)) + ), + + // 상태 필드 - 수정 모드에서만 표시 (상단에 이미 표시됨) + if (isEditing) + buildFormField('상태', DropdownButtonFormField( + value: selectedStatus, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem( + value: 'active', + child: Text('활성'), + ), + DropdownMenuItem( + value: 'inactive', + child: Text('비활성'), + ), + DropdownMenuItem( + value: 'suspended', + child: Text('정지'), + ), + ], + onChanged: (value) { + if (value != null) { + selectedStatus = value; + } + }, + )), + + // 가입일 필드 + buildFormField('가입일', isEditing ? + InkWell( + onTap: () async { + final DateTime? picked = await showDatePicker( + context: context, + initialDate: member.joinDate ?? DateTime.now(), + firstDate: DateTime(2000), + lastDate: DateTime.now(), + // locale은 앱 전체 설정을 사용합니다 + ); + if (picked != null) { + setState(() { + // 새로운 날짜로 업데이트 + joinDateController.text = formatDate(picked); + + // copyWith 메서드를 사용하여 효율적으로 업데이트 + member = member.copyWith( + joinDate: picked, // 새로 선택한 날짜 + ); + }); + } + }, + child: InputDecorator( + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + suffixIcon: Icon(Icons.calendar_today), + ), + child: Text(formatDate(member.joinDate), style: const TextStyle(fontSize: 16)), + ), + ) : + Text(formatDate(member.joinDate), style: const TextStyle(fontSize: 16)) + ), + + // 시스템 정보 (수정불가) + if (!isEditing) ...[ + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 8), + const Text('시스템 정보', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + buildFormField('회원 ID', Text(member.id, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + if (member.userId.isNotEmpty) + buildFormField('유저 ID', Text(member.userId, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + if (member.clubId.isNotEmpty) + buildFormField('클럽 ID', Text(member.clubId, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + ], + ], + ), + ), + ], + ), + ), + actions: [ + // 취소 버튼 + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + // 수정/저장 버튼 + TextButton( + onPressed: () { + if (isEditing) { + // 수정 모드에서 저장 버튼 클릭 시 + if (nameController.text.trim().isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이름은 필수 입력 항목입니다.')), + ); + return; + } + + // copyWith 메서드를 사용하여 회원 정보 업데이트 + final updatedMember = member.copyWith( + name: nameController.text.trim(), + email: emailController.text.trim().isEmpty ? null : emailController.text.trim(), + phone: phoneController.text.trim().isEmpty ? null : phoneController.text.trim(), + memberType: selectedMemberType, + gender: selectedGender, + status: selectedStatus, + handicap: int.tryParse(handicapController.text) ?? member.handicap, + isActive: selectedStatus == 'active', + updatedAt: DateTime.now(), + // joinDate는 이미 날짜 선택기에서 업데이트되었으므로 여기서 다시 설정할 필요 없음 + ); + + // 회원 정보 저장 + // toJson 결과에서 clubId 제거하여 MemberService에서 설정한 clubId만 사용 + final memberData = updatedMember.toJson(); + memberData.remove('clubId'); // clubId 필드 제거 + + // 전화번호와 이메일 필드가 비어있을 때 null로 명시적 설정 + if (phoneController.text.trim().isEmpty) { + memberData['phone'] = null; + } + + if (emailController.text.trim().isEmpty) { + memberData['email'] = null; + } + + // 가입일 필드 명시적으로 추가 (ISO 형식으로 변환) + if (member.joinDate != null) { + memberData['joinDate'] = member.joinDate!.toIso8601String(); + } + + context.read().updateMember( + updatedMember.id, + memberData, + ).then((_) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원 정보가 업데이트되었습니다.')), + ); + Navigator.of(context).pop(); + }).catchError((error) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('오류: ${error.toString()}')), + ); + }); + } else { + // 보기 모드에서 수정 버튼 클릭 시 + setState(() { + isEditing = true; + }); + } + }, + child: Text(isEditing ? '저장' : '수정'), + ), + ], + ); + }, + ), + ); + } + + // 회원 삭제 확인 다이얼로그 + void _showDeleteConfirmationDialog(Member member) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('회원 삭제'), + content: Text('${member.name} 회원을 정말 삭제하시겠습니까?'), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + TextButton( + onPressed: () async { + try { + final memberService = Provider.of(context, listen: false); + + await memberService.deleteMember(member.id); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원이 삭제되었습니다')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 삭제에 실패했습니다: $e')), + ); + } + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('삭제'), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/screens/club/members_screen.dart.bak b/mobile/lib/screens/club/members_screen.dart.bak new file mode 100644 index 0000000..a173b5e --- /dev/null +++ b/mobile/lib/screens/club/members_screen.dart.bak @@ -0,0 +1,1006 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../models/member_model.dart'; + +class MembersScreen extends StatefulWidget { + const MembersScreen({super.key}); + + @override + State createState() => _MembersScreenState(); +} + +class _MembersScreenState extends State { + bool _isInit = false; + String _searchQuery = ''; + final TextEditingController _searchController = TextEditingController(); + + @override + void dispose() { + _searchController.dispose(); + super.dispose(); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadMembers(); + _isInit = true; + } + } + + Future _loadMembers() async { + try { + print('_loadMembers 호출됨'); + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final memberService = Provider.of(context, listen: false); + + print('현재 클럽: ${clubService.currentClub?.name}'); + print('토큰: ${authService.token}'); + + if (clubService.currentClub != null && authService.token != null) { + print('멤버 서비스 초기화 시작'); + memberService.initialize(authService.token!); + print('멤버 서비스 초기화 완료'); + + print('회원 목록 가져오기 시작'); + await memberService.fetchClubMembers(); + print('회원 목록 가져오기 완료: ${memberService.members.length}개'); + } else { + print('클럽 또는 토큰이 없어서 회원 목록을 가져올 수 없습니다.'); + } + } catch (e) { + print('회원 목록 가져오기 오류: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 목록을 불러오는데 실패했습니다: $e')), + ); + } + } + } + + List _getFilteredMembers(List members) { + if (_searchQuery.isEmpty) { + return members; + } + + final query = _searchQuery.toLowerCase(); + return members.where((member) { + return member.name.toLowerCase().contains(query) || + member.email.toLowerCase().contains(query); + }).toList(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + // 검색 바 + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + controller: _searchController, + decoration: InputDecoration( + hintText: '회원 검색', + prefixIcon: const Icon(Icons.search), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + ), + contentPadding: const EdgeInsets.symmetric(vertical: 0), + suffixIcon: _searchQuery.isNotEmpty + ? IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + _searchController.clear(); + setState(() { + _searchQuery = ''; + }); + }, + ) + : null, + ), + onChanged: (value) { + setState(() { + _searchQuery = value; + }); + }, + ), + ), + + // 회원 목록 + Expanded( + child: Consumer( + builder: (context, memberService, _) { + if (memberService.isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + final filteredMembers = _getFilteredMembers(memberService.members); + + if (filteredMembers.isEmpty) { + return Center( + child: Text( + _searchQuery.isEmpty + ? '등록된 회원이 없습니다' + : '검색 결과가 없습니다', + ), + ); + } + + return RefreshIndicator( + onRefresh: _loadMembers, + child: ListView.builder( + padding: const EdgeInsets.only(bottom: 16), + itemCount: filteredMembers.length, + itemBuilder: (context, index) { + final member = filteredMembers[index]; + return _buildMemberCard(member); + }, + ), + ); + }, + ), + ), + ], + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + // 회원 추가 화면으로 이동 (추후 구현) + _showAddMemberDialog(); + }, + backgroundColor: Colors.blue, + child: const Icon(Icons.add, color: Colors.white), + ), + ); + } + + Widget _buildMemberCard(Member member) { + final roleText = _getRoleDisplayName(member.role ?? 'member'); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: InkWell( + onTap: () { + // 회원 상세 정보 다이얼로그 표시 + _showMemberDetailDialog(member); + }, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + // 프로필 이미지 또는 이니셜 + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: Colors.blue.shade100, + shape: BoxShape.circle, + ), + child: Center( + child: member.profileImage != null + ? ClipOval( + child: Image.network( + member.profileImage!, + width: 60, + height: 60, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Text( + member.name.isNotEmpty ? member.name[0].toUpperCase() : '?', + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ); + }, + ), + ) + : Text( + member.name.isNotEmpty ? member.name[0].toUpperCase() : '?', + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + ), + ), + const SizedBox(width: 16), + // 회원 정보 + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + member.name, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + Text( + member.email, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + const SizedBox(height: 4), + Text( + roleText, + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade700, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + // 액션 버튼 + PopupMenuButton( + icon: const Icon(Icons.more_vert), + onSelected: (value) { + if (value == 'edit') { + _showEditMemberDialog(member); + } else if (value == 'delete') { + _showDeleteConfirmationDialog(member); + } + }, + itemBuilder: (context) => [ + const PopupMenuItem( + value: 'edit', + child: Row( + children: [ + Icon(Icons.edit, size: 20), + SizedBox(width: 8), + Text('수정'), + ], + ), + ), + const PopupMenuItem( + value: 'delete', + child: Row( + children: [ + Icon(Icons.delete, size: 20, color: Colors.red), + SizedBox(width: 8), + Text('삭제', style: TextStyle(color: Colors.red)), + ], + ), + ), + ], + ), + ], + ), + ), + ), + ); + } + + // 회원 추가 다이얼로그 + void _showAddMemberDialog() { + final nameController = TextEditingController(); + final emailController = TextEditingController(); + final phoneController = TextEditingController(); + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('회원 추가'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: nameController, + decoration: const InputDecoration( + labelText: '이름', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + labelText: '이메일', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: phoneController, + keyboardType: TextInputType.phone, + decoration: const InputDecoration( + labelText: '전화번호 (선택사항)', + border: OutlineInputBorder(), + ), + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ElevatedButton( + onPressed: () async { + if (nameController.text.isEmpty || emailController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이름과 이메일은 필수 입력 항목입니다')), + ); + return; + } + + try { + final memberService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + await memberService.addMember({ + 'name': nameController.text.trim(), + 'email': emailController.text.trim(), + 'phone': phoneController.text.trim(), + 'clubId': clubService.currentClub!.id, + }); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원이 추가되었습니다')), + ); + } + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 추가에 실패했습니다: $e')), + ); + } + }, + child: const Text('추가'), + ), + ], + ), + ); + } + + // 회원 수정 다이얼로그 + void _showEditMemberDialog(Member member) { + final nameController = TextEditingController(text: member.name); + final phoneController = TextEditingController(text: member.phone ?? ''); + + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('회원 정보 수정'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + TextField( + controller: nameController, + decoration: const InputDecoration( + labelText: '이름', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + enabled: false, // 이메일은 수정 불가 + controller: TextEditingController(text: member.email), + decoration: const InputDecoration( + labelText: '이메일', + border: OutlineInputBorder(), + ), + ), + const SizedBox(height: 16), + TextField( + controller: phoneController, + keyboardType: TextInputType.phone, + decoration: const InputDecoration( + labelText: '전화번호', + border: OutlineInputBorder(), + ), + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + ElevatedButton( + onPressed: () async { + if (nameController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이름은 필수 입력 항목입니다')), + ); + return; + } + + try { + final memberService = Provider.of(context, listen: false); + + await memberService.updateMember(member.id, { + 'name': nameController.text.trim(), + 'phone': phoneController.text.trim(), + }); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원 정보가 업데이트되었습니다')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 정보 업데이트에 실패했습니다: $e')), + ); + } + }, + child: const Text('저장'), + ), + ], + ), + ); + } + + // 회원 상세 정보 다이얼로그 + void _showMemberDetailDialog(Member member) { + bool isEditing = false; + + // 폼 컨트롤러 초기화 + final nameController = TextEditingController(text: member.name); + final phoneController = TextEditingController(text: member.phone ?? ''); + final emailController = TextEditingController(text: member.email); + final handicapController = TextEditingController(text: member.handicap?.toString() ?? '0'); + + // 선택형 필드를 위한 값 초기화 + String selectedGender = member.gender ?? 'male'; + String selectedMemberType = member.memberType ?? 'regular'; + String selectedStatus = member.status ?? 'active'; + + showDialog( + context: context, + builder: (context) => StatefulBuilder( + builder: (context, setState) { + // 날짜 포맷팅 + String formatDate(DateTime? date) { + if (date == null) return '정보 없음'; + return DateFormat('yyyy년 MM월 dd일').format(date); + } + + // 역할 표시 이름 변환 + String getRoleDisplayName(String? role) { + if (role == null) return '일반 회원'; + + switch (role) { + case 'owner': + return '클럽 소유자'; + case 'manager': + return '클럽 매니저'; + case 'member': + return '클럽 회원'; + default: + return role; + } + } + + // 회원 유형 표시 이름 변환 + String getMemberTypeDisplayName(String? memberType) { + if (memberType == null) return '일반 회원'; + + switch (memberType) { + case 'regular': + return '정회원'; + case 'associate': + return '준회원'; + case 'guest': + return '게스트'; + case 'manager': + return '매니저'; + case 'owner': + return '소유자'; + default: + return memberType; + } + } + + // 성별 표시 이름 변환 + String getGenderDisplayName(String? gender) { + if (gender == null) return '정보 없음'; + + switch (gender) { + case 'male': + return '남성'; + case 'female': + return '여성'; + default: + return gender; + } + } + + // 상태 표시 이름 변환 + String getStatusDisplayName(String? status) { + if (status == null) return '활성'; + + switch (status) { + case 'active': + return '활성'; + case 'inactive': + return '비활성'; + case 'suspended': + return '정지'; + case 'deleted': + return '삭제됨'; + default: + return status; + } + } + + // 정보 항목 표시 위젯 + Widget buildInfoRow(String label, String value) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 100, + child: Text( + label, + style: const TextStyle( + fontWeight: FontWeight.w500, + color: Colors.grey, + ), + ), + ), + Expanded( + child: Text( + value, + style: const TextStyle( + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ); + } + + // 입력 필드 위젯 + Widget buildEditField(String label, TextEditingController controller, {bool enabled = true}) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontWeight: FontWeight.w500, + fontSize: 14, + color: Colors.grey, + ), + ), + const SizedBox(height: 8), + TextField( + controller: controller, + enabled: enabled, + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + contentPadding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12), + ), + ), + ], + ), + ); + } + + // Vue.js 스타일의 폼 필드 메서드 + Widget buildFormField(String label, Widget field) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.grey, + ), + ), + const SizedBox(height: 8), + field, + ], + ), + ); + } + + return AlertDialog( + title: Text(isEditing ? '회원 정보 수정' : '회원 정보'), + content: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 프로필 이미지와 현재 상태 + if (!isEditing) ...[ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // 프로필 이미지 + Container( + width: 70, + height: 70, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.grey.shade200, + image: member.profileImage != null + ? DecorationImage( + image: NetworkImage(member.profileImage!), + fit: BoxFit.cover, + ) + : null, + ), + child: member.profileImage == null + ? Center(child: Text( + member.name.isNotEmpty ? member.name.substring(0, 1) : '?', + style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold, color: Colors.blue.shade700), + )) + : null, + ), + const SizedBox(width: 16), + // 현재 회원 상태 + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + member.name, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(width: 8), + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 2), + decoration: BoxDecoration( + color: member.isActive ? Colors.green.shade100 : Colors.red.shade100, + borderRadius: BorderRadius.circular(12), + ), + child: Text( + getStatusDisplayName(member.status), + style: TextStyle( + fontSize: 12, + color: member.isActive ? Colors.green.shade800 : Colors.red.shade800, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + const SizedBox(height: 4), + Text( + getMemberTypeDisplayName(member.memberType), + style: TextStyle( + fontSize: 14, + color: Colors.blue.shade700, + fontWeight: FontWeight.w500, + ), + ), + if (member.phone != null && member.phone!.isNotEmpty) ...[ + const SizedBox(height: 4), + Text( + member.phone!, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + ], + if (member.email != null && member.email.isNotEmpty) ...[ + const SizedBox(height: 2), + Text( + member.email, + style: TextStyle( + fontSize: 14, + color: Colors.grey.shade700, + ), + ), + ], + ], + ), + ), + ], + ), + const SizedBox(height: 16), + const Divider(), + ], + + // 폼 필드 + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 이름 필드 + buildFormField('이름', isEditing ? + TextField( + controller: nameController, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + ) : + Text(member.name, style: const TextStyle(fontSize: 16)) + ), + + // 성별 필드 + buildFormField('성별', isEditing ? + DropdownButtonFormField( + value: selectedGender, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem(value: 'male', child: Text('남성')), + DropdownMenuItem(value: 'female', child: Text('여성')), + ], + onChanged: isEditing ? (value) { + if (value != null) { + selectedGender = value; + } + } : null, + ) : + Text(getGenderDisplayName(member.gender), style: const TextStyle(fontSize: 16)) + ), + + // 회원 유형 필드 + buildFormField('회원 유형', isEditing ? + DropdownButtonFormField( + value: selectedMemberType, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem(value: 'regular', child: Text('정회원')), + DropdownMenuItem(value: 'associate', child: Text('준회원')), + DropdownMenuItem(value: 'guest', child: Text('게스트')), + DropdownMenuItem(value: 'manager', child: Text('매니저')), + DropdownMenuItem(value: 'owner', child: Text('소유자')), + ], + onChanged: isEditing ? (value) { + if (value != null) { + selectedMemberType = value; + } + } : null, + ) : + Text(getMemberTypeDisplayName(member.memberType), style: const TextStyle(fontSize: 16)) + ), + + // 전화번호 필드 + buildFormField('전화번호', isEditing ? + TextField( + controller: phoneController, + keyboardType: TextInputType.phone, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + ) : + Text(member.phone ?? '정보 없음', style: const TextStyle(fontSize: 16)) + ), + + // 이메일 필드 + buildFormField('이메일', isEditing ? + TextField( + controller: emailController, + keyboardType: TextInputType.emailAddress, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + ) : + Text(member.email, style: const TextStyle(fontSize: 16)) + ), + + // 핸디캡 필드 + buildFormField('핸디캡', isEditing ? + TextField( + controller: handicapController, + keyboardType: TextInputType.number, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + ) : + Text(member.handicap?.toString() ?? '0', style: const TextStyle(fontSize: 16)) + ), + + // 상태 필드 + buildFormField('상태', isEditing ? + DropdownButtonFormField( + value: selectedStatus, + decoration: const InputDecoration( + border: OutlineInputBorder(), + contentPadding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + ), + items: [ + DropdownMenuItem(value: 'active', child: Text('활성')), + DropdownMenuItem(value: 'inactive', child: Text('비활성')), + DropdownMenuItem(value: 'suspended', child: Text('정지')), + ], + onChanged: isEditing ? (value) { + if (value != null) { + selectedStatus = value; + } + } : null, + ) : + Text(getStatusDisplayName(member.status), style: const TextStyle(fontSize: 16)) + ), + + // 가입일 필드 (수정불가) + if (!isEditing) + buildFormField('가입일', Text(formatDate(member.joinedAt), style: const TextStyle(fontSize: 16))), + + // 시스템 정보 (수정불가) + if (!isEditing) ...[ + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 8), + const Text('시스템 정보', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + buildFormField('회원 ID', Text(member.id, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + if (member.userId.isNotEmpty) + buildFormField('유저 ID', Text(member.userId, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + buildFormField('클럽 ID', Text(member.clubId, style: const TextStyle(fontSize: 14, fontFamily: 'monospace'))), + ], + ], + ), + ), + ], + ), + actions: [ + // 취소 버튼 + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + // 수정/저장 버튼 + TextButton( + onPressed: () { + if (isEditing) { + // 수정 모드에서 저장 버튼 클릭 시 + if (nameController.text.trim().isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이름은 필수 입력 항목입니다.')), + ); + return; + } + + // 회원 정보 업데이트 + final updatedMember = Member( + id: member.id, + clubId: member.clubId, + userId: member.userId, + name: nameController.text.trim(), + email: emailController.text.trim(), + phone: phoneController.text.trim(), + address: member.address, // 주소는 유지 + profileImage: member.profileImage, + role: member.role, + memberType: selectedMemberType, + gender: selectedGender, + status: selectedStatus, + handicap: int.tryParse(handicapController.text) ?? member.handicap, + isActive: selectedStatus == 'active', + joinedAt: member.joinedAt, + createdAt: member.createdAt, + updatedAt: DateTime.now().toIso8601String(), + ); + + // 회원 정보 저장 + context.read().updateMember(updatedMember).then((_) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원 정보가 업데이트되었습니다.')), + ); + Navigator.of(context).pop(); + }).catchError((error) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('오류: ${error.toString()}')), + ); + }); + } else { + // 보기 모드에서 수정 버튼 클릭 시 + setState(() { + isEditing = true; + }); + } + }, + child: Text(isEditing ? '저장' : '수정'), + ), + ], + ); + }, + ), + ); + } + + // 회원 삭제 확인 다이얼로그 + void _showDeleteConfirmationDialog(Member member) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('회원 삭제'), + content: Text('${member.name} 회원을 정말 삭제하시겠습니까?'), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + TextButton( + onPressed: () async { + try { + final memberService = Provider.of(context, listen: false); + + await memberService.deleteMember(member.id); + + if (mounted) { + Navigator.of(context).pop(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원이 삭제되었습니다')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('회원 삭제에 실패했습니다: $e')), + ); + } + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('삭제'), + ), + ], + ), + ); + } + + // 역할 표시 이름 변환 + String _getRoleDisplayName(String role) { + switch (role) { + case 'owner': + return '클럽 소유자'; + case 'manager': + return '클럽 매니저'; + case 'member': + return '클럽 회원'; + default: + return role; + } + } +} diff --git a/mobile/lib/screens/score/club_statistics_screen.dart b/mobile/lib/screens/score/club_statistics_screen.dart new file mode 100644 index 0000000..f984a8e --- /dev/null +++ b/mobile/lib/screens/score/club_statistics_screen.dart @@ -0,0 +1,501 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; +import 'package:fl_chart/fl_chart.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../services/score_service.dart'; +import '../../models/member_model.dart'; +import '../../models/score_model.dart'; +import 'member_statistics_screen.dart'; +import 'score_entry_screen.dart'; + +class ClubStatisticsScreen extends StatefulWidget { + const ClubStatisticsScreen({super.key}); + + @override + State createState() => _ClubStatisticsScreenState(); +} + +class _ClubStatisticsScreenState extends State { + bool _isLoading = false; + bool _isInit = false; + + Map _clubStatistics = {}; + List _members = []; + Map> _recentScores = {}; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadClubStatistics(); + _isInit = true; + } + } + + Future _loadClubStatistics() async { + setState(() { + _isLoading = true; + }); + + try { + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final memberService = Provider.of(context, listen: false); + final scoreService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + // 점수 서비스 초기화 + scoreService.initialize(authService.token!); + + // 회원 목록 로드 + await memberService.fetchClubMembers(); + _members = memberService.members; + + // 클럽 통계 로드 + _clubStatistics = await scoreService.fetchClubStatistics(); + + // 각 회원별 최근 점수 로드 (최대 3개) + _recentScores = {}; + for (final member in _members) { + try { + final scores = await scoreService.fetchMemberScores(member.id); + // 날짜 기준 정렬 (최신순) + scores.sort((a, b) => b.date.compareTo(a.date)); + _recentScores[member.id] = scores.take(3).toList(); + } catch (e) { + // 개별 회원 점수 로드 실패 시 빈 배열로 처리 + _recentScores[member.id] = []; + } + } + } + } catch (e) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('데이터 로드 중 오류가 발생했습니다: $e'))); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('클럽 통계')), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: _loadClubStatistics, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 클럽 전체 통계 + _buildClubOverallStats(), + const SizedBox(height: 24), + + // 회원별 통계 + const Text( + '회원별 통계', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + + // 회원 목록 + ..._members.map((member) => _buildMemberStatsCard(member)), + ], + ), + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + await Navigator.of(context).push( + MaterialPageRoute(builder: (context) => const ScoreEntryScreen()), + ); + // 화면으로 돌아왔을 때 데이터 새로고침 + _loadClubStatistics(); + }, + backgroundColor: Colors.blue, + child: const Icon(Icons.add, color: Colors.white), + ), + ); + } + + Widget _buildClubOverallStats() { + // 클럽 전체 통계가 없는 경우 + if (!_clubStatistics.containsKey('overall')) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16.0), + child: Center(child: Text('클럽 전체 통계 데이터가 없습니다')), + ), + ); + } + + final overallStats = _clubStatistics['overall']!; + + return Card( + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '클럽 전체 통계', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildStatItem( + label: '클럽 평균', + value: overallStats.average.toStringAsFixed(1), + icon: Icons.score, + color: Colors.blue, + ), + ), + Expanded( + child: _buildStatItem( + label: '최고 점수', + value: overallStats.highScore.toString(), + icon: Icons.emoji_events, + color: Colors.amber, + ), + ), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildStatItem( + label: '최저 점수', + value: overallStats.lowScore.toString(), + icon: Icons.arrow_downward, + color: Colors.red, + ), + ), + Expanded( + child: _buildStatItem( + label: '총 게임 수', + value: overallStats.gamesPlayed.toString(), + icon: Icons.sports, + color: Colors.green, + ), + ), + ], + ), + + // 클럽 평균 점수 추이 그래프 + const SizedBox(height: 24), + const Text( + '클럽 평균 점수 추이', + style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 8), + SizedBox(height: 180, child: _buildClubAverageChart()), + + // 추가 통계 정보 + if (overallStats.additionalStats != null) ...[ + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 8), + ...overallStats.additionalStats!.entries.map((entry) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(entry.key, style: const TextStyle(fontSize: 14)), + Text( + entry.value.toString(), + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ); + }), + ], + ], + ), + ), + ); + } + + Widget _buildStatItem({ + required String label, + required String value, + required IconData icon, + required Color color, + }) { + return Column( + children: [ + Icon(icon, size: 28, color: color), + const SizedBox(height: 8), + Text( + value, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: color, + ), + ), + Text(label, style: TextStyle(fontSize: 12, color: Colors.grey[600])), + ], + ); + } + + Widget _buildMemberStatsCard(Member member) { + // 회원 통계 정보 + final memberStats = _clubStatistics[member.id]; + // 회원 최근 점수 + final recentScores = _recentScores[member.id] ?? []; + + return Card( + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => MemberStatisticsScreen(memberId: member.id), + ), + ); + }, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 회원 정보 + Row( + children: [ + CircleAvatar( + radius: 24, + backgroundColor: Colors.blue.shade100, + backgroundImage: member.profileImage != null + ? NetworkImage(member.profileImage!) + : null, + child: member.profileImage == null + ? Text( + member.name.isNotEmpty + ? member.name[0].toUpperCase() + : '?', + style: const TextStyle( + fontSize: 20, + color: Colors.blue, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + member.name, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + if (memberStats != null) + Text( + '평균: ${memberStats.average.toStringAsFixed(1)} | 최고: ${memberStats.highScore} | 게임: ${memberStats.gamesPlayed}', + style: TextStyle( + fontSize: 12, + color: Colors.grey[600], + ), + ), + ], + ), + ), + const Icon(Icons.chevron_right), + ], + ), + + // 최근 점수 표시 + if (recentScores.isNotEmpty) ...[ + const SizedBox(height: 12), + const Divider(), + const SizedBox(height: 8), + const Text( + '최근 점수', + style: TextStyle(fontSize: 12, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: recentScores.map((score) { + return Column( + children: [ + Text( + score.totalScore.toString(), + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + Text( + DateFormat('MM/dd').format(score.date), + style: TextStyle( + fontSize: 10, + color: Colors.grey[600], + ), + ), + ], + ); + }).toList(), + ), + ], + ], + ), + ), + ), + ); + } + + Widget _buildClubAverageChart() { + // 클럽 통계가 없는 경우 + if (!_clubStatistics.containsKey('overall')) { + return const Center(child: Text('통계 데이터가 없습니다')); + } + + // 회원별 평균 점수 데이터 추출 + final memberAverages = {}; + + // 회원별 통계 정보에서 평균 점수 추출 + _clubStatistics.forEach((key, stats) { + if (key != 'overall') { + // 회원 ID에 해당하는 회원 찾기 + final member = _members.firstWhere( + (m) => m.id == key, + orElse: () => Member( + id: key, + userId: key, + name: 'Unknown', + email: '', + clubId: '', + isActive: true, + ), + ); + memberAverages[member.name] = stats.average; + } + }); + + // 평균 점수 기준으로 정렬 (내림차순) + final sortedEntries = memberAverages.entries.toList() + ..sort((a, b) => b.value.compareTo(a.value)); + + // 최대 8명만 표시 + final displayEntries = sortedEntries.length > 8 + ? sortedEntries.sublist(0, 8) + : sortedEntries; + + // 그래프 데이터 생성 + final barGroups = []; + for (int i = 0; i < displayEntries.length; i++) { + barGroups.add( + BarChartGroupData( + x: i, + barRods: [ + BarChartRodData( + toY: displayEntries[i].value, + color: Colors.blue, + width: 16, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(4), + topRight: Radius.circular(4), + ), + ), + ], + ), + ); + } + + // 최소/최대 점수 계산 (Y축 범위 설정용) + final minScore = displayEntries.isEmpty + ? 0.0 + : displayEntries.map((e) => e.value).reduce((a, b) => a < b ? a : b) - + 10; + final maxScore = displayEntries.isEmpty + ? 300.0 + : displayEntries.map((e) => e.value).reduce((a, b) => a > b ? a : b) + + 10; + + return BarChart( + BarChartData( + alignment: BarChartAlignment.spaceAround, + maxY: maxScore, + minY: minScore < 0 ? 0 : minScore, + gridData: const FlGridData(show: true, horizontalInterval: 50), + borderData: FlBorderData( + show: true, + border: Border.all(color: Colors.grey.shade300), + ), + titlesData: FlTitlesData( + show: true, + rightTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + getTitlesWidget: (value, meta) { + final index = value.toInt(); + if (index >= 0 && index < displayEntries.length) { + // 회원 이름 표시 (최대 5글자) + final name = displayEntries[index].key; + final shortName = name.length > 5 + ? '${name.substring(0, 4)}...' + : name; + + return Text(shortName, style: const TextStyle(fontSize: 10)); + } + return const SizedBox(); + }, + reservedSize: 30, + ), + ), + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + interval: 50, + getTitlesWidget: (value, meta) { + return Text( + value.toInt().toString(), + style: const TextStyle(fontSize: 10), + ); + }, + reservedSize: 40, + ), + ), + ), + barGroups: barGroups, + ), + ); + } +} diff --git a/mobile/lib/screens/score/member_statistics_screen.dart b/mobile/lib/screens/score/member_statistics_screen.dart new file mode 100644 index 0000000..edefc07 --- /dev/null +++ b/mobile/lib/screens/score/member_statistics_screen.dart @@ -0,0 +1,662 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; +import 'package:fl_chart/fl_chart.dart'; + +import '../../services/auth_service.dart'; +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../services/score_service.dart'; +import '../../models/member_model.dart'; +import '../../models/score_model.dart'; +import 'score_entry_screen.dart'; + +class MemberStatisticsScreen extends StatefulWidget { + final String memberId; + + const MemberStatisticsScreen({super.key, required this.memberId}); + + @override + State createState() => _MemberStatisticsScreenState(); +} + +class _MemberStatisticsScreenState extends State + with SingleTickerProviderStateMixin { + bool _isLoading = false; + bool _isInit = false; + late TabController _tabController; + + Member? _member; + List _scores = []; + ScoreStatistics? _statistics; + + @override + void initState() { + super.initState(); + _tabController = TabController(length: 2, vsync: this); + } + + @override + void dispose() { + _tabController.dispose(); + super.dispose(); + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (!_isInit) { + _loadMemberData(); + _isInit = true; + } + } + + Future _loadMemberData() async { + setState(() { + _isLoading = true; + }); + + try { + final authService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + final memberService = Provider.of(context, listen: false); + final scoreService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + // 회원 정보 로드 + _member = await memberService.fetchMemberById(widget.memberId); + + // 점수 서비스 초기화 + scoreService.initialize(authService.token!); + + // 회원 점수 및 통계 로드 + await Future.wait([ + scoreService.fetchMemberScores(widget.memberId).then((scores) { + _scores = scores; + }), + scoreService.fetchMemberStatistics(widget.memberId).then((stats) { + _statistics = stats; + }), + ]); + } + } catch (e) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('데이터 로드 중 오류가 발생했습니다: $e'))); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(_member?.name ?? '회원 통계'), + bottom: TabBar( + controller: _tabController, + tabs: const [ + Tab(text: '통계'), + Tab(text: '점수 기록'), + ], + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : TabBarView( + controller: _tabController, + children: [_buildStatisticsTab(), _buildScoresTab()], + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + await Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => ScoreEntryScreen(memberId: widget.memberId), + ), + ); + // 화면으로 돌아왔을 때 데이터 새로고침 + _loadMemberData(); + }, + backgroundColor: Colors.blue, + child: const Icon(Icons.add, color: Colors.white), + ), + ); + } + + Widget _buildStatisticsTab() { + if (_statistics == null) { + return const Center(child: Text('통계 데이터가 없습니다')); + } + + return RefreshIndicator( + onRefresh: _loadMemberData, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 회원 정보 카드 + if (_member != null) _buildMemberInfoCard(), + const SizedBox(height: 24), + + // 주요 통계 카드 + _buildMainStatsCard(), + const SizedBox(height: 24), + + // 추가 통계 정보 + if (_statistics!.additionalStats != null) + _buildAdditionalStatsCard(), + + // 통계 그래프 + const SizedBox(height: 24), + Card( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '점수 추이', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + SizedBox(height: 200, child: _buildScoreChart()), + ], + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildMemberInfoCard() { + return Card( + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + CircleAvatar( + radius: 30, + backgroundColor: Colors.blue.shade100, + backgroundImage: _member!.profileImage != null + ? NetworkImage(_member!.profileImage!) + : null, + child: _member!.profileImage == null + ? Text( + _member!.name.isNotEmpty + ? _member!.name[0].toUpperCase() + : '?', + style: const TextStyle( + fontSize: 24, + color: Colors.blue, + fontWeight: FontWeight.bold, + ), + ) + : null, + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _member!.name, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 4), + Text( + _member!.email, + style: TextStyle(color: Colors.grey[600]), + ), + if (_member!.phone != null) + Text( + _member!.phone!, + style: TextStyle(color: Colors.grey[600]), + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildMainStatsCard() { + return Card( + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '주요 통계', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildStatItem( + label: '평균 점수', + value: _statistics!.average.toStringAsFixed(1), + icon: Icons.score, + color: Colors.blue, + ), + ), + Expanded( + child: _buildStatItem( + label: '최고 점수', + value: _statistics!.highScore.toString(), + icon: Icons.emoji_events, + color: Colors.amber, + ), + ), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Expanded( + child: _buildStatItem( + label: '최저 점수', + value: _statistics!.lowScore.toString(), + icon: Icons.arrow_downward, + color: Colors.red, + ), + ), + Expanded( + child: _buildStatItem( + label: '게임 수', + value: _statistics!.gamesPlayed.toString(), + icon: Icons.sports, + color: Colors.green, + ), + ), + ], + ), + ], + ), + ), + ); + } + + Widget _buildStatItem({ + required String label, + required String value, + required IconData icon, + required Color color, + }) { + return Column( + children: [ + Icon(icon, size: 32, color: color), + const SizedBox(height: 8), + Text( + value, + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: color, + ), + ), + Text(label, style: TextStyle(fontSize: 14, color: Colors.grey[600])), + ], + ); + } + + Widget _buildAdditionalStatsCard() { + final additionalStats = _statistics!.additionalStats!; + + return Card( + elevation: 2, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '추가 통계', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + ...additionalStats.entries.map((entry) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(entry.key, style: const TextStyle(fontSize: 16)), + Text( + entry.value.toString(), + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ); + }), + ], + ), + ), + ); + } + + Widget _buildScoresTab() { + if (_scores.isEmpty) { + return const Center(child: Text('기록된 점수가 없습니다')); + } + + // 날짜 기준으로 정렬 (최신순) + final sortedScores = [..._scores]; + sortedScores.sort((a, b) => b.date.compareTo(a.date)); + + return RefreshIndicator( + onRefresh: _loadMemberData, + child: ListView.builder( + padding: const EdgeInsets.all(8.0), + itemCount: sortedScores.length, + itemBuilder: (context, index) { + final score = sortedScores[index]; + return _buildScoreCard(score); + }, + ), + ); + } + + Widget _buildScoreCard(Score score) { + final dateFormat = DateFormat('yyyy년 MM월 dd일'); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + child: ExpansionTile( + title: Row( + children: [ + Text( + score.totalScore.toString(), + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + dateFormat.format(score.date), + style: const TextStyle(fontSize: 14), + ), + if (score.notes != null && score.notes!.isNotEmpty) + Text( + score.notes!, + style: TextStyle(fontSize: 12, color: Colors.grey[600]), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ], + ), + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '프레임 점수', + style: TextStyle(fontWeight: FontWeight.bold), + ), + const SizedBox(height: 8), + _buildFrameScores(score.frames), + if (score.notes != null && score.notes!.isNotEmpty) ...[ + const SizedBox(height: 16), + const Text( + '메모', + style: TextStyle(fontWeight: FontWeight.bold), + ), + const SizedBox(height: 4), + Text(score.notes!), + ], + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton.icon( + icon: const Icon(Icons.edit, size: 16), + label: const Text('수정'), + onPressed: () { + // 점수 수정 기능 (추후 구현) + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('점수 수정 기능은 아직 개발 중입니다')), + ); + }, + ), + const SizedBox(width: 8), + TextButton.icon( + icon: const Icon( + Icons.delete, + size: 16, + color: Colors.red, + ), + label: const Text( + '삭제', + style: TextStyle(color: Colors.red), + ), + onPressed: () { + _showDeleteConfirmationDialog(score); + }, + ), + ], + ), + ], + ), + ), + ], + ), + ); + } + + Widget _buildFrameScores(List frames) { + return Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.circular(8), + ), + child: Row( + children: List.generate(10, (index) { + return Expanded( + child: Container( + padding: const EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + border: Border.all(color: Colors.grey[300]!), + ), + child: Column( + children: [ + Text( + '${index + 1}', + style: TextStyle(fontSize: 10, color: Colors.grey[600]), + ), + const SizedBox(height: 4), + Text( + index < frames.length ? frames[index].toString() : '-', + style: const TextStyle(fontWeight: FontWeight.bold), + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + }), + ), + ); + } + + Widget _buildScoreChart() { + if (_scores.isEmpty) { + return const Center(child: Text('점수 데이터가 없습니다')); + } + + // 날짜 기준으로 정렬 (오래된 순) + final sortedScores = [..._scores]; + sortedScores.sort((a, b) => a.date.compareTo(b.date)); + + // 최대 10개의 최근 점수만 표시 + final displayScores = sortedScores.length > 10 + ? sortedScores.sublist(sortedScores.length - 10) + : sortedScores; + + // 최소/최대 점수 계산 (Y축 범위 설정용) + final minScore = + displayScores.map((s) => s.totalScore).reduce((a, b) => a < b ? a : b) - + 10; + final maxScore = + displayScores.map((s) => s.totalScore).reduce((a, b) => a > b ? a : b) + + 10; + + // 그래프 데이터 포인트 생성 + final spots = []; + for (int i = 0; i < displayScores.length; i++) { + spots.add(FlSpot(i.toDouble(), displayScores[i].totalScore.toDouble())); + } + + return LineChart( + LineChartData( + gridData: FlGridData( + show: true, + drawVerticalLine: true, + horizontalInterval: 20, + verticalInterval: 1, + ), + titlesData: FlTitlesData( + show: true, + rightTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + topTitles: const AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), + bottomTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + reservedSize: 30, + interval: 1, + getTitlesWidget: (value, meta) { + final index = value.toInt(); + if (index >= 0 && index < displayScores.length) { + return Text( + DateFormat('MM/dd').format(displayScores[index].date), + style: const TextStyle(fontSize: 10), + ); + } + return const SizedBox(); + }, + ), + ), + leftTitles: AxisTitles( + sideTitles: SideTitles( + showTitles: true, + interval: 50, + getTitlesWidget: (value, meta) { + return Text( + value.toInt().toString(), + style: const TextStyle(fontSize: 10), + ); + }, + reservedSize: 40, + ), + ), + ), + borderData: FlBorderData( + show: true, + border: Border.all(color: Colors.grey.shade300), + ), + minX: 0, + maxX: displayScores.length - 1.0, + minY: minScore.toDouble(), + maxY: maxScore.toDouble(), + lineBarsData: [ + LineChartBarData( + spots: spots, + isCurved: false, + color: Colors.blue, + barWidth: 3, + isStrokeCapRound: true, + dotData: const FlDotData(show: true), + belowBarData: BarAreaData( + show: true, + color: Colors.blue.withOpacity(0.2), + ), + ), + ], + ), + ); + } + + void _showDeleteConfirmationDialog(Score score) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('점수 삭제'), + content: const Text('이 점수 기록을 정말 삭제하시겠습니까?'), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('취소'), + ), + TextButton( + onPressed: () async { + Navigator.of(context).pop(); + + try { + final scoreService = Provider.of( + context, + listen: false, + ); + await scoreService.deleteScore(score.id); + + // 데이터 새로고침 + _loadMemberData(); + + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('점수가 삭제되었습니다'))); + } + } catch (e) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('점수 삭제에 실패했습니다: $e'))); + } + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('삭제'), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/screens/score/score_entry_screen.dart b/mobile/lib/screens/score/score_entry_screen.dart new file mode 100644 index 0000000..5ebbceb --- /dev/null +++ b/mobile/lib/screens/score/score_entry_screen.dart @@ -0,0 +1,378 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:intl/intl.dart'; + +import '../../services/club_service.dart'; +import '../../services/member_service.dart'; +import '../../services/event_service.dart'; +import '../../services/score_service.dart'; + +class ScoreEntryScreen extends StatefulWidget { + final String? memberId; + final String? eventId; + + const ScoreEntryScreen({ + super.key, + this.memberId, + this.eventId, + }); + + @override + State createState() => _ScoreEntryScreenState(); +} + +class _ScoreEntryScreenState extends State { + final _formKey = GlobalKey(); + bool _isLoading = false; + + // 점수 입력 관련 상태 + final List _frameControllers = List.generate( + 10, + (_) => TextEditingController(), + ); + final TextEditingController _notesController = TextEditingController(); + + // 선택된 회원 및 이벤트 + String? _selectedMemberId; + String? _selectedEventId; + DateTime _selectedDate = DateTime.now(); + + @override + void initState() { + super.initState(); + _selectedMemberId = widget.memberId; + _selectedEventId = widget.eventId; + } + + @override + void dispose() { + for (var controller in _frameControllers) { + controller.dispose(); + } + _notesController.dispose(); + super.dispose(); + } + + // 총점 계산 + int _calculateTotalScore() { + int total = 0; + for (var controller in _frameControllers) { + final value = int.tryParse(controller.text) ?? 0; + total += value; + } + return total; + } + + // 점수 저장 + Future _saveScore() async { + if (!_formKey.currentState!.validate()) { + return; + } + + if (_selectedMemberId == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원을 선택해주세요')), + ); + return; + } + + setState(() { + _isLoading = true; + }); + + try { + final scoreService = Provider.of(context, listen: false); + final clubService = Provider.of(context, listen: false); + + if (clubService.currentClub != null) { + // 프레임 점수 배열 생성 + final frames = _frameControllers + .map((controller) => int.tryParse(controller.text) ?? 0) + .toList(); + + // 총점 계산 + final totalScore = _calculateTotalScore(); + + // 점수 데이터 생성 + final scoreData = { + 'memberId': _selectedMemberId, + 'eventId': _selectedEventId, + 'clubId': clubService.currentClub!.id, + 'frames': frames, + 'totalScore': totalScore, + 'date': _selectedDate.toIso8601String(), + 'notes': _notesController.text.isNotEmpty ? _notesController.text : null, + }; + + // 점수 저장 + await scoreService.addScore(scoreData); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('점수가 저장되었습니다')), + ); + Navigator.of(context).pop(); + } + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('점수 저장에 실패했습니다: $e')), + ); + } finally { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('점수 입력'), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : Form( + key: _formKey, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 회원 선택 + _buildMemberSelector(), + const SizedBox(height: 16), + + // 이벤트 선택 + _buildEventSelector(), + const SizedBox(height: 16), + + // 날짜 선택 + _buildDateSelector(), + const SizedBox(height: 24), + + // 프레임 점수 입력 + _buildFrameInputs(), + const SizedBox(height: 24), + + // 총점 표시 + _buildTotalScore(), + const SizedBox(height: 16), + + // 메모 입력 + TextFormField( + controller: _notesController, + decoration: const InputDecoration( + labelText: '메모', + border: OutlineInputBorder(), + ), + maxLines: 3, + ), + const SizedBox(height: 24), + + // 저장 버튼 + SizedBox( + width: double.infinity, + height: 50, + child: ElevatedButton( + onPressed: _saveScore, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + ), + child: const Text('점수 저장'), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildMemberSelector() { + return Consumer( + builder: (context, memberService, _) { + final members = memberService.members; + + return DropdownButtonFormField( + decoration: const InputDecoration( + labelText: '회원 선택', + border: OutlineInputBorder(), + ), + value: _selectedMemberId, + items: members.map((member) { + return DropdownMenuItem( + value: member.id, + child: Text(member.name), + ); + }).toList(), + onChanged: (value) { + setState(() { + _selectedMemberId = value; + }); + }, + validator: (value) { + if (value == null || value.isEmpty) { + return '회원을 선택해주세요'; + } + return null; + }, + ); + }, + ); + } + + Widget _buildEventSelector() { + return Consumer( + builder: (context, eventService, _) { + final events = eventService.events; + + return DropdownButtonFormField( + decoration: const InputDecoration( + labelText: '이벤트 선택 (선택사항)', + border: OutlineInputBorder(), + ), + value: _selectedEventId, + items: [ + const DropdownMenuItem( + value: null, + child: Text('이벤트 없음'), + ), + ...events.map((event) { + return DropdownMenuItem( + value: event.id, + child: Text(event.title), + ); + }), + ], + onChanged: (value) { + setState(() { + _selectedEventId = value; + }); + }, + ); + }, + ); + } + + Widget _buildDateSelector() { + return InkWell( + onTap: () async { + final pickedDate = await showDatePicker( + context: context, + initialDate: _selectedDate, + firstDate: DateTime.now().subtract(const Duration(days: 365)), + lastDate: DateTime.now(), + ); + + if (pickedDate != null) { + setState(() { + _selectedDate = pickedDate; + }); + } + }, + child: InputDecorator( + decoration: const InputDecoration( + labelText: '날짜', + border: OutlineInputBorder(), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(DateFormat('yyyy년 MM월 dd일').format(_selectedDate)), + const Icon(Icons.calendar_today), + ], + ), + ), + ); + } + + Widget _buildFrameInputs() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '프레임 점수', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + GridView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 5, + childAspectRatio: 1.5, + crossAxisSpacing: 8, + mainAxisSpacing: 8, + ), + itemCount: 10, + itemBuilder: (context, index) { + return TextFormField( + controller: _frameControllers[index], + keyboardType: TextInputType.number, + textAlign: TextAlign.center, + decoration: InputDecoration( + labelText: '${index + 1}프레임', + border: const OutlineInputBorder(), + ), + onChanged: (_) { + setState(() {}); + }, + validator: (value) { + if (value == null || value.isEmpty) { + return '입력'; + } + final score = int.tryParse(value); + if (score == null) { + return '숫자'; + } + if (score < 0 || score > 30) { + return '0-30'; + } + return null; + }, + ); + }, + ), + ], + ); + } + + Widget _buildTotalScore() { + final totalScore = _calculateTotalScore(); + + return Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.blue.shade50, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.blue.shade200), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + '총점', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + Text( + '$totalScore', + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.blue, + ), + ), + ], + ), + ); + } +} diff --git a/mobile/lib/screens/subscription/subscription_details_screen.dart b/mobile/lib/screens/subscription/subscription_details_screen.dart new file mode 100644 index 0000000..b274b77 --- /dev/null +++ b/mobile/lib/screens/subscription/subscription_details_screen.dart @@ -0,0 +1,393 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../models/subscription_model.dart'; +import '../../services/subscription_service.dart'; + +class SubscriptionDetailsScreen extends StatefulWidget { + final SubscriptionPlan plan; + final bool isYearly; + + const SubscriptionDetailsScreen({ + super.key, + required this.plan, + required this.isYearly, + }); + + @override + State createState() => _SubscriptionDetailsScreenState(); +} + +class _SubscriptionDetailsScreenState extends State { + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + final price = widget.isYearly ? widget.plan.yearlyPrice : widget.plan.monthlyPrice; + final period = widget.isYearly ? '년' : '월'; + + return Scaffold( + appBar: AppBar( + title: Text('${widget.plan.name} 플랜'), + ), + body: Stack( + children: [ + SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 플랜 헤더 + _buildPlanHeader(price, period), + + const SizedBox(height: 24), + + // 플랜 설명 + Text( + widget.plan.description, + style: const TextStyle(fontSize: 16), + ), + + const SizedBox(height: 24), + + // 플랜 혜택 + const Text( + '플랜 혜택', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + ...widget.plan.features.map((feature) => _buildFeatureItem(feature)), + + const SizedBox(height: 24), + + // 플랜 세부 정보 + const Text( + '세부 정보', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + _buildDetailItem('최대 회원 수', '${widget.plan.maxMembers}명'), + _buildDetailItem('최대 이벤트 수', '${widget.plan.maxEvents}개'), + _buildDetailItem( + '고급 통계 기능', + widget.plan.hasAdvancedStats ? '제공' : '미제공', + isAvailable: widget.plan.hasAdvancedStats, + ), + _buildDetailItem( + '맞춤형 기능', + widget.plan.hasCustomization ? '제공' : '미제공', + isAvailable: widget.plan.hasCustomization, + ), + _buildDetailItem( + '우선 지원', + widget.plan.hasPriority ? '제공' : '미제공', + isAvailable: widget.plan.hasPriority, + ), + + const SizedBox(height: 24), + + // 결제 정보 + const Text( + '결제 정보', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 16), + _buildDetailItem( + '결제 주기', + widget.isYearly ? '연간' : '월간', + ), + _buildDetailItem( + '결제 금액', + '₩${_formatPrice(price)}/${widget.isYearly ? '년' : '월'}', + ), + if (widget.isYearly) + _buildDetailItem( + '월 환산 금액', + '₩${_formatPrice(widget.plan.yearlyPrice / 12)}/월', + ), + _buildDetailItem( + '자동 갱신', + '활성화 (설정에서 변경 가능)', + ), + + // 하단 여백 (버튼 높이만큼) + const SizedBox(height: 80), + ], + ), + ), + + // 하단 구독 버튼 + Positioned( + left: 0, + right: 0, + bottom: 0, + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 10, + offset: const Offset(0, -5), + ), + ], + ), + child: ElevatedButton( + onPressed: _isLoading ? null : () => _subscribe(context), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + minimumSize: const Size(double.infinity, 50), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : Text( + widget.plan.type == SubscriptionPlanType.free + ? '무료 플랜 시작하기' + : '구독하기', + ), + ), + ), + ), + ], + ), + ); + } + + Widget _buildPlanHeader(double price, String period) { + return Card( + elevation: 4, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + side: BorderSide( + color: _getPlanColor(), + width: 2, + ), + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + children: [ + Row( + children: [ + Icon( + _getPlanIcon(), + color: _getPlanColor(), + size: 32, + ), + const SizedBox(width: 16), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.plan.name, + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + if (widget.plan.type == SubscriptionPlanType.premium) + Container( + margin: const EdgeInsets.only(top: 4), + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 2, + ), + decoration: BoxDecoration( + color: Colors.amber.withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: Colors.amber), + ), + child: const Text( + '인기 플랜', + style: TextStyle( + color: Colors.amber, + fontSize: 12, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ], + ), + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '₩${_formatPrice(price)}', + style: const TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(width: 4), + Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Text( + '/$period', + style: const TextStyle(fontSize: 16), + ), + ), + ], + ), + if (widget.isYearly) + Padding( + padding: const EdgeInsets.only(top: 8), + child: Text( + '월 ₩${_formatPrice(widget.plan.yearlyPrice / 12)} (20% 할인)', + style: TextStyle( + color: Colors.green[700], + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildFeatureItem(String feature) { + return Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon(Icons.check_circle, color: Colors.green, size: 20), + const SizedBox(width: 12), + Expanded(child: Text(feature, style: const TextStyle(fontSize: 16))), + ], + ), + ); + } + + Widget _buildDetailItem(String label, String value, {bool isAvailable = true}) { + return Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Row( + children: [ + Expanded( + flex: 2, + child: Text( + label, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + Expanded( + flex: 3, + child: Text( + value, + style: TextStyle( + fontSize: 16, + color: isAvailable ? null : Colors.grey, + ), + ), + ), + ], + ), + ); + } + + Color _getPlanColor() { + switch (widget.plan.type) { + case SubscriptionPlanType.free: + return Colors.grey; + case SubscriptionPlanType.basic: + return Colors.blue; + case SubscriptionPlanType.premium: + return Colors.amber; + case SubscriptionPlanType.enterprise: + return Colors.purple; + } + } + + IconData _getPlanIcon() { + switch (widget.plan.type) { + case SubscriptionPlanType.free: + return Icons.star_border; + case SubscriptionPlanType.basic: + return Icons.star_half; + case SubscriptionPlanType.premium: + return Icons.star; + case SubscriptionPlanType.enterprise: + return Icons.workspace_premium; + } + } + + String _formatPrice(double price) { + if (price == 0) { + return '0'; + } + + // 천 단위 콤마 추가 + final priceInt = price.toInt(); + return priceInt.toString().replaceAllMapped( + RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), + (Match m) => '${m[1]},', + ); + } + + Future _subscribe(BuildContext context) async { + setState(() { + _isLoading = true; + }); + + try { + final subscriptionService = Provider.of(context, listen: false); + final success = await subscriptionService.createSubscription( + widget.plan.type, + widget.isYearly, + ); + + if (success && mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('구독이 성공적으로 완료되었습니다')), + ); + Navigator.of(context).pop(); // 상세 화면 닫기 + } else if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(subscriptionService.error ?? '구독 처리 중 오류가 발생했습니다'), + backgroundColor: Colors.red, + ), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('오류: $e'), + backgroundColor: Colors.red, + ), + ); + } + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } +} diff --git a/mobile/lib/screens/subscription/subscription_screen.dart b/mobile/lib/screens/subscription/subscription_screen.dart new file mode 100644 index 0000000..433d923 --- /dev/null +++ b/mobile/lib/screens/subscription/subscription_screen.dart @@ -0,0 +1,486 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../models/subscription_model.dart'; +import '../../services/subscription_service.dart'; +import 'subscription_details_screen.dart'; + +class SubscriptionScreen extends StatefulWidget { + const SubscriptionScreen({super.key}); + + @override + State createState() => _SubscriptionScreenState(); +} + +class _SubscriptionScreenState extends State { + bool _isYearly = true; // 기본값은 연간 구독 + + @override + void initState() { + super.initState(); + // 화면 로드 시 구독 정보 조회 + WidgetsBinding.instance.addPostFrameCallback((_) { + final subscriptionService = Provider.of( + context, + listen: false, + ); + subscriptionService.fetchCurrentSubscription(); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('구독 관리')), + body: Consumer( + builder: (context, subscriptionService, child) { + if (subscriptionService.isLoading) { + return const Center(child: CircularProgressIndicator()); + } + + if (subscriptionService.error != null) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('오류가 발생했습니다', style: TextStyle(color: Colors.red[700])), + const SizedBox(height: 8), + Text(subscriptionService.error!), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () => + subscriptionService.fetchCurrentSubscription(), + child: const Text('다시 시도'), + ), + ], + ), + ); + } + + // 현재 구독 정보가 있는 경우 + if (subscriptionService.hasSubscription) { + return _buildCurrentSubscription(subscriptionService); + } + + // 구독 정보가 없는 경우 플랜 선택 화면 + return _buildSubscriptionPlans(subscriptionService); + }, + ), + ); + } + + Widget _buildCurrentSubscription(SubscriptionService subscriptionService) { + final subscription = subscriptionService.currentSubscription!; + final plan = subscriptionService.availablePlans.firstWhere( + (plan) => plan.type == subscription.planType, + orElse: () => SubscriptionPlan.getDefaultPlans().first, + ); + + return SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 현재 구독 정보 카드 + Card( + elevation: 4, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + side: BorderSide( + color: subscription.isActive ? Colors.green : Colors.grey, + width: 2, + ), + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + Icons.verified, + color: subscription.isActive + ? Colors.green + : Colors.grey, + size: 28, + ), + const SizedBox(width: 8), + Text( + '${plan.name} 플랜', + style: const TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ), + const Spacer(), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, + ), + decoration: BoxDecoration( + color: subscription.isActive + ? Colors.green.withOpacity(0.1) + : Colors.grey.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: subscription.isActive + ? Colors.green + : Colors.grey, + ), + ), + child: Text( + subscription.isActive ? '활성' : '만료됨', + style: TextStyle( + color: subscription.isActive + ? Colors.green + : Colors.grey, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 16), + _buildInfoRow('시작일', _formatDate(subscription.startDate)), + const SizedBox(height: 8), + _buildInfoRow('만료일', _formatDate(subscription.endDate)), + const SizedBox(height: 8), + _buildInfoRow( + '자동 갱신', + subscription.autoRenew ? '활성화' : '비활성화', + ), + const SizedBox(height: 8), + _buildInfoRow('남은 기간', '${subscription.daysLeft}일'), + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 16), + const Text( + '플랜 혜택', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 8), + ...plan.features.map( + (feature) => Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Row( + children: [ + const Icon( + Icons.check_circle, + color: Colors.green, + size: 16, + ), + const SizedBox(width: 8), + Text(feature), + ], + ), + ), + ), + ], + ), + ), + ), + + const SizedBox(height: 24), + + // 구독 관리 버튼 + Row( + children: [ + Expanded( + child: ElevatedButton.icon( + onPressed: subscription.isActive + ? () => _showCancelDialog(subscriptionService) + : null, + icon: const Icon(Icons.cancel), + label: const Text('구독 취소'), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red.shade100, + foregroundColor: Colors.red.shade700, + ), + ), + ), + const SizedBox(width: 16), + Expanded( + child: ElevatedButton.icon( + onPressed: () => _toggleAutoRenew(subscriptionService), + icon: Icon( + subscription.autoRenew ? Icons.toggle_on : Icons.toggle_off, + ), + label: Text(subscription.autoRenew ? '자동 갱신 끄기' : '자동 갱신 켜기'), + ), + ), + ], + ), + + const SizedBox(height: 16), + + // 플랜 변경 버튼 + ElevatedButton.icon( + onPressed: () { + setState(() { + // 플랜 선택 화면으로 전환 + subscriptionService.fetchCurrentSubscription(); + }); + }, + icon: const Icon(Icons.upgrade), + label: const Text('플랜 변경하기'), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, + foregroundColor: Colors.white, + minimumSize: const Size(double.infinity, 50), + ), + ), + ], + ), + ); + } + + Widget _buildSubscriptionPlans(SubscriptionService subscriptionService) { + final plans = subscriptionService.availablePlans; + + return Column( + children: [ + // 연간/월간 선택 토글 + Padding( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('월간 구독'), + const SizedBox(width: 8), + Switch( + value: _isYearly, + onChanged: (value) { + setState(() { + _isYearly = value; + }); + }, + activeColor: Colors.blue, + ), + const SizedBox(width: 8), + Row( + children: [ + const Text('연간 구독'), + Container( + margin: const EdgeInsets.only(left: 8), + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 2, + ), + decoration: BoxDecoration( + color: Colors.green.withOpacity(0.1), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: Colors.green), + ), + child: const Text( + '20% 할인', + style: TextStyle( + color: Colors.green, + fontSize: 12, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ], + ), + ), + + // 플랜 목록 + Expanded( + child: ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: plans.length, + itemBuilder: (context, index) { + final plan = plans[index]; + final price = _isYearly ? plan.yearlyPrice : plan.monthlyPrice; + final period = _isYearly ? '년' : '월'; + + return Card( + margin: const EdgeInsets.only(bottom: 16), + elevation: 4, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + child: InkWell( + onTap: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => SubscriptionDetailsScreen( + plan: plan, + isYearly: _isYearly, + ), + ), + ); + }, + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + plan.name, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const Spacer(), + if (plan.type == SubscriptionPlanType.premium) + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, + ), + decoration: BoxDecoration( + color: Colors.amber.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + border: Border.all(color: Colors.amber), + ), + child: const Text( + '인기', + style: TextStyle( + color: Colors.amber, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + const SizedBox(height: 8), + Text(plan.description), + const SizedBox(height: 16), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '₩${_formatPrice(price)}', + style: const TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(width: 4), + Text('/$period'), + const Spacer(), + const Icon(Icons.arrow_forward), + ], + ), + const SizedBox(height: 16), + const Divider(), + const SizedBox(height: 8), + ...plan.features + .take(3) + .map( + (feature) => Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Row( + children: [ + const Icon( + Icons.check_circle, + color: Colors.green, + size: 16, + ), + const SizedBox(width: 8), + Text(feature), + ], + ), + ), + ), + if (plan.features.length > 3) + Text( + '외 ${plan.features.length - 3}개 혜택', + style: TextStyle( + color: Colors.grey[600], + fontStyle: FontStyle.italic, + ), + ), + ], + ), + ), + ), + ); + }, + ), + ), + ], + ); + } + + Widget _buildInfoRow(String label, String value) { + return Row( + children: [ + Text('$label: ', style: const TextStyle(fontWeight: FontWeight.bold)), + Text(value), + ], + ); + } + + String _formatDate(DateTime date) { + return '${date.year}년 ${date.month}월 ${date.day}일'; + } + + String _formatPrice(double price) { + if (price == 0) { + return '0'; + } + + // 천 단위 콤마 추가 + final priceInt = price.toInt(); + return priceInt.toString().replaceAllMapped( + RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), + (Match m) => '${m[1]},', + ); + } + + void _showCancelDialog(SubscriptionService subscriptionService) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('구독 취소'), + content: const Text( + '정말로 구독을 취소하시겠습니까?\n' + '취소하면 현재 구독 기간이 끝날 때까지만 서비스를 이용할 수 있습니다.', + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('아니오'), + ), + TextButton( + onPressed: () async { + Navigator.of(context).pop(); + final success = await subscriptionService.cancelSubscription(); + if (success && mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('구독이 취소되었습니다'))); + } + }, + style: TextButton.styleFrom(foregroundColor: Colors.red), + child: const Text('예, 취소합니다'), + ), + ], + ), + ); + } + + void _toggleAutoRenew(SubscriptionService subscriptionService) async { + final success = await subscriptionService.toggleAutoRenew(); + if (success && mounted) { + final isAutoRenew = subscriptionService.currentSubscription!.autoRenew; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(isAutoRenew ? '자동 갱신이 활성화되었습니다' : '자동 갱신이 비활성화되었습니다'), + ), + ); + } + } +} diff --git a/mobile/lib/services/admin_service.dart b/mobile/lib/services/admin_service.dart new file mode 100644 index 0000000..7bd0ba0 --- /dev/null +++ b/mobile/lib/services/admin_service.dart @@ -0,0 +1,358 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +import '../config/api_config.dart'; +import '../models/admin_model.dart'; + +/// 관리자 기능 관련 서비스 +class AdminService extends ChangeNotifier { + final String _baseUrl = ApiConfig.baseUrl; + final String _token; + final String _clubId; + + List _memberRoles = []; + ClubSettings? _clubSettings; + UserRole _currentUserRole = UserRole.member; + AdminPermission _currentUserPermissions = AdminPermission(); + bool _isLoading = false; + String? _error; + + AdminService(this._token, this._clubId) { + _initialize(); + } + + // 게터 + List get memberRoles => _memberRoles; + ClubSettings? get clubSettings => _clubSettings; + UserRole get currentUserRole => _currentUserRole; + AdminPermission get currentUserPermissions => _currentUserPermissions; + bool get isLoading => _isLoading; + String? get error => _error; + + // 권한 확인 게터 + bool get canManageMembers => _currentUserPermissions.canManageMembers; + bool get canManageEvents => _currentUserPermissions.canManageEvents; + bool get canManageScores => _currentUserPermissions.canManageScores; + bool get canManageSettings => _currentUserPermissions.canManageSettings; + bool get canManageSubscription => _currentUserPermissions.canManageSubscription; + bool get canManageRoles => _currentUserPermissions.canManageRoles; + bool get canViewFinancials => _currentUserPermissions.canViewFinancials; + bool get canExportData => _currentUserPermissions.canExportData; + + /// 초기화 (현재 사용자 권한 및 클럽 설정 로드) + Future _initialize() async { + await Future.wait([ + fetchCurrentUserRole(), + fetchClubSettings(), + ]); + } + + /// 현재 사용자의 역할 및 권한 조회 + Future fetchCurrentUserRole() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/clubs/$_clubId/my-role'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + final memberRole = MemberRole.fromJson(data); + _currentUserRole = memberRole.role; + _currentUserPermissions = memberRole.permissions; + } else { + // 기본값: 일반 회원 + _currentUserRole = UserRole.member; + _currentUserPermissions = AdminPermission.fromRole(UserRole.member); + _error = '사용자 역할 정보를 불러오는데 실패했습니다. (${response.statusCode})'; + } + } catch (e) { + _error = '사용자 역할 정보를 불러오는데 실패했습니다: $e'; + // 기본값: 일반 회원 + _currentUserRole = UserRole.member; + _currentUserPermissions = AdminPermission.fromRole(UserRole.member); + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 내 모든 회원의 역할 정보 조회 + Future fetchMemberRoles() async { + if (!canManageRoles) { + _error = '역할 관리 권한이 없습니다.'; + notifyListeners(); + return; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/clubs/$_clubId/roles'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final List data = jsonDecode(response.body); + _memberRoles = data.map((role) => MemberRole.fromJson(role)).toList(); + } else { + _error = '회원 역할 정보를 불러오는데 실패했습니다. (${response.statusCode})'; + } + } catch (e) { + _error = '회원 역할 정보를 불러오는데 실패했습니다: $e'; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 회원 역할 변경 + Future updateMemberRole(String memberId, UserRole newRole) async { + if (!canManageRoles) { + _error = '역할 관리 권한이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.put( + Uri.parse('$_baseUrl/api/clubs/$_clubId/members/$memberId/role'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode({ + 'role': newRole.toString().split('.').last, + }), + ); + + if (response.statusCode == 200) { + // 역할 목록 갱신 + await fetchMemberRoles(); + return true; + } else { + _error = '회원 역할 변경에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '회원 역할 변경에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 설정 조회 + Future fetchClubSettings() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/clubs/$_clubId/settings'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _clubSettings = ClubSettings.fromJson(data); + } else { + _error = '클럽 설정을 불러오는데 실패했습니다. (${response.statusCode})'; + } + } catch (e) { + _error = '클럽 설정을 불러오는데 실패했습니다: $e'; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 설정 업데이트 + Future updateClubSettings(ClubSettings updatedSettings) async { + if (!canManageSettings) { + _error = '설정 관리 권한이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.put( + Uri.parse('$_baseUrl/api/clubs/$_clubId/settings'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode(updatedSettings.toJson()), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _clubSettings = ClubSettings.fromJson(data); + notifyListeners(); + return true; + } else { + _error = '클럽 설정 업데이트에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '클럽 설정 업데이트에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 로고 업로드 + Future uploadClubLogo(String filePath) async { + if (!canManageSettings) { + _error = '설정 관리 권한이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + // 파일 업로드 로직 구현 (multipart/form-data) + // 실제 구현 시 http.MultipartRequest 사용 + + // 성공 시 설정 업데이트 + await fetchClubSettings(); + return true; + } catch (e) { + _error = '클럽 로고 업로드에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 데이터 내보내기 + Future exportClubData(String dataType) async { + if (!canExportData) { + _error = '데이터 내보내기 권한이 없습니다.'; + notifyListeners(); + return null; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/clubs/$_clubId/export/$dataType'), + headers: { + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + // 다운로드 URL 또는 데이터 반환 + final data = jsonDecode(response.body); + return data['downloadUrl'] ?? data['data']; + } else { + _error = '데이터 내보내기에 실패했습니다. (${response.statusCode})'; + return null; + } + } catch (e) { + _error = '데이터 내보내기에 실패했습니다: $e'; + return null; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 클럽 통계 및 분석 데이터 조회 + Future?> fetchClubAnalytics() async { + if (!canViewFinancials) { + _error = '통계 조회 권한이 없습니다.'; + notifyListeners(); + return null; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/clubs/$_clubId/analytics'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + return data; + } else { + _error = '클럽 통계 데이터를 불러오는데 실패했습니다. (${response.statusCode})'; + return null; + } + } catch (e) { + _error = '클럽 통계 데이터를 불러오는데 실패했습니다: $e'; + return null; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 특정 권한이 있는지 확인 + bool hasPermission(String permissionName) { + switch (permissionName) { + case 'manageMembers': + return _currentUserPermissions.canManageMembers; + case 'manageEvents': + return _currentUserPermissions.canManageEvents; + case 'manageScores': + return _currentUserPermissions.canManageScores; + case 'manageSettings': + return _currentUserPermissions.canManageSettings; + case 'manageSubscription': + return _currentUserPermissions.canManageSubscription; + case 'manageRoles': + return _currentUserPermissions.canManageRoles; + case 'viewFinancials': + return _currentUserPermissions.canViewFinancials; + case 'exportData': + return _currentUserPermissions.canExportData; + default: + return false; + } + } +} diff --git a/mobile/lib/services/api_service.dart b/mobile/lib/services/api_service.dart new file mode 100644 index 0000000..3b22f29 --- /dev/null +++ b/mobile/lib/services/api_service.dart @@ -0,0 +1,133 @@ +import 'package:dio/dio.dart'; +import 'package:cookie_jar/cookie_jar.dart'; +import 'package:dio_cookie_manager/dio_cookie_manager.dart'; +import 'package:flutter/material.dart'; +import '../config/api_config.dart'; +import '../services/auth_service.dart'; +import '../screens/auth/login_screen.dart'; +import '../main.dart'; // navigatorKey를 사용하기 위한 import + +class ApiService { + static final ApiService _instance = ApiService._internal(); + factory ApiService() => _instance; + + late Dio _dio; + final CookieJar _cookieJar = CookieJar(); + String? _token; + + ApiService._internal() { + _dio = Dio(BaseOptions( + baseUrl: ApiConfig.baseUrl, + connectTimeout: const Duration(seconds: 10), + receiveTimeout: const Duration(seconds: 10), + contentType: 'application/json', + )); + + // 쿠키 관리자 설정 + _dio.interceptors.add(CookieManager(_cookieJar)); + + // 로그 인터셉터 (디버깅용) + _dio.interceptors.add(LogInterceptor( + requestBody: true, + responseBody: true, + )); + } + + // 토큰 설정 + void setToken(String token) { + _token = token; + _dio.options.headers['Authorization'] = 'Bearer $token'; + } + + // GET 요청 + Future get(String path, {Map? queryParameters}) async { + try { + final response = await _dio.get( + path, + queryParameters: queryParameters, + ); + return response.data; + } on DioException catch (e) { + _handleError(e); + rethrow; + } + } + + // POST 요청 + Future post(String path, {dynamic data}) async { + try { + final response = await _dio.post( + path, + data: data ?? {}, + ); + return response.data; + } on DioException catch (e) { + _handleError(e); + rethrow; + } + } + + // PUT 요청 + Future put(String path, {dynamic data}) async { + try { + final response = await _dio.put( + path, + data: data, + ); + return response.data; + } on DioException catch (e) { + _handleError(e); + rethrow; + } + } + + // DELETE 요청 + Future delete(String path) async { + try { + final response = await _dio.delete(path); + return response.data; + } on DioException catch (e) { + _handleError(e); + rethrow; + } + } + + // 에러 처리 + void _handleError(DioException e) { + if (e.response != null) { + print('API 에러: ${e.response?.statusCode} - ${e.response?.data}'); + + // 401 오류 (인증 실패) 처리 + if (e.response?.statusCode == 401) { + print('인증 오류: 토큰이 유효하지 않습니다. 로그아웃 처리합니다.'); + _handleUnauthorized(); + } + } else { + print('API 요청 에러: ${e.message}'); + } + } + + // 인증 오류 처리 (401) + void _handleUnauthorized() { + // 다음 프레임에서 실행하여 현재 API 호출 스택이 완료되도록 함 + Future.microtask(() async { + try { + // AuthService 인스턴스 가져오기 + final authService = AuthService(); + + // 로그아웃 처리 + await authService.logout(); + + // 전역 네비게이터 키를 사용하여 로그인 화면으로 이동 + if (navigatorKey.currentContext != null) { + Navigator.of(navigatorKey.currentContext!).pushAndRemoveUntil( + MaterialPageRoute(builder: (context) => const LoginScreen()), + (route) => false, + ); + } + } catch (e) { + print('로그아웃 처리 중 오류 발생: $e'); + } + }); + } +} diff --git a/mobile/lib/services/auth_service.dart b/mobile/lib/services/auth_service.dart new file mode 100644 index 0000000..a83ea01 --- /dev/null +++ b/mobile/lib/services/auth_service.dart @@ -0,0 +1,166 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../config/api_config.dart'; +import '../models/user_model.dart'; +import './api_service.dart'; + +class AuthService with ChangeNotifier { + final FlutterSecureStorage _secureStorage = const FlutterSecureStorage(); + User? _currentUser; + String? _token; + bool _isLoading = false; + bool _isInitialized = false; + final ApiService _apiService = ApiService(); + + User? get currentUser => _currentUser; + String? get token => _token; + bool get isLoading => _isLoading; + bool get isAuthenticated => _token != null; + bool get isInitialized => _isInitialized; + + // 초기화 함수 + Future initialize() async { + _token = await _secureStorage.read(key: ApiConfig.tokenKey); + if (_token != null) { + await _fetchUserProfile(); + } + _isInitialized = true; + notifyListeners(); + } + + // 로그인 함수 + Future login(String username, String password) async { + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + ApiConfig.login, + data: {'username': username, 'password': password}, + ); + + _token = data['token']; + _currentUser = User.fromJson(data['user']); + + // 토큰 저장 + await _secureStorage.write(key: ApiConfig.tokenKey, value: _token); + + // API 서비스에 토큰 설정 + _apiService.setToken(_token!); + + // 사용자 ID와 역할 저장 + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(ApiConfig.userIdKey, _currentUser!.id); + await prefs.setString(ApiConfig.userRoleKey, _currentUser!.role); + + // 클럽 ID가 있으면 저장 + if (_currentUser!.clubId != null) { + await prefs.setString(ApiConfig.clubIdKey, _currentUser!.clubId!); + } + + _isLoading = false; + notifyListeners(); + return true; + } catch (e) { + _isLoading = false; + notifyListeners(); + return false; + } + } + + // 로그아웃 함수 + Future logout() async { + _token = null; + _currentUser = null; + + // 저장된 데이터 삭제 + await _secureStorage.delete(key: ApiConfig.tokenKey); + + final prefs = await SharedPreferences.getInstance(); + await prefs.remove(ApiConfig.userIdKey); + await prefs.remove(ApiConfig.userRoleKey); + await prefs.remove(ApiConfig.clubIdKey); + + notifyListeners(); + } + + // 사용자 프로필 정보 가져오기 + Future _fetchUserProfile() async { + if (_token == null) { + print('프로필 정보 가져오기 실패: 토큰이 없음'); + return; + } + + try { + print('프로필 정보 요청 시작: ${ApiConfig.profile}'); + _apiService.setToken(_token!); + final data = await _apiService.get(ApiConfig.profile); + print('프로필 API 응답: $data'); + + if (data != null) { + try { + _currentUser = User.fromJson(data); + print('프로필 정보 파싱 성공: ${_currentUser?.name}'); + notifyListeners(); + } catch (e) { + print('프로필 정보 파싱 오류: $e'); + print('파싱 실패한 데이터: $data'); + } + } else { + print('프로필 정보 가져오기 실패: 응답 데이터가 null'); + } + } catch (e) { + print('프로필 정보 가져오기 오류: $e'); + } + } + + // 회원가입 함수 + Future register(String name, String email, String password) async { + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + ApiConfig.register, + data: {'name': name, 'email': email, 'password': password}, + ); + + _isLoading = false; + notifyListeners(); + + if (data != null) { + return true; + } else { + return false; + } + } catch (e) { + _isLoading = false; + notifyListeners(); + return false; + } + } + + // 비밀번호 재설정 이메일 전송 함수 + Future sendPasswordResetEmail(String email) async { + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + ApiConfig.forgotPassword, + data: {'email': email}, + ); + + _isLoading = false; + notifyListeners(); + + return data != null; + } catch (e) { + _isLoading = false; + notifyListeners(); + return false; + } + } +} diff --git a/mobile/lib/services/club_service.dart b/mobile/lib/services/club_service.dart new file mode 100644 index 0000000..375b8ec --- /dev/null +++ b/mobile/lib/services/club_service.dart @@ -0,0 +1,208 @@ +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../config/api_config.dart'; +import '../models/club_model.dart'; +import './api_service.dart'; +import './event_bus.dart'; + +class ClubService with ChangeNotifier { + List _clubs = []; + Club? _currentClub; + bool _isLoading = false; + String? _token; + final ApiService _apiService = ApiService(); + + List get clubs => [..._clubs]; + Club? get currentClub => _currentClub; + bool get isLoading => _isLoading; + + // 초기화 함수 + Future initialize(String token) async { + _token = token; + _apiService.setToken(token); + + // 저장된 현재 클럽 ID 가져오기 + final prefs = await SharedPreferences.getInstance(); + final clubId = prefs.getString(ApiConfig.clubIdKey); + + if (clubId != null) { + await fetchClubById(clubId); + } + } + + // 사용자의 모든 클럽 가져오기 + Future fetchUserClubs() async { + if (_token == null) return; + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post('${ApiConfig.clubs}/user'); + + final List clubsData = data; + + _clubs = clubsData.map((clubData) => Club.fromJson(clubData)).toList(); + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('클럽 목록을 불러오는데 실패했습니다: $e'); + } + } + + // ID로 클럽 정보 가져오기 + Future fetchClubById(String clubId) async { + if (_token == null) return; + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}', + data: {'clubId': clubId}, + ); + + // 백엔드에서는 club 키로 감싸지 않고 직접 클럽 객체를 반환합니다 + _currentClub = Club.fromJson(data); + + // 현재 클럽 ID 저장 + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(ApiConfig.clubIdKey, clubId); + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('클럽 정보를 불러오는데 실패했습니다: $e'); + } + } + + // 현재 클럽 설정 + Future setCurrentClub(String clubId) async { + await fetchClubById(clubId); + } + + // 백엔드에 클럽 선택 요청 (세션에 clubId 저장) + Future selectClub(String clubId) async { + if (_token == null) return; + + _isLoading = true; + notifyListeners(); + + try { + await _apiService.post( + '${ApiConfig.clubs}/select-club', + data: {'clubId': clubId}, + ); + + // 클럽 선택 성공 후 클럽 정보 가져오기 + await fetchClubById(clubId); + + // 클럽 ID를 로컬에 저장 + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(ApiConfig.clubIdKey, clubId); + + // 클럽 데이터도 함께 저장 + if (_currentClub != null) { + await prefs.setString('${ApiConfig.clubIdKey}_data', jsonEncode(_currentClub!.toJson())); + } + + // 클럽 변경 이벤트 발생 - 다른 서비스들에게 알림 + EventBus().fire(ClubChangedEvent(clubId)); + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('클럽 선택에 실패했습니다: $e'); + } + } + + // 클럽 생성 + Future createClub(Club club) async { + if (_token == null) { + throw Exception('인증이 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}', + data: club.toJson(), + ); + + final newClub = Club.fromJson(data['club']); + + _clubs.add(newClub); + _currentClub = newClub; + + // 현재 클럽 ID 저장 + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(ApiConfig.clubIdKey, newClub.id); + + _isLoading = false; + notifyListeners(); + + return newClub; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('클럽 생성에 실패했습니다: $e'); + } + } + + // 클럽 정보 업데이트 + Future updateClub(String clubId, Map updates) async { + if (_token == null) { + throw Exception('인증이 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.put( + ApiConfig.clubs, + data: { + 'clubId': clubId, + ...updates, + }, + ); + + // 백엔드 응답 처리: 직접 클럽 객체가 반환되거나 {club: {...}} 형태로 반환될 수 있음 + final updatedClub = data is Map && data.containsKey('club') + ? Club.fromJson(data['club']) + : Club.fromJson(data); + + // 클럽 목록 업데이트 + final index = _clubs.indexWhere((club) => club.id == clubId); + if (index >= 0) { + _clubs[index] = updatedClub; + } + + // 현재 클럽이 업데이트된 클럽인 경우 업데이트 + if (_currentClub?.id == clubId) { + _currentClub = updatedClub; + } + + _isLoading = false; + notifyListeners(); + + return updatedClub; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('클럽 정보 업데이트에 실패했습니다: $e'); + } + } +} diff --git a/mobile/lib/services/event_bus.dart b/mobile/lib/services/event_bus.dart new file mode 100644 index 0000000..ad01848 --- /dev/null +++ b/mobile/lib/services/event_bus.dart @@ -0,0 +1,28 @@ +import 'dart:async'; + +class EventBus { + static final EventBus _instance = EventBus._internal(); + + factory EventBus() => _instance; + + EventBus._internal(); + + final _streamController = StreamController.broadcast(); + + Stream get stream => _streamController.stream; + + void fire(dynamic event) { + _streamController.add(event); + } + + void dispose() { + _streamController.close(); + } +} + +// 이벤트 클래스들 +class ClubChangedEvent { + final String clubId; + + ClubChangedEvent(this.clubId); +} diff --git a/mobile/lib/services/event_service.dart b/mobile/lib/services/event_service.dart new file mode 100644 index 0000000..14b4ce3 --- /dev/null +++ b/mobile/lib/services/event_service.dart @@ -0,0 +1,185 @@ +import 'package:flutter/foundation.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../config/api_config.dart'; +import '../models/event_model.dart'; +import './api_service.dart'; + +class EventService with ChangeNotifier { + List _events = []; + Event? _currentEvent; + bool _isLoading = false; + String? _token; + final ApiService _apiService = ApiService(); + String? _clubId; + + List get events => [..._events]; + bool get isLoading => _isLoading; + + // 초기화 함수 + Future initialize(String token) async { + _token = token; + _apiService.setToken(token); + } + + // 클럽 ID 설정 + void setClubId(String clubId) { + _clubId = clubId; + notifyListeners(); + } + + // 클럽의 모든 이벤트 가져오기 + Future fetchClubEvents() async { + print('fetchClubEvents 호출됨: token=$_token'); + + _isLoading = true; + notifyListeners(); + + try { + // 클럽 ID 가져오기 + final prefs = await SharedPreferences.getInstance(); + final clubId = prefs.getString(ApiConfig.clubIdKey); + + if (clubId == null) { + throw Exception('선택된 클럽이 없습니다'); + } + + final data = await _apiService.post( + '${ApiConfig.clubs}/events', + data: {'clubId': clubId}, + ); + + // 응답 데이터가 리스트 형태로 직접 왔는지 확인 + if (data is List) { + final List eventsData = data; + _events = eventsData + .map((eventData) => Event.fromJson(eventData)) + .toList(); + } else { + // 응답 데이터가 객체 형태로 왔을 경우 events 키를 통해 접근 + final List eventsData = data['events'] ?? []; + _events = eventsData + .map((eventData) => Event.fromJson(eventData)) + .toList(); + } + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('이벤트 목록을 불러오는데 실패했습니다: $e'); + } + } + + // ID로 이벤트 정보 가져오기 + Future fetchEventById(String eventId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/events/detail', + data: {'eventId': eventId}, + ); + + return Event.fromJson(data['event']); + } catch (e) { + throw Exception('이벤트 정보를 불러오는데 실패했습니다: $e'); + } + } + + // 이벤트 생성 + Future createEvent(Map eventData) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/events', + data: eventData, + ); + + final newEvent = Event.fromJson(data['event']); + + _events.add(newEvent); + + _isLoading = false; + notifyListeners(); + + return newEvent; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('이벤트 생성에 실패했습니다: $e'); + } + } + + // 이벤트 정보 업데이트 + Future updateEvent( + String eventId, + Map updates, + ) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.put( + '${ApiConfig.clubs}/events/$eventId', + data: updates, + ); + + final updatedEvent = Event.fromJson(data['event']); + + // 이벤트 목록 업데이트 + final index = _events.indexWhere((event) => event.id == eventId); + if (index >= 0) { + _events[index] = updatedEvent; + } + + _isLoading = false; + notifyListeners(); + + return updatedEvent; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('이벤트 정보 업데이트에 실패했습니다: $e'); + } + } + + // 이벤트 삭제 + Future deleteEvent(String eventId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + await _apiService.delete('${ApiConfig.clubs}/events/$eventId'); + + // 이벤트 목록에서 삭제 + _events.removeWhere((event) => event.id == eventId); + + _isLoading = false; + notifyListeners(); + + return true; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('이벤트 삭제에 실패했습니다: $e'); + } + } +} diff --git a/mobile/lib/services/in_app_purchase_service.dart b/mobile/lib/services/in_app_purchase_service.dart new file mode 100644 index 0000000..bfc7c64 --- /dev/null +++ b/mobile/lib/services/in_app_purchase_service.dart @@ -0,0 +1,284 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:in_app_purchase/in_app_purchase.dart'; +import 'package:in_app_purchase_android/in_app_purchase_android.dart'; +import 'package:in_app_purchase_storekit/in_app_purchase_storekit.dart'; + +import '../config/api_config.dart'; +import '../models/subscription_model.dart'; + +/// 인앱 결제 서비스 +class InAppPurchaseService extends ChangeNotifier { + final InAppPurchase _inAppPurchase = InAppPurchase.instance; + StreamSubscription>? _subscription; + + List _products = []; + List _purchases = []; + bool _isAvailable = false; + bool _isLoading = false; + String? _error; + + // 구매 검증 관련 변수 + bool _purchaseVerified = false; + Map? _verifiedPurchase; + + // 구독 상품 ID (스토어에 등록된 ID와 일치해야 함) + final Map _subscriptionIds = { + SubscriptionPlanType.basic: Platform.isAndroid + ? 'com.bowlingmanager.subscription.basic' + : 'com.bowlingmanager.subscription.basic', + SubscriptionPlanType.premium: Platform.isAndroid + ? 'com.bowlingmanager.subscription.premium' + : 'com.bowlingmanager.subscription.premium', + SubscriptionPlanType.enterprise: Platform.isAndroid + ? 'com.bowlingmanager.subscription.enterprise' + : 'com.bowlingmanager.subscription.enterprise', + }; + + // 게터 + List get products => _products; + List get purchases => _purchases; + bool get isAvailable => _isAvailable; + bool get isLoading => _isLoading; + String? get error => _error; + + InAppPurchaseService() { + _initialize(); + } + + /// 초기화 및 결제 상태 리스너 설정 + Future _initialize() async { + _isLoading = true; + notifyListeners(); + + // 인앱 결제 가능 여부 확인 + _isAvailable = await _inAppPurchase.isAvailable(); + + if (!_isAvailable) { + _error = '인앱 결제를 사용할 수 없습니다.'; + _isLoading = false; + notifyListeners(); + return; + } + + // 결제 상태 변경 리스너 설정 + final purchaseUpdated = _inAppPurchase.purchaseStream; + _subscription = purchaseUpdated.listen( + _onPurchaseUpdate, + onDone: _updateStreamOnDone, + onError: _updateStreamOnError, + ); + + // 상품 정보 로드 + await _loadProducts(); + + _isLoading = false; + notifyListeners(); + } + + /// 상품 정보 로드 + Future _loadProducts() async { + try { + final Set ids = _subscriptionIds.values.toSet(); + final ProductDetailsResponse response = + await _inAppPurchase.queryProductDetails(ids); + + if (response.notFoundIDs.isNotEmpty) { + _error = '일부 상품을 찾을 수 없습니다: ${response.notFoundIDs.join(", ")}'; + } + + _products = response.productDetails; + notifyListeners(); + } catch (e) { + _error = '상품 정보를 불러오는데 실패했습니다: $e'; + } + } + + /// 구독 플랜 타입에 해당하는 상품 정보 가져오기 + ProductDetails? getProductByPlanType(SubscriptionPlanType planType) { + final String? id = _subscriptionIds[planType]; + if (id == null) return null; + + try { + return _products.firstWhere((product) => product.id == id); + } catch (e) { + return null; + } + } + + /// 구독 구매 시작 + Future purchaseSubscription(SubscriptionPlanType planType) async { + final ProductDetails? product = getProductByPlanType(planType); + + if (product == null) { + _error = '해당 구독 상품을 찾을 수 없습니다.'; + notifyListeners(); + return false; + } + + try { + // 구매 요청 + final PurchaseParam purchaseParam = PurchaseParam( + productDetails: product, + applicationUserName: null, + ); + + // 구독 상품 구매 요청 + await _inAppPurchase.buyNonConsumable(purchaseParam: purchaseParam); + return true; + } catch (e) { + _error = '구독 구매 요청 중 오류가 발생했습니다: $e'; + notifyListeners(); + return false; + } + } + + /// 구매 상태 업데이트 처리 + void _onPurchaseUpdate(List purchaseDetailsList) async { + _purchases = purchaseDetailsList; + + for (var purchaseDetails in purchaseDetailsList) { + if (purchaseDetails.status == PurchaseStatus.pending) { + // 결제 대기 중 + _handlePendingPurchase(purchaseDetails); + } else if (purchaseDetails.status == PurchaseStatus.purchased || + purchaseDetails.status == PurchaseStatus.restored) { + // 결제 완료 또는 복원됨 + await _handleSuccessfulPurchase(purchaseDetails); + } else if (purchaseDetails.status == PurchaseStatus.error) { + // 결제 오류 + _handleFailedPurchase(purchaseDetails); + } else if (purchaseDetails.status == PurchaseStatus.canceled) { + // 결제 취소 + _handleCanceledPurchase(purchaseDetails); + } + + // 구매 완료 처리 (iOS에서는 명시적으로 완료 처리 필요) + if (purchaseDetails.pendingCompletePurchase) { + await _inAppPurchase.completePurchase(purchaseDetails); + } + } + + notifyListeners(); + } + + /// 결제 대기 중 처리 + void _handlePendingPurchase(PurchaseDetails purchaseDetails) { + // 결제 대기 중 UI 업데이트 등 필요한 처리 + } + + /// 결제 성공 처리 + Future _handleSuccessfulPurchase(PurchaseDetails purchaseDetails) async { + // 서버에 구독 정보 업데이트 요청 + await _verifyAndSavePurchase(purchaseDetails); + } + + /// 결제 실패 처리 + void _handleFailedPurchase(PurchaseDetails purchaseDetails) { + _error = '결제에 실패했습니다: ${purchaseDetails.error?.message ?? "알 수 없는 오류"}'; + } + + /// 결제 취소 처리 + void _handleCanceledPurchase(PurchaseDetails purchaseDetails) { + _error = '결제가 취소되었습니다.'; + } + + /// 구매 검증 및 서버 저장 + Future _verifyAndSavePurchase(PurchaseDetails purchaseDetails) async { + // 구매 영수증 정보 추출 + String? receiptData; + String? transactionId = purchaseDetails.purchaseID; + String? productId = purchaseDetails.productID; + String platform = Platform.isIOS ? 'ios' : 'android'; + + if (Platform.isIOS) { + final InAppPurchaseStoreKitPlatformAddition iosPlatformAddition = + _inAppPurchase.getPlatformAddition(); + receiptData = await iosPlatformAddition.retrieveReceiptData(); + } else if (Platform.isAndroid) { + if (purchaseDetails is GooglePlayPurchaseDetails) { + receiptData = purchaseDetails.billingClientPurchase.originalJson; + } + } + + if (receiptData == null) { + _error = '영수증 데이터를 추출할 수 없습니다.'; + notifyListeners(); + return false; + } + + try { + // API 설정 가져오기 + final String baseUrl = ApiConfig.baseUrl; + final String verifyEndpoint = ApiConfig.verifyReceipt; + + // 서버에 영수증 검증 요청 + final response = await http.post( + Uri.parse('$baseUrl$verifyEndpoint'), + headers: { + 'Content-Type': 'application/json', + // 인증 토큰은 SubscriptionService에서 처리 + }, + body: jsonEncode({ + 'receipt': receiptData, + 'transactionId': transactionId, + 'productId': productId, + 'platform': platform, + }), + ); + + if (response.statusCode == 200) { + // 검증 성공 + final data = jsonDecode(response.body); + // 성공 이벤트 발생 (SubscriptionService에서 구독 정보 업데이트) + _purchaseVerified = true; + _verifiedPurchase = { + 'transactionId': transactionId, + 'productId': productId, + 'verificationData': data, + }; + notifyListeners(); + return true; + } else { + // 검증 실패 + _error = '영수증 검증에 실패했습니다. (${response.statusCode})'; + notifyListeners(); + return false; + } + } catch (e) { + _error = '영수증 검증 중 오류가 발생했습니다: $e'; + notifyListeners(); + return false; + } + } + + /// 구독 복원 + Future restorePurchases() async { + try { + await _inAppPurchase.restorePurchases(); + return true; + } catch (e) { + _error = '구독 복원 중 오류가 발생했습니다: $e'; + notifyListeners(); + return false; + } + } + + void _updateStreamOnDone() { + _subscription?.cancel(); + } + + void _updateStreamOnError(dynamic error) { + _error = '결제 스트림 오류: $error'; + notifyListeners(); + } + + @override + void dispose() { + _subscription?.cancel(); + super.dispose(); + } +} diff --git a/mobile/lib/services/member_service.dart b/mobile/lib/services/member_service.dart new file mode 100644 index 0000000..9a8a76f --- /dev/null +++ b/mobile/lib/services/member_service.dart @@ -0,0 +1,229 @@ +import 'dart:async'; +import 'package:flutter/foundation.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../config/api_config.dart'; +import '../models/member_model.dart'; +import './api_service.dart'; +import './event_bus.dart'; + +class MemberService with ChangeNotifier { + List _members = []; + Member? _currentMember; + bool _isLoading = false; + String? _token; + String? _clubId; + final ApiService _apiService = ApiService(); + StreamSubscription? _eventSubscription; + + List get members => [..._members]; + bool get isLoading => _isLoading; + + // 초기화 함수 + void initialize(String token) { + _token = token; + _apiService.setToken(token); + + // 이벤트 구독 + _eventSubscription = EventBus().stream.listen((event) { + if (event is ClubChangedEvent) { + setClubId(event.clubId); + } + }); + } + + @override + void dispose() { + _eventSubscription?.cancel(); + super.dispose(); + } + + // 클럽 ID 설정 + Future setClubId(String clubId) async { + // 클럽 ID가 변경된 경우에만 처리 + if (_clubId != clubId) { + _clubId = clubId; + notifyListeners(); + + // 새 클럽의 회원 목록 가져오기 + if (_token != null) { + await fetchClubMembers(); + } + } + } + + // 클럽의 모든 회원 가져오기 + Future fetchClubMembers() async { + print('fetchClubMembers 호출됨: token=${_token}'); + + _isLoading = true; + notifyListeners(); + + try { + // 클럽 ID 가져오기 + final prefs = await SharedPreferences.getInstance(); + final clubId = prefs.getString(ApiConfig.clubIdKey); + + if (clubId == null) { + throw Exception('선택된 클럽이 없습니다'); + } + + final data = await _apiService.post( + '${ApiConfig.clubs}/members', + data: {'clubId': clubId}, + ); + + print('회원 응답 데이터: $data'); + + // 응답 데이터가 리스트 형태로 직접 왔으므로 그대로 사용 + if (data is List) { + final List membersData = data; + _members = membersData + .map((memberData) => Member.fromJson(memberData)) + .toList(); + print('변환된 회원 리스트 길이: ${_members.length}'); + } else { + // 응답 데이터가 객체 형태로 왔을 경우 members 키를 통해 접근 + final List membersData = data['members'] ?? []; + _members = membersData + .map((memberData) => Member.fromJson(memberData)) + .toList(); + print('변환된 회원 리스트 길이: ${_members.length}'); + } + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('회원 목록을 불러오는데 실패했습니다: $e'); + } + } + + // ID로 회원 정보 가져오기 + Future fetchMemberById(String memberId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/members/detail', + data: {'memberId': memberId}, + ); + + if (data['statusCode'] == 200) { + final memberData = data['member']; + return Member.fromJson(memberData); + } else { + throw Exception('회원 정보를 불러오는데 실패했습니다'); + } + } catch (e) { + throw Exception('회원 정보를 불러오는데 실패했습니다: $e'); + } + } + + // 회원 추가 + Future addMember(Map memberData) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/members/add', + data: memberData, + ); + + // 백엔드 응답 처리: 직접 회원 객체가 반환되거나 {member: {...}} 형태로 반환될 수 있음 + final newMember = data is Map && data.containsKey('member') + ? Member.fromJson(data['member']) + : Member.fromJson(data); + + _members.add(newMember); + + _isLoading = false; + notifyListeners(); + + return newMember; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('회원 추가에 실패했습니다: $e'); + } + } + + // 회원 정보 업데이트 + Future updateMember( + String memberId, + Map updates, + ) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/members/update', + data: {'clubId': _clubId, 'memberId': memberId, ...updates}, + ); + + // 응답 데이터가 { member: {...} } 형태인지 또는 직접 회원 객체인지 확인 + final Map memberData = data['member'] != null + ? data['member'] as Map + : data as Map; + + final updatedMember = Member.fromJson(memberData); + + // 회원 목록 업데이트 + final index = _members.indexWhere((member) => member.id == memberId); + if (index >= 0) { + _members[index] = updatedMember; + } + + _isLoading = false; + notifyListeners(); + + return updatedMember; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('회원 정보 업데이트에 실패했습니다: $e'); + } + } + + // 회원 삭제 (또는 비활성화) + Future deleteMember(String memberId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + await _apiService.post( + '${ApiConfig.clubs}/members/delete', + data: {'memberId': memberId, 'clubId': _clubId}, + ); + + // 회원 목록에서 제거 + _members.removeWhere((member) => member.id == memberId); + + _isLoading = false; + notifyListeners(); + + return true; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('회원 삭제에 실패했습니다: $e'); + } + } +} diff --git a/mobile/lib/services/score_service.dart b/mobile/lib/services/score_service.dart new file mode 100644 index 0000000..87e42ff --- /dev/null +++ b/mobile/lib/services/score_service.dart @@ -0,0 +1,296 @@ +import 'package:flutter/foundation.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../config/api_config.dart'; +import '../models/score_model.dart'; +import './api_service.dart'; + +class ScoreService with ChangeNotifier { + List _scores = []; + bool _isLoading = false; + String? _token; + String? _clubId; + final ApiService _apiService = ApiService(); + String? _memberId; + String? _eventId; + + List get scores => [..._scores]; + bool get isLoading => _isLoading; + + // 초기화 함수 + void initialize(String token) { + _token = token; + _apiService.setToken(token); + } + + // 회원 ID 설정 + void setMemberId(String memberId) { + _memberId = memberId; + notifyListeners(); + } + + // 이벤트 ID 설정 + void setEventId(String eventId) { + _eventId = eventId; + notifyListeners(); + } + + // 클럽의 모든 점수 가져오기 + Future fetchClubScores() async { + print('fetchClubScores 호출됨: token=$_token'); + + _isLoading = true; + notifyListeners(); + + try { + // 클럽 ID 가져오기 + final prefs = await SharedPreferences.getInstance(); + final clubId = prefs.getString(ApiConfig.clubIdKey); + + if (clubId == null) { + throw Exception('선택된 클럽이 없습니다'); + } + + final data = await _apiService.post( + '${ApiConfig.clubs}/scores', + data: {'clubId': clubId}, + ); + + // 응답 데이터가 리스트 형태로 직접 왔는지 확인 + if (data is List) { + final List scoresData = data; + _scores = scoresData + .map((scoreData) => Score.fromJson(scoreData)) + .toList(); + } else { + // 응답 데이터가 객체 형태로 왔을 경우 scores 키를 통해 접근 + final List scoresData = data['scores'] ?? []; + _scores = scoresData + .map((scoreData) => Score.fromJson(scoreData)) + .toList(); + } + + _isLoading = false; + notifyListeners(); + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('점수 목록을 불러오는데 실패했습니다: $e'); + } + } + + // 회원의 점수 가져오기 + Future> fetchMemberScores(String memberId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/members/scores', + data: {'memberId': memberId}, + ); + + final List scoresData = data['scores']; + + final memberScores = scoresData + .map((scoreData) => Score.fromJson(scoreData)) + .toList(); + + _isLoading = false; + notifyListeners(); + + return memberScores; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('회원 점수를 불러오는데 실패했습니다: $e'); + } + } + + // 이벤트의 점수 가져오기 + Future> fetchEventScores(String eventId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/events/scores', + data: {'eventId': eventId}, + ); + + final List scoresData = data['scores']; + + final eventScores = scoresData + .map((scoreData) => Score.fromJson(scoreData)) + .toList(); + + _isLoading = false; + notifyListeners(); + + return eventScores; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('이벤트 점수를 불러오는데 실패했습니다: $e'); + } + } + + // 점수 추가 + Future addScore(Map scoreData) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.post(ApiConfig.scores, data: scoreData); + + final newScore = Score.fromJson(data['score']); + + _scores.add(newScore); + + _isLoading = false; + notifyListeners(); + + return newScore; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('점수 추가에 실패했습니다: $e'); + } + } + + // 점수 수정 + Future updateScore( + String scoreId, + Map updates, + ) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + final data = await _apiService.put( + '${ApiConfig.scores}/$scoreId', + data: updates, + ); + + final updatedScore = Score.fromJson(data['score']); + + // 점수 목록 업데이트 + final index = _scores.indexWhere((score) => score.id == scoreId); + if (index >= 0) { + _scores[index] = updatedScore; + } + + _isLoading = false; + notifyListeners(); + + return updatedScore; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('점수 수정에 실패했습니다: $e'); + } + } + + // 점수 삭제 + Future deleteScore(String scoreId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + _isLoading = true; + notifyListeners(); + + try { + await _apiService.delete('${ApiConfig.scores}/$scoreId'); + + // 점수 목록에서 삭제 + _scores.removeWhere((score) => score.id == scoreId); + + _isLoading = false; + notifyListeners(); + + return true; + } catch (e) { + _isLoading = false; + notifyListeners(); + throw Exception('점수 삭제에 실패했습니다: $e'); + } + } + + // 회원 통계 가져오기 + Future fetchMemberStatistics(String memberId) async { + if (_token == null || _clubId == null) { + throw Exception('인증 또는 클럽 정보가 필요합니다'); + } + + try { + final data = await _apiService.post( + '${ApiConfig.clubs}/members/stats', + data: {'memberId': memberId}, + ); + + return ScoreStatistics.fromJson(data['statistics']); + } catch (e) { + throw Exception('회원 통계를 불러오는데 실패했습니다: $e'); + } + } + + // 클럽 통계 가져오기 + Future> fetchClubStatistics() async { + if (_token == null) { + throw Exception('인증 정보가 필요합니다'); + } + + try { + // 클럽 ID 가져오기 + final prefs = await SharedPreferences.getInstance(); + final clubId = prefs.getString(ApiConfig.clubIdKey); + + if (clubId == null) { + throw Exception('선택된 클럽이 없습니다'); + } + + final data = await _apiService.post( + '${ApiConfig.clubs}/scores/stats', + data: {'clubId': clubId}, + ); + + final Map statistics = {}; + + if (data['statistics'] != null) { + final Map statsData = + data['statistics'] as Map; + + statsData.forEach((key, value) { + if (value != null) { + try { + statistics[key] = ScoreStatistics.fromJson(value); + } catch (e) { + print('통계 변환 오류: $key - $e'); + } + } + }); + } + + return statistics; + } catch (e) { + throw Exception('클럽 통계를 불러오는데 실패했습니다: $e'); + } + } +} diff --git a/mobile/lib/services/subscription_notification_service.dart b/mobile/lib/services/subscription_notification_service.dart new file mode 100644 index 0000000..648588f --- /dev/null +++ b/mobile/lib/services/subscription_notification_service.dart @@ -0,0 +1,90 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../models/subscription_model.dart'; + +/// 구독 알림 서비스 +class SubscriptionNotificationService extends ChangeNotifier { + // 구독 만료 임박 기준 (일) + static const int _expirationWarningDays = 7; + + // 알림 상태 + bool _hasExpirationWarning = false; + bool _hasExpired = false; + DateTime? _expirationDate; + Timer? _checkTimer; + + // 게터 + bool get hasExpirationWarning => _hasExpirationWarning; + bool get hasExpired => _hasExpired; + DateTime? get expirationDate => _expirationDate; + + // 만료까지 남은 일수 + int get daysUntilExpiration { + if (_expirationDate == null) return 0; + return _expirationDate!.difference(DateTime.now()).inDays; + } + + // 만료일 포맷팅 (YYYY-MM-DD) + String get formattedExpirationDate { + if (_expirationDate == null) return ''; + return DateFormat('yyyy-MM-dd').format(_expirationDate!); + } + + SubscriptionNotificationService() { + // 주기적으로 구독 상태 확인 (1시간마다) + _checkTimer = Timer.periodic(const Duration(hours: 1), (_) { + _checkExpirationStatus(); + }); + } + + /// 구독 정보 업데이트 + void updateSubscription(Subscription? subscription) { + if (subscription == null || !subscription.isActive) { + _hasExpired = true; + _hasExpirationWarning = false; + _expirationDate = null; + } else { + _expirationDate = subscription.endDate; + _checkExpirationStatus(); + } + notifyListeners(); + } + + /// 만료 상태 확인 + void _checkExpirationStatus() { + if (_expirationDate == null) { + _hasExpired = true; + _hasExpirationWarning = false; + return; + } + + final now = DateTime.now(); + final daysLeft = _expirationDate!.difference(now).inDays; + + // 만료 여부 확인 + _hasExpired = now.isAfter(_expirationDate!); + + // 만료 임박 여부 확인 (7일 이내) + _hasExpirationWarning = !_hasExpired && daysLeft <= _expirationWarningDays; + + notifyListeners(); + } + + /// 알림 메시지 생성 + String? getNotificationMessage() { + if (_hasExpired) { + return '구독이 만료되었습니다. 서비스 이용을 위해 구독을 갱신해 주세요.'; + } else if (_hasExpirationWarning && _expirationDate != null) { + return '구독이 $daysUntilExpiration일 후 만료됩니다. 서비스 이용을 위해 구독을 갱신해 주세요.'; + } + return null; + } + + @override + void dispose() { + _checkTimer?.cancel(); + super.dispose(); + } +} diff --git a/mobile/lib/services/subscription_service.dart b/mobile/lib/services/subscription_service.dart new file mode 100644 index 0000000..9ee9d73 --- /dev/null +++ b/mobile/lib/services/subscription_service.dart @@ -0,0 +1,445 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +import '../config/api_config.dart'; +import '../models/subscription_model.dart'; +import 'in_app_purchase_service.dart'; + +/// 구독 관련 서비스 +class SubscriptionService extends ChangeNotifier { + final String _baseUrl = ApiConfig.baseUrl; + final String _token; + + Subscription? _currentSubscription; + List _availablePlans = []; + bool _isLoading = false; + String? _error; + + // 인앱 결제 서비스 + final InAppPurchaseService _purchaseService = InAppPurchaseService(); + + SubscriptionService(this._token) { + _loadAvailablePlans(); + _initializeInAppPurchase(); + } + + // 게터 + Subscription? get currentSubscription => _currentSubscription; + List get availablePlans => _availablePlans; + bool get isLoading => _isLoading || _purchaseService.isLoading; + String? get error => _error ?? _purchaseService.error; + bool get hasSubscription => _currentSubscription != null; + bool get isActive => _currentSubscription?.isActive ?? false; + + // 인앱 결제 관련 게터 + InAppPurchaseService get purchaseService => _purchaseService; + List get products => _purchaseService.products; + + /// 현재 구독 정보 로드 + Future loadCurrentSubscription() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.post( + Uri.parse('$_baseUrl${ApiConfig.currentSubscription}'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode({ + 'clubId': _clubId, + }), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + } else if (response.statusCode == 404) { + // 구독 정보가 없는 경우 (Free 플랜으로 간주) + _currentSubscription = Subscription( + id: 'free', + userId: _userId, + planType: SubscriptionPlanType.free, + status: SubscriptionStatus.active, + startDate: DateTime.now(), + endDate: DateTime.now().add(const Duration(days: 36500)), // 100년 + autoRenew: false, + lastPaymentDate: null, + nextPaymentDate: null, + ); + } else { + _error = '구독 정보를 불러오는데 실패했습니다. (${response.statusCode})'; + } + } catch (e) { + _error = '구독 정보를 불러오는데 실패했습니다: $e'; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 사용 가능한 구독 플랜 목록 로드 + Future _loadAvailablePlans() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl${ApiConfig.subscriptionPlans}'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final List data = jsonDecode(response.body); + _availablePlans = data.map((plan) => SubscriptionPlan.fromJson(plan)).toList(); + } else { + _error = '구독 플랜 정보를 불러오는데 실패했습니다. (${response.statusCode})'; + // 기본 플랜 정보 사용 + _availablePlans = SubscriptionPlan.getDefaultPlans(); + } + } catch (e) { + _error = '구독 플랜 정보를 불러오는데 실패했습니다: $e'; + // 기본 플랜 정보 사용 + _availablePlans = SubscriptionPlan.getDefaultPlans(); + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 인앱 결제 서비스 초기화 + Future _initializeInAppPurchase() async { + // 인앱 결제 서비스는 자체적으로 초기화됨 + // 필요한 경우 추가 설정 + } + + /// 구독 복원 + Future restoreSubscriptions() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + // 1. 인앱 결제 복원 요청 + final restoreSuccess = await _purchaseService.restorePurchases(); + if (!restoreSuccess) { + _error = '구독 복원에 실패했습니다.'; + return false; + } + + // 2. 서버에서 최신 구독 정보 조회 + await fetchCurrentSubscription(); + return true; + } catch (e) { + _error = '구독 복원에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 구독 상태 검증 + Future verifySubscription() async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.get( + Uri.parse('$_baseUrl/api/subscriptions/verify'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + notifyListeners(); + return true; + } else { + _error = '구독 검증에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '구독 검증에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 새 구독 생성 (인앱 결제 통합) + Future createSubscription(SubscriptionPlanType planType, bool isYearly) async { + _isLoading = true; + _error = null; + notifyListeners(); + + try { + // 인앱 결제 시작 + final success = await _purchaseService.purchaseSubscription(planType); + + if (!success) { + _error = '구독 구매 요청에 실패했습니다.'; + _isLoading = false; + notifyListeners(); + return false; + } + + // 구매 검증 결과 대기 + bool verified = false; + int attempts = 0; + const maxAttempts = 10; + + // 구매 검증이 완료될 때까지 최대 10회 확인 + while (!verified && attempts < maxAttempts) { + await Future.delayed(const Duration(seconds: 1)); + verified = _purchaseService._purchaseVerified; + attempts++; + + // 오류가 발생한 경우 + if (_purchaseService.error != null) { + _error = _purchaseService.error; + _isLoading = false; + notifyListeners(); + return false; + } + } + + if (!verified) { + _error = '구독 검증 시간이 초과되었습니다.'; + _isLoading = false; + notifyListeners(); + return false; + } + + // 검증된 구매 정보 가져오기 + final verifiedPurchase = _purchaseService._verifiedPurchase; + if (verifiedPurchase == null) { + _error = '검증된 구매 정보를 찾을 수 없습니다.'; + _isLoading = false; + notifyListeners(); + return false; + } + + // 서버에 구독 생성 요청 + final response = await http.post( + Uri.parse('$_baseUrl${ApiConfig.subscribeClub}'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode({ + 'planType': planType.toString().split('.').last, + 'isYearly': isYearly, + 'clubId': _clubId, + 'transactionId': verifiedPurchase['transactionId'], + 'productId': verifiedPurchase['productId'], + 'verificationData': verifiedPurchase['verificationData'], + }), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + + // 구매 검증 상태 초기화 + _purchaseService._purchaseVerified = false; + _purchaseService._verifiedPurchase = null; + + notifyListeners(); + return true; + } else { + _error = '구독 생성에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '구독 생성 중 오류가 발생했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 구독 취소 + Future cancelSubscription() async { + if (_currentSubscription == null) { + _error = '취소할 구독이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.post( + Uri.parse('$_baseUrl/api/subscriptions/${_currentSubscription!.id}/cancel'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + notifyListeners(); + return true; + } else { + _error = '구독 취소에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '구독 취소에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 구독 플랜 변경 + Future changePlan(SubscriptionPlanType newPlanType, bool isYearly) async { + if (_currentSubscription == null) { + _error = '변경할 구독이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.post( + Uri.parse('$_baseUrl${ApiConfig.changePlan}'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode({ + 'subscriptionId': _currentSubscription!.id, + 'planType': newPlanType.toString().split('.').last, + 'isYearly': isYearly, + 'clubId': _clubId, + }), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + notifyListeners(); + return true; + } else { + _error = '구독 플랜 변경에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '구독 플랜 변경에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 자동 갱신 설정 변경 + Future toggleAutoRenew() async { + if (_currentSubscription == null) { + _error = '변경할 구독이 없습니다.'; + notifyListeners(); + return false; + } + + _isLoading = true; + _error = null; + notifyListeners(); + + try { + final response = await http.post( + Uri.parse('$_baseUrl${ApiConfig.subscriptions}/autorenew'), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $_token', + }, + body: jsonEncode({ + 'subscriptionId': _currentSubscription!.id, + 'autoRenew': !_currentSubscription!.autoRenew, + 'clubId': _clubId, + }), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + _currentSubscription = Subscription.fromJson(data); + notifyListeners(); + return true; + } else { + _error = '자동 갱신 설정 변경에 실패했습니다. (${response.statusCode})'; + return false; + } + } catch (e) { + _error = '자동 갱신 설정 변경에 실패했습니다: $e'; + return false; + } finally { + _isLoading = false; + notifyListeners(); + } + } + + /// 특정 기능이 현재 구독에서 사용 가능한지 확인 + bool canUseFeature(String featureName) { + if (_currentSubscription == null || !_currentSubscription!.isActive) { + return false; + } + + // 기능별 접근 권한 확인 로직 + switch (featureName) { + case 'advancedStats': + return _getSubscriptionPlan(_currentSubscription!.planType).hasAdvancedStats; + case 'customization': + return _getSubscriptionPlan(_currentSubscription!.planType).hasCustomization; + case 'prioritySupport': + return _getSubscriptionPlan(_currentSubscription!.planType).hasPriority; + default: + return false; + } + } + + /// 현재 구독으로 추가 가능한 최대 회원 수 확인 + int getMaxMembers() { + if (_currentSubscription == null || !_currentSubscription!.isActive) { + return SubscriptionPlan.getDefaultPlans().first.maxMembers; // 무료 플랜 + } + return _getSubscriptionPlan(_currentSubscription!.planType).maxMembers; + } + + /// 현재 구독으로 추가 가능한 최대 이벤트 수 확인 + int getMaxEvents() { + if (_currentSubscription == null || !_currentSubscription!.isActive) { + return SubscriptionPlan.getDefaultPlans().first.maxEvents; // 무료 플랜 + } + return _getSubscriptionPlan(_currentSubscription!.planType).maxEvents; + } + + /// 구독 플랜 타입에 해당하는 플랜 정보 가져오기 + SubscriptionPlan _getSubscriptionPlan(SubscriptionPlanType planType) { + return _availablePlans.firstWhere( + (plan) => plan.type == planType, + orElse: () => SubscriptionPlan.getDefaultPlans().first, + ); + } +} diff --git a/mobile/lib/utils/enum_mappings.dart b/mobile/lib/utils/enum_mappings.dart new file mode 100644 index 0000000..7fd23ca --- /dev/null +++ b/mobile/lib/utils/enum_mappings.dart @@ -0,0 +1,110 @@ +// 역할 옵션 +const Map roleOptions = { + 'admin': '관리자', + 'clubadmin': '클럽 관리자', + 'user': '일반 사용자', +}; + +// 성별 옵션 +const Map genderOptions = { + 'male': '남성', + 'female': '여성', +}; + +// 회원 유형 옵션 +const Map memberTypeOptions = { + 'regular': '정회원', + 'associate': '준회원', + 'guest': '게스트', + 'manager': '운영진', + 'owner': '모임장', +}; + +// 상태 옵션 +const Map statusOptions = { + 'active': '활성', + 'inactive': '비활성', + 'suspended': '정지', + 'deleted': '삭제', +}; + +// 참가자 상태 옵션 +const Map participantStatusOptions = { + 'pending': '참가예정', + 'confirmed': '참가확정', + 'canceled': '취소', +}; + +// 이벤트 상태 옵션 +const Map eventStatusOptions = { + 'ready': '준비', + 'active': '활성', + 'completed': '완료', + 'canceled': '취소', + 'deleted': '삭제', +}; + +// 이벤트 유형 옵션 +const Map eventTypeOptions = { + 'regular': '정기전', + 'exchange': '교류전', + 'tournament': '토너먼트', + 'lightning': '번개', + 'friendly': '친선전', + 'other': '기타', +}; + +// 결제 상태 옵션 +const Map paymentStatusOptions = { + 'unpaid': '미납', + 'paid': '납부완료', +}; + +// 평균 산정 기준 옵션 +const Map averageCalculationPeriodOptions = { + 'total': '전체', + '1year': '최근 1년', + '6month': '최근 6개월', + '3month': '최근 3개월', + 'firsthalf': '상반기', + 'secondhalf': '하반기', + 'quarterly': '분기별', +}; + +// 회원 유형 레이블 가져오기 +String getMemberTypeLabel(String? memberType) { + if (memberType == null) return '일반 회원'; + return memberTypeOptions[memberType] ?? memberType; +} + +// 역할 레이블 가져오기 +String getRoleLabel(String? role) { + if (role == null) return '일반 사용자'; + return roleOptions[role] ?? role; +} + +// 성별 레이블 가져오기 +String getGenderLabel(String? gender) { + if (gender == null) return '정보 없음'; + return genderOptions[gender] ?? gender; +} + +// 상태 레이블 가져오기 +String getStatusLabel(String? status) { + if (status == null) return '정보 없음'; + return statusOptions[status] ?? status; +} + +// 이벤트 상태 레이블 가져오기 +String getEventStatusLabel(String? status) { + if (status == null) return '정보 없음'; + return eventStatusOptions[status] ?? status; +} + +// 이벤트 유형 레이블 가져오기 +String getEventTypeLabel(String? type) { + if (type == null) return '기타'; + return eventTypeOptions[type] ?? type; +} + + diff --git a/mobile/lib/widgets/subscription_alert_widget.dart b/mobile/lib/widgets/subscription_alert_widget.dart new file mode 100644 index 0000000..915e0dd --- /dev/null +++ b/mobile/lib/widgets/subscription_alert_widget.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../services/subscription_notification_service.dart'; +import '../services/subscription_service.dart'; + +/// 구독 알림 위젯 +class SubscriptionAlertWidget extends StatelessWidget { + const SubscriptionAlertWidget({super.key}); + + @override + Widget build(BuildContext context) { + // 구독 알림 서비스 가져오기 + final notificationService = Provider.of( + context, + listen: true, + ); + + // 구독 서비스 가져오기 + final subscriptionService = Provider.of( + context, + listen: false, + ); + + // 알림 메시지 가져오기 + final message = notificationService.getNotificationMessage(); + + // 알림이 없으면 빈 컨테이너 반환 + if (message == null) { + return const SizedBox.shrink(); + } + + // 알림 배너 표시 + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + color: notificationService.hasExpired + ? Colors.red.shade100 + : Colors.orange.shade100, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + notificationService.hasExpired + ? Icons.error_outline + : Icons.warning_amber_outlined, + color: notificationService.hasExpired + ? Colors.red.shade700 + : Colors.orange.shade700, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + message, + style: TextStyle( + color: notificationService.hasExpired + ? Colors.red.shade700 + : Colors.orange.shade700, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + const SizedBox(height: 8), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + TextButton( + onPressed: () { + // 구독 화면으로 이동 + Navigator.of(context).pushNamed('/subscription'); + }, + style: TextButton.styleFrom( + backgroundColor: notificationService.hasExpired + ? Colors.red.shade700 + : Colors.orange.shade700, + foregroundColor: Colors.white, + ), + child: const Text('구독 갱신하기'), + ), + ], + ), + ], + ), + ); + } +} diff --git a/mobile/linux/.gitignore b/mobile/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/mobile/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/mobile/linux/CMakeLists.txt b/mobile/linux/CMakeLists.txt new file mode 100644 index 0000000..9a39eb1 --- /dev/null +++ b/mobile/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 "mobile") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.mobile") + +# 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/mobile/linux/flutter/CMakeLists.txt b/mobile/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/mobile/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/mobile/linux/flutter/generated_plugin_registrant.cc b/mobile/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..d0e7f79 --- /dev/null +++ b/mobile/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); +} diff --git a/mobile/linux/flutter/generated_plugin_registrant.h b/mobile/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/mobile/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/mobile/linux/flutter/generated_plugins.cmake b/mobile/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..b29e9ba --- /dev/null +++ b/mobile/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_linux +) + +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/mobile/linux/runner/CMakeLists.txt b/mobile/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/mobile/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/mobile/linux/runner/main.cc b/mobile/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/mobile/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/mobile/linux/runner/my_application.cc b/mobile/linux/runner/my_application.cc new file mode 100644 index 0000000..8c77818 --- /dev/null +++ b/mobile/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, "mobile"); + 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, "mobile"); + } + + 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/mobile/linux/runner/my_application.h b/mobile/linux/runner/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/mobile/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/mobile/macos/.gitignore b/mobile/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/mobile/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/mobile/macos/Flutter/Flutter-Debug.xcconfig b/mobile/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..4b81f9b --- /dev/null +++ b/mobile/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/mobile/macos/Flutter/Flutter-Release.xcconfig b/mobile/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5caa9d1 --- /dev/null +++ b/mobile/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/mobile/macos/Flutter/GeneratedPluginRegistrant.swift b/mobile/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..edb8097 --- /dev/null +++ b/mobile/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,18 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import flutter_secure_storage_macos +import in_app_purchase_storekit +import path_provider_foundation +import shared_preferences_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + InAppPurchasePlugin.register(with: registry.registrar(forPlugin: "InAppPurchasePlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) +} diff --git a/mobile/macos/Podfile b/mobile/macos/Podfile new file mode 100644 index 0000000..29c8eb3 --- /dev/null +++ b/mobile/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.14' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/mobile/macos/Runner.xcodeproj/project.pbxproj b/mobile/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..25a9d2c --- /dev/null +++ b/mobile/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 /* mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "mobile.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 /* mobile.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 /* mobile.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.mobile.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile"; + }; + 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.mobile.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile"; + }; + 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.mobile.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile"; + }; + 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/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/mobile/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..09d4458 --- /dev/null +++ b/mobile/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata b/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/mobile/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/mobile/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/mobile/macos/Runner/AppDelegate.swift b/mobile/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/mobile/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/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/mobile/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/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/mobile/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/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/mobile/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/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/mobile/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/mobile/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/mobile/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/mobile/macos/Runner/Configs/AppInfo.xcconfig b/mobile/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..ebe2895 --- /dev/null +++ b/mobile/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 = mobile + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. diff --git a/mobile/macos/Runner/Configs/Debug.xcconfig b/mobile/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/mobile/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/mobile/macos/Runner/Configs/Release.xcconfig b/mobile/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/mobile/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/mobile/macos/Runner/Configs/Warnings.xcconfig b/mobile/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/mobile/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/mobile/macos/Runner/DebugProfile.entitlements b/mobile/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/mobile/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/mobile/macos/Runner/Info.plist b/mobile/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/mobile/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/mobile/macos/Runner/MainFlutterWindow.swift b/mobile/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/mobile/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/mobile/macos/Runner/Release.entitlements b/mobile/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/mobile/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/mobile/macos/RunnerTests/RunnerTests.swift b/mobile/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/mobile/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/mobile/pubspec.lock b/mobile/pubspec.lock new file mode 100644 index 0000000..e988b03 --- /dev/null +++ b/mobile/pubspec.lock @@ -0,0 +1,671 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + 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: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + url: "https://pub.dev" + source: hosted + version: "2.13.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: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + 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" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + cookie_jar: + dependency: "direct main" + description: + name: cookie_jar + sha256: a6ac027d3ed6ed756bfce8f3ff60cb479e266f3b0fdabd6242b804b6765e52de + url: "https://pub.dev" + source: hosted + version: "4.0.8" + 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" + dio: + dependency: "direct main" + description: + name: dio + sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + url: "https://pub.dev" + source: hosted + version: "5.8.0+1" + dio_cookie_manager: + dependency: "direct main" + description: + name: dio_cookie_manager + sha256: "47cacbf6a783c263bfa7cd7d08101e93127d87760ddb003ba289162f7be0f679" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + 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: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + fl_chart: + dependency: "direct main" + description: + name: fl_chart + sha256: "577aeac8ca414c25333334d7c4bb246775234c0e44b38b10a82b559dd4d764e7" + url: "https://pub.dev" + source: hosted + version: "1.0.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: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" + 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_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + 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: + dependency: "direct main" + description: + name: http + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + url: "https://pub.dev" + source: hosted + version: "1.4.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" + in_app_purchase: + dependency: "direct main" + description: + name: in_app_purchase + sha256: "960f26a08d9351fb8f89f08901f8a829d41b04d45a694b8f776121d9e41dcad6" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + in_app_purchase_android: + dependency: "direct main" + description: + name: in_app_purchase_android + sha256: b7cc194f183a97d71e6da1edb4a4095466ca0c22533615ecad021bdf95a5ecdc + url: "https://pub.dev" + source: hosted + version: "0.3.6+13" + in_app_purchase_platform_interface: + dependency: transitive + description: + name: in_app_purchase_platform_interface + sha256: "1d353d38251da5b9fea6635c0ebfc6bb17a2d28d0e86ea5e083bf64244f1fb4c" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + in_app_purchase_storekit: + dependency: "direct main" + description: + name: in_app_purchase_storekit + sha256: "6ce1361278cacc0481508989ba419b2c9f46a2b0dc54b3fe54f5ee63c2718fef" + url: "https://pub.dev" + source: hosted + version: "0.3.22+1" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + url: "https://pub.dev" + source: hosted + version: "0.20.2" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + 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: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + url: "https://pub.dev" + source: hosted + version: "10.0.9" + 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" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 + url: "https://pub.dev" + source: hosted + version: "2.2.17" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" + provider: + dependency: "direct main" + description: + name: provider + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" + url: "https://pub.dev" + source: hosted + version: "6.1.5" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + url: "https://pub.dev" + source: hosted + version: "2.4.10" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + 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" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + 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: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + url: "https://pub.dev" + source: hosted + version: "15.0.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" + url: "https://pub.dev" + source: hosted + version: "5.14.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + 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.8.1 <4.0.0" + flutter: ">=3.27.4" diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml new file mode 100644 index 0000000..388461a --- /dev/null +++ b/mobile/pubspec.yaml @@ -0,0 +1,123 @@ +name: lanebow +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.8.1 + +# 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 + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.8 + + # HTTP 요청을 위한 패키지 + http: ^1.2.0 + + # 로컬 저장소 관련 패키지 + shared_preferences: ^2.2.2 + flutter_secure_storage: ^9.0.0 + + # 상태 관리 패키지 + provider: ^6.1.1 + + # 다국어 및 날짜 형식 지원 + intl: ^0.20.2 + fl_chart: ^1.0.0 + + # 인앱 결제 관련 패키지 + in_app_purchase: ^3.1.11 + in_app_purchase_storekit: ^0.3.7+1 + in_app_purchase_android: ^0.3.0+15 + dio: ^5.8.0+1 + dio_cookie_manager: ^3.2.0 + cookie_jar: ^4.0.8 + +dev_dependencies: + flutter_test: + sdk: flutter + + # 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 + + # 앱 아이콘 생성 패키지 + flutter_launcher_icons: ^0.13.1 + +# 앱 아이콘 설정 +flutter_launcher_icons: + android: true + ios: true + image_path: "assets/icons/app_icon.png" + adaptive_icon_background: "#FFFFFF" + adaptive_icon_foreground: "assets/icons/app_icon.png" + +# 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: + - assets/images/ + + # 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/mobile/test/widget_test.dart b/mobile/test/widget_test.dart new file mode 100644 index 0000000..a6b7d51 --- /dev/null +++ b/mobile/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:mobile/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/mobile/web/favicon.png b/mobile/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/mobile/web/icons/Icon-192.png b/mobile/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/mobile/web/icons/Icon-512.png b/mobile/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 zcmd5=2T+s!lYZ%-(h(2@5fr2dC?F^$C=i-}R6$UX8af(!je;W5yC_|HmujSgN*6?W z3knF*TL1$|?oD*=zPbBVex*RUIKsL<(&Rj9%^UD2IK3W?2j>D?eWQgvS-HLymHo9%~|N2Q{~j za?*X-{b9JRowv_*Mh|;*-kPFn>PI;r<#kFaxFqbn?aq|PduQg=2Q;~Qc}#z)_T%x9 zE|0!a70`58wjREmAH38H1)#gof)U3g9FZ^ zF7&-0^Hy{4XHWLoC*hOG(dg~2g6&?-wqcpf{ z&3=o8vw7lMi22jCG9RQbv8H}`+}9^zSk`nlR8?Z&G2dlDy$4#+WOlg;VHqzuE=fM@ z?OI6HEJH4&tA?FVG}9>jAnq_^tlw8NbjNhfqk2rQr?h(F&WiKy03Sn=-;ZJRh~JrD zbt)zLbnabttEZ>zUiu`N*u4sfQaLE8-WDn@tHp50uD(^r-}UsUUu)`!Rl1PozAc!a z?uj|2QDQ%oV-jxUJmJycySBINSKdX{kDYRS=+`HgR2GO19fg&lZKyBFbbXhQV~v~L za^U944F1_GtuFXtvDdDNDvp<`fqy);>Vw=ncy!NB85Tw{&sT5&Ox%-p%8fTS;OzlRBwErvO+ROe?{%q-Zge=%Up|D4L#>4K@Ke=x%?*^_^P*KD zgXueMiS63!sEw@fNLB-i^F|@Oib+S4bcy{eu&e}Xvb^(mA!=U=Xr3||IpV~3K zQWzEsUeX_qBe6fky#M zzOJm5b+l;~>=sdp%i}}0h zO?B?i*W;Ndn02Y0GUUPxERG`3Bjtj!NroLoYtyVdLtl?SE*CYpf4|_${ku2s`*_)k zN=a}V8_2R5QANlxsq!1BkT6$4>9=-Ix4As@FSS;1q^#TXPrBsw>hJ}$jZ{kUHoP+H zvoYiR39gX}2OHIBYCa~6ERRPJ#V}RIIZakUmuIoLF*{sO8rAUEB9|+A#C|@kw5>u0 zBd=F!4I)Be8ycH*)X1-VPiZ+Ts8_GB;YW&ZFFUo|Sw|x~ZajLsp+_3gv((Q#N>?Jz zFBf`~p_#^${zhPIIJY~yo!7$-xi2LK%3&RkFg}Ax)3+dFCjGgKv^1;lUzQlPo^E{K zmCnrwJ)NuSaJEmueEPO@(_6h3f5mFffhkU9r8A8(JC5eOkux{gPmx_$Uv&|hyj)gN zd>JP8l2U&81@1Hc>#*su2xd{)T`Yw< zN$dSLUN}dfx)Fu`NcY}TuZ)SdviT{JHaiYgP4~@`x{&h*Hd>c3K_To9BnQi@;tuoL z%PYQo&{|IsM)_>BrF1oB~+`2_uZQ48z9!)mtUR zdfKE+b*w8cPu;F6RYJiYyV;PRBbThqHBEu_(U{(gGtjM}Zi$pL8Whx}<JwE3RM0F8x7%!!s)UJVq|TVd#hf1zVLya$;mYp(^oZQ2>=ZXU1c$}f zm|7kfk>=4KoQoQ!2&SOW5|JP1)%#55C$M(u4%SP~tHa&M+=;YsW=v(Old9L3(j)`u z2?#fK&1vtS?G6aOt@E`gZ9*qCmyvc>Ma@Q8^I4y~f3gs7*d=ATlP>1S zyF=k&6p2;7dn^8?+!wZO5r~B+;@KXFEn^&C=6ma1J7Au6y29iMIxd7#iW%=iUzq&C=$aPLa^Q zncia$@TIy6UT@69=nbty5epP>*fVW@5qbUcb2~Gg75dNd{COFLdiz3}kODn^U*=@E z0*$7u7Rl2u)=%fk4m8EK1ctR!6%Ve`e!O20L$0LkM#f+)n9h^dn{n`T*^~d+l*Qlx z$;JC0P9+en2Wlxjwq#z^a6pdnD6fJM!GV7_%8%c)kc5LZs_G^qvw)&J#6WSp< zmsd~1-(GrgjC56Pdf6#!dt^y8Rg}!#UXf)W%~PeU+kU`FeSZHk)%sFv++#Dujk-~m zFHvVJC}UBn2jN& zs!@nZ?e(iyZPNo`p1i#~wsv9l@#Z|ag3JR>0#u1iW9M1RK1iF6-RbJ4KYg?B`dET9 zyR~DjZ>%_vWYm*Z9_+^~hJ_|SNTzBKx=U0l9 z9x(J96b{`R)UVQ$I`wTJ@$_}`)_DyUNOso6=WOmQKI1e`oyYy1C&%AQU<0-`(ow)1 zT}gYdwWdm4wW6|K)LcfMe&psE0XGhMy&xS`@vLi|1#Za{D6l@#D!?nW87wcscUZgELT{Cz**^;Zb~7 z(~WFRO`~!WvyZAW-8v!6n&j*PLm9NlN}BuUN}@E^TX*4Or#dMMF?V9KBeLSiLO4?B zcE3WNIa-H{ThrlCoN=XjOGk1dT=xwwrmt<1a)mrRzg{35`@C!T?&_;Q4Ce=5=>z^*zE_c(0*vWo2_#TD<2)pLXV$FlwP}Ik74IdDQU@yhkCr5h zn5aa>B7PWy5NQ!vf7@p_qtC*{dZ8zLS;JetPkHi>IvPjtJ#ThGQD|Lq#@vE2xdl%`x4A8xOln}BiQ92Po zW;0%A?I5CQ_O`@Ad=`2BLPPbBuPUp@Hb%a_OOI}y{Rwa<#h z5^6M}s7VzE)2&I*33pA>e71d78QpF>sNK;?lj^Kl#wU7G++`N_oL4QPd-iPqBhhs| z(uVM}$ItF-onXuuXO}o$t)emBO3Hjfyil@*+GF;9j?`&67GBM;TGkLHi>@)rkS4Nj zAEk;u)`jc4C$qN6WV2dVd#q}2X6nKt&X*}I@jP%Srs%%DS92lpDY^K*Sx4`l;aql$ zt*-V{U&$DM>pdO?%jt$t=vg5|p+Rw?SPaLW zB6nvZ69$ne4Z(s$3=Rf&RX8L9PWMV*S0@R zuIk&ba#s6sxVZ51^4Kon46X^9`?DC9mEhWB3f+o4#2EXFqy0(UTc>GU| zGCJmI|Dn-dX#7|_6(fT)>&YQ0H&&JX3cTvAq(a@ydM4>5Njnuere{J8p;3?1az60* z$1E7Yyxt^ytULeokgDnRVKQw9vzHg1>X@@jM$n$HBlveIrKP5-GJq%iWH#odVwV6cF^kKX(@#%%uQVb>#T6L^mC@)%SMd4DF? zVky!~ge27>cpUP1Vi}Z32lbLV+CQy+T5Wdmva6Fg^lKb!zrg|HPU=5Qu}k;4GVH+x z%;&pN1LOce0w@9i1Mo-Y|7|z}fbch@BPp2{&R-5{GLoeu8@limQmFF zaJRR|^;kW_nw~0V^ zfTnR!Ni*;-%oSHG1yItARs~uxra|O?YJxBzLjpeE-=~TO3Dn`JL5Gz;F~O1u3|FE- zvK2Vve`ylc`a}G`gpHg58Cqc9fMoy1L}7x7T>%~b&irrNMo?np3`q;d3d;zTK>nrK zOjPS{@&74-fA7j)8uT9~*g23uGnxwIVj9HorzUX#s0pcp2?GH6i}~+kv9fWChtPa_ z@T3m+$0pbjdQw7jcnHn;Pi85hk_u2-1^}c)LNvjdam8K-XJ+KgKQ%!?2n_!#{$H|| zLO=%;hRo6EDmnOBKCL9Cg~ETU##@u^W_5joZ%Et%X_n##%JDOcsO=0VL|Lkk!VdRJ z^|~2pB@PUspT?NOeO?=0Vb+fAGc!j%Ufn-cB`s2A~W{Zj{`wqWq_-w0wr@6VrM zbzni@8c>WS!7c&|ZR$cQ;`niRw{4kG#e z70e!uX8VmP23SuJ*)#(&R=;SxGAvq|&>geL&!5Z7@0Z(No*W561n#u$Uc`f9pD70# z=sKOSK|bF~#khTTn)B28h^a1{;>EaRnHj~>i=Fnr3+Fa4 z`^+O5_itS#7kPd20rq66_wH`%?HNzWk@XFK0n;Z@Cx{kx==2L22zWH$Yg?7 zvDj|u{{+NR3JvUH({;b*$b(U5U z7(lF!1bz2%06+|-v(D?2KgwNw7( zJB#Tz+ZRi&U$i?f34m7>uTzO#+E5cbaiQ&L}UxyOQq~afbNB4EI{E04ZWg53w0A{O%qo=lF8d zf~ktGvIgf-a~zQoWf>loF7pOodrd0a2|BzwwPDV}ShauTK8*fmF6NRbO>Iw9zZU}u zw8Ya}?seBnEGQDmH#XpUUkj}N49tP<2jYwTFp!P+&Fd(%Z#yo80|5@zN(D{_pNow*&4%ql zW~&yp@scb-+Qj-EmErY+Tu=dUmf@*BoXY2&oKT8U?8?s1d}4a`Aq>7SV800m$FE~? zjmz(LY+Xx9sDX$;vU`xgw*jLw7dWOnWWCO8o|;}f>cu0Q&`0I{YudMn;P;L3R-uz# zfns_mZED_IakFBPP2r_S8XM$X)@O-xVKi4`7373Jkd5{2$M#%cRhWer3M(vr{S6>h zj{givZJ3(`yFL@``(afn&~iNx@B1|-qfYiZu?-_&Z8+R~v`d6R-}EX9IVXWO-!hL5 z*k6T#^2zAXdardU3Ao~I)4DGdAv2bx{4nOK`20rJo>rmk3S2ZDu}))8Z1m}CKigf0 z3L`3Y`{huj`xj9@`$xTZzZc3je?n^yG<8sw$`Y%}9mUsjUR%T!?k^(q)6FH6Af^b6 zlPg~IEwg0y;`t9y;#D+uz!oE4VP&Je!<#q*F?m5L5?J3i@!0J6q#eu z!RRU`-)HeqGi_UJZ(n~|PSNsv+Wgl{P-TvaUQ9j?ZCtvb^37U$sFpBrkT{7Jpd?HpIvj2!}RIq zH{9~+gErN2+}J`>Jvng2hwM`=PLNkc7pkjblKW|+Fk9rc)G1R>Ww>RC=r-|!m-u7( zc(a$9NG}w#PjWNMS~)o=i~WA&4L(YIW25@AL9+H9!?3Y}sv#MOdY{bb9j>p`{?O(P zIvb`n?_(gP2w3P#&91JX*md+bBEr%xUHMVqfB;(f?OPtMnAZ#rm5q5mh;a2f_si2_ z3oXWB?{NF(JtkAn6F(O{z@b76OIqMC$&oJ_&S|YbFJ*)3qVX_uNf5b8(!vGX19hsG z(OP>RmZp29KH9Ge2kKjKigUmOe^K_!UXP`von)PR8Qz$%=EmOB9xS(ZxE_tnyzo}7 z=6~$~9k0M~v}`w={AeqF?_)9q{m8K#6M{a&(;u;O41j)I$^T?lx5(zlebpY@NT&#N zR+1bB)-1-xj}R8uwqwf=iP1GbxBjneCC%UrSdSxK1vM^i9;bUkS#iRZw2H>rS<2<$ zNT3|sDH>{tXb=zq7XZi*K?#Zsa1h1{h5!Tq_YbKFm_*=A5-<~j63he;4`77!|LBlo zR^~tR3yxcU=gDFbshyF6>o0bdp$qmHS7D}m3;^QZq9kBBU|9$N-~oU?G5;jyFR7>z hN`IR97YZXIo@y!QgFWddJ3|0`sjFx!m))><{BI=FK%f8s literal 0 HcmV?d00001 diff --git a/mobile/web/icons/Icon-maskable-192.png b/mobile/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/mobile/web/icons/Icon-maskable-512.png b/mobile/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/mobile/web/index.html b/mobile/web/index.html new file mode 100644 index 0000000..44689e6 --- /dev/null +++ b/mobile/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + mobile + + + + + + diff --git a/mobile/web/manifest.json b/mobile/web/manifest.json new file mode 100644 index 0000000..9dc3ff2 --- /dev/null +++ b/mobile/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "mobile", + "short_name": "mobile", + "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/mobile/windows/.gitignore b/mobile/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/mobile/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/mobile/windows/CMakeLists.txt b/mobile/windows/CMakeLists.txt new file mode 100644 index 0000000..eb19942 --- /dev/null +++ b/mobile/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(mobile 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 "mobile") + +# 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/mobile/windows/flutter/CMakeLists.txt b/mobile/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/mobile/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/mobile/windows/flutter/generated_plugin_registrant.cc b/mobile/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..0c50753 --- /dev/null +++ b/mobile/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); +} diff --git a/mobile/windows/flutter/generated_plugin_registrant.h b/mobile/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/mobile/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/mobile/windows/flutter/generated_plugins.cmake b/mobile/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..4fc759c --- /dev/null +++ b/mobile/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_windows +) + +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/mobile/windows/runner/CMakeLists.txt b/mobile/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/mobile/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/mobile/windows/runner/Runner.rc b/mobile/windows/runner/Runner.rc new file mode 100644 index 0000000..388ee67 --- /dev/null +++ b/mobile/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", "mobile" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "mobile" "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "mobile.exe" "\0" + VALUE "ProductName", "mobile" "\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/mobile/windows/runner/flutter_window.cpp b/mobile/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/mobile/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/mobile/windows/runner/flutter_window.h b/mobile/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/mobile/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/mobile/windows/runner/main.cpp b/mobile/windows/runner/main.cpp new file mode 100644 index 0000000..dbb4717 --- /dev/null +++ b/mobile/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"mobile", 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/mobile/windows/runner/resource.h b/mobile/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/mobile/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/mobile/windows/runner/resources/app_icon.ico b/mobile/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/mobile/windows/runner/runner.exe.manifest b/mobile/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..153653e --- /dev/null +++ b/mobile/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/mobile/windows/runner/utils.cpp b/mobile/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/mobile/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/mobile/windows/runner/utils.h b/mobile/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/mobile/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/mobile/windows/runner/win32_window.cpp b/mobile/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/mobile/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/mobile/windows/runner/win32_window.h b/mobile/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/mobile/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_