From 28548b97fd9e212698c65522ce18c16ff54227fc Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Fri, 19 Jul 2024 20:36:26 +0900 Subject: [PATCH 01/54] =?UTF-8?q?Feat=20:=20=EB=A9=94=EC=9D=B8=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80,=20=EC=83=81=ED=92=88=20=EC=9C=84=EC=A0=AF?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/MoneyCharacter.png | Bin 0 -> 8742 bytes assets/images/SaphyLogoSmall.png | Bin 0 -> 1997 bytes ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Podfile | 44 +++ ios/Podfile.lock | 30 ++ ios/Runner.xcodeproj/project.pbxproj | 112 ++++++++ .../contents.xcworkspacedata | 3 + lib/models/product.dart | 33 +++ lib/screens/main/main_screen.dart | 171 ++++++++++++ .../screens/products/item_list_page.dart | 0 lib/widgets/product_card.dart | 65 +++++ macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 4 + macos/Podfile | 43 +++ macos/Podfile.lock | 30 ++ macos/Runner.xcodeproj/project.pbxproj | 98 ++++++- .../contents.xcworkspacedata | 3 + pubspec.lock | 259 +++++++++++++++++- pubspec.yaml | 12 +- 21 files changed, 892 insertions(+), 19 deletions(-) create mode 100644 assets/images/MoneyCharacter.png create mode 100644 assets/images/SaphyLogoSmall.png create mode 100644 ios/Podfile create mode 100644 ios/Podfile.lock create mode 100644 lib/models/product.dart create mode 100644 lib/screens/main/main_screen.dart rename assets/images/example => lib/screens/products/item_list_page.dart (100%) create mode 100644 lib/widgets/product_card.dart create mode 100644 macos/Podfile create mode 100644 macos/Podfile.lock diff --git a/assets/images/MoneyCharacter.png b/assets/images/MoneyCharacter.png new file mode 100644 index 0000000000000000000000000000000000000000..8634f5e6ff3d6171afbe18a4a16b0449aef2deb3 GIT binary patch literal 8742 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 :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 0000000..e2deba1 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,30 @@ +PODS: + - Flutter (1.0.0) + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sqflite (0.0.3): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - Flutter (from `Flutter`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - sqflite (from `.symlinks/plugins/sqflite/darwin`) + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + sqflite: + :path: ".symlinks/plugins/sqflite/darwin" + +SPEC CHECKSUMS: + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + +PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 + +COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2307d2d..2d2e5c3 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -11,9 +11,11 @@ 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 */; }; + 7FB3B7BD9D40CC1535B53CE3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED47CDADF35DDF2917118420 /* Pods_Runner.framework */; }; 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 */; }; + F34DA3CEE939750A78D673A7 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -42,12 +44,16 @@ /* 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 = ""; }; + 2F64C424BCE44A172F5C6C7D /* 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 = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 6996E6DF9FDB50843367DD99 /* 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 = ""; }; + 6FFC56BBAE9D0A605150B554 /* 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 = ""; }; 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 = ""; }; + 827B61BB0A7992F08D3FEC96 /* 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 = ""; }; 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; }; @@ -55,6 +61,10 @@ 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 = ""; }; + 9F5D9EE7BF0AA0F4C2856FB1 /* 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 = ""; }; + B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + ED47CDADF35DDF2917118420 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F385D0267B32F3FCCC9B5924 /* 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 */ @@ -62,12 +72,44 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 7FB3B7BD9D40CC1535B53CE3 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B7A7E8C78806856FBEC5ACB8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F34DA3CEE939750A78D673A7 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 276443D08B1BC39FC9EE5C4D /* Pods */ = { + isa = PBXGroup; + children = ( + 6996E6DF9FDB50843367DD99 /* Pods-Runner.debug.xcconfig */, + 9F5D9EE7BF0AA0F4C2856FB1 /* Pods-Runner.release.xcconfig */, + F385D0267B32F3FCCC9B5924 /* Pods-Runner.profile.xcconfig */, + 827B61BB0A7992F08D3FEC96 /* Pods-RunnerTests.debug.xcconfig */, + 6FFC56BBAE9D0A605150B554 /* Pods-RunnerTests.release.xcconfig */, + 2F64C424BCE44A172F5C6C7D /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 2DF5DA58C0B38C2ADF87C876 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED47CDADF35DDF2917118420 /* Pods_Runner.framework */, + B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 331C8082294A63A400263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( @@ -94,6 +136,8 @@ 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, + 276443D08B1BC39FC9EE5C4D /* Pods */, + 2DF5DA58C0B38C2ADF87C876 /* Frameworks */, ); sourceTree = ""; }; @@ -128,8 +172,10 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 0DA408F132D21DA091081D87 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, + B7A7E8C78806856FBEC5ACB8 /* Frameworks */, ); buildRules = ( ); @@ -145,12 +191,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + A6D51F9854721CFEA579161B /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + D4FE79309F0FAAD60E7E3E0D /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -222,6 +270,28 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 0DA408F132D21DA091081D87 /* [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; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -253,6 +323,45 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + A6D51F9854721CFEA579161B /* [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; + }; + D4FE79309F0FAAD60E7E3E0D /* [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; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -379,6 +488,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 827B61BB0A7992F08D3FEC96 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -396,6 +506,7 @@ }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6FFC56BBAE9D0A605150B554 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -411,6 +522,7 @@ }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 2F64C424BCE44A172F5C6C7D /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/lib/models/product.dart b/lib/models/product.dart new file mode 100644 index 0000000..3c68a29 --- /dev/null +++ b/lib/models/product.dart @@ -0,0 +1,33 @@ +class Product { + int? productNo; + String? productBrand; + String? productName; + String? productImageUrl; + double? price; + + Product({ + this.productNo, + this.productBrand, + this.productName, + this.productImageUrl, + this.price, + }); + + Product.fromJson(Map json) { + productNo = int.parse(json['productNo']); + productBrand = json['productBrand']; + productName = json['productName']; + productImageUrl = json['productImageUrl']; + price = double.parse(json['price']); + } + + Map toJson() { + final Map data = {}; + data['productNo'] = productNo; + data['productBrand'] = productBrand; + data['productName'] = productName; + data['productImageUrl'] = productImageUrl; + data['price'] = price; + return data; + } +} diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart new file mode 100644 index 0000000..2c80383 --- /dev/null +++ b/lib/screens/main/main_screen.dart @@ -0,0 +1,171 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/material.dart'; +// import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:intl/intl.dart'; +import 'package:saphy/models/product.dart'; +import 'package:saphy/widgets/product_card.dart'; + +void main() { + // async { + // await dotenv.load(fileName: 'assets/config/.env'); + runApp(const HomePage()); +} + +class HomePage extends StatefulWidget { + const HomePage({super.key}); + + @override + State createState() => _HomePageState(); +} + +class _HomePageState extends State { + final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + List productList = [ + // 그냥 구현용 샘플 데이터 + Product( + productNo: 1, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 2, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 3, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 4, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 5, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 6, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + ]; + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: "Saphy", + debugShowCheckedModeBanner: false, + home: Scaffold( + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + title: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: Image.asset( + "assets/images/SaphyLogoSmall.png", + height: 24, + ), + ), + centerTitle: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.notifications_outlined), + onPressed: () {}, + ), + ), + ]), + body: CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Container( + height: 280, + decoration: const BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", + ), + fit: BoxFit.cover), + ), + ), + ), + const SliverToBoxAdapter( + child: SizedBox( + height: 20, + ), + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Container( + height: 100, + decoration: BoxDecoration( + color: const Color(0xffDFE1E6), + borderRadius: BorderRadius.circular(30)), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 30.0, + vertical: 20.0, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "중고기기를 안전하게 구매하는 방법", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + ), + ), + Text( + "사피 초대하고 지원금 받기", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 25, + fontWeight: FontWeight.bold), + ), + ], + ), + ), + ), + ), + ), + SliverPadding( + sliver: SliverGrid( + delegate: SliverChildBuilderDelegate( + (context, index) { + return productCard( + productBrand: productList[index].productBrand ?? "", + productName: productList[index].productName ?? "", + productImageUrl: + productList[index].productImageUrl ?? "", + price: productList[index].price ?? 0); + }, + childCount: productList.length, + ), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 15, + crossAxisSpacing: 15, + childAspectRatio: 0.84, + ), + ), + padding: const EdgeInsets.all(20.0), + ), + ], + ), + ), + ); + } +} diff --git a/assets/images/example b/lib/screens/products/item_list_page.dart similarity index 100% rename from assets/images/example rename to lib/screens/products/item_list_page.dart diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart new file mode 100644 index 0000000..061544f --- /dev/null +++ b/lib/widgets/product_card.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:intl/intl.dart'; + +Widget productCard({ + required String productBrand, + required String productName, + required String productImageUrl, + required double price, +}) { + final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + return Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, + ), + child: Column( + children: [ + Container( + height: 120, + width: 160, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + image: DecorationImage( + image: CachedNetworkImageProvider(productImageUrl), + fit: BoxFit.cover, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(top: 10.0, left: 10.0), + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text(productBrand, + style: const TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + )), + Text( + productName, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, + ), + ), + Text( + "${numberFormat.format(price)}원", + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 20, + ), + ), + ], + ), + ) + ], + ), + ); +} diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b..4b81f9b 100644 --- a/macos/Flutter/Flutter-Debug.xcconfig +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig index c2efd0b..5caa9d1 100644 --- a/macos/Flutter/Flutter-Release.xcconfig +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817..2bfe7e4 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,10 @@ import FlutterMacOS import Foundation +import path_provider_foundation +import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) } diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..c795730 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,43 @@ +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! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..328ee5d --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,30 @@ +PODS: + - FlutterMacOS (1.0.0) + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sqflite (0.0.3): + - Flutter + - FlutterMacOS + +DEPENDENCIES: + - FlutterMacOS (from `Flutter/ephemeral`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) + - sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/darwin`) + +EXTERNAL SOURCES: + FlutterMacOS: + :path: Flutter/ephemeral + path_provider_foundation: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin + sqflite: + :path: Flutter/ephemeral/.symlinks/plugins/sqflite/darwin + +SPEC CHECKSUMS: + FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + +PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 + +COCOAPODS: 1.15.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index fb46048..12dfb88 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -21,12 +21,14 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 043589E908286E642D9E6332 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B85ABCB344D39E06D1004293 /* Pods_RunnerTests.framework */; }; 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 */; }; + 64E3DFBBC46448563FC48F57 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C0C337EF4B9FA7E34FF08C5 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -60,11 +62,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0AA65E0F0A0B310085CE2274 /* 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 = ""; }; 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 /* saphy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "saphy.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* saphy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = saphy.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 = ""; }; @@ -76,8 +79,15 @@ 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 = ""; }; + 6AFB11439D0624EE619694A7 /* 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 = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 8C0C337EF4B9FA7E34FF08C5 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9457FFBAE2AB95B64BEDBC79 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + B85ABCB344D39E06D1004293 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BEAB1D8A954A783A8FEE8A33 /* 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 = ""; }; + F2A8DB27C9D99891F531CBCD /* 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 = ""; }; + FC7AC14C3BF81B25406FF251 /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -85,6 +95,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 043589E908286E642D9E6332 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -92,6 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 64E3DFBBC46448563FC48F57 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -125,6 +137,7 @@ 331C80D6294CF71000263BE5 /* RunnerTests */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + 9CB3E8706CA715407E0B67D1 /* Pods */, ); sourceTree = ""; }; @@ -172,9 +185,25 @@ path = Runner; sourceTree = ""; }; + 9CB3E8706CA715407E0B67D1 /* Pods */ = { + isa = PBXGroup; + children = ( + BEAB1D8A954A783A8FEE8A33 /* Pods-Runner.debug.xcconfig */, + 0AA65E0F0A0B310085CE2274 /* Pods-Runner.release.xcconfig */, + 9457FFBAE2AB95B64BEDBC79 /* Pods-Runner.profile.xcconfig */, + F2A8DB27C9D99891F531CBCD /* Pods-RunnerTests.debug.xcconfig */, + FC7AC14C3BF81B25406FF251 /* Pods-RunnerTests.release.xcconfig */, + 6AFB11439D0624EE619694A7 /* Pods-RunnerTests.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 8C0C337EF4B9FA7E34FF08C5 /* Pods_Runner.framework */, + B85ABCB344D39E06D1004293 /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -186,6 +215,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + E1D9CA57C2A0DB4E46A34177 /* [CP] Check Pods Manifest.lock */, 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, @@ -204,11 +234,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + E4E13C7D4E5A905082096EED /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + 50F1779DE679357FF1F0CED9 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -329,6 +361,67 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 50F1779DE679357FF1F0CED9 /* [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; + }; + E1D9CA57C2A0DB4E46A34177 /* [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; + }; + E4E13C7D4E5A905082096EED /* [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 */ @@ -380,6 +473,7 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = F2A8DB27C9D99891F531CBCD /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -394,6 +488,7 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = FC7AC14C3BF81B25406FF251 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -408,6 +503,7 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 6AFB11439D0624EE619694A7 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/pubspec.lock b/pubspec.lock index 9d2b988..30b4065 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -17,6 +17,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f" + url: "https://pub.dev" + source: hosted + version: "3.3.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7" + url: "https://pub.dev" + source: hosted + version: "1.2.0" characters: dependency: transitive description: @@ -41,6 +65,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.18.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" cupertino_icons: dependency: "direct main" description: @@ -57,11 +89,43 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "395d6b7831f21f3b989ebedbb785545932adb9afe2622c1ffacf7f4b53a7e544" + url: "https://pub.dev" + source: hosted + version: "3.3.2" flutter_dotenv: dependency: "direct main" description: @@ -83,30 +147,54 @@ packages: description: flutter source: sdk version: "0.0.0" + http: + dependency: transitive + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" lints: dependency: transitive description: @@ -135,10 +223,18 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "2.0.0" path: dependency: transitive description: @@ -147,6 +243,78 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e" + url: "https://pub.dev" + source: hosted + version: "2.2.7" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + url: "https://pub.dev" + source: hosted + version: "0.27.7" sky_engine: dependency: transitive description: flutter @@ -160,6 +328,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d + url: "https://pub.dev" + source: hosted + version: "2.3.3+1" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" + url: "https://pub.dev" + source: hosted + version: "2.5.4" stack_trace: dependency: transitive description: @@ -184,6 +376,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + url: "https://pub.dev" + source: hosted + version: "3.1.0+1" term_glyph: dependency: transitive description: @@ -196,10 +396,26 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + uuid: + dependency: transitive + description: + name: uuid + sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" + url: "https://pub.dev" + source: hosted + version: "4.4.2" vector_math: dependency: transitive description: @@ -212,9 +428,26 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" + source: hosted + version: "14.2.1" + web: + dependency: transitive + description: + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "1.0.4" sdks: - dart: ">=3.3.4 <4.0.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 5908d4a..9abe2bb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: saphy 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 +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 @@ -19,7 +19,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: '>=3.3.4 <4.0.0' + sdk: ">=3.3.4 <4.0.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -31,7 +31,8 @@ dependencies: flutter: sdk: flutter flutter_dotenv: ^5.1.0 - + intl: ^0.19.0 + cached_network_image: ^3.3.1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. @@ -53,7 +54,6 @@ dev_dependencies: # 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. @@ -61,7 +61,9 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - - assets/ + - assets/config/.env + - assets/images/SaphyLogoSmall.png + - assets/images/MoneyCharacter.png # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware From 39a595757ccfb6badef00d99a0b10f53b4861a73 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Sat, 20 Jul 2024 17:28:20 +0900 Subject: [PATCH 02/54] =?UTF-8?q?Feat=20:=20=ED=95=98=EB=8B=A8=20=EB=84=A4?= =?UTF-8?q?=EB=B9=84=EB=B0=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 178 +++++++++++++++--------------- lib/widgets/bottom_nav_bar.dart | 61 ++++++++++ pubspec.yaml | 2 +- 3 files changed, 152 insertions(+), 89 deletions(-) create mode 100644 lib/widgets/bottom_nav_bar.dart diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index 2c80383..cd08d43 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; // import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; +import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; void main() { @@ -66,106 +67,107 @@ class _HomePageState extends State { title: "Saphy", debugShowCheckedModeBanner: false, home: Scaffold( - backgroundColor: const Color(0xfff4f4f4), - appBar: AppBar( - title: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: Image.asset( - "assets/images/SaphyLogoSmall.png", - height: 24, - ), - ), - centerTitle: false, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 20.0), - child: IconButton( - icon: const Icon(Icons.notifications_outlined), - onPressed: () {}, + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + backgroundColor: Colors.white, + title: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: Image.asset( + "assets/images/SaphyLogoSmall.png", + height: 24, ), ), - ]), - body: CustomScrollView( - slivers: [ - SliverToBoxAdapter( - child: Container( - height: 280, - decoration: const BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider( - "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", - ), - fit: BoxFit.cover), + centerTitle: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.notifications_outlined), + onPressed: () {}, + ), ), - ), - ), - const SliverToBoxAdapter( - child: SizedBox( - height: 20, - ), - ), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), + ]), + body: CustomScrollView( + slivers: [ + SliverToBoxAdapter( child: Container( - height: 100, - decoration: BoxDecoration( - color: const Color(0xffDFE1E6), - borderRadius: BorderRadius.circular(30)), - child: const Padding( - padding: EdgeInsets.symmetric( - horizontal: 30.0, - vertical: 20.0, - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "중고기기를 안전하게 구매하는 방법", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 15, - ), + height: 280, + decoration: const BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", ), - Text( - "사피 초대하고 지원금 받기", - style: TextStyle( + fit: BoxFit.cover), + ), + ), + ), + const SliverToBoxAdapter( + child: SizedBox( + height: 20, + ), + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Container( + height: 100, + decoration: BoxDecoration( + color: const Color(0xffDFE1E6), + borderRadius: BorderRadius.circular(30)), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 30.0, + vertical: 20.0, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "중고기기를 안전하게 구매하는 방법", + style: TextStyle( fontFamily: "Pretendard", - fontSize: 25, - fontWeight: FontWeight.bold), - ), - ], + fontSize: 15, + ), + ), + Text( + "사피 초대하고 지원금 받기", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 25, + fontWeight: FontWeight.bold), + ), + ], + ), ), ), ), ), - ), - SliverPadding( - sliver: SliverGrid( - delegate: SliverChildBuilderDelegate( - (context, index) { - return productCard( - productBrand: productList[index].productBrand ?? "", - productName: productList[index].productName ?? "", - productImageUrl: - productList[index].productImageUrl ?? "", - price: productList[index].price ?? 0); - }, - childCount: productList.length, - ), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - mainAxisSpacing: 15, - crossAxisSpacing: 15, - childAspectRatio: 0.84, + SliverPadding( + sliver: SliverGrid( + delegate: SliverChildBuilderDelegate( + (context, index) { + return productCard( + productBrand: productList[index].productBrand ?? "", + productName: productList[index].productName ?? "", + productImageUrl: + productList[index].productImageUrl ?? "", + price: productList[index].price ?? 0); + }, + childCount: productList.length, + ), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 15, + crossAxisSpacing: 15, + childAspectRatio: 0.84, + ), ), + padding: const EdgeInsets.all(20.0), ), - padding: const EdgeInsets.all(20.0), - ), - ], - ), - ), + ], + ), + bottomNavigationBar: bottomNavBar()), ); } } diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart new file mode 100644 index 0000000..f678d32 --- /dev/null +++ b/lib/widgets/bottom_nav_bar.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; + +Widget bottomNavBar() { + return Container( + color: Colors.white, + height: 90, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 5.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + IconButton( + icon: const Icon(Icons.home), + onPressed: () {}, + ), + const Text("홈"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.build), + onPressed: () {}, + ), + const Text("수리센터"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.search), + onPressed: () {}, + ), + const Text("탐색"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.favorite), + onPressed: () {}, + ), + const Text("관심 목록"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.person), + onPressed: () {}, + ), + const Text("나의 사피"), + ], + ), + ], + ), + ), + ); +} diff --git a/pubspec.yaml b/pubspec.yaml index 9abe2bb..9bcb6fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ environment: sdk: ">=3.3.4 <4.0.0" # Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions +# 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 From b3054479b22f52d5dd31b1fbf8d777622afa9c45 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Sat, 20 Jul 2024 21:08:02 +0900 Subject: [PATCH 03/54] =?UTF-8?q?Feat=20:=20=ED=83=90=EC=83=89=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4,=20=ED=95=98=EB=8B=A8=20=EB=84=A4=EB=B9=84=EB=B0=94?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 192 +++++++++++----------- lib/screens/products/liked_list_page.dart | 0 lib/screens/search/search_screen.dart | 101 ++++++++++++ lib/widgets/bottom_nav_bar.dart | 135 ++++++++------- 4 files changed, 276 insertions(+), 152 deletions(-) create mode 100644 lib/screens/products/liked_list_page.dart create mode 100644 lib/screens/search/search_screen.dart diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index cd08d43..28232ee 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -9,17 +9,17 @@ import 'package:saphy/widgets/product_card.dart'; void main() { // async { // await dotenv.load(fileName: 'assets/config/.env'); - runApp(const HomePage()); + runApp(const MainScreen()); } -class HomePage extends StatefulWidget { - const HomePage({super.key}); +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); @override - State createState() => _HomePageState(); + State createState() => _MainScreenState(); } -class _HomePageState extends State { +class _MainScreenState extends State { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); List productList = [ // 그냥 구현용 샘플 데이터 @@ -67,107 +67,109 @@ class _HomePageState extends State { title: "Saphy", debugShowCheckedModeBanner: false, home: Scaffold( - backgroundColor: const Color(0xfff4f4f4), - appBar: AppBar( - backgroundColor: Colors.white, - title: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: Image.asset( - "assets/images/SaphyLogoSmall.png", - height: 24, - ), + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + backgroundColor: Colors.white, + title: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: Image.asset( + "assets/images/SaphyLogoSmall.png", + height: 24, + ), + ), + centerTitle: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.notifications_outlined), + onPressed: () {}, ), - centerTitle: false, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 20.0), - child: IconButton( - icon: const Icon(Icons.notifications_outlined), - onPressed: () {}, - ), - ), - ]), - body: CustomScrollView( - slivers: [ - SliverToBoxAdapter( - child: Container( - height: 280, - decoration: const BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider( - "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", - ), - fit: BoxFit.cover), - ), + ), + ], + ), + body: CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Container( + height: 280, + decoration: const BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", + ), + fit: BoxFit.cover), ), ), - const SliverToBoxAdapter( - child: SizedBox( - height: 20, - ), + ), + const SliverToBoxAdapter( + child: SizedBox( + height: 20, ), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Container( - height: 100, - decoration: BoxDecoration( - color: const Color(0xffDFE1E6), - borderRadius: BorderRadius.circular(30)), - child: const Padding( - padding: EdgeInsets.symmetric( - horizontal: 30.0, - vertical: 20.0, - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - "중고기기를 안전하게 구매하는 방법", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 15, - ), - ), - Text( - "사피 초대하고 지원금 받기", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 25, - fontWeight: FontWeight.bold), + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Container( + height: 100, + decoration: BoxDecoration( + color: const Color(0xffDFE1E6), + borderRadius: BorderRadius.circular(30)), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 30.0, + vertical: 20.0, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + "중고기기를 안전하게 구매하는 방법", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, ), - ], - ), + ), + Text( + "사피 초대하고 지원금 받기", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 25, + fontWeight: FontWeight.bold), + ), + ], ), ), ), ), - SliverPadding( - sliver: SliverGrid( - delegate: SliverChildBuilderDelegate( - (context, index) { - return productCard( - productBrand: productList[index].productBrand ?? "", - productName: productList[index].productName ?? "", - productImageUrl: - productList[index].productImageUrl ?? "", - price: productList[index].price ?? 0); - }, - childCount: productList.length, - ), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - mainAxisSpacing: 15, - crossAxisSpacing: 15, - childAspectRatio: 0.84, - ), + ), + SliverPadding( + sliver: SliverGrid( + delegate: SliverChildBuilderDelegate( + (context, index) { + return productCard( + productBrand: productList[index].productBrand ?? "", + productName: productList[index].productName ?? "", + productImageUrl: + productList[index].productImageUrl ?? "", + price: productList[index].price ?? 0); + }, + childCount: productList.length, + ), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 15, + crossAxisSpacing: 15, + childAspectRatio: 0.84, ), - padding: const EdgeInsets.all(20.0), ), - ], - ), - bottomNavigationBar: bottomNavBar()), + padding: const EdgeInsets.all(20.0), + ), + ], + ), + bottomNavigationBar: const BottomNavBar(), + ), ); } } diff --git a/lib/screens/products/liked_list_page.dart b/lib/screens/products/liked_list_page.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/screens/search/search_screen.dart b/lib/screens/search/search_screen.dart new file mode 100644 index 0000000..de1c0eb --- /dev/null +++ b/lib/screens/search/search_screen.dart @@ -0,0 +1,101 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/widgets/bottom_nav_bar.dart'; +import 'package:saphy/screens/main/main_screen.dart'; + +class SearchScreen extends StatelessWidget { + const SearchScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + body: Column( + children: [ + const SizedBox( + height: 50, + ), + Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const MainScreen(), + ), + ); + }, + ), + SizedBox( + width: 290, + child: TextField( + decoration: InputDecoration( + labelStyle: const TextStyle( + backgroundColor: Colors.white, + ), + suffixIcon: IconButton( + icon: const Icon(Icons.clear), + onPressed: () {}, + // 컨트롤러 연결해야 해서 아직 미구현 + ), + filled: true, + fillColor: Colors.white, + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color(0xff272727), + ), + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color.fromARGB(255, 83, 83, 83), + ), + ), + ), + ), + ), + IconButton( + icon: const Icon(Icons.search), + onPressed: () {}, + ), + ], + ), + const SizedBox( + height: 20, + ), + // 아래 모두 데이터 연동 & stateful 위젯으로의 전환 추후 진행예정 + const Text( + "최근 검색어", + style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), + ), + const SizedBox( + height: 20, + ), + const Text( + "인기 검색어", + style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), + ), + const SizedBox( + height: 20, + ), + const Text( + "인기 브랜드", + style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), + ), + ], + ), + ), + ], + ), + bottomNavigationBar: const BottomNavBar(), + ); + } +} diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index f678d32..23fd4e7 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,61 +1,82 @@ import 'package:flutter/material.dart'; +import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/screens/search/search_screen.dart'; -Widget bottomNavBar() { - return Container( - color: Colors.white, - height: 90, - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 5.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - IconButton( - icon: const Icon(Icons.home), - onPressed: () {}, - ), - const Text("홈"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.build), - onPressed: () {}, - ), - const Text("수리센터"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.search), - onPressed: () {}, - ), - const Text("탐색"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.favorite), - onPressed: () {}, - ), - const Text("관심 목록"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.person), - onPressed: () {}, - ), - const Text("나의 사피"), - ], - ), - ], +class BottomNavBar extends StatelessWidget { + const BottomNavBar({super.key}); + + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white, + height: 90, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 5.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Column( + children: [ + IconButton( + icon: const Icon(Icons.home), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const MainScreen(), + ), + ); + }, + ), + const Text("홈"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.build), + onPressed: () {}, + ), + const Text("수리센터"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.search), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const SearchScreen(), + ), + ); + }, + ), + const Text("탐색"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.favorite), + onPressed: () {}, + ), + const Text("관심 목록"), + ], + ), + Column( + children: [ + IconButton( + icon: const Icon(Icons.person), + onPressed: () {}, + ), + const Text("나의 사피"), + ], + ), + ], + ), ), - ), - ); + ); + } } From eef61d450fc9910962bd1ccec9926dd9f2bbcc89 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Mon, 22 Jul 2024 14:15:05 +0900 Subject: [PATCH 04/54] SHAPY-74 create welcome screen, implement kakao login --- android/app/build.gradle | 24 +- android/app/google-services.json | 29 ++ android/app/src/main/AndroidManifest.xml | 28 +- assets/fonts/Prompt-Black.ttf | Bin 0 -> 170136 bytes assets/fonts/Prompt-Bold.ttf | Bin 0 -> 172528 bytes assets/fonts/Prompt-ExtraBold.ttf | Bin 0 -> 169920 bytes assets/fonts/Prompt-Medium.ttf | Bin 0 -> 170148 bytes assets/fonts/Prompt-Regular.ttf | Bin 0 -> 162624 bytes assets/fonts/Prompt-SemiBold.ttf | Bin 0 -> 169024 bytes assets/fonts/Prompt-Thin.ttf | Bin 0 -> 158176 bytes assets/images/Google.png | Bin 0 -> 805 bytes assets/images/Kakao.png | Bin 0 -> 276 bytes assets/images/LogoBig.png | Bin 0 -> 6022 bytes ios/Runner/Info.plist | 9 + lib/main.dart | 103 +---- lib/screens/welcome/welcome_screen.dart | 106 ++++++ lib/service/google_login_controller.dart | 1 + lib/service/kakao_login_controller.dart | 50 +++ lib/service/main_view_model.dart | 22 ++ lib/service/social_login.dart | 4 + lib/utils/colors.dart | 37 ++ lib/widgets/login_button.dart | 56 +++ macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 353 +++++++++++++++++- pubspec.yaml | 52 ++- 25 files changed, 738 insertions(+), 140 deletions(-) create mode 100644 android/app/google-services.json create mode 100644 assets/fonts/Prompt-Black.ttf create mode 100644 assets/fonts/Prompt-Bold.ttf create mode 100644 assets/fonts/Prompt-ExtraBold.ttf create mode 100644 assets/fonts/Prompt-Medium.ttf create mode 100644 assets/fonts/Prompt-Regular.ttf create mode 100644 assets/fonts/Prompt-SemiBold.ttf create mode 100644 assets/fonts/Prompt-Thin.ttf create mode 100644 assets/images/Google.png create mode 100644 assets/images/Kakao.png create mode 100644 assets/images/LogoBig.png create mode 100644 lib/screens/welcome/welcome_screen.dart create mode 100644 lib/service/google_login_controller.dart create mode 100644 lib/service/kakao_login_controller.dart create mode 100644 lib/service/main_view_model.dart create mode 100644 lib/service/social_login.dart create mode 100644 lib/utils/colors.dart create mode 100644 lib/widgets/login_button.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 62d2b4a..1ab0854 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -4,6 +4,18 @@ plugins { id "dev.flutter.flutter-gradle-plugin" } +import java.nio.file.Files +import java.nio.file.Paths + +// .env 파일 경로 설정 +def dotenv = new Properties() +def envFile = file("${rootProject.projectDir}/../assets/config/.env") +if (envFile.exists()) { + envFile.withInputStream { stream -> dotenv.load(stream) } +} else { + throw new FileNotFoundException("Could not find .env file at: ${envFile.path}") +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -41,20 +53,22 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.saphy" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName + + // manifestPlaceholders 추가 및 null 체크 + def kakaoKey = dotenv['KAKAO_NATIVE_APP_KEY'] + if (kakaoKey == null) { + throw new GradleException("KAKAO_NATIVE_APP_KEY not found in .env file") + } + manifestPlaceholders = [YOUR_NATIVE_APP_KEY: kakaoKey] } 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.debug } } diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..d42f4ee --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "1087162194276", + "project_id": "saphy-e9775", + "storage_bucket": "saphy-e9775.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1087162194276:android:2bcd92a156f8b0b0e1c271", + "android_client_info": { + "package_name": "com.example.saphy" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyA_bWIuhUT2yUAKN3LJEB-889dLBvYmjO0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 129d7b3..d559f4b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,8 +1,23 @@ + + + + + + + + + + + + + + - - - diff --git a/assets/fonts/Prompt-Black.ttf b/assets/fonts/Prompt-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8dffa2d00c67a2bc7146913a48eae79d63d6f8bc GIT binary patch literal 170136 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/Prompt-Medium.ttf b/assets/fonts/Prompt-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0f3ba0263ef66cc4eaaa7717352364faf2b51076 GIT binary patch literal 170148 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
qmtgqt>x2===WJ_W8It?U?CLw6dMzYJdIw! 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 { IconButton( icon: const Icon(Icons.arrow_back), onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const MainScreen(), - ), - ); + Navigator.of(context).pop(); }, ), const SizedBox( diff --git a/pubspec.yaml b/pubspec.yaml index 9bcb6fb..f1da875 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -88,6 +88,11 @@ flutter: - asset: assets/fonts/Pretendard-Regular.ttf - asset: assets/fonts/Pretendard-SemiBold.ttf - asset: assets/fonts/Pretendard-Thin.ttf + + - family: Prompt + fonts: + - asset: assets/fonts/Prompt-Black.ttf + # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages From a65d9a98afc456f2981e62316f9e6b22db835ca2 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Wed, 24 Jul 2024 18:04:46 +0900 Subject: [PATCH 17/54] SAPHY-105 Feat: Add Social Login(Kakao, Google) and Create Register UI --- .gitignore | 1 + android/app/build.gradle | 13 +- android/app/src/main/AndroidManifest.xml | 5 +- lib/main.dart | 11 +- lib/screens/welcome/signup_screen.dart | 183 +++++++++++++++++++ lib/screens/welcome/welcome_screen.dart | 68 ++++--- lib/service/google_login_controller.dart | 30 +++ lib/service/kakao_login_controller.dart | 3 + lib/service/main_view_model.dart | 16 +- lib/service/secure_storage.dart | 29 +++ lib/utils/phone_input_formatter.dart | 45 +++++ lib/utils/search_adress.dart | 30 +++ lib/widgets/normal_button.dart | 45 +++++ lib/widgets/sign_up_form.dart | 60 ++++++ linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + pubspec.lock | 56 ++++++ pubspec.yaml | 3 + 18 files changed, 574 insertions(+), 29 deletions(-) create mode 100644 lib/screens/welcome/signup_screen.dart create mode 100644 lib/service/secure_storage.dart create mode 100644 lib/utils/phone_input_formatter.dart create mode 100644 lib/utils/search_adress.dart create mode 100644 lib/widgets/normal_button.dart create mode 100644 lib/widgets/sign_up_form.dart diff --git a/.gitignore b/.gitignore index 0f1a5fb..c7abf97 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release +/android/app/mykey.jks # .env file 업로드 제외 assets/config/.env diff --git a/android/app/build.gradle b/android/app/build.gradle index 1ab0854..107cba4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -62,13 +62,22 @@ android { // manifestPlaceholders 추가 및 null 체크 def kakaoKey = dotenv['KAKAO_NATIVE_APP_KEY'] if (kakaoKey == null) { - throw new GradleException("KAKAO_NATIVE_APP_KEY not found in .env file") + throw GradleException("KAKAO_NATIVE_APP_KEY not found in .env file") } manifestPlaceholders = [YOUR_NATIVE_APP_KEY: kakaoKey] } + signingConfigs { + debug { + keyAlias 'androiddebugkey' + keyPassword 'android' + storeFile file('mykey.jks') + storePassword 'android' + } + } + buildTypes { - release { + debug { signingConfig signingConfigs.debug } } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index d559f4b..47e3373 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ - - + + const WelcomeScreen(), + SignupScreen.id: (context) => const SignupScreen( + socialType: '', + userEmail: '', + userName: '', + userPhotoUrl: '', + userToken: '', + ), }, ); } diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart new file mode 100644 index 0000000..e1fde6f --- /dev/null +++ b/lib/screens/welcome/signup_screen.dart @@ -0,0 +1,183 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart'; +import 'package:google_sign_in/google_sign_in.dart'; +import 'package:logger/web.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/phone_input_formatter.dart'; +import 'package:saphy/utils/search_adress.dart'; +import 'package:saphy/widgets/login_button.dart'; +import 'package:saphy/widgets/normal_button.dart'; +import 'package:saphy/widgets/sign_up_form.dart'; + +class SignupScreen extends StatefulWidget { + static String id = 'signup_screen'; + const SignupScreen( + {super.key, + required this.socialType, + required this.userEmail, + required this.userName, + required this.userPhotoUrl, + required this.userToken}); + + final String? socialType; + final String? userEmail; + final String? userName; + final String? userPhotoUrl; + final String? userToken; + + @override + State createState() => _SignupScreenState( + socialType: socialType, + userName: userName, + userEmail: userEmail, + userPhotoUrl: userPhotoUrl, + userToken: userToken, + ); +} + +class _SignupScreenState extends State { + Logger logger = Logger(); + bool flag = true; + + final TextEditingController _nameController = TextEditingController(); + final TextEditingController _emailController = TextEditingController(); + final TextEditingController _phoneController = TextEditingController(); + final TextEditingController _postcodeController = TextEditingController(); + final TextEditingController _addressController = TextEditingController(); + final TextEditingController _addressDetailController = + TextEditingController(); + + String? socialType; + String? userName; + String? userEmail; + String? userPhotoUrl; + String? userToken; + _SignupScreenState( + {this.socialType, + this.userName, + this.userEmail, + this.userPhotoUrl, + this.userToken}); + + void despose() { + _nameController.dispose(); + _emailController.dispose(); + _phoneController.dispose(); + _postcodeController.dispose(); + _addressController.dispose(); + _addressDetailController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '환영합니다!', + style: TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 50.0, + fontWeight: FontWeight.w800, + color: altBlack, + ), + ), + const Text( + '서비스 이용에 필요한 정보를 입력해주세요', + style: TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 20.0, + fontWeight: FontWeight.w400, + color: altBlack, + ), + ), + const SizedBox( + height: 20.0, + ), + SignUpForm( + textEditingController: _nameController, + readOnly: false, + formatter: const [], + initialValue: userName ?? '', + labelText: '어떻게 불러드릴까요?', + ), + SignUpForm( + textEditingController: _emailController, + readOnly: false, + formatter: const [], + initialValue: userEmail ?? '', + labelText: '이메일을 알려주세요', + ), + SignUpForm( + textEditingController: _phoneController, + readOnly: false, + formatter: [ + FilteringTextInputFormatter.digitsOnly, + LengthLimitingTextInputFormatter(11), + PhoneInputFormatter(), + ], + initialValue: '', + labelText: '전화번호를 알려주세요', + ), + Padding( + padding: const EdgeInsets.only(bottom: 10.0), + child: NormalButton( + title: '주소 찾기', + color: mainPrimary, + onTap: () async { + flag = false; + setState(() {}); + Map formData = + await searchAdress(context, logger); + _postcodeController.value = + TextEditingValue(text: formData['postcode'] ?? ''); + _addressController.value = + TextEditingValue(text: formData['address'] ?? ''); + _addressDetailController.value = TextEditingValue( + text: formData['address_detail'] ?? ''); + }, + ), + ), + SignUpForm( + textEditingController: _postcodeController, + readOnly: true, + formatter: const [], + initialValue: '', + labelText: '우편번호를 검색하세요', + ), + SignUpForm( + textEditingController: _addressController, + readOnly: true, + formatter: const [], + initialValue: '', + labelText: '배송을 위한 주소를 검색하세요', + ), + SignUpForm( + textEditingController: _addressDetailController, + readOnly: flag, + formatter: const [], + initialValue: '', + labelText: '상세 주소를 입력하세요', + ), + NormalButton( + title: '다 적었어요', + color: mainPrimary, + onTap: () { + logger.i( + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${_postcodeController.text} / ${_addressController.text}/ ${_addressDetailController.text}', + ); + }) + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index 11aac44..d9369a8 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -1,10 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/service/google_login_controller.dart'; import 'package:saphy/service/kakao_login_controller.dart'; import 'package:saphy/service/main_view_model.dart'; +import 'package:saphy/service/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/widgets/login_button.dart'; @@ -17,7 +18,8 @@ class WelcomeScreen extends StatefulWidget { } class _WelcomeScreenState extends State { - final viewModel = MainViewModel(KakaoLoginController()); + final kakaoViewModel = MainViewModel(KakaoLoginController()); + final googleViewModel = MainViewModel(GoogleLoginController()); @override Widget build(BuildContext context) { @@ -56,35 +58,40 @@ class _WelcomeScreenState extends State { width: 20.0, ), color: white, - onTap: () {}, - ), - const SizedBox(height: 5.0), - LoginButton( - title: '카카오 로그인', - logo: Image.asset( - 'assets/images/Kakao.png', - ), - color: systemKakao, onTap: () async { - await viewModel.login(); + final GoogleSignInAccount user = + await googleViewModel.login(); + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'GOOGLE', + userName: user.displayName, + userEmail: user.email, + userPhotoUrl: user.photoUrl, + userToken: readAccessToken().toString(), + ), + )); setState(() {}); }, ), - SizedBox( - width: 50.0, - child: Image.network(viewModel - .user?.kakaoAccount?.profile?.profileImageUrl ?? - 'https://beforeigosolutions.com/wp-content/uploads/2021/12/dummy-profile-pic-300x300-1.png'), - ), + const SizedBox(height: 5.0), LoginButton( - title: '카카오 로그아웃', + title: '카카오 로그인', logo: Image.asset( 'assets/images/Kakao.png', ), color: systemKakao, onTap: () async { - await viewModel.logout(); - setState(() {}); + final User user = await kakaoViewModel.login(); + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'KAKAO', + userName: user.kakaoAccount?.profile?.nickname, + userEmail: user.kakaoAccount?.email, + userPhotoUrl: + user.kakaoAccount?.profile?.thumbnailImageUrl, + userToken: readAccessToken().toString(), + ), + )); }, ), const SizedBox(height: 10.0), @@ -104,3 +111,22 @@ class _WelcomeScreenState extends State { ); } } + + + // SizedBox( + // width: 50.0, + // child: Image.network(kakaoViewModel + // .user?.kakaoAccount?.profile?.profileImageUrl ?? + // 'https://beforeigosolutions.com/wp-content/uploads/2021/12/dummy-profile-pic-300x300-1.png'), + // ), + // LoginButton( + // title: '카카오 로그아웃', + // logo: Image.asset( + // 'assets/images/Kakao.png', + // ), + // color: systemKakao, + // onTap: () async { + // await kakaoViewModel.logout(); + // setState(() {}); + // }, + // ), \ No newline at end of file diff --git a/lib/service/google_login_controller.dart b/lib/service/google_login_controller.dart index 8b13789..b97d4b6 100644 --- a/lib/service/google_login_controller.dart +++ b/lib/service/google_login_controller.dart @@ -1 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:google_sign_in/google_sign_in.dart'; +import 'package:saphy/service/secure_storage.dart'; +import 'package:saphy/service/social_login.dart'; +class GoogleLoginController implements SocialLogin { + static final _googleSignIn = GoogleSignIn(); + + @override + Future login() async { + try { + final GoogleSignInAccount? user = await _googleSignIn.signIn(); + final googleKey = await user?.authentication; + final accessToken = googleKey?.accessToken; + final refreshToken = googleKey?.idToken; + writeAccessToke(accessToken); + writeRefreshToke(refreshToken); + print('Google Login Success $user'); + return user; + } catch (error) { + print('Google Login Failed $error'); + } + return false; + } + + @override + Future logout() { + // TODO: implement logout + throw UnimplementedError(); + } +} diff --git a/lib/service/kakao_login_controller.dart b/lib/service/kakao_login_controller.dart index 05c4373..c9da55c 100644 --- a/lib/service/kakao_login_controller.dart +++ b/lib/service/kakao_login_controller.dart @@ -1,5 +1,6 @@ import 'package:flutter/services.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/service/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; class KakaoLoginController implements SocialLogin { @@ -8,6 +9,8 @@ class KakaoLoginController implements SocialLogin { if (await isKakaoTalkInstalled()) { try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); + writeAccessToke(token.accessToken); + writeRefreshToke(token.refreshToken); print('Kakaotalk Login Success ${token.accessToken}'); return true; } catch (error) { diff --git a/lib/service/main_view_model.dart b/lib/service/main_view_model.dart index 7738c62..523ab58 100644 --- a/lib/service/main_view_model.dart +++ b/lib/service/main_view_model.dart @@ -1,17 +1,27 @@ +import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/service/google_login_controller.dart'; +import 'package:saphy/service/kakao_login_controller.dart'; import 'package:saphy/service/social_login.dart'; class MainViewModel { final SocialLogin _socialLogin; bool isLogined = false; //처음에 로그인 안 되어 있음 User? user; //카카오톡에서 사용자 정보를 저장하는 객체 User를 nullable 변수로 선언 + GoogleSignInAccount? + googleUser; //구글에서 사용자 정보를 저장하는 객체 GoogleSignInAccount를 nullable 변수로 선언 MainViewModel(this._socialLogin); Future login() async { - isLogined = await _socialLogin.login(); //로그인되어 있는지 확인 - user = await UserApi.instance.me(); //사용자 정보 받아오기 - print(user!.kakaoAccount?.profile?.thumbnailImageUrl); + if (_socialLogin.runtimeType == KakaoLoginController) { + isLogined = await _socialLogin.login(); //로그인되어 있는지 확인 + user = await UserApi.instance.me(); //사용자 정보 받아오기 + return user; + } else if (_socialLogin.runtimeType == GoogleLoginController) { + googleUser = await _socialLogin.login(); + return googleUser; + } } Future logout() async { diff --git a/lib/service/secure_storage.dart b/lib/service/secure_storage.dart new file mode 100644 index 0000000..fb4f3d8 --- /dev/null +++ b/lib/service/secure_storage.dart @@ -0,0 +1,29 @@ +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +const storage = FlutterSecureStorage(); + +readAccessToken() async { + String? key = await storage.read(key: 'AccessToken'); + return key; +} + +writeAccessToke(String? value) async { + await storage.write(key: 'AccessToken', value: value); +} + +deleteAccessToke(String? value) async { + await storage.delete(key: 'AccessToken'); +} + +readRefreshToken() async { + String? key = await storage.read(key: 'RefreshToken'); + return key; +} + +writeRefreshToke(String? value) async { + await storage.write(key: 'RefreshToken', value: value); +} + +deleteRefreshToke(String? value) async { + await storage.delete(key: 'RefreshToken'); +} diff --git a/lib/utils/phone_input_formatter.dart b/lib/utils/phone_input_formatter.dart new file mode 100644 index 0000000..65fd5c3 --- /dev/null +++ b/lib/utils/phone_input_formatter.dart @@ -0,0 +1,45 @@ +import 'package:flutter/services.dart'; + +class PhoneInputFormatter extends TextInputFormatter { + static const kPhoneNumberPrefix = '010-'; + + // 텍스트 편집 업데이트를 처리하기 위해 formatEditUpdate 메서드를 재정의 + @override + TextEditingValue formatEditUpdate( + TextEditingValue oldValue, TextEditingValue newValue) { + String formattedText = _getFormattedPhoneNumber(newValue.text); + + // 업데이트된 선택과 함께 포맷된 텍스트를 반환 + return TextEditingValue( + text: formattedText, + selection: TextSelection.collapsed(offset: formattedText.length), + ); + } + + // 전화번호의 길이에 따라 형식을 지정하는 메서드 + String _getFormattedPhoneNumber(String value) { + value = _cleanPhoneNumber(value); + + if (value.length == 1) { +//값이 없을 때 010-최초값 포멧 + value = kPhoneNumberPrefix + value.substring(0, value.length); + } else if (value.length < 4) { +// 010- 을 지우지 못하도록 010- 유지 + value = kPhoneNumberPrefix; + } else if (value.length >= 8 && value.length < 12) { +// 010-xxxx-xxxx 포멧 + value = + '$kPhoneNumberPrefix${value.substring(3, 7)}-${value.substring(7, value.length)}'; + } else { +// 010-xxxx 포멧 (자릿수 제한은 inputformatters 로 구현) + value = kPhoneNumberPrefix + value.substring(3, value.length); + } + + return value; + } + + // 입력에서 숫자가 아닌 문자를 제거하는 메서드 + String _cleanPhoneNumber(String value) { + return value.replaceAll(RegExp(r'[-\s]'), ''); + } +} diff --git a/lib/utils/search_adress.dart b/lib/utils/search_adress.dart new file mode 100644 index 0000000..7f321d7 --- /dev/null +++ b/lib/utils/search_adress.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:logger/web.dart'; +import 'package:remedi_kopo/remedi_kopo.dart'; + +Future> searchAdress( + BuildContext context, Logger logger) async { + Map formData = {}; + + KopoModel kopoModel = await Navigator.push( + context, + MaterialPageRoute( + builder: (context) => RemediKopo(), + ), + ); + + logger.i( + '${kopoModel.zonecode} / ${kopoModel.address} / ${kopoModel.buildingName}', + ); + + final postcode = kopoModel.zonecode ?? ''; + formData['postcode'] = postcode; + + final address = kopoModel.address ?? ''; + formData['address'] = address; + + final buildingName = kopoModel.buildingName ?? ''; + formData['address_detail'] = buildingName; + + return formData; +} diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart new file mode 100644 index 0000000..b649bac --- /dev/null +++ b/lib/widgets/normal_button.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/utils/colors.dart'; + +class NormalButton extends StatelessWidget { + NormalButton({ + super.key, + required this.title, + required this.color, + required this.onTap, + }); + + String title; + Color color; + Function() onTap; + + @override + Widget build(BuildContext context) { + return OutlinedButton( + onPressed: onTap, + style: OutlinedButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + side: const BorderSide(color: gray100, width: 1.0), + padding: const EdgeInsets.symmetric( + horizontal: 15.0, + vertical: 15.0, + ), + surfaceTintColor: Colors.transparent, + overlayColor: Colors.transparent, + backgroundColor: color, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + title, + style: const TextStyle( + fontFamily: 'Pretendard-Medium', fontSize: 15.0, color: black), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/sign_up_form.dart b/lib/widgets/sign_up_form.dart new file mode 100644 index 0000000..6516ab7 --- /dev/null +++ b/lib/widgets/sign_up_form.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart'; +import 'package:saphy/utils/colors.dart'; + +class SignUpForm extends StatelessWidget { + SignUpForm({ + super.key, + required this.initialValue, + required this.labelText, + required this.formatter, + required this.readOnly, + required this.textEditingController, + }); + + TextEditingController textEditingController; + String initialValue; + String labelText; + List formatter; + bool readOnly; + + @override + Widget build(BuildContext context) { + textEditingController.text = initialValue; + return Padding( + padding: const EdgeInsets.only(bottom: 10.0), + child: Container( + decoration: BoxDecoration( + shape: BoxShape.rectangle, + borderRadius: BorderRadius.circular(10.0), + color: gray200, + ), + child: Padding( + padding: const EdgeInsets.only(left: 10.0), + child: TextFormField( + controller: textEditingController, + readOnly: readOnly, + inputFormatters: formatter, + style: const TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 20.0, + fontWeight: FontWeight.w400, + color: altBlack, + ), + decoration: InputDecoration( + border: InputBorder.none, + floatingLabelBehavior: FloatingLabelBehavior.always, + labelText: labelText, + labelStyle: const TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 15.0, + fontWeight: FontWeight.w300, + color: altBlack, + )), + ), + ), + ), + ); + } +} diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..35ac0be 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_secure_storage_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStoragePlugin"); + flutter_secure_storage_plugin_register_with_registrar(flutter_secure_storage_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2e1de87..af79c3c 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/pubspec.lock b/pubspec.lock index 31986be..3cd9800 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -238,6 +238,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9f3dd2ac3b6875b0fde5b04734789c3ef35ba3965c18e99dd564a7a2f8056df6" + url: "https://pub.dev" + source: hosted + version: "4.2.1" flutter_test: dependency: "direct dev" description: flutter @@ -424,6 +432,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" + logger: + dependency: "direct main" + description: + name: logger + sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" + url: "https://pub.dev" + source: hosted + version: "2.4.0" logging: dependency: transitive description: @@ -568,6 +584,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + remedi_kopo: + dependency: "direct main" + description: + name: remedi_kopo + sha256: "6f1df613d795fb38726632a9df6c17adee06c662c271cd381f65e6a6f6610721" + url: "https://pub.dev" + source: hosted + version: "0.0.2" rxdart: dependency: transitive description: @@ -781,6 +805,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + webview_flutter: + dependency: transitive + description: + name: webview_flutter + sha256: "6886b3ceef1541109df5001054aade5ee3c36b5780302e41701c78357233721c" + url: "https://pub.dev" + source: hosted + version: "2.8.0" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd" + url: "https://pub.dev" + source: hosted + version: "2.10.4" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf" + url: "https://pub.dev" + source: hosted + version: "1.9.5" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0 + url: "https://pub.dev" + source: hosted + version: "2.9.5" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index fbe65d5..68db706 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,6 +42,9 @@ dependencies: encrypt: ^5.0.3 kakao_flutter_sdk_user: ^1.9.0 kakao_flutter_sdk_talk: ^1.9.0 + flutter_secure_storage: ^4.2.1 + remedi_kopo: ^0.0.2 + logger: ^2.4.0 dev_dependencies: flutter_test: From ee61293116a59583708c7356870ce51c40a1c7c1 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Thu, 25 Jul 2024 12:45:40 +0900 Subject: [PATCH 18/54] SAPHY-116 Feat : product detail page UI --- lib/screens/products/item_list_page.dart | 1 + lib/screens/products/product_detail_page.dart | 179 ++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 lib/screens/products/product_detail_page.dart diff --git a/lib/screens/products/item_list_page.dart b/lib/screens/products/item_list_page.dart index e69de29..8b13789 100644 --- a/lib/screens/products/item_list_page.dart +++ b/lib/screens/products/item_list_page.dart @@ -0,0 +1 @@ + diff --git a/lib/screens/products/product_detail_page.dart b/lib/screens/products/product_detail_page.dart new file mode 100644 index 0000000..601d5a9 --- /dev/null +++ b/lib/screens/products/product_detail_page.dart @@ -0,0 +1,179 @@ +import 'package:flutter/material.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:intl/intl.dart'; + +class ProductDetail extends StatelessWidget { + final String productBrand; + final String productName; + final String productImageUrl; + final double price; + + const ProductDetail({ + super.key, + required this.productBrand, + required this.productName, + required this.productImageUrl, + required this.price, + }); + + @override + Widget build(BuildContext context) { + final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + body: Column( + children: [ + const SizedBox( + height: 70, + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + const SizedBox( + width: 250, + ), + IconButton( + icon: const Icon(Icons.menu), + onPressed: () {}, + ), + ], + ), + Flexible( + flex: 5, + child: SizedBox( + height: 500, + child: Center( + child: Container( + height: 300, + width: 290, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider(productImageUrl), + fit: BoxFit.cover, + ), + ), + ), + ), + ), + ), + Flexible( + flex: 3, + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30), + topRight: Radius.circular(30), + ), + ), + child: Padding( + padding: const EdgeInsets.all(50.0), + child: Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "${numberFormat.format(price)}원", + style: const TextStyle( + fontWeight: FontWeight.w800, + fontFamily: "Pretendard", + fontSize: 30, + ), + ), + Text( + productName, + style: const TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Pretendard", + fontSize: 25, + ), + ), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + productBrand, + style: const TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Pretendard", + fontSize: 30, + ), + ), + const Text( + "브랜드 보러가기", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 20, + ), + ), + ], + ), + ], + ), + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + const SizedBox( + height: 50, + child: Center( + child: Icon(Icons.add), + ), + ), + Container( + width: 130, + height: 50, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.black), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text("구매"), + ), + ), + Container( + width: 130, + height: 50, + decoration: BoxDecoration( + color: Colors.black, + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + "판매", + style: TextStyle( + color: Colors.white, + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ], + ), + ); + } +} From 8f56da46fb1589979ea8c793821fa32887439a71 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Thu, 25 Jul 2024 19:31:46 +0900 Subject: [PATCH 19/54] =?UTF-8?q?SAPHY-115=20Feat=20:=20=EC=83=81=ED=92=88?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=EC=99=80=20=EC=84=B8=EB=B6=80=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=ED=99=94=EB=A9=B4=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 64 ++++++++++++++++++++++++++++ ios/Runner.xcodeproj/project.pbxproj | 18 ++++++++ lib/widgets/product_card.dart | 24 +++++------ 3 files changed, 94 insertions(+), 12 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e2deba1..c91f4b0 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,29 +1,93 @@ PODS: + - AppAuth (1.7.5): + - AppAuth/Core (= 1.7.5) + - AppAuth/ExternalUserAgent (= 1.7.5) + - AppAuth/Core (1.7.5) + - AppAuth/ExternalUserAgent (1.7.5): + - AppAuth/Core - Flutter (1.0.0) + - flutter_secure_storage (3.3.1): + - Flutter + - google_sign_in_ios (0.0.1): + - AppAuth (>= 1.7.4) + - Flutter + - FlutterMacOS + - GoogleSignIn (~> 7.1) + - GTMSessionFetcher (>= 3.4.0) + - GoogleSignIn (7.1.0): + - AppAuth (< 2.0, >= 1.7.3) + - GTMAppAuth (< 5.0, >= 4.1.1) + - GTMSessionFetcher/Core (~> 3.3) + - GTMAppAuth (4.1.1): + - AppAuth/Core (~> 1.7) + - GTMSessionFetcher/Core (< 4.0, >= 3.3) + - GTMSessionFetcher (3.5.0): + - GTMSessionFetcher/Full (= 3.5.0) + - GTMSessionFetcher/Core (3.5.0) + - GTMSessionFetcher/Full (3.5.0): + - GTMSessionFetcher/Core + - kakao_flutter_sdk_common (1.9.0): + - Flutter - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS - sqflite (0.0.3): - Flutter - FlutterMacOS + - webview_flutter_wkwebview (0.0.1): + - Flutter DEPENDENCIES: - Flutter (from `Flutter`) + - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) + - kakao_flutter_sdk_common (from `.symlinks/plugins/kakao_flutter_sdk_common/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite (from `.symlinks/plugins/sqflite/darwin`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) + +SPEC REPOS: + trunk: + - AppAuth + - GoogleSignIn + - GTMAppAuth + - GTMSessionFetcher EXTERNAL SOURCES: Flutter: :path: Flutter + flutter_secure_storage: + :path: ".symlinks/plugins/flutter_secure_storage/ios" + google_sign_in_ios: + :path: ".symlinks/plugins/google_sign_in_ios/darwin" + kakao_flutter_sdk_common: + :path: ".symlinks/plugins/kakao_flutter_sdk_common/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" sqflite: :path: ".symlinks/plugins/sqflite/darwin" + webview_flutter_wkwebview: + :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" SPEC CHECKSUMS: + AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec + google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38 + GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db + GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de + GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 + kakao_flutter_sdk_common: 6cc350382c723c0ec6faf44e7c68a22b1c48737b path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec + webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2d2e5c3..ac278fc 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -199,6 +199,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, D4FE79309F0FAAD60E7E3E0D /* [CP] Embed Pods Frameworks */, + DD0CBE1D25881B7F6C021F1E /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -362,6 +363,23 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; + DD0CBE1D25881B7F6C021F1E /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index 91a23f8..495f7f8 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; -// import 'package:saphy/screens/products/product_detail_page.dart'; +import 'package:saphy/screens/products/product_detail_page.dart'; class ProductCard extends StatelessWidget { final String productBrand; @@ -22,17 +22,17 @@ class ProductCard extends StatelessWidget { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); return InkWell( onTap: () { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) => ProductDetail( - // productBrand: productBrand, - // productName: productName, - // productImageUrl: productImageUrl, - // price: price, - // ), - // ), - // ); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ProductDetail( + productBrand: productBrand, + productName: productName, + productImageUrl: productImageUrl, + price: price, + ), + ), + ); }, child: Container( padding: const EdgeInsets.all(10), From ee765cdf97356d477ece3507445deb4366ec4f81 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Fri, 2 Aug 2024 00:39:34 +0900 Subject: [PATCH 20/54] Feat: Create API request system using dio, Gradle upgrade 7.6.3 -> 8.9 --- .../gradle/wrapper/gradle-wrapper.properties | 2 +- lib/main.dart | 5 +- lib/screens/welcome/otp_screen.dart | 99 +++++++++++++ lib/screens/welcome/signup_screen.dart | 86 ++++++------ lib/screens/welcome/welcome_screen.dart | 71 ++++++---- lib/service/api_service.dart | 69 ++++++++++ lib/service/auth_service.dart | 27 ++++ .../google_login_controller.dart | 5 +- .../kakao_login_controller.dart | 23 ++-- .../{ => authentication}/main_view_model.dart | 4 +- .../{ => authentication}/secure_storage.dart | 4 +- lib/utils/log.dart | 20 +++ linux/flutter/generated_plugin_registrant.cc | 8 +- linux/flutter/generated_plugins.cmake | 2 +- macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 130 +++++++++++++----- pubspec.yaml | 7 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 19 files changed, 442 insertions(+), 126 deletions(-) create mode 100644 lib/screens/welcome/otp_screen.dart create mode 100644 lib/service/api_service.dart create mode 100644 lib/service/auth_service.dart rename lib/service/{ => authentication}/google_login_controller.dart (84%) rename lib/service/{ => authentication}/kakao_login_controller.dart (60%) rename lib/service/{ => authentication}/main_view_model.dart (88%) rename lib/service/{ => authentication}/secure_storage.dart (88%) create mode 100644 lib/utils/log.dart diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574..348c409 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip diff --git a/lib/main.dart b/lib/main.dart index 2040230..b80ee22 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:logger/logger.dart'; +import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/screens/welcome/welcome_screen.dart'; import 'package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart'; @@ -13,7 +15,7 @@ void main() async { KakaoSdk.init( nativeAppKey: kakaoNativeAppKey, ); - runApp(const ScreenController()); + runApp(const MyApp()); } class MyApp extends StatelessWidget { @@ -39,6 +41,7 @@ class MyApp extends StatelessWidget { userPhotoUrl: '', userToken: '', ), + OtpScreen.id: (context) => const OtpScreen(), }, ); } diff --git a/lib/screens/welcome/otp_screen.dart b/lib/screens/welcome/otp_screen.dart new file mode 100644 index 0000000..f2d31b7 --- /dev/null +++ b/lib/screens/welcome/otp_screen.dart @@ -0,0 +1,99 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/log.dart'; + +class OtpScreen extends StatefulWidget { + static String id = 'otp_screen'; + const OtpScreen({super.key}); + + @override + State createState() => _OtpScreenState(); +} + +class _OtpScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Form( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + OtpForm( + lastNode: false, + ), + OtpForm( + lastNode: false, + ), + OtpForm( + lastNode: false, + ), + OtpForm( + lastNode: true, + ), + ], + ), + ), + ], + )), + ); + } +} + +class OtpForm extends StatelessWidget { + OtpForm({ + super.key, + required this.lastNode, + }); + + bool lastNode; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 90.0, + width: 80.0, + child: TextFormField( + onChanged: (value) { + if (value.length == 1) { + if (lastNode) { + FocusScope.of(context).unfocus(); + } else { + FocusScope.of(context).nextFocus(); + } + } + }, + decoration: InputDecoration( + border: OutlineInputBorder( + borderSide: const BorderSide(color: gray400, width: 2.0), + borderRadius: BorderRadius.circular(10.0), + ), + focusedBorder: OutlineInputBorder( + borderSide: const BorderSide(color: main500, width: 2.0), + borderRadius: BorderRadius.circular(10.0), + )), + cursorColor: main500, + cursorHeight: 50.0, + style: const TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 40.0, + fontWeight: FontWeight.w800, + color: altBlack, + ), + textAlign: TextAlign.center, + textAlignVertical: TextAlignVertical.center, + keyboardType: TextInputType.number, + inputFormatters: [ + LengthLimitingTextInputFormatter(1), + FilteringTextInputFormatter.digitsOnly, + ], + ), + ); + } +} diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index e1fde6f..0148455 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -126,52 +126,12 @@ class _SignupScreenState extends State { initialValue: '', labelText: '전화번호를 알려주세요', ), - Padding( - padding: const EdgeInsets.only(bottom: 10.0), - child: NormalButton( - title: '주소 찾기', - color: mainPrimary, - onTap: () async { - flag = false; - setState(() {}); - Map formData = - await searchAdress(context, logger); - _postcodeController.value = - TextEditingValue(text: formData['postcode'] ?? ''); - _addressController.value = - TextEditingValue(text: formData['address'] ?? ''); - _addressDetailController.value = TextEditingValue( - text: formData['address_detail'] ?? ''); - }, - ), - ), - SignUpForm( - textEditingController: _postcodeController, - readOnly: true, - formatter: const [], - initialValue: '', - labelText: '우편번호를 검색하세요', - ), - SignUpForm( - textEditingController: _addressController, - readOnly: true, - formatter: const [], - initialValue: '', - labelText: '배송을 위한 주소를 검색하세요', - ), - SignUpForm( - textEditingController: _addressDetailController, - readOnly: flag, - formatter: const [], - initialValue: '', - labelText: '상세 주소를 입력하세요', - ), NormalButton( title: '다 적었어요', color: mainPrimary, onTap: () { logger.i( - '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${_postcodeController.text} / ${_addressController.text}/ ${_addressDetailController.text}', + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text}', ); }) ], @@ -181,3 +141,47 @@ class _SignupScreenState extends State { ); } } + + // Padding( + // padding: const EdgeInsets.only(bottom: 10.0), + // child: NormalButton( + // title: '주소 찾기', + // color: mainPrimary, + // onTap: () async { + // flag = false; + // setState(() {}); + // Map formData = + // await searchAdress(context, logger); + // _postcodeController.value = + // TextEditingValue(text: formData['postcode'] ?? ''); + // _addressController.value = + // TextEditingValue(text: formData['address'] ?? ''); + // _addressDetailController.value = TextEditingValue( + // text: formData['address_detail'] ?? ''); + // }, + // ), + // ), + // SignUpForm( + // textEditingController: _postcodeController, + // readOnly: true, + // formatter: const [], + // initialValue: '', + // labelText: '우편번호를 검색하세요', + // ), + // SignUpForm( + // textEditingController: _addressController, + // readOnly: true, + // formatter: const [], + // initialValue: '', + // labelText: '배송을 위한 주소를 검색하세요', + // ), + // SignUpForm( + // textEditingController: _addressDetailController, + // readOnly: flag, + // formatter: const [], + // initialValue: '', + // labelText: '상세 주소를 입력하세요', + // ), + // logger.i( + // '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${_postcodeController.text} / ${_addressController.text}/ ${_addressDetailController.text}', + // ); \ No newline at end of file diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index d9369a8..683c802 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -1,12 +1,16 @@ import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; + import 'package:saphy/screens/welcome/signup_screen.dart'; -import 'package:saphy/service/google_login_controller.dart'; -import 'package:saphy/service/kakao_login_controller.dart'; -import 'package:saphy/service/main_view_model.dart'; -import 'package:saphy/service/secure_storage.dart'; +import 'package:saphy/service/auth_service.dart'; +import 'package:saphy/service/authentication/google_login_controller.dart'; +import 'package:saphy/service/authentication/kakao_login_controller.dart'; +import 'package:saphy/service/authentication/main_view_model.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/log.dart'; +import 'package:saphy/utils/screen_controller.dart'; import 'package:saphy/widgets/login_button.dart'; class WelcomeScreen extends StatefulWidget { @@ -61,15 +65,21 @@ class _WelcomeScreenState extends State { onTap: () async { final GoogleSignInAccount user = await googleViewModel.login(); - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => SignupScreen( - socialType: 'GOOGLE', - userName: user.displayName, - userEmail: user.email, - userPhotoUrl: user.photoUrl, - userToken: readAccessToken().toString(), - ), - )); + + final accessToken = await readAccessToken(); + logger.i("TOKEN : $accessToken"); + + // await loginService('GOOGLE', user.email, accessToken); + + // Navigator.of(context).pushReplacement(MaterialPageRoute( + // builder: (context) => SignupScreen( + // socialType: 'GOOGLE', + // userName: user.displayName, + // userEmail: user.email, + // userPhotoUrl: user.photoUrl, + // userToken: readAccessToken().toString(), + // ), + // )); setState(() {}); }, ), @@ -82,16 +92,31 @@ class _WelcomeScreenState extends State { color: systemKakao, onTap: () async { final User user = await kakaoViewModel.login(); - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => SignupScreen( - socialType: 'KAKAO', - userName: user.kakaoAccount?.profile?.nickname, - userEmail: user.kakaoAccount?.email, - userPhotoUrl: - user.kakaoAccount?.profile?.thumbnailImageUrl, - userToken: readAccessToken().toString(), - ), - )); + + final accessToken = await readAccessToken(); + logger.i("TOKEN : $accessToken"); + + final code = await loginService( + 'KAKAO', user.kakaoAccount!.email!, accessToken); + + if (code == 200) { + //Login Success + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } else if (code == 300) { + //Navigate register screen + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'KAKAO', + userName: user.kakaoAccount?.profile?.nickname, + userEmail: user.kakaoAccount?.email, + userPhotoUrl: + user.kakaoAccount?.profile?.thumbnailImageUrl, + userToken: readAccessToken().toString(), + ), + )); + } }, ), const SizedBox(height: 10.0), diff --git a/lib/service/api_service.dart b/lib/service/api_service.dart new file mode 100644 index 0000000..8eeaec3 --- /dev/null +++ b/lib/service/api_service.dart @@ -0,0 +1,69 @@ +import 'dart:io'; +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'package:pretty_dio_logger/pretty_dio_logger.dart'; + +enum DioMethod { post, get, put, delete } + +class APIService { + APIService._singletone(); + static final APIService instance = APIService._singletone(); + + final logger = PrettyDioLogger( + requestHeader: true, + requestBody: true, + responseBody: true, + responseHeader: false, + compact: false, + ); + + String get baseUrl { + if (kDebugMode) { + return 'http://3.36.34.122:8080/'; + } else { + return 'http://3.36.34.122:8080/'; + } + } + + Future request( + String endpoint, + DioMethod method, { + Map? param, + String? contentType, + formData, + token, + }) async { + final dio = Dio(BaseOptions( + baseUrl: baseUrl, + contentType: contentType ?? Headers.formUrlEncodedContentType, + headers: {HttpHeaders.authorizationHeader: 'Bearer $token'})); + dio.interceptors.add(logger); + switch (method) { + case DioMethod.post: + return dio.post( + endpoint, + data: param ?? formData, + ); + case DioMethod.get: + return dio.get( + endpoint, + queryParameters: param, + ); + case DioMethod.put: + return dio.put( + endpoint, + data: param ?? formData, + ); + case DioMethod.delete: + return dio.delete( + endpoint, + data: param ?? formData, + ); + default: + return dio.post( + endpoint, + data: param ?? formData, + ); + } + } +} diff --git a/lib/service/auth_service.dart b/lib/service/auth_service.dart new file mode 100644 index 0000000..5845c07 --- /dev/null +++ b/lib/service/auth_service.dart @@ -0,0 +1,27 @@ +import 'package:saphy/service/api_service.dart'; + +Future loginService(String socialType, String email, String token) async { + final socialTypeLowerCase = socialType.toLowerCase(); + try { + final response = await APIService.instance.request( + '/oauth2/$socialTypeLowerCase/login', + DioMethod.post, + param: {'email': email, 'socialType': socialType}, + contentType: 'application/json', + token: token, + ); + if (response.statusCode == 200) { + print('API call login successful: ${response.data}'); + return response.statusCode; + } else if (response.statusCode == 300) { + print('API call successful, redirect register screen: ${response.data}'); + return response.statusCode; + } else { + print('API call failed: ${response.statusMessage}'); + return response.statusCode; + } + } catch (e) { + print('Network error occurred: $e'); + } + return null; +} diff --git a/lib/service/google_login_controller.dart b/lib/service/authentication/google_login_controller.dart similarity index 84% rename from lib/service/google_login_controller.dart rename to lib/service/authentication/google_login_controller.dart index b97d4b6..e0ec221 100644 --- a/lib/service/google_login_controller.dart +++ b/lib/service/authentication/google_login_controller.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; -import 'package:saphy/service/secure_storage.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; +import 'package:saphy/utils/log.dart'; class GoogleLoginController implements SocialLogin { static final _googleSignIn = GoogleSignIn(); @@ -15,7 +16,7 @@ class GoogleLoginController implements SocialLogin { final refreshToken = googleKey?.idToken; writeAccessToke(accessToken); writeRefreshToke(refreshToken); - print('Google Login Success $user'); + logger.i('Google Login Success $user'); return user; } catch (error) { print('Google Login Failed $error'); diff --git a/lib/service/kakao_login_controller.dart b/lib/service/authentication/kakao_login_controller.dart similarity index 60% rename from lib/service/kakao_login_controller.dart rename to lib/service/authentication/kakao_login_controller.dart index c9da55c..338fd4b 100644 --- a/lib/service/kakao_login_controller.dart +++ b/lib/service/authentication/kakao_login_controller.dart @@ -1,7 +1,8 @@ import 'package:flutter/services.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; -import 'package:saphy/service/secure_storage.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; +import 'package:saphy/utils/log.dart'; class KakaoLoginController implements SocialLogin { @override @@ -11,29 +12,33 @@ class KakaoLoginController implements SocialLogin { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); writeAccessToke(token.accessToken); writeRefreshToke(token.refreshToken); - print('Kakaotalk Login Success ${token.accessToken}'); + logger.i('Kakaotalk Login Success ${token.accessToken}'); return true; } catch (error) { - print('Kakaotalk Login Failed $error'); + logger.i('Kakaotalk Login Failed $error'); if (error is PlatformException && error.code == 'CANCELED') { return false; } try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); - print('KakaoAccount Login Success ${token.accessToken}'); + writeAccessToke(token.accessToken); + writeRefreshToke(token.refreshToken); + logger.i('KakaoAccount Login Success ${token.accessToken}'); return true; } catch (error) { - print('KakaoAccount Login Failed $error'); + logger.i('KakaoAccount Login Failed $error'); return false; } } } else { try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); - print('KakaoAccount Login Success ${token.accessToken}'); + logger.i('KakaoAccount Login Success ${token.accessToken}'); + writeAccessToke(token.accessToken); + writeRefreshToke(token.refreshToken); return true; } catch (error) { - print('KakaoAccount Login Failed $error'); + logger.i('KakaoAccount Login Failed $error'); return false; } } @@ -43,10 +48,10 @@ class KakaoLoginController implements SocialLogin { Future logout() async { try { await UserApi.instance.unlink(); - print('Kakao Logout Success'); + logger.i('Kakao Logout Success'); return true; } catch (error) { - print('Kakao Logout Failed $error'); + logger.i('Kakao Logout Failed $error'); return false; } } diff --git a/lib/service/main_view_model.dart b/lib/service/authentication/main_view_model.dart similarity index 88% rename from lib/service/main_view_model.dart rename to lib/service/authentication/main_view_model.dart index 523ab58..63f885e 100644 --- a/lib/service/main_view_model.dart +++ b/lib/service/authentication/main_view_model.dart @@ -1,7 +1,7 @@ import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; -import 'package:saphy/service/google_login_controller.dart'; -import 'package:saphy/service/kakao_login_controller.dart'; +import 'package:saphy/service/authentication/google_login_controller.dart'; +import 'package:saphy/service/authentication/kakao_login_controller.dart'; import 'package:saphy/service/social_login.dart'; class MainViewModel { diff --git a/lib/service/secure_storage.dart b/lib/service/authentication/secure_storage.dart similarity index 88% rename from lib/service/secure_storage.dart rename to lib/service/authentication/secure_storage.dart index fb4f3d8..8a471ca 100644 --- a/lib/service/secure_storage.dart +++ b/lib/service/authentication/secure_storage.dart @@ -11,7 +11,7 @@ writeAccessToke(String? value) async { await storage.write(key: 'AccessToken', value: value); } -deleteAccessToke(String? value) async { +deleteAccessToke() async { await storage.delete(key: 'AccessToken'); } @@ -24,6 +24,6 @@ writeRefreshToke(String? value) async { await storage.write(key: 'RefreshToken', value: value); } -deleteRefreshToke(String? value) async { +deleteRefreshToke() async { await storage.delete(key: 'RefreshToken'); } diff --git a/lib/utils/log.dart b/lib/utils/log.dart new file mode 100644 index 0000000..0da7e36 --- /dev/null +++ b/lib/utils/log.dart @@ -0,0 +1,20 @@ +import 'package:logger/logger.dart'; + +Logger get logger => Log.instance; + +class Log extends Logger { + Log._() + : super( + printer: PrettyPrinter( + methodCount: 2, // Number of method calls to be displayed + errorMethodCount: + 8, // Number of method calls if stacktrace is provided + lineLength: 120, // Width of the output + colors: true, // Colorful log messages + printEmojis: true, // Print an emoji for each log message + // Should each log print contain a timestamp + dateTimeFormat: DateTimeFormat.onlyTimeAndSinceStart, + ), + ); + static final instance = Log._(); +} diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 35ac0be..d0e7f79 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,10 +6,10 @@ #include "generated_plugin_registrant.h" -#include +#include void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) flutter_secure_storage_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStoragePlugin"); - flutter_secure_storage_plugin_register_with_registrar(flutter_secure_storage_registrar); + 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/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index af79c3c..b29e9ba 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,7 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST - flutter_secure_storage + flutter_secure_storage_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 539ed51..7666533 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,12 +5,14 @@ import FlutterMacOS import Foundation +import flutter_secure_storage_macos import google_sign_in_ios import path_provider_foundation import shared_preferences_foundation import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 3cd9800..3b8b056 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -218,10 +218,10 @@ packages: dependency: transitive description: name: flutter_cache_manager - sha256: "395d6b7831f21f3b989ebedbb785545932adb9afe2622c1ffacf7f4b53a7e544" + sha256: a77f77806a790eb9ba0118a5a3a936e81c4fea2b61533033b2b0c3d50bbde5ea url: "https://pub.dev" source: hosted - version: "3.3.2" + version: "3.4.0" flutter_dotenv: dependency: "direct main" description: @@ -234,18 +234,58 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "4.0.0" flutter_secure_storage: dependency: "direct main" description: name: flutter_secure_storage - sha256: "9f3dd2ac3b6875b0fde5b04734789c3ef35ba3965c18e99dd564a7a2f8056df6" + sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0" url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "9.2.2" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + 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 @@ -284,10 +324,10 @@ packages: dependency: transitive description: name: google_sign_in_android - sha256: d30fb34b659679ea74397e9748b4ab5d720720d57dcc79538f1b3c4a68654cb3 + sha256: "5a47ebec9af97daf0822e800e4f101c3340b5ebc3f6898cf860c1a71b53cf077" url: "https://pub.dev" source: hosted - version: "6.1.27" + version: "6.1.28" google_sign_in_ios: dependency: transitive description: @@ -364,42 +404,42 @@ packages: dependency: transitive description: name: kakao_flutter_sdk_auth - sha256: e59fa065641b77ed444804af5a74a94b5fdf1893e25fa6269b7c1d43864c0052 + sha256: "43b81bb90d0e01516d321ab3cedc32303f661f115c564489c0fcc4e4a065c777" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.2" kakao_flutter_sdk_common: dependency: transitive description: name: kakao_flutter_sdk_common - sha256: "0c8fe546efc577154641bbe1038e7c5438d0711dd5deebd83d26ed65235e1077" + sha256: "0e3ffd97fa35386d6fabe854cb4c5799b303c75b25f15ce4ec10163d87a5caa5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.2" kakao_flutter_sdk_talk: dependency: "direct main" description: name: kakao_flutter_sdk_talk - sha256: fdf7265f640249682c902d3ccaffb1b1374ba288e8122c99a8f88e8feeadf643 + sha256: e4aea82d5ac167c57dc2f6ea2e75ae5712d1ae29dadde1343df2c007591b6b53 url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.2" kakao_flutter_sdk_template: dependency: transitive description: name: kakao_flutter_sdk_template - sha256: "93b56370f3021234c6c8bfe698f5dc4a611a320fbd728236f8c4ed4141a6679a" + sha256: "7d38a7fe8984649f83e81831868aba0b85d058cd7c0568814f8e4dcb8dba4000" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.2" kakao_flutter_sdk_user: dependency: "direct main" description: name: kakao_flutter_sdk_user - sha256: "2042a323bf299eb78c5fa6ec898cf0871734399cad5d4373551c63630624bce4" + sha256: "9d3bd35d5b31cf01d45c7d114ca0c589d5098d8e6efce6f13d574ea692ba6a62" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.2" leak_tracker: dependency: transitive description: @@ -428,10 +468,10 @@ packages: dependency: transitive description: name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "4.0.0" logger: dependency: "direct main" description: @@ -500,18 +540,18 @@ packages: dependency: transitive description: name: path_provider - sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "30c5aa827a6ae95ce2853cdc5fe3971daaac00f6f081c419c013f7f57bff2f5e" + sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb" url: "https://pub.dev" source: hosted - version: "2.2.7" + version: "2.2.9" path_provider_foundation: dependency: transitive description: @@ -568,6 +608,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.9.1" + pretty_dio_logger: + dependency: "direct main" + description: + name: pretty_dio_logger + sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407" + url: "https://pub.dev" + source: hosted + version: "1.4.0" pub_semver: dependency: transitive description: @@ -596,12 +644,12 @@ packages: dependency: transitive description: name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" url: "https://pub.dev" source: hosted - version: "0.27.7" + version: "0.28.0" shared_preferences: - dependency: "direct main" + dependency: transitive description: name: shared_preferences sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 @@ -612,34 +660,34 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + sha256: "041be4d9d2dc6079cf342bc8b761b03787e3b71192d658220a56cac9c04a0294" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.0" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "2ba0510d3017f91655b7543e9ee46d48619de2a2af38e5c790423f7007c7ccc1" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.0" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "034650b71e73629ca08a0bd789fd1d83cc63c2d1e405946f7cef7bc37432f93a" + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" shared_preferences_web: dependency: transitive description: @@ -652,10 +700,10 @@ packages: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "398084b47b7f92110683cac45c6dc4aae853db47e470e5ddcd52cab7f7196ab2" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.0" sky_engine: dependency: transitive description: flutter @@ -837,6 +885,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.9.5" + win32: + dependency: transitive + description: + name: win32 + sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9" + url: "https://pub.dev" + source: hosted + version: "5.5.3" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 4261a43..b72ab47 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,21 +37,22 @@ dependencies: google_sign_in: ^6.2.1 dio: ^5.5.0+1 platform: ^3.1.5 - shared_preferences: ^2.2.3 + # shared_preferences: ^2.3.0 crypto: ^3.0.3 encrypt: ^5.0.3 kakao_flutter_sdk_user: ^1.9.0 kakao_flutter_sdk_talk: ^1.9.0 - flutter_secure_storage: ^4.2.1 + flutter_secure_storage: ^9.2.2 remedi_kopo: ^0.0.2 logger: ^2.4.0 + pretty_dio_logger: ^1.4.0 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^3.0.0 + flutter_lints: ^4.0.0 json_serializable: ^6.8.0 flutter: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..0c50753 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b93c4c3..4fc759c 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 7eaa087e5d77a0296d76304b11d5f78a2bf9356b Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Fri, 2 Aug 2024 14:10:27 +0900 Subject: [PATCH 21/54] Feat: Complete to call login api --- lib/models/status.dart | 16 ++++++++++++++++ lib/service/auth_service.dart | 24 +++++++++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 lib/models/status.dart diff --git a/lib/models/status.dart b/lib/models/status.dart new file mode 100644 index 0000000..840dcaa --- /dev/null +++ b/lib/models/status.dart @@ -0,0 +1,16 @@ +class Status { + final String code; + final String message; + + Status({ + required this.code, + required this.message, + }); + + factory Status.fromJson(Map json) { + return Status( + code: json['code'], + message: json['message'], + ); + } +} diff --git a/lib/service/auth_service.dart b/lib/service/auth_service.dart index 5845c07..a0ac0f7 100644 --- a/lib/service/auth_service.dart +++ b/lib/service/auth_service.dart @@ -1,4 +1,8 @@ +import 'dart:convert'; + +import 'package:saphy/models/status.dart'; import 'package:saphy/service/api_service.dart'; +import 'package:saphy/utils/log.dart'; Future loginService(String socialType, String email, String token) async { final socialTypeLowerCase = socialType.toLowerCase(); @@ -10,18 +14,24 @@ Future loginService(String socialType, String email, String token) async { contentType: 'application/json', token: token, ); + + final responseData = response.data; + final statusCode = responseData['status']['code']; + logger.i('Status code: $statusCode'); + if (response.statusCode == 200) { - print('API call login successful: ${response.data}'); - return response.statusCode; + logger.i('API call login successful: ${response.data}'); + return statusCode; } else if (response.statusCode == 300) { - print('API call successful, redirect register screen: ${response.data}'); - return response.statusCode; + logger + .i('API call successful, redirect register screen: ${response.data}'); + return statusCode; } else { - print('API call failed: ${response.statusMessage}'); - return response.statusCode; + logger.i('API call failed: ${response.statusMessage}'); + return statusCode; } } catch (e) { - print('Network error occurred: $e'); + logger.i('Network error occurred: $e'); } return null; } From ea84f9cc33f7b5c61c1be3bfbee1dee90a8d5cfc Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Fri, 2 Aug 2024 18:18:32 +0900 Subject: [PATCH 22/54] Feat: Create OTP verification by phone number with firebase --- android/app/build.gradle | 1 + android/app/google-services.json | 32 +++- android/build.gradle | 11 ++ .../Flutter.build/dgph | Bin 0 -> 93 bytes .../Pods-Runner.build/dgph | Bin 0 -> 93 bytes .../Pods-RunnerTests.build/dgph | Bin 0 -> 93 bytes .../dgph | Bin 0 -> 93 bytes .../path_provider_foundation.build/dgph | Bin 0 -> 93 bytes .../sqflite-sqflite_darwin_privacy.build/dgph | Bin 0 -> 93 bytes .../sqflite.build/dgph | Bin 0 -> 93 bytes lib/main.dart | 9 +- lib/models/status.dart | 16 -- lib/screens/welcome/otp_screen.dart | 155 +++++++++++------- lib/screens/welcome/signup_screen.dart | 111 ++++++++++--- lib/screens/welcome/welcome_screen.dart | 11 +- lib/service/auth_service.dart | 39 ++++- lib/utils/otp_form.dart | 58 +++++++ lib/widgets/login_button.dart | 10 +- lib/widgets/normal_button.dart | 12 +- lib/widgets/sign_up_form.dart | 22 +-- lib/widgets/text_field.dart | 1 - macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 56 +++++++ pubspec.yaml | 2 + .../flutter/generated_plugin_registrant.cc | 6 + windows/flutter/generated_plugins.cmake | 2 + 26 files changed, 416 insertions(+), 142 deletions(-) create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/Flutter.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/Pods-RunnerTests.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation-path_provider_foundation_privacy.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/sqflite-sqflite_darwin_privacy.build/dgph create mode 100644 android/build/ios/Pods.build/Release-iphonesimulator/sqflite.build/dgph delete mode 100644 lib/models/status.dart create mode 100644 lib/utils/otp_form.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 107cba4..ae9cc7f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -2,6 +2,7 @@ plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" + id 'com.google.gms.google-services' } import java.nio.file.Files diff --git a/android/app/google-services.json b/android/app/google-services.json index d42f4ee..f4274f9 100644 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -1,26 +1,44 @@ { "project_info": { - "project_number": "1087162194276", - "project_id": "saphy-e9775", - "storage_bucket": "saphy-e9775.appspot.com" + "project_number": "754445879555", + "project_id": "saphy-27f69", + "storage_bucket": "saphy-27f69.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:1087162194276:android:2bcd92a156f8b0b0e1c271", + "mobilesdk_app_id": "1:754445879555:android:a8dc2d555589872e04c136", "android_client_info": { "package_name": "com.example.saphy" } }, - "oauth_client": [], + "oauth_client": [ + { + "client_id": "754445879555-2cf68o04seos49f93a81tnu8mr49ev7k.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.saphy", + "certificate_hash": "de75bd90a439941e86d2d5df7b44b4450bc27233" + } + }, + { + "client_id": "754445879555-e2lt672vru7gia1kih23rpo3kq725m39.apps.googleusercontent.com", + "client_type": 3 + } + ], "api_key": [ { - "current_key": "AIzaSyA_bWIuhUT2yUAKN3LJEB-889dLBvYmjO0" + "current_key": "AIzaSyDvgHWxTCbZ8jlDktwOtfAnacs5JN2ZI9o" } ], "services": { "appinvite_service": { - "other_platform_oauth_client": [] + "other_platform_oauth_client": [ + { + "client_id": "754445879555-e2lt672vru7gia1kih23rpo3kq725m39.apps.googleusercontent.com", + "client_type": 3 + } + ] } } } diff --git a/android/build.gradle b/android/build.gradle index bc157bd..945b90b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,3 +1,14 @@ +buildscript { + ext.kotlin_version = '1.7.10' + repositories { + google() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.google.gms:google-services:4.3.15' + } + } allprojects { repositories { google() diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/Flutter.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/Flutter.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/Pods-RunnerTests.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/Pods-RunnerTests.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation-path_provider_foundation_privacy.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation-path_provider_foundation_privacy.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/path_provider_foundation.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/sqflite-sqflite_darwin_privacy.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/sqflite-sqflite_darwin_privacy.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/android/build/ios/Pods.build/Release-iphonesimulator/sqflite.build/dgph b/android/build/ios/Pods.build/Release-iphonesimulator/sqflite.build/dgph new file mode 100644 index 0000000000000000000000000000000000000000..46044d9c9d7ff920a8685b96324d1d4404badc9a GIT binary patch literal 93 zcmZ>95AZP5Gce(HEGSY?Fjg=!Ff!pVw6roYv@$YaXJBB|XJBLvElw>eW?0MQE-5dZ)H literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index b80ee22..6182bba 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ +import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:logger/logger.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/screens/welcome/welcome_screen.dart'; @@ -11,6 +11,7 @@ import 'package:saphy/utils/screen_controller.dart'; void main() async { await dotenv.load(fileName: 'assets/config/.env'); WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); String? kakaoNativeAppKey = dotenv.env['KAKAO_NATIVE_APP_KEY']; KakaoSdk.init( nativeAppKey: kakaoNativeAppKey, @@ -41,7 +42,11 @@ class MyApp extends StatelessWidget { userPhotoUrl: '', userToken: '', ), - OtpScreen.id: (context) => const OtpScreen(), + OtpScreen.id: (context) => OtpScreen( + verificationId: '', + phoneNumber: '', + onVerificationSuccess: () {}, + ), }, ); } diff --git a/lib/models/status.dart b/lib/models/status.dart deleted file mode 100644 index 840dcaa..0000000 --- a/lib/models/status.dart +++ /dev/null @@ -1,16 +0,0 @@ -class Status { - final String code; - final String message; - - Status({ - required this.code, - required this.message, - }); - - factory Status.fromJson(Map json) { - return Status( - code: json['code'], - message: json['message'], - ); - } -} diff --git a/lib/screens/welcome/otp_screen.dart b/lib/screens/welcome/otp_screen.dart index f2d31b7..03e3cbd 100644 --- a/lib/screens/welcome/otp_screen.dart +++ b/lib/screens/welcome/otp_screen.dart @@ -1,99 +1,134 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/log.dart'; +import 'package:saphy/utils/otp_form.dart'; +import 'package:saphy/widgets/normal_button.dart'; class OtpScreen extends StatefulWidget { static String id = 'otp_screen'; - const OtpScreen({super.key}); + const OtpScreen({ + super.key, + required this.verificationId, + required this.phoneNumber, + required this.onVerificationSuccess, + }); + + final String verificationId; + final String phoneNumber; + final VoidCallback onVerificationSuccess; @override State createState() => _OtpScreenState(); } class _OtpScreenState extends State { + final TextEditingController _controller1 = TextEditingController(); + final TextEditingController _controller2 = TextEditingController(); + final TextEditingController _controller3 = TextEditingController(); + final TextEditingController _controller4 = TextEditingController(); + final TextEditingController _controller5 = TextEditingController(); + final TextEditingController _controller6 = TextEditingController(); + + String get smsCode { + return _controller1.text + + _controller2.text + + _controller3.text + + _controller4.text + + _controller5.text + + _controller6.text; + } + @override Widget build(BuildContext context) { return Scaffold( body: Form( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Row( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + '안전한 중고거래를 위해서!', + style: TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 30.0, + fontWeight: FontWeight.w800, + color: altBlack, + ), + ), + const SizedBox( + height: 10.0, + ), + Text( + '${widget.phoneNumber}로 인증번호가 전송되었습니다.', + style: const TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 20.0, + fontWeight: FontWeight.w400, + color: altBlack, + ), + ), + const SizedBox( + height: 10.0, + ), + Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ OtpForm( + controller: _controller1, lastNode: false, ), OtpForm( + controller: _controller2, lastNode: false, ), OtpForm( + controller: _controller3, lastNode: false, ), OtpForm( + controller: _controller4, + lastNode: false, + ), + OtpForm( + controller: _controller5, + lastNode: false, + ), + OtpForm( + controller: _controller6, lastNode: true, ), ], ), - ), - ], - )), - ); - } -} - -class OtpForm extends StatelessWidget { - OtpForm({ - super.key, - required this.lastNode, - }); - - bool lastNode; - - @override - Widget build(BuildContext context) { - return SizedBox( - height: 90.0, - width: 80.0, - child: TextFormField( - onChanged: (value) { - if (value.length == 1) { - if (lastNode) { - FocusScope.of(context).unfocus(); - } else { - FocusScope.of(context).nextFocus(); - } - } - }, - decoration: InputDecoration( - border: OutlineInputBorder( - borderSide: const BorderSide(color: gray400, width: 2.0), - borderRadius: BorderRadius.circular(10.0), + const SizedBox( + height: 20.0, + ), + NormalButton( + title: "인증하기", + color: mainPrimary, + flag: true, + onTap: () async { + logger.i(smsCode); + try { + final credential = PhoneAuthProvider.credential( + verificationId: widget.verificationId, smsCode: smsCode); + await FirebaseAuth.instance + .signInWithCredential(credential) + .then((_) { + widget.onVerificationSuccess(); + Navigator.of(context).pop(); + }); + } catch (e) { + print(e); + } + }, ), - focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: main500, width: 2.0), - borderRadius: BorderRadius.circular(10.0), - )), - cursorColor: main500, - cursorHeight: 50.0, - style: const TextStyle( - fontFamily: 'Pretendard-Bold', - fontSize: 40.0, - fontWeight: FontWeight.w800, - color: altBlack, + ], ), - textAlign: TextAlign.center, - textAlignVertical: TextAlignVertical.center, - keyboardType: TextInputType.number, - inputFormatters: [ - LengthLimitingTextInputFormatter(1), - FilteringTextInputFormatter.digitsOnly, - ], - ), + )), ); } } diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index 0148455..17fec3a 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -1,12 +1,12 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; -import 'package:google_sign_in/google_sign_in.dart'; import 'package:logger/web.dart'; +import 'package:saphy/screens/welcome/otp_screen.dart'; +import 'package:saphy/service/auth_service.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/phone_input_formatter.dart'; -import 'package:saphy/utils/search_adress.dart'; -import 'package:saphy/widgets/login_button.dart'; import 'package:saphy/widgets/normal_button.dart'; import 'package:saphy/widgets/sign_up_form.dart'; @@ -38,15 +38,12 @@ class SignupScreen extends StatefulWidget { class _SignupScreenState extends State { Logger logger = Logger(); - bool flag = true; + static bool phoneAuth = false; + String userPhoneNumber = '010-'; final TextEditingController _nameController = TextEditingController(); final TextEditingController _emailController = TextEditingController(); final TextEditingController _phoneController = TextEditingController(); - final TextEditingController _postcodeController = TextEditingController(); - final TextEditingController _addressController = TextEditingController(); - final TextEditingController _addressDetailController = - TextEditingController(); String? socialType; String? userName; @@ -64,9 +61,6 @@ class _SignupScreenState extends State { _nameController.dispose(); _emailController.dispose(); _phoneController.dispose(); - _postcodeController.dispose(); - _addressController.dispose(); - _addressDetailController.dispose(); super.dispose(); } @@ -103,37 +97,93 @@ class _SignupScreenState extends State { ), SignUpForm( textEditingController: _nameController, - readOnly: false, + readOnly: true, formatter: const [], initialValue: userName ?? '', labelText: '어떻게 불러드릴까요?', ), SignUpForm( textEditingController: _emailController, - readOnly: false, + readOnly: true, formatter: const [], initialValue: userEmail ?? '', labelText: '이메일을 알려주세요', ), SignUpForm( textEditingController: _phoneController, - readOnly: false, + readOnly: phoneAuth, formatter: [ FilteringTextInputFormatter.digitsOnly, LengthLimitingTextInputFormatter(11), PhoneInputFormatter(), ], - initialValue: '', + initialValue: userPhoneNumber, labelText: '전화번호를 알려주세요', ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 100.0), + child: NormalButton( + title: "인증번호 전송", + color: phoneAuth ? gray300 : mainPrimary, + flag: !phoneAuth, + onTap: () async { + String phoneNumber = _phoneController.text.trim(); + String formattedNumber = ''; + if (phoneNumber.isNotEmpty) { + // '-'를 제거하고, 앞에 +82를 붙임 + formattedNumber = phoneNumber + .replaceAll('-', '') // '-' 제거 + .replaceFirst( + '010', '+8210'); // '010'을 '+8210'으로 변환 + } + logger.i(formattedNumber); + await FirebaseAuth.instance.verifyPhoneNumber( + phoneNumber: formattedNumber, + verificationCompleted: (PhoneAuthCredential) {}, + verificationFailed: (error) { + logger.i(error); + }, + codeSent: (verificationId, forceResendingToken) { + //if code is send successfully then nevigate to next screen + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => OtpScreen( + verificationId: verificationId, + phoneNumber: formattedNumber, + onVerificationSuccess: () { + setState(() { + phoneAuth = true; + userPhoneNumber = _phoneController.text; + }); + }, + ), + ), + ); + }, + codeAutoRetrievalTimeout: (verificationId) {}, + ); + }), + ), + const SizedBox( + height: 50.0, + ), NormalButton( - title: '다 적었어요', - color: mainPrimary, - onTap: () { - logger.i( - '${_nameController.text} / ${_emailController.text} / ${_phoneController.text}', - ); - }) + title: '사피 시작하기', + color: phoneAuth ? mainPrimary : gray400, + flag: phoneAuth, + onTap: () { + logger.i( + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} / ${widget.userToken}', + ); + joinService( + widget.socialType!, + _emailController.text, + _nameController.text, + widget.userPhotoUrl ?? '', + _phoneController.text, + widget.userToken!); + }, + ) ], ), ), @@ -142,6 +192,23 @@ class _SignupScreenState extends State { } } + + + + + + + + + + + + + + // final TextEditingController _postcodeController = TextEditingController(); + // final TextEditingController _addressController = TextEditingController(); + // final TextEditingController _addressDetailController = + // TextEditingController(); // Padding( // padding: const EdgeInsets.only(bottom: 10.0), // child: NormalButton( diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index 683c802..29c3963 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; - import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/service/auth_service.dart'; import 'package:saphy/service/authentication/google_login_controller.dart'; @@ -63,11 +62,11 @@ class _WelcomeScreenState extends State { ), color: white, onTap: () async { - final GoogleSignInAccount user = - await googleViewModel.login(); + // final GoogleSignInAccount user = + // await googleViewModel.login(); - final accessToken = await readAccessToken(); - logger.i("TOKEN : $accessToken"); + // final accessToken = await readAccessToken(); + // logger.i("TOKEN : $accessToken"); // await loginService('GOOGLE', user.email, accessToken); @@ -113,7 +112,7 @@ class _WelcomeScreenState extends State { userEmail: user.kakaoAccount?.email, userPhotoUrl: user.kakaoAccount?.profile?.thumbnailImageUrl, - userToken: readAccessToken().toString(), + userToken: accessToken, ), )); } diff --git a/lib/service/auth_service.dart b/lib/service/auth_service.dart index a0ac0f7..a21b995 100644 --- a/lib/service/auth_service.dart +++ b/lib/service/auth_service.dart @@ -1,6 +1,3 @@ -import 'dart:convert'; - -import 'package:saphy/models/status.dart'; import 'package:saphy/service/api_service.dart'; import 'package:saphy/utils/log.dart'; @@ -20,14 +17,14 @@ Future loginService(String socialType, String email, String token) async { logger.i('Status code: $statusCode'); if (response.statusCode == 200) { - logger.i('API call login successful: ${response.data}'); + logger.i('API call [loginService] successful: ${response.data}'); return statusCode; } else if (response.statusCode == 300) { - logger - .i('API call successful, redirect register screen: ${response.data}'); + logger.i( + 'API call [loginService] successful, redirect register screen: ${response.data}'); return statusCode; } else { - logger.i('API call failed: ${response.statusMessage}'); + logger.i('API call [loginService] failed: ${response.statusMessage}'); return statusCode; } } catch (e) { @@ -35,3 +32,31 @@ Future loginService(String socialType, String email, String token) async { } return null; } + +Future joinService(String socialType, String email, String name, + String profilePhotoUrl, String phoneNumber, String accessToken) async { + try { + final response = await APIService.instance.request( + '/members/join', + DioMethod.post, + param: { + 'email': email, + 'socialType': socialType, + 'name': name, + 'profilePhotoUrl': profilePhotoUrl, + 'phoneNumber': phoneNumber, + 'AccessToken': accessToken + }, + contentType: 'application/json', + ); + + if (response.statusCode == 200) { + logger.i('API call [joinService] successful: ${response.data}'); + } else { + logger.i('API call [loginService] failed: ${response.statusMessage}'); + } + } catch (e) { + logger.i('Network error occurred: $e'); + } + return; +} diff --git a/lib/utils/otp_form.dart b/lib/utils/otp_form.dart new file mode 100644 index 0000000..528b9a9 --- /dev/null +++ b/lib/utils/otp_form.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:saphy/utils/colors.dart'; + +class OtpForm extends StatelessWidget { + const OtpForm({ + super.key, + required this.lastNode, + required this.controller, + }); + + final TextEditingController controller; + final bool lastNode; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 70.0, + width: 60.0, + child: TextFormField( + controller: controller, + onChanged: (value) { + if (value.length == 1) { + if (lastNode) { + FocusScope.of(context).unfocus(); + } else { + FocusScope.of(context).nextFocus(); + } + } + }, + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: const BorderSide(color: mainPrimary, width: 2.0), + borderRadius: BorderRadius.circular(10.0), + ), + focusedBorder: OutlineInputBorder( + borderSide: const BorderSide(color: mainPrimary, width: 2.0), + borderRadius: BorderRadius.circular(10.0), + )), + cursorColor: main500, + cursorHeight: 50.0, + textAlign: TextAlign.center, + textAlignVertical: TextAlignVertical.center, + keyboardType: TextInputType.number, + inputFormatters: [ + LengthLimitingTextInputFormatter(1), + FilteringTextInputFormatter.digitsOnly, + ], + style: const TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 30.0, + fontWeight: FontWeight.w800, + color: mainPrimary, + ), + ), + ); + } +} diff --git a/lib/widgets/login_button.dart b/lib/widgets/login_button.dart index fcb9ff1..2571196 100644 --- a/lib/widgets/login_button.dart +++ b/lib/widgets/login_button.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:saphy/utils/colors.dart'; class LoginButton extends StatelessWidget { - LoginButton({ + const LoginButton({ super.key, required this.title, required this.logo, @@ -10,10 +10,10 @@ class LoginButton extends StatelessWidget { required this.onTap, }); - String title; - Image logo; - Color color; - Function() onTap; + final String title; + final Image logo; + final Color color; + final Function() onTap; @override Widget build(BuildContext context) { diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index b649bac..30aff63 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -2,21 +2,23 @@ import 'package:flutter/material.dart'; import 'package:saphy/utils/colors.dart'; class NormalButton extends StatelessWidget { - NormalButton({ + const NormalButton({ super.key, required this.title, required this.color, required this.onTap, + required this.flag, }); - String title; - Color color; - Function() onTap; + final String title; + final Color color; + final bool flag; + final Function() onTap; @override Widget build(BuildContext context) { return OutlinedButton( - onPressed: onTap, + onPressed: flag ? onTap : () {}, style: OutlinedButton.styleFrom( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), diff --git a/lib/widgets/sign_up_form.dart b/lib/widgets/sign_up_form.dart index 6516ab7..b95f4cb 100644 --- a/lib/widgets/sign_up_form.dart +++ b/lib/widgets/sign_up_form.dart @@ -4,7 +4,7 @@ import 'package:flutter/widgets.dart'; import 'package:saphy/utils/colors.dart'; class SignUpForm extends StatelessWidget { - SignUpForm({ + const SignUpForm({ super.key, required this.initialValue, required this.labelText, @@ -13,11 +13,11 @@ class SignUpForm extends StatelessWidget { required this.textEditingController, }); - TextEditingController textEditingController; - String initialValue; - String labelText; - List formatter; - bool readOnly; + final TextEditingController textEditingController; + final String initialValue; + final String labelText; + final List formatter; + final bool readOnly; @override Widget build(BuildContext context) { @@ -28,7 +28,7 @@ class SignUpForm extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - color: gray200, + color: readOnly ? gray500 : gray200, ), child: Padding( padding: const EdgeInsets.only(left: 10.0), @@ -36,21 +36,21 @@ class SignUpForm extends StatelessWidget { controller: textEditingController, readOnly: readOnly, inputFormatters: formatter, - style: const TextStyle( + style: TextStyle( fontFamily: 'Pretendard-Medium', fontSize: 20.0, fontWeight: FontWeight.w400, - color: altBlack, + color: readOnly ? gray200 : altBlack, ), decoration: InputDecoration( border: InputBorder.none, floatingLabelBehavior: FloatingLabelBehavior.always, labelText: labelText, - labelStyle: const TextStyle( + labelStyle: TextStyle( fontFamily: 'Pretendard-Medium', fontSize: 15.0, fontWeight: FontWeight.w300, - color: altBlack, + color: readOnly ? gray200 : altBlack, )), ), ), diff --git a/lib/widgets/text_field.dart b/lib/widgets/text_field.dart index a066c32..719bc18 100644 --- a/lib/widgets/text_field.dart +++ b/lib/widgets/text_field.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:saphy/screens/main/main_screen.dart'; class CustomTextField extends StatelessWidget { const CustomTextField({super.key}); diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 7666533..4b82451 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import firebase_auth +import firebase_core import flutter_secure_storage_macos import google_sign_in_ios import path_provider_foundation @@ -12,6 +14,8 @@ import shared_preferences_foundation import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/pubspec.lock b/pubspec.lock index 3b8b056..00662be 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -9,6 +9,14 @@ packages: url: "https://pub.dev" source: hosted version: "67.0.0" + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: f5628cd9c92ed11083f425fd1f8f1bc60ecdda458c81d73b143aeda036c35fe7 + url: "https://pub.dev" + source: hosted + version: "1.3.16" analyzer: dependency: transitive description: @@ -201,6 +209,54 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.0" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: "279b2773ff61afd9763202cb5582e2b995ee57419d826b9af6517302a59b672f" + url: "https://pub.dev" + source: hosted + version: "4.16.0" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "3c9cfaccb7549492edf5b0c67c6dd1c6727c7830891aa6727f2fb225f0226626" + url: "https://pub.dev" + source: hosted + version: "7.0.9" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: c7b1379ccef7abf4b6816eede67a868c44142198e42350f51c01d8fc03f95a7d + url: "https://pub.dev" + source: hosted + version: "5.8.13" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "96607c0e829a581c2a483c658f04e8b159964c3bae2730f73297070bc85d40bb" + url: "https://pub.dev" + source: hosted + version: "2.24.2" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: "3c3a1e92d6f4916c32deea79c4a7587aa0e9dbbe5889c7a16afcf005a485ee02" + url: "https://pub.dev" + source: hosted + version: "5.2.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: d585bdf3c656c3f7821ba1bd44da5f13365d22fcecaf5eb75c4295246aaa83c0 + url: "https://pub.dev" + source: hosted + version: "2.10.0" fixnum: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index b72ab47..39e55ae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -46,6 +46,8 @@ dependencies: remedi_kopo: ^0.0.2 logger: ^2.4.0 pretty_dio_logger: ^1.4.0 + firebase_core: ^2.24.2 + firebase_auth: ^4.16.0 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 0c50753..ea9741e 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,9 +6,15 @@ #include "generated_plugin_registrant.h" +#include +#include #include void RegisterPlugins(flutter::PluginRegistry* registry) { + FirebaseAuthPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi")); + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 4fc759c..b8ca912 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,8 @@ # list(APPEND FLUTTER_PLUGIN_LIST + firebase_auth + firebase_core flutter_secure_storage_windows ) From 0e55951073b7326dcfe8d282c58b1ffd57b2a600 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Wed, 7 Aug 2024 03:15:24 +0900 Subject: [PATCH 23/54] Feat: Complete to login and register service. (also auto login) --- android/app/google-services.json | 8 ++ android/settings.gradle | 3 + firebase.json | 1 + ios/Runner.xcodeproj/project.pbxproj | 4 + ios/Runner/GoogleService-Info.plist | 36 ++++++ lib/firebase_options.dart | 90 +++++++++++++++ lib/main.dart | 6 +- lib/models/loginInfo.dart | 21 ++++ lib/screens/welcome/loding_screen.dart | 14 +++ lib/screens/welcome/signup_screen.dart | 40 ++++--- lib/screens/welcome/welcome_screen.dart | 104 ++++++++++++------ lib/service/api_service.dart | 1 + lib/service/auth_service.dart | 33 ++++-- .../google_login_controller.dart | 16 ++- .../kakao_login_controller.dart | 13 ++- .../authentication/main_view_model.dart | 17 +++ .../authentication/secure_storage.dart | 29 +++++ macos/Runner.xcodeproj/project.pbxproj | 4 + macos/Runner/GoogleService-Info.plist | 36 ++++++ 19 files changed, 406 insertions(+), 70 deletions(-) create mode 100644 firebase.json create mode 100644 ios/Runner/GoogleService-Info.plist create mode 100644 lib/firebase_options.dart create mode 100644 lib/models/loginInfo.dart create mode 100644 lib/screens/welcome/loding_screen.dart create mode 100644 macos/Runner/GoogleService-Info.plist diff --git a/android/app/google-services.json b/android/app/google-services.json index f4274f9..00ed363 100644 --- a/android/app/google-services.json +++ b/android/app/google-services.json @@ -21,6 +21,14 @@ "certificate_hash": "de75bd90a439941e86d2d5df7b44b4450bc27233" } }, + { + "client_id": "754445879555-msrjakrvhv016ltraa30o6qak37ajqoi.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.saphy", + "certificate_hash": "c51808929095346237d2a1b2f70f998fab61643b" + } + }, { "client_id": "754445879555-e2lt672vru7gia1kih23rpo3kq725m39.apps.googleusercontent.com", "client_type": 3 diff --git a/android/settings.gradle b/android/settings.gradle index 1d6d19b..816dbe0 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -20,6 +20,9 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.0" apply false + // START: FlutterFire Configuration + id "com.google.gms.google-services" version "4.3.15" apply false + // END: FlutterFire Configuration id "org.jetbrains.kotlin.android" version "1.7.10" apply false } diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..00809dd --- /dev/null +++ b/firebase.json @@ -0,0 +1 @@ +{"flutter":{"platforms":{"android":{"default":{"projectId":"saphy-27f69","appId":"1:754445879555:android:a8dc2d555589872e04c136","fileOutput":"android/app/google-services.json"}},"ios":{"default":{"projectId":"saphy-27f69","appId":"1:754445879555:ios:8ad3553c76c38b9104c136","uploadDebugSymbols":false,"fileOutput":"ios/Runner/GoogleService-Info.plist"}},"macos":{"default":{"projectId":"saphy-27f69","appId":"1:754445879555:ios:8ad3553c76c38b9104c136","uploadDebugSymbols":false,"fileOutput":"macos/Runner/GoogleService-Info.plist"}},"dart":{"lib/firebase_options.dart":{"projectId":"saphy-27f69","configurations":{"android":"1:754445879555:android:a8dc2d555589872e04c136","ios":"1:754445879555:ios:8ad3553c76c38b9104c136","macos":"1:754445879555:ios:8ad3553c76c38b9104c136","web":"1:754445879555:web:cc2e656898a440c704c136","windows":"1:754445879555:web:c72a3706a7218a5b04c136"}}}}}} \ No newline at end of file diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index ac278fc..0957306 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -15,6 +15,7 @@ 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 */; }; + A5F65EFA9A81FDB25FC3553D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */; }; F34DA3CEE939750A78D673A7 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ @@ -61,6 +62,7 @@ 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 = ""; }; + 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 9F5D9EE7BF0AA0F4C2856FB1 /* 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 = ""; }; B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ED47CDADF35DDF2917118420 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -138,6 +140,7 @@ 331C8082294A63A400263BE5 /* RunnerTests */, 276443D08B1BC39FC9EE5C4D /* Pods */, 2DF5DA58C0B38C2ADF87C876 /* Frameworks */, + 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */, ); sourceTree = ""; }; @@ -265,6 +268,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + A5F65EFA9A81FDB25FC3553D /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..b2c008e --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 754445879555-r1fu6an4tqau05de9hc6vffif00r950b.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.754445879555-r1fu6an4tqau05de9hc6vffif00r950b + ANDROID_CLIENT_ID + 754445879555-2cf68o04seos49f93a81tnu8mr49ev7k.apps.googleusercontent.com + API_KEY + AIzaSyCtHWeObFJDgM4Why074HeusteeltZxCbw + GCM_SENDER_ID + 754445879555 + PLIST_VERSION + 1 + BUNDLE_ID + com.example.saphy + PROJECT_ID + saphy-27f69 + STORAGE_BUCKET + saphy-27f69.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:754445879555:ios:8ad3553c76c38b9104c136 + + \ No newline at end of file diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart new file mode 100644 index 0000000..5529ac2 --- /dev/null +++ b/lib/firebase_options.dart @@ -0,0 +1,90 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + return web; + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + return ios; + case TargetPlatform.macOS: + return macos; + case TargetPlatform.windows: + return windows; + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions web = FirebaseOptions( + apiKey: 'AIzaSyC81kj_fvrRAdqwnLjvuX_1eSxq__uG5Rc', + appId: '1:754445879555:web:cc2e656898a440c704c136', + messagingSenderId: '754445879555', + projectId: 'saphy-27f69', + authDomain: 'saphy-27f69.firebaseapp.com', + storageBucket: 'saphy-27f69.appspot.com', + ); + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyDvgHWxTCbZ8jlDktwOtfAnacs5JN2ZI9o', + appId: '1:754445879555:android:a8dc2d555589872e04c136', + messagingSenderId: '754445879555', + projectId: 'saphy-27f69', + storageBucket: 'saphy-27f69.appspot.com', + ); + + static const FirebaseOptions ios = FirebaseOptions( + apiKey: 'AIzaSyCtHWeObFJDgM4Why074HeusteeltZxCbw', + appId: '1:754445879555:ios:8ad3553c76c38b9104c136', + messagingSenderId: '754445879555', + projectId: 'saphy-27f69', + storageBucket: 'saphy-27f69.appspot.com', + androidClientId: '754445879555-2cf68o04seos49f93a81tnu8mr49ev7k.apps.googleusercontent.com', + iosClientId: '754445879555-r1fu6an4tqau05de9hc6vffif00r950b.apps.googleusercontent.com', + iosBundleId: 'com.example.saphy', + ); + + static const FirebaseOptions macos = FirebaseOptions( + apiKey: 'AIzaSyCtHWeObFJDgM4Why074HeusteeltZxCbw', + appId: '1:754445879555:ios:8ad3553c76c38b9104c136', + messagingSenderId: '754445879555', + projectId: 'saphy-27f69', + storageBucket: 'saphy-27f69.appspot.com', + androidClientId: '754445879555-2cf68o04seos49f93a81tnu8mr49ev7k.apps.googleusercontent.com', + iosClientId: '754445879555-r1fu6an4tqau05de9hc6vffif00r950b.apps.googleusercontent.com', + iosBundleId: 'com.example.saphy', + ); + + static const FirebaseOptions windows = FirebaseOptions( + apiKey: 'AIzaSyC81kj_fvrRAdqwnLjvuX_1eSxq__uG5Rc', + appId: '1:754445879555:web:c72a3706a7218a5b04c136', + messagingSenderId: '754445879555', + projectId: 'saphy-27f69', + authDomain: 'saphy-27f69.firebaseapp.com', + storageBucket: 'saphy-27f69.appspot.com', + ); +} diff --git a/lib/main.dart b/lib/main.dart index 6182bba..7c30916 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,10 +1,15 @@ +import 'dart:convert'; + import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:saphy/models/loginInfo.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/screens/welcome/welcome_screen.dart'; import 'package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart'; +import 'package:saphy/service/auth_service.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/screen_controller.dart'; @@ -40,7 +45,6 @@ class MyApp extends StatelessWidget { userEmail: '', userName: '', userPhotoUrl: '', - userToken: '', ), OtpScreen.id: (context) => OtpScreen( verificationId: '', diff --git a/lib/models/loginInfo.dart b/lib/models/loginInfo.dart new file mode 100644 index 0000000..41cca00 --- /dev/null +++ b/lib/models/loginInfo.dart @@ -0,0 +1,21 @@ +class LoginInfo { + final String accessToken; + final String refreshToken; + final String? email; + final String socialType; + + LoginInfo(this.accessToken, this.refreshToken, this.email, this.socialType); + + LoginInfo.fromJson(Map json) + : accessToken = json['accessToken'], + refreshToken = json['refreshToken'], + email = json['email'], + socialType = json['socialType']; + + Map toJson() => { + 'accessToken': accessToken, + 'refreshToken': refreshToken, + 'email': email, + 'socialType': socialType, + }; +} diff --git a/lib/screens/welcome/loding_screen.dart b/lib/screens/welcome/loding_screen.dart new file mode 100644 index 0000000..bfd1cf5 --- /dev/null +++ b/lib/screens/welcome/loding_screen.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; + +class LoadingScreen extends StatelessWidget { + const LoadingScreen({super.key}); + + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center( + child: CircularProgressIndicator(), + ), + ); + } +} diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index 17fec3a..a23320e 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -5,26 +5,27 @@ import 'package:flutter/widgets.dart'; import 'package:logger/web.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/service/auth_service.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/phone_input_formatter.dart'; +import 'package:saphy/utils/screen_controller.dart'; import 'package:saphy/widgets/normal_button.dart'; import 'package:saphy/widgets/sign_up_form.dart'; class SignupScreen extends StatefulWidget { static String id = 'signup_screen'; - const SignupScreen( - {super.key, - required this.socialType, - required this.userEmail, - required this.userName, - required this.userPhotoUrl, - required this.userToken}); + const SignupScreen({ + super.key, + required this.socialType, + required this.userEmail, + required this.userName, + required this.userPhotoUrl, + }); final String? socialType; final String? userEmail; final String? userName; final String? userPhotoUrl; - final String? userToken; @override State createState() => _SignupScreenState( @@ -32,7 +33,6 @@ class SignupScreen extends StatefulWidget { userName: userName, userEmail: userEmail, userPhotoUrl: userPhotoUrl, - userToken: userToken, ); } @@ -171,17 +171,21 @@ class _SignupScreenState extends State { title: '사피 시작하기', color: phoneAuth ? mainPrimary : gray400, flag: phoneAuth, - onTap: () { + onTap: () async { logger.i( - '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} / ${widget.userToken}', + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} /', ); - joinService( - widget.socialType!, - _emailController.text, - _nameController.text, - widget.userPhotoUrl ?? '', - _phoneController.text, - widget.userToken!); + final code = await joinService( + widget.socialType!, + _emailController.text, + _nameController.text, + _phoneController.text, + ); + if (code == 200) { + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } }, ) ], diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index 29c3963..8e3d786 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -1,6 +1,10 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/models/loginInfo.dart'; +import 'package:saphy/screens/welcome/loding_screen.dart'; import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/service/auth_service.dart'; import 'package:saphy/service/authentication/google_login_controller.dart'; @@ -21,11 +25,48 @@ class WelcomeScreen extends StatefulWidget { } class _WelcomeScreenState extends State { + bool _isLoading = true; final kakaoViewModel = MainViewModel(KakaoLoginController()); final googleViewModel = MainViewModel(GoogleLoginController()); + @override + void initState() { + super.initState(); + _autoLogin(); + } + + Future _autoLogin() async { + final loginInfo = await readLoginInfo(); + final jwt = await readJwt(); + if (loginInfo != null) { + LoginInfo userInfo = LoginInfo.fromJson(jsonDecode(loginInfo)); + final code = await loginService(userInfo.socialType, userInfo.email!); + if (code == 200) { + logger.i( + "Auto Login Success : ${userInfo.email}, ${userInfo.socialType}, / JWT : $jwt"); + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => const ScreenController(), + ), + ); + } else { + setState(() { + _isLoading = false; + }); + } + } else { + setState(() { + _isLoading = false; + }); + } + } + @override Widget build(BuildContext context) { + if (_isLoading) { + return const LoadingScreen(); + } + return Scaffold( body: Column( children: [ @@ -62,24 +103,27 @@ class _WelcomeScreenState extends State { ), color: white, onTap: () async { - // final GoogleSignInAccount user = - // await googleViewModel.login(); - - // final accessToken = await readAccessToken(); - // logger.i("TOKEN : $accessToken"); + final GoogleSignInAccount user = + await googleViewModel.login(); - // await loginService('GOOGLE', user.email, accessToken); + final code = await loginService('GOOGLE', user.email); - // Navigator.of(context).pushReplacement(MaterialPageRoute( - // builder: (context) => SignupScreen( - // socialType: 'GOOGLE', - // userName: user.displayName, - // userEmail: user.email, - // userPhotoUrl: user.photoUrl, - // userToken: readAccessToken().toString(), - // ), - // )); - setState(() {}); + if (code == 200) { + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } else if (code == 300) { + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'GOOGLE', + userName: user.displayName, + userEmail: user.email, + userPhotoUrl: user.photoUrl, + ), + ), + ); + } }, ), const SizedBox(height: 5.0), @@ -91,13 +135,10 @@ class _WelcomeScreenState extends State { color: systemKakao, onTap: () async { final User user = await kakaoViewModel.login(); - - final accessToken = await readAccessToken(); - logger.i("TOKEN : $accessToken"); - final code = await loginService( - 'KAKAO', user.kakaoAccount!.email!, accessToken); - + 'KAKAO', + user.kakaoAccount!.email!, + ); if (code == 200) { //Login Success Navigator.of(context).pushReplacement(MaterialPageRoute( @@ -105,16 +146,17 @@ class _WelcomeScreenState extends State { )); } else if (code == 300) { //Navigate register screen - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => SignupScreen( - socialType: 'KAKAO', - userName: user.kakaoAccount?.profile?.nickname, - userEmail: user.kakaoAccount?.email, - userPhotoUrl: - user.kakaoAccount?.profile?.thumbnailImageUrl, - userToken: accessToken, + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'KAKAO', + userName: user.kakaoAccount?.profile?.nickname, + userEmail: user.kakaoAccount?.email, + userPhotoUrl: + user.kakaoAccount?.profile?.thumbnailImageUrl, + ), ), - )); + ); } }, ), diff --git a/lib/service/api_service.dart b/lib/service/api_service.dart index 8eeaec3..bb3dcc6 100644 --- a/lib/service/api_service.dart +++ b/lib/service/api_service.dart @@ -17,6 +17,7 @@ class APIService { compact: false, ); +// local -> 'http://10.0.2.2:8080/' String get baseUrl { if (kDebugMode) { return 'http://3.36.34.122:8080/'; diff --git a/lib/service/auth_service.dart b/lib/service/auth_service.dart index a21b995..63257f1 100644 --- a/lib/service/auth_service.dart +++ b/lib/service/auth_service.dart @@ -1,15 +1,15 @@ import 'package:saphy/service/api_service.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/log.dart'; -Future loginService(String socialType, String email, String token) async { +Future loginService(String socialType, String email) async { final socialTypeLowerCase = socialType.toLowerCase(); try { final response = await APIService.instance.request( - '/oauth2/$socialTypeLowerCase/login', + '/oauth2/login', DioMethod.post, param: {'email': email, 'socialType': socialType}, contentType: 'application/json', - token: token, ); final responseData = response.data; @@ -18,6 +18,10 @@ Future loginService(String socialType, String email, String token) async { if (response.statusCode == 200) { logger.i('API call [loginService] successful: ${response.data}'); + final authorization = response.headers['Authorization']; + final jwt = authorization?[0].replaceFirst('Bearer ', ''); + await writeJwt(jwt); + logger.i('JWT : $jwt'); return statusCode; } else if (response.statusCode == 300) { logger.i( @@ -33,30 +37,41 @@ Future loginService(String socialType, String email, String token) async { return null; } -Future joinService(String socialType, String email, String name, - String profilePhotoUrl, String phoneNumber, String accessToken) async { +Future joinService( + String socialType, String email, String name, String phoneNumber) async { + // String profilePhotoUrl, try { final response = await APIService.instance.request( - '/members/join', + '/oauth2/join', DioMethod.post, param: { 'email': email, 'socialType': socialType, 'name': name, - 'profilePhotoUrl': profilePhotoUrl, + // 'profilePhotoUrl': profilePhotoUrl, 'phoneNumber': phoneNumber, - 'AccessToken': accessToken }, contentType: 'application/json', ); + final responseData = response.data; + final statusCode = responseData['status']['code']; + logger.i('Status code: $statusCode'); + if (response.statusCode == 200) { logger.i('API call [joinService] successful: ${response.data}'); + final authorization = response.headers['Authorization']; + final jwt = authorization?[0].replaceFirst('Bearer ', ''); + await writeJwt(jwt); + logger.i('JWT : $jwt'); + return statusCode; } else { logger.i('API call [loginService] failed: ${response.statusMessage}'); } } catch (e) { logger.i('Network error occurred: $e'); } - return; + return null; } + +autoLogin() {} diff --git a/lib/service/authentication/google_login_controller.dart b/lib/service/authentication/google_login_controller.dart index e0ec221..5eb83c5 100644 --- a/lib/service/authentication/google_login_controller.dart +++ b/lib/service/authentication/google_login_controller.dart @@ -1,3 +1,4 @@ +import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:saphy/service/authentication/secure_storage.dart'; @@ -6,22 +7,27 @@ import 'package:saphy/utils/log.dart'; class GoogleLoginController implements SocialLogin { static final _googleSignIn = GoogleSignIn(); + final _auth = FirebaseAuth.instance; @override - Future login() async { + Future login() async { try { final GoogleSignInAccount? user = await _googleSignIn.signIn(); final googleKey = await user?.authentication; final accessToken = googleKey?.accessToken; final refreshToken = googleKey?.idToken; - writeAccessToke(accessToken); - writeRefreshToke(refreshToken); + await writeAccessToke(accessToken); + await writeRefreshToke(refreshToken); logger.i('Google Login Success $user'); + + final cred = GoogleAuthProvider.credential( + idToken: refreshToken, accessToken: accessToken); + return user; } catch (error) { - print('Google Login Failed $error'); + logger.i('Google Login Failed $error'); } - return false; + return null; } @override diff --git a/lib/service/authentication/kakao_login_controller.dart b/lib/service/authentication/kakao_login_controller.dart index 338fd4b..cb4b8cd 100644 --- a/lib/service/authentication/kakao_login_controller.dart +++ b/lib/service/authentication/kakao_login_controller.dart @@ -1,5 +1,6 @@ import 'package:flutter/services.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/models/loginInfo.dart'; import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; import 'package:saphy/utils/log.dart'; @@ -10,8 +11,8 @@ class KakaoLoginController implements SocialLogin { if (await isKakaoTalkInstalled()) { try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); - writeAccessToke(token.accessToken); - writeRefreshToke(token.refreshToken); + await writeAccessToke(token.accessToken); + await writeRefreshToke(token.refreshToken); logger.i('Kakaotalk Login Success ${token.accessToken}'); return true; } catch (error) { @@ -21,8 +22,8 @@ class KakaoLoginController implements SocialLogin { } try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); - writeAccessToke(token.accessToken); - writeRefreshToke(token.refreshToken); + await writeAccessToke(token.accessToken); + await writeRefreshToke(token.refreshToken); logger.i('KakaoAccount Login Success ${token.accessToken}'); return true; } catch (error) { @@ -34,8 +35,8 @@ class KakaoLoginController implements SocialLogin { try { OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); logger.i('KakaoAccount Login Success ${token.accessToken}'); - writeAccessToke(token.accessToken); - writeRefreshToke(token.refreshToken); + await writeAccessToke(token.accessToken); + await writeRefreshToke(token.refreshToken); return true; } catch (error) { logger.i('KakaoAccount Login Failed $error'); diff --git a/lib/service/authentication/main_view_model.dart b/lib/service/authentication/main_view_model.dart index 63f885e..5e09679 100644 --- a/lib/service/authentication/main_view_model.dart +++ b/lib/service/authentication/main_view_model.dart @@ -1,7 +1,9 @@ import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/models/loginInfo.dart'; import 'package:saphy/service/authentication/google_login_controller.dart'; import 'package:saphy/service/authentication/kakao_login_controller.dart'; +import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; class MainViewModel { @@ -17,14 +19,29 @@ class MainViewModel { if (_socialLogin.runtimeType == KakaoLoginController) { isLogined = await _socialLogin.login(); //로그인되어 있는지 확인 user = await UserApi.instance.me(); //사용자 정보 받아오기 + final loginInfo = LoginInfo( + await readAccessToken(), + await readRefreshToken(), + user?.kakaoAccount!.email!, + 'KAKAO', + ); + writeLoginInfo(loginInfo); return user; } else if (_socialLogin.runtimeType == GoogleLoginController) { googleUser = await _socialLogin.login(); + final loginInfo = LoginInfo( + await readAccessToken(), + await readRefreshToken(), + googleUser?.email, + 'GOOGLE', + ); + writeLoginInfo(loginInfo); return googleUser; } } Future logout() async { + deleteLoginInfo(); await _socialLogin.logout(); //로그아웃 실행 isLogined = false; //로그인되어 있는지를 저장하는 변수 false값 저장 user = null; //user 객체 null diff --git a/lib/service/authentication/secure_storage.dart b/lib/service/authentication/secure_storage.dart index 8a471ca..85da33c 100644 --- a/lib/service/authentication/secure_storage.dart +++ b/lib/service/authentication/secure_storage.dart @@ -1,4 +1,7 @@ +import 'dart:convert'; + import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:saphy/models/loginInfo.dart'; const storage = FlutterSecureStorage(); @@ -27,3 +30,29 @@ writeRefreshToke(String? value) async { deleteRefreshToke() async { await storage.delete(key: 'RefreshToken'); } + +readJwt() async { + String? key = await storage.read(key: 'JWT'); + return key; +} + +writeJwt(String? value) async { + await storage.write(key: 'JWT', value: value); +} + +deleteJwt() async { + await storage.delete(key: 'JWT'); +} + +readLoginInfo() async { + String? key = await storage.read(key: 'LoginInfo'); + return key; +} + +writeLoginInfo(LoginInfo? loginInfo) async { + await storage.write(key: 'LoginInfo', value: jsonEncode(loginInfo)); +} + +deleteLoginInfo() async { + await storage.delete(key: 'LoginInfo'); +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 12dfb88..6ed6691 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 64E3DFBBC46448563FC48F57 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C0C337EF4B9FA7E34FF08C5 /* Pods_Runner.framework */; }; + 66B4ACF2DDFA034024BA6CE8 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = B57BDDAAD3DAD715BE2B32A8 /* GoogleService-Info.plist */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -84,6 +85,7 @@ 8C0C337EF4B9FA7E34FF08C5 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9457FFBAE2AB95B64BEDBC79 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + B57BDDAAD3DAD715BE2B32A8 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; B85ABCB344D39E06D1004293 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BEAB1D8A954A783A8FEE8A33 /* 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 = ""; }; F2A8DB27C9D99891F531CBCD /* 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 = ""; }; @@ -138,6 +140,7 @@ 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, 9CB3E8706CA715407E0B67D1 /* Pods */, + B57BDDAAD3DAD715BE2B32A8 /* GoogleService-Info.plist */, ); sourceTree = ""; }; @@ -317,6 +320,7 @@ files = ( 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + 66B4ACF2DDFA034024BA6CE8 /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/macos/Runner/GoogleService-Info.plist b/macos/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..b2c008e --- /dev/null +++ b/macos/Runner/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 754445879555-r1fu6an4tqau05de9hc6vffif00r950b.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.754445879555-r1fu6an4tqau05de9hc6vffif00r950b + ANDROID_CLIENT_ID + 754445879555-2cf68o04seos49f93a81tnu8mr49ev7k.apps.googleusercontent.com + API_KEY + AIzaSyCtHWeObFJDgM4Why074HeusteeltZxCbw + GCM_SENDER_ID + 754445879555 + PLIST_VERSION + 1 + BUNDLE_ID + com.example.saphy + PROJECT_ID + saphy-27f69 + STORAGE_BUCKET + saphy-27f69.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:754445879555:ios:8ad3553c76c38b9104c136 + + \ No newline at end of file From 3a234daf692308b0f996cbb364fcbf0f34929f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Wed, 7 Aug 2024 22:13:45 +0900 Subject: [PATCH 24/54] =?UTF-8?q?SAPHY-134=20Design:=20=EC=95=B1=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/main/AndroidManifest.xml | 2 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 2340 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 1426 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 3429 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 5797 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 9197 bytes .../AppIcon.appiconset/100.png | Bin 0 -> 3015 bytes .../AppIcon.appiconset/102.png | Bin 0 -> 3034 bytes .../AppIcon.appiconset/1024.png | Bin 0 -> 106332 bytes .../AppIcon.appiconset/114.png | Bin 0 -> 3575 bytes .../AppIcon.appiconset/120.png | Bin 0 -> 3827 bytes .../AppIcon.appiconset/128.png | Bin 0 -> 4196 bytes .../AppIcon.appiconset/144.png | Bin 0 -> 4818 bytes .../AppIcon.appiconset/152.png | Bin 0 -> 5368 bytes .../Assets.xcassets/AppIcon.appiconset/16.png | Bin 0 -> 343 bytes .../AppIcon.appiconset/167.png | Bin 0 -> 6035 bytes .../AppIcon.appiconset/172.png | Bin 0 -> 6320 bytes .../AppIcon.appiconset/180.png | Bin 0 -> 6870 bytes .../AppIcon.appiconset/196.png | Bin 0 -> 7949 bytes .../Assets.xcassets/AppIcon.appiconset/20.png | Bin 0 -> 422 bytes .../AppIcon.appiconset/216.png | Bin 0 -> 9309 bytes .../AppIcon.appiconset/256.png | Bin 0 -> 12171 bytes .../Assets.xcassets/AppIcon.appiconset/29.png | Bin 0 -> 636 bytes .../Assets.xcassets/AppIcon.appiconset/32.png | Bin 0 -> 696 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 0 -> 929 bytes .../Assets.xcassets/AppIcon.appiconset/48.png | Bin 0 -> 1146 bytes .../Assets.xcassets/AppIcon.appiconset/50.png | Bin 0 -> 1212 bytes .../AppIcon.appiconset/512.png | Bin 0 -> 36488 bytes .../Assets.xcassets/AppIcon.appiconset/55.png | Bin 0 -> 1367 bytes .../Assets.xcassets/AppIcon.appiconset/57.png | Bin 0 -> 1419 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 0 -> 1477 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 0 -> 1501 bytes .../Assets.xcassets/AppIcon.appiconset/64.png | Bin 0 -> 1631 bytes .../Assets.xcassets/AppIcon.appiconset/66.png | Bin 0 -> 1701 bytes .../Assets.xcassets/AppIcon.appiconset/72.png | Bin 0 -> 1911 bytes .../Assets.xcassets/AppIcon.appiconset/76.png | Bin 0 -> 2090 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 0 -> 2254 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 0 -> 2467 bytes .../Assets.xcassets/AppIcon.appiconset/88.png | Bin 0 -> 2556 bytes .../Assets.xcassets/AppIcon.appiconset/92.png | Bin 0 -> 2635 bytes .../AppIcon.appiconset/Contents.json | 123 +----------------- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes 56 files changed, 2 insertions(+), 123 deletions(-) create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 47e3373..1fb5a3a 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ package="com.example.saphy"> Px--bqA3RCr$Pn(1>>*BQot+AZ0#Y)dv62nH80g<=*%AT1LnZ9~!)N-|A9wEtSa zcBa!zr%h()lp!H$(h|as*=rUXvl%avELoPU<=*zW(j|%qkcg6LKAbz_v2^cQp7WgN zect!nk>?L5?1z}^xeRy=K`&N^A*ez07=jEztr@IQkWr9PP-_er1+~VX@gSohqoCFp zFbZmoKjT40K}JEXF<=zb8h^%vjDn1UT4TT{s5SnK2N?w!1+~V2QBZ6A84ofF`adYh z$uOF-a`SSbvuIG*Bb|AXAZDjBbg0@v%1Utg`1vZnXd}o^c<0MO7Zwv3tNAII$(NeS=ejiwDorrYzyKmm9eI?6vv-XaLG+{64<$(4z)dfo9sfK zvfqdI)s1wn?jkroL;l=d7BrX06jg?(}Uk=^W)|NNS28Ew)s~ zUfD%(|7K!|D8c2-Yln}GGB+_zAr!=0EMX;L1a_|{s`g7ItTT7WOw3RS`thi}7PEgd zT|Zn+`||N7=g1!)C8fFFeU;vxb^>a1VVvyeH%M<@Mda-r#NB>JFEIOLp5hx@>0S{d zI5|t}E*U`s9U>>&{e;&bEP9aqxz zdf@CGGG}g+k;-Bb{J-8!Z#eK(sAyLOES00AUEQ*V$bl_%YaE5`ttl3zqQPFmn)lOd zq^8mofA3s_qKuNEW8es-O7I!8(O4~>vm z86%i4QppymNJS#?_7saBT_&Y4II@RCZ%vIKUm_t~viEHyx^o?!8cd$^!8v9Y3RK#I_(YPx30TE~t!rt2eTc5Y{{SBwCHWx9 z(xF`>*7edR!rni{wEFyJFMT3P0C)!}C^{wsn4D`}={Q7KCoym-!!li9F>NM{7Un+Qbk>04xiffuXCA-~ZN zsHBc!xoV`p+Vxe;i=+p0EKMdU+@E1dfFxI$;5&Qh?dc#e_L$s>tE6@FN3YPae~6eS zRhS9<;SmyUc>VPZGcy@V@{hwK#KS>+r^ZNoy?FO-pwsb^YND{D4$Y@br};GggEm!*rj`WGVgo z25Bi}_!S}tw$h_#Hy^Qh;tEN97U<2Zs%9*c%@?tx6w9in?)gQ^Q}Yy8cN6Mp!>2I# z<4LBruO&LNp6GJlbLV#NPtH*|c8NLLf{rl0-Gg+lUqM^YhgWSf1rdWJ?*in#^aVBQSA3e{U) z%zJz3b5pO1yuV*y);+p7$)SY(gMPy5tFTe1suVbOiR5dW=-j)3n0x=!81ok=$c9vR z*>Gexz40gk%_-7V2FRSh6M~d_yE_QHzL{8Gj8OgIQM)D3Uyd<9&`Ve~i+g@OcZbZW zTgXGP;Ep!j9BBDMrd>QzoRO7;Md4x1nP)#Xlr)0*7D1lhb zm3czUAvmEDvGq)LUPl(({rP1Wt1JgE z0@YR~UH`^F_oOl{TuQ1>PQs&_N&gjM%^XahMOsq|`kHAiuOOcBZp9_0_O`?6?h;)8 z%ENsf;*S5k?5lR}Sj*oBIrpFQe&>1pnpKa3yHO?mGJ`!;Tiv^uZ_@w!)aN@P==-$5 zRP5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..d96be5db89f7cf0b5b697ac9cd0b08df8b59aed3 100644 GIT binary patch delta 1419 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 J8%#YC{|AopMn3=m literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..d9a756c4cec2ceaaba15311a379820dfe78153a0 100644 GIT binary patch literal 5797 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 B+Fk$v literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..6db549f7eb3123510866d9b17550afec323c99f4 100644 GIT binary patch literal 9197 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 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 0000000000000000000000000000000000000000..72cedf8366f7249412443e4bd36560dda66169c8 GIT binary patch literal 3015 zcmb`JWmFRk8-_Ma%EHW$ot2jr006KfjPxwe)AfG`WIq3X^J(|a zgD$|*5Dp;q@~;2@Y~cvK+xLQKc%iJ@|1m1dG1T;vPxcp9@UGqn_3uHwSFo+@Bta zot)WQ-oYEn0~bX_+We9kxmZ}@l8lU8LiOOHBCka_Y&9yP_2Bfn!k_$#&YSS_M(vJB zGNF|N2+4gjhF{C$whHo{&G;O49mZP z@AFtJ{=#E0aIdpb>J!g>m3*7+j%ReK9$R-0AX>bE72;d>OiXxz*LlbxoM@}APTOag zRL-uyb@|l+-b^DISy4YEz%1^Q{rPrc-wMR7tn6JF4?a29kH|goXBB8?V{HXQwvdI@ zAQXuWrCaW}xhG_FF^>{B<+ZN`FaPsByUq$1%AmZ%Q$@&BuuI>ZQ*LR=Kh`S9YO4X7 zp=FdW3kBJ|6mTq=b0Y&6rc#<-Pp%iWOhXIJ2 zLdTl{n$}9U_(~ghi6~iEhexbq$Fc)bLKz33Zr{HE80$JViP=q{67~P2(_S!2iM?U& z-YT^`BZMP=Qk0SE_QXdSb%r;Pk|ac0n!&oz2txMSEw?2igGcdBO|IqkfJRCge3g&D z9Q~sf1MvQ|=V-1FY3iAN>gJ><0S1^XTw8Y#^iSQ)?P><8pW zL}+R8Rkne$#y=KEb7i}ptx(n_H8)7MT+@)do#xn(rnRw2L<> z;Vwawff)J;@#up&%gJ0kcC}uaJdQ!Rz1iK94T6T9RsPWF;3C^S|6q8uRhF!iD};d= z8xPXD4IIJr;1JPJ(L$~(RnIG`p19$|YrN)vj-A+*v1CqSs0S@(p*H&R>ceV*wMBS# zf@YwVb>Xw&2kiWWa4Wjm5P^Z*TRSVgRO?-l#UYT_+G zHl~k_k;k7DOh8#QM7-mOfyS2ofQ%5!6GZNo!b$>cEu~WCXe$>xm%clf{>nNtR8msl zSGu)o7QWF`k|MG4OT1(UFK#Uzl%{4{a>hrHWSr3>P46G_=hTK87D??ew1%GEqmbBE zY(=~s+*(t-3j~l2(DA$7+vN5hwEJb{OTONI6u4-T186$bWl@_)SzVX?w0X3*w|crq6^FgJ*J5sx4n#WV+#61WqQTireZr~_9$j&bvkC4{d+{E z6#kcxy`^mN{@L!QA^!ER$8|{yTLib8Qz>CuUA#$QYQjx3BG7CbL6H{@j^YW4$iv*h zaY(td=(ilN)$IvL8C@K_JgNaeOtGZEfw5*R!drd-uY6gRVF!sj+8V(Cy%>F2nb^! z+)(_j);;-hxfqQjHcenogE`r@W>0pmO)wS8Qe_y6w)`p5QmdHn_Zz*rRSLfA$XAK8 zK92mojFTjiRWItG4%dSCEXa{3Sf|wuMEUThOk>?N#V(ZJcC|UxOo5oVq`!C;o#o&_*FTrvb%=d2r9dVN>(ILP zgNN~pzoRlXD_g2P0Dgi{k>=e%}ZuRwjL>^kb7!SVVw(@dT*d zabt%E7X!Zwm>fg3E=W#_F3!#A?6D0y*nEJyg4R~?z&U$W_YAlij?oH^_4K<4MhR3H z1NOyxaF%0sv7^btsXtD^K@tO(_!gD(^4G;NUFv7^GC~Xuw9%w_IR~{&l~`P$4ReYM z=(i1HK=Lhf2I+S>yqw8wa4Tmll0g?X`hdkQWbWu=!#a7&=X3YC0JlN_@Fb$3C) za^2v~OZdY)t(6?^w;ass%w{tRuThjIqd+3_;e9dC`ek^n%{Kgt-IWlB^`yTyB3)^b z*8jwtyW{E4B7x&NPoF>{9+pzAL5u*bjH6AlZbsQco8W2XO7F&uK|h{RzgIRGpo8FvFXXM!Tr^JA>*06FO3b? zt1r5OUNgBT&Q3A$P$SUjVgaaiY>y9fMM>j?`A^LE-^~o|Sv>D=YIWE#^x03lphcc| zwvpxDS0ZAIGW(@xLpN77aUcCz4U*As^^Fwym!PF7HYL3dbo6L|-kHD|Mlp>Bgh}~M z;^abe%_S!kzp9V~+}_SkPqQ`-CI11ug5&9IYRym!$4+UdY5pM3Gi$=JX`uPW%e2Qz z&8kzke-mXoXCRMD>8aTm9prS~@nK}wwMH&edqnq=Ca@zzOp~uRY>0YzO`wxY-()N4 zdcOU1z-e+s%jKA$zQRzQKZu+*Q@hpLBxco~)gVSAczJC#%Zu7I-;kn15j2Puqg0z{jZ!PE(NMKV zC{d%eV}#liRdL<_;ocADoaZ^udCun_%IdE>9IV$_0RRApDa^?FB7OcVX2uKGo}+kP z1TftC4ir#L5~2bCY}uwp2DS*d%_3?z-vocxFmr+sfrH!bOq5<2CJhA*9+AOCF33G9ffUZAyVoYMAZx7R*#b$PHSrtSFR zBD{(U?K3JWinj}v0hSHQ--MBFi6~069p-y>?D|e}rzpw7vZk+CR7m4g+x_+sq~}q= zBek2tA~}hPn`r7-;9PV(sv{fq`S`OqJ+aiJVB(*W#&K&qgZ0h4U`U3DZsvR$=GF1# z_J=lsRWZ%3?tWg60LhJG_$gIf{-FtDz)n$;<)Bpi;i>iq4?@EOw3-^owbhFNoK5~o zQ)k0Bsp4lL)Pu-V3KCsPh6KLLr&VPwfK)edcJBy1q(UFFNIOVanK?V7;(g4tGajt4 zf?8&BLzJ8S9yaz9NS9;#muu8fu~FlixFr)#@QC9N+>NPsz%5hbMrMI;HiQEosh5j( z&k4S*1K+K4S{WKzv}6qk!%gHr&7$Br{CD~N$d*1>S4=0oA0$(U7lJuPZl$bUw{Z=>#&HL*?ltkUMXKwa#TV@OR_E@ASw zkWt1hPJC=eiDdDzgcJ){aSBKBH2nUBwY>_USN`VVY((*wZ zFt`RoJ_B{ymAdWw)9o_MKwLCfL*Jy&Rb?+&Ppy%=+9UN;e0liJX7TMB{G~UmJ8O!T zS5PPS3tf|3MS?9|a&)TUZ8Ls2eZu#Dx5^@ppPaS6pGsELvx1Oz*UF7CeLGpH0!QTA z&Uhz|E3c({H&H`Oq-)v~(bk~2tOFV&eaDw4AtWGts|h@A>pY9_${`cm^%q5SivvV{ zU9XKRjzo0(-ce|6ZL3|=*WKQ=VY9Pjv;Y?+k(GPoV0l}xJBns)(KB0-zWY$7u2K=0 z6Ahke>#&;@C%F0eRbxEb6FEO)d{?NuyV^8^1Suo9i5SUdt6qgS+V=x zQfCJ9u1cPkzWYaTY-~3s$n`n+c1`Xv$;?VOK2j=y+n%VSFoW>u|3aTfQV(Oc>GXRP zSSbIgp5Pc`s3k%j=Um|D$0WQEAblVaD8;5o(_}i^J=eLH4bAG|7S~BK09x1}YvBud zv+;x=-J?l<>N|Dgu3NH`g!AlYHt^NHm3)`dG!C94)BqwSi62rP6+Ek$+lx?00I}$9 zMjl5W`II+(Zr6(+>)>`X9jAxY)ZC~xd)0O8Lrn%jK`}-ufVX1n7dA{b#NGKGYT9tB z1P$BBn=F|6V_^E+f(v$HZlF|2RQoZrq1*-BTfvW(5k~j51SpLfc^JmaOr*OD`eZE5 z@kZdvNvyY5Up(=^1i3t$0B1;lRowQ&TkN%nhADc|_`d1weUCR03+Ny^PkT~U)VrHJ zPkjx46jr{2_OAdt=BV4L;7w8#TR?(*|FohGuB1kB2sm6u9S!+$lUX_~#*4Kn<7t2Q zE!Y7cL-uLHZl7G&#E@~?9Q$MfOTQ~b{!q!q?1?T}_7J}eE=@Ec=S2NUiJ(~5QsM&M z9SX;Z@W(}&|DGxs?c9z!IB>qFKRbXn>J|TSO49K=X|?XsO)r9XzQ1`dr=MfBop|ZE zK}O7yyZ>(uQ$5RVOrxx(G6Y&G3Tvj_4N&vzgtaFylxTCSynV37rgijrMGb^2lsGSH z10NnZp~dnZXz3#swmF^Y-qc5Rbkko2aK=l!QdI=wnwzr)h%FH(~a$HUixyiFw;nNxtZmnJ-c`rcRp=B51Dc2Ib|}k=;-|BN>VBN3Vu+KP?40%L%u#FZFVO+##_K zGh>wiXS>OEnyD*)cHS=rJPfm%{zz`7Re4(Vh!PuD!;X!_St_YQ>5RE@O3ti?^Q*!> zw~qe!w~%3`MLIl`zi--%N7EfOiD{?q+WflPaY)QE8MGb8$e-}$uHD!C;Pg!G>q5$k zh@6b>^Uq!cs6-P~C_vg~igjlF%^dcw!1+Jh-j|?EmfE*-mquAf9^>Fo$$?GgA^=!+ zmrUYLfjI~x;9miaK2U~~>nqrz4-{k+kP6R8v*<-gnLwYEdk%0m3s~8mT#Gu&O@FMq zuY437)>|GhnlxpB*G{b1oR8i&w>@6}(*;!F9C>ed-r6F*;1%m%Ek{H>?$mL5kFB#S$ph+_m{=RE0ue7OV@;W zm%pYF-%2{57ZwskF<>#3y|)oon_QQ%GB%;W8=WJ*h_1<5J7@Ug{)}xVur1^ODe}tl>H;8c|@#>2)_kN0Kf#>OHM-73gi>Bb}~O5sda`H zr~*7Y1}NBTd2L)vI=>TEOa`=%VupZ1h~gyGm)BWYV~XHiP;CKP$AF>NNu_suwfvO3 zr2}2#!*{s*`4q=^iMlc)^V|e@D9(Bc8|XjD%1Cpg&LBs7ISNxS`}pmd?pe7y6M{p* zgZg|&hd#p3fbG?s*5z{u(D2ROXF1<#(BypP49sL7CpzNpH~Z!}O+68PmSja>M&Hk6 yZ@1Iey!$Ge`)v(T7f7ig`M+Ys|1+^}v?0S!Tbtv$uU^19z|{CJqiU$flm7r)bGLW^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..449a3621656568f073e1180522e7b60a9d669151 GIT binary patch literal 106332 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�ta{GUmKzS|_`c`8w5Xd>{Uwo`B=%zO!sD0$-hGVK!E16B@xXOBV z)ecVT+1W`(c75Zo$+?PWnSSwCH1?cXdj!)sC4eh~JAd?46BQnZBEAVx{ii_~U{!Vs zyoMI9U@gxfE3mWG)VhCZAj+$s3;byF__t)cI~g9K=z2Ugemj?V{5iukd3T z5MqYUKf3%`Xg<$8tVe}!1=Ty*XG zcl~KM#YFVsy2VJy$a z;1l8qBq6O!#$N!wN-8!r&_~KZ(?#Aq!EoPwyQ^oOC5e~-CRF`wM6_o~NmvV+Uuu05 z$S0#f+J_rJcxp-cG}mk+xS*FBD%}!bb)~YX6UhhXm%U}j0(Klf%z9rU{^3Tw0J#ZQ zYsA@(mRgzFFJYP>V-<2lg$hrB36y>LD0bPz_rT!h2{CcDkB@XgSMa#eb5+10O=M_a z3Xa>4dv>ox4g9#cqy2n7Tke&rg>pXa#zafA)7-EoJlXK8%l;x^&s|RD&1^gJF!{7o z%B;U&MeUPc^Y!7iwepL4dy=`yvg`Z$i>fV}M`Tsf>qMgX{AuK5h12oY=E+m|v>1b5 zuO~h5?KSdS7d+P)S;(2_aA{1c!-u~&Zk}unpOfHQ8jevoPl?vBUHaX$(_|9Y)r}Ivc)}!WM5vV`U}%JsEeK2vHisVge*y+^wp{={GuP9WVpNsVe~& zkY+!2Dq9zlkMq29V~m>ND8DJ4&HSgM%|AXJ-V}bVYLRJS|}$L zJQ~Z6Wqf;o?ek^DA$I3T3##JS(etVS=2t_pC5{|LoG#vVb;33#c?%VG;*k@cR{A-)YQGB;2yyf%mxx8l{jOr@rDt9l>N)x4-}~bp zGT1s+)ZFT8P#})kC%Qx^aM4=4RE4vk`Lk3L!YZ`?0!0|7{sqmH!n|ZMM(n2bZ-{D- zG?q-G`#a@`<3n9`@n=vzSy|x;ob`EfGbcJQ(Ty-_Tn-yL^4k@u-S3si-tKzK&QLG2 zXj`5t^w^1F`9(S%>3^6g#hDD2Vm>~`PqdcrBG*4ZWpP;4cy`V4zZCF+e3E(&zn!{@ zc(N_8VsOeS|Fv#UgJNFb)Wx$hevSOzr2^O0l@$E4K7QZto4?s7xf3tMPwQj`Na6de z7h|~R5xD!hPz13dvM+Ev9c*Md0u8z9cqeL5#4FJorlBx^&v4T9%zdeV@ne5Mp~3f4 zCmJW!7)<0)i`GEA@t7sort8 z_|ZD_hy8^+=190R@s^9?Qd5xJ71=>2Kf~Dt`VC3LB0rNuAFlBZUgY7(USFSDtH9kZ zGjnJ$VYNtDD)#zA)9#~a&5~--Zh}YamcWS8%Z6uQDou)?r})13Z2SyL>L=MLX%-w$ z=RvqT+m&Z0)VV2aj|TrJxffEe^};Pwvd>1!sRB9kd{S9_Q2EHm`y=tH{R@V))LUbI zw|_?Si+3T4`y9Q(X43jfmq~WxS1N)hYb`pTG>Lc>z+1d3e@tU)zSA$_WrL<#j`ikC zaV&`Bq=Q-yBVip+f>Kz_XGQdwQNJz3;tBQun8_{g$SvUtSbzrCaT3 zj}y^;8r8-JMWwkMI?cz%U$k92k)*OMfg+DX7$06wL()3Ut)y4k6GS5=kgw83cj~qa z_z#jbRbi$jG)v~n_Bxp`t`*u{z{QIOUq=%mf@EmCO1ZYYNg1CG-j_V3rjzsY>*vkN z_|ROcc%%606ZJ87ZCecFkC?lMU+Z7FH94Fi1|yQdf#10 z#WP?_FakCD?n?Ef_n-K{i%ACs+og!l-d41Wj#f_bs@qdv4#*z$8LsnW5Td`^V!8uH z=It~6inlT;n>N2U(~-Vrzt22zM)G^;b4W8LRC*ygQU77^$+FOv?Q6oL3`_}aQOEFs zLZ!*m?oww)a)q~jcY_NL7y8KrQo@E91FxBmKNA#j9S>Dsoc(B$R6ndw z^66^q6`DAOE{B5b`N^B@YERF@wFzLJ{in zTrcYQOL>`yo|*5@rB!(58WK(QGo;y3w}i%%l5VHI>Xy4_p9C1_pt`{P|E;_1{%AdF z8n&GK`@A@kkp+2fx$8pbO-E zLmjosRe>VnvdEl7IwjS}9bw~_Y7i4j+s%y`G~5M?EwPvFS+0e5di|342~F>#B992DXewjp@yf;wN5-~lR(Y5*>Pbf z!FTOlk~iNlnY+G`%1wiW`j<-qhWrgrGW=E9%Bl3^^QNgxFF71@`>En(AL+F(VtHLn z(SkAX;qz>5AR<;S^htpxb0lqe`zO&zvYk>)s2`(QYJF+$3%R74tKF|IeX-8l3CZ9n z_xbm65TiOEfT4%{{*J?69+d_htY&EL2_|- zo{WFfw91Ied%M4N9ES=&8#sr=XpqzaiNsywax6G%yxmk6Uu1%qEY7KPIyP9}pA}q1 zk|UTv4F$Zx_fTLjR|3?HxS8D@zJQc3NYo$Hl%G{1b(hx5#n8U*yR$EZ1e{o0S15%( zT4D;uw^OXL^NzS(54>9KWA@8SM>4gI@e2Ome7-mE_fC3}a*vBK3HhyBH8=+7b3EQ$ z&0ek!;HIAC_4@OLWr&ptny=@*wiY8Pt95OpOw5*g>elFOkerz>95+7`{7IYuq}*Ct zdlrMy;^?jdD&9waQ;o34Xg9khy~xzv4=q~liEnvc#MJP5_igD*!Fs$J{sRSdPqpWg zy-GHwPHI>?xhfCj*QQGDc)3$dn}oV<7RWN5@$;@UO{Omw2b~qfMZZaIoD9e0S#;Fi z?xM1(_W^6#<>bxooio9`m@2#+F7pzEbi?yi`<$1U7%8i(Z@|~=sfEyTZ=v8rtt_8D zzWX;(&4fn85Zb&M`mhOMvYfYzsw$PphK}>8o)E~gb{|qx`w$`s=WR3g?>#@HwFIwE zo?k_zTsA`yFYQOL0Ksq_HAsvZ+(_m=AJXR)(GB7jM(l->ybcOC743}kDNEAp{9+=6 z1~X^^>O{<_3Z%g+==cm( zL3hIIO$5W>f|Iso#w-sMp?`L?>5sg>n+KUH$8OW8aEn$$rg(opBhWCBHNp&hpIl{b z(V3m)F`qcU%MemxKXr0U+d<44#A;J|E&DFL0tG?RlhDJw<$i%$JlsWrTAZ}Mf(_T) z7%2@9r_En1I~mU<`UQ}4V)Q#4dCa$qbsIeaPU3G^_2MBZ7}EbFFA4FGIz`uc>zf{e z%yPobZ6p(()*2SdmB=lQrma`LXoCAeC=I=FSWla>bIOc^Ebw}?A=fsXWc)ahf3buVl{s8%xtRW1gm=V!A0pRs6`&(B zPw#8Y@?LU?1ygpiW@ARRxmZd_kc$d$pNpKk=7J(H+u2szNrhCt6GavX9ul3zUJwBz zH;o&ub|rA7wRkNU-bY9K%}JZCw|l&Oq$lSykupEa ziSYS6q(Dp}tlJQa|6#FfGb(w0iS&g$7xA;3VT$8YNc`*9cz2!f5AH#`Q9NOfC(6k} z81C%8Y+UY*!?**5WGaV{`*g|G807ENS!Wk>Eh130%cFL0v`Sx_6?^yLD?qN57G|SL zspP>uY#Z+4*&dR54jo;treThas=;aDQ=Y6hbNgt;Jx9;sT zG&t|!&sXG?tfmAEG>V`9n@IYQ&B6T)@X@H{N{DE=pnvVv9O|&la(Gj;?;B7)+76T8 zw56JV0vNE?GiiDa!s~rTQUVG!jaLgU(t{Jic;F|pO{!Lcr)SkZAk16%6lE_oYaK1> z`zP|)+&4!`GszS?9lM8-{|u&b9WbS9rLg?uK6D#Pez6Z)0i6U#Y_T8S03L+2t6mU2U+E|Fzl((}8Yn9mu{qRwcfs}%HFJdWbD&m=NB+&Q%C1oZ_tZRubsW5xV*mH zFFkAw2@6CfzllkGel=QD809T*yyCEI>;Fm?I_NK%xyf!e9s1Yp?~${M`hz?knWwv( z;}xvrJ~{0Uev1M|9zD?Xf!Ne{d? zABo<{jFEcf()YDYmiikDG^istBlzf$6?mFR@X96-&czVcE$f?mMQoRv%S)Y2!mPuX zYM3cqJJY>}|LK-hyU*+{3BZKJ8oT}eL87b`E*`}f#BCBkCQ+PPY$;>DW8x@oc+tVU_oA1JP_5?wufkYx7(RlKiXsmR`TnGL?M{=@00(F*G>{N-sdmnhu&xExnI9_%bZO!URW^j zo(r`0>&mM`~;FwWsN~W3!CJqZ}vd`MvWFN573z_j2<RlB~;`(?@Z50_1`WwOtn<_K&U5Uyd|3$KsT}1@-+lW9ZH$*2;qa#j6YdE`$9pF#Ss0)95ZR z%um#eTA>t3HNW&s_(RkWDwC?EjwTy`-~_RdEG2gc5Um!MN|@4Kdeq}_bMreGy0b!0 zEu%C8tiRQ==F$n$($V1zHs!b9TD_qqUk>2VFF5#5y!aI@eu0X&6!rv&oIx);!~TaG zazz}HeM-BHgsRli<6Y~SQShgQD63HVLIn!^T__azL5)YBjUCmf-b)DF*3ep&kN`1x z3*!aw&{0=Qt{YDZseQXNjGZ)9dn{~Ek|;KSfL+=*%G=Xun%Sm~wbkA!qFlQj>+Tp; zd%mMGEUrgJV-o$m66l`YUj8`G6d)01c{@nF+H2|U-ulXO%4dGIBLIaf7qMUZ)T8ZS zTxSIpNDiq=Jj!kYxC?ak={Ch?HrrYNDtLinQpxHtqYn_(X@#5m2X+CU@Lm*#vtMQ1 zleqsBP8$95%}62Pd3BWL#^Y=T3*~?ayK)kXZuz&AM&mbGuTmS-P9M)d&vA!TzZv|| z!||elzvI!2{O3d41$X+o087B9jS=x(>vSgV2=yO0m}8K`HCh!P%Yj!9*Z*FQut^bN zGWv;AhEG0}qJ*X>%$oJ_09+<>z9b5Jc3zj}RJ)?K%U8}YG4y?| z)IMM5+0M@u4ue^bP7fgn0LGdbLq;vx{Xg=8mSwg4cVa75g~{|) zA8K{;sE(-r4n2ne3#nP{S$nicEPy|%;6*s9wEKw=*k>Q`#|>{e+3joD`M1&n{Q8=f zo>EIFLrD@*O_+cfS^^$yc4qx^V_B=x;#0xSG_X-{bp z%6VyudXJhWW`Ak<)c?cw#BV?Yl*x$}SN zaBE#GRkUlwo-*2XNpmuW5{WVj;CVu*F?t(ZkTdmu|JZ6`R5M$T?Ia$u1f@zGX~6(* z(}O)eNK0~=pNud zkwhTDca_NqUXo?KeSWqu#Vq*J2AO$ zU`m%=7-iC*7Iipg#9xm=J-d0>dcle!eX-3qi28L1uekbGsb}><{s4We?itxfD7eJ? zn;&qG1$=Mld>2qC(ZG!KdY5&@fiNty0EWS(D~=DBFsKz#I3R*&0I-&y)N1u8mCM+V)hXQH)bq z{!Ofx5%J0~|FchD_=O4V(0ac~0GRluQ??NRd`&GN%_gN!^KTYN zdoXq!lc3N-K*4X2Q2c2)Joa6Rm~*2!ak9ES;)3zl40SqCWZNxMROs zkYvnc^jiNvXlhZW&=&S$vZzyOaqY?%lam*>Ed(pu4^=4Llqk|2-Q+;EiFTq`OgIlk z+PYW@fgL{snZPpvu4k6%Y@05GU^fKA19Y@{!zu0}`#z zY9#Nm1B4P)dUBKI1?`(%LIAH*p7J^0yDq^2i4dh4wmq>L;SvbEL_PCLtaB;X&$1%2Zl)kMudfE&P8HJCco!;`gx`vxeG6wc`NBn z)7@RAD$0H+HHxzqvmMCA0i~J!3r~CViEm~zU_9P8O^=<-*U)s^2V9jD!)@M2W2ByxbY}+&G#(>=8&gS_ss9{S z3h0$Y^_b;yax~f}OT;s~TNuqaZ|$M$zFznhKBy*oVS!<@tC<3FvR`EJnrCfZ$-s)- z?A_pwJgF>^EU6}$X)3Xq_u`u67-lp!ewL>DIGQUoml-*Bwaf&y&GB4(IKu?!a3j6a zDj8Nq900)myHhknG*$$%@Jmln4&*vI0Z`;G@kvWmiWvX8S#iF}0@!fb>?MA>B|NFB zuG!ES9$IAp@Ulr!`de<%kLQDeCNg%Fj;qA`{F@-QC6gUp8ej_4_FVsMh2OHgo>Jmg z-&_wHH>-RJG1v_2L9acv!@)jqt3Jmz2<|r|k}^hix;m zXor`uF-_28%l^B1f97wyJdTmIZx~o@1u8rp0__z!5?eQakGW$VoZ{GBs^PHgJKU&Y zf&PmM&Ov7x%!;Yd`6;#)?TvPYXaoAf>o2$@n;k6Zz-@P3OlRZ=TzT@50&Jz6vpPX* zlpd?Ve?ix=wd8whL+s&;m@*vu0-52EEdH!HZn;90_;0$#Auiu`-UPC8{qoQ95me^f zu0~y1+Fu=Se?Y>odwj_Q$Og2QM4IAL^pm$aa&97@%RCin>_03q zeV0FqO*Rc$lEbu|)wyA^R+r7|-vkZxGDYkbX{F_w=@h;^CCQRU_wS6M6V@@vUKXfihNgX=iR0 zND-}+c6t@13dZAXm3_=#>QA||wCmu!P4BXyRd06um&Li5-d1144Hs5fWF8yM=sa zcsh%YwbvwcREhCZfFFx_%?y{Vb4mshojerFlIT_1eM9yjUIZKZRv)#p>#ZuRvy*WK z3Vdj)D+@a(?_MCLIVea4EMU5Jm{6|SD^nni`Wy>rTnF1#ef)}@_A*M#UI68}MgDH{ zZk7J%Q7ix{a#TrBfB?>9p%-);uc4oDf9KxgyILL?B%6bmZ!Hoq2k|dfq9LPZ(R1aJ z(U>L>a8`>^!f%(~&sma~dtVy7`^l0X`L%yz0mK{f%VYx7p*M)^*Jpvxt*cNIEpd7N zoQtk1#4lMYqdvNQAwUX>VTAEMPBo%d{q8f?teeHI_tL!)5|0DGIi(2^%F^4`G zu-LIf`o=SyEN~519fk{7=U=OP$fiv>DW2yGXKaJrO?GsIb2)A>q<;?;G#Sm(JF;Gp zB$=6f_C`Z=-Svkt&DP>vVVMC5@VACKR;wKY{0@c1lTttH6XL7!$r!X@r_dz_JMj*J z@?t)KvVx>#62V9oq-SorObR;CuVF3P)=MTpc$c}iSv2OYuU*IZj-S)aX@rvT45q$v z`kwT@$J8_Pa;Opr%4vZJ{>B6ooKLCvtO5g*uk}wkgQQDKP5cBf(NGX%ZV)?o8y5J@ zW{d)uJ*=wd`+%x!robDIkElQ)UgC_%Mnc{?>bMO{?Hp!FG0UzsJz}y@s&ug=@=^qr z{kojTr{*aNJzbmpCGOtn{S;d(FYVB5jP-y16FTToa9&^l1tqO7un9Wp6+qTU8g%fb z)3Tcw_RjaCoeZL8dM70v0&twGtiI1FJHf20&jqh!8D)z2W4eK2%Rzmj_ml&{>OuJ( z-Ec;O)Zhs#Y>#)z%UB;smuj+4CptzAK-^?8ailwgTq}m>3hq@Z$}XPszp%Y;sz%-X zH`S^H{&;fmrdRKBfE7RI1DpguJ=OP0H1VNm0HF(+|9~|ZU_mh?ak}2J;m+v{1?6Ib zhyK^YWBV{eM`_if+pBme~^*urf zO#&XpS7mwR^8^6ljgDF%=$`#4?DUVnv&9J3nW+IIc9y>+0Ac4F7WY`9{G-#aavo1x zX9(UuihRtlvJIzM$6;X-wp;6qikgfyUruJhQq>FQ(^q{Lod2(45eh^pT=Btg|MfVP zHDBAg3`NfVrJDCRa+v*6rGmXU_J!4{dZ}k~Lpb){9hF5|(u`$uIX2ep(jsh7uqB^C z#o+RA2AezW8+>fo7#A5URbR!-dtaABS*QpWxQYOn^muF-Py(N{aR=M z6-BzXn=^$J0DCM2X@z5QbJSexLy0OmL;CE2m!v2;#NTYcc_si<&gZs{?^`)svJ-&l$hZuL8Aiu;?Ez`SnP1%eJw}6*&4-qkd$Zj^TT4p7p-`_`1VEDIefq&PJS zNhd7JFZ%?s%-~7TeDafS;u!y9#C2O5?{?06$w<3RovMuZha9f;x|<%1cPT5%``L0B ztGkF_Yg`e?C&4oIkuDv5Bt2jR^IbYWaD)Ii8wV(Ge0pvRfcsjGA^Y!A5_Z|*S9u>g z<6qXoAaI#m3}6xgfd?!DP#!9Js1JevP-ZVUED5l<;Xf+h^{Y4|OCcLeDpVxvg)zH! ziBJ`|Nt4UGf~&Z!eIS}RQx`j{;5zZofPj@N+J)HCerK;L$EQ8rgebHh9=qM7-Npe$ z>C6**ep0YfV{t2=)wJSE$q6aQx(MKU{SAaGuBfp<7!%lX z@MQ#ujPPF#8QLDNRZF1$)&+eWV^lv-CXCAu_2fQfGu$pGQ7u4$n&<1l58IBxm?rVB zXj`@s#I%J~rH}^>38G!c?~p9NCm#PLntjHky;VnZcwcok3qXx12?WGLRJm3KYy7y# zvPiBbE~37sZ*DDxJ;?C_my$XFu5r7`!yIMYBnofbQ6aHZ8zMy_V;$}MkGjfG^^mcK zQrIlCIkM!BoMChCWr4@HDdQq#nhvCZD9z8Iw?$;K1(6wy^cg<&Ga7-ifFmFC6I0K# zR^-PH38tra7OHAF)wm22v?y9v)dHpDcSX-I>f1bJ2_Zt*!xE@SM8C_7tQqQ`ZUjJ9 z(4Ug0sYHBtKL_eGJbb5HjG%z;HnJKngDfHc?Yak?h-})9&@Jc&qbVG0)u>QXXJ34c z{m-tf@gzn7AW4aM_q1HwZY!45gj5UJx=$6H`8M1D&aa@~+}}0#o{k^;Hd`apG%ibA z5dId~@Ci9xnF+pmhC1mYN4|hRPNk&xe*oBH2yfqu!-4Oxmx;*Czexlwd?+jY5MX}W zjvR%E)ckg+vJUW+JQL9NXEEym95w08wfgPoA`cO~ z5L3u>^}Mw|4~#alkOSJ%Yr|B>8vR0AKUHTZbm<966NESFQfB%RHG=8cK$J=r~7cYhZ zxW|;C)H_`)0hs3H7Dw+7>v9B(dW&iNX!CPJG+Vm)M!~NdcnpR@EeBOgBqs2iv09%? zqrlH0r9^c3MJ#njpOT1D*fFEpL{X&U0_^8S0ZkSpiU}+}a8)hO zvEvsTngI)}@ZtK!z-=)I$SqUE0xAE=V1QsDf}b!FfM``x0BhJuJ5p>IZmo42aytoe z&fBtGVx~+jn1D8_Od9ZW_D?~;kBv9(=@oBXs^~%H8cqDsk5~B;zjBAACeFmi;;lv= z+z-=K=+(B_udyKpqL~Q%Sk6l0(3xbcZ0{U*y>(x%RG?(L^Em7g1DkQYoZE;lw|3}I z=F}>h@BRg(-@f1E}y|rTQ5Z+@N%J_LQ;R;0r>kn`BV~X26c_?Rsb)- zUY7a8p5V6y!|qte@54(f{*P*YXuVbP3HZ%1W5E#=m~{(+e{~?S2PKD?c9Y`= z^uN6srx?g+ z9#vpi4bU|=)ZS~`1FV|V|4RO8 z=Hnj{&B=X(&{piDKtLCzYewX)kcnGDG+?~HwmuY^O&KPaY)yP~@7LxzoGs#hGj}Qz zzyN_)RSL)#Ov+-wFG}*N0sBDK#zEF88h{sd2sRf&z_eMhUBty16v$?;p~{wsywZ-b zS1-Qz+g|?tu$6Zz-E1HJAN0gr%^Fq8u56}#%LR`A?U_xU2s=L9UJyCu$X7SiL^glN z7Ugnl@B8tax_MII(1QEo-k=wDu{F0@(xIVL2?4AtGg<1PTKf0K@PRJtwY|+FUz1N( zBd%%FEoJ|s7uD)PHUF%*GGZC;565 zw#rzmPK5)~^zaIQ?8kPuJy9B>U#Zs)6yAo(92{(mEO#Re5!W9Ng8DH@_yKj ze&sdM{W5@1n{uXG=+je zSKT~LU=riKnqZ|G=bstSB+U8W`GhE+!$*$%LK25Rc$Ls(r4N78KF20x{_*RJr6NkF zRi$7#QoU&JrVVg~s7_IK`yPlmmxcURo+Oz`Ql^CyIHb?O`myi;plE#oXpxaOT$8Wc zt;l-KOfsr;8*E#-NK#Q%@k(X+$(NHuJDmE)OI`DCIP=o2zNi$>Y<@;r4AHPpu#~1u znWSlA9x^$kh)9)P`!K6G`%!$h5b?zHFx5r;wlz#JdGY5%Hi87Z!C_XUqdnKd$Y9qz zBo>z>WQv|Xwo1T`gdApRMgTd(t=1N@v2(UKiycLoAyist3|jktUVwv--^}T|Q7+RO zM;bPEI84o=ym(acD5OoOaGqdgdhCur-uEE6maSo|_D3yc8F}NK1^c1zXYVfdW+N-c zC&|d|LIot3uqDyb35v$$;{c*0cku&XHxR?-L03(;;Q!gw9_iI{Dk1s*DXAMSuo9#Q zkRa_vwUdC}s0OR%6N4>=cZJgLn{!F1Ll{wlLvh=?ozK$ z{6X~|Nkf)6W3vMYq6F~IUVC=gIqJmw-^Eiqpu`s~NpO4W;FJ-`VN=JLdvC!9)<$FZ zKl@e57N?nW4x;&gP+a_O#1isFL@g^OXkJU)W2HQd%i-vS;u|YQiTjV1Au>V%{U}Bg zv;SktYmVqjf1*OOY`O4Fl<%DF7-q4-+HIT!PTBh>fJkN!V@hiqf{OhKK|ifv^+6UR z)*FQ)4^5td{~iOo6$`*mO0O$ssZ4G1gf?}UX)Ak^yAmusUSg=tgs#wta;%uwDeZC5 zXD=;{Z<<(bQlm?IWV7N+oB3qFIxfP2+e0vgQE@2B(Fqs2nk@LBAzlCcnZW+1ykfrq=W^lG;6t8 zJ-AFCWzE+AP$yC!HoLGqJzU?oTkOEHPEuFRH&fbE=C=sIty>*r%Jqps(FrGta!Kl3 z?x=zeYi4rVx-#FEq%l%gUS`$XtIIT{1x&Cv>}b&65pzVfa<*K3vZB2jznJK>=NkI0 z1}QF1BtFEzsJUOw6C(Yt!HBH}A1_Ks0}Gwf+xbuprzp=ITj zwFQ-7JJ;I|zC6DVS-tSGr(F%p$JZN6#V8pR2d2zD>5^}S6B$sl@M^Psv?aF4Sy|*S~#Q$4X~y*FcU-CTz`C=cP){40+Jm5oCi99 zKM+=2csA-vH43OPb4Un>^m6f6z14XigyJ0hX(;6bKCMDf9e_(_d{L`f;@(z$6*@Mk zr(}w#T>Ukd=7&VTUGLZ+&WS|4-Yx;)LyQ4hcaTlvF`VT3`?a zX+-IimX>aYP*7UBN0AUI=?(=!8ib)kkxr#^zVp1-_5I`@u+QFWt-F@V<5`VHWtB8K zHo3*J-n!Xj_{g+Kdy(Vs%L|BOTp95R(l{y#Htu~|Y`k2kI-|0#OV~cz=mgpialsdt zGc&B7wdqj#Y8tF&US@ysO%H%Qn#7TJ$NJV(HX|c%{oI1yY3*I%t77yKGCWNjzpcQQ z1aaGp15_WHn9nu|AOPht8T!rM5H|t{nLpjDBmijw01MFWWdnxhZ(x8igzb7E&4_F$ zjuoIPxduZk?sWGkol1Y&WNW^5Jd`^F?G8VPU~o!Pvo{MS}6< zg4r;Y$brM1-XyJKQwG9&cA42|dGvn$r0ccM^ zv22Ve6E>fo4m)D0sS^TJ05foVdlL9Cg7(<0eR9L+BUb5D`9_i4yVj*KyfH09xSq{e zuIE<#FhG2PTN+B;t+a-N4Ax3z7_b2P2=r)esc2mlP#N4*Vle;JqDT?wwA1_glZ!U$ zG+Oq_=KM0(R7!?mPgP>>`4PEL*L;VpLDPLMSX3EesL)RceyKzOHb zWUns#gyZThuD{dz@N{Wc_^E8rJVz{J*DjAzTEmaOIX1h??MMi+QZ%gR+2uPc1e$j` z%FdO7KU7{}kws_P&kCd!JspI5h$)BQWGuaX7Gb`(Rx6{pIYS1Ha z1b`zCW5yAN9l;)tpifOrR?(+qtKw$nr5ZqGTHbi3c}Hx9?l*{mAtoCdA2xu zt0-WO6l?)uHSCr{eh*y#1Vp`Z9tLQUNGg8>V2RtPM;E-Q3HUc#XhZ~*w`YhwN*6v{ zHdQ;6=)5b5=|a=icJL|s3_HZ0nZpYe0ScEIC^B!MW(VbYYr;TqJpi{ij2LJMc5umb zz}=F_zwD960679#R4Fkej1@hTAhOBF1;7CTSC6;XI>fWuB3h5?As#P2NMh_P!{IXV zFnJdS{_L0DDlKsKjuDccu4%Y)zQSN5@r001uC0GJyDOU*ckIMFdSQ!i5u+=sG@eUx zvKsog0U@;Oa4{>r*tc~#Tc45w(AP7+zAR->nQm^_Nz-+?ebSxvv1?45D}UW52s0u# znITVht0DDVLG@Oc(Zr%I7r7LS;U?Ddk+c2rXjKRdCA;h;Fvs8E_%3j_3s9V_OdnIF zxRvr50{=?8I;f)-w;`ynOvaz4;&^|^EJu>wtDHjRKWU0&W@rCMPf;)?bPYq7R~AF7 z0DH(v1kyx4(8f>O7V|y?Xq5ycNTV0*0|E%dUs3GNTEMQs+eA+>q_^5=20MNqvXy4? z&!wrgnMHQ|oOOBmS#Xs`4jxeJb)Ib6=H(8v_=Lo$$n(-ljsOg6({Z}=zSVBJuo&0C zt#laYYFQy?8UXqtNIZd<;WFhT2HQvYiO7v;{&VfJ)3D%h6W6yBu0wEqcTn?$g?R8%`${y~h0fF;BZ%X-bETtwF?+^rD!$3`D}t zN{zSmZ$fWcAL;VtwRem*5;MwwGo==jYwknn1)hkLY238HCbIG2b=QX#~zP87?pOQ4Z z@yq$6se94N+p4R%b+(yrM8K8RpXmV3Ytilz>`n?=Sg-q3Iux_>@d061bH$|kscTO& z9ZO3y0hp%S$jRQmhZ%5+Rw+@7t&(!_D6N&F!m3NPwElq4@ML2k0v%;{t&$d*UWE@c z#ur$Z+VTCe(ZA!0S!(Q!0BL1aL{bzRv^6dy+&eZYYyPI03b0Ybz}{A(ZjEGHs1q_z z(V-&L$Hjgs=5-*~k0;ciy+d_8gI@r+F$`LYz7aLiK;i0eHG7*R$md8SndF39Em=HR3j z-R>TLMf^pF+|T>bDapiF5Vi;wx7~vB9DZ_wwx&td_QweQmrs*S#-1sO3k{8YB5Cxz z*uFX^{KH98H9@^?Z_Cu|d@5G`nkH@PDqKVwnMHA-8F0{S6pX)U;`KL8m1#R@c>gQE zH6+YC(f;PU@GTmkwpWop(=XKOeoIP(Oa9@sdkQ5{>5eyc-PuYG`H0m#So-nlzFpfR zfd+08>EmjLwOt=+7|q*dp0X5bYd_~J(z(p7r_P;I%ov$&X>?*xP0Fk9yp}*_-kqR0 zXxJ$1?_YBk1F+r0_nz_^;l)pbti6*D-5%2AVPS4*vqxnpE?ZTM2KIq_>G?+u$)tns zQ^Dsg!@56iP)75Y-ieXzZLSU*J(jHKX4rAL@-BtVKEJ8Z^UnbGgLj&W_>GIG%x6npu*a02NxwMHA&}}X#0k#<)IEa7M3J3Q!ubbDG zC=4}ouYGcGrchu;MCj~^ZG<%iAXA=}t49XB;)NkAn)V{MABVD4eI^VX&R^i4W))I|68G%AxXk!7WWHtd;eRJ2X99dQYK-`}C9!-V5?tS-( zewDgz*lT3kQh)*3*XpBY99NY>^_E*!#69BaiFE#?YwsC_NI(%@rl$y2VN$Uh2ZWUI59EYfyM%Kt1BQki{(E|wEsyu4 z77&1x=wdqZQ(wWZ%k4UbuEDJm^2%}a5{wj`r}#&qI3g3+afcxDTT=i z4?>3^lx-^FsYWzCNG1~kDA5w3!=P9z;PL$dzP-gYrZ+tt2`1cq1tOCNHsO@)=W*`J zEqtDPnh5aQpjUSzX^{#@hzM}0pzfX}FA#%a-;XPDXx8lKq=G#OCW4!4vJit`%C1BS zg~!4x0Eqv^3`1vF4l2^lgsYVyQpxq1O6+9Ho}}D0tw(?!+C*rhB0$;m05C?seE5X7 z<~~;A6he$ zs|!imZ6S#PjG|^L`_vY96lTY2|HMc#O~IEqUj$v3kvY6@EZ~syyj%$ZJcEj9FqOD_ z*>}Mr9{}F9?>`Sr8&A1^m;J_SXz?#v&_@{2U%RnrW((t!u2Q(y`v;u7BTM9r)pPs~ z;mhB(fscSZimbm5>jspxQQdn%_-}(O?5y zAaauy2-uiN`qLfohPHe8*$Um=Mt6M=Og6BN)N^#V{!PT{6cih9VDJSWEH>Nc{6f+U z1j2y6A)bF$7#~2lMU`>emc!7wq(D6Ku1XUCw$4AMwUy>VMtE9ZyZ8Kl8_|(a!XWe0 zEz@RmhcNlM`w9nh4-!;fUzCO@W(RN83itio;0CLJq)SS6j1ZGIG%+&EJ^nntmN%gP z;^DA?IhiM8wFt`qc>JZ%89^7=^|Vt%^pnINyE`;k?k!pu7A5T86XW!RVrgDFaAy3h zk7)L-iN(!2Vr}D4_ITxd$t0r^e6ni*bbf_o(&kj8XbXp~tWn`=-EagBQvLZ+RoI(S zf+F(;z`P z4GCBTquR=kp|^b3p;<523(_kr@}@s}WO>Zh`70I^6B^_+iTmAH>edr%EOw*>2Z6SZ z{o4HA^r#J(7Cc^B|I=w^wI%(7zaJGf*3d|IIsc)ONg6=$P$*i@`C>_bz#u^I@nfyu z%oDFHY8H}M2YNZ*?T<@yCNkBTvQA+Gk1|$46W-Z}T&&Eh) zr$3Hru~&rZYdAxlS3#9jd*@HGDutM%$6wUBsXUMDTb41rRaI^rKi?Q5)uum3-K9kr z-Wk`2=UegLUFhqebgJ#l4QfP#%J=YkNO-WeN@zD8WLcPghT9KW1ZITRv9pzUf-;{J0uzu~%`b5o8yLm#d7t+oQz{W8EhTaBnv|()y38v)enlLag z%qPU`;0TgIc&Q%Zr!l+Ks$A=W_KNF^1#A^YTAon=*jPA5_E%lmXzugvA|~Sv$jXF|GK`hS7vw${4Qek5AQaXMguGUWY72PC@=iS zBb;~v;-i?^#!sYYPy0*b&D&n@8mI`s!JD(CEZap-n()#w3S$_Il@O@4lPVNG$Pkxw zBh(h8k0(+xmHT13ihd*HA2|7*nR`eRPm#earh$B$7shke7AkR?lfI2ZA7^A9#OG8tbQd!{b$jU7Y-)Xh`aGYvDMd-H*j#} z2LanN%%wYulqf9zpnJ`zn}eYK&9%6X_&`pvg_UKj*ZD6mK(YSF&@0$1jtbYO9G1BO z&=P)rwhI5gi1Icxd9eM6C{qkN)x;xr7`2< zT6mxPYGq_VEPiC~?%7skjjLy^E&a=_H~v#F2^_eU)`V<=e&E^m4faQr@ltha|JDJ0~6!^>i1m*M-Q-nijsw7gntm&e_aiD%O|yc>c1=ZMR)c4o6YKb zRl;gSt6Ts*AD6Dkkx<(nYb(tvnud6?;X-)oOs87T-SF&O58ZwkES$0SP-peS@fYM3 z2_Q5{ON3R}rsPa~{13Luy4J)u%-D}U2ve|mT?<3YHn&_p5t-gmk~x09u63}Y{@UVr zPWtE}kKxp9G&Xn&4{)R!mc7w#5)MrM>#mN;s`iVi61m8_ockR3bj&~1GAqqF zJcjFqca_G0HhK@GgOg?t5$=B8+k!m?*$2VXr|O1W4S41gIH{SY35i9P3A?wKOe4t{ zAy@p+q!5UjPHsWIXX+;&=RRT6UzS+Qp$v~u^)KphO+>O9??MCom}uKYDhjz^pp~Y>1(>3yoK%U=Wi#X(D>>+>CofVqsAB=l0wd-a4v5* zXVv!(7XKmZbI6N}mt6{*PqQ(%g-ZluD<1zju~8LVNyzFT+7^B`u2dNOurJ4_*gdhg zBq`%!;YwyIlT_ts)-%TKQ&LlNR1J6cgPAMJ6Jh@6Z^x6Eqo>k~jrYHKQb!n-&^xFM zhlE8Nz<^C+&zqeLgEljGq@H^hKw}l^=txGe`5`P}v(o+xr4#0N6;S7DM6^@kFe*+v zR!nDzI^n2?XPu3|{N-LE%slS%LTXF2BPS`S=-kzH?c*wm9%YCG(WWf#C%$_itXEY#vZsUh{add@a!YP8| zPk*+Wax9GE`p#$fjaNk$%K!U@&Y92WG-b5=i8N9xUlNP|VJi0i%rkvP4g_wvHs1nl zOM3z9cE31mY4Po8)2mt)r!KXubI?SCUJqB*D7o+BQE<;9fmSxNu>aC04b(e!+2f`; z;ibt})T_aScHH3gZYBt2>48)@q+XtB73ApFpMG2P05#~%{QcFuYJ(|2H-X{NGW&$m z$xP0h%X_bZx$O- z-s1zuRL9G3>c@Lo3{>ME23?wo0O`;yst1}c@BAaGHaGjySlrwf8a0)fX--W$!H{_? z?E67J_f*Mq0g6T5UPr4-*gGrD`{LE6M1HC|v+j8DMLRfe8<3V_y4V}5n}B@ayU^{` zxuiEC9=B{UmEz*lhp*dGC^VbcVr>ZBK3tu*kt8?%qR-uv$5;k~T_ks`(Vtem2P9xk zX8U=rF#%cH9SU-RS0&Cc7j#g_syto%;zm>4{-IV)1zX|GTmMEM zBLmOTE@@766h|L+N@vAVXI8@0Tw4cjRJB8B=@(ew_a(I~LiV2I_19bs^in)2#3xDs z6*6sHYUWZRcR8Q=$^ZNQznsKqMf?)EDZO~ph`@_7L?A(wRm_WPAGP5l!9-l2miu>? z(TRVn3)2m*$0$oo%BR?SY|(D-57Gyd|9PNpy&zd4e13xszxY(=ZgF%sBsG*?@SOVz zKuo#=?(?IMFfa|?ofgKrY;~C|i4Y#C(E;JYLx@)2m4yM`pb3Bm)OfN0T%EH+({~`X z;ottwpPos8<3Ha@CG(xTcM8JW?90L{z0?Cqe!_sG5HN*$m6on^JWe10tWr1P7ailX zx`-{KDe+M;V^iKdZ!4?2^wVM#$1WvbQ7cdVUlIUHQ#sG@Qf z1nW}umDv}CMh!N7FW52&@UrTI>fymvJm!EW>^lny3ZJLIQw#OFDMBj;KQh50!DzLw z1vP>_AHp}FjEZwMSKRo@NmdUS&viFjUKB8cOHHHwASs9iqEWPzm3{kN;tyh$WG*rwAn2#u^A zYSfX9m55F0gUIc&XzC!+ud9Qy)>nM<2Bl_vbfinF{%M0sM*-;QA3@nD^&}XJU*!Jp zpYU4f=(C95qps*rg7u zd~@bA?464T1afrFcfI0~Hwd^+L1mgbSY4tAcH9m6NjxTxGdm=j{}euoL%>QOGXxB^+p}mN@vn zhNM+YfNgd|r|AE+04Y5oXSmsvm!q<7!P2tl^>{LHK(|W;Jdw~owXU@ff!5wLgo3l! za)Gc%@F<6n-4ltpgQ}w~f3om;DYa7>+D7W09Du4#Q_Quj67GheQ0#@NIn3Wa+;#uQ$i=3@jC*&texm~MLt+$5sn*S#bkS@JcmUSQjm^n>6$DM1X=DGJE zGjqM}eZ>2QZxumePc=n;SV<43keKgWX}Y!qeE~KAO@wHVV7aqc?V(~4GRT4ebYA#@ zJJG&ca#B)~d5isF(Mu`JSM$A@T=zmOZLW3fXC@^x_6)e}uB9>ZD*|hqQguSR{<9mi%GQ+3c7+itbBOZprMVFg<{D z-?x8$xmGCsIW6qunm`H%(^jP%9_~yE@QQ-={(X^budbu1cKBZ z74sE#&EjYULx zHS9Wv3U91@eC{c9eL1OaSa=*((G$4;HgT8ZjP)EP<+hYsO5alBah`6?_6x@U;GOQo z5t%h6+xx;BD|ve>+0)|%80)@E`H=ty-po(Hb~3uO1qwXl0F2;E@_@iw2rh7(v%8{( z?q*m)3_RLnPM8$bIiEvlOQTdaxY{zWvzw_kx|6nP3;+3MC-PM#lALDIPMvUV?gx0> z{gPzQSHWCQEr35qg7}JlvPU-Sq+K8Z~5+yuZ=rS%>!}hg_|{>)pF-2AC2(SmXM|zI-GB$)WaoKYLU|4&NxoGgDH$YO@b z+&A+r3Cyw$eme;QRH|c}NRR;V{AC|9IX9I~`t;?ATv_(FS%>en@x=P++*9wI<75Lg z&AmB_>?E7?DT96e&lB&15(Jx+jxJ&0aEIUBPkD>mq*po+fXxg8p%-4aS~R9lMVe4k zd-mJKj_e;Y1)8#?Bd*#C4{RX!G~=(`zobT_V1UvuqR%En9uK4`hXOW{Y5@xd;Ccfw zm_OR3ML$9W9-P|+G#txT>U!==CgMG_zZ#cWk#xp;iTB{mCCxdGY17fTFg{~?^#{gz zjl4Zwj}27;w0;yap-^%!R!ckx=m^-4U#V5A9rc|I&B{z~-HKv#-mXc~)LoHnG;np9 z5(&+X0}TFLvul=E2Y7R7mEES?h1`!L-Y@0@c${RsCx%z@0))%LNx$2g@ROxaE_foE z@4)shod(LKhk{M_FAX8Fee1%Ph08yd!vl(B%PnH6ehEhRiTxNXoDN=&ci_Ei`KTZR z5hsgL(YWx&2jY!QtXpqxR0{sgOuza|M1C-oupR*?2sMs|6ZFjqw*L+t8@%}uVRGW4 z`;>L$fK;Z5D-dsa#XR5!Xb+9ZC*3Zwe4#A9`M6I|V!LRvkdA@yR2Sc(U)&jwQ9Q7+ zhTOdfr&F$UZNc@*Lp|BG{v5GyPL5t*uS5Tqg@d$6C?VjioeKT$Y5g&w#zac8W7tW8 z-43x=6&c$yzxZ?UZUaMkBGNk}8Qd0hG{D^YY(w(5Gl5&iYA-dQ+Q52C`uNvIv&%iY z{oIJMv6?cdaTs@~1JLVR_Axq}QwHw~jw_E7ejKwH3<)EIM5H~nVpm7~%qn9H6fFP> z<4iC(qHZy8uK|Cfk>1?dVQ$4xPCVf>%=sZqx#MdGhl$Gd%TDg0=Kw?ZNL#y3e>F$q zq; zh>b6IzCZs;V8P_}0Q-(sENFJCZ*->ub9QQ@pq?sYbgXgP_AR4*uwK083M&`t)Peje zifDaNHj%o5)BXg=em!<*hxL<*r?hQG(&OR7VeqcH9A*ZMKp zC1rD7UK#}Y5^LWQV@T1;Y$B3d{E$%FRRKT9&No%=r_UbecsdAjWIc&GAD*}w#+L2S zN386{oR0MDjm1nwZarEFMtak|KDGhzMChyX)2B(61fJtw{RT>BO`2MN1)~}$?U*2w z+^@TTW!aC&K>VfmQ6WXJ5K3+x%3h%03d>Lu0u-?DM(MWz-Z^Ik*K!X4{I$poVnDGi zxHdBmzYP~t*uC%K5cj_1J14(*SJ6)gnfObkv@#f|zPS=QC~(F?;Jdrx&rvj7lRTnG z&_1;V2UgS}fQY9dh!quv_OojFlM~nl=sF)UK0~`@rU%=8|4bU;6-B80y8X95WKRf* z!Ddz_>Qj%ue){zdb|qfD1<%94&{~;*EzB!n0Ej;V#~S@IQ{f$T5uV(Ag3dM1Efu~>=OLs>ZHY1)i2Wuu;p|{H)Rs$|R`Xw< zOKtfRt_s?j42jjFrbj*&zvQ7IMD2R9YDMLP)+WKIY8pF7nK3Cd0hSB*5K)+p5HDfS z+nwDlAqyeq3xcntkb@m=L(W0i4wGS-)dT%u+f@c|^Mj^MTyTAL>E{ef&v#ljVgN|U zB(g>N{ze3>OSn7-NodW;JVyb-(t35=5s6hCk# zBJJ`nRF+*vI0*{$!hl9alGeRtK8rd>g)Mg{U(36`XXde}lNRu8gwfOr@HQuu@z-*- zPN9y=-T7c>+-VA1QB{9`_W_yW3U&QsBqF;@kgblvoVUF0lBMko*j-?al=-uhu>U`w_H1(UrUQ zH=y9-x%6*eNJ=M(43y0f8)MeH`vZaQF-=3(Mw*?0dEm_nREG4mHUieApg zC6{;70B1qT{-_@)Q3p~eSWx-qK?ZNchV}>l=#%UgQCPZU?yVEnDkzL(uTI$)Goh6% zkP(t>e&2mjO8D<-{jSx2(Lvnu!7FhFaB!eTjinlM+ejHkqKj$mN7vx(#PRY5y*2n0 zEHsZ?PI;8$wgoeMN9K^KzBN3?0Ts?47dMzx9| z(6+;Y>k=cW&{LydT%%rEWPs`~O}L%p?iBkg4-@*hc1-j9GPX zl*^qojA?5~-7D>=26qcMRe#A$M(~uy;clv=AsvXUpt&@2f4od}vnapr0@5Y7L|5M2 znfITa^_-hEkZ2lcM*IBtrDWM|Rat#7Kme!q0d+EOCe;a9z1b$`E@>1Rp5h3o06a!WATo|tsf7_)MI@MNaZ)oO^6 zIKMRC@P93(yO5(H+qL}0v}qfr-kU%FOn&ZC9Yz+_T4@QE?wCF_xrrUW-v5ep7dybE z((1WA-{#`f8aJ52Kc^Q0$l(Ak{)_@yf(?84k?i`~ZZkd#vtVf_)-y>P`K$cdeD-i` zI)Q&o(J`Zji4bFevyEr6Qwi1?s!ZcL6@?PjHhF`JWd~-mUxAh=<+5qzIDl~yi(?NT z4ZG2}zFfQZJqtmsNa6SpuLcGL41>RszU?RG1bb2wE`6=6`7jjGBkKm{i&W{bR_WT| zF*>WyJSvaUxHDMqP(vtB10gd=5g^B#XJ(T?RC!C5n}`ua!vxgeVjg!(5ST+{{x#a8 zYITN#s_)2K?}`4Xho-~+z|+()@`s&mUf4Iz3^b_tWp5(T_IZcT`H)z@Pv*-FP_%iy zxzn_Lw%d8u5{^nj33?B!6;%=u;7Yo#zx$Z#bGx8vtHfxm5sz)|mdsP4b|z49p5@oc zVdfK;?_X~iCM@%f+QnhQHzBBRlq5$7UO@!tc=~m7lLbYoi&5wc;tKLM2lzaF&ytHO zXPSRE$I#D~a^E9QRW^e_XK>qpSN{B|mnr1XJhC~56Xm|bUq0fAon)xT0 zy%Kg>CU{FMJHy+<#*Q^@&7DPMN)U5>ohIvFwpz{AuGgc;5f73aEy{AtXz`*lqgq5@ zwePebRV?L;)9#KUEz0G{_y(SQh!#Cys-sBH$~FN&?jNc9um22$n*}9OcBS9uMGJH+ zr>mU9+82^GC0-o`6eM^)t*u@{{ZO=7eu-47aN2^SD8eNV4AprIcrNk{4!xL?p5>Yu z)T3_`FP?m0t-KFZ=p~%iw`9M*)mpq;b^clPTvX)|;T3Khs(=?h&uIoOKie`Q)mXdc z*F`#71@M~$k41L-zIdE#VA+9L%{w6krdsx^D76++RGm=M3$+ciib*)#HT^}*#58#W z!504Q4vJ3b%8GP^%-qj%wV}o1(5QVb!xZ#x3?iJfgiI;9ELr(r#tbri3qbEy-phLl)*`;5v0Y4B00Jzeq@ zIIcY@xRbAQvD4}`eB?nDb{$D4ux8|77@G6`?-x9L{+zm{-@D&_f60$m>K2{op0372 zE$m-K!o>DR{oU;aM{1MZ)fP6lDkoVn`)k2gUzf`i`f>;)$|d;FE*HVL%g&U+Dc3^0 zTR@{XgQpNqc;_clCkCqxkv#d8)#Q0_{NM4TH*1estLo{2gGOKI>dVQSzTNF@tOPd& zY?0r~U~~L))xSR$=%B5W9pg7-Fvby@u5a8m&C_c_GXY3HwxjGe?rE<>=>Meud?kKx z>%MI9GM#ic8519#=W#SXYWDF&Ji5QOW?7AF>jvPAI3N7 z%Fx5xdl;`9z&w6!AqaO=uxN%tC4-B4ZJg#hkvweEdiQnJOOx2uEcuC-@i=j9)vE31 zl8JMYy@z|~V5`2WR4+JKH>YaXYsa+sa`_X^wN<`tR3s&Oa#h8r^I&pxU!(R{`e-JU zYc#5TSJE~5gCQL6zS(_mbFqOpkBATKDN(z(r_E#_`@>RMp4_Qx53|hv_e0sTF!kyS zOT@R&Gt4S!weYXDf`F=jU_V(HTE5qw;!cucYMoFcv(z+*#QMJRKT}0b%0^Kx?dni@ zwJ)dyTY25RSo{~u2QUH#h$^G6k$$bCtb)MEHpuFthWjT=no$3Pw#ULOwXALJ}S(S3i`B8At5)XkCLX-|Q_ zUod5}PKl(?Zqj~|fT@Nr%F+W>7&$3gV^Ee3QlEUcT=C*1qpJ$kT2P|ZOu5iHddl|j z;Gf1SCD4?EyFZ$eYgIgR#SLtgT7mH~rd68i2J?+ME2N7dwbC|12+&!X#i z9vUqCd`wbj-)v#TVp@lIIJ1EBkNMD3=k*%OdUg9JQ&pLjj@eXvtq`5T$qi&)<4 zZ0&!v-fW#mzH_$rF!SWGt!i(b%5Q%zIP7ZjvUrphn6EYnmp!p8LBXHP(0r;vP-Xz? z!hOhMam>1;n@&Q&VYxVM;PAvtTFjZM%%2T`>Dr_yWrS1Wy)Y=0kxcD8Kt8PlfQWbT znFq6-08fvX*QR=vL+|UI#`kQykgCn`6Jb6h>a7r{oHwvlcI9T|g&Y$QY^P7s`9xoX ztG9}I;@jrQHsh-#mY)V(3G};Gl%P`-6K+QbP{U#GiB`RNI`L@x(NFSBT&w|aOk570 zeW{89gU>z-_G@I>=kZpN4Mo>`c5%0D5<`2c(-0^2sx;K>P}Al$AJ&-w^_iD zfK3aJ0AnaX6<<&5Pa5rZ1raYj`iZ|d+f`RJo;gkb{`KdFSA_$`)lZSg)<7gcv8l$L zC%{muk1FTKJPVyZUyhgat0h>0i(DuIh9V*U8{-klvQuXlgLYFtEG2 z3(+ZbLyJuB;h}-eZrCGlGkrf9{I7P@MO(o{+xQ4fK$#uQ;~$#%<={9jhqEPOPo9H> z<6~K*XJlcoEg>IT3cR*(WBWjy9nG%IRAa*Q7Mu zW6k_#d@+iK8T_nJ8h?3n5^^3tuJxZy5vCNIJuvw>MKv;bilV*s!WBd3#tTJ}UB1LC zyN6?2+$ES)^=KpGD~YpULRdXcFsAV|FTLkg_oe;G5(7Y!ACL-| z`}533{=Vr^uv-Bj{Ia$p7P~S!K5J_Cw?GhYW-237uO_KDw?E}A0yDY{ZUz-L6rIYa zf1?3=LpR8P^se52{ZFJ8ESzIb+6YlV4u%#u!M7_SicW7-L!SRSG`q>Y8M|)4kY`VG zI#E}LJL{X73BJ5ID)0)nfUg~oP5vwCmxHrnm5E^Zi~VQA7d(Lpnk6vTAz!b)hME)K zUAm&V{eJiIOHv4Z0J)oF1*&14@2@5K3$HqT;pYs0VPld_DFgkRg$xq?ACg4Ga)w-^ zOPi87C5Orw%jg~Y5rb4}m`vTC*@+hNGB5@xJB(TRT5a5pAwmm2`3Hn^TwWTQ*Fo&Q zdEKW$l2u-4Y+p0v(Q){=x``oeks>*0ujl{-KC<1%$mbfmRkWj!$NHM0m~rc7MVG5SX)=Ji~I7 z$o1Yse}FW6+ksSOCWQVnG%7(MS|!?1g)2?Q4NaqpR+bDTvne5E3%L>f=6acf3El*< zAoTK&d+qd{K{Ytuy(z``ey$EOHbM^{JDkqKmZYtgaIL*lr0M!w z4xlTs`F6Yi5KJ4YZmeG9tOJTC@tc;iPHJ0b|9M?z{Fpi-hs~IXNj0AcLz7;5 z9#{Wz{ADe6GcuM6oSLB#jY&uqp`B;sDPQ{l;A49HDSpTlZ3Dh3#dh@{WCi}Y=;vE} zxqroUktc|#iWDuWHgNu{BOFJJCjD+ESk3c3T7#F}{Z`;&YaM;<;!0rdjVxLp^nc0? znBqmwf(0CqS_CjXev$i9Ug3uM2VKU?0%|6&yF z=b&Cckm?q)^YW9E`O_Ju_?S>5V!!tcdL)dw^=@1T#`Ibo;v<8ROjPSct~}bcAr>t< zIGR6+rLSwtc9SB(*%sw1B$T5V^O_+nk59|G-_X0A;g;7_chI}+YQ3ku{p5ZpgT_Bd zH98%v7vWOPW&b(1TDmi_!y`2({0t6?K z+NN)wkx$W1B~SO>fkC35S-eFWRp7-x{fZ=WgN0Kv?_TF<0DMbDa-%*d&gRNJE*-JL zHTC0QuZ1?{NHL}g`wR~!iwE{n>%<1A2k`Wjd2;tnCnKdJME*%5K!Zkk#dqW>xyEqA zmPbn$ng5TDxS*b8=+U&JV9W7K!K3)vw4Lem{27;_t(OOW5i&}udo5rMr({bJf<#*m z^e4q}X)WGcUAem1d;{=oQ+zqc@36WwTh-=LN1{>%_~z^m=B~)LgA

Y<*82oG?)5 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 F{{hf477zdc literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 0000000000000000000000000000000000000000..60d10fcd2dc2a19eebda078cdf90b2043c28bfca GIT binary patch literal 3575 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 MH?52+4cuS+9}(68y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 0000000000000000000000000000000000000000..bdc8d713f9771e1f1754c1949a3f798d640c957f GIT binary patch literal 5368 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 p{Q7ed6wiBv{|VUUO68002ovPDHLkV1nN`ltlml literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 0000000000000000000000000000000000000000..a23eefba65c0be58ab9918c400cfa101c73ea40e GIT binary patch literal 6035 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000000000000000000000000000000000000..b3cba99ad0297be47ba55d733f2cd00bf86b7e7c GIT binary patch literal 6870 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 Q@Bjb+07*qoM6N<$f)aYI9RL6T literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png new file mode 100644 index 0000000000000000000000000000000000000000..8ab470fc445a681dd41bebb295f6dea2e50653d7 GIT binary patch literal 9309 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 0000000000000000000000000000000000000000..9048e48b0c8f2fbd242b84f87b39ea0dcbee47ea GIT binary patch literal 12171 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 0000000000000000000000000000000000000000..593621e3963f3b8394a86f39d5d12d333a7d0b58 GIT binary patch literal 636 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 Z?jNI{iFbt_nOXn<002ovPDHLkV1lf$mBs)7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 0000000000000000000000000000000000000000..0e828078439c270a7a2ed268c28e3cb6aa28b048 GIT binary patch literal 1419 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 D(fR7o literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 0000000000000000000000000000000000000000..d1633734c783b919230deba20180e4ef02dd1ea1 GIT binary patch literal 1631 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000000000000000000000000000000000000..eff570c150b6c16449d53549d823b88a3ff57ff0 GIT binary patch literal 2254 zcmcJR=Rezv0>*##t~!p<5~FI5P^(r?YSc*3rbcbSZE1?C7)@z|YK^L+HDcDOq-pID zTTm)3LWn&}ogzk*I7AiK{R8gjzPc}-=Xv#g-ab$Abq8x9{`33*00`OISi(>9`hUdB zed;eob}CMTEgWub4pa_G(*b}t$=33!Q?&PH{=rRGXGyXwM11OZOPwrF-7p2siXgCh z&RzH8&yVlE`_LQNFRrd0#%6ARgX4Fx3=pSV9yNAr+gon;vC)Br?#kf8em`l&Y$f&$ zvyFOKWP;uQSVIp=M1JJ`n+uS5;T0eW>~@2J)np$)8(2-n5MqZqfnsI$qUE?aHi#pq z=>P`@2d0QOI**5&8!!|3p(iXT2%s-41j$IAqL!T_rrM`qGKTQb*B2NPWpiY9{*Quv zKVO+t>ywKUPqrJq!)38R(ZR|C$d$W9H78M!1t;Kr7V0~ZR$|* z=}YIplA2AUCSpG7+TR3N$HEw``Ujsv460|lml>G{ zg+=NDM&aCla(!0DTXDf7a-E#D#K5n1nD}D^9o?Z9>8kd{G5hm@YC!>vvABA#nD5LF zH7LFm{^5Q`+_2$=e}rZVCIOlCan0AyuHn@i1*I|XKV%w=*_ABO4v;j~)41MgR;P6N zfP08SX&+8V9akhzx7&w(mF4ss1b*}NN+U+35#K&w>?V}ZYM5|paok#gr)Piz``{3W zZl1$7fZZLdcA5V5#nYvJF4MvLl3aGSUDZ~m9sj@%p$_iR=;WdSy7y-vbmJJGPpb)U z5GnWa(()o{M(j$mCE@*Qh;N!xD9ekiUDzr}1Dm2RLe3bEBI6Y_4eo5d!X7=ONf0#k`&03T zQBotICLcpvsk`ONHT>WOyt<+>VYHU=e>xdEXZ9)K!BoIsO(2VT>p^3Go5JWW0 z`0>@Xw!*WES2z0kAc54ktAbfO8EP~5U8~mZ87nA~-TKf|Kf#E|yE@YEVc*?k{0JvY zwcXmXFIC$gE}lm~on3=FLbFt^Y+X?l`z#jSE(gNk)X;WlaWOlSwHHSr4w6&z3We={ z$QF%0c5erug%2U_4!_}NHqnQF2ga$&b?2o&HXJZ7^OQ@7Dvy1yQ9}%aUEOLoRv*m(urospE~7MFRqGt+rV%I!@21A_Nh<`U53~dA9sY9?VhwU6QTCpE>Q4-8F=f1ui&XABS*W;Ps_C^d^C3eAsq4!h zv@GrSD?`a7B-qFQ{NKh;ut$qw{u*L4bJi0teF{|9SaIA--9NwgDiyTdv+{MW7t@Nm z@pM&WF44ycg_;Ro7{Wf~gpmn3(%b#>pRpwc4e{#j)F0ze&XAVM3TZyHf~ z3;Zm(6d~+9dh^wzF4MORE*|l#4+xUsZ9^8A@SR0ec3O{eOyS&JL@H>HMZxaompmtT zK9VE1SQ}sdct26ztH-ls4c=pPuCQz=DmjK{^j0l{wB)~W6yNpIUncw{zo1Ef?ot1_ zV4jAW+e}k5KD+D(UWwwA7(SQ9dv<^C(s2RvnvpYxCKwfJX6EOf)GE;MFc8q1EIG+V p07K#3?3n-48vpk>FIL8!0AsaK(iP`*%hQ7b*jhPQR+{_9{~Ps3O%wnC literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000000000000000000000000000000000000..d9043a89ee45de58c391482e562c2895c49c4165 GIT binary patch literal 2467 zcmcJR`6Cky1INdTsPL3ou9e$zrvkxXWDwUKMWFv=}z zkExbi8A_v36qP&=d3*nd_x<7f`TX+v1HM^K7f^>K6(j)wz+tqVwaagN{C5Y$elzCT zbi{9o;9O9a0OpvI5CD+yLt7)=68t|?v92JL?CpT-GBO|=kr<>+Os?}KxmJ(hA0MnX zj&AC?*K&dqX; z)*;lgi|i*d+LF=T(YZNd>|ax2Y{;}2TZHK-3b~d^Rb05CzVIr}DKd4nAQkl**(t(A zi9#I21-~{~EN{?T49yV13D>$)bg!U}ywvbMo3xNtHOT^wn5X-nONB7HxU ze`RVR;$Y}()qY+}#+7mcYM370!RY@ZF>hV7nl8Y*ti}Qf@9*XgN=(i7*oS#)A3lVk zb@PU9C6jh*p^6^f6vY#;ut7;|NcU&KxAH7k$){BLNY+D%+L&fNiUT)}|3oc0(X#8z z$)cekZWy}ThbVwczN zx^%T{zEz(9`O;ff#KCaobMd^~KZGAbvX4v{or~GS@xhGwv1z4@UnupG1yNu~gZD{9 zCsg8JyNn(Bi6bc^|In>M8T&!)&ay30h2t&i;E85`;Z;%w9QVkqZ_U5dTuRY8?J;1A zuZ3uKo@qH%0t_MId=((AcxFK4R)Sn8F~NFfLiMvJZE8h1zsDk|+-qIOoGSt=fsSa> z9pSpFG8mOql@Wf41^{BK^xAOn*>Q!am^#cUe(y8iV1@;(fBuwiahY$v0Uy!;aq za)@u_8Gb2)l#4lzzn`q+>#y0(_N!~WCzi=bC)znik>xIG7^cAWcFnHh4C;%1w2k;7 zl{CtMSnru${xB?~Y9(OI6CMnyxv+#taDl&#s;zo?of*i6i8ocUCgZ(+4+M5sRiDLBvXb*QUvPn?g#fSH)6Pp44PmH$Xf`7keU))%8+ zTqEDP!_Y|=8x)|1TVs|zQ)+V6GP}sx7Eo4blf7c8u4NV3NX&7?%cZdN$U|{@_Qs*7 zIc=BIRwZX{+hQkYN_?~jGVN1Tq%M^qRdivrOo-H(K4Tlhj3%q=Jhd z@0i`%$qMU?=Dkr7auISG(p|pXr&-BB6UsQN-o1`AS=?@voKACh*?=V(dSNHUTPa$Zm6O230?f^MX!yS7omUhWi`7*#S0vEqB#qqDa>pohaNw- zYi3j5Io3x(G+DvQz6)7y%1t6{x`t(W++b^*?D^~B$2UwY;)j>SOSg{rO4)~^MalInYiI5I`%AhNT9(>K~E_qNFI`0}DK8yhxILdED>_7Elnd80>DdB|{=9{8H74 zW8r0uU0g7;vCZPcNyor;3-5JZCVO%_8^Huf#-*qpkA6bqwDFllj&U-G*mfNgfOY@nL-v%Elt`Xs2?k%^E`bBG- z0O)_zknr8=`R0lAJb!bUC+)9etIa8~+6jC4-x8EKuL?Rn6*_g4KN`NNq5Uyd&iLwLstXD(vj@QIWXvP?w6ge_KF< z&8SIxQJ%g%xh53xx#ZdOx1H{1Y!FYwv VB8k8QyT4x-0Bv)@nrRuB_8&z9sY(C< literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png new file mode 100644 index 0000000000000000000000000000000000000000..90218b3339f7a9974ccece1f684660d099dcba5a GIT binary patch literal 2556 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 Wr@<#6Vc^$01P~TT^QJ2|9{vjowFid) literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index d36b1fa..ffab254 100644 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "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" - } -} +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"102.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"45x45","expected-size":"102","role":"appLauncher"},{"idiom":"watch","filename":"92.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"46x46","expected-size":"92","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"idiom":"watch","filename":"66.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"33x33","expected-size":"66","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4725e9b0ddb1deab583e5b5102493aa332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933e1120817fe9182483a228007b18ab6ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b0099ca80c806f8fe495613e8d6c69460d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945a01f64a61e2235dbe3f45b08f7729182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a9bc882b461c96aadf492d1729e49e725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec303439225b78712f49115768196d8d76f6790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea27c705180eb716271f41b582e76dcbd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1674 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 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12aa4d28f374bb26596605a46dcbb3e7c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H From 113614e1c5a830ded18a182191663d6476d36e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Wed, 7 Aug 2024 22:22:20 +0900 Subject: [PATCH 25/54] =?UTF-8?q?SAPHY-132=20Chore:=20splash=20=ED=8C=A8?= =?UTF-8?q?=ED=82=A4=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/splash/spash.png | Bin 0 -> 3024 bytes pubspec.lock | 72 +++++++++++++++++++++++++++++++++ pubspec.yaml | 1 + 3 files changed, 73 insertions(+) create mode 100644 assets/images/splash/spash.png diff --git a/assets/images/splash/spash.png b/assets/images/splash/spash.png new file mode 100644 index 0000000000000000000000000000000000000000..ce607b7ab2227462b80808ccadd64f16d142bda6 GIT binary patch literal 3024 zcmds(`9Bj37{D#c9g(96nZ#PJkr)bLd(FKZl`AynWsaEp?BGpuHJYQ)w2{0&*%C1`8*F$4px$4KrsOU0ZD5l-08si2b78& zImknm>U9Say@hnc2?&VG{s%yy_^IN-5P);CvJjv!PR<`RLILLX<^lq>IpRCMhYz-F zt>NY_v4EwgpTk_(ax{g8fZ&1dBf$!SfNx(?3-KfuGU7#JfhpC-dy8qN&2#l0Qy|?? zVH!B$Uuu9Z=N&57RS=fg;GXct1W$1X_=Ie!?FdXOxPlv4FJsA;fKYA|Ep6x4dHw)-3DN z-~Gus&q5|a)7PhP5r#?GpB+gQwP7RNUKxqeQL6#ni?qZ95d56;drd4{ZJE3EqDFYc zY1`4&)1Q0XNSy(#Nj7~`&zI z?koC{PpNkNV%qN{9%FTnht7W8WQzWl>Jn;#e@vpzJ8X9Axk)0FJXtg0Cy-`223y1H zejDqmy}y1}Qij4Q=oeoB;GJ1~CKco?L%K7f`~A*FrYH`LzcPb#6U$v;x>eB_gBf<# z$rrTm#fGgk!?JCAw~cn8WgJp+SYeBGHmB72Mfyi4}9;6o#cVV$?Ne$tjm2AjeVsTgJv9UdoYtBV_Q-xboae?3F z-oX5m-)^p4jt++E`(m^JnT1NsL*zE4$%4YbEu@rG9lQ^9Kcv7jHA6pGUgrhvHfs%7 zF-lQ+cw|MNx#=8AOq2}6gg>Nw;I?UQ3x9o|o%KV4W%c@JT_#Sy!|%IDdUF5bPq68q z!iv->-95StSe3C*5D;M9r_ecqh@k(3=mQiKc5HQQ%I zNdEICNzE3f+9#&s9dG}V*Vh{-ECbi%%qf9eVKIg}XYPEb1je7UIsPz0 zBxEhv4TuaOqK|=pw%PAOj7KJ$X@>*T&nv&l=jgF8pMPC}SO`ALeJ~Ue;uK`iy)n68 zQG_6CG;LlEx_ajJuT!05&P9W|lpS2BYzcuqW_vj8a_S11H|pLbKXh%xK8CG1F=*U7 zIym7=8w^UU3E_6Rt8~*nK`tS54ze&vL7X}4Feoz^2$C!L#G)7h6UJP|b4Zv6A9H>{ zy-%8r#~VFgNdJT0rp59Q$%&FSqQ45Rq}%(A1%>uR6Q#LB-EH9@;}gaX#w%yckJB;@ zu2z^6nh55fqI(c8iu_06>I%yDFdo#_KPrAzd>fC|QD1Z`aHrX6IhNt#2bJlw%Ey9g zsP*|w|9}L<0R1nSv{=QMp(4yW&HSpo0x<75#2on&r7UqOVt*IsmjAQ|p+%}wS|{&y zy{D?&ELqBv0RpE)NU0-0R*bUX;--9nL&eA#+WDp9$;8IhSn+4bVuwcJ&#Nkbk!%X| z@pi?1Emd4747L^!Ll|E`DT@2%Dlgc}rv{~`sp`qUECTRtzbZz_vjtiP^F!E1)q7(O zAH<}KMTuv#$dczOZXVlSO~3fqGv!p&yiV={!`W?jZQcKcOD4xMazv>r9CKs3g%AKe z`L>jGJ#GL6v+z$C%8a5UgK)ibjtTLT;j-4uMRcKlc7jC;WY`zd%!`6oM$_&BPvQ5u zmT{pA*vI0Pu!avFUchOz~PHrNC)d7K`rFYzS18M#pCYUP&Sh5>#i}gRvpeM$EZyG2^*$dTlg&-L$UP zfO=2gc#KBmQ4&;y+CmBk!Cq>kBF6wvk{^{rEn#1K z&4LyayH5Clqho7I9m$vQHg(HoRTEnd`k*;?9PGEkc@~3yLCq8w3+tDre^RU%#-=0k zEpoV>Yttox$)6`U#B0p9ARI?VHF=ErS_T!si`6j;4jJ3AKMB-@(Wl7!bw%zrxx{i-P<&=*FJIaeLkUJ)}$VdF2 zi6)oGp=+4SLnt_sHC( z!&2=W*MLn9)vRUIC5ZDd3rm?A^IGjLZ(59ttmz%1h`mea8mojTJSmw-0##iP-F z{2K%p8@KTxSm?=UP22N2m`-WG|@#qj3m$czPoEnf=`sWAg&GwJ}&0GXrL!l{=nNy0))ys$>r0(T|mTx9{1*2JXd}!sWyeE=1J- uRGVh3Z@-}k3Ri;<-t43P*R3)3_5x=QYLNr}3#N14f3ik6z$q3!cmD;r(21u2 literal 0 HcmV?d00001 diff --git a/pubspec.lock b/pubspec.lock index 00662be..bc965bc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -25,6 +25,22 @@ packages: url: "https://pub.dev" source: hosted version: "6.4.1" + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" args: dependency: transitive description: @@ -145,6 +161,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + csslib: + dependency: transitive + description: + name: csslib + sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" cupertino_icons: dependency: "direct main" description: @@ -294,6 +318,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + flutter_native_splash: + dependency: "direct main" + description: + name: flutter_native_splash + sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 + url: "https://pub.dev" + source: hosted + version: "2.4.1" flutter_secure_storage: dependency: "direct main" description: @@ -408,6 +440,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.12.2+1" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.dev" + source: hosted + version: "0.15.4" http: dependency: transitive description: @@ -424,6 +464,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + url: "https://pub.dev" + source: hosted + version: "4.2.0" intl: dependency: "direct main" description: @@ -640,6 +688,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" platform: dependency: "direct main" description: @@ -869,6 +925,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" uuid: dependency: transitive description: @@ -957,6 +1021,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" yaml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 39e55ae..05c65d6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,6 +48,7 @@ dependencies: pretty_dio_logger: ^1.4.0 firebase_core: ^2.24.2 firebase_auth: ^4.16.0 + flutter_native_splash: ^2.4.1 dev_dependencies: flutter_test: From 6acd862020e741fcfba96d98fe25be0bdefc6be8 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Fri, 9 Aug 2024 16:26:43 +0900 Subject: [PATCH 26/54] =?UTF-8?q?SAPHY-96=20Feat=20:=20=EA=B5=AC=EB=A7=A4?= =?UTF-8?q?=20=EC=A0=84=20=ED=99=94=EB=A9=B4=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 84 ++++++++++++- lib/screens/purchase/purchase_page.dart | 159 ++++++++++++++++++++++++ lib/widgets/normal_button.dart | 7 +- lib/widgets/purchase_info.dart | 55 ++++++++ 4 files changed, 298 insertions(+), 7 deletions(-) create mode 100644 lib/screens/purchase/purchase_page.dart create mode 100644 lib/widgets/purchase_info.dart diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c91f4b0..b4e313b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -5,8 +5,34 @@ PODS: - AppAuth/Core (1.7.5) - AppAuth/ExternalUserAgent (1.7.5): - AppAuth/Core + - Firebase/Auth (10.18.0): + - Firebase/CoreOnly + - FirebaseAuth (~> 10.18.0) + - Firebase/CoreOnly (10.18.0): + - FirebaseCore (= 10.18.0) + - firebase_auth (4.16.0): + - Firebase/Auth (= 10.18.0) + - firebase_core + - Flutter + - firebase_core (2.24.2): + - Firebase/CoreOnly (= 10.18.0) + - Flutter + - FirebaseAppCheckInterop (10.29.0) + - FirebaseAuth (10.18.0): + - FirebaseAppCheckInterop (~> 10.17) + - FirebaseCore (~> 10.0) + - GoogleUtilities/AppDelegateSwizzler (~> 7.8) + - GoogleUtilities/Environment (~> 7.8) + - GTMSessionFetcher/Core (< 4.0, >= 2.1) + - RecaptchaInterop (~> 100.0) + - FirebaseCore (10.18.0): + - FirebaseCoreInternal (~> 10.0) + - GoogleUtilities/Environment (~> 7.12) + - GoogleUtilities/Logger (~> 7.12) + - FirebaseCoreInternal (10.29.0): + - "GoogleUtilities/NSData+zlib (~> 7.8)" - Flutter (1.0.0) - - flutter_secure_storage (3.3.1): + - flutter_secure_storage (6.0.0): - Flutter - google_sign_in_ios (0.0.1): - AppAuth (>= 1.7.4) @@ -18,6 +44,28 @@ PODS: - AppAuth (< 2.0, >= 1.7.3) - GTMAppAuth (< 5.0, >= 4.1.1) - GTMSessionFetcher/Core (~> 3.3) + - GoogleUtilities/AppDelegateSwizzler (7.13.3): + - GoogleUtilities/Environment + - GoogleUtilities/Logger + - GoogleUtilities/Network + - GoogleUtilities/Privacy + - GoogleUtilities/Environment (7.13.3): + - GoogleUtilities/Privacy + - PromisesObjC (< 3.0, >= 1.2) + - GoogleUtilities/Logger (7.13.3): + - GoogleUtilities/Environment + - GoogleUtilities/Privacy + - GoogleUtilities/Network (7.13.3): + - GoogleUtilities/Logger + - "GoogleUtilities/NSData+zlib" + - GoogleUtilities/Privacy + - GoogleUtilities/Reachability + - "GoogleUtilities/NSData+zlib (7.13.3)": + - GoogleUtilities/Privacy + - GoogleUtilities/Privacy (7.13.3) + - GoogleUtilities/Reachability (7.13.3): + - GoogleUtilities/Logger + - GoogleUtilities/Privacy - GTMAppAuth (4.1.1): - AppAuth/Core (~> 1.7) - GTMSessionFetcher/Core (< 4.0, >= 3.3) @@ -26,11 +74,13 @@ PODS: - GTMSessionFetcher/Core (3.5.0) - GTMSessionFetcher/Full (3.5.0): - GTMSessionFetcher/Core - - kakao_flutter_sdk_common (1.9.0): + - kakao_flutter_sdk_common (1.9.2): - Flutter - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS + - PromisesObjC (2.4.0) + - RecaptchaInterop (100.0.0) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS @@ -41,6 +91,8 @@ PODS: - Flutter DEPENDENCIES: + - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) + - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) @@ -53,11 +105,23 @@ DEPENDENCIES: SPEC REPOS: trunk: - AppAuth + - Firebase + - FirebaseAppCheckInterop + - FirebaseAuth + - FirebaseCore + - FirebaseCoreInternal - GoogleSignIn + - GoogleUtilities - GTMAppAuth - GTMSessionFetcher + - PromisesObjC + - RecaptchaInterop EXTERNAL SOURCES: + firebase_auth: + :path: ".symlinks/plugins/firebase_auth/ios" + firebase_core: + :path: ".symlinks/plugins/firebase_core/ios" Flutter: :path: Flutter flutter_secure_storage: @@ -77,15 +141,25 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa + Firebase: 414ad272f8d02dfbf12662a9d43f4bba9bec2a06 + firebase_auth: 8e9ec02991ca4659111cc671c84d0c010b6bfb26 + firebase_core: 0af4a2b24f62071f9bf283691c0ee41556dcb3f5 + FirebaseAppCheckInterop: 6a1757cfd4067d8e00fccd14fcc1b8fd78cfac07 + FirebaseAuth: 12314b438fa76048540c8fb86d6cfc9e08595176 + FirebaseCore: 2322423314d92f946219c8791674d2f3345b598f + FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38 GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db + GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 GTMAppAuth: f69bd07d68cd3b766125f7e072c45d7340dea0de GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 - kakao_flutter_sdk_common: 6cc350382c723c0ec6faf44e7c68a22b1c48737b + kakao_flutter_sdk_common: 049c9341e325da17ac75751a35646dbbcfa06891 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 + RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21 + shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f diff --git a/lib/screens/purchase/purchase_page.dart b/lib/screens/purchase/purchase_page.dart new file mode 100644 index 0000000..8dce6e5 --- /dev/null +++ b/lib/screens/purchase/purchase_page.dart @@ -0,0 +1,159 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; +import 'package:saphy/widgets/purchase_info.dart'; + +class PurchasePage extends StatelessWidget { + const PurchasePage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + body: Column( + children: [ + const Spacer(flex: 1), + Expanded( + flex: 5, + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30), + topRight: Radius.circular(30), + ), + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 20, + vertical: 40, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + PurchaseHeader(), + SizedBox(height: 10), + Padding( + padding: EdgeInsets.symmetric(horizontal: 40.0), + child: PurchaseInfo( + // 요기는 나중에는 상품 모델 백엔이랑 해서 정해지면 모델에서 정보 받아올듯 + productCondition: "A", + productColor: "그린", + productName: "Iphone 14", + price: 130000, + productStorage: "128G", + ), + ), + Spacer(), + PurchaseFooter(), + ], + ), + ), + ), + ), + ], + ), + ); + } +} + +class PurchaseFooter extends StatefulWidget { + const PurchaseFooter({super.key}); + + @override + State createState() => _PurchaseFooterState(); +} + +class _PurchaseFooterState extends State { + bool _isAgreed = false; + + void _toggleCheckbox(bool? value) { + setState(() { + _isAgreed = value ?? false; + }); + } + + @override + Widget build(BuildContext context) { + return Column( + children: [ + ListTile( + leading: Checkbox( + value: _isAgreed, + onChanged: _toggleCheckbox, + activeColor: mainPrimary, + ), + title: const Text( + "상품 정보를 확인하였습니다.", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 20, + fontWeight: FontWeight.w600), + ), + ), + const Divider( + color: black, + thickness: 1, + indent: 5, + endIndent: 5, + ), + const SizedBox(height: 10), + NormalButton( + title: "구매하기", + color: white, + onTap: _isAgreed + ? () {} + : () { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('상품 정보를 확인해 주세요.')), + ); + }, + flag: true, + ), + ], + ); + } +} + +class PurchaseHeader extends StatelessWidget { + const PurchaseHeader({super.key}); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const SizedBox( + width: 48, + ), + const Text( + "구매하기", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w800, + fontFamily: "Pretendard", + ), + ), + IconButton( + icon: const Icon( + Icons.close, + ), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + ], + ), + const SizedBox(height: 10), + const Divider( + color: black, + thickness: 1, + indent: 40, + endIndent: 40, + ), + ], + ); + } +} diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index 30aff63..9e7b7c2 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -23,7 +23,7 @@ class NormalButton extends StatelessWidget { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), - side: const BorderSide(color: gray100, width: 1.0), + side: const BorderSide(color: black, width: 1.0), padding: const EdgeInsets.symmetric( horizontal: 15.0, vertical: 15.0, @@ -38,7 +38,10 @@ class NormalButton extends StatelessWidget { Text( title, style: const TextStyle( - fontFamily: 'Pretendard-Medium', fontSize: 15.0, color: black), + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.bold), ), ], ), diff --git a/lib/widgets/purchase_info.dart b/lib/widgets/purchase_info.dart new file mode 100644 index 0000000..714305c --- /dev/null +++ b/lib/widgets/purchase_info.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; + +class PurchaseInfo extends StatelessWidget { + final String productCondition; + final String productName; + final String productStorage; + final String productColor; + final double price; + + const PurchaseInfo({ + super.key, + required this.productCondition, + required this.productName, + required this.productStorage, + required this.productColor, + required this.price, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 180, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + buildInfoRow("상품 상태", productCondition), + buildInfoRow("기종", productName), + buildInfoRow("저장공간", productStorage), + buildInfoRow("색상", productColor), + ], + ), + ); + } + + Row buildInfoRow(String label, String value) { + const labelTextStyle = TextStyle( + fontFamily: "Pretendard", + fontSize: 20, + fontWeight: FontWeight.bold, + ); + + const valueTextStyle = TextStyle( + fontFamily: "Pretendard", + fontSize: 20, + ); + + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(label, style: labelTextStyle), + Text(value, style: valueTextStyle), + ], + ); + } +} From 5ba565bd04ca3f173cedb3a6a0c718ff7302be18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Mon, 12 Aug 2024 17:36:57 +0900 Subject: [PATCH 27/54] =?UTF-8?q?SAPHY-137=20Feat=20:=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EC=88=98=EC=A0=95,=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 2 +- lib/screens/mypage/edit_profile.dart | 231 ++++++++++++++++++ lib/screens/mypage/mypage.dart | 19 +- lib/screens/mypage/setting.dart | 89 ++++++- .../mypage/setting_page/login_info.dart | 175 +++++++++++++ lib/widgets/setting_menu.dart | 49 ++++ 6 files changed, 558 insertions(+), 7 deletions(-) create mode 100644 lib/screens/mypage/edit_profile.dart create mode 100644 lib/screens/mypage/setting_page/login_info.dart create mode 100644 lib/widgets/setting_menu.dart diff --git a/lib/main.dart b/lib/main.dart index 7c30916..830c932 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -21,7 +21,7 @@ void main() async { KakaoSdk.init( nativeAppKey: kakaoNativeAppKey, ); - runApp(const MyApp()); + runApp(const ScreenController()); } class MyApp extends StatelessWidget { diff --git a/lib/screens/mypage/edit_profile.dart b/lib/screens/mypage/edit_profile.dart new file mode 100644 index 0000000..6b85698 --- /dev/null +++ b/lib/screens/mypage/edit_profile.dart @@ -0,0 +1,231 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; + +class EditProfile extends StatefulWidget { + const EditProfile({super.key}); + + @override + State createState() => _EditProfileState(); +} + +class _EditProfileState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text( + "프로필 수정", + style: TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + fontSize: 20, + fontFamily: "Pretendard", + ), + ), + backgroundColor: Colors.white, + centerTitle: true, + ), + body: Padding( + padding: EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const SizedBox( + width: double.infinity, + child: CircleAvatar( + radius: 50, + ), + ), + const SizedBox( + height: 20, + ), + const Text( + "프로필 수정", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox( + height: 10, + ), + const Text( + "프로필 이름", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "홍길동", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.normal, + ), + ), + Divider( + color: Colors.grey, + thickness: 0.5, + ), + ], + ), + ), + const SizedBox( + width: 15, + ), + Container( + padding: const EdgeInsets.only( + left: 10, + right: 10, + top: 5, + bottom: 5, + ), + decoration: const BoxDecoration( + border: Border.fromBorderSide(BorderSide( + color: Colors.blue, + width: 2, + )), + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + child: const Text( + "수정", + style: TextStyle( + color: Colors.black, + fontSize: 15, + ), + ), + ) + ], + ), + const SizedBox( + height: 15, + ), + const Text( + "이름", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "홍길동", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.normal, + ), + ), + Divider( + color: Colors.grey, + thickness: 0.5, + ), + ], + ), + ), + const SizedBox( + width: 15, + ), + Container( + padding: const EdgeInsets.only( + left: 10, + right: 10, + top: 5, + bottom: 5, + ), + decoration: const BoxDecoration( + border: Border.fromBorderSide(BorderSide( + color: Colors.blue, + width: 2, + )), + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + child: const Text( + "수정", + style: TextStyle( + color: Colors.black, + fontSize: 15, + ), + ), + ) + ], + ), + const SizedBox( + height: 15, + ), + const Text( + "내 소개", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "모두들 반가워요~", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.normal, + ), + ), + Divider( + color: Colors.grey, + thickness: 0.5, + ), + ], + ), + ), + const SizedBox( + width: 15, + ), + Container( + padding: const EdgeInsets.only( + left: 10, + right: 10, + top: 5, + bottom: 5, + ), + decoration: const BoxDecoration( + border: Border.fromBorderSide(BorderSide( + color: Colors.blue, + width: 2, + )), + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + child: const Text( + "수정", + style: TextStyle( + color: Colors.black, + fontSize: 15, + ), + ), + ) + ], + ) + ], + ), + ), + ); + } +} diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index b83a3eb..7cfca54 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -1,10 +1,11 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; -import 'package:saphy/widgets/app_bar.dart'; +import 'package:saphy/screens/mypage/edit_profile.dart'; +import 'package:saphy/screens/mypage/setting.dart'; class MyPage extends StatefulWidget { - const MyPage({Key? key}) : super(key: key); + const MyPage({super.key}); @override _MyPageState createState() => _MyPageState(); @@ -32,7 +33,11 @@ class _MyPageState extends State { icon: const Icon(Icons.settings), onPressed: () { // 설정 페이지 이동 - + Navigator.of(context).push( + CupertinoPageRoute( + builder: (context) => const SettingPage() + ) + ); }, ), ), @@ -97,7 +102,11 @@ class _MyPageState extends State { const SizedBox(height: 15), InkWell( onTap: (){ - + Navigator.of(context).push( + CupertinoPageRoute( + builder: (context) => const EditProfile() + ) + ); }, child: Container( padding: const EdgeInsets.only(top: 3, bottom: 3), @@ -109,7 +118,7 @@ class _MyPageState extends State { color: Colors.black38, ), ), - child: const Text("개인정보 수정", style: TextStyle( + child: const Text("프로필 수정", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.w500, diff --git a/lib/screens/mypage/setting.dart b/lib/screens/mypage/setting.dart index 65350b6..1517378 100644 --- a/lib/screens/mypage/setting.dart +++ b/lib/screens/mypage/setting.dart @@ -1,4 +1,7 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:saphy/screens/mypage/setting_page/login_info.dart'; +import '../../widgets/setting_menu.dart'; class SettingPage extends StatefulWidget { const SettingPage({super.key}); @@ -10,6 +13,90 @@ class SettingPage extends StatefulWidget { class _SettingPageState extends State { @override Widget build(BuildContext context) { - return const Placeholder(); + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text("설정", style: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20,fontFamily: "Pretendard")), + backgroundColor: Colors.white, + centerTitle: true, + ), + body: SingleChildScrollView( + physics: BouncingScrollPhysics(), + padding: EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "일반", + style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), + ), + SizedBox( + height: 10, + ), + SettingMenu( + title: "로그인 정보", + icon: Icons.info_outline, + onTap: (){ + Navigator.of(context).push( + CupertinoPageRoute( + builder: (context) => const LoginInfo() + ) + ); + }, + ), + SettingMenu( + title: "주소록", + icon: Icons.list_alt, + onTap: null, + ), + SettingMenu( + title: "결제 정보", + icon: Icons.credit_card, + onTap: null, + ), + SettingMenu( + title: "판매 정산 계좌", + icon: Icons.monetization_on_outlined, + onTap: null, + ), + SettingMenu( + title: "현금영수증 정보", + icon: Icons.receipt_long, + onTap: null, + ), + SettingMenu( + title: "알림", + icon: Icons.notifications_none, + onTap: null, + ), + SizedBox( + height: 20, + ), + Text( + "정보", + style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), + ), + SizedBox( + height: 10, + ), + SettingMenu( + title: "이용약관", + icon: Icons.list_alt_sharp, + onTap: null, + ), + SettingMenu( + title: "개인정보처리방침", + icon: Icons.security, + onTap: null, + ), + SettingMenu( + title: "오픈소스 라이선스", + icon: Icons.code_rounded, + onTap: null, + ), + ], + ), + ), + ); } } diff --git a/lib/screens/mypage/setting_page/login_info.dart b/lib/screens/mypage/setting_page/login_info.dart new file mode 100644 index 0000000..78051ac --- /dev/null +++ b/lib/screens/mypage/setting_page/login_info.dart @@ -0,0 +1,175 @@ +import 'package:flutter/material.dart'; + +class LoginInfo extends StatefulWidget { + const LoginInfo({super.key}); + + @override + State createState() => _LoginInfoState(); +} + +class _LoginInfoState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: Colors.white, + title: const Text( + "로그인 정보", + style: TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + fontSize: 20, + fontFamily: "Pretendard", + ), + ), + centerTitle: true, + ), + body: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const Text( + "나의 계정 정보", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox( + height: 10, + ), + const Text( + "내 이메일", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "카카오 또는 구글의 이메일", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.normal, + ), + ), + Divider( + color: Colors.grey, + thickness: 0.5, + ), + ], + ), + ), + const SizedBox( + width: 15, + ), + Container( + padding: const EdgeInsets.only( + left: 10, + right: 10, + top: 5, + bottom: 5, + ), + decoration: const BoxDecoration( + border: Border.fromBorderSide(BorderSide( + color: Colors.yellow, + width: 2, + )), + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + child: const Text( + "Kakao", + style: TextStyle( + color: Colors.black, + fontSize: 15, + ), + ), + ) + ], + ), + const SizedBox( + height: 10, + ), + const Text( + "휴대폰 번호", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "카카오 또는 구글의 이메일", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.normal, + ), + ), + Divider( + color: Colors.grey, + thickness: 0.5, + ), + ], + ), + ), + const SizedBox( + width: 15, + ), + Container( + padding: const EdgeInsets.only( + left: 10, + right: 10, + top: 5, + bottom: 5, + ), + decoration: const BoxDecoration( + border: Border.fromBorderSide(BorderSide( + color: Colors.black, + width: 2, + )), + borderRadius: BorderRadius.all(Radius.circular(10)), + ), + child: const Text( + "변경", + style: TextStyle( + color: Colors.black, + fontSize: 15, + ), + ), + ) + ], + ), + const SizedBox( + height: 10, + ), + TextButton( + style: TextButton.styleFrom( + foregroundColor: Colors.red, + padding: const EdgeInsets.all(0), + ), + onPressed: (){ + + }, + child: const Text("회원탈퇴", style: TextStyle(color: Colors.red, fontSize: 15)), + ) + ], + ), + ), + ); + } +} diff --git a/lib/widgets/setting_menu.dart b/lib/widgets/setting_menu.dart new file mode 100644 index 0000000..e441c97 --- /dev/null +++ b/lib/widgets/setting_menu.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; + +class SettingMenu extends StatefulWidget { + const SettingMenu({super.key,required this.title,required this.icon,this.onTap}); + + final String title; + final IconData icon; + final Function? onTap; + + @override + State createState() => _SettingMenuState(); +} + +class _SettingMenuState extends State { + @override + Widget build(BuildContext context) { + return InkWell( + onTap: () { + widget.onTap!(); + }, + overlayColor: WidgetStateProperty.all(Colors.transparent), + child: Container( + padding: const EdgeInsets.only(bottom: 12,top: 12), + decoration: const BoxDecoration( + border: Border( + bottom: BorderSide( + color: Colors.grey, + width: 0.5, + ), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + widget.title, + style: const TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + fontWeight: FontWeight.w500, + ), + ), + Icon(widget.icon,size: 25,), + ], + ), + ), + ); + } +} \ No newline at end of file From abe538197ae93fd176e26d6194ab2ff85f2c0054 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Tue, 13 Aug 2024 08:06:16 +0900 Subject: [PATCH 28/54] SAPHY-86 Feat:Create Term, Selling Process, Photo Screen(without guideline) --- assets/images/Shuhua.webp | Bin 0 -> 109258 bytes assets/images/camera.png | Bin 0 -> 28426 bytes assets/images/products.jpg | Bin 0 -> 32128 bytes assets/images/test.gif | Bin 0 -> 67219 bytes lib/main.dart | 6 +- lib/screens/selling/flaw_screen.dart | 17 ++ lib/screens/selling/photo_screen.dart | 204 ++++++++++++++++++ lib/screens/selling/process_screen.dart | 163 ++++++++++++++ .../selling/splash_selling_screen.dart | 61 ++++++ lib/screens/selling/term_screen.dart | 141 ++++++++++++ lib/screens/welcome/otp_screen.dart | 4 +- lib/screens/welcome/signup_screen.dart | 7 +- lib/utils/text.dart | 13 ++ lib/widgets/normal_button.dart | 14 +- pubspec.lock | 8 + pubspec.yaml | 1 + 16 files changed, 629 insertions(+), 10 deletions(-) create mode 100644 assets/images/Shuhua.webp create mode 100644 assets/images/camera.png create mode 100644 assets/images/products.jpg create mode 100644 assets/images/test.gif create mode 100644 lib/screens/selling/flaw_screen.dart create mode 100644 lib/screens/selling/photo_screen.dart create mode 100644 lib/screens/selling/process_screen.dart create mode 100644 lib/screens/selling/splash_selling_screen.dart create mode 100644 lib/screens/selling/term_screen.dart create mode 100644 lib/utils/text.dart diff --git a/assets/images/Shuhua.webp b/assets/images/Shuhua.webp new file mode 100644 index 0000000000000000000000000000000000000000..d1acb0b49629b84e3ad0ecc25158bcc638344a37 GIT binary patch literal 109258 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%0Alj=_an4mZEWD|f3^&1WsyotWL}^}`dA62hi>>N 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 literal 0 HcmV?d00001 diff --git a/assets/images/camera.png b/assets/images/camera.png new file mode 100644 index 0000000000000000000000000000000000000000..8daeae8e27a92f624983a22edd5cb15e6a980a3b GIT binary patch literal 28426 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 literal 0 HcmV?d00001 diff --git a/assets/images/products.jpg b/assets/images/products.jpg new file mode 100644 index 0000000000000000000000000000000000000000..419b2d5779053cb887e300346e043ab3d10b7b3b GIT binary patch literal 32128 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 const WelcomeScreen(), SignupScreen.id: (context) => const SignupScreen( @@ -51,6 +52,7 @@ class MyApp extends StatelessWidget { phoneNumber: '', onVerificationSuccess: () {}, ), + SplashSellingScreen.id: (context) => const SplashSellingScreen(), }, ); } diff --git a/lib/screens/selling/flaw_screen.dart b/lib/screens/selling/flaw_screen.dart new file mode 100644 index 0000000..cbf46ac --- /dev/null +++ b/lib/screens/selling/flaw_screen.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; + +class FlawScreen extends StatefulWidget { + const FlawScreen({super.key}); + + @override + State createState() => _FlawScreenState(); +} + +class _FlawScreenState extends State { + @override + Widget build(BuildContext context) { + return const Scaffold( + body: Center(child: Text('Flaw Screen')), + ); + } +} diff --git a/lib/screens/selling/photo_screen.dart b/lib/screens/selling/photo_screen.dart new file mode 100644 index 0000000..62f67a0 --- /dev/null +++ b/lib/screens/selling/photo_screen.dart @@ -0,0 +1,204 @@ +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:saphy/screens/selling/flaw_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class PhotoScreen extends StatefulWidget { + const PhotoScreen({super.key}); + + @override + State createState() => _PhotoScreenState(); +} + +class _PhotoScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: SingleChildScrollView( + child: Column( + children: [ + const SizedBox( + height: 50.0, + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Padding( + padding: EdgeInsets.symmetric(vertical: 20.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + width: 40.0, + ), + Text( + '사진 촬영하기', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ), + Image.asset('assets/images/camera.png'), + const Padding( + padding: + EdgeInsets.symmetric(vertical: 20.0, horizontal: 40.0), + child: Text( + '제품의 모든 각도를 잘 보여줄 수 있도록 명확하고 밝은 곳에서 사진을 촬영하세요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + const SizedBox( + height: 40.0, + ), + Column( + children: [ + const Text( + '제품 전체 사진', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + PhotoPlaceholder( + image: Image.asset('assets/images/Shuhua.webp'), + ), + PhotoPlaceholder( + image: Image.asset('assets/images/Shuhua.webp'), + ), + PhotoPlaceholder( + image: Image.asset('assets/images/Shuhua.webp'), + ), + PhotoPlaceholder( + image: Image.asset('assets/images/Shuhua.webp'), + ), + const PhotoPlaceholder( + image: null, + ), + ], + ), + ), + const SizedBox( + height: 20.0, + ), + const Text( + '자세한 손상 사진', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + PhotoPlaceholder( + image: Image.asset('assets/images/Shuhua.webp'), + ), + const PhotoPlaceholder( + image: null, + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 80.0, vertical: 10.0), + child: NormalButton( + title: '더 추가하기', + bgColor: gray800, + txtColor: white, + onTap: () {}, + flag: true, + ), + ), + ], + ), + const SizedBox( + height: 70.0, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '다음으로', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const FlawScreen(), + )); + }, + flag: true, + ), + ), + const SizedBox( + height: 50.0, + ), + ], + ), + ), + ); + } +} + +class PhotoPlaceholder extends StatelessWidget { + const PhotoPlaceholder({ + super.key, + required this.image, + }); + + final Image? image; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 10.0), + child: Container( + width: 160.0, + height: 160.0, + decoration: BoxDecoration( + color: gray300, + borderRadius: BorderRadius.circular(10.0), + ), + child: image != null + ? ClipRRect( + borderRadius: BorderRadius.circular(10.0), + child: Image( + image: image!.image, + fit: BoxFit.cover, + width: 160.0, + height: 160.0, + ), + ) + : const Center( + child: FaIcon( + FontAwesomeIcons.plus, + color: white, + size: 30.0, + ), + ), + ), + ); + } +} diff --git a/lib/screens/selling/process_screen.dart b/lib/screens/selling/process_screen.dart new file mode 100644 index 0000000..e41c0a9 --- /dev/null +++ b/lib/screens/selling/process_screen.dart @@ -0,0 +1,163 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:saphy/screens/selling/photo_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class ProcessScreen extends StatefulWidget { + const ProcessScreen({super.key}); + + @override + State createState() => _ProcessScreenState(); +} + +class _ProcessScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + const Expanded( + flex: 2, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + width: 40.0, + ), + Text( + '판매절차를\n알려드릴게요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ), + const Expanded( + flex: 3, + child: Column( + children: [ + Process( + number: '1', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + Process( + number: '2', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + Process( + number: '3', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + Process( + number: '4', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '확인했어요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const PhotoScreen(), + )); + }, + flag: true, + ), + ), + const SizedBox( + height: 50.0, + ) + ], + ), + ); + } +} + +class Process extends StatelessWidget { + const Process({ + super.key, + required this.number, + required this.content, + }); + + final String number; + final String content; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0, vertical: 5.0), + child: Container( + decoration: BoxDecoration( + color: gray300, + borderRadius: BorderRadius.circular(10.0), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const SizedBox( + width: 10.0, + ), + Prefix( + number: number, + ), + const SizedBox( + width: 20.0, + ), + Text( + content, + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ); + } +} + +class Prefix extends StatelessWidget { + const Prefix({ + super.key, + required this.number, + }); + + final String number; + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(15.0), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: black, + width: 3.0, + )), + child: Text( + number, + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w500, + ), + ), + ); + } +} diff --git a/lib/screens/selling/splash_selling_screen.dart b/lib/screens/selling/splash_selling_screen.dart new file mode 100644 index 0000000..b7fb675 --- /dev/null +++ b/lib/screens/selling/splash_selling_screen.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/screens/selling/term_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class SplashSellingScreen extends StatefulWidget { + static String id = 'splash_selling_screen'; + const SplashSellingScreen({super.key}); + + @override + State createState() => _SplashSellingScreenState(); +} + +class _SplashSellingScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + Expanded( + flex: 3, + child: Image.asset( + fit: BoxFit.cover, + 'assets/images/products.jpg', + ), + ), + const Expanded( + flex: 2, + child: Center( + child: Text( + '편하고 안전하게. \n원하는 가격으로.', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '판매 시작하기', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const TermScreen(), + )); + }, + flag: true, + ), + ), + const SizedBox( + height: 50.0, + ) + ], + )); + } +} diff --git a/lib/screens/selling/term_screen.dart b/lib/screens/selling/term_screen.dart new file mode 100644 index 0000000..1dabc2d --- /dev/null +++ b/lib/screens/selling/term_screen.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/screens/selling/process_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class TermScreen extends StatefulWidget { + const TermScreen({super.key}); + + @override + State createState() => _TermScreenState(); +} + +class _TermScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + const Expanded( + flex: 2, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + width: 40.0, + ), + Text( + '이용약관에\n동의해주세요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ], + ), + ), + const Expanded( + flex: 3, + child: Column( + children: [ + Term( + content: '사용자는 판매하려는 제품에 대한 정확하고 정직한 정보를 제공해야 합니다.', + initial: false, + ), + Term( + content: '사진에 타인의 얼굴이나 개인정보가 포함되지 않도록 주의해야 합니다.', + initial: false, + ), + Term( + content: '금지된 품목을 사진에 포함하거나 게시하는 것은 엄격히 금지됩니다.', + initial: false, + ), + Term( + content: + '사진은 선명하고 제품의 상태를 명확히 보여줄 수 있어야 합니다. 흐리거나 제품의 상태를 왜곡하는 사진은 삭제될 수 있습니다.', + initial: false, + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '확인했어요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const ProcessScreen(), + )); + }, + flag: true, + ), + ), + const SizedBox( + height: 50.0, + ) + ], + ), + ); + } +} + +class Term extends StatefulWidget { + const Term({ + super.key, + required this.content, + required this.initial, + }); + + final String content; + final bool initial; + + @override + State createState() => _TermState(); +} + +class _TermState extends State { + late bool approve; + + @override + void initState() { + super.initState(); + approve = widget.initial; + } + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(top: 10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + SizedBox( + width: MediaQuery.of(context).size.width / 2, + child: Text( + widget.content, + maxLines: 3, + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + fontWeight: FontWeight.w500, + color: black, + ), + ), + ), + Checkbox( + value: approve, + onChanged: (value) { + setState(() { + approve = value!; + }); + }, + ), + ], + ), + ); + } +} diff --git a/lib/screens/welcome/otp_screen.dart b/lib/screens/welcome/otp_screen.dart index 03e3cbd..d66dc12 100644 --- a/lib/screens/welcome/otp_screen.dart +++ b/lib/screens/welcome/otp_screen.dart @@ -44,6 +44,7 @@ class _OtpScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( + resizeToAvoidBottomInset: false, body: Form( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20.0), @@ -108,7 +109,8 @@ class _OtpScreenState extends State { ), NormalButton( title: "인증하기", - color: mainPrimary, + bgColor: mainPrimary, + txtColor: black, flag: true, onTap: () async { logger.i(smsCode); diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index a23320e..de3af43 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -67,6 +67,7 @@ class _SignupScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( + resizeToAvoidBottomInset: false, body: Center( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 40.0), @@ -124,7 +125,8 @@ class _SignupScreenState extends State { padding: const EdgeInsets.symmetric(horizontal: 100.0), child: NormalButton( title: "인증번호 전송", - color: phoneAuth ? gray300 : mainPrimary, + bgColor: phoneAuth ? gray300 : mainPrimary, + txtColor: black, flag: !phoneAuth, onTap: () async { String phoneNumber = _phoneController.text.trim(); @@ -169,7 +171,8 @@ class _SignupScreenState extends State { ), NormalButton( title: '사피 시작하기', - color: phoneAuth ? mainPrimary : gray400, + bgColor: phoneAuth ? mainPrimary : gray400, + txtColor: black, flag: phoneAuth, onTap: () async { logger.i( diff --git a/lib/utils/text.dart b/lib/utils/text.dart new file mode 100644 index 0000000..7d1b311 --- /dev/null +++ b/lib/utils/text.dart @@ -0,0 +1,13 @@ +import 'package:flutter/material.dart'; + +Map weightList = { + 'Thin': FontWeight.w100, + 'ExtraLight': FontWeight.w200, + 'Light': FontWeight.w300, + 'Normal': FontWeight.w400, + 'Medium': FontWeight.w500, + 'SemiBold': FontWeight.w600, + 'Bold': FontWeight.w700, + 'ExtraBold': FontWeight.w800, + 'Black': FontWeight.w900, +}; diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index 30aff63..3a41125 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -5,13 +5,15 @@ class NormalButton extends StatelessWidget { const NormalButton({ super.key, required this.title, - required this.color, + required this.bgColor, + required this.txtColor, required this.onTap, required this.flag, }); final String title; - final Color color; + final Color bgColor; + final Color txtColor; final bool flag; final Function() onTap; @@ -30,15 +32,17 @@ class NormalButton extends StatelessWidget { ), surfaceTintColor: Colors.transparent, overlayColor: Colors.transparent, - backgroundColor: color, + backgroundColor: bgColor, ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( title, - style: const TextStyle( - fontFamily: 'Pretendard-Medium', fontSize: 15.0, color: black), + style: TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 15.0, + color: txtColor), ), ], ), diff --git a/pubspec.lock b/pubspec.lock index 00662be..d24cf8b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -352,6 +352,14 @@ packages: description: flutter source: sdk version: "0.0.0" + font_awesome_flutter: + dependency: "direct main" + description: + name: font_awesome_flutter + sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f" + url: "https://pub.dev" + source: hosted + version: "10.7.0" glob: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 39e55ae..5a6e323 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -48,6 +48,7 @@ dependencies: pretty_dio_logger: ^1.4.0 firebase_core: ^2.24.2 firebase_auth: ^4.16.0 + font_awesome_flutter: ^10.7.0 dev_dependencies: flutter_test: From 523a1c1f460331c7447690fbadd756461eb41678 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Wed, 14 Aug 2024 17:39:49 +0900 Subject: [PATCH 29/54] SAPHY-132 Feat : splash screen --- .../res/drawable-hdpi/android12splash.png | Bin 0 -> 3799 bytes .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 3799 bytes .../res/drawable-mdpi/android12splash.png | Bin 0 -> 2368 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 2368 bytes .../drawable-night-hdpi/android12splash.png | Bin 0 -> 3799 bytes .../drawable-night-mdpi/android12splash.png | Bin 0 -> 2368 bytes .../drawable-night-v21/launch_background.xml | 6 + .../drawable-night-xhdpi/android12splash.png | Bin 0 -> 5300 bytes .../drawable-night-xxhdpi/android12splash.png | Bin 0 -> 8548 bytes .../android12splash.png | Bin 0 -> 11327 bytes .../res/drawable-night/launch_background.xml | 6 + .../src/main/res/drawable-v21/background.png | Bin 0 -> 69 bytes .../res/drawable-v21/launch_background.xml | 15 +- .../res/drawable-xhdpi/android12splash.png | Bin 0 -> 5300 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 5300 bytes .../res/drawable-xxhdpi/android12splash.png | Bin 0 -> 8548 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 8548 bytes .../res/drawable-xxxhdpi/android12splash.png | Bin 0 -> 11327 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 11327 bytes .../app/src/main/res/drawable/background.png | Bin 0 -> 69 bytes .../main/res/drawable/launch_background.xml | 15 +- .../src/main/res/values-night-v31/styles.xml | 21 +++ .../app/src/main/res/values-night/styles.xml | 4 + .../app/src/main/res/values-v31/styles.xml | 21 +++ android/app/src/main/res/values/styles.xml | 4 + assets/images/splash/spash.png | Bin 3024 -> 16561 bytes flutter_native_splash.yaml | 149 ++++++++++++++++++ .../LaunchBackground.imageset/Contents.json | 21 +++ .../LaunchBackground.imageset/background.png | Bin 0 -> 69 bytes .../LaunchImage.imageset/Contents.json | 10 +- .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 2368 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 5300 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 8548 bytes ios/Runner/Base.lproj/LaunchScreen.storyboard | 17 +- ios/Runner/Info.plist | 110 ++++++------- web/index.html | 92 ++++++++++- web/splash/img/dark-1x.png | Bin 0 -> 2368 bytes web/splash/img/dark-2x.png | Bin 0 -> 5300 bytes web/splash/img/dark-3x.png | Bin 0 -> 8548 bytes web/splash/img/dark-4x.png | Bin 0 -> 11327 bytes web/splash/img/light-1x.png | Bin 0 -> 2368 bytes web/splash/img/light-2x.png | Bin 0 -> 5300 bytes web/splash/img/light-3x.png | Bin 0 -> 8548 bytes web/splash/img/light-4x.png | Bin 0 -> 11327 bytes 44 files changed, 402 insertions(+), 89 deletions(-) create mode 100644 android/app/src/main/res/drawable-hdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-night-hdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-night-mdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-night-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-night-xhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-night-xxhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-night/launch_background.xml create mode 100644 android/app/src/main/res/drawable-v21/background.png create mode 100644 android/app/src/main/res/drawable-xhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/android12splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable/background.png create mode 100644 android/app/src/main/res/values-night-v31/styles.xml create mode 100644 android/app/src/main/res/values-v31/styles.xml create mode 100644 flutter_native_splash.yaml create mode 100644 ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png create mode 100644 web/splash/img/dark-1x.png create mode 100644 web/splash/img/dark-2x.png create mode 100644 web/splash/img/dark-3x.png create mode 100644 web/splash/img/dark-4x.png create mode 100644 web/splash/img/light-1x.png create mode 100644 web/splash/img/light-2x.png create mode 100644 web/splash/img/light-3x.png create mode 100644 web/splash/img/light-4x.png diff --git a/android/app/src/main/res/drawable-hdpi/android12splash.png b/android/app/src/main/res/drawable-hdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..78c378aece2e7d54ef633494f9150771dd366a37 GIT binary patch literal 3799 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 OFB$2X>teNCBmWPQwQjxu literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..78c378aece2e7d54ef633494f9150771dd366a37 GIT binary patch literal 3799 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 OFB$2X>teNCBmWPQwQjxu literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/android12splash.png b/android/app/src/main/res/drawable-mdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4a8d0358cc5260809bb668d171b5376e8dea68 GIT binary patch literal 2368 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 OFB$2X>teNCBmWPQwQjxu literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/android/app/src/main/res/drawable-night-mdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4a8d0358cc5260809bb668d171b5376e8dea68 GIT binary patch literal 2368 zcmd6p`9Bj30LJB9WNsF-IZBBkBgbrrVJb(?%8 zl7r(YAI8+!KH|ty{+^wKgLtQu3soUFHC|y&^n-7r_Dy0%cWL+hHknOjbMFZ}kSO#^8L;LTeZ@EY6VmsoN*WkU|I??@O`EOx%&w$ujW1}}jhFdmWno0n z<7PTW7)XYi@c)lg!HgE=r{!(?C3dFPl6W5`o+rNs`sP0K#5&bh5ZQr-MwnIn?Rs<<&l zc)Na(=;qIGH~3O$5Z0SH3#z!WzOlD}zuJeimZ|V0?z{~&W40_sX=F-}>*=Ccu$OVh zhnA4k;OceqjbW$!{evw_AenN>RHzIewWJ*b@BMjY-aLE_UTNS86pGza0`6=oot+P4 zB#Z~FBQ#~^Dx3JNy;4}s9VHAQhThWERM_|r^Nsi3l-%uNdbGc_eFVtsX+!_5r{S-} z0RXqMkn}?qr}=<_jfh2;5#V(#{S6=`Js#gOw*u#h1>~GM#{1!dqHI2{HZ-&y2AVM* z$YDYI#Dk3a&5Q(zs|JC=Z|ahHc#lU};N~-Ph6!U%(h>Ht&o86cpQyXxm<`CeOP+;l zs%EX7;+I{!4CifLQu@2N4L4U6JMda%2$Br@-vTl`d>@Z(5KURxC@_Xj7 z;l5nw^7g%Kg2?W2Q~~2%kOj2xu!NyEJOp3F()VPObQVF0&0h!^5m7y|g#eJiXhNZY zz(=@T`UIr0sPeI=$Rm?t_CdQ#>jHcKZh8Wao+w^?Oi_9a&8Mf|eVdBs;!Mto8&r4F z?LQCFf8L)96#-|f*Z8$Z3z+01^wM_`oM+TSpaH!u%3(J%(T?J)c|=l*?eR~5ut+-G z6z6Wfq2E6OR#h8-W{3SZ*1M|YnMcQq6n!>;*|x|HjZ~D$n!J$8z21!L>UCxN{tY~m z=x+#X-A4~Xgx!hYF-+k!7LlZojz^)E8(=}#GFY3;U6gC5yBA-DDt>wUh-PQb@|?a8 z&B9c_1W2|Yx0#84OiGr}kCGEv(|}G>CtL_sb{Y=VUh!>-DDa69GcQ(PI6v}R+qN;1 zW8q==*6z=u(~rJ1KhwSEs_RhZ!3<scuoBIdSWwyzAD}KtbzCQ5eU71L~yj&|Z;{oYl@GQjEd56c_ zb#C_ao1<94bMAwWleoYgFImh9AZpzcj>hHSqP{aQCompEB+<94sU`+G=R;^Bj!w&; zf6hHQKscXa{{GW5NBJG0Qf6g8oT?}NLbJ6K$1&wN2q@Wa)0Uro-hC|V@f0Jamgqps zXOSerzM65J$lj`Q7yrj9T=afO7k4?`5n#A^$~TW7x2ma1kygHkBO{tno#>@Z>~T0<=O0e{K|66tVW=hx=-BvsS_pe2KRzXe@fk&Ew%@k|2~hE> z=v3;U(-Ma7WXf~75Q)H78kIOzAl9L^#KN>`q3BHvC-3Wr{#sb5{BN1-HO>TjCYspo zs2zE=LTnbMZqCAr3(Ib|pQds)DAGO-qJ+m$N*INq!Q;As@@?kJEoE z`1aR=DO{V)(9VAd97bhwQ}TO%kd*Q3?1$Vq&>7sMRub@-T2xTB1e;Xa2Lsi+)wiT1 z$4F^QdXZL=@-(P!zOCJIGtH$&G8$Qj@Tq8`hgiYU;JFZJt>M1qm-@(%Cl3LvxxmTN zLr5@IC$XbGpxo+Ute1yWyY1oGonEj?Kk4dgENodFNi+0mYuRsjF)lxTwwyMt?zp1K zOMhe&z_qlU&t + + + + + diff --git a/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ed86125d8ec5a014765d5c492173e91ff4fb5d GIT binary patch literal 5300 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 OGd8f$uhxC|;{O0L;sVnE literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd68bb98b36b836a269c1525a23d2cf431c033d GIT binary patch literal 8548 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f78a183a091647561fb33274fabc31466d69fd83 GIT binary patch literal 11327 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-night/launch_background.xml b/android/app/src/main/res/drawable-night/launch_background.xml new file mode 100644 index 0000000..f88598c --- /dev/null +++ b/android/app/src/main/res/drawable-night/launch_background.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8878f182de44d6ba8ed25e710a73fe173fdab8d9 GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*|tGdI7tXJAQYio0fc R+7Bqs;OXk;vd$@?2>`jU4~GB% literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml index f74085f..3cc4948 100644 --- a/android/app/src/main/res/drawable-v21/launch_background.xml +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/android12splash.png b/android/app/src/main/res/drawable-xhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ed86125d8ec5a014765d5c492173e91ff4fb5d GIT binary patch literal 5300 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 OGd8f$uhxC|;{O0L;sVnE literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ed86125d8ec5a014765d5c492173e91ff4fb5d GIT binary patch literal 5300 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 OGd8f$uhxC|;{O0L;sVnE literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd68bb98b36b836a269c1525a23d2cf431c033d GIT binary patch literal 8548 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd68bb98b36b836a269c1525a23d2cf431c033d GIT binary patch literal 8548 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxxhdpi/android12splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f78a183a091647561fb33274fabc31466d69fd83 GIT binary patch literal 11327 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f78a183a091647561fb33274fabc31466d69fd83 GIT binary patch literal 11327 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8878f182de44d6ba8ed25e710a73fe173fdab8d9 GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*|tGdI7tXJAQYio0fc R+7Bqs;OXk;vd$@?2>`jU4~GB% literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..3cc4948 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml new file mode 100644 index 0000000..a271eec --- /dev/null +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..dbc9ea9 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index cb1ef88..0d1fa8f 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges - kakaokompassauth - - kakaolink - - kakaoplus - - + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Saphy + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + saphy + 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 + + LSApplicationQueriesSchemes + + + kakaokompassauth + + kakaolink + + kakaoplus + + UIStatusBarHidden + + diff --git a/web/index.html b/web/index.html index 0786c29..5d8df36 100644 --- a/web/index.html +++ b/web/index.html @@ -1,6 +1,4 @@ - - - + - + saphy @@ -37,9 +35,88 @@ const serviceWorkerVersion = null; - + + + + + + + + + + + + + + + + + - - + + + \ No newline at end of file diff --git a/web/splash/img/dark-1x.png b/web/splash/img/dark-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4a8d0358cc5260809bb668d171b5376e8dea68 GIT binary patch literal 2368 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 OGd8f$uhxC|;{O0L;sVnE literal 0 HcmV?d00001 diff --git a/web/splash/img/dark-3x.png b/web/splash/img/dark-3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd68bb98b36b836a269c1525a23d2cf431c033d GIT binary patch literal 8548 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 literal 0 HcmV?d00001 diff --git a/web/splash/img/dark-4x.png b/web/splash/img/dark-4x.png new file mode 100644 index 0000000000000000000000000000000000000000..f78a183a091647561fb33274fabc31466d69fd83 GIT binary patch literal 11327 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 literal 0 HcmV?d00001 diff --git a/web/splash/img/light-1x.png b/web/splash/img/light-1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4a8d0358cc5260809bb668d171b5376e8dea68 GIT binary patch literal 2368 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 OGd8f$uhxC|;{O0L;sVnE literal 0 HcmV?d00001 diff --git a/web/splash/img/light-3x.png b/web/splash/img/light-3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd68bb98b36b836a269c1525a23d2cf431c033d GIT binary patch literal 8548 zcmeHN_ct4i_txq#tHY@Mb}EXh(V`Kfs??qpyK2QAks6_PTeEMg_Gs0XpoAoZHj1_= zO3aL^5ro8wAi}qwKjVAO`@=owo_o&yJV|#?9Oo`>^=!yuL}8mU z*?#0dov$+hmsc4`mzhtVM$fNa4LsJJfg0H!w|3C5wzh%Vd)YDhfSsi;n)n8`!|kDf zoW1_?#ly9()10R{Zg~b)lyY#C#U*KRT)dCse6IUn@*fEQ|0aR;c5vV>69=MSfwZMjaNZ_qt+D6+Uiw+2-&3aHeor7sKeTo#oVT#gKusn$<-RiS&)vSbQrtC*q zNzBOL<7C`Nd4C2xrVtiax&&o@7!&pT%)uGg$DMYI?8{2y2pEd z2S!;8(t<9u9!b^__y2@-g*At1sqcAIG9L`FdYvf|H~0a{JYJ8|!}u9MTp}P8 zdQu~sfy)diPsGWQ8~fS7n|iRrcfb(HadHR6{M4=+S6>7*?I*l&>r0dS+9rKed925> zZ_Dyr%9g=%r}j~LQw*#vEQrR4M z5YUmxe++gQ7d(l+;}W?~-gYVKq7m{VDV-fS$~~c3ZFim$?98iiyO1ZHEhDAdbGQy8 znS@S3H&(>%^WoD+19&{_xOqY5oL_rUG$gvsqrGN>!WMw>ZY(-WU!Lgt9<9worgtuq ztJHZ|u%0kyl?&wCL>tu;olu{c#6QT=b2*Qnv6}-;{5?mzOeEcSKAf)QJYkBb9)$uwS{ERh?s?v5AGk zPXE!I%)vqf-febbr=Uuv;x;g@AMGk7ePNxmG!1j{V9xRI&qy+Q zCg578ctvd%O3eQy0(>kYxuIM^gD{_BmK^%Ym*H0Fnz@P%IR6D)Zn4*-jW>t z9UYl$43;UTusEDR*W1F`p4Q$0lb*$|Y)W@5p59XByw-L<+@HRgT_7yUdD7SqWe>NJ z+(P<+4gr6l_dLBK`vFx|AAX;~ChDSm_zuX+$4jittbFSOD#sf)%$(m^|4=sFcY3dd z1H3jf#>)x_`6wVF=JN`pql-LI$hr}|^mIHu`)KzYI!LPWWJm0S1rCPs zb&b1#SEs%KHOS|m+ESUwfq3Hh=7YH*UeV_J+b%S+LraU2Vw}HoOSrr7`;s5##l*r!rU3zzK5=fWF^xkir2B(l7})_VfT8Qr54}f&2eQLJZPfKwv^$Y+&9y6axM;N zUdOIWX*jl0^sdP+8QhzSb6DWVqg~Uh-Thiqe%MHt1Rm%MJw<=Pdlvke8^~#C2z2IQ z_H^}Md^_%azcdcEb3~o15Ieku7Ww=SijTQLo{^Br&t$IJ zRIt~#kCj1kk5%6oDv*25TlSTj<|lt>95X4-`nkKDo(P6KtyYVJb)%c@>!!r}F!&IN z?(oU=n1G6pQtFU@)P{RdkV=!eA+!QB*To4GF6_U0iNMGMne0?4rN)_;UPIb8P49^6 zp=9pf`Vu)_a~O49;RFeoP2QKdHZVU@_EE2m8i}xDkiO~OEk0PeCIO^V_T@*YaI6J$ z;<}?q;J(J5w1m_V%2V_Sb2E4%L0RGc4`u)ML@)Wf(7?7ImY5ec$IcEg1W`Otg?%uu z3vx26byf0>9MXHg<1*nweXC_O{;l~?+mWNjgtJWOqf#{A@WAsGJ%u|tO@cHq7MfpD z6FJy)Ex*65h_$VU%=!L;rn}oFe-2O_<$EPva&afZ=Jv`TcL82#__2o6Xjix!+zW4j z3UE$r4PR;=>r;Fk!o@sM=R0;tN0^*HMmP6oCd!R3HQ!%R? z-AifUcjXt;L*zrEV%Cy>K}5SinLL+~2V+scs1pf-_^<7)1Gu*xh2D-O7Kxy>_A4SC zKEpPw89r)7i{(Y%_qMsyoi0_1$1i=}rW8pPWqM4M=u0b%FNWDRT!MH8ydlZMeY9iU zm+7jbHFPP(cKzN^@XHOn+k^l+XgfTf&T?X9 z*9ofBN@?BHSJSCh46`qIz}(P~E{m_!SW)AfX+@g)$SUq!O}Y2wEvQv7v}x-LWP`Q% zWtZ;vtKmCwK_%uCNG&t1mn&3F{3@(1fuS)xe!|_${AcXl?%~j^zo-}&7gULgb!li^ zHo?_r=F5$F!~E^!gwE%%U6-nD@;z?EB}Q{3oqc@=^Re}husB2SsUd*ytduMSG>uR&A5wGSmh1Chz2#N5AEokK7@A){a`F-5*|fNE`5Wg+TFE9`hxN+g{(Z1B1*4bRf7Xju-n^oA2BSzgO_?+H zEBCKcuv_sXCW)ObZP}JkmYS6^Qjl6ZeLgzW4>JkG&b7V9j)aEhQV5M-sV^08VI1^C z80^_cvuNbKuB;&_+27<&_i#}RAi`1fS_NJzN~6hB6c#igTuEX^^(!Oq$$*Jq20XS) z$~!P(xsnv$YbyoZxONu?Av(t9ZSJXOW{?ueu*Jl#EWjqzuCRR>uzH2iA3ERw)Q*3a z6nz!;yXBnSswyftw{lHszvq^i6W%1lVv9elDs|plogEvnGgg5|Ozhfv_~G-_x=V9G zbg(;wdvTBvIieua{5E(Zqfsck$q!|dO4HQoM5#Q*M}ME9KVbO6mGTND<6aNridh0| z(~htj-SdjI@rswHIZU9@E1OdnJ)@E5cXR}{X7r2MyVXtH>Gx4G7X9*&%rI1O;k#yP zXLiAvDn%%^PD*%odn#MtPBu+%$a4z(`Ca6uDdr)B-wW^6A1r`OoldM8(6h|;Q8uk+ zMhK}4MTbm3VZ=1I-p};G%LOy=hWw7R2;DueWl-YWie+aZ8Wc$c#cli~wmExrDa=kTI0HvI$kgllZxyQkQ^y%$@z&7os-`8an*f zYrE;`4nF11$JItF*Ss#*_;IzUtv9k>w~p{#U3)|_(BJ^I$5Gs}Cqi8qrt1vCBEb{qQrAF?v`f{D_#&V9}+;kx!V=vF?nS8 zNn<%;5_)ye;HK;`X>02>Oz0;?uj`2}b$T5EAwN^T);cghw$BYg*yU7_iOK1nl_(-FV#|6Ra%P^g$-I(iPq z2MIuiJ64>_u?|~9-7HDsglWLJ z)b{HcbtCUsg!`li>jU@=@>YF~^wxf|LxwOh&Avk8B!u<^ju;EWV_kqjXXdYn&Xz3A zPju$&&Rt=z*%LoVp2obwS1kcn_=@sI*-t%i z-p3leA3{QY6iW4DW8>|;TX5nZZaAOCf#JZnk zLmbn*d7fvEBPy2X2E*-%K3e0NYQ4moUq2zoPMxpT16U1zh4(w${6rqt&ERE(?>psP z#XR#Nvs+nBm!)S*j7CL)H!)2UP)(>0^f3IBrJxC2a$UD}*{|QO<4pb|(e~2T1dC=# zRg_)alI3j4C#2uw*&3aiBOht#%rb@tDsl2>kN8~IP?DE?=Le56-l83~ecG49fRuWpSR8}dC;^|t`MR>1lI4gjOY5ORf9e|radQOzALRSg{|8z2nQT| z6pjhwsKpdIJIEPxKN{4Z;I5BH_Vh{IBi4=^EXo*;x=b{}=I!-S@{^F+0cRo1^u6U< z7U+xXDu;pAJiEy&6v5toD;+9!A|<3iT?5fpVPU^)fYmj=HTw6UeR1l~c7^Uel_-YA8IAmR}0H)m{guTF!Mqs;r`W{&WbVhN$n=?(M3$G#jY3`qT=)|6jw z@6|--Qr-*&pOLH|)^oUx5Vc!Hto)Z!^+gUYZv<5PjX2BXcq8&JG#s;56SQizf1rtj z;leL3JwiI3oa?>S04oo=RL3Z{^EZY&$gr}q_WNSN`;(u6v2r=#vCqB^p(j+;PNtW9 z(2MNGREVd2tW~mmMZDm3eoV!3O1A=e;eyL1V!X}^kj#FH(>{b~UUy&oR~rb_dIzO^ ze7l_NJ{=%#s%1+@^i%BUNNxQ*MI7u^ctTBogA$UYn)mV7OJOD7GSzFp)%dLeocLSR zmh>3M#egxvd+zN?ow5Vl6{Igbl&HPV7|RZkxP9<}bC%vXL^g!4Tq>thEb{<>bW`wV zJtZAnUI;YnPH=AiH+I8?S#lq(6Ew3ap6;>9#T2TfbuC8w9YO}!Ce+r}r1nbSj`G&i ze_OCY=v)18lh1X?*uBcqjqRQV6vu#r&z4ncnkV2f>tbFO_F_iu?~nB^c%COX7>0`} z>+?<$_wvG_96?h_jnJls)9a!RVtupJOruBz4PE}iE?zGecO$z%cJTgB2;gH7z>(Cm z@>2SR9o>jCaa#4!wZxx{r7xe3u38$IHL!b$8)V1WH~~Oao|ajLTwnFqO&6Rnr`+7v z4zKwu1QlPIuU&(o&vDmFWXZ`Q7UP(tnqgTIu0iU$#4Lu=Z3 zA;-3`-&pCiNQeP3 zd;^~BnBrEmF9wL$_gIwchIUaPYeLe2r+jVcJo=kvrvH+TzzRy zFFEjUYY@F~;BXC18{1j>hBloB5BCwFt=PL?e4(~`OO{_(-?*!458EXM9-^~`oN{4K z5AZnaog3iMzKrIPLAmr=ynLIZrmVf6Gfn#xdEOXlm>G2pblo-RMBUZ*E(2GixL~VV zpRR>{8M@0epI4LIorJHMTb!T-;?LR{QNB4yI_6r3>Pz4NxU1Afjg{zjCM3w5C}bFh z>kls7V*DCzwC3=W`8HOVl=W}(rb^yCOEB}xTnUX{!}KHczCnwOD7HySR5f_)*T3ac z_=iv$0&1})x6LJ&nCS&Pv5p#LlUGM1p>$@t@Fw+BLB0Ks}g_T+Pigh(2?vnpg^c$R2oymOhcip}vH>oF@XF1PA_vRAb;$*hZtGovq!3(^K_ z=H62p-ubLdAIGM`xAw)C5#!L6n*_gei8aWXDs2P$BU;I3l|TRwdJM>U!J%wN@jRa?QqKjD7ijK`fkF_r@B;4O0aW!hg`pfQom{v8t83z zii%!{yHnfop7KVFCW1hcORcvhTBKn=z`a9?!Xj0^{L?~1>{SRb;_S>DYa>Gu>U#nB z+=rCz1Tts})49Wm!xt^b z!*tK%0B-_^D(#SPpE%qvwdKSVjM+|L4F#|StZj`ZHo;iM^npf*yKe&vvF(I_e|}yJ`mIS?Af~7z zyC$LpkX=V>(Xl*!6BJR>@c@tdl3(qoW6YK7#Sp;GOt`T#X0KK3ghsp4I{|4<6KsF^_`6Bb*I~QeB*`s2-+9oPaOuXNc&^t-byH{qMmD3Q zszm91XDAnw`-b^q`U88-lzH z1dtUbIr%ZMySC@-46-GriJfjYl1da!!5@0C;hTUJzrv` zkX88ii>m8CGC>)6UMMovz5MoHZm;qelPS}q<(6tP+4|b^smN*}o|OO}jxDPZF_t=E zOzmGOL%3HCWXy4dTRM`l9H-9F oINZ+um;499|F=mPKH_}z^;6Jm+6TkG-xC~024?pWdTt5-2kIx1uK)l5 literal 0 HcmV?d00001 diff --git a/web/splash/img/light-4x.png b/web/splash/img/light-4x.png new file mode 100644 index 0000000000000000000000000000000000000000..f78a183a091647561fb33274fabc31466d69fd83 GIT binary patch literal 11327 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 literal 0 HcmV?d00001 From f79d8559d42c975fdc7f71c631f4b9a8097f4292 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Thu, 15 Aug 2024 19:19:10 +0900 Subject: [PATCH 30/54] SAPHY-86 Feat:Create Flaw Input Screen, Rule Screen, Ending Screen. --- assets/images/congratulation.png | Bin 0 -> 163621 bytes lib/main.dart | 9 +- lib/{utils => screens}/screen_controller.dart | 2 + lib/screens/selling/end_selling_screen.dart | 73 ++++++++ lib/screens/selling/flaw_screen.dart | 131 ++++++++++++- lib/screens/selling/process_screen.dart | 116 ++++++------ lib/screens/selling/rule_screen.dart | 173 ++++++++++++++++++ .../selling/splash_selling_screen.dart | 1 + lib/screens/selling/term_screen.dart | 107 +++++------ lib/screens/welcome/signup_screen.dart | 2 +- lib/screens/welcome/welcome_screen.dart | 2 +- lib/service/api_service.dart | 4 +- lib/service/auth_service.dart | 16 +- lib/widgets/bottom_nav_bar.dart | 15 +- pubspec.lock | 16 ++ pubspec.yaml | 1 + 16 files changed, 520 insertions(+), 148 deletions(-) create mode 100644 assets/images/congratulation.png rename lib/{utils => screens}/screen_controller.dart (93%) create mode 100644 lib/screens/selling/end_selling_screen.dart create mode 100644 lib/screens/selling/rule_screen.dart diff --git a/assets/images/congratulation.png b/assets/images/congratulation.png new file mode 100644 index 0000000000000000000000000000000000000000..e28eb44c04a44aa296133c37ec75864de1d62888 GIT binary patch literal 163621 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


1Y_1INqak{pjAWSuFZBil~5osrm^CK5;_<$jt& zijsdle=v3`NqXg= z^QyKsdX=yo^{kk0+LqyMoc53V{!VceN~}6A@$=xBBgek>9Lqv)Z7F=kk50IDk??*E z0ORNsAg%HmT{vg&fY%A21DNP;{+kgtuWP>^RZI{e7g4)4H+;(bb3u0Z37LQ5*tELu!E#CPZ z7<(v8kF7=CNK+z&GA$}RsqH-IAViba(Uj|}ag-)>7ZD+spLWFe@m-cwvjcGZiV~=e zR8bxlo7i97kD>VO&P;6a&1Pjrc{9r}-y$*iuUDM*Al$cU$IH}@4`)-dO?H0cc$TgU zh~Cz{!?~a2f{Edg;q({EBz}uSP-?F3x0Ul60d8En;JuQBmCx^@S{86FKArELb1LdA zPYMdl?PmdK!~BSsCC?&KI?l=m{@jm{Mb+O!UNZRq5lb^BVvF9e*S65`8>%F>dyFqHUOR^(m)En9hT)Su|f|uVpneU!DpBcNGgsH{@W;4ST1&{PQs|zB)5b|}eY^L^jhDR3+S|5x%_>iT z009IA#Rp4ShZYDQi(qPszXWX_X0^n7AQYOwp<(~(uF({nTRMn3s<7`SE&E`T)&ZG3 z*LieP4}GcJVs8c=!hkkTa4H#~pm_G1v zn!H>Y{F>mUEA_Ni(Aa&Nm4;;9g&6$z0^LdZe*CNcyCB+H1>RyRgi|{~ zg=!uZLe)nV;*Qwass+e9N4B-G26{m%m-a|bi3&tSb;G`ya(@1q4haXE`eIu%jKaD) zoZ`=~Q5t@z1^t}!?lkkYe47Rj(?4G!-?I|3zGivcoL~|}=xv03H!@-Ioi;UA*uq$n zH$t!-0+624_61s^@gcRu0)gQL ztLdxlO!cy7ZWI4tBT!qvVtN=8M&JYcepyJ%nqH$%a=2wuj;}}OYRfCoBKr%f^mVe} zj+!zCmCswiDJ42Ggb^Qao;qNE^AoGW5sa1Bkz%;Fy^bDkaPeHD2V?UgvS)g=rTQA2rLw#slGhW z3UzKDSBIpiw_?*}IOAEoFQY8IZ^?5sNNS-c_I61Zq%Gz2aEc2PD|=5{I<)<}TNi`& z%r^F>l+M+zmj6NeT9nSq9w+@`t#JKt8N2|kN`d)!S^2)PIs5r1j^%nqhG=a8(~#At z4em}!`Dv&%Q%uh@>2M5mGL&)gZ>;(Q-&@urX`vlyHRhJ4dU|?slV4)C=4w)05ZQ^o z+)yS@7}#BgO1SnM6uOpv>I$__p%A|Q6VU@E(sahl6|XPX$;t6*C!c<+$w`xOXko=Ip%Jn>+EnD+-R3dH+51X)q1#%vTMhvFd!m<*AmGqKYX8Dz3jl zH}qkey7rfypsG8gF_D5Px90^rgC_Mua0E=B7f>xo4|fV2=nC_Bq4Jlf` zp8k-dOd}zNm6c=OOtU!M5hoZKl3wHe!l`Ap$C@L+$2f(USFJEpBg;SX!t2)5m*<@6 ziqtRreNd_-uy;3fGrCADRU9H@-{V~mc>zE#xMRF@1t4^HjLrSBh)rdUWx8R!zcL47 zSUWA$L$;mJLLVGiTiK7Ai$&>fKLkztQN0%yr$)f9bIfMwj&N!HOOrgXNX_G&+1e%DsNQbASnEAXKbNxB~ecNWvL5;N+Nt(Rrg#I%$skW>s0 zY$wH%B*TijvGe)97Kq<}k3yuVq-8`cl)_H^OAJ9D1o~4yAL>~Kc>M{I(OK9DI%xW5 z!tEwv4MvdMH_pF_iDsTz|9uT`kV2ws?w@BYg?V^*oG9AL#K`QTlklS2Mf4ofWTBSoojI}_ zh6RJjSB2yLESgw1g5SA+wv$`s?*taEX+hn^G#rshu#-YJHk{@}XOhiQO{AnyK`qAM z)RzajLF+J$9g?e>UY6-lY3e|I->oagS`=0Uz0Vd_%H(_g^P_NI{f;H?c+j}gYx`SH zog3I*KpF9}S8AMC`AY4PhsQxq+zj;6DBh)#%X2_YhHLs$;WtHQi8-PV&Q5{+7h&Rq z#<@E|j}mFhK4-xZ^)*V}GSj=YlC|>te2x?MOJSOpfk)wx;7qaEg?caJl*H9&nGQYm z(GQNWRt_||R~(C}og)TyY)++r*#JY*f?XMTMnUY)Q9tzV z=VWUCfL{VGekUqQ&_-bT zhfG1Ov5nM$2R~FK5vXu2M5;< z1$mzkg~^`PIoNarNcC>dE#SWD0^B&($JT`Ar{p+Fkb_a@S!b)CwHnAWH$}*nh!;sY zjBW?)J<`5rBjcRc_`&Qb%um2i$bW%23Jbmt`_`qK0b{L^_&Ba_cvVxoWSmCHSc|2T2t~$ z(&UrM6rQ9s|9p=9HW-iT@&f=?0&W0sRtJ;z1Vs4tC*L^WMt+^_fx9zCB2V!;MJo-t z-Fh3p_Y@fzwDxkTd1B0}Zv5$SE%X17dDKpjiL~CT>%Wd>UP*W%q)GI7LLFbYY^O|J zb^_zve1Mgd$UG$+ycrkhDeT-C?nqXa#j=^qm9)+;|6 zf!d$UnWU^4EzYB1?~0(H%X;{B*Mu`jVle4?(uTlO8FG@W5I^s_Rscx}yd?$F!FcRXT1%|5>aP4P zV^_}nKA^@92|dOEx`Q`9ii>rlSNRUj0O)M(U*g^^ znEZ1wPLUo3^pmEOm+0H^;J389pm3_}2ON;-{rl+)SBQ4aRyOD)G(X8T-kIz=8bSRG zNO4~WPKKDlLvC67dsh7e-{bjVtswpt&kG($yup?w@jfDB)oR1~l3ju0r$-*dr?1^` z!f0*EG8TRl*|Sw7Yv2Qj5pCW-_NBmRlzS0pQ%}dXzE*2$^f-SKLQV={ub8hi$+W04 z;3N8h!Dm4401S$q7#1s7Sb&)jd{-ihna5oB$;+~7;w;S(IkfEZ2AH}E2uwf?6132P zy)^~tU}&}~t|Rh&kCbH*j>FN>Q0*b~91AmbZ&XxV+!{rI$|X9pU;zl-WUE;0pUYpiF72nv#=0iYlAZ8bzxVGIpnYRI;dfRzw|diMJc*urt=cHP zTt1%f7zY4Zm_kctxF#`R+p%aiZDTU0X$rjx__ibT|{E8bPL58JF{JphHI3FN|cHT+e* z=CmqA!~w&Dwm$6!qrrUdn+8&)tzKd{deSZFfIjnDtxcgtZw-3~ei3Kq8DD%uqDjX| z)@-~84U_j3AFXYHQs3=d9fkVAmvZK^34hXd*lcbdK^s;+zn*6IX&`MV`)cMGo)AKr zI2Q1*4=pKHJK0}-vx=E)R+KRq#qdJK;xJquhJbw4fCn$CEo})RB$EBld@YuOrsm?A z(7S2j8Mx&YA;-$wgUODBM#9smBdNW&7vX}kMxV9w(A7ek<)bj&qbGpTSt|hd&n>zL zzpCLy3qk8Z>6@vWV5;K%&+mat(FwuNd8?p#G*pQ2pFCBbR|M3{@YUH)ZaEvGe@jLA zHLHYP?Gx`5z1%lx3#L%O7#u`Lamc%G4V0j;Ra}Dvbz%52!4Sq1t&YyzMl%od#c zt*hG6l=CYcQh!(a=FfILTB`GCJt+cPZ6@&4u(iu+4+GtcRIKf?_%lj z=*v2pA>rbcwn`*tleUrA7-18kCe+-s+lugCkvs-rT>ru%A3dSuEN;#_u(b_UFWag6 zQ@{7komNW-iU)-fHp9VOJ8gpuN&;?0RDdm=(@Hekcliwgl&gbxbPdvD?_)#Nwve2~ z=Z2~-JVKwsCo>aZP1!wHWpr|#qS%G?nbZ;~KG2~u&4p~+if_llR^;yBjs=)4*YcQ_ zPx>^`8E}-K0TnBfDSb_Q1^E};cBv<56+gyWL+qc>g=TCzPl?jP@6OH7k-JKT+*}u; zYXgpB`K_uN{nr1E?NV0?l1(l_f-?jQfy+gW@1*$K?Ra03w)~ySihJXnvm#ePA<2YR z75Ts{Z<=_8{rnHpYTXgoih_2)>*Du>=*a85?QbVE<(NXdfr6p^&BtOuxh1NGlAM1M z!j_ogf-zbQzt2ZOk@=|CIT{ulyiUQcL`;LGfymEBQ0N%}1iw2V#q)i-Qm9neD0A#> zAt+03&|_u(7{W$hu%dpx8pBW7zNrZ6?Q)HvrqD*^Atx?dBgYvcIBgCWSe&-N$*~I= zX@SV#@@y2pp-3!F|?JF(HylVC8i%|(46^EF$1aI{v9VN8k ze)hXBEdt)_53WXopfwh;!^4*Y(11ew!Bl$weaX=#TiUfw>$7^E5f6V`R3&}u+`o;3 zo3#eI#L!dUH(+cu_3<^&gGx7qPnp{k#g+@L4!NcpU8LYkGs^;a?s1+jB=sU_ofeYU zT`+OiVSggx={yH56TPeQ{D{1cH-n6TfSS@RyRaOC7gxFo&hd9S;R9*=pakCay4^ek zkGwJZJLbXjWi07*`S|p~)$rEMsf3-L#@6RfL`QO!1#=FR5G7xkPHF+#1UI{ok{OdA zPrNj!5CW$fR~Q2O5%|k;@FMhJ4m03~8~+9SNubAN?wjONPE!(UjWWJov)eGlg?UGV zx=Naw!Afe6^|a0?$V406I4-x<+WZaS%eQEffY*BVWa>*QxT|igf;aIVQ=QShsKEMh z^%`8+ZskQ)ERTNSR3d5o@oDw0V@$~KV?(8Xe^hMEv*I}TqbNxD|h!e#ba^PJ*I@U z?5A0ikRKMfr&JD&+!cq`xFrXd?T@2VELP&P+C(y(&pPD8t&F_6-dQ}Cp8NqLm$6p) z<3dwB=d?Z*-O^vtIs%@2jTQ^F08DG~t@-G?qz_twIx~zB0zG_Sm$HH8xckvoVzYIB zZ-p#J`>M`nXE%v)Nsz8-)SP}3a49C`f4 z#?At*m3}(FVF@WAUx7>b@jG_eqhS~A{17%5&YJ~3_U01k%ATNUH)dU>gYmA@r7l_j z6VLaOI>L~;vt;+Hc5*)vzu~{-v`7w0N-4n%X=zk0*2R8NQaMS>EjEMcA#~5{J%`@# z$(8e%(y}<-beEzPix|uMEUB`zQz@9#^=vnSb$bfri8^07{16tGfb|^Mg6DLuL(V|J zsrks>b--qE2oT0Hqsg`a6@)tNa$;vex#DJ$5z?B|+(ctc5P%>04d76p1`66j=F4Dn zo$=hceDp;4|B@d-bTq$Il?x07>Nxlx^r`+)1?esiOYH`lH1)-83C_*U{j+~`RPbl_ z`X#^Bpv`4M^0GP_>^d28p;#?l>RZ~T0L@YDR^I_}Nq{E;G*YYA&&;J6rQE>$TSVW70veUa_ z;G&Bw`)F^_nYMR!V>UoEs;Ad)w)y)U3uVf+$YEbpz`zyXg(j{<96J%2ohZFO)s5CL z>g>$qR-lyC9K`gfkLdMVNQuCmLSCEDP(#Blu!S>9E8V|+l(U`66E@o5(vTH^w5$2w z=$q&t%!%Wr{@7bv8!6uY$whv&Q863G`!Q-G;Wvy@efdgUyUXIQK>7Ltusz{h?9^}f zgv@VE?spUDPecMi0UjVw=>R8?Udn@BBhUDjWV>HGxee?EuC>yfli>W|cfNikARsIL z*=FFVNZC0(NHj0spqHwEm-4ovwy*!eETX1nxWr7Ba1iG8U3I)-Im4}&Wv&qzBQ67y zku|DzmCT|hrTgQy>0A^M4k`?gc6xUv2;FOtx|o*TX}%gF+ZH90S|deZtxhI=V&Gx9 zyt10BKymVC`)lc(HNeLX$4M&i?{5miYD_6pEE9SE;*IIQ!^zodS1#1wFly4hgBzPg z$H^bj5$f-FDyT&8D9{GI<>*VawI~4vDxt*%R!L$-O2$e!*9b49-9%mqwm#`kq?T?} zk|fRI?lX+|?+Zh}Vtq+i9xlo#!dJlDG%9x_>^W$vFwgqztPjsWE|9Lkv>f@D-6~Ou zomPn1|0QS*r~`=Tqkb_@fvcO+PAMRexabQ&&M2w{OFPJjx3mbxXEadJwKDG_vgHX1 zlq4QClc@WKe*^A*{CXsio^dF2XsT9ds+Ml(MV9W-5-O7&)0k=8-y3iH%II=??cO^+ z)%iVSVw_WfPpp{I{e9}pbGqMF$TQamzddJCb)hU?`gqJbq3xi%Ga;degby`7aZxnt zI(GEblvd-QW?AnNwv>*oe{y;L{%H;)H3nb(5|P&JLMRj6$9!veDmFOuO8Ki`ji})P`-i9G zz~Q*o)UOYDomGKf?q+fODRa_KH?f7Z!3D>Zi{pPSp0k>@PoQ$?rrL~J&Cc}Y-cva5ZOEp;8%)RG2MN*}x4u%7(nb(+y%WyI=gU7+> z@~%D1_iP##RfqcIuK!XcMM{QRW!#_gw`FcYgZa&HT{nRA0orK* zegCt=WSIN#c~CopKyoxB16wx(ACpaHWi_tMejo#hd(k1`ky3{ulWkc>S*rh2`>@ufOt+0s6+pM~0(woJ#8p?;bAi1PpiOHbwY1LdOIv=^u z7zhgU0Tr|-nAX3&J9EIJ3Y7`Cpsu`>SG$2RCpa3Htwp@v@+^JPBxdQ{Htd|IzsUD1 zHB}LQ5Os-e>e}iQI(OlpmlXNLKkzCuDj-EJ`J1P?y479GjbypK8q9&0K^}v=DENs& zRXKkD8;hHIDkL<5_DAQK?b}f(eq1WYnGb#ljxS}5c`cfwDwT?I&cgJMMbke}+ z%eF&PXXtrt6~689-h3!@OLW~;8^c?!7{-wko{&18}tj?BK-%c-|Ty>a=CPZt@-9%|bB1$ic)RPR`>`oQuX z~p-|NB3#rBo=AQlYGdk(EtC$SSf|MD`xX zI){=Z*&*YQ9pc#QIF6BIugv4vo8y@0aE|eNoY(vFz5V_;|31%ST#swqulsdfv-vhw zor^`Mvu~OD*elat#xbV`$?TVk=rR5R50EpFiz@n0M;$~!Dmt!u@w1pwZLq^L(V^2+ zH1~HB59lh!Pl6atXcIa6I^x~tw1rKJ;M@9U5-%ox=*&eO%~+`NNa6zLBI3?%mMO%o z$=j7p^}C`T=zs8wj|5v_&jGMN^rX87htWK&=8QW#FIDu9H{w4Tr#N1md2eTFtkY^u z>@{camEFnPoTx27Y)|t}4@9S6aVz@$1Bk#R6X;$%=&T=jWqPo}y+hWqy^O0C)@i>j zI+oCTz@y5{bAcG%{v5l-VB0>7AnF}3vs3NmxCg=UEQG$K;^unfDaR=UYYuE*?l*_zOfC$r(($M308qGAr&XdZW$-%qfxPcCHI-@b?m8HgRpp7B>Ac zez&#LamJLTj?K0#0YK2eIsoUuu9rayob*{EwiqNrS8l1bHukKM!}d-sv15osITZWd zo1(hMHU_R8^<^Z!Q#62LoT@LlswaHgd$0nf#LiTqpd>*hFd<;{Fw+U}y&FyI)GKqn z2RTdES7JHw4dh~T^6#ZvY0m@gTZLy6O6MMOGA^GUI__a~<*gFYcu4y#fpRt!hKW!R zpPm5~dwazQwx@F?vFl+Wc}XC;5RBSrWj0SxbP9CwpN|mxFiTCF55^)`^O|nh<&~7M z8`+6?E?f8WKn>|NcX7@o>wnI793E%$N`f&ILDdU1RM`@pG!srv+Fqj?AMsSNHZ7lM zo64TPam_LqbTp2Q?XW-BMRbARQxHJ&*8MAoUJAyMnWdMF#J}5}^4j@^G(Laru|mr( z(6!$X;xm544VybVN1k#Yh949?_6bq0=#@FyiA!b91F;=dSu%Jei=?xD`lH^1XGmpE z#+RNrPKrMVyZS#d=4v-$sCQti*ZWr^&x2tjx3t9CiDaX;{SQEP z(aN$>pIl)d#%EmBp(arD?UM|fYAK`i_1`a(wo=UHu1war#XVx11AfPCNS(N;-OpPl z<-?U+<+e#~ntjK?80Ywb0W$`~;&{?&UkBnu>UD^_IJv? zaUE!l46VNj?bp!DsMkV<9*I)gYA&JYuOE&t$6sTaKABBJYVeZx?f}sSj|E7RKafOr zT>QDy$7ibcsu~=_c`+}Mb~T_R`P)Hfz037Uyv=@JVBk*yV z6UKYw!&A7k*cAgm7M+cJ(cNveg({3QQ}y>c=w1omh=k|c0TAY}llv(DP${s?so@)O zK9E#ZGy;P3X(q3jI+T?6kQ}y3V~v@&w1X=QyU|U+O{KHpd;{HbL`2rxnG-MH@w4-M z?~prqCM40^=mFCE$TZr7+2pYbuU6raELY(D=9`!20n`|}W zW3ZYSeRHP4?HPm71XGJUwnl?_*-IFx->%>EdK!u+p87>6pvF<%3~vN;Izf?5<6P=A z)F{mw!c_VpR^GEtW)MuG&Wk(DJw4``TV3lt4#8U#s~y>1g!fhw3YocAJj`CcWY>?X z*H$l6I%H`O6BWhsdB4@QQ`JINDEEr8G!todierR8Of(S}!V}IE=Af zr1BZf&|HE+PrtudT9nW7TQ&KXkjM`B$C2BAd(zP_%VMZ;)mU#ePhY!o9A<4kC($f{ z=}}q?UrO~C)wgYCiMwa+z}+E7gv#u$>qvD+_y=aUXFgB|z=u%(9A91qtjw(^j(>l) zNB}W&Yy>|0P5HbQN94*W9=CKe#&K~CDt21M#DYaUJi7^*{Q&N4Rx&*j>m>5J_~(9= z)h)PCU}G&RiaE$(|M=gRysQ~OroV7>vMe+ep6N3$Qdn`|$*bY9Zn zS@=jZ12$S80W`kQvn@MWyE6AbQt!!^q*ft%m#DJeFKZ8xNUO6?ikQa}ypnfvD+=Sk zKc2x1ppeM;duE=b74zun=U0ud>5bVwsJ|sclgxuf4si zU}Zr(U@#23a6rHd10w((t0;%szkAqm`n_F*rAE0^t>!=wb%sLuFU>_)&?=YRcP?W6 z=96KJvBIv;GTCLUOjHubDuD9K3_SS4TSe%i3rov=NCQ&_t3{*moqr6;=odmpm!>`(#gu3@H)IL z;!fiArPIajRSWriD3n0Wbbwu0%qQl=KWp=PMFWddOrhTLmtD*{{C*5A$@b;^%Hfhp zOvRQHvj?8q)dJaKe?U=Ag1n`LPI@|2f2l+>URLh>suQ_#AHs^wm9#Ue^--_Vs(u6y zYM6c$Y$Sq$J2TXxjJ1(-A>@%`C^;au=a;RLZW3cN{fNF{2O#oC-=-L+Pkh^vKxieT zeX4&KY-$g6>GR*O8egbp1$xe#MqCxS+|f8iYj^SPeeIcNQg_MsdnIO?`Xss zoL3}$+m*C@;NTp2NBXrJcx*w}0j&_M^HJynKB}Af5tuZ!_L1w{Cpwe}OYvn!5-z33Lh4b1t@7VIo3vwoo{tuy>;7GULg7Lk7#B0Qd$ZFK5*k6S{WV^ns zlg=s=ijfc!Op?I^jdS66;R7O7AWC-oe7mA#Q@YCj(c#Vz0|J&$kFnmfhj&y9!To z@$uo(kXz`m*|Li{(i=K~+A(aSnSr-~$!-6A2Eef3GpFeG>LD`7Y%A@!c}*_|Nuq;i zb>MS(`S-hceQtq<{W7aqMSA_=`m2upcNNjF{B+kq>jltQ(M{5iEugog=#(^Nx9s8I z0KwPfhlhrHN)~%DMyu`P2Y>ZM6H^uS|MrMs?)1dpBc)WkN8Ft`mFNo2KDW_ z*-w2zk+UQ_sMG5vlK_&3H}dR8i`Y)ai4XdgImzjooChGp_61nYNc0x!I4c;%!!rTPW8 zif5f^3jwG?PBTB(7<(<*1Cc>oJ5iM>!t2LMoa}yTYO1w__ndYeIGv}G8QQ=TVvifu z(4nkG5DU9!&1yif`!G2irdeH`t@+$H0}Z7J8K0Z|EBX0hW0wnwiRrg?559azFz}48 ze(Av$prbR0J@2@Nla=w4`Js;o4&+l7Fd7|vSK%A=>4mC0IQ1tlT1GMy1Q>6p^J_wP zW8_pMg}scy=X3p|${FZLjJmhRZ;xU7`Z8&V0&tA^^9YtjNLupLwXqsEH4t}HH@p1G zj~VZFIZ(J&{Uo&gbFkAGljf$`tMROnisbHFd6bSKp&%Xw&DAcbxfhpvX=GTaSGVPw zQ@`H0EZB!_@Y^%Lhp8TEz4MT`)5vtXSI(TtJFRm0(`^%2nq~#tF_EyhI%JxfS7y;7 z-~=<~WH@+S!(H?0LlbS8-;kuahDOm2*^!iNX)!kFN4)S+%#n@{P_w9_z&iyuN@aa4 zG{y?1BoZ)oYR!4 zyg!lu_B^_xFF)@(saGZsw17?z*x*(Bur@qGnjB||ls2!_p7bLl0E4d_tIQR#FYCNl zdvWRDHu%#`_Wz098;r)EI5%2(RLO54xNQ*#nE8xvB)`Zlw(>bx&~NS$M*nVS^b*n? zvaqv&tEUez2zFQHsGpcXCF^6K`_D|#o$zfhjf^OkRWeU9^k)W8zB;W6bSM>-T`}*K zO}3I8lgq;WOK_*UbgzVL4jp}=!wm?UsCMb{)>Ehc?S)51w~gpghf|!Y$^J9YM0(WE z1E=)eW~saNF4($gD|rEFp7#LWC zuMj{3RHF)BQS6%4>vY*go{2fvF0=hTQO*5^2EE~5`CBN$c(N;X$Yw*3N8gQ$At1n~ znil+Tr7JyEovkGq>ebZ-r8~Zui4xs`RtV1|JGb<4XbxZU72-2^mrk!Vvu9eo+9lgS z|D~QgN3(+CmjaJ}ywB7M{dT7zbuTCJm{(NvE;>7ZVq(G(Uk1d8Rq1~kkK#LHBGJNR zMG95jo(SUV+m6QHw@CbRhP3az~-}&{=2@%HxlH`0dA(BZ6tk*@P zmL`s4?*=Tm?Wu43gTr^ynfm%T%+Vk_l+s;`Q8o%Nv8ZFtyM# zm$cNYi2`Z|OZKf_@{YoG6U;sP4<^&kx@2?;oK#;Q=}0wteMKV6Bd>)28&kD`#!Yf9 zxRjL$%Bbofk=MguEZ?b?OLR%jV#;z+82IDy!g^qRh}Ex+Yu>mSFzid#Z5JvCRSjpC zlsui)1<}L7mg!WKt!TuK{jSH(OepP)9QydVr{G%WBmINcE0~`D#^9`FocHR4g=XP?HMIU zjCpBBKf?{7#N%zvlWpsr;MUgLtEZ@fy8d?p?>Y{xWibgemRAOG?G$>tvJ$!udxC6v1zQNZ%Yh)*N!#Yf;Nl>(|M*7gIe* z%9b<(;o+F}%8^J4DMtN&g8t4C^Tdd!#S`fpa&9tZdI;mQ+}HX0<5>CPeojbz39r{! znH-71Frh$AUagmZOO4tekJ|UXV&d0+P7sX`ItAr=g9S+b35C1A+>e6={I174n>3f?eH zURKvhfnHyEI*~9ZRT0w@kELToFc@hsKqo7qv5mJG{r4~bzYrQ`HhuBDl=rvxKq?&Y||{< z89#(X{w^%pq*Pr|MaNK{{DZt1zq$7GN05Q#OJ2{gG+CV@2F%D;$&ugrwE{yWgO7T4 zwinL?pDB{%fxhrlN_Ca>@wsBoSdf2x`f)_8G5-K3IGwaR>KgHA@`nG6b!Xb9+9h9$ zx+7e5%Md`EoNGC!KjvLl1KyzdE{RZKITq=JUi+5}5LhQ^e+?D>DXPl29g*79@1fEl)*ZZf9 zfo1Vh_4)ZL&v>NytLa4!M6`!l_Z%;e%vq`?6*hSA1j6#dtkC0b5>(4Js>}Y?__*ex7*U<^wC2 z=}HB7FXDhDNA+f6hDlJI(X5NQ|^Mu@cwM)`&nTT98n06R#!Vt17OM*BguCib+qF0$?er<76iZ=Cd! z4LTZ!VZ5Y-dW>yw9Ao3?nc|qin~PzkWee%JAwz*z2A6)-)Sx_9NAGU*x?}=|E)|s- z#W0CK^GudGxmI+yR&)K&cCbg~zdu$5%kp2in0lN{ubS4_FR14MROGv}vKptKl!M9< zxs8>m_5q+xtbC2jiTt>$5ct;@6)jljvj3d5S3nwq z?$eIbryd@JMI@-ZH+$!fmA~|yDZuUq>GkZc^gEo=!RNPv%~;M4>2rHZjQ}6T5OP$Z zba!>8!M*9=LAtY;U=G5$&NpBfsx^UV}2HF$H(xWy%bEGOrO$tqTs-)QF zi47>+yYwR6cTsERV263XHHhNBYV#g;`Y#@|2GKAU$2(qgz;^2Mi{~jt>6TKH+N?z@ z@2`VDRiOp~|JQZwc7?H}((f`3rI2$CIu|v=sL#~;@`R)WqJB(!G+;_(T$U2}?_+B$bbS8ovfY%J?{9&_ju=^awLa%7<&Q~Xi|rkzq-V&> zOL-6kE8pdb>KB=gQi(u&Qu$DvcB`N2wBuTQ4?m~&*Xm>&SNFh{&L6v`44ZFOuJv(m zhYSWZWM)2VZ!ZlX5fpTqyR|}h+BVT!Y$r~7KEw@dgNhZzsy8ig-&;&Xr6trq8#Z!2 z=8n`V6hDIdx=!-{O`O@Frg54m(CJn!j8_S9q??qZ8N>Yvi_mP`kS0p-$hsXfuhGw4vBoSj8U)rymzQz*40S3W z-`=GEe-rQi^Ga`W$9*6)H=kY^LMmqmq6btA4PDF;W;S7r1#GODWO|vC*9M;J<8;D~ z=uhNO*@Tt@*}Zy0tGPdXnN5eew8qw*3Dx(cyf?N(pSf^Pyj|l;Ka1x=EzKK6cnC}Q zL{Z~-0%4X}TydFqkv<%6iF==dZm6OyK)9Dt5{X@seRG*x#QxaFM1GPm7^@A>FoO<)NuveoJ_eVAM zk0gYj?u3jEY!$QZdpZ?#%4UsgPB}$eORUF2p16EzDQ!@WVE6eh*;shASZnv0ZTdUd+HFiynpX|*kVp>74<+ovisX0mLjGwvQbAkcRKK2FHNaMl-D#AA1#0{B*^wL_IWeH0hwZOon1GGYkU z`S`6roP1}4#l6j63Sn$qPFPGqPmTP0`vrD+?vJj@L%aB{OeK17!q}cwZ77I?7h-cJ zKp*Rs1NFKxfZj|~Sf}g}N^5VES@7OwygP(nIJAjJx4w1r$9^!BsH1;XUr6>%RLD+k z%;FVT*JwAen>>6Z^e)9M0+|u5Ebm=q-d!X0-od(zQz|1+lNnZH``+jTPuRXzk0Ivw11) z4B5C{3SmIRm8N1$D8Bty@D>O9uI>pYWYgk)qYf6gKI{X~NXAHQ?zVxVLgY~4Nc&DN zdRE#znB=Qmx(Z8fN5RmoJy8}pl zFfukuJpf(CM{%B~oq(;2en;9}mZgXda_Lh)aB*nyX1K%bgGY_Zi67H`)3zcnb94? zcI=wGBVLMKCSJxl;S*=cV{g%c((AYH?YC0FlN)fMQ+sL&Qm@dY{jCvBPdUj~Kj?vN zq@moX#_gL_xtMyKJWCDz&25bb4_2;2fh){K!)Mka-`a}H)TdvLBcSzli#*fJ!ZaKG zW5AL!!(TZSz8LVdvm~IXGyI2^MzKbUR`PR-k~`oY++_Dr`T6(*a~0zqgsICOvYK=b1nmvKpU#Ii|LCky?k z?uySj)$$E2l1AHQC!uJTn>H20meZpY4CX=~1s@*ww~0uL!sLdz@)>z1??1TS0P?pm zOkc)#GcQq#L)*YQ)^{n}lm2b!hjX)P{GY``8EA&uzmLjUg5Z>bFjPTQQ2D&J`%zKf@BFXW8*LR6>~;T9mVg7U zi%H*v_sscks;blK@||}3varKtz@suTty(t^y=@k~YDct;kyoDs^QC0p8TAU=uv#XodJB0OaNyV&h=XJ=%W>Ttq? z#IsxDp7~Tx?+FEc*c1l>zxiW;^?kmjm}cijIELN~ChIWV)SyrM)r(~6KSeXeI9TuM z1r$e_&(_@b;SR#ja`ha%T3;+V6)X{OjP6p^-{ zjUJDnkNFHJ+Q9qSmqKH*ks+4pQG%!b1lg$*IG_GUDg%JO4$12owDa^1r4t<0$4Xj|I; zt%A>gBFKKt=VNod!%}zqmH&$m9#c-_vu$7nqmZOP!llSUi2ydC`4l1d`H!|T7iat} zE0#b9oP!;k&c^ppt|1XBxi`ixiG*cQU6X&Kt2^{o+M~rn57ssGF~YXZN9U`t45r_b zU(h0N-5WPV0|wHl?tLRJVf%lN(d-3PgwesJGt|2p`){5Vc3lqRTwCP<_9lS>gwq3i zBeB)^K36p9`XN{FaL)vcyl%TMYd5fKyC0b_SdcVz_%4C5LGBvuj80Ek-rh?8+9|PI zY-L^hb^jWx8>XpY|HkVUG}_NrOIVQ4F{cXTTPry?9Gtg^JFoh>JwVS1S4yP2e9ODE z=3uEU^cb+vrlAzYX9=)?Nt|>Fhst+;W0@NbQ3(%p-U;ueQNiE+OTH;^79V=OKriVs zHY-r?Vqpp|k0S4e!R?iQ`8o#ayIz8dkE|!5L{tg8^%EDjK)ZsJisy@Ma!Gdq=|f!` zw~>A%UFK{WQ99|Z6yIfoB2JQ(p-5Iu@u@QmumGbN`6nOEjuq+0t%By?+94i-?Ax#*ag9$Fbj90InzR+f5OG?)_nPoon^-d6`nM)ez z!5u&qiT0E<#eDZ4C?sVz>asNG>!RH6->=H{S{uxK&oG;nULMXbDKL&N7L^4#HTL{B zVJ5@HUQ$z$rc&uK*9RWnEae?3wDPn+Dky9)5?jlYql;pddHC3Mnt2E5y|+|t@8y2{ zY7z_ao{~LC;F}S380NlRhpyc#`dgW$yl^SjdG1rhcAgy9o^;y{)32n#bnHS{305NL z%i*g2PQ+xWmy!S0tbfNo>!xA&bv}vJIa0TnM)YiCm?`a#P6M0nWFBtuP(;-FgziZ) zc!xeW0LeAls(;~Um9CPxzq{S0tb?9)#TvXWDPb^@sLWRMRTIU`T%Gv31Ux*us5A#7 zZNa!-50k?AA4dK1c~`4`jK}Xo^U_#$n#M<6boVb_{`kJmWP51DjQ&#WMr)$p3(0{J z?4vkb)DcV-OfX~(&3dsoy34*dxGM;2Y%J$`)n@#c1(AB2hLVYDql9b>lu-H>{pd&B zgWSQ5?k4i8?%LU{K{H}rn%_(32H$7)A0TQSMgwcG#va3a{0|@Uex8{7m>|6IeO2n$ z6K>XqK#yiW!D*ZFKxgTa-(f|*9QRkAD|pjlL_M`C#g5AsLy-96TJy_~1mpz7DQ|OH zIP!W`p+yTnU3iS#)P!bmZfa@?<#29;usfO)<$t!A5$X1xuU%JrfN%V*nYMeb=lbZe z@E}z3plH$`!B28mXi+Zn-AO6)C#ESN@?4m=!fsFQ$O5Cq5f?DFnC$TU?{w2rPWIH% zO9VL?Kmw750Ja%mL-^p=FC=zA(EeFG1y#dEMTTT7{!q(YP@VqVQV)D1T-JVCc$a+K zZ({KijU8=%-S&z0)&O1+oUqj$H7cs&!4hoQuXC}SECp+^eGbJ31&o=g_rm(vetVHL zf{8DeyKQeETm}<``M&b_Xnkev`+5taW54R>=wQ^n7%><{(k4U6NKUrZNgEI3s| z2(ME`}PIL>D%8F-%aifR!B_WklK)3a;SP%|Fng$ z#uHE-?lkSN>{_Qbv&DtJnCAN~(Y@&vpV?teSE{d7n;*gq%Rw&}fQZ3Z&i|!pOU;am zV)~Vj9o3?^l#zfPz?wV~?%Vfl>qSy=w6$7lOd4mk3UhnM^>}8A#li;;$*RNeu zIXSl8{*+|TFm(qq$z|kmhIq76dm?<}y0Ls`tyb+T`P{*Ex#O+NDk%M zF>6&}7-QQ-3-T64)usDlXvOqwE8}A@E$XBEBypE)XK(?H6n}F%)9MqBk^5`HmZnOo zdbh=4-kIZ;;C&RL(S3WSNOD@*d6Q29H0f!ae+BVqnU{5>*8PG72(&39g~mb6-UcB5bNra~yEpBB76 z!+Y+w%zYu075U{}3=e612moo#0C`wuX1=^{ImP_vD~j~2$<1jpU|w72Xc7WK4Vd85 z6WTXl`5b@~$W9BmEmZufdZWb_o2e2yS*AF%gr2+7P5zyB(`JUX_wzyhxSVq{g_#MG zetUbtgScUg<#*}?XTD@d+fl~a^??(S>+@^>4x2;J*9)vCJeJ^)c0iI&P&BNnd;>;M zzfCq5pgr5sN`q|;0?euh6fbb{jgm8Jp=uM*?mVr#%-9g=eybTJaRa1tZK8Gqp7{kv zH=%}dE;~!Tq^^dBTTcy8J+r8tkt$^ZiOP481y6pbM z%GXGkTRX%#)zQ(?DE_RU;s*Le{~mt;KfC)-eAZW9_3rZZ;_gtTZopP-aKiAVyN@Vj z0A!_Am`MnL=w?3K*(m{-DksQ7!_QFX&UBxrk`QnFnsD4NL_X~a7?Yf!BWpgLB0~-x z$k*}bs19eXV4YaoYPeysKvzsN^!ooP$smh%gXn_y2x^=WHpb4AWSTc!SYWni#a6F* zWVczYW_LB+cZc=MaF^8wEA@+V#IE$_!Q818=HTaM(D)sAeXn$BefB$2nAK( zNgkgI&(|>Kgk0y{uk^&bCHTD8`z!tUL_Qri+tj;0rc(f@9*-72d>be+eKfA#jv@9A z%9=6*%ZI_ zocI-c@a->1;^w(T%_!vICErUyH{R7sV2dyR>rmv@I(D8fKtyb+eOZ1@xrfc6Pxhv$ zX3O=_LJmfr$hn7+*9L;!i}D3;R;@A2B#%cNQR*gX=Pyzl_}=^MFT*puX7!vbyq-8eYEfaqf!@Iq z3uZOw(RsT{6{0I650?EXPNzHOq|`&sy!_9){2--<#0=&CsdxEb*vkPbxHI7K-cMX=eU&NuvAQ%0_@lSF+wi)m7w~o3R2lF z9L>h2xTHnLFbReA+1bH=7=yUgiO$L*&Ss|??E8ISCot|E;43usu^P}d! zd|sLKGR^esm4W!@zT9gGZ~F0TE^`)f_JO*+m15KQxRqEzu==<1 zdC~BZeXpffMf{}$hvBme`AofvJXj<|?vdkkuXJ-E0>yef88}r30fK&-Ou$2qjw!ii z-_49#kd@S_vFB(Pu}zouHQJpvMl;v7cEr?zViW}mI86=cMnPxeK}L}!$=yv}wcSv2 zR94i1G_EnQ0iit&_Can2i%97(rpYOV~L(z1P6ekRYZYGK0 zmu6&bh^jA?HM#RKW;|k(;t~%AaX>qqW~y?MVW+k;fF7S)A{Qe!#$EF??;H(01GQ=^ z+tyltU6@b!!8st~yaU}~-)T;^+RsDbl9fD;TK7hH#^tz%5ul46l>lgP6Lj_);et9- zXEHZ`U%pdO%mZF&rReXkKjMSW)4MyPPb~B8Z;RCTf4PZx;SKMap;Wvq0>Ih1b|v8? z>@pjH?QDWu%}x)}sx?kaEz`3ON>Rm@&_FSI-|+Bojx* zA*j~_$!k;h5NLvp?^}&Nwt%-zzrB}UE`R4Oy%!~Lpu5>6jQn=VBri0JgnGT!7|T@g zNanR6g-Z+8oJ|9wF5A02yWf{V;KAQVV`qBh;!bi4q$tP@`RAh@aeoCTWZmJYrPl>0 zz4;S_7Go}^iq0bkeHh2=J7xkXLlOeg`hjt9h42V*n~VFmRBg&v_}y-izK!YIEL9Fu z{C;S1o80l$1KVD?dq}y%zQnI)1V*Ui&f-xvX+nT_i{CX~mQ}#0;y2AW8>I5dqCqN| zR0bl68aP1n$A7fkp)&gM3xY4p<@V37d73xg7Kt*NrlV~Vs9UaIUaEQ9=4~mV-0Olq z5_3C)-Pl?i-@DvPsB>V)=BU}Ip2NAjj1+5_dhMwdhop|Lp#rDcBxls~$TSn8J2o-Z zQ*=CszF%^XM}w=YYaC9P3bVDtjf-yP4Le@n5$7+HDhgrx#{eaPwl7=Du{IOt``V_- z_&`PH+6Cq9jz@*oC&y7-N*kEk!edd&^J4@G_)6Zgr$wAJ*QdlTyBkv09gqdeL~D8X zmSIeGM>Yv(D8p5lGHy`P@=HmZ-x zbhd(``amTTBz0M0?X*p^H_`XLZB*H>38eQw`~_gPo+bl+HP!6=^T1;2ufSY?p>9;+ zqxIb@J6K8&RGN5d`f|O#N_{WMCN28IHS?Sw7XF}^%{r=c@Wijg6(}w>GTl1+eg&wt zv!3tcnA{*_xxEc50Ml)ekA{W>+bER&ymKuxHT1ba#I!?zfB3m2gDaoOGMazLq{7y@ z;>DSK5LR~U;910N?{pm>kz23P?(W%5Hf#KL6|B zk$yum+F_*l?+^K4!s=RVD~q?7Vy*^?!?&KwuQkO|-sn~EMnAv5g~ENrt;h#Mib%DD z@vHq@g}EOfv`=6sWF7!yZAQ)w_Mv|MdJS9n>2x1*-t7Y zPV$+wmdss2MiB8&HK#QkmUuE7E)Y(`or|H*3mgVvG2Q`_Tj?QU9j`_$k);#*_d|$B zwpya*srPP}sv#xhIO;}Kp|l!z%ApZO*eSWE&+;k5PWUQXLKS0G9*@`u2z-1v3{v#H z|02_E3^4XzVHlTR}<)I)FVes@fC#&n87Ik?%mUp+56G;eG3K9&-|kYoP9S^OO6NxUsH7x zW!uIq2#3>hZOU6c+bi;8Z4X z6`v)yKlbkWJ3SY;?`3H5>aGPcTn}OPD9uW(guB9x63%De1w9$2#VcO?0VBo*Uvp*M zwXj}*^Qv@T>1M=_3jmKa@+0@;o;%DB`!*|7H<+3>Ixij8wEPUixPnC{eoG)Q2mo{^ z4l&eTbgxkVgv;(|wR>;_d5fhv2j!=nhvN!fnQ4YYCb+n3B(TSJ{mDrrQqIbgtzsyy z{2lgs9cis)ch1@Z(fJM_4QX#xy(Sw1>GH!B34mJml!cNAntN;t3S;^wY*oU$GLL5K z-smdqjE{@uXjr0QINX`7svD8qN_6F?0yak+0&(`_tLsS7chTyrj*r{M_6>wkw4g z?GxfL^;P_2k#ziNT!Znys((pP^&j+B{56-b#^ruejC?TlMWMJ)^DK4rx4c!Go5;Yt zm|X4<8luQKKzL$@SB{CGQ`qMjeURNntbjy>_SL$z3bL9&@wYrZX$~7t366m0d73wM zPf8afessb85#OV`RtQ-V*Xqwh)(g@xxlp9FMAebR+MCU^ZH#*GFxvzHJ_6fs345=1 zP{e>=dDeBjofzz|s4edTSwi1kYE@1Zh{lhI%aeOd_duT;phzi;&bq%thI%_swpiZ( zd_xXaVd9U|KbM4%@X_)tE#NO5oa(&Wy|u!`(QcGo5VyOOO6FSWYfABbQ}7Iu(?l-s z1>ND+g-@6X5FGEF@NnVGi}T2-qjVJoh2R*p+QVE-lr=ySyd?LEXZ(>*il(l14&c3D zs_(bAcRtX|h$}bjx5~c$n;rBC*KU%$D*Zgf!`+J1W~nu5fLtLH&e86`W3j8{2;IiDJ3DS|l!lWhl zCaWqL>%w*Ks?P5)owJ$T3$EK@e4bd@;nHgP?^=JGR?*@MtMjV27l;2jvuwklM-F?e z5&>X=u9SAE0blrEI5Dh2ES~~*Pspa{wLD<}1}RF)FYv2WdjAL5M{x@kFHd{3yd^hJ zlJ9UYf>palmD!fCroTA$02062X9@x@M!b=z$Im$#URE5fTmpVdl1sAI`Cl+PNm9J6UkAue6Kn7T>$rl57MKQB|k!r86OI~10l6vcLuX|V}{zy#gG z*>u@q%-iEb!}MC2Edj{|Kn>aJS*q2X*afM{zkoZ*Wkwu#K!oOLp$4k~@-BQA;^yWy zzgmd+ni_cQdrV-h*M5qytN|&dGAJ^M{1TL5(SlOBtsnm{IaM`UJSkU^2PN&c&+fpJ zzdi7)=&JXnSG8VHnB_LM+6GF)gA!{71B|lK0u-JEV4jqSZ!D(p{1qMf`gx6L`}4TR zyjtl==;W@`M1_*Qg3EL7qoXq?1ShF`&Y^dC25xs0E|!R~^fANl-I1&aKdx&)W$nD4 zDCN@`6|}W0$;cq5N(^SAkm8au|87XQe<+0i_Ip$5I)i8pf4`My=X!W2_*9uH*L&8O zo%3+!nVtfnMU+A4(D)r{LIU>VVwLOWUFY%1c#mMZY%^EkcR+)&R^DL4pAmQw2)Ff;- zAmSD`Ts7g*i;bmAZ3+DwctY%siMaLTpf#%kMTQ1RIT&+NOK$ytW&^l7#jt8^IIAZ+COng<);WCg)%xno%!!M zra%bPU##XU%`lq>bOr8XMBW5$j3p}ajHLT-wEhM40sCB+RxH(M!vt6Y%tV507><7= ze7r@fP4OU#+UQzj#{O9IjE3zrE?f~Tk;w|XX7QO2Fg>J9=M&} z2NpZEErMZ5ze~$%aqOWT|Ie)U!t%uaN$wmy+G2SS`7NwE5&^CCQBpz z4cDs6|CS6{Zwr_o|6+9J{o+3k{qq&yPH`^8C5saBi=a9anL|R73zMie!&v_M(KXhn z%*;&J>hhjlvZfSY=G}Vgoz~XYaeCGxa)sR>cWPqd+DM|-gZrNYDwfLi>2b%dka?67 zhU?HP0Dp63X5*A#&Iw zHp<7Bj;Btb9-9dKVFXtK|K_+Svc0e-^7&fOVpkGtcA?CUBj6@%%bf_fEG^!%ryN_f z9mu+rnE;os@?%opgH}K~{i1nKZb!XxBJhNxr_-gq0ZPsRA=y9ym>)vB8$C1bpsd(3 zv$v)ocp{5?q<`i-f$6rYT%O;FVXb>*jdgFDOxej?)WU=ZnseouoPfTmXeP8U&R9tg zaje$R__O}DzoID=swmxvE5YLN*8YOp+@j$ZsY40qS zGcx47t@x^8_^-%f+HQfd1$lEO@f;qB=Q#%6!}ukk1Xj=y=vE6fVGn^9&6Nn;t!)iC zM;ubR=TC_?x`FEYYp-6N7rNLE!2yaV@#%G5lc8vXyo>t9hiYA3_djm5J+bYhIyl0o ze>)-*!;Oc389rhLUYMOOU)HXJ9bo%~X(CUo_slEAJ{;rD`dHT;mGlsTZoCU)N+O_7 z?j%2kRlrW>FNX1ERJ!ng+BneQf!DhzAN5drXQ+5kWaj!HZY8hQ``y+oSNdTi+Xc@! z^`W{w=FAL#-J!yd8#Dt(H&M@KSMmy5`B)YmmSqEeGsQ-Fjzjmh^Sle;)!Fq2-s0YFXvY&OpjO2XfRJ-}d;Rrl{+~Q04W~lTqyQa2}U~Tqwzfq z*RIH5`rY@X)9n{U9XDvzg#bbH5=!6JVb-x3A3>AT)kpg zHa}9Q7^m=^H*YF#cU4Gc^GVT4_My%H3%*%^>WPjYuW%MK`OV7z_dZL#1K?nK32zaW zR+obNj#MO@iY#79U$Qg4XG)%sD+0cC<`L+O$g>!-LI}1%ifUXQEIFD9#m6*fK5Ov z&AvP1u^g^&M!lY^Ep_mr9KW%$^V{&YD8lL6xlYL87&+N3o~)>IdXXqsWhhhytYm=F zT>qC2%Y|=JasxNf6ReY2UcyN?>K)$v(pekNxTPlgg@6X#Vk<>HZk+eRjgQ4ker#D0 z+5Z%g0%S0E8N@#>qa`PQ(YpiTEhqcS98<%5E}ueL)Jom0{T?bjD^g`_H(af^6*=4` zOPx#PubrY9cS5r}QKEdkBD1yI!)cbDBkiDAZ1LonsKrve+<}UEaTACjm|1?x3hrHm z(PT=|k2an}TC$lT}WI zajJ27N)UZVOce)7rt#X5+4k<>&~wD~4h%7>omT^>g_THfbHjH2ektcHeJ);E$pC5g zyyD{?JG6-|J-z1uyboo)`{GnJ^UnfNhY#AIBt0hw#W`4EKlD)U%5n_COBhNfgv}f1 z!3Y{Cqu@L+BH7yCkHNite1bH^hM1UAcoIo7pSaaz>8Wfdwu#NZ{AE}jSEyOS3T(t{8-IKGG8X}nD@bhFeiKSlMN1K zO%*b_nub)11fWFhWw~^JME%zDclcAcA5VujU|>Fl^@lIwC)}1Q{sMnCr-V!IMdD}f zU_OFW?7j1e*~$N3QEwR*<<|ZUW1%RaA}P`#E#09=mr6-XcMqK+f^x^Ht8kczm_SJwc!&GC4kJaYh56M*TieXi;c}>)Hr*{-%uj=I8sAT(Z!my;<{?p)i-?eeHL;r>^PXf25qdu|#(nP1e0oq*sWZfP5@NWeS3Q-+r&g1(@e zKmPLG%=PkkXYH}r-?0w;igND7Sa3#U0ibFCZVVGv41@TuLDu@zn}Qq}zaK+bAip!q zlxIdY`E=(~8lV5FV;p1EPDXUp5J$a*TITWeiL52(Yg&OnN1CDR-At3V!| zCtUlrU*cT{N#6NR$oyZ?dRi*f#j_T(1LB3-&ElVIeGk|dqB2D2sLsxBETDqLeyurp z=NqBzEA96B_S(Z#9K+50-)KG9*^yYyvSFw%Q1YJ5_=e!b#-sAnb{v{2DbgLJPDltB zKd7s2a_94t4z2X1)XAzQlhFT(PM$%7yX|KOdp=-4-R`?wm_+&8t0W1i{iW-X=+FFnelR5 z(vc*u6hX_{A-HP$eZ1JX9DDB!&=80*8BWyk9T|%6l;ZqKldpFO(cuF4k^t(WCNV{ORY9n>tx(Rx; z;1_5=r|ji?7%%y`-P%u7bhXB>zG=!0czQ<2ORlN`d{7sqb06N`r~Hdub4n0%MFaYu&{zHpNX0F3w){Cr;)#{ zla?Eg0;#*epQs(_xYm~%cGFcFEG%v8prKqXE0H3OZX9Nyl+!u3GLA9RCHMs00l)rV z-%^GG5`6JVM}Lek7foMP5#;1e77FEY-`G551L(p0GN%To5C>uME__FzJ%ucE#l>{S zjmfqhv{8ak92h-6zpnSq42hL1b5IXli9@0GW!I!C=}(S$T(?rQqRly%HcMDnYw?ev zAn$UyT5!;tLVS4b&N_yTL4sJs;g}y@q3hDR9#BwK6!HLD}OkYd_SRS!Rj z<*c$y^Q=ST5jHan)g2fCOE)W;S)k<7rpt#T@vw`_5AQz(a1*GyxdBx-cM}r`A5jnR zrnj9RPg_;K;+r2izx2f<%1I?2g$wvcsj#!ionFffM(J=K^wUM-3}G<0ss8oSDXG?P zO&)%I-F;`4XKH_?FVkKCv0%S_f4Z(1`fRDI&u)waGrU;tjjC6CnIq>8JND>}d~g0> zRJ-rL`OiV9%{7-DSNpt=fw<-#P3N)_jT-Hj4;n1K{rR}KikY1Z!*Nr=Colz{W^(mu zo$R{l9i6$F*vxrqOW^e71c1E5cOfVS|v=!2>hTK)InSJ04%(FJN+-c{QN zr~)MAM!x_U;r}1zm(a8n%+OYn2j4t-5Pyz5P4-W})Y98OMj71)JIIs`df?qv+h*7E zW3b`X<{C1r<}DO&KxGBGoXl)&f=d|w5L8sD@W|MRm_`O_^9zY#l;+SkrSS+cZ_)iD zOOGbs<5H@-+_Mh;-rG`h2CYru(-&?$aHO%k>oW@TJOBTe5PQGJqRb}Z0U6pZtXD~1 zzJ5L5yEF%bH+lJNt1I549NSUqfP0)IWA{nuG{CFM^9dBp4qt6jlP3<^#Z7<5_P>#; zYaA6PznksC0ztUn63T64l%J|Am*KY1K4CFm#z7bwoLF3bX0B$KwOqgGr$fsqDBduV zzlMis_uqQtg&?f)9MqKmY$yNrVJA#vSzWtvy`lZWfh5DCwEg_$lAqqb^VLg*I(hvZ znsB{qqRYErJRZgb11Nv(6fP6{i6_=XL`0{=m&a>ugPiS8*_d-%QNl=-UZt}d6~=Mj ze_!593c-<|CihqjV3jTqG1s`iSYxZ_rXqcdQ8)HgaFKzEE{*-;)nTI_PYm*ic%*_O zj%|CDL~}4E(PA5EBJO_2zLC?*n9*qaBhY=-d1LnTaVNN??~hHj_ok|Z_BPzi1hkE; zXn-;Y;fG}VVV}W7G4Hus1%|@)?a7Bdgu|f^>NFtLcQPo4*Tf0_5KCc|&JoaO>6kkx zo8^B&w3qAg0u83eJzCl)F{XKYe`FOwJH0IVB#N*}jf=3E#E={Q-T?sU$F2i$m4!M$ zLe6(dT7CxV)SZ{t{(<%axyV0WZ6=eozq^azeQ;Ak#Z`5Aom-T_7#sMab#c#q-aYHL zWjUCi0@2YMzH2|d`>Xv4>aEr<@~9Rbs;rFj>TtOLbkx`6(C3bkDb%A?+r;`hj*|H= za8FT@CJ{$&-D$>mI_TC2PUDh|i&bRCA*v+UCf(5cQK$n_lO1`yrJ1}|O-!ujfINd)Htm$|(X(O}k`|4F6U&>c~~5-UqdNRdG)XUnh74F4QYm`ME1cJOUR z#QXwBTYmaX4X%5xSrMe3Fn8Owo%GGsY71wBq~Y0sbPhG^c+iXSU)9#vM2m~9&1#Gp z316TkMC)i-Z*+)%VYpZj_o;XUA!0{AW`oLu^PWcZQZLER-vffQ?AkZ2ytFsJ+O(1L zlGSv1A9@FJd=<}J>gMEfOZdQnp4gFP{QLI!Do48xt?MK+_zJ!%JS+w1;3Y|iCw`i= zT&J|rI=TFn{72-qWTwaxyc5J!rNitgSW`o z6TOmLa5@UbU^umI79vuER-X zd)=|}fDCy++1tH$`K6`q;fy)TGgY1?dY&s!QvmeZw3x?(y|XL0Ltn|=FC zc$3^@T1?b>y2>I?OZ>_3rw2)%RVp%US9|Lia&{UITzW?@OJ0=tT<2}8mz_=sihO>( z?-J!bTYVTac+BauYkvt=@E1{-79?}2CDe%lV|&HAQJhO6RdS5CtTm9@e8|~sl}u_J z8Z=CG$nf0UdpUGX<)1i-;XV;puW3d^hRqd5y-KDWjqd|ETnuyphp+)10%;5AAb)mwgyI zn+e#dSq@k`RfQwXlya%v~Y`@%cw~XJQ&mj%=@3LHpX4xC@jf}hJrwOb6R*Tc) zUcG_cgzy0f$Mq#iQ|1cCrN})BfR+>)+XD1&)E<*FH~|G=B>S&wFhTsC8`#gj(4Nyu zZL+cS7i7!gC=8IXEuF64A(Dz_P?gYs;v2zF%jCWvb@~KidR#q-4w@!O4gYsU)R6%9 z_fjS*eX+=D4#Q8dDh5qJ8DP${PoHdh z2NDVxZO>v(M06Qg&vKARwZZKDpPQGI>Vd8|8EEaUXWrq;FW%JPqS0Z3$2|di@v1R~ zg+F?$7z$+6KY6uk(k+WcQ;hKtM<#7YiCIAm;jWv%I|V?4V`HlFLt)|oC1p$dUNF;f z3**ZYX8_frW}Frhy2qdb&YVU&M~i;2q|G-TE^lYwj%#{`c`2jMqoDR+#!%uK#W-t+4jkrVW@Z;RkQ)kpE-gvrgF%nXDD$mj5#G2Q_NzeK+D(jN`CFw``=?i>Ym9 zn|@yBGCiy{EZc%JNiJsQB(i&J;BEkJSS4Lb-286#TL;v41l(_oUigtqQgsuuG;?uTFvfTqhb zU3H|qF?wFQ{@1&>k*JP|8!=y?oVJw6o)mf|D8Zts4?FCe}FegiZFn1>a`)2Em$5_ zzrxq<#(d}P8D&TZxSP-FbTEh5Gf-(}`Jb$ieAFt}BRbjb#vTqS(-Ei!_#n^2Q3-%} zxy@uDQscnM)ckEoOXM%>+PMzO-KGj*qfz0i3I<3Q2<>-hOX zc#TPIFcMHs?y()&&Ri4&oET-y&9er15cP}_-$ju^-JQAWGp!?vvh_lr}3 z6U@RTWh*Bjbx;TdO$M}@cgsLzPEa>bay!gdtbmh^0&f@b8G#C^X3z_kw;d4jG+VffBvt+2{Isufo&d#|59aV73J#-PwVGA5;~#tPbU+ zPV%cuH~4Y@o8=lH>P!giAdgktT8E6`(<{t>tf9T5ptot5kPLdZ>DFp7fsX>TZ-2uMdJ2Y4^} z2K?9_3)m0%AC$S%Ch0kM8Z24ItERi94g<)#As)s@Iu=%(B1D<-b}~SpY2irT(9JvS z+!FuzwF5Z~4%iE2$Muhku*ifDX*VV-K4biYLtUGE_wyZ)$nlcq%2~q-4{L+cjHjER z*o8djsqI1ZE}5;h%7g2IDpUyX86Yc!wxw@2CBBtH*U$SfEu17DfRSn!lo{N4a@jkn z$5ZXT(ALkm=J+D!zGA6dxtYIEEK7>Hoo;<5Q*gu+_oI203}Hu%dCc49*(0p=wf5wk z+fm=~$IXW`Ny^B1I>nhShJff7&)OTnHw_@}2MQf?&gi<-e2K%mF*L?yFsIpndwCE^ z9-RFd*IQ3Fw|rC7bBx0@Zz06Z;v5Fz47J=vN)&6eSAZ`==c}h|I4oQ9i1llB!;I}LLp_^zO#&A z5pH~NKdFWWs~KQVF%wks!LmTr1m!u1cE6*e*tcHM)#E20uulP@=6U1M#N#{jCZ^g| z&qf)FLTr8zwUdrDDsnBja4VJO)F0GROt8LH(rKL;f;9^dR3$+|anO5x;I&a>#-~h7 z{lUY``7Df;BQzNG@#C#N-*y7`oxKg3&Rl85n|=IXuQPc7zwKSW>vcC>&=)Roq^5i+ z_vS!k%R0X2w8y!pRKMW7b!0qNWj0K{Wly45to)l39ABo_LGMEDRgH5;RpGsu=e$8= zLi=8x7bjZu3B0f@3I7QkDR({_%`Z$|>#aYJ30tT_2c0cnv^gN4$0stkh_Z>D7hZ4 zyuX1_D6X+Tzty;1LLRPYx$D^kGmaGDid7$gL$RD|=fz-p%gi%ce|sKCov&pX_8Oe`^Un@Q_z;F2oI zu#bB@nOC(%;%T)7f_P)@iy)i!)0ycuPc;dFu45_xHbY#i$#Oh!|Fq!#&zpYh;~K{d zm=z`3u{&f}h~pmu7>T>88)1n)6aen`K>VQ6=Cq$+;cjg=HQG?&s819a1s_ z-{TVqHi2GD{m$RcAXNWL0D2Eoi7MoVO?K>o1||cDE3^gZNwZ=e3(dRBW*EM8`0x>s zfuyfjO?fnsz3Xd_YV$uX!TDI+YscjKm*m6Udn!xCk-UZP(Zw2-%E|r*X>@;rRRBVwogMdjW3G|Tag=Od?6Eqr9?iYsQhApg$u}WU)*PAVaeBIjKm}3 z7B0YX@hx@6Z|?H?#}K@pQ)EzNs_;Ju8`viuOaLRZ7}g|*m|yOSisoJ6(_d{-=n9D# z8`+IL14C$qz9{4y0Ba>3(FzN@YYG5;Og;;UX7pdcUw(*J+2kfBHNx%n@%{WNI1Y?1 zk}I{=3_X?_V?pm5;v`p{`D)QuIV@cG?2+TmuzN=k)~GIk#3qp*Eb!We6D*dV82R|N z+DXsV)?qH=TsU$tsgK{tuN!ajBj%8KFZ{X7+B_8=BGR#~eB$E^2>OmC3oURxH^(vG ztVFq_dol07M^mvwq)7EKEUU5n4K6K&$CAk}b>YU6`aaP1f2fa}^5Zl|U8%-j=Rel0 zm*mi=Qhf{?9BIV{mN!ynQtU2c;p~x(Q-6#@7;~b_r&{qxI@I911h0eqbCEj(woqB( zXVlDZ*Cbr=hVw&2UQV%sS-bnzgkcPzZL5OGKmusxGx_+RCuaczD%zC~?dii06{-&p zinQ*pBb@+8Fc*E#cNVY*%qGhTdR$fdGvn!8ppf>v32*}xk6&U6Yi$q{o^$mf;n!5| z=nD9CSzbr;ej$46m7vV_UG<;2<6=N{%?mFW;^-b|63O-<3tb%p1DCXCI56Un7`DtMMSpjWf!lKbq;@1M1Mg zK>?^jkO_eRn0l0>O!P~&2!5+y5}X-%ga6)W)8ramMvyJUr#VE~F=q#>)-QrP-={>PWjmJ84 zc&x(aX=8rJrh_8P0&H?3rwtFcGz5U+R4mRPSxoPPlk_?dSO0vkD7rIS4mIDZ2(A1+NQaoY z2CU6@YuX?3#CjyL$H;GR22I{>?q<7{~8jLNAT25%L-z~JzujXA7nGc*tl z0QO>|vRR=@$_=x>YdgA$IsHUeS&{%nw>yH0x>wDDFnlhZaTAgySAnt!QED(#;e$;| zn_f4~E-p^UOeLNCQVg+nj+?1CJtn_xw_j{ceCrTw-K2i)77vSMGZvUpIxNKTEe*Gz z>IuS`+~motuh`gdtIXHAY^8->4hOi<-8<(rbp>uF5^K_lu{3m69>_1DPIx{9$ITKR zbHynT{&B%m=3}4{1A~QpZfW{>>%p#0ut0aN) z5ETdqDq3*mj$+F(Eh96AW&O8*YX!6{9&lQfrwZxp`u*fH9Jjcc5uCE_RByYdNIYG= zMu+b=CfO3daw+o1T+3byMD*HY74$DKoyJmm3OMGOYJ_){S@CWbv(I{UByQjR9CK1L z=)3>dYIMW747T?WZ~jQWyXw_CJ80V2xh&#$H@P88Y3Oc~IayA%h74rcgDp9s3C09dMFGOr5 z@1s;+D=*mQ6U$KUc8Nj8HolG!5~~Cy(dYG)+b8E1pF@ob3TN48bvmllLC~3kQh>f& z-JN$@QT?X>%NR4Y3&IYo1SBL%uDh>o^>FUydk}xIW@^&aLW6Bm@8bM65j_0+x1rTX zII{(5;U9&-u5m{MtIv2tnXU<0rksT1qU75}Aq^0`Cv$&qeUFL&jdMcykbAvuXX-0u zXdFmw4s9`+Tq2%Cv8k#c(D0$a3zdm#F(78wq3!p9&TkygxV0px?9-iBbs7n1>1FG6jV4{tcPlkt>4B^*!#q~icUmsPSzF1r}W@~wK2c&M& zRWH=kUgCPSmuGe$OnCoBSrnh?{%J$afpI2jo!60YH3CWdt6kv5Juv3LasqECfLFQ~ zmz!)*oo9BrH~MjT>n?{#A3u4+4qy+DN)UvOl9zhm-#G_u7cB!mUiN}np(&73SwjAR zawel;DZXW=LY&S60^IoEBjSSrLuNjSFUKi!Noo{5|7WXH5r%##3LG)rv``oz3THj8 z!^NzX4|&1duNS?Bm0t_2nj~6OHwo|D?5!)9q4m4Q{Sr*igj@>b<>dwTs>Vwu1`aeT zUJ~3*Ev$ECUIxOxW>Z8-{Q>VSK#!aC5hTwFi8)v_PxMo4+6(Y6*)+cTY4m&k>{HDQ zQ^EE;f_gXDqvChNX7M1MMdtJuJ-v4=&4@bUn>GT_L>0@a`X*Kk*N^MhF0YBK*+1}Z zz#=n0`!~vM)MdFxp3#xTy;4}^b+lKgSmF2r4I~32Ih2$H$XWQeFXZN3F3QPsWewc} z4?!nM@Y=3yNZ^rJmO2*SZREf^Z6TA15Pr7%1gz{ENAC|BZ2!hAMW{TX_4je65koN- z7^1yysg$B!%KUZreoOg@1@R~s&h|xOGL!QYT)l`gpoL=(v5v8Y4!ie0RVykm^2wvr z)vggN-ufAi1Aq)IkBEsskpK>P{(zdvT?FXT^8*XQEQvw29B*Dpe+OA!r3GT&nFn}d zt}LxWda}lBgHcm;DMc6Utp>f|6h))5K!p_;L zv^oqfxvV<)g<1>|6@B;S0 zzv1-?1pxHtd>%Af{v;|HW$%tE`hP))1{8t)Sb8<4Lny~KH=CKZ94)~v7W=W8MGhhZx8&#$wMD+EqL!}Tb!baGjzV8?-}l{ zxNm>;McvM-qe>4NPO>##VVis1PRB;6>65COTAIFR{A<3Xyh*g#e(e!ls&%WPoxOa) zWsrSxhkZ+H6DX@dIkW^5qfp5H!lXYFbS^zK#=)XyJ;J%k(ol-(8nB&e*^nVwIz6;e3v%xKF9L}9EiW;lk+j?c|_*PIGrZyU4`mO;(u067)jjG z8_7wAetI#YU@RR~()MLmTfdmBcK1DPQ7go61Koc}?mY|m zKx7?Bob9&8$`iH|38CjMV%5U$^5ha+1W?>j)cF>v>1zA6=*zGKj%I}pQ$oU?>le^_ zz$>Q=28#mZf>feGAc_ZE1K|ZLS5YIwg6?a|bH>pQy+R1N163&EOPH_|d`tI5* z_QIS23dr|Yd<2;Y_i2+#M}>Yp^Zs|k2@JpO99vGLZZALY$H?Ik!gOaYQ)S1z9UxtI zzk$i?%OJ8EfMWeF$vR)>1vl2wG0aGePc~1jl)RLTpejnryFpEvY4K=dKZnG3zYe5%D8!V_Q^=mz*WHht>BOjsvg%6!IHGNK7m!o_No=TCE-L2^a5FVXMlNXwrUpf{ zK#vxKi8KqV|6iS{azg_@DqZ2j(E)mCQjI|5}Y3#RMzm?Tr-Beozl z;s#9R#^tbZv&D|K+Y1--m^T|Y_lwr8ccwIO?6?hZnszFfS~Z)5#zb1FLk?OWUpoJ`+4UL zq1B5GST40)?*KTnZWJC9hCf=rA)@+5g0GM=RjRi1ZVNu9J{aKL( zc2t2m_A{Fc2lGMbh~(F4^~#8Nj27d{DR5KMIrFX?GF%lIv0k`s{EB}eWG-K;B?6=A zgC72s5#FsTS}ED>rghyt!+tW1Egn?3wP{UI`WXTFtSvS`W;^Qs)b(uM5f_deSP@Tg z(wV1=^XV}csM{5kRS_I2`t^Q<;c9p`@(#_K19R>R`hHG();EADTGZ9?q6IpISjM?e zDjG35M}Ka^sGVjOP#^Kp>RkWaRjWIu{hs6MG&=LSatB8OHKw^*cA$ph>WWi!e6&S* zH-6n7tXW3_ux_Z$g>$q)>Nyr_*De>}Y;i?(yMSAogf3;7824k>RbOcSeIkwHuu9|DTXt-#DTBveiZO!v zaZMh3aSeXaDxnJp;UYhJr2#U<#^*K5)iObW{ykRB)KX{j0ijPV)+c%DaLjBT8&CX3 zU4nr(!yy-(`;1G%@F>(<_S`y+I^)=h@FX=RPRn=|Np1x#VCu zz8vKby;ZlX-x3K{#>G|Br`dV$oZF%(1!n$SEZ?iB66CuE;GM^UN%_SPMKw?k?wrh{rQ3JB;2uX+{6~%E870J7S3h2twmj zP>3IfK_V&vC7>$CDyQ+dEgt@{h_<#?mq8b#Ac!R=ronmjp<9Hs$OE>-apvvFI-NDJaz=FH5Vm<@DA2R~xu2T(Zzx@R zI#=p$d%K$Ba*xw;9muA8Z@HvEt49tW{I29!=|YQ@)q%4{pu1^_ZI;Z0y|o&=Su?7I zZlk{{a`Fe8?s58J&+1R_r%e&O22dgX;|Eoe5NDGPLmpMuhKgTn7u#^v8uaqwpjKQA ztVvJfgF6$}y0v!Is{poKc>l~3{j`s2^Cenk;T%OnZl|Q{J=qVqKIx8GyNp`b=ATpWYuC2)+ zb4jtLOcrkkE3=RyfMU>HTl17(99q9*&Den1ccY@|)tmWF_m7b~gTN4j3TY=$%T}Ah zuu;!@WN0g9oBlL-{dtsM8v_3$T!YrA`MAy>Vof@wa47Iy^3fWVxdMm~7Cj!c$yV?Q z<|XP%mxPqLM~V0D#Tb+O0c`r6#?{mcVa_aC&I&!Ewx!eAGviO#`KS3ynD&dT!k1G2 zqMppkhu|Y~6*a@tqv^(tTHJzcNE?3Q3@^-TlKA@0);+1R7|yiJE{8W3lsr@EQCaKI zw=o0YrNwe+pvO5X$NoIH9phPeku5!aM7Uo)G_#UC@O6c+hTG zI80#pt!T;f5E*jaHA7CTIRicG_Vlg81z*LL=2PI(w^8dvQ|AA9)7H7zzAGivbJ$5T zbjyjOkF@$E29~K64${v5@2G+ycR4vJw`tAe+nS0t)&h~h!32w*2z27GRE1$UXMtmq z*>gA&tY6cfSEYN~U-kpyO*DDc#}^I?#a8RlA2i4|$m>e}OBk$bG-U{6YMA_iWZD*`(M~Lg4}?D z&vw#kN4uKk*8B*4mF8H+#1B$Up$fBc<`l-!Z@yzaPO;D=hJyp%mykGtNbk@ihGZV{ zv7vX)Zt0lai2PeB-jQNEjhTPj)w#9@Or;THV?$tvP`q|ef%ao zeJDBV$;Ko6rD9NxpaS=YOlUB2Wo7MFUqtK7+wtMO^*>=&UeAyeZ-yZ$pZuH9mmn<> zO3KLZer^UT5*c13*&iWDQM9-Yb4XWh9=7dIBkwAbz~z6=(!~sfZaUE<&)CD&kFTh94a=$mSd0jSeV%pu_3}ZpQUKvd(eXfh z8&TtaaZVrJL=A!W*xw?hI`2q^aVXR>-1zLeW8g;3Qm%Nd@sd-wTiM@aq3So^ zeYd=Wkd&sO8C+U*H|uRjy-KaQCCxZkOVl4y1~O$oRJ(4q!8Oxgq|Hw0ci20ZU$nJbetuyVoq>`fop5 z!pG`=J6ePuDd_Y}MDQ`mG6EUY*3@R8d3@fmQ}}$UKX#I^&O60SH3>Jqxm~07@t|7m zLuR;@p?9tk29R@P<7(+ON=zS~dqf9IL#5gLbCAALmq1Q#iEoLF2S3(*GK|>+d-w?@ z5Nx>g*vX?w))Z~vb-nA72uTvqko9}orZU#?Y2c21C;;*?@{D6M6#C|Rx|jlb;|>x` z+q26HZ4!kzppZM0a6@dcs?T&LfeLy=SMDpdkchROvuT6fple`+n%bGbviFR?z7a*g7%v~yX3Uy4r3YXIIT!$9xR>H}7+xN4xrMd(jrPS?w*uO4)KmhVI z1rAFmpm`~@idhdT4K{?B)gFfYO1sC*8;w20T&JX;t<+EjZfxuC=klWG9y7DCDCr~& zff4s3IQKa5_#W@QBQa_-qFPAI5E2`+g{E?Nl>=xU$Pofuz= z_u-Agiq8R#L5(J!qw47^7^Qm`m`O8}bYmC}+n{PtUKlQ%2nw=+i*qVPS{Uuw=z>chc%Zn$rtlY6|g%4VBaAZD=y3O45v2N&6}Igbhq=BWN7)>WPZNV z7Hl2-jERK_>#>?D`5>&P#QiU}7fEg(GAGdkqxk9dYgv!?*_v5301yFd9!ixY?^!-w z4HCFoY)e+^J!}7|6Hxf~yMU;W7mrk`Exe5l|LVRoZ>E_iHixqi5;`S+&&6>hUX>#P zw)uPMs}{vNY#THPz7%f~Jx~3{knH~ESMp*o-t&PsN{wk-HV$rEWdcF6z@spUo*Wzu ztVSReF8yDTxhM| zlm}!(9(rV{)QTALx{v=3mKhf^REz7K+jIu_dBtG7=9eu>1Oqh(KBzeiA%@QzD?@zK-^u2O@Bj8nIEmG*@Z;Lai8khf2r3C3cTqX+#_3s=1i_zBo`1hkFr`W|gk>m#isnP%)ttn2|P&?Ru`8N5k$NhS%X?+;~3D7Ji$ z6uTGC7!@8t=I#21L~kpn6RcM~PuyGu2;?UQrRP8{`8;#>xB5KE8e&$Gr%e5Cuy z*>5Mf!PF;k$Xwnvieb?C;$-;NO=REN#Agh`T{Rw>akWTR$fW>4OHDN*U;TIg`hqkl zYZCJnY7`1swcbNpn+j}gEXtfEohY*ezG?2Es)sbc*}PpD9EZx0!7N!wr)! zzR1v9@?jqj;>Ux=y!p34vWhj<6HCPFraj}@(MQ_RMD(mnpWKaKyNXw~l*Ac~!am0! zDAsoEQl}C}o4%-WK2{;FFPJ&H07%RK+ePqpI7Bm@%Wg#i-O^+hK++93d=71-)G!Vs zyQ&|ytWBSeUNB{=oT^(WiEBJ23`o&Er&-+DyVHrJL^&MoNNthxHKU`Wj8 z_Wr?OE*~#*W?=Nh_fM_QKo(sCRl^WGISigj~RJz;heB3%y*j?Re&Y z6eUVMZ6ipIe}qTXeSb#O9TF^<(A9xNzj53Kf8e|!jQ6tN7I3WA`Tn!W?P`v3kLsT` zkexD8*enDyCPod7icgPg6wG~*1?5+_aut9Qofv}Z^JgA<8-Zz;jMVgcpS7-r)udKd zFg|7C)bmQSGJt64CVBfO#li4ko9zUaYJ5IbtQrrhk zY3?2k|C+b#2U$s-2b3<@|jw4~c zV69G>88z~{=*RByHX(P(>(+FR-(7wD*j1E}(*>f$6dXd_dbW+vGP=>LIId-W zm3Eb{E8=g4H>d&iDnN>9O)=h)vTfLJYYr=YVp@x6sbv}K%XPb4ZFJKu8 zle?m)b-;da-MHub?zOeaJMhsrURm|{yk!r%qbAqNpRDp&%&*P7`E3p*-#f{B5*O;4 z{k-r2H?7OIM84MlX{S-sL7^!iLUR?3!T-CKq^+Dd{Da6p9(%722|B{+injg-7;UEH zM|H>#*O~~Uq;u8Q>&|o9&Ni_04GWfU4LG~W59BkBe(W*_>Im^^_Nmk)`Y?mTqt!28 z4_3wK?Z=9aMNkdQK1L@=YHn}c8UVp_aDQbuOc#Pp`W<}df_6~^6c9jss~n5VY?7?i z(|h&SLjkso_$i!VZjfrN<<*c~D`X#fT(^Us zIFm8}gHd+-R%WubmVF44g_E<;(6Ku>8~V{dKw=jPSpU0%jG|=<`miNmv0DrpsiwdzU;y)tU?s4A;ENLvID}N185|`1TGWV;8x+$a&q$Heo#V~9c|Vwv*-qTVlIUQf#(G@5G1==hgkiRU*31{ zR+bgTy(BSoettyYfQcGj6RA}a1qutoWB|^$c7j=ETnj04EH@*-2MSZ*6-jD>DGhXo z>Q?d<47A6NPTIho;O`oG=nk573%QZ458^_k3Xn4dc~%GBl_~@H;rX`sJ_^g)g`FT& z`K={#HqHwqXTHl?R3^bJ38$YPFv(!Dr?Ukg+;0Fd9MIDS9V5BSao!g<-Z>2bE+d~U zIy}V65HpmLaP`_9A>=OzJDt4$#<8YC1NF6Mw9mUr{P1d8iyJFI;mEMe-v!OO{(ILE znp%cbR`50?k7m4>0j>>Ty8wG^PJmv1R55xtMc4i$cFPwT_6_V$ET{qj7jhjWx}`Rg z1xF$(ytY1}o2N%KU_PD!SjB{#Bca}SGp@zHK)$rs?&^9hubftaff-1}|1OLhLZBk)NoM^BSM10lZZ(b1i{n+ML@ z53X+IA1_c|1p9++Wi=l<%c^`%T$a&UG(a+fh7nQ*DVP%%(V@z_%*wCI7j{^X2)S8r zUj{Xl7S*6b0Q}~v`8ps;_<63TY_1P7dLhz290MwV!i75KxeL@jDgIAJ5zFxrbTk2! zvf?qaZDGOA%L(0?S86n|jfqri?{E%Duw*;@AH> zl_k^v`vHoCVAO5=iNVkE#Gf?#|E@&bu?H@%;1jZM{qF~~z_FHbocT1x&K^ims^q-@ znKM>sKN0vFOEBs`K14w+gK>gl@Mw`+<@N&r!SZyC?KgmK{UM+Mf`1l++Wqb0w7TrP`nKWnH39<+v^@f%p0iFjP(J?f`UKBk3bI{ zB$iX5Wl0LDl|5mf%v6UF=wZMAcH<4G6$ZR;0O;>(nT-X2cCfQcYQfg~_t5{~fKVb> zSR=+N>jtQxX#$TrJ_4>g;L(54=3NjI zi}{@ya6>UK{(Bt}qgGI4RWR?3;E<~AHF%oX`Z*igw?$XZ=vW3( zw>LdY@-)m2lTP*WtnP{Kebs*G(qR7`Z`3P4&ioeU&wLCIwmd@$mXULF{lKFl5Q<{? c?=K1F9}a(%eHbPN{u4`HTIFT=i+6$lA2&y1{Qv*} literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index 5bf57ff..6282efa 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,18 +1,13 @@ -import 'dart:convert'; - import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:saphy/models/loginInfo.dart'; import 'package:saphy/screens/selling/splash_selling_screen.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/screens/welcome/signup_screen.dart'; import 'package:saphy/screens/welcome/welcome_screen.dart'; import 'package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart'; -import 'package:saphy/service/auth_service.dart'; -import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; -import 'package:saphy/utils/screen_controller.dart'; +import 'package:saphy/screens/screen_controller.dart'; void main() async { await dotenv.load(fileName: 'assets/config/.env'); @@ -38,7 +33,7 @@ class MyApp extends StatelessWidget { useMaterial3: true, ), debugShowCheckedModeBanner: false, - initialRoute: SplashSellingScreen.id, + initialRoute: WelcomeScreen.id, routes: { WelcomeScreen.id: (context) => const WelcomeScreen(), SignupScreen.id: (context) => const SignupScreen( diff --git a/lib/utils/screen_controller.dart b/lib/screens/screen_controller.dart similarity index 93% rename from lib/utils/screen_controller.dart rename to lib/screens/screen_controller.dart index c3bfca2..a396527 100644 --- a/lib/utils/screen_controller.dart +++ b/lib/screens/screen_controller.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:saphy/screens/selling/splash_selling_screen.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/screens/main/main_screen.dart'; import 'package:saphy/screens/products/liked_list_page.dart'; @@ -23,6 +24,7 @@ class ScreenControllerState extends State { final List _widgetOptions = [ const MainScreen(), const SearchScreen(), + const SplashSellingScreen(), const LikedListPage(), const MyPage(), ]; diff --git a/lib/screens/selling/end_selling_screen.dart b/lib/screens/selling/end_selling_screen.dart new file mode 100644 index 0000000..f6c5b50 --- /dev/null +++ b/lib/screens/selling/end_selling_screen.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/screens/screen_controller.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class EndSellingScreen extends StatefulWidget { + const EndSellingScreen({super.key}); + + @override + State createState() => _EndSellingScreenState(); +} + +class _EndSellingScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Padding( + padding: const EdgeInsets.only(top: 40.0, bottom: 10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'assets/images/congratulation.png', + width: 250.0, + ), + ], + ), + ), + const Text( + '판매 요청이\n완료되었어요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + textAlign: TextAlign.center, + ), + const Text( + '기기 수거를 위한 절차를 확인해볼까요?', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + textAlign: TextAlign.center, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '좋아요!', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => const ScreenController(), + ), + ); + }, + flag: true, + ), + ), + ], + ), + ); + } +} diff --git a/lib/screens/selling/flaw_screen.dart b/lib/screens/selling/flaw_screen.dart index cbf46ac..c88008b 100644 --- a/lib/screens/selling/flaw_screen.dart +++ b/lib/screens/selling/flaw_screen.dart @@ -1,4 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:saphy/screens/selling/rule_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; +import 'package:toggle_list/toggle_list.dart'; class FlawScreen extends StatefulWidget { const FlawScreen({super.key}); @@ -8,10 +13,132 @@ class FlawScreen extends StatefulWidget { } class _FlawScreenState extends State { + final _listSize = 6; + + List titles = [ + '판매하는 제품의 이름', + '액정 스크래치 혹은 파손', + '외관 스크래치 혹은 파손', + '배터리 효율', + '기능 파손(센서, 카메라, 버튼)', + '구매 시기', + '수리 여부', + ]; + @override Widget build(BuildContext context) { - return const Scaffold( - body: Center(child: Text('Flaw Screen')), + return Scaffold( + resizeToAvoidBottomInset: false, + body: Column( + children: [ + const Expanded( + flex: 1, + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + SizedBox( + width: 40.0, + ), + Text( + '더 자세한\n정보를 알려주세요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ], + ), + Row( + children: [ + SizedBox( + width: 45.0, + ), + Text( + '예상 판매 금액을 측정할 수 있어요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w400, + ), + ), + ], + ), + ], + ), + ), + Expanded( + flex: 3, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: ToggleList( + trailing: const Padding( + padding: + EdgeInsets.symmetric(horizontal: 20.0, vertical: 15.0), + child: Icon(FontAwesomeIcons.arrowDown), + ), + children: List.generate( + _listSize, + (index) => ToggleListItem( + leading: const Padding( + padding: EdgeInsets.all(10.0), + ), + itemDecoration: BoxDecoration( + color: gray100, + borderRadius: BorderRadius.circular(10.0), + ), + title: Text( + titles[index], + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + ), + divider: const Divider( + color: white, + ), + content: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: TextFormField( + decoration: const InputDecoration( + border: InputBorder.none, + ), + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + )), + ), + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 40.0, vertical: 30.0), + child: NormalButton( + title: '제출할게요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const RuleScreen(), + )); + }, + flag: true, + ), + ), + ], + ), ); } } diff --git a/lib/screens/selling/process_screen.dart b/lib/screens/selling/process_screen.dart index e41c0a9..f797cb6 100644 --- a/lib/screens/selling/process_screen.dart +++ b/lib/screens/selling/process_screen.dart @@ -1,6 +1,4 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:saphy/screens/selling/photo_screen.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/widgets/normal_button.dart'; @@ -16,17 +14,15 @@ class _ProcessScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - body: Column( - children: [ - const Expanded( - flex: 2, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SizedBox( - width: 40.0, - ), - Text( + body: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Padding( + padding: EdgeInsets.only(left: 20.0, top: 40.0, bottom: 100.0), + child: Text( '판매절차를\n알려드릴게요', style: TextStyle( fontFamily: 'Pretendard', @@ -35,50 +31,44 @@ class _ProcessScreenState extends State { fontWeight: FontWeight.w700, ), ), - ], - ), - ), - const Expanded( - flex: 3, - child: Column( - children: [ - Process( - number: '1', - content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', - ), - Process( - number: '2', - content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', - ), - Process( - number: '3', - content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', - ), - Process( - number: '4', - content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + const Process( + number: '1', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + const Process( + number: '2', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + const Process( + number: '3', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + const Process( + number: '4', + content: '사진 촬영 지침에 맞게 \n제품 사진 촬영하기!', + ), + const SizedBox(height: 100.0), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '확인했어요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const PhotoScreen(), + )); + }, + flag: true, ), - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 40.0), - child: NormalButton( - title: '확인했어요', - bgColor: black, - txtColor: white, - onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) => const PhotoScreen(), - )); - }, - flag: true, - ), + ), + const SizedBox( + height: 30.0, + ), + ], ), - const SizedBox( - height: 50.0, - ) - ], + ), ), ); } @@ -115,13 +105,15 @@ class Process extends StatelessWidget { const SizedBox( width: 20.0, ), - Text( - content, - style: const TextStyle( - fontFamily: 'Pretendard', - fontSize: 20.0, - color: black, - fontWeight: FontWeight.w600, + Expanded( + child: Text( + content, + style: const TextStyle( + fontFamily: 'Pretendard', + fontSize: 20.0, + color: black, + fontWeight: FontWeight.w600, + ), ), ), ], diff --git a/lib/screens/selling/rule_screen.dart b/lib/screens/selling/rule_screen.dart new file mode 100644 index 0000000..a6b7299 --- /dev/null +++ b/lib/screens/selling/rule_screen.dart @@ -0,0 +1,173 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/screens/selling/end_selling_screen.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class RuleScreen extends StatefulWidget { + const RuleScreen({super.key}); + + @override + State createState() => _RuleScreenState(); +} + +class _RuleScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Padding( + padding: EdgeInsets.only(left: 20.0, top: 40.0), + child: Text( + '검수 기준을\n확인해주세요', + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 40.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ), + const SizedBox(height: 20.0), + Container( + decoration: BoxDecoration( + color: gray100, + borderRadius: BorderRadius.circular(10.0), + ), + height: 2850.0, + child: const Text( + """ + + 전자기기 검수 기준 + 1. 외관 상태 + 검수 항목: 외관의 스크래치, 파손 여부 확인. + 세부 기준: + A 등급: 외관에 거의 결함이 없으며, 눈에 띄는 스크래치나 마모가 전혀 없음. + B 등급: 생활 스크래치로 취급될 정도로 작은 결함이 존재하나, 눈에 잘 띄지 않으며 기기의 전반적인 상태가 우수함. + C 등급: 중간 정도의 스크래치나 마모가 있으며, 사용 흔적이 명확히 드러남. 그러나 기기 사용에는 영향을 주지 않음. + D 등급: 깊은 스크래치나 눈에 띄는 파손이 있으며, 외관 상태가 전반적으로 좋지 않음. + E 등급: 외관이 심각하게 파손되었거나 부서진 상태로, 기기 사용에 영향을 줄 정도의 손상이 있음. + + 2. 액정 상태 + 검수 항목: 액정 스크래치, 깨짐 여부, 터치 기능 확인. + 세부 기준: + A 등급: 액정에 스크래치나 깨짐이 전혀 없으며, 화면의 밝기와 색상이 완벽하게 유지됨. 터치 기능이 정상적으로 작동. + B 등급: 미세한 스크래치가 있을 수 있으나, 사용 중 거의 인지되지 않음. 터치 기능과 화면 품질에 이상 없음. + C 등급: 액정에 가벼운 스크래치가 있거나, 터치 반응이 약간 둔할 수 있으나 사용에는 큰 문제가 없음. + D 등급: 액정에 중대한 스크래치가 있거나 터치 기능에 불량이 발생함. 화면의 일부가 깨졌으나 사용은 가능함. + E 등급: 액정이 크게 파손되어 화면 일부 또는 전체가 보이지 않거나 터치 기능이 거의 작동하지 않음. + + 3. 배터리 상태 + 검수 항목: 배터리 효율, 급격한 배터리 소모 여부. + 세부 기준: + A 등급: 배터리 효율이 90% 이상 유지되어, 거의 새 제품과 동일한 배터리 성능을 제공함. + B 등급: 배터리 효율이 80% 이상 유지되며, 일반적인 사용 환경에서 하루 이상 사용 가능함. + C 등급: 배터리 효율이 70% 이상이지만, 자주 충전이 필요하거나 장시간 사용에 불편함이 있을 수 있음. + D 등급: 배터리 효율이 60% 이하로 떨어져 있으며, 배터리 소모가 빠르고 충전 빈도가 높음. + E 등급: 배터리 성능이 매우 낮아 실사용이 어려울 정도로 자주 충전이 필요함. 배터리 교체가 필요한 상태. + + 4. 기능 상태 + 검수 항목: 주요 기능 (센서, 카메라, 버튼 등) 작동 여부 확인. + 세부 기준: + A 등급: 모든 기능이 완벽하게 작동하며, 기기의 모든 부품이 정상 작동함. + B 등급: 주요 기능이 대부분 정상 작동하며, 일부 부수적인 기능에만 미세한 문제가 있을 수 있음 (예: 특정 센서의 민감도 저하). + C 등급: 카메라, 버튼, 센서 등 일부 기능이 약간의 문제가 있거나, 사용에 불편함이 있을 수 있음. + D 등급: 주요 기능 중 하나 이상이 작동하지 않거나, 사용에 불편을 줄 수 있는 결함이 있음. + E 등급: 여러 주요 기능이 작동하지 않거나, 기기의 정상적인 사용이 어려울 정도로 기능이 파손됨. + + 5. 제품 이력 + 검수 항목: 구매 시기, 수리 여부 확인. + 세부 기준: + A 등급: 최근 1년 이내에 구매한 제품으로, 수리 이력이 없거나 경미한 수리만 있었으며 부품 교체가 없는 상태. + B 등급: 구매한 지 1~2년 이내로, 수리 이력이 있지만 공인 서비스 센터에서 진행되었으며 부품 교체가 없는 상태. + C 등급: 구매한 지 2~3년 이상 되었으며, 수리 이력이 있고 일부 부품이 교체되었으나 정상 작동하는 상태. + D 등급: 3년 이상 된 제품으로, 여러 번의 수리 이력이 있으며, 부품 교체가 이루어졌고 이후 정상 작동하지만 상태가 좋지 않은 제품. + E 등급: 수리 이력이 다수 존재하며, 수리 이후에도 문제가 발생하거나, 구매 시점이 오래되어 전반적인 성능과 상태가 떨어지는 제품. + + 최종 등급 평가 + 등급별 점수 환산 (소수점 적용) + A 등급: 5.0점 + B 등급: 4.0점 + C 등급: 3.0점 + D 등급: 2.0점 + E 등급: 1.0점 + 검수 항목별 점수 계산 + 각 검수 기준(외관 상태, 액정 상태, 배터리 상태, 기능 상태, 제품 이력)에서 각각의 점수를 부여한 후, 이 점수를 모두 합산하여 총점을 계산합니다. 계산된 총점에 따라 제품의 최종 등급이 결정됩니다. + + 최종 등급 산정 기준 + 총점에 따라 최종 제품 등급을 다음과 같이 산정합니다: + + A 등급: 23.5 ~ 25.0점 + B 등급: 18.5 ~ 23.4점 + C 등급: 13.5 ~ 18.4점 + D 등급: 8.5 ~ 13.4점 + E 등급: 5.0 ~ 8.4점 + 예시 + 예를 들어, 다음과 같은 검수 결과를 얻었다고 가정해보겠습니다: + + 외관 상태: B 등급 (4.0점) + 액정 상태: A 등급 (5.0점) + 배터리 상태: C 등급 (3.0점) + 기능 상태: B 등급 (4.0점) + 제품 이력: A 등급 (5.0점) + 이 경우 총점은 + 4.0+5.0+3.0+4.0+5.0=21.0점입니다. 따라서 이 제품의 최종 등급은 B 등급으로 평가됩니다. + + + 상품 보류 사유 + 제품이 위조품으로 의심되는 경우 + 검수 과정에서 제품이 정품이 아닐 가능성이 있는 경우, 거래 안전을 위해 제품 판매가 일시적으로 보류됩니다. 위조품 여부를 확인하기 위해 추가 검토가 필요합니다. + + 제품 상태가 심각하게 불량한 경우 + 제품의 기능이 거의 작동하지 않거나, 심각한 외관 손상이 있어 판매가 어려운 상태로 판단되는 경우, 보류됩니다. 이 경우 사용자는 추가 조치를 논의할 수 있습니다. + + 필수 정보 누락 또는 불충분한 경우 + 사용자가 제공한 제품 정보(사진, 구매 이력 등)가 불충분하거나 중요한 정보가 누락된 경우, 검수 및 판매 진행이 일시적으로 보류됩니다. 추가 정보 제공이 필요합니다. + + 제품의 수리가 필요하다고 판단되는 경우 + 검수 과정에서 제품이 정상적으로 작동하지 않으며, 수리가 필요한 것으로 판단되는 경우, 보류됩니다. 수리 여부와 방법에 대해 사용자와 협의가 이루어질 수 있습니다. + + 제품이 불법적인 또는 제한된 항목에 해당하는 경우 + 제품이 법적 규제를 받거나 판매가 제한된 품목으로 분류되는 경우, 판매 진행이 불가능하여 보류됩니다. 해당 제품은 즉시 반송됩니다. + """, + style: TextStyle( + fontFamily: 'Pretendard', + fontSize: 15.0, + color: black, + fontWeight: FontWeight.w700, + ), + ), + ), + const SizedBox(height: 20.0), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '확인했어요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).pushAndRemoveUntil( + MaterialPageRoute( + builder: (context) => const EndSellingScreen(), + ), + (Route route) => + false, // 이 predicate는 모든 이전 화면을 제거 + ); + }, + flag: true, + ), + ), + const SizedBox( + height: 30.0, + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/screens/selling/splash_selling_screen.dart b/lib/screens/selling/splash_selling_screen.dart index b7fb675..e96a3f6 100644 --- a/lib/screens/selling/splash_selling_screen.dart +++ b/lib/screens/selling/splash_selling_screen.dart @@ -22,6 +22,7 @@ class _SplashSellingScreenState extends State { child: Image.asset( fit: BoxFit.cover, 'assets/images/products.jpg', + width: MediaQuery.of(context).size.width, ), ), const Expanded( diff --git a/lib/screens/selling/term_screen.dart b/lib/screens/selling/term_screen.dart index 1dabc2d..5272a79 100644 --- a/lib/screens/selling/term_screen.dart +++ b/lib/screens/selling/term_screen.dart @@ -14,17 +14,15 @@ class _TermScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - body: Column( - children: [ - const Expanded( - flex: 2, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SizedBox( - width: 40.0, - ), - Text( + body: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Padding( + padding: EdgeInsets.only(left: 20.0, top: 40.0, bottom: 100.0), + child: Text( '이용약관에\n동의해주세요', style: TextStyle( fontFamily: 'Pretendard', @@ -33,51 +31,45 @@ class _TermScreenState extends State { fontWeight: FontWeight.w700, ), ), - ], - ), - ), - const Expanded( - flex: 3, - child: Column( - children: [ - Term( - content: '사용자는 판매하려는 제품에 대한 정확하고 정직한 정보를 제공해야 합니다.', - initial: false, - ), - Term( - content: '사진에 타인의 얼굴이나 개인정보가 포함되지 않도록 주의해야 합니다.', - initial: false, - ), - Term( - content: '금지된 품목을 사진에 포함하거나 게시하는 것은 엄격히 금지됩니다.', - initial: false, - ), - Term( - content: - '사진은 선명하고 제품의 상태를 명확히 보여줄 수 있어야 합니다. 흐리거나 제품의 상태를 왜곡하는 사진은 삭제될 수 있습니다.', - initial: false, + ), + const Term( + content: '사용자는 판매하려는 제품에 대한 정확하고 정직한 정보를 제공해야 합니다.', + initial: false, + ), + const Term( + content: '사진에 타인의 얼굴이나 개인정보가 포함되지 않도록 주의해야 합니다.', + initial: false, + ), + const Term( + content: '금지된 품목을 사진에 포함하거나 게시하는 것은 엄격히 금지됩니다.', + initial: false, + ), + const Term( + content: + '사진은 선명하고 제품의 상태를 명확히 보여줄 수 있어야 합니다. 흐리거나 제품의 상태를 왜곡하는 사진은 삭제될 수 있습니다.', + initial: false, + ), + const SizedBox(height: 200.0), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40.0), + child: NormalButton( + title: '확인했어요', + bgColor: black, + txtColor: white, + onTap: () { + Navigator.of(context).push(MaterialPageRoute( + builder: (context) => const ProcessScreen(), + )); + }, + flag: true, ), - ], - ), - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 40.0), - child: NormalButton( - title: '확인했어요', - bgColor: black, - txtColor: white, - onTap: () { - Navigator.of(context).push(MaterialPageRoute( - builder: (context) => const ProcessScreen(), - )); - }, - flag: true, - ), + ), + const SizedBox( + height: 30.0, + ), + ], ), - const SizedBox( - height: 50.0, - ) - ], + ), ), ); } @@ -109,12 +101,11 @@ class _TermState extends State { @override Widget build(BuildContext context) { return Padding( - padding: const EdgeInsets.only(top: 10.0), + padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - SizedBox( - width: MediaQuery.of(context).size.width / 2, + Expanded( child: Text( widget.content, maxLines: 3, diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index de3af43..c03e37f 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -3,12 +3,12 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:logger/web.dart'; +import 'package:saphy/screens/screen_controller.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/service/auth_service.dart'; import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/phone_input_formatter.dart'; -import 'package:saphy/utils/screen_controller.dart'; import 'package:saphy/widgets/normal_button.dart'; import 'package:saphy/widgets/sign_up_form.dart'; diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index 8e3d786..ae66782 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -13,7 +13,7 @@ import 'package:saphy/service/authentication/main_view_model.dart'; import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/log.dart'; -import 'package:saphy/utils/screen_controller.dart'; +import 'package:saphy/screens/screen_controller.dart'; import 'package:saphy/widgets/login_button.dart'; class WelcomeScreen extends StatefulWidget { diff --git a/lib/service/api_service.dart b/lib/service/api_service.dart index bb3dcc6..3b533a2 100644 --- a/lib/service/api_service.dart +++ b/lib/service/api_service.dart @@ -20,9 +20,9 @@ class APIService { // local -> 'http://10.0.2.2:8080/' String get baseUrl { if (kDebugMode) { - return 'http://3.36.34.122:8080/'; + return 'https://saphy.site/'; } else { - return 'http://3.36.34.122:8080/'; + return 'https://saphy.site/'; } } diff --git a/lib/service/auth_service.dart b/lib/service/auth_service.dart index 63257f1..9f511e2 100644 --- a/lib/service/auth_service.dart +++ b/lib/service/auth_service.dart @@ -12,8 +12,7 @@ Future loginService(String socialType, String email) async { contentType: 'application/json', ); - final responseData = response.data; - final statusCode = responseData['status']['code']; + final statusCode = response.data['status']['code']; logger.i('Status code: $statusCode'); if (response.statusCode == 200) { @@ -54,16 +53,15 @@ Future joinService( contentType: 'application/json', ); - final responseData = response.data; - final statusCode = responseData['status']['code']; + final statusCode = response.data['status']['code']; logger.i('Status code: $statusCode'); if (response.statusCode == 200) { logger.i('API call [joinService] successful: ${response.data}'); - final authorization = response.headers['Authorization']; - final jwt = authorization?[0].replaceFirst('Bearer ', ''); - await writeJwt(jwt); - logger.i('JWT : $jwt'); + // final authorization = response.headers['Authorization']; + // final jwt = authorization?[0].replaceFirst('Bearer ', ''); + // await writeJwt(jwt); + // logger.i('JWT : $jwt'); return statusCode; } else { logger.i('API call [loginService] failed: ${response.statusMessage}'); @@ -73,5 +71,3 @@ Future joinService( } return null; } - -autoLogin() {} diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index 24670ea..d6f4e5a 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class BottomNavBar extends StatelessWidget { final int currentIndex; @@ -20,7 +21,7 @@ class BottomNavBar extends StatelessWidget { onTap: onTap, items: const [ BottomNavigationBarItem( - icon: Icon(Icons.home), + icon: FaIcon(FontAwesomeIcons.house, size: 20.0), label: "홈", ), //BottomNavigationBarItem( @@ -28,16 +29,20 @@ class BottomNavBar extends StatelessWidget { // label: "수리센터", // ), BottomNavigationBarItem( - icon: Icon(Icons.search), + icon: FaIcon(FontAwesomeIcons.magnifyingGlass, size: 20.0), label: "탐색", ), BottomNavigationBarItem( - icon: Icon(Icons.favorite), + icon: FaIcon(FontAwesomeIcons.solidGem, size: 20.0), + label: "판매", + ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.solidHeart, size: 20.0), label: "찜 목록", ), BottomNavigationBarItem( - icon: Icon(Icons.person), - label: "나의 사피", + icon: FaIcon(FontAwesomeIcons.solidUser, size: 20.0), + label: "나의 사피", ), ], ); diff --git a/pubspec.lock b/pubspec.lock index d24cf8b..71a5a82 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -712,6 +712,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.28.0" + scroll_to_index: + dependency: transitive + description: + name: scroll_to_index + sha256: b707546e7500d9f070d63e5acf74fd437ec7eeeb68d3412ef7b0afada0b4f176 + url: "https://pub.dev" + source: hosted + version: "3.0.1" shared_preferences: dependency: transitive description: @@ -869,6 +877,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.0" + toggle_list: + dependency: "direct main" + description: + name: toggle_list + sha256: c1403fb7518d88495866ba083a1f8a9cfbe74f0764dc6f45246490dab11df414 + url: "https://pub.dev" + source: hosted + version: "0.3.1" typed_data: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 5a6e323..dd16e52 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,6 +49,7 @@ dependencies: firebase_core: ^2.24.2 firebase_auth: ^4.16.0 font_awesome_flutter: ^10.7.0 + toggle_list: ^0.3.1 dev_dependencies: flutter_test: From 32b8d29f94c79897386812ca323f46986a621b5b Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Fri, 16 Aug 2024 18:45:35 +0900 Subject: [PATCH 31/54] =?UTF-8?q?SAPHY-97=20Feat:=20=EA=B5=AC=EB=A7=A4=20?= =?UTF-8?q?=EC=A4=91=20=ED=99=94=EB=A9=B4=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/purchase/purchase_page.dart | 9 +- .../purchase/purchase_process_page.dart | 287 ++++++++++++++++++ 2 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 lib/screens/purchase/purchase_process_page.dart diff --git a/lib/screens/purchase/purchase_page.dart b/lib/screens/purchase/purchase_page.dart index 8dce6e5..1613f38 100644 --- a/lib/screens/purchase/purchase_page.dart +++ b/lib/screens/purchase/purchase_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:saphy/screens/purchase/purchase_process_page.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/widgets/normal_button.dart'; import 'package:saphy/widgets/purchase_info.dart'; @@ -102,7 +103,13 @@ class _PurchaseFooterState extends State { title: "구매하기", color: white, onTap: _isAgreed - ? () {} + ? () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => (const PurchaseProcessPage())), + ); + } : () { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('상품 정보를 확인해 주세요.')), diff --git a/lib/screens/purchase/purchase_process_page.dart b/lib/screens/purchase/purchase_process_page.dart new file mode 100644 index 0000000..f999206 --- /dev/null +++ b/lib/screens/purchase/purchase_process_page.dart @@ -0,0 +1,287 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/textstyles.dart'; +import 'package:saphy/widgets/normal_button.dart'; + +class PurchaseProcessPage extends StatefulWidget { + const PurchaseProcessPage({super.key}); + + @override + State createState() => _PurchaseProcessPageState(); +} + +class _PurchaseProcessPageState extends State { + List items = ["쿠폰이 없습니다"]; + String selectedValue = "쿠폰이 없습니다"; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: altWhite, + automaticallyImplyLeading: false, + centerTitle: false, + title: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Text("배송 / 결제", style: titleText()), + ), + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: Text("취소", style: bodyText()), + ), + ), + ], + ), + backgroundColor: altWhite, + body: CustomScrollView( + slivers: [ + _buildSpacer(10), + _buildProductInfo(), + _buildSpacer(20), + _buildAddressInfo(), + _buildSpacer(20), + _buildCouponInfo(), + _buildSpacer(20), + _buildPaymentInfo(), + _buildSpacer(20), + ], + ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.only(bottom: 40, left: 20, right: 20), + child: + NormalButton(title: "결제", color: black, onTap: () {}, flag: true), + ), + ); + } + + SliverToBoxAdapter _buildSpacer(double height) { + return SliverToBoxAdapter( + child: SizedBox( + height: height, + ), + ); + } + + SliverPadding _buildProductInfo() { + return SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverToBoxAdapter( + child: SizedBox( + height: 180, + width: double.infinity, + child: Row( + children: [ + Flexible( + flex: 3, + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Container( + decoration: const BoxDecoration( + color: Colors.white, + // 이미지 추가 시: + // image: DecorationImage( + // image: NetworkImage('image_url'), + // fit: BoxFit.cover, + // ), + ), + height: double.infinity, + ), + ), + ), + Flexible( + flex: 4, + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Iphone 14", style: subTitleText()), + Text("256GB, Black", style: bodyText()), + const Spacer(), + Text("1,000,000원", style: subTitleText()), + ], + ), + ), + ), + ], + ), + ), + ), + ); + } + + SliverPadding _buildAddressInfo() { + return SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverToBoxAdapter( + child: Container( + decoration: boxDecoration(), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + buildHeaderRow("배송 주소", "주소 변경하기", () {}), + const Divider(), + buildInfoRow("받는 분", "한유진"), + buildInfoRow("연락처", "01012345678"), + buildInfoRow("주소", "용인시 기흥구"), + ], + ), + ), + ), + ), + ); + } + + SliverPadding _buildCouponInfo() { + return SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverToBoxAdapter( + child: Container( + decoration: boxDecoration(), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + buildHeaderRow("할인 혜택", "쿠폰 받기", () {}), + const Divider(), + DropdownButtonFormField( + value: selectedValue, + items: items.map((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + onChanged: (String? newValue) { + setState(() { + selectedValue = newValue!; + }); + }, + style: const TextStyle( + color: Colors.black, + fontSize: 16, + ), + decoration: inputDecoration(), + dropdownColor: const Color(0xfff4f4f4), + isDense: true, + icon: const Icon( + Icons.arrow_downward, + color: Color(0xff9abcff), + ), + ), + ], + ), + ), + ), + ), + ); + } + + SliverPadding _buildPaymentInfo() { + return SliverPadding( + padding: const EdgeInsets.symmetric(horizontal: 20), + sliver: SliverToBoxAdapter( + child: Container( + decoration: boxDecoration(), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + buildHeaderRow("결제 수단", "결제 수단 추가", () {}), + const Divider(), + buildInfoRow("신한카드", "신한은행 7890"), + ], + ), + ), + ), + ), + ); + } + + Row buildInfoRow(String label, String value) { + const labelTextStyle = TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold, + ); + + const valueTextStyle = TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + ); + + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(label, style: labelTextStyle), + Text(value, style: valueTextStyle), + ], + ); + } + + Row buildHeaderRow(String label, String value, Function() onTap) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + label, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + InkWell( + onTap: onTap, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all(width: 0.5), + ), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 2, horizontal: 6), + child: Text(value), + ), + ), + ), + ], + ); + } + + InputDecoration inputDecoration() { + return InputDecoration( + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: const BorderSide( + color: Color.fromARGB(255, 229, 229, 229), + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: const BorderSide( + color: Color(0xff9abcff), + ), + ), + ); + } + + BoxDecoration boxDecoration() { + return BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ); + } +} From 8307cf2870a682d134fcd6ac78bcd7029fb937ab Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Fri, 16 Aug 2024 19:21:38 +0900 Subject: [PATCH 32/54] Refactor : TextStyle, NormalButton --- lib/utils/textstyles.dart | 32 ++++++++++++++++++++++++++++++++ lib/widgets/normal_button.dart | 6 ++++-- 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 lib/utils/textstyles.dart diff --git a/lib/utils/textstyles.dart b/lib/utils/textstyles.dart new file mode 100644 index 0000000..cc09391 --- /dev/null +++ b/lib/utils/textstyles.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +TextStyle titleText() { + return const TextStyle( + fontSize: 25, + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + ); +} + +TextStyle titleEngText() { + return const TextStyle( + fontSize: 30, + fontWeight: FontWeight.bold, + fontFamily: "Prompt", + ); +} + +TextStyle subTitleText() { + return const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + ); +} + +TextStyle bodyText() { + return const TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + ); +} diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index 9e7b7c2..55bb74e 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -8,11 +8,13 @@ class NormalButton extends StatelessWidget { required this.color, required this.onTap, required this.flag, + this.fontColor, }); final String title; final Color color; final bool flag; + final Color? fontColor; final Function() onTap; @override @@ -37,10 +39,10 @@ class NormalButton extends StatelessWidget { children: [ Text( title, - style: const TextStyle( + style: TextStyle( fontFamily: 'Pretendard', fontSize: 20.0, - color: black, + color: fontColor ?? black, fontWeight: FontWeight.bold), ), ], From 5b5dd30c9347f3747c0bf310430059fff3068446 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 20 Aug 2024 15:53:09 +0900 Subject: [PATCH 33/54] =?UTF-8?q?feat=20:=20SAPHY-122=20=EA=B5=AC=EB=A7=A4?= =?UTF-8?q?=20=ED=8C=90=EB=A7=A4=20=EC=B0=9C=EC=B6=94=EA=B0=80=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/products/product_detail_page.dart | 37 +++++++++++++------ lib/screens/purchase/purchase_page.dart | 3 +- .../purchase/purchase_process_page.dart | 8 +++- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/lib/screens/products/product_detail_page.dart b/lib/screens/products/product_detail_page.dart index 601d5a9..ce3c58e 100644 --- a/lib/screens/products/product_detail_page.dart +++ b/lib/screens/products/product_detail_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; +import 'package:saphy/screens/purchase/purchase_page.dart'; class ProductDetail extends StatelessWidget { final String productBrand; @@ -130,22 +131,34 @@ class ProductDetail extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.end, children: [ - const SizedBox( + SizedBox( height: 50, child: Center( - child: Icon(Icons.add), + child: IconButton( + icon: const Icon(Icons.add), + onPressed: () {}, + ), ), ), - Container( - width: 130, - height: 50, - decoration: BoxDecoration( - color: Colors.white, - border: Border.all(color: Colors.black), - borderRadius: BorderRadius.circular(10), - ), - child: const Center( - child: Text("구매"), + InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const PurchasePage()), + ); + }, + child: Container( + width: 130, + height: 50, + decoration: BoxDecoration( + color: Colors.white, + border: Border.all(color: Colors.black), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text("구매"), + ), ), ), Container( diff --git a/lib/screens/purchase/purchase_page.dart b/lib/screens/purchase/purchase_page.dart index 1613f38..357abfc 100644 --- a/lib/screens/purchase/purchase_page.dart +++ b/lib/screens/purchase/purchase_page.dart @@ -101,7 +101,8 @@ class _PurchaseFooterState extends State { const SizedBox(height: 10), NormalButton( title: "구매하기", - color: white, + bgColor: white, + txtColor: black, onTap: _isAgreed ? () { Navigator.push( diff --git a/lib/screens/purchase/purchase_process_page.dart b/lib/screens/purchase/purchase_process_page.dart index f999206..bb29987 100644 --- a/lib/screens/purchase/purchase_process_page.dart +++ b/lib/screens/purchase/purchase_process_page.dart @@ -53,8 +53,12 @@ class _PurchaseProcessPageState extends State { ), bottomNavigationBar: Padding( padding: const EdgeInsets.only(bottom: 40, left: 20, right: 20), - child: - NormalButton(title: "결제", color: black, onTap: () {}, flag: true), + child: NormalButton( + title: "결제", + bgColor: black, + onTap: () {}, + flag: true, + txtColor: white), ), ); } From 011b7944e70936372a00afaabd8a50f9122b4eda Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Thu, 29 Aug 2024 16:42:02 +0900 Subject: [PATCH 34/54] =?UTF-8?q?SAPHY-136=20=EC=83=81=ED=92=88=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=EA=B7=B8=EB=A6=AC=EB=93=9C=EB=B7=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 34 +++++++++++++++---------------- lib/utils/textstyles.dart | 8 ++++++++ lib/widgets/product_card.dart | 12 ++++------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index 0d9af04..19a88d6 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -14,6 +14,7 @@ class MainScreen extends StatefulWidget { class _MainScreenState extends State { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + final int productLength = 6; List productList = [ // 그냥 구현용 샘플 데이터 Product( @@ -120,26 +121,23 @@ class _MainScreenState extends State { ), ), SliverPadding( - sliver: SliverGrid( - delegate: SliverChildBuilderDelegate( - (context, index) { - return ProductCard( - productBrand: productList[index].productBrand ?? "", - productName: productList[index].productName ?? "", - productImageUrl: - productList[index].productImageUrl ?? "", - price: productList[index].price ?? 0); - }, - childCount: productList.length, - ), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - mainAxisSpacing: 15, - crossAxisSpacing: 15, - childAspectRatio: 0.7, + padding: const EdgeInsets.all(20), + sliver: SliverToBoxAdapter( + child: Wrap( + direction: Axis.horizontal, + alignment: WrapAlignment.spaceBetween, + spacing: 15, + runSpacing: 15, + children: [ + for (int i = 0; i < productLength; i++) + ProductCard( + productBrand: productList[i].productBrand ?? "", + productName: productList[i].productName ?? "", + productImageUrl: productList[i].productImageUrl ?? "", + price: productList[i].price ?? 0), + ], ), ), - padding: const EdgeInsets.all(20.0), ), ], ), diff --git a/lib/utils/textstyles.dart b/lib/utils/textstyles.dart index cc09391..9255948 100644 --- a/lib/utils/textstyles.dart +++ b/lib/utils/textstyles.dart @@ -30,3 +30,11 @@ TextStyle bodyText() { fontFamily: "Pretendard", ); } + +TextStyle bodyBoldText() { + return const TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + fontWeight: FontWeight.w600, + ); +} diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index 495f7f8..a2e62f0 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; import 'package:saphy/screens/products/product_detail_page.dart'; +import 'package:saphy/utils/textstyles.dart'; class ProductCard extends StatelessWidget { final String productBrand; @@ -35,6 +36,8 @@ class ProductCard extends StatelessWidget { ); }, child: Container( + width: 190, + height: 220, padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), @@ -62,6 +65,7 @@ class ProductCard extends StatelessWidget { Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ + Text(productName, style: bodyBoldText()), Text( productBrand, style: const TextStyle( @@ -69,14 +73,6 @@ class ProductCard extends StatelessWidget { fontSize: 10, ), ), - Text( - productName, - style: const TextStyle( - fontWeight: FontWeight.w600, - fontFamily: "Pretendard", - fontSize: 15, - ), - ), ], ), const SizedBox( From 3a8a8d6e48cea68f859b52f279dd654e1e04cce1 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Thu, 29 Aug 2024 18:43:15 +0900 Subject: [PATCH 35/54] =?UTF-8?q?design=20:=20=ED=99=88,=20=EC=B0=9C?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D,=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80,=20=EB=84=A4=EB=B9=84=EB=B0=94=20UI=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/SaphyLogoSmallWhite.png | Bin 0 -> 19082 bytes assets/images/notifications.png | Bin 0 -> 301 bytes lib/models/product.dart | 52 +- lib/screens/main/main_screen.dart | 259 +++-- lib/screens/mypage/mypage.dart | 977 +++++++++--------- lib/screens/products/liked_list_page.dart | 162 +-- .../purchase/purchase_process_page.dart | 8 +- lib/widgets/bottom_nav_bar.dart | 70 +- lib/widgets/product_card.dart | 24 +- 9 files changed, 823 insertions(+), 729 deletions(-) create mode 100644 assets/images/SaphyLogoSmallWhite.png create mode 100644 assets/images/notifications.png diff --git a/assets/images/SaphyLogoSmallWhite.png b/assets/images/SaphyLogoSmallWhite.png new file mode 100644 index 0000000000000000000000000000000000000000..b85158d7512bd7149fc9e6cad7e23fccab82ceab GIT binary patch literal 19082 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�AMQ;-XYK^Ogmr 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 literal 0 HcmV?d00001 diff --git a/assets/images/notifications.png b/assets/images/notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..0c07a15bdd65cde9cc253b27546616737e42e9e2 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-1!HlL zyA#8@b22Z19F}xPUq=Rpjs4tz5?O)#L!K^BR%neKJlNyf3}P%4roxXi6Kk=dlj z+;Gd%?uK^Nb2*`3X%{XA?b()~w&~W_w(vRJTWh2Q^VHv`*k7*|*J@z=s!?SB*kfmp zZTfbT{6)31b}U$)!}zjT!`)BtjQ74}^8>0&yPoO@c_a!)G&WS-?YR3_;;Nr-R^4Bg s{mrw@o9&maG%<=b json) { - productNo = int.parse(json['productNo']); - productBrand = json['productBrand']; - productName = json['productName']; - productImageUrl = json['productImageUrl']; + id = int.parse(json['id']); + brand = json['brand']; + name = json['name']; + description = json['description']; + color = json['color']; + storage = json['storage']; + grade = json['grade']; + imageUrl = json['imageUrl']; price = double.parse(json['price']); + stock = int.parse(json['stock']); } Map toJson() { final Map data = {}; - data['productNo'] = productNo; - data['productBrand'] = productBrand; - data['productName'] = productName; - data['productImageUrl'] = productImageUrl; + data['id'] = id; + data['brand'] = brand; + data['name'] = name; + data['description'] = description; + data['color'] = color; + data['storage'] = storage; + data['grade'] = grade; + data['imageUrl'] = imageUrl; data['price'] = price; + data['stock'] = stock; return data; } } diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index 19a88d6..e35a5cf 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -2,7 +2,8 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; -import 'package:saphy/widgets/app_bar.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/textstyles.dart'; import 'package:saphy/widgets/product_card.dart'; class MainScreen extends StatefulWidget { @@ -18,129 +19,189 @@ class _MainScreenState extends State { List productList = [ // 그냥 구현용 샘플 데이터 Product( - productNo: 1, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 1, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Black', + storage: '128GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 250000, + stock: 50, + ), Product( - productNo: 2, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 2, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'White', + storage: '128GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 250000, + stock: 45, + ), Product( - productNo: 3, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 3, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Blue', + storage: '256GB', + grade: 'B', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 270000, + stock: 40, + ), Product( - productNo: 4, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 4, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Red', + storage: '256GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 280000, + stock: 35, + ), Product( - productNo: 5, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 5, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Green', + storage: '128GB', + grade: 'C', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 240000, + stock: 30, + ), Product( - productNo: 6, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 6, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Pink', + storage: '512GB', + grade: 'B', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 290000, + stock: 20, + ), ]; @override Widget build(BuildContext context) { - return MaterialApp( - title: "Saphy", - debugShowCheckedModeBanner: false, - home: Scaffold( - backgroundColor: const Color(0xfff4f4f4), - appBar: const TopAppBar(), - body: CustomScrollView( - slivers: [ - SliverToBoxAdapter( - child: Container( - height: 280, - decoration: const BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider( - "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", - ), - fit: BoxFit.cover), - ), - ), - ), - const SliverToBoxAdapter( - child: SizedBox( - height: 20, + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + body: CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Container( + height: 575, + decoration: const BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider( + "https://i.pinimg.com/736x/cf/aa/d7/cfaad78b35a7b752054dd564b77f1f10.jpg", + ), + fit: BoxFit.cover), ), - ), - SliverToBoxAdapter( child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Container( - height: 100, - decoration: BoxDecoration( - color: const Color(0xffDFE1E6), - borderRadius: BorderRadius.circular(30)), - child: const Padding( - padding: EdgeInsets.symmetric( - horizontal: 30.0, - vertical: 20.0, + padding: const EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox( + height: 50, ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, + Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( - "중고기기를 안전하게 구매하는 방법", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 15, + Container( + height: 25, + width: 100, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage( + 'assets/images/SaphyLogoSmallWhite.png'), + fit: BoxFit.cover, + ), ), ), - Text( - "사피 초대하고 지원금 받기", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 25, - fontWeight: FontWeight.bold, + Container( + height: 25, + width: 25, + decoration: const BoxDecoration( + image: DecorationImage( + image: + AssetImage('assets/images/notifications.png'), + fit: BoxFit.cover, + ), ), ), ], ), - ), + const Spacer(), + const Text( + "Phone", + style: TextStyle(color: white, fontSize: 25), + ), + const Text( + "iPhone 15도\nSaphy에서.", + style: TextStyle( + color: white, + fontFamily: 'Pretendard', + fontWeight: FontWeight.bold, + fontSize: 50, + height: 1.2), + ), + const SizedBox( + height: 60, + ) + ], ), ), ), - SliverPadding( - padding: const EdgeInsets.all(20), - sliver: SliverToBoxAdapter( - child: Wrap( - direction: Axis.horizontal, - alignment: WrapAlignment.spaceBetween, - spacing: 15, - runSpacing: 15, - children: [ - for (int i = 0; i < productLength; i++) - ProductCard( - productBrand: productList[i].productBrand ?? "", - productName: productList[i].productName ?? "", - productImageUrl: productList[i].productImageUrl ?? "", - price: productList[i].price ?? 0), - ], - ), + ), + const SliverToBoxAdapter( + child: SizedBox( + height: 20, + ), + ), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 30.0), + child: Text("최근 확인한 상품", style: titleText()), + ), + ), + SliverPadding( + padding: const EdgeInsets.all(20), + sliver: SliverToBoxAdapter( + child: Wrap( + direction: Axis.horizontal, + alignment: WrapAlignment.spaceBetween, + spacing: 15, + runSpacing: 15, + children: [ + for (int i = 0; i < productLength; i++) + ProductCard( + brand: productList[i].brand ?? "", + name: productList[i].name ?? "", + imageUrl: productList[i].imageUrl ?? "", + price: productList[i].price ?? 0), + ], ), ), - ], - ), + ), + ], ), ); } diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index 7cfca54..7bb76ea 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -1,8 +1,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; import 'package:saphy/screens/mypage/edit_profile.dart'; import 'package:saphy/screens/mypage/setting.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/textstyles.dart'; class MyPage extends StatefulWidget { const MyPage({super.key}); @@ -15,529 +16,525 @@ class _MyPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xfff4f4f4), - appBar: AppBar( - backgroundColor: Colors.white, - title: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: Image.asset( - "assets/images/SaphyLogoSmall.png", - height: 24, + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + backgroundColor: altWhite, + centerTitle: true, + title: Text( + "마이페이지", + style: titleText(), ), - ), - centerTitle: false, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 20.0), - child: IconButton( - icon: const Icon(Icons.settings), - onPressed: () { - // 설정 페이지 이동 - Navigator.of(context).push( - CupertinoPageRoute( - builder: (context) => const SettingPage() - ) - ); - }, - ), - ), - ], - ), - body: SingleChildScrollView( - physics: const BouncingScrollPhysics(), - padding: const EdgeInsets.all(20.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - const Text( - "Profile", - style: TextStyle( - fontSize: 30, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.settings), + onPressed: () { + // 설정 페이지 이동 + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => const SettingPage())); + }, ), ), - Container( - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.white, - ), - padding: const EdgeInsets.all(20.0), - child: Column( - children: [ - const Row( - children: [ - CircleAvatar( - radius: 40, - backgroundImage: NetworkImage( - "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", - ), - ), - SizedBox(width: 20), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "홍길동", - style: TextStyle( - fontSize: 20, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - ), - ), - Text( - "gildong9403", - style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.grey, - ), + ], + ), + body: SingleChildScrollView( + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, + ), + padding: const EdgeInsets.all(20.0), + child: Column( + children: [ + const Row( + children: [ + CircleAvatar( + radius: 40, + backgroundImage: NetworkImage( + "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", ), - ], - ), - ], - ), - const SizedBox(height: 15), - InkWell( - onTap: (){ - Navigator.of(context).push( - CupertinoPageRoute( - builder: (context) => const EditProfile() - ) - ); - }, - child: Container( - padding: const EdgeInsets.only(top: 3, bottom: 3), - width: double.infinity, - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - border: Border.all( - color: Colors.black38, ), - ), - child: const Text("프로필 수정", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.w500, - color: Colors.black, - )), - ), - ) - ], - ), - ), - const SizedBox(height: 20), - Container( - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.white, - ), - padding: const EdgeInsets.all(20.0), - child: Column( - children: [ - Column( - children: [ - Row( - children: [ - const Text("배송/수거 상태", style: TextStyle( - fontSize: 20, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - const Spacer(), - // 더보기 - InkWell( - onTap: (){ - - }, - child:Container( - padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - border: Border.all( - color: Colors.black38, - ), + SizedBox(width: 20), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "홍길동", + style: TextStyle( + fontSize: 20, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, ), - child: const Text("더보기", style: TextStyle( - fontSize: 10, + ), + Text( + "gildong9403", + style: TextStyle( + fontSize: 15, fontFamily: "Pretendard", - color: Colors.black, - )), + color: Colors.grey, + ), ), - ) - ], - ), - const SizedBox(height: 15), - Container( + ], + ), + ], + ), + const SizedBox(height: 15), + InkWell( + onTap: () { + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => const EditProfile())); + }, + child: Container( + padding: const EdgeInsets.only(top: 3, bottom: 3), width: double.infinity, - padding: const EdgeInsets.all(10), + alignment: Alignment.center, decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("발송요청", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.green, - fontWeight: FontWeight.bold, - )), - ], - ), - Container( - width: 1, - height: 40, - color: Colors.black26, - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매대기", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매 중", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("정산완료", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], - ), - ], + border: Border.all( + color: Colors.black38, + ), ), - ) - ], + child: const Text("프로필 수정", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.w500, + color: Colors.black, + )), + ), + ) + ], + ), + ), + const SizedBox(height: 20), + Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, ), - const SizedBox(height: 20), - Column( + padding: const EdgeInsets.all(20.0), + child: Column( children: [ - Row( + Column( children: [ - const Text("기기 판매 내역", style: TextStyle( - fontSize: 20, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - const Spacer(), - // 더보기 - InkWell( - onTap: (){ - - }, - child:Container( - padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - border: Border.all( - color: Colors.black38, + Row( + children: [ + Text("배송/수거 상태", style: subTitleText()), + const Spacer(), + // 더보기 + InkWell( + onTap: () {}, + child: Container( + padding: const EdgeInsets.only( + top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", + style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), ), - ), - child: const Text("더보기", style: TextStyle( - fontSize: 10, - fontFamily: "Pretendard", - color: Colors.black, - )), - ), - ) - ], - ), - const SizedBox(height: 15), - Container( - width: double.infinity, - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("발송요청", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.green, - fontWeight: FontWeight.bold, - )), - ], - ), - Container( - width: 1, - height: 40, - color: Colors.black26, - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매대기", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매 중", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], + ) + ], + ), + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - Text("정산완료", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], + ), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), ], ), - ], - ), - ) - ], - ), - const SizedBox(height: 10), - InkWell( - onTap: (){ - - }, - child: Container( - width: double.infinity, - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.black54, + ) + ], ), - child: const Row( - mainAxisAlignment: MainAxisAlignment.start, + const SizedBox(height: 20), + Column( children: [ - Icon(Icons.post_add, color: Colors.white, size: 30), - SizedBox(width: 10), - Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, + Row( children: [ - Text("보관 신청하기", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.white, - fontWeight: FontWeight.bold, - )), - Text("한 번에 신청하고 한 번에 발송하세요.", style: TextStyle( - fontSize: 10, - fontFamily: "Pretendard", - color: Colors.white, - )), + Text("기기 판매 내역", style: subTitleText()), + const Spacer(), + // 더보기 + InkWell( + onTap: () {}, + child: Container( + padding: const EdgeInsets.only( + top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", + style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), + ), + ) ], ), - Spacer(), - Icon(Icons.arrow_forward_ios, color: Colors.white, size: 15), - ], - ), - ), - ), - const SizedBox(height: 20), - Column( - children: [ - Row( - children: [ - const Text("기기 구매 내역", style: TextStyle( - fontSize: 20, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - const Spacer(), - // 더보기 - InkWell( - onTap: (){ - - }, - child:Container( - padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - border: Border.all( - color: Colors.black38, + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], ), - ), - child: const Text("더보기", style: TextStyle( - fontSize: 10, - fontFamily: "Pretendard", - color: Colors.black, - )), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + ], ), ) ], ), - const SizedBox(height: 15), - Container( - width: double.infinity, - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, + const SizedBox(height: 10), + InkWell( + onTap: () {}, + child: Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.black54, + ), + child: const Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Icons.post_add, + color: Colors.white, size: 30), + SizedBox(width: 10), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("보관 신청하기", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.white, + fontWeight: FontWeight.bold, + )), + Text("한 번에 신청하고 한 번에 발송하세요.", + style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.white, + )), + ], + ), + Spacer(), + Icon(Icons.arrow_forward_ios, + color: Colors.white, size: 15), + ], + ), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("발송요청", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.green, - fontWeight: FontWeight.bold, - )), - ], - ), - Container( - width: 1, - height: 40, - color: Colors.black26, - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매대기", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], - ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text("판매 중", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), - ], + ), + const SizedBox(height: 20), + Column( + children: [ + Row( + children: [ + Text("기기 구매 내역", style: subTitleText()), + const Spacer(), + // 더보기 + InkWell( + onTap: () {}, + child: Container( + padding: const EdgeInsets.only( + top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", + style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), + ), + ) + ], + ), + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, ), - const Column( - crossAxisAlignment: CrossAxisAlignment.center, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - Text("정산완료", style: TextStyle( - fontSize: 13, - fontFamily: "Pretendard", - fontWeight: FontWeight.bold, - )), - Text("0", style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.black, - fontWeight: FontWeight.bold, - )), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], + ), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", + style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), ], ), - ], - ), - ) + ) + ], + ), ], - ), - ], - ) - ) - ], - ), - ) - ); + )) + ], + ), + )); } -} \ No newline at end of file +} diff --git a/lib/screens/products/liked_list_page.dart b/lib/screens/products/liked_list_page.dart index 2cda981..b53a0e0 100644 --- a/lib/screens/products/liked_list_page.dart +++ b/lib/screens/products/liked_list_page.dart @@ -2,9 +2,7 @@ import 'package:flutter/material.dart'; // import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; -import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; -import 'package:saphy/screens/main/main_screen.dart'; class LikedListPage extends StatefulWidget { const LikedListPage({super.key}); @@ -15,45 +13,87 @@ class LikedListPage extends StatefulWidget { class _LikedListPageState extends State { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + final int productLength = 6; List productList = [ // 그냥 구현용 샘플 데이터 - // 아직 좋아한거 띄우는건 못함 Product( - productNo: 1, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 1, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Black', + storage: '128GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 250000, + stock: 50, + ), Product( - productNo: 2, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 2, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'White', + storage: '128GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 250000, + stock: 45, + ), Product( - productNo: 3, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 3, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Blue', + storage: '256GB', + grade: 'B', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 270000, + stock: 40, + ), Product( - productNo: 4, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 4, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Red', + storage: '256GB', + grade: 'A', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 280000, + stock: 35, + ), Product( - productNo: 5, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 5, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Green', + storage: '128GB', + grade: 'C', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 240000, + stock: 30, + ), Product( - productNo: 6, - productBrand: "Apple", - productName: "Iphone 15", - productImageUrl: "https://picsum.photos/id/20/300/300", - price: 250000), + id: 6, + brand: "Apple", + name: "iPhone 13", + description: 'Latest iPhone model with A15 Bionic chip', + color: 'Pink', + storage: '512GB', + grade: 'B', + imageUrl: + 'https://i.pinimg.com/564x/f3/54/dc/f354dc1f040fc1fc4dfc4c436ad52159.jpg', + price: 290000, + stock: 20, + ), ]; @override @@ -73,9 +113,7 @@ class _LikedListPageState extends State { children: [ IconButton( icon: const Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, + onPressed: () {}, ), const SizedBox( width: 250, @@ -87,46 +125,24 @@ class _LikedListPageState extends State { ], ), ), - const SliverToBoxAdapter( - child: SizedBox( - height: 20, - ), - ), - const SliverToBoxAdapter( - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: 30.0, - ), - child: Text( - "Wish List", - style: TextStyle( - fontFamily: "Prompt", - fontSize: 30, - fontWeight: FontWeight.bold, - ), - ), - ), - ), SliverPadding( - sliver: SliverGrid( - delegate: SliverChildBuilderDelegate( - (context, index) { - return ProductCard( - productBrand: productList[index].productBrand ?? "", - productName: productList[index].productName ?? "", - productImageUrl: productList[index].productImageUrl ?? "", - price: productList[index].price ?? 0); - }, - childCount: productList.length, - ), - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - mainAxisSpacing: 15, - crossAxisSpacing: 15, - childAspectRatio: 0.84, + padding: const EdgeInsets.all(20), + sliver: SliverToBoxAdapter( + child: Wrap( + direction: Axis.horizontal, + alignment: WrapAlignment.spaceBetween, + spacing: 15, + runSpacing: 15, + children: [ + for (int i = 0; i < productLength; i++) + ProductCard( + brand: productList[i].brand ?? "", + name: productList[i].name ?? "", + imageUrl: productList[i].imageUrl ?? "", + price: productList[i].price ?? 0), + ], ), ), - padding: const EdgeInsets.all(20.0), ), ], ), diff --git a/lib/screens/purchase/purchase_process_page.dart b/lib/screens/purchase/purchase_process_page.dart index bb29987..880e362 100644 --- a/lib/screens/purchase/purchase_process_page.dart +++ b/lib/screens/purchase/purchase_process_page.dart @@ -236,13 +236,7 @@ class _PurchaseProcessPageState extends State { return Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( - label, - style: const TextStyle( - fontSize: 20, - fontWeight: FontWeight.bold, - ), - ), + Text(label, style: subTitleText()), InkWell( onTap: onTap, child: Container( diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index d6f4e5a..3805072 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; +import 'package:saphy/utils/colors.dart'; class BottomNavBar extends StatelessWidget { final int currentIndex; @@ -13,38 +14,43 @@ class BottomNavBar extends StatelessWidget { @override Widget build(BuildContext context) { - return BottomNavigationBar( - currentIndex: currentIndex, - backgroundColor: Colors.white, - selectedItemColor: const Color(0xff9abcff), - unselectedItemColor: Colors.black, - onTap: onTap, - items: const [ - BottomNavigationBarItem( - icon: FaIcon(FontAwesomeIcons.house, size: 20.0), - label: "홈", - ), - //BottomNavigationBarItem( - // icon: Icon(Icons.build), - // label: "수리센터", - // ), - BottomNavigationBarItem( - icon: FaIcon(FontAwesomeIcons.magnifyingGlass, size: 20.0), - label: "탐색", - ), - BottomNavigationBarItem( - icon: FaIcon(FontAwesomeIcons.solidGem, size: 20.0), - label: "판매", - ), - BottomNavigationBarItem( - icon: FaIcon(FontAwesomeIcons.solidHeart, size: 20.0), - label: "찜 목록", - ), - BottomNavigationBarItem( - icon: FaIcon(FontAwesomeIcons.solidUser, size: 20.0), - label: "나의 사피", - ), - ], + return SizedBox( + height: 70, + child: BottomNavigationBar( + type: BottomNavigationBarType.fixed, + elevation: 5, + currentIndex: currentIndex, + backgroundColor: white, + selectedItemColor: mainPrimary, + unselectedItemColor: altBlack, + onTap: onTap, + items: const [ + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.house, size: 20.0), + label: "홈", + ), + //BottomNavigationBarItem( + // icon: Icon(Icons.build), + // label: "수리센터", + // ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.magnifyingGlass, size: 20.0), + label: "탐색", + ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.solidGem, size: 20.0), + label: "판매", + ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.solidHeart, size: 20.0), + label: "찜 목록", + ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.solidUser, size: 20.0), + label: "나의 사피", + ), + ], + ), ); } } diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index a2e62f0..b111bf7 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -5,16 +5,16 @@ import 'package:saphy/screens/products/product_detail_page.dart'; import 'package:saphy/utils/textstyles.dart'; class ProductCard extends StatelessWidget { - final String productBrand; - final String productName; - final String productImageUrl; + final String brand; + final String name; + final String imageUrl; final double price; const ProductCard({ super.key, - required this.productBrand, - required this.productName, - required this.productImageUrl, + required this.brand, + required this.name, + required this.imageUrl, required this.price, }); @@ -27,9 +27,9 @@ class ProductCard extends StatelessWidget { context, MaterialPageRoute( builder: (context) => ProductDetail( - productBrand: productBrand, - productName: productName, - productImageUrl: productImageUrl, + productBrand: brand, + productName: name, + productImageUrl: imageUrl, price: price, ), ), @@ -50,7 +50,7 @@ class ProductCard extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), image: DecorationImage( - image: CachedNetworkImageProvider(productImageUrl), + image: CachedNetworkImageProvider(imageUrl), fit: BoxFit.cover, ), ), @@ -65,9 +65,9 @@ class ProductCard extends StatelessWidget { Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Text(productName, style: bodyBoldText()), + Text(name, style: bodyBoldText()), Text( - productBrand, + brand, style: const TextStyle( fontFamily: "Pretendard", fontSize: 10, From 6a70546b18cba2d4f6e6cc0adf40e6bf38284d59 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Fri, 30 Aug 2024 16:19:06 +0900 Subject: [PATCH 36/54] design: New welcome screen animation and design --- assets/images/LogoBig.png | Bin 6022 -> 0 bytes assets/images/LogoBig.svg | 7 + lib/screens/welcome/welcome_screen.dart | 268 +++++++++++++++--------- lib/utils/colors.dart | 1 + lib/widgets/login_button.dart | 1 - pubspec.lock | 72 +++++-- pubspec.yaml | 38 ++-- 7 files changed, 256 insertions(+), 131 deletions(-) delete mode 100644 assets/images/LogoBig.png create mode 100644 assets/images/LogoBig.svg diff --git a/assets/images/LogoBig.png b/assets/images/LogoBig.png deleted file mode 100644 index 15d933e7155bb0491acf83b804601c6559d82935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6022 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 + + + + + + diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart index ae66782..e30bbe7 100644 --- a/lib/screens/welcome/welcome_screen.dart +++ b/lib/screens/welcome/welcome_screen.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:saphy/models/loginInfo.dart'; @@ -15,6 +16,7 @@ import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/log.dart'; import 'package:saphy/screens/screen_controller.dart'; import 'package:saphy/widgets/login_button.dart'; +import 'package:simple_shadow/simple_shadow.dart'; class WelcomeScreen extends StatefulWidget { static String id = 'welcome_screen'; @@ -24,15 +26,58 @@ class WelcomeScreen extends StatefulWidget { State createState() => _WelcomeScreenState(); } -class _WelcomeScreenState extends State { +class _WelcomeScreenState extends State + with TickerProviderStateMixin { bool _isLoading = true; final kakaoViewModel = MainViewModel(KakaoLoginController()); final googleViewModel = MainViewModel(GoogleLoginController()); + late AnimationController _logoController; + late Animation _logoAnimation; + + final double _imageWidth = 1600.0; + final double _startPadding = 72.0; + @override void initState() { super.initState(); _autoLogin(); + + _logoController = AnimationController( + duration: const Duration(seconds: 150), + vsync: this, + )..repeat(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + double screenWidth = MediaQuery.of(context).size.width; + _logoAnimation = TweenSequence([ + TweenSequenceItem( + tween: Tween( + begin: _startPadding, + end: -_imageWidth, + ), + weight: 1, + ), + TweenSequenceItem( + tween: Tween( + begin: screenWidth, + end: -_imageWidth, + ), + weight: 1, + ), + ]).animate( + CurvedAnimation( + parent: _logoController, + curve: Curves.linear, + ), + ); + }); + } + + @override + void dispose() { + _logoController.dispose(); + super.dispose(); } Future _autoLogin() async { @@ -68,110 +113,139 @@ class _WelcomeScreenState extends State { } return Scaffold( + backgroundColor: newGray, body: Column( children: [ Expanded( - flex: 2, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Center(child: Image.asset('assets/images/LogoBig.png')), - const SizedBox( - height: 10.0, - ), - const Text( - 'electronics flea-market', - style: TextStyle( - fontFamily: 'Prompt-Thin', - fontSize: 20.0, - fontWeight: FontWeight.w100, - color: altBlack, - ), - ), - ], - )), - Expanded( - flex: 1, - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - LoginButton( - title: '구글 로그인', - logo: Image.asset( - 'assets/images/Google.png', - width: 20.0, - ), - color: white, - onTap: () async { - final GoogleSignInAccount user = - await googleViewModel.login(); - - final code = await loginService('GOOGLE', user.email); - - if (code == 200) { - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => const ScreenController(), - )); - } else if (code == 300) { - Navigator.of(context).pushReplacement( - MaterialPageRoute( - builder: (context) => SignupScreen( - socialType: 'GOOGLE', - userName: user.displayName, - userEmail: user.email, - userPhotoUrl: user.photoUrl, - ), + child: Stack( + children: [ + AnimatedBuilder( + animation: _logoAnimation, + builder: (context, child) { + return Positioned( + left: _logoAnimation.value, + top: 150.0, + child: SimpleShadow( + opacity: 0.25, + offset: const Offset(8, 15), + child: SvgPicture.asset( + 'assets/images/LogoBig.svg', + width: _imageWidth, + ), + ), + ); + }, + ), + Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + const Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'electronics flea-market, ', + style: TextStyle( + fontFamily: 'Prompt-Thin', + fontSize: 20.0, + fontWeight: FontWeight.w100, + color: white, ), - ); - } - }, - ), - const SizedBox(height: 5.0), - LoginButton( - title: '카카오 로그인', - logo: Image.asset( - 'assets/images/Kakao.png', + ), + Text( + ' Saphy', + style: TextStyle( + fontFamily: 'Prompt', + fontSize: 20.0, + fontWeight: FontWeight.w900, + color: white, + ), + ), + ], ), - color: systemKakao, - onTap: () async { - final User user = await kakaoViewModel.login(); - final code = await loginService( - 'KAKAO', - user.kakaoAccount!.email!, - ); - if (code == 200) { - //Login Success - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => const ScreenController(), - )); - } else if (code == 300) { - //Navigate register screen - Navigator.of(context).pushReplacement( - MaterialPageRoute( - builder: (context) => SignupScreen( - socialType: 'KAKAO', - userName: user.kakaoAccount?.profile?.nickname, - userEmail: user.kakaoAccount?.email, - userPhotoUrl: - user.kakaoAccount?.profile?.thumbnailImageUrl, + const SizedBox(height: 5.0), + LoginButton( + title: '구글 로그인', + logo: Image.asset( + 'assets/images/Google.png', + width: 20.0, + ), + color: white, + onTap: () async { + final GoogleSignInAccount user = + await googleViewModel.login(); + + final code = await loginService('GOOGLE', user.email); + + if (code == 200) { + Navigator.of(context) + .pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } else if (code == 300) { + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'GOOGLE', + userName: user.displayName, + userEmail: user.email, + userPhotoUrl: user.photoUrl, + ), ), - ), + ); + } + }, + ), + const SizedBox(height: 5.0), + LoginButton( + title: '카카오 로그인', + logo: Image.asset( + 'assets/images/Kakao.png', + ), + color: systemKakao, + onTap: () async { + final User user = await kakaoViewModel.login(); + final code = await loginService( + 'KAKAO', + user.kakaoAccount!.email!, ); - } - }, - ), - const SizedBox(height: 10.0), - const Text( - 'By tapping Sign in and using Saphy, \n you agree to our Terms and Privacy Policy.', - style: TextStyle( - fontFamily: 'Prompt-Regular', - fontWeight: FontWeight.w200, - color: altBlack, + if (code == 200) { + //Login Success + Navigator.of(context) + .pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } else if (code == 300) { + //Navigate register screen + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => SignupScreen( + socialType: 'KAKAO', + userName: user.kakaoAccount?.profile?.nickname, + userEmail: user.kakaoAccount?.email, + userPhotoUrl: user + .kakaoAccount?.profile?.thumbnailImageUrl, + ), + ), + ); + } + }, ), - textAlign: TextAlign.center, - ), - ], - )) + const SizedBox(height: 10.0), + const Text( + 'By tapping Sign in and using Saphy, \n you agree to our Terms and Privacy Policy.', + style: TextStyle( + fontFamily: 'Prompt-Regular', + fontWeight: FontWeight.w200, + color: white, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 40.0), + ], + ) + ], + ), + ), ], ), ); diff --git a/lib/utils/colors.dart b/lib/utils/colors.dart index 02e2040..b7a984c 100644 --- a/lib/utils/colors.dart +++ b/lib/utils/colors.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; // GrayScale +const Color newGray = Color(0xff404756); const Color txtPrimary = Color(0xff303136); // gray950 const Color gray900 = Color(0xff52535d); const Color gray800 = Color(0xff616272); diff --git a/lib/widgets/login_button.dart b/lib/widgets/login_button.dart index 2571196..b3c00fd 100644 --- a/lib/widgets/login_button.dart +++ b/lib/widgets/login_button.dart @@ -25,7 +25,6 @@ class LoginButton extends StatelessWidget { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), - side: const BorderSide(color: gray100, width: 1.0), padding: const EdgeInsets.symmetric( horizontal: 15.0, vertical: 15.0, diff --git a/pubspec.lock b/pubspec.lock index 18c8b9f..95d5e0c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -374,6 +374,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + url: "https://pub.dev" + source: hosted + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -556,18 +564,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -612,18 +620,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" octo_image: dependency: transitive description: @@ -648,6 +656,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.dev" + source: hosted + version: "1.0.1" path_provider: dependency: transitive description: @@ -832,6 +848,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.4.0" + simple_shadow: + dependency: "direct main" + description: + name: simple_shadow + sha256: "0c0872b2baffaf12fc91416643785a88081120bac61d704f3f9dbd7e712360fa" + url: "https://pub.dev" + source: hosted + version: "0.3.1" sky_engine: dependency: transitive description: flutter @@ -929,10 +953,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" toggle_list: dependency: "direct main" description: @@ -965,6 +989,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.4.2" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -977,10 +1025,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.4" watcher: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 33d32f2..b73b7f6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,47 +28,44 @@ environment: # the latest version available on pub.dev. To see which dependencies have newer # versions available, run `flutter pub outdated`. dependencies: - flutter: - sdk: flutter - flutter_dotenv: ^5.1.0 - intl: ^0.19.0 cached_network_image: ^3.3.1 + crypto: ^3.0.3 cupertino_icons: ^1.0.6 - google_sign_in: ^6.2.1 dio: ^5.5.0+1 - platform: ^3.1.5 - # shared_preferences: ^2.3.0 - crypto: ^3.0.3 encrypt: ^5.0.3 - kakao_flutter_sdk_user: ^1.9.0 - kakao_flutter_sdk_talk: ^1.9.0 + firebase_auth: ^4.16.0 + firebase_core: ^2.24.2 + flutter: + sdk: flutter + flutter_dotenv: ^5.1.0 + flutter_native_splash: ^2.4.1 flutter_secure_storage: ^9.2.2 - remedi_kopo: ^0.0.2 + flutter_svg: ^2.0.10+1 + font_awesome_flutter: ^10.7.0 + google_sign_in: ^6.2.1 + intl: ^0.19.0 + kakao_flutter_sdk_talk: ^1.9.0 + kakao_flutter_sdk_user: ^1.9.0 logger: ^2.4.0 + platform: ^3.1.5 pretty_dio_logger: ^1.4.0 - firebase_core: ^2.24.2 - firebase_auth: ^4.16.0 - font_awesome_flutter: ^10.7.0 + remedi_kopo: ^0.0.2 + simple_shadow: ^0.3.1 toggle_list: ^0.3.1 - flutter_native_splash: ^2.4.1 dev_dependencies: + flutter_lints: ^4.0.0 flutter_test: sdk: flutter - - - flutter_lints: ^4.0.0 json_serializable: ^6.8.0 flutter: uses-material-design: true - assets: - assets/config/.env - assets/images/ - fonts: - family: Pretendard fonts: @@ -90,6 +87,5 @@ flutter: - asset: assets/fonts/Prompt-Medium.ttf - asset: assets/fonts/Prompt-Regular.ttf - asset: assets/fonts/Prompt-Thin.ttf - # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages From 5907772142745f5d66400e96741c0b7746b033c0 Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Fri, 30 Aug 2024 17:11:45 +0900 Subject: [PATCH 37/54] design: Apply new desgin to signup and otp screen --- assets/images/LogoFixed.svg | 4 + lib/screens/welcome/otp_screen.dart | 222 +++++++++++++-------- lib/screens/welcome/signup_screen.dart | 266 +++++++++++++------------ lib/utils/otp_form.dart | 6 +- lib/widgets/normal_button.dart | 6 +- lib/widgets/sign_up_form.dart | 4 +- 6 files changed, 292 insertions(+), 216 deletions(-) create mode 100644 assets/images/LogoFixed.svg diff --git a/assets/images/LogoFixed.svg b/assets/images/LogoFixed.svg new file mode 100644 index 0000000..a138088 --- /dev/null +++ b/assets/images/LogoFixed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/lib/screens/welcome/otp_screen.dart b/lib/screens/welcome/otp_screen.dart index d66dc12..0d73127 100644 --- a/lib/screens/welcome/otp_screen.dart +++ b/lib/screens/welcome/otp_screen.dart @@ -2,6 +2,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_svg/svg.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/log.dart'; import 'package:saphy/utils/otp_form.dart'; @@ -44,93 +45,152 @@ class _OtpScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: newGray, resizeToAvoidBottomInset: false, - body: Form( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - '안전한 중고거래를 위해서!', - style: TextStyle( - fontFamily: 'Pretendard-Bold', - fontSize: 30.0, - fontWeight: FontWeight.w800, - color: altBlack, + body: Stack( + children: [ + Positioned( + top: 100, + left: -240, + child: Opacity( + opacity: 0.5, + child: SvgPicture.asset( + 'assets/images/LogoFixed.svg', + width: MediaQuery.of(context).size.width + 500.0, ), ), - const SizedBox( - height: 10.0, - ), - Text( - '${widget.phoneNumber}로 인증번호가 전송되었습니다.', - style: const TextStyle( - fontFamily: 'Pretendard-Medium', - fontSize: 20.0, - fontWeight: FontWeight.w400, - color: altBlack, + ), + Form( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const SizedBox(height: 10.0), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '안전한 중고거래를 위해서!', + style: TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 35.0, + fontWeight: FontWeight.w800, + color: white, + ), + ), + const SizedBox( + height: 10.0, + ), + Text( + '${widget.phoneNumber}로 인증번호가 전송되었습니다.', + style: const TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 20.0, + fontWeight: FontWeight.w400, + color: gray100, + ), + ), + const SizedBox( + height: 10.0, + ), + OtpForms( + controller1: _controller1, + controller2: _controller2, + controller3: _controller3, + controller4: _controller4, + controller5: _controller5, + controller6: _controller6), + ], + ), + Padding( + padding: const EdgeInsets.only(bottom: 20.0), + child: NormalButton( + title: "인증하기", + bgColor: mainPrimary, + txtColor: black, + flag: true, + onTap: () async { + logger.i(smsCode); + try { + final credential = PhoneAuthProvider.credential( + verificationId: widget.verificationId, + smsCode: smsCode); + await FirebaseAuth.instance + .signInWithCredential(credential) + .then((_) { + widget.onVerificationSuccess(); + Navigator.of(context).pop(); + }); + } catch (e) { + print(e); + } + }, + ), + ), + ], ), ), - const SizedBox( - height: 10.0, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - OtpForm( - controller: _controller1, - lastNode: false, - ), - OtpForm( - controller: _controller2, - lastNode: false, - ), - OtpForm( - controller: _controller3, - lastNode: false, - ), - OtpForm( - controller: _controller4, - lastNode: false, - ), - OtpForm( - controller: _controller5, - lastNode: false, - ), - OtpForm( - controller: _controller6, - lastNode: true, - ), - ], - ), - const SizedBox( - height: 20.0, - ), - NormalButton( - title: "인증하기", - bgColor: mainPrimary, - txtColor: black, - flag: true, - onTap: () async { - logger.i(smsCode); - try { - final credential = PhoneAuthProvider.credential( - verificationId: widget.verificationId, smsCode: smsCode); - await FirebaseAuth.instance - .signInWithCredential(credential) - .then((_) { - widget.onVerificationSuccess(); - Navigator.of(context).pop(); - }); - } catch (e) { - print(e); - } - }, - ), - ], + ), + ], + ), + ); + } +} + +class OtpForms extends StatelessWidget { + const OtpForms({ + super.key, + required TextEditingController controller1, + required TextEditingController controller2, + required TextEditingController controller3, + required TextEditingController controller4, + required TextEditingController controller5, + required TextEditingController controller6, + }) : _controller1 = controller1, + _controller2 = controller2, + _controller3 = controller3, + _controller4 = controller4, + _controller5 = controller5, + _controller6 = controller6; + + final TextEditingController _controller1; + final TextEditingController _controller2; + final TextEditingController _controller3; + final TextEditingController _controller4; + final TextEditingController _controller5; + final TextEditingController _controller6; + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + OtpForm( + controller: _controller1, + lastNode: false, + ), + OtpForm( + controller: _controller2, + lastNode: false, + ), + OtpForm( + controller: _controller3, + lastNode: false, + ), + OtpForm( + controller: _controller4, + lastNode: false, + ), + OtpForm( + controller: _controller5, + lastNode: false, + ), + OtpForm( + controller: _controller6, + lastNode: true, ), - )), + ], ); } } diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index c03e37f..4bd6778 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -2,11 +2,11 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/svg.dart'; import 'package:logger/web.dart'; import 'package:saphy/screens/screen_controller.dart'; import 'package:saphy/screens/welcome/otp_screen.dart'; import 'package:saphy/service/auth_service.dart'; -import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/utils/colors.dart'; import 'package:saphy/utils/phone_input_formatter.dart'; import 'package:saphy/widgets/normal_button.dart'; @@ -67,134 +67,153 @@ class _SignupScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( + backgroundColor: newGray, resizeToAvoidBottomInset: false, - body: Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 40.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const Text( - '환영합니다!', - style: TextStyle( - fontFamily: 'Pretendard-Bold', - fontSize: 50.0, - fontWeight: FontWeight.w800, - color: altBlack, - ), + body: Stack( + children: [ + Positioned( + top: 100, + left: -240, + child: Opacity( + opacity: 0.5, + child: SvgPicture.asset( + 'assets/images/LogoFixed.svg', + width: MediaQuery.of(context).size.width + 500.0, ), - const Text( - '서비스 이용에 필요한 정보를 입력해주세요', - style: TextStyle( - fontFamily: 'Pretendard-Medium', - fontSize: 20.0, - fontWeight: FontWeight.w400, - color: altBlack, - ), - ), - const SizedBox( - height: 20.0, - ), - SignUpForm( - textEditingController: _nameController, - readOnly: true, - formatter: const [], - initialValue: userName ?? '', - labelText: '어떻게 불러드릴까요?', - ), - SignUpForm( - textEditingController: _emailController, - readOnly: true, - formatter: const [], - initialValue: userEmail ?? '', - labelText: '이메일을 알려주세요', - ), - SignUpForm( - textEditingController: _phoneController, - readOnly: phoneAuth, - formatter: [ - FilteringTextInputFormatter.digitsOnly, - LengthLimitingTextInputFormatter(11), - PhoneInputFormatter(), - ], - initialValue: userPhoneNumber, - labelText: '전화번호를 알려주세요', - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 100.0), - child: NormalButton( - title: "인증번호 전송", - bgColor: phoneAuth ? gray300 : mainPrimary, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const SizedBox(height: 30.0), + formWidget(context), + Padding( + padding: const EdgeInsets.only(bottom: 20.0), + child: NormalButton( + title: '사피 시작하기', + bgColor: phoneAuth ? mainPrimary : gray400, txtColor: black, - flag: !phoneAuth, + flag: phoneAuth, onTap: () async { - String phoneNumber = _phoneController.text.trim(); - String formattedNumber = ''; - if (phoneNumber.isNotEmpty) { - // '-'를 제거하고, 앞에 +82를 붙임 - formattedNumber = phoneNumber - .replaceAll('-', '') // '-' 제거 - .replaceFirst( - '010', '+8210'); // '010'을 '+8210'으로 변환 + logger.i( + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} /', + ); + final code = await joinService( + widget.socialType!, + _emailController.text, + _nameController.text, + _phoneController.text, + ); + if (code == 200) { + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); } - logger.i(formattedNumber); - await FirebaseAuth.instance.verifyPhoneNumber( + }, + ), + ) + ], + ), + ) + ], + ), + ); + } + + Column formWidget(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '안녕하세요!', + style: TextStyle( + fontFamily: 'Pretendard-Bold', + fontSize: 50.0, + fontWeight: FontWeight.w800, + color: white, + ), + ), + const Text( + '서비스 이용에 필요한 정보를 입력해주세요', + style: TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 20.0, + fontWeight: FontWeight.w400, + color: gray100, + ), + ), + const SizedBox( + height: 20.0, + ), + SignUpForm( + textEditingController: _nameController, + readOnly: true, + formatter: const [], + initialValue: userName ?? '', + labelText: '어떻게 불러드릴까요?', + ), + SignUpForm( + textEditingController: _emailController, + readOnly: true, + formatter: const [], + initialValue: userEmail ?? '', + labelText: '이메일을 알려주세요', + ), + SignUpForm( + textEditingController: _phoneController, + readOnly: phoneAuth, + formatter: [ + FilteringTextInputFormatter.digitsOnly, + LengthLimitingTextInputFormatter(11), + PhoneInputFormatter(), + ], + initialValue: userPhoneNumber, + labelText: '전화번호를 알려주세요', + ), + NormalButton( + title: "인증번호 전송", + bgColor: phoneAuth ? gray300 : mainPrimary, + txtColor: black, + flag: !phoneAuth, + onTap: () async { + String phoneNumber = _phoneController.text.trim(); + String formattedNumber = ''; + if (phoneNumber.isNotEmpty) { + // '-'를 제거하고, 앞에 +82를 붙임 + formattedNumber = phoneNumber + .replaceAll('-', '') // '-' 제거 + .replaceFirst('010', '+8210'); // '010'을 '+8210'으로 변환 + } + logger.i(formattedNumber); + await FirebaseAuth.instance.verifyPhoneNumber( + phoneNumber: formattedNumber, + verificationCompleted: (PhoneAuthCredential) {}, + verificationFailed: (error) { + logger.i(error); + }, + codeSent: (verificationId, forceResendingToken) { + //if code is send successfully then nevigate to next screen + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => OtpScreen( + verificationId: verificationId, phoneNumber: formattedNumber, - verificationCompleted: (PhoneAuthCredential) {}, - verificationFailed: (error) { - logger.i(error); + onVerificationSuccess: () { + setState(() { + phoneAuth = true; + userPhoneNumber = _phoneController.text; + }); }, - codeSent: (verificationId, forceResendingToken) { - //if code is send successfully then nevigate to next screen - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => OtpScreen( - verificationId: verificationId, - phoneNumber: formattedNumber, - onVerificationSuccess: () { - setState(() { - phoneAuth = true; - userPhoneNumber = _phoneController.text; - }); - }, - ), - ), - ); - }, - codeAutoRetrievalTimeout: (verificationId) {}, - ); - }), - ), - const SizedBox( - height: 50.0, - ), - NormalButton( - title: '사피 시작하기', - bgColor: phoneAuth ? mainPrimary : gray400, - txtColor: black, - flag: phoneAuth, - onTap: () async { - logger.i( - '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} /', + ), + ), ); - final code = await joinService( - widget.socialType!, - _emailController.text, - _nameController.text, - _phoneController.text, - ); - if (code == 200) { - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => const ScreenController(), - )); - } }, - ) - ], - ), - ), - ), + codeAutoRetrievalTimeout: (verificationId) {}, + ); + }), + ], ); } } @@ -205,13 +224,6 @@ class _SignupScreenState extends State { - - - - - - - // final TextEditingController _postcodeController = TextEditingController(); // final TextEditingController _addressController = TextEditingController(); // final TextEditingController _addressDetailController = diff --git a/lib/utils/otp_form.dart b/lib/utils/otp_form.dart index 528b9a9..ec88118 100644 --- a/lib/utils/otp_form.dart +++ b/lib/utils/otp_form.dart @@ -30,14 +30,14 @@ class OtpForm extends StatelessWidget { }, decoration: InputDecoration( enabledBorder: OutlineInputBorder( - borderSide: const BorderSide(color: mainPrimary, width: 2.0), + borderSide: const BorderSide(color: gray100, width: 2.0), borderRadius: BorderRadius.circular(10.0), ), focusedBorder: OutlineInputBorder( - borderSide: const BorderSide(color: mainPrimary, width: 2.0), + borderSide: const BorderSide(color: gray100, width: 2.0), borderRadius: BorderRadius.circular(10.0), )), - cursorColor: main500, + cursorColor: gray100, cursorHeight: 50.0, textAlign: TextAlign.center, textAlignVertical: TextAlignVertical.center, diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index 4227e37..0cd4220 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -9,14 +9,12 @@ class NormalButton extends StatelessWidget { required this.txtColor, required this.onTap, required this.flag, - this.fontColor, }); final String title; final Color bgColor; final Color txtColor; final bool flag; - final Color? fontColor; final Function() onTap; @override @@ -27,7 +25,7 @@ class NormalButton extends StatelessWidget { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10.0), ), - side: const BorderSide(color: black, width: 1.0), + side: BorderSide(color: bgColor, width: 1.0), padding: const EdgeInsets.symmetric( horizontal: 15.0, vertical: 15.0, @@ -44,7 +42,7 @@ class NormalButton extends StatelessWidget { style: TextStyle( fontFamily: 'Pretendard', fontSize: 20.0, - color: fontColor ?? black, + color: flag ? txtColor : txtSecondary, fontWeight: FontWeight.bold), ), ], diff --git a/lib/widgets/sign_up_form.dart b/lib/widgets/sign_up_form.dart index b95f4cb..c3aa9c3 100644 --- a/lib/widgets/sign_up_form.dart +++ b/lib/widgets/sign_up_form.dart @@ -28,7 +28,9 @@ class SignUpForm extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(10.0), - color: readOnly ? gray500 : gray200, + color: readOnly + ? const Color.fromARGB(200, 160, 163, 180) + : const Color.fromARGB(200, 223, 225, 230), ), child: Padding( padding: const EdgeInsets.only(left: 10.0), From 5178a81187487b59ec3a1af5568be675a80f940f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 17:28:23 +0900 Subject: [PATCH 38/54] Create reviewer-lottery.yml --- .github/reviewer-lottery.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/reviewer-lottery.yml diff --git a/.github/reviewer-lottery.yml b/.github/reviewer-lottery.yml new file mode 100644 index 0000000..53f1249 --- /dev/null +++ b/.github/reviewer-lottery.yml @@ -0,0 +1,18 @@ +groups: + - name: boroboro01 + reviewers: 1 + usernames: + - DURAM0830 + - cho4u4o +groups: + - name: DURAM0830 + reviewers: 1 + usernames: + - boroboro01 + - cho4u4o +groups: + - name: cho4u4o + reviewers: 1 + usernames: + - DURAM0830 + - boroboro01 From 152abbc660f07570e0b92914d1a7ea4f55b0f9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 17:29:11 +0900 Subject: [PATCH 39/54] Create reviewer.yml --- .github/workflows/reviewer.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/reviewer.yml diff --git a/.github/workflows/reviewer.yml b/.github/workflows/reviewer.yml new file mode 100644 index 0000000..49e5912 --- /dev/null +++ b/.github/workflows/reviewer.yml @@ -0,0 +1,14 @@ +name: "Reviewer lottery" + +on: + pull_request_target: + types: [opened, ready_for_review, reopened] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: uesteibar/reviewer-lottery@v3 + with: + repo-token: ${{ secrets.MY_TOKEN }} From 49f28c1f6afe2bd3ff19602f77494d1bee6fa166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 17:29:37 +0900 Subject: [PATCH 40/54] Create build.yml --- .github/workflows/build.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a31048f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Flutter + +on: + push: + branches: [ "main", "develop"] + pull_request: + branches: [ "main", "develop"] + +jobs: + flutter_job: + + # The machine, we can also use windows-latest or ubuntu-latest + # We are choosing macos-latest because we will be also building for iOS + runs-on: macos-latest + + steps: + + # Clones the project on the machine + - uses: actions/checkout@v4 + + # Installs flutter and related dependency on this machine + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: 'stable' + # flutter-version: '3.16.8' + # ^ If you want to use a specific version of flutter + + # Fetches proj dependencies from pub + - name: Install dependencies + run: flutter pub get + # ^ If you want to use a specific version of flutter From f554f4d43ec7c8bc08e90fe5c5c4162091783805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 17:31:44 +0900 Subject: [PATCH 41/54] Update reviewer-lottery.yml --- .github/reviewer-lottery.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/reviewer-lottery.yml b/.github/reviewer-lottery.yml index 53f1249..8c1698a 100644 --- a/.github/reviewer-lottery.yml +++ b/.github/reviewer-lottery.yml @@ -4,13 +4,13 @@ groups: usernames: - DURAM0830 - cho4u4o -groups: + - name: DURAM0830 reviewers: 1 usernames: - boroboro01 - cho4u4o -groups: + - name: cho4u4o reviewers: 1 usernames: From 3a174daa83440687afc674f5e4e2599abd52dfae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 17:57:29 +0900 Subject: [PATCH 42/54] Create reviewer-roulette.yml --- .github/workflows/reviewer-roulette.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/reviewer-roulette.yml diff --git a/.github/workflows/reviewer-roulette.yml b/.github/workflows/reviewer-roulette.yml new file mode 100644 index 0000000..8a297d3 --- /dev/null +++ b/.github/workflows/reviewer-roulette.yml @@ -0,0 +1,18 @@ +name: "Reviewer Roulette" + +on: + pull_request_target: + types: [opened, ready_for_review, reopened] + +jobs: + example_assign_reviews: + runs-on: ubuntu-latest + name: An example job to assign reviewers + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Assign random reviewers to PR + uses: ihs7/action-reviewer-roulette@v1 + with: + number-of-reviewers: 1 From 4e7baf0ed56909384b09f5ccb05e92ad83a80853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 18:09:40 +0900 Subject: [PATCH 43/54] Update reviewer-roulette.yml --- .github/workflows/reviewer-roulette.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/reviewer-roulette.yml b/.github/workflows/reviewer-roulette.yml index 8a297d3..149d983 100644 --- a/.github/workflows/reviewer-roulette.yml +++ b/.github/workflows/reviewer-roulette.yml @@ -6,8 +6,15 @@ on: jobs: example_assign_reviews: + runs-on: ubuntu-latest + + permissions: + contents: read + pull-requests: write + name: An example job to assign reviewers + steps: - name: Checkout uses: actions/checkout@v4 From e56d514c468a8a4e77718a35c07bf94c923b357a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=9C=E3=83=AD=E3=83=9C=E3=83=AD?= Date: Fri, 30 Aug 2024 18:31:21 +0900 Subject: [PATCH 44/54] Update reviewer-roulette.yml --- .github/workflows/reviewer-roulette.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/reviewer-roulette.yml b/.github/workflows/reviewer-roulette.yml index 149d983..1baed81 100644 --- a/.github/workflows/reviewer-roulette.yml +++ b/.github/workflows/reviewer-roulette.yml @@ -9,9 +9,7 @@ jobs: runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write + permissions: write-all name: An example job to assign reviewers From 6d7ae0ec1bd32de3124b2fe25b6290738320f33d Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Sat, 31 Aug 2024 17:33:30 +0900 Subject: [PATCH 45/54] feat: add logout function --- .github/reviewer-lottery.yml | 18 ----- .github/workflows/reviewer.yml | 14 ---- lib/main.dart | 1 + lib/screens/mypage/setting.dart | 72 +++++++++++++------ lib/screens/screen_controller.dart | 1 + lib/screens/welcome/signup_screen.dart | 49 ++++++------- .../authentication/main_view_model.dart | 5 ++ lib/widgets/normal_button.dart | 2 +- lib/widgets/sign_up_form.dart | 2 +- 9 files changed, 82 insertions(+), 82 deletions(-) delete mode 100644 .github/reviewer-lottery.yml delete mode 100644 .github/workflows/reviewer.yml diff --git a/.github/reviewer-lottery.yml b/.github/reviewer-lottery.yml deleted file mode 100644 index 8c1698a..0000000 --- a/.github/reviewer-lottery.yml +++ /dev/null @@ -1,18 +0,0 @@ -groups: - - name: boroboro01 - reviewers: 1 - usernames: - - DURAM0830 - - cho4u4o - - - name: DURAM0830 - reviewers: 1 - usernames: - - boroboro01 - - cho4u4o - - - name: cho4u4o - reviewers: 1 - usernames: - - DURAM0830 - - boroboro01 diff --git a/.github/workflows/reviewer.yml b/.github/workflows/reviewer.yml deleted file mode 100644 index 49e5912..0000000 --- a/.github/workflows/reviewer.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: "Reviewer lottery" - -on: - pull_request_target: - types: [opened, ready_for_review, reopened] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: uesteibar/reviewer-lottery@v3 - with: - repo-token: ${{ secrets.MY_TOKEN }} diff --git a/lib/main.dart b/lib/main.dart index 6282efa..acc36ab 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -48,6 +48,7 @@ class MyApp extends StatelessWidget { onVerificationSuccess: () {}, ), SplashSellingScreen.id: (context) => const SplashSellingScreen(), + ScreenController.id: (context) => const ScreenController(), }, ); } diff --git a/lib/screens/mypage/setting.dart b/lib/screens/mypage/setting.dart index 1517378..3261d82 100644 --- a/lib/screens/mypage/setting.dart +++ b/lib/screens/mypage/setting.dart @@ -1,6 +1,13 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:saphy/screens/mypage/setting_page/login_info.dart'; +import 'package:saphy/screens/welcome/welcome_screen.dart'; +import 'package:saphy/service/authentication/google_login_controller.dart'; +import 'package:saphy/service/authentication/kakao_login_controller.dart'; +import 'package:saphy/service/authentication/main_view_model.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/log.dart'; +import 'package:saphy/widgets/normal_button.dart'; import '../../widgets/setting_menu.dart'; class SettingPage extends StatefulWidget { @@ -16,84 +23,105 @@ class _SettingPageState extends State { return Scaffold( backgroundColor: Colors.white, appBar: AppBar( - title: const Text("설정", style: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20,fontFamily: "Pretendard")), + title: const Text("설정", + style: TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + fontSize: 20, + fontFamily: "Pretendard")), backgroundColor: Colors.white, centerTitle: true, ), body: SingleChildScrollView( - physics: BouncingScrollPhysics(), - padding: EdgeInsets.all(20.0), + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.all(20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( + const Text( "일반", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), - SizedBox( + const SizedBox( height: 10, ), SettingMenu( title: "로그인 정보", icon: Icons.info_outline, - onTap: (){ - Navigator.of(context).push( - CupertinoPageRoute( - builder: (context) => const LoginInfo() - ) - ); + onTap: () { + Navigator.of(context).push(CupertinoPageRoute( + builder: (context) => const LoginInfo())); }, ), - SettingMenu( + const SettingMenu( title: "주소록", icon: Icons.list_alt, onTap: null, ), - SettingMenu( + const SettingMenu( title: "결제 정보", icon: Icons.credit_card, onTap: null, ), - SettingMenu( + const SettingMenu( title: "판매 정산 계좌", icon: Icons.monetization_on_outlined, onTap: null, ), - SettingMenu( + const SettingMenu( title: "현금영수증 정보", icon: Icons.receipt_long, onTap: null, ), - SettingMenu( + const SettingMenu( title: "알림", icon: Icons.notifications_none, onTap: null, ), - SizedBox( + const SizedBox( height: 20, ), - Text( + const Text( "정보", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), - SizedBox( + const SizedBox( height: 10, ), - SettingMenu( + const SettingMenu( title: "이용약관", icon: Icons.list_alt_sharp, onTap: null, ), - SettingMenu( + const SettingMenu( title: "개인정보처리방침", icon: Icons.security, onTap: null, ), - SettingMenu( + const SettingMenu( title: "오픈소스 라이선스", icon: Icons.code_rounded, onTap: null, ), + NormalButton( + title: '로그아웃', + bgColor: systemColorRed300, + txtColor: white, + onTap: () { + logger.i("로그아웃 시작"); + final googleViewModel = MainViewModel(GoogleLoginController()); + googleViewModel.logout(); + final kakaoViewModel = MainViewModel(KakaoLoginController()); + googleViewModel.logout(); + kakaoViewModel.logout(); + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => const WelcomeScreen(), + ), + ); + }, + flag: true, + ), ], ), ), diff --git a/lib/screens/screen_controller.dart b/lib/screens/screen_controller.dart index a396527..51d3a14 100644 --- a/lib/screens/screen_controller.dart +++ b/lib/screens/screen_controller.dart @@ -13,6 +13,7 @@ import 'package:saphy/screens/mypage/mypage.dart'; // } class ScreenController extends StatefulWidget { + static String id = 'screen_controller'; const ScreenController({super.key}); @override diff --git a/lib/screens/welcome/signup_screen.dart b/lib/screens/welcome/signup_screen.dart index 4bd6778..1d46d38 100644 --- a/lib/screens/welcome/signup_screen.dart +++ b/lib/screens/welcome/signup_screen.dart @@ -83,36 +83,33 @@ class _SignupScreenState extends State { ), ), Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), + padding: + const EdgeInsets.symmetric(horizontal: 20.0, vertical: 40.0), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - const SizedBox(height: 30.0), formWidget(context), - Padding( - padding: const EdgeInsets.only(bottom: 20.0), - child: NormalButton( - title: '사피 시작하기', - bgColor: phoneAuth ? mainPrimary : gray400, - txtColor: black, - flag: phoneAuth, - onTap: () async { - logger.i( - '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} /', - ); - final code = await joinService( - widget.socialType!, - _emailController.text, - _nameController.text, - _phoneController.text, - ); - if (code == 200) { - Navigator.of(context).pushReplacement(MaterialPageRoute( - builder: (context) => const ScreenController(), - )); - } - }, - ), + NormalButton( + title: '사피 시작하기', + bgColor: phoneAuth ? mainPrimary : gray400, + txtColor: black, + flag: phoneAuth, + onTap: () async { + logger.i( + '${_nameController.text} / ${_emailController.text} / ${_phoneController.text} / ${widget.userPhotoUrl} /', + ); + final code = await joinService( + widget.socialType!, + _emailController.text, + _nameController.text, + _phoneController.text, + ); + if (code == 200) { + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => const ScreenController(), + )); + } + }, ) ], ), diff --git a/lib/service/authentication/main_view_model.dart b/lib/service/authentication/main_view_model.dart index 5e09679..0aa0fdb 100644 --- a/lib/service/authentication/main_view_model.dart +++ b/lib/service/authentication/main_view_model.dart @@ -5,6 +5,7 @@ import 'package:saphy/service/authentication/google_login_controller.dart'; import 'package:saphy/service/authentication/kakao_login_controller.dart'; import 'package:saphy/service/authentication/secure_storage.dart'; import 'package:saphy/service/social_login.dart'; +import 'package:saphy/utils/log.dart'; class MainViewModel { final SocialLogin _socialLogin; @@ -42,8 +43,12 @@ class MainViewModel { Future logout() async { deleteLoginInfo(); + deleteAccessToke(); + deleteRefreshToke(); + deleteJwt(); await _socialLogin.logout(); //로그아웃 실행 isLogined = false; //로그인되어 있는지를 저장하는 변수 false값 저장 user = null; //user 객체 null + logger.i("Logout 성공"); } } diff --git a/lib/widgets/normal_button.dart b/lib/widgets/normal_button.dart index 0cd4220..64e0a2d 100644 --- a/lib/widgets/normal_button.dart +++ b/lib/widgets/normal_button.dart @@ -15,7 +15,7 @@ class NormalButton extends StatelessWidget { final Color bgColor; final Color txtColor; final bool flag; - final Function() onTap; + final VoidCallback onTap; @override Widget build(BuildContext context) { diff --git a/lib/widgets/sign_up_form.dart b/lib/widgets/sign_up_form.dart index c3aa9c3..2fb4eba 100644 --- a/lib/widgets/sign_up_form.dart +++ b/lib/widgets/sign_up_form.dart @@ -23,7 +23,7 @@ class SignUpForm extends StatelessWidget { Widget build(BuildContext context) { textEditingController.text = initialValue; return Padding( - padding: const EdgeInsets.only(bottom: 10.0), + padding: const EdgeInsets.only(bottom: 20.0), child: Container( decoration: BoxDecoration( shape: BoxShape.rectangle, From ac68a39457340d6466724da991fb51eb14785d95 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Sat, 31 Aug 2024 19:42:57 +0900 Subject: [PATCH 46/54] =?UTF-8?q?SAPHY-144=20design=20:=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=ED=99=94=EB=A9=B4=20UI=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/products/product_detail_page.dart | 338 +++++++++++------- lib/utils/textstyles.dart | 4 +- 2 files changed, 211 insertions(+), 131 deletions(-) diff --git a/lib/screens/products/product_detail_page.dart b/lib/screens/products/product_detail_page.dart index ce3c58e..9dcb267 100644 --- a/lib/screens/products/product_detail_page.dart +++ b/lib/screens/products/product_detail_page.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; import 'package:saphy/screens/purchase/purchase_page.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/textstyles.dart'; class ProductDetail extends StatelessWidget { final String productBrand; @@ -21,38 +23,35 @@ class ProductDetail extends StatelessWidget { Widget build(BuildContext context) { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); return Scaffold( - backgroundColor: const Color(0xfff4f4f4), - body: Column( - children: [ - const SizedBox( - height: 70, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - const SizedBox( - width: 250, - ), - IconButton( - icon: const Icon(Icons.menu), - onPressed: () {}, - ), - ], + appBar: AppBar( + backgroundColor: altWhite, + automaticallyImplyLeading: false, + title: IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + actions: [ + IconButton( + icon: const Icon(Icons.favorite_outline_outlined), + onPressed: () {}, ), - Flexible( - flex: 5, - child: SizedBox( - height: 500, + const SizedBox( + width: 20, + ) + ], + ), + backgroundColor: const Color(0xfff4f4f4), + body: SingleChildScrollView( + child: Column( + children: [ + SizedBox( + height: 400, child: Center( child: Container( - height: 300, - width: 290, + height: 400, + width: double.infinity, decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(productImageUrl), @@ -62,130 +61,211 @@ class ProductDetail extends StatelessWidget { ), ), ), - ), - Flexible( - flex: 3, - child: Container( - decoration: const BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(30), - topRight: Radius.circular(30), - ), - ), - child: Padding( - padding: const EdgeInsets.all(50.0), - child: Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "${numberFormat.format(price)}원", - style: const TextStyle( - fontWeight: FontWeight.w800, - fontFamily: "Pretendard", - fontSize: 30, - ), + Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "출고가 500,000원", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + color: gray700, + ), + ), + Text( + "30% ${numberFormat.format(price)}원", + style: titleText30(), + ), + Text( + productName, + style: const TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Pretendard", + fontSize: 25, + ), + ), + const SizedBox( + height: 10, + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon( + Icons.star, + color: Color.fromARGB(255, 255, 213, 0), + size: 20, + ), + Text( + "4.8 후기 5개", + style: bodyText(), + ), + ], + ), + const SizedBox( + height: 10, + ), + Row( + // 버튼 + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Flexible( + flex: 1, + child: InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const PurchasePage()), + ); + }, + child: Container( + height: 50, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: BorderRadius.circular(10), ), - Text( - productName, - style: const TextStyle( - fontWeight: FontWeight.w600, - fontFamily: "Pretendard", - fontSize: 25, + child: const Center( + child: Text( + "구매하기", + style: TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, + color: white, + ), ), ), - ], + ), ), - Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - productBrand, - style: const TextStyle( - fontWeight: FontWeight.w600, - fontFamily: "Pretendard", - fontSize: 30, - ), - ), - const Text( - "브랜드 보러가기", + ), + const SizedBox( + width: 10, + ), + Flexible( + flex: 1, + child: Container( + height: 50, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + "판매하기", style: TextStyle( + fontWeight: FontWeight.bold, fontFamily: "Pretendard", - fontSize: 20, + fontSize: 15, + color: white, ), ), - ], + ), ), - ], - ), - Expanded( + ), + ], + ), + const SizedBox( + height: 20, + ), + Container( + // 등급 안내 상자 + width: double.infinity, + height: 100, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5)), + child: Padding( + padding: const EdgeInsets.all(15.0), child: Row( + crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisAlignment: MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.end, children: [ - SizedBox( - height: 50, - child: Center( - child: IconButton( - icon: const Icon(Icons.add), - onPressed: () {}, + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '해당 상품은 등급 A 제품입니다.', + style: bodyText(), ), - ), + Text( + "Grade A", + style: titleText30(), + ) + ], ), - InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const PurchasePage()), - ); - }, - child: Container( - width: 130, - height: 50, - decoration: BoxDecoration( - color: Colors.white, - border: Border.all(color: Colors.black), - borderRadius: BorderRadius.circular(10), + Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 1, + child: InkWell( + child: Container( + width: 150, + decoration: BoxDecoration( + color: mainPrimary, + borderRadius: + BorderRadius.circular(10)), + child: const Center( + child: Text( + "실제 사진 보기", + style: + TextStyle(fontFamily: "Pretendard"), + ), + ), + ), + ), ), - child: const Center( - child: Text("구매"), + const SizedBox( + height: 5, ), - ), - ), - Container( - width: 130, - height: 50, - decoration: BoxDecoration( - color: Colors.black, - borderRadius: BorderRadius.circular(10), - ), - child: const Center( - child: Text( - "판매", - style: TextStyle( - color: Colors.white, + Flexible( + flex: 1, + child: InkWell( + child: Container( + width: 150, + decoration: BoxDecoration( + color: mainPrimary, + borderRadius: + BorderRadius.circular(10)), + child: const Center( + child: Text( + "A등급 리뷰 보기", + style: + TextStyle(fontFamily: "Pretendard"), + ), + ), + ), ), ), - ), + ], ), ], ), ), - ], - ), + ), + const SizedBox( + height: 20, + ), + Container( + width: double.infinity, + height: 500, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5)), + ) + ], ), ), - ), - ], + ], + ), ), ); } diff --git a/lib/utils/textstyles.dart b/lib/utils/textstyles.dart index 9255948..68fc3d5 100644 --- a/lib/utils/textstyles.dart +++ b/lib/utils/textstyles.dart @@ -8,11 +8,11 @@ TextStyle titleText() { ); } -TextStyle titleEngText() { +TextStyle titleText30() { return const TextStyle( fontSize: 30, fontWeight: FontWeight.bold, - fontFamily: "Prompt", + fontFamily: "Pretendard", ); } From 138d2e1e3f79e63f8c7b6332aaa6043f33ff40d6 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Mon, 2 Sep 2024 22:41:39 +0900 Subject: [PATCH 47/54] Fix : Product Card overflow error fixed --- lib/widgets/product_card.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index b111bf7..210490c 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -21,6 +21,7 @@ class ProductCard extends StatelessWidget { @override Widget build(BuildContext context) { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + var screenWidth = MediaQuery.of(context).size.width; return InkWell( onTap: () { Navigator.push( @@ -36,7 +37,7 @@ class ProductCard extends StatelessWidget { ); }, child: Container( - width: 190, + width: (screenWidth - 55) / 2, height: 220, padding: const EdgeInsets.all(10), decoration: BoxDecoration( From 6702f1fe1409ad9fce04617775c6a5d12d2cc92e Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 3 Sep 2024 20:24:50 +0900 Subject: [PATCH 48/54] =?UTF-8?q?SAPHY-144=20Design=20:=20=EC=83=81?= =?UTF-8?q?=ED=92=88=20=EC=83=81=EC=84=B8=20=EC=A0=95=EB=B3=B4=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20UI=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/products/liked_list_page.dart | 205 +++++- lib/screens/products/product_detail_page.dart | 607 ++++++++++++------ lib/widgets/text_field.dart | 53 -- 3 files changed, 608 insertions(+), 257 deletions(-) delete mode 100644 lib/widgets/text_field.dart diff --git a/lib/screens/products/liked_list_page.dart b/lib/screens/products/liked_list_page.dart index b53a0e0..484d685 100644 --- a/lib/screens/products/liked_list_page.dart +++ b/lib/screens/products/liked_list_page.dart @@ -1,8 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; // import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; +import 'package:saphy/utils/textstyles.dart'; import 'package:saphy/widgets/product_card.dart'; +import 'package:saphy/utils/colors.dart'; class LikedListPage extends StatefulWidget { const LikedListPage({super.key}); @@ -98,31 +101,193 @@ class _LikedListPageState extends State { @override Widget build(BuildContext context) { + var screenWidth = MediaQuery.of(context).size.width; return Scaffold( backgroundColor: const Color(0xfff4f4f4), - body: CustomScrollView( - slivers: [ - const SliverToBoxAdapter( - child: SizedBox( - height: 70, - ), - ), - SliverToBoxAdapter( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () {}, + appBar: AppBar( + backgroundColor: altWhite, + title: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon( + Icons.arrow_back_ios, + size: 25, ), - const SizedBox( - width: 250, + onPressed: () {}, + ), + SizedBox(height: 50, width: screenWidth - 150), + IconButton( + icon: const Icon( + Icons.search, + size: 25, ), - IconButton( - icon: const Icon(Icons.search), - onPressed: () {}, + onPressed: () {}, + ), + ], + ), + ), + ), + body: CustomScrollView( + slivers: [ + SliverPadding( + padding: const EdgeInsets.only(left: 20.0, right: 20, top: 10), + sliver: SliverToBoxAdapter( + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: SizedBox( + height: 45, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: mainPrimary, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "전체", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + color: white, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + const SizedBox( + width: 10, + ), + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: white, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "스마트폰", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + const SizedBox( + width: 10, + ), + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: white, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "노트북", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + const SizedBox( + width: 10, + ), + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: white, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "웨어러블", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + const SizedBox( + width: 10, + ), + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: white, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "노트북", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + const SizedBox( + width: 10, + ), + Container( + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray300, width: 1), + color: white, + ), + child: const Padding( + padding: EdgeInsets.symmetric( + horizontal: 13.0, vertical: 8), + child: Center( + child: Text( + "웨어러블", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + fontWeight: FontWeight.bold), + ), + ), + ), + ), + ], + ), ), - ], + ), ), ), SliverPadding( diff --git a/lib/screens/products/product_detail_page.dart b/lib/screens/products/product_detail_page.dart index 9dcb267..23c1754 100644 --- a/lib/screens/products/product_detail_page.dart +++ b/lib/screens/products/product_detail_page.dart @@ -22,19 +22,21 @@ class ProductDetail extends StatelessWidget { @override Widget build(BuildContext context) { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + var screenWidth = MediaQuery.of(context).size.width; + var screenHeight = MediaQuery.of(context).size.height; return Scaffold( appBar: AppBar( backgroundColor: altWhite, automaticallyImplyLeading: false, title: IconButton( - icon: const Icon(Icons.arrow_back), + icon: const Icon(Icons.arrow_back_ios), onPressed: () { Navigator.of(context).pop(); }, ), actions: [ IconButton( - icon: const Icon(Icons.favorite_outline_outlined), + icon: const Icon(Icons.ios_share), onPressed: () {}, ), const SizedBox( @@ -43,110 +45,416 @@ class ProductDetail extends StatelessWidget { ], ), backgroundColor: const Color(0xfff4f4f4), - body: SingleChildScrollView( - child: Column( - children: [ - SizedBox( - height: 400, - child: Center( - child: Container( + body: Stack( + children: [ + SingleChildScrollView( + child: Column( + children: [ + SizedBox( height: 400, - width: double.infinity, - decoration: BoxDecoration( - image: DecorationImage( - image: CachedNetworkImageProvider(productImageUrl), - fit: BoxFit.cover, + child: Center( + child: Container( + height: 400, + width: double.infinity, + decoration: BoxDecoration( + image: DecorationImage( + image: CachedNetworkImageProvider(productImageUrl), + fit: BoxFit.cover, + ), + ), ), ), ), - ), - ), - Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const Text( - "출고가 500,000원", - style: TextStyle( - fontFamily: "Pretendard", - fontSize: 15, - color: gray700, - ), - ), - Text( - "30% ${numberFormat.format(price)}원", - style: titleText30(), - ), - Text( - productName, - style: const TextStyle( - fontWeight: FontWeight.w600, - fontFamily: "Pretendard", - fontSize: 25, - ), - ), - const SizedBox( - height: 10, - ), - Row( + Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Icon( - Icons.star, - color: Color.fromARGB(255, 255, 213, 0), - size: 20, + const Text.rich( + TextSpan( + text: "출고가 ", + style: TextStyle( + fontFamily: "Pretendard", + fontSize: 15, + color: gray700, + ), + children: [ + TextSpan( + text: "500,000원", + style: TextStyle( + decoration: TextDecoration.lineThrough, + decorationColor: gray700, + fontFamily: "Pretendard", + fontSize: 15, + color: gray700, + ), + ) + ], + ), + ), + Text.rich( + TextSpan( + style: const TextStyle( + fontSize: 30, + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + ), + children: [ + const TextSpan( + text: "30% ", + style: TextStyle( + color: mainPrimary, + )), + TextSpan( + text: "${numberFormat.format(price)}원", + ), + ], + ), ), Text( - "4.8 후기 5개", - style: bodyText(), + productName, + style: const TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Pretendard", + fontSize: 25, + ), ), - ], - ), - const SizedBox( - height: 10, - ), - Row( - // 버튼 - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Flexible( - flex: 1, - child: InkWell( - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const PurchasePage()), - ); - }, - child: Container( - height: 50, - decoration: BoxDecoration( - color: const Color(0xff404756), - borderRadius: BorderRadius.circular(10), + const SizedBox( + height: 10, + ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Icon( + Icons.star, + color: Color.fromARGB(255, 255, 213, 0), + size: 20, + ), + Text.rich( + TextSpan( + style: bodyText(), + children: const [ + TextSpan( + text: " 4.8 ", + ), + TextSpan( + text: "후기 5개", + style: TextStyle( + decoration: TextDecoration.underline), + ), + ], ), - child: const Center( - child: Text( - "구매하기", - style: TextStyle( - fontWeight: FontWeight.bold, - fontFamily: "Pretendard", - fontSize: 15, - color: white, + ), + ], + ), + const SizedBox( + height: 10, + ), + Container( + // 등급 안내 상자 + width: double.infinity, + height: 100, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: const Color.fromRGBO(222, 222, 222, 1), + gradient: const LinearGradient( + begin: Alignment(-0.92, -0.39), + end: Alignment(0.92, 0.39), + colors: [ + Color(0xffa1a1a1), + Color(0xffdedede), + Color(0xffdedede), + Color(0xffdedede), + Color(0xffdedede), + white, + white, + Color(0xffffffff), + Color(0xffdedede), + Color(0xffdedede), + Color(0xffdedede), + Color(0xffa1a1a1), + ], + stops: [ + 0, + 0.16, + 0.21, + 0.24, + 0.27, + 0.36, + 0.45, + 0.6, + 0.72, + 0.8, + 0.84, + 1 + ], + ), + boxShadow: const [ + BoxShadow( + color: Color.fromRGBO(122, 122, 122, 0.55), + offset: Offset(2, 2), + blurRadius: 4, + ), + BoxShadow( + color: Color.fromRGBO(255, 255, 255, 0.9), + offset: Offset(1, 1), + blurRadius: 0, + spreadRadius: -1, + ), + BoxShadow( + color: Color.fromRGBO(0, 0, 0, 0.34), + offset: Offset(-1, -1), + blurRadius: 0, + spreadRadius: -1, + ), + ], + border: Border.all( + color: const Color(0xffdedede), + width: 1, + ), + ), + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + '해당 상품은 등급 A 제품입니다.', + style: bodyText(), + ), + Text( + "Grade A", + style: titleText30(), + ) + ], + ), + Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Flexible( + flex: 1, + child: InkWell( + child: Container( + width: 150, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: + BorderRadius.circular(10)), + child: const Center( + child: Text( + "실제 사진 보기", + style: TextStyle( + fontFamily: "Pretendard", + color: white), + ), + ), + ), + ), + ), + const SizedBox( + height: 5, + ), + Flexible( + flex: 1, + child: InkWell( + child: Container( + width: 150, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: + BorderRadius.circular(10)), + child: const Center( + child: Text( + "A등급 리뷰 보기", + style: TextStyle( + fontFamily: "Pretendard", + color: white), + ), + ), + ), + ), + ), + ], + ), + ], + ), + ), + ), + const SizedBox( + height: 20, + ), + Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5)), + child: const Padding( + padding: EdgeInsets.all(20), + child: Text("다른 색상 메뉴"), + ), + ), + const SizedBox( + height: 20, + ), + Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5), + ), + child: const Padding( + padding: EdgeInsets.all(20), + child: Text("쿠폰 발급 메뉴"), + ), + ), + const SizedBox( + height: 20, + ), + Row( + // 버튼 + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Flexible( + flex: 1, + child: InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + const PurchasePage()), + ); + }, + child: Container( + height: 50, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + "구매하기", + style: TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, + color: white, + ), + ), ), ), ), ), + const SizedBox( + width: 10, + ), + Flexible( + flex: 1, + child: Container( + height: 50, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + "판매하기", + style: TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, + color: white, + ), + ), + ), + ), + ), + ], + ), + const SizedBox( + height: 20, + ), + Container( + // 상품 정보 + width: double.infinity, + height: 900, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5)), + child: const Padding( + padding: EdgeInsets.all(20), + child: Text("상품 정보 사진 칸"), + ), + ), + const SizedBox( + height: 20, + ), + Container( + // 상품 정보 + width: double.infinity, + height: 400, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: gray400, width: 0.5)), + child: const Padding( + padding: EdgeInsets.all(20), + child: Text("댓글 칸"), ), ), const SizedBox( - width: 10, + height: 160, ), - Flexible( - flex: 1, + ], + ), + ), + ], + ), + ), + Positioned( + bottom: 0, + child: Container( + width: screenWidth, + height: 100, + color: const Color(0xfff4f4f4f4), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: Row( + // 버튼 + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + IconButton( + onPressed: () {}, + icon: const Icon(Icons.favorite_outline)), + const SizedBox( + width: 10, + ), + Flexible( + flex: 1, + child: InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const PurchasePage()), + ); + }, child: Container( height: 50, decoration: BoxDecoration( @@ -155,7 +463,7 @@ class ProductDetail extends StatelessWidget { ), child: const Center( child: Text( - "판매하기", + "구매하기", style: TextStyle( fontWeight: FontWeight.bold, fontFamily: "Pretendard", @@ -166,106 +474,37 @@ class ProductDetail extends StatelessWidget { ), ), ), - ], - ), - const SizedBox( - height: 20, - ), - Container( - // 등급 안내 상자 - width: double.infinity, - height: 100, - decoration: BoxDecoration( - color: white, - borderRadius: BorderRadius.circular(20), - border: Border.all(color: gray400, width: 0.5)), - child: Padding( - padding: const EdgeInsets.all(15.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.stretch, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - '해당 상품은 등급 A 제품입니다.', - style: bodyText(), - ), - Text( - "Grade A", - style: titleText30(), - ) - ], - ), - Column( - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Flexible( - flex: 1, - child: InkWell( - child: Container( - width: 150, - decoration: BoxDecoration( - color: mainPrimary, - borderRadius: - BorderRadius.circular(10)), - child: const Center( - child: Text( - "실제 사진 보기", - style: - TextStyle(fontFamily: "Pretendard"), - ), - ), - ), - ), - ), - const SizedBox( - height: 5, - ), - Flexible( - flex: 1, - child: InkWell( - child: Container( - width: 150, - decoration: BoxDecoration( - color: mainPrimary, - borderRadius: - BorderRadius.circular(10)), - child: const Center( - child: Text( - "A등급 리뷰 보기", - style: - TextStyle(fontFamily: "Pretendard"), - ), - ), - ), - ), - ), - ], + ), + const SizedBox( + width: 10, + ), + Flexible( + flex: 1, + child: Container( + height: 50, + decoration: BoxDecoration( + color: const Color(0xff404756), + borderRadius: BorderRadius.circular(10), + ), + child: const Center( + child: Text( + "판매하기", + style: TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, + color: white, + ), ), - ], + ), ), ), - ), - const SizedBox( - height: 20, - ), - Container( - width: double.infinity, - height: 500, - decoration: BoxDecoration( - color: white, - borderRadius: BorderRadius.circular(20), - border: Border.all(color: gray400, width: 0.5)), - ) - ], + ], + ), ), ), - ], - ), + ) + ], ), ); } diff --git a/lib/widgets/text_field.dart b/lib/widgets/text_field.dart deleted file mode 100644 index 719bc18..0000000 --- a/lib/widgets/text_field.dart +++ /dev/null @@ -1,53 +0,0 @@ -import 'package:flutter/material.dart'; - -class CustomTextField extends StatelessWidget { - const CustomTextField({super.key}); - - @override - Widget build(BuildContext context) { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () { - Navigator.of(context).pop(); - }, - ), - SizedBox( - width: 290, - child: TextField( - decoration: InputDecoration( - labelStyle: const TextStyle( - backgroundColor: Colors.white, - ), - suffixIcon: IconButton( - icon: const Icon(Icons.clear), - onPressed: () {}, - // 컨트롤러 연결해야 해서 아직 미구현 - ), - filled: true, - fillColor: Colors.white, - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color(0xff272727), - ), - ), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color.fromARGB(255, 83, 83, 83), - ), - ), - ), - ), - ), - IconButton( - icon: const Icon(Icons.search), - onPressed: () {}, - ), - ], - ); - } -} From b8eea12c7c9b0e5cfa3437ab2ed077afa2924d41 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 3 Sep 2024 20:25:17 +0900 Subject: [PATCH 49/54] =?UTF-8?q?SAPHY-150=20Fix=20:=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20Overflow=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/search/search_screen.dart | 68 +++++++++++++++++++-------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/lib/screens/search/search_screen.dart b/lib/screens/search/search_screen.dart index 6acb6f9..3620cd8 100644 --- a/lib/screens/search/search_screen.dart +++ b/lib/screens/search/search_screen.dart @@ -1,45 +1,73 @@ import 'package:flutter/material.dart'; -import 'package:saphy/widgets/text_field.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/utils/textstyles.dart'; class SearchScreen extends StatelessWidget { const SearchScreen({super.key}); @override Widget build(BuildContext context) { - return const Scaffold( - backgroundColor: Color(0xfff4f4f4), + var screenWidth = MediaQuery.of(context).size.width; + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + backgroundColor: altWhite, + title: Padding( + padding: const EdgeInsets.only(top: 10.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon( + Icons.arrow_back_ios, + size: 25, + ), + onPressed: () {}, + ), + Container( + height: 50, + width: screenWidth - 150, + decoration: BoxDecoration( + color: white, + borderRadius: BorderRadius.circular(10), + border: Border.all(color: gray200, width: 1), + ), + ), + IconButton( + icon: const Icon( + Icons.search, + size: 25, + ), + onPressed: () {}, + ), + ], + ), + ), + ), body: Column( children: [ - SizedBox( - height: 50, - ), Padding( - padding: EdgeInsets.all(20.0), + padding: const EdgeInsets.all(20.0), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - CustomTextField(), - SizedBox( - height: 20, - ), // 아래 모두 데이터 연동 & stateful 위젯으로의 전환 추후 진행예정 Text( "최근 검색어", - style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), + style: titleText(), ), - SizedBox( + const SizedBox( height: 20, ), - Text( - "인기 검색어", - style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), - ), - SizedBox( + Text("인기 검색어", style: titleText()), + + const SizedBox( height: 20, ), Text( "인기 브랜드", - style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), + style: titleText(), ), ], ), From b7ddf6dd5ad37f9a8f1f6a7f5c2d9027ff448aa0 Mon Sep 17 00:00:00 2001 From: legendary_octopus Date: Wed, 4 Sep 2024 17:12:34 +0900 Subject: [PATCH 50/54] SAPHY-154 Design : edit mypage color --- lib/screens/mypage/mypage.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index 7bb76ea..8d6eb25 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -158,7 +158,7 @@ class _MyPageState extends State { padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, + color: Colors.blue.shade50, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, @@ -176,7 +176,7 @@ class _MyPageState extends State { style: TextStyle( fontSize: 15, fontFamily: "Pretendard", - color: Colors.green, + color: Colors.blue, fontWeight: FontWeight.bold, )), ], @@ -280,7 +280,7 @@ class _MyPageState extends State { padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, + color: Colors.blue.shade50, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, @@ -444,7 +444,7 @@ class _MyPageState extends State { padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: Colors.green.shade50, + color: Colors.blue.shade50, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, From a06cee60cf6a3b56b6867fbd2a88775a44c9fada Mon Sep 17 00:00:00 2001 From: legendary_octopus Date: Wed, 4 Sep 2024 17:33:34 +0900 Subject: [PATCH 51/54] =?UTF-8?q?SAPHY-154=20Design=20:=20=EB=A7=88?= =?UTF-8?q?=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=94=94=EC=9E=90?= =?UTF-8?q?=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 2 +- lib/screens/mypage/mypage.dart | 263 +++++++++++++++++++++------------ 2 files changed, 167 insertions(+), 98 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index acc36ab..cd12808 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,7 +17,7 @@ void main() async { KakaoSdk.init( nativeAppKey: kakaoNativeAppKey, ); - runApp(const MyApp()); + runApp(const ScreenController()); } class MyApp extends StatelessWidget { diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index 8d6eb25..f97b0ed 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -1,5 +1,6 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:saphy/screens/mypage/edit_profile.dart'; import 'package:saphy/screens/mypage/setting.dart'; import 'package:saphy/utils/colors.dart'; @@ -13,6 +14,35 @@ class MyPage extends StatefulWidget { } class _MyPageState extends State { + + // 사용자 정보 + String name = "홍길동"; + String id = "gildong9403"; + + // 배송/수거 상태 + int deliveryRequest = 0; + int sellingWait = 0; + int selling = 0; + int settlement = 0; + + // 기기 판매 내역 + int deviceDeliveryRequest = 0; + int deviceSellingWait = 0; + int deviceSelling = 0; + int deviceSettlement = 0; + + // 기기 구매 내역 + int devicePurchaseRequest = 0; + int devicePurchaseWait = 0; + int devicePurchase = 0; + int devicePurchaseSettlement = 0; + + @override + void initState() { + // TODO: implement initState + super.initState(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -163,17 +193,17 @@ class _MyPageState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("발송요청", + const Text("발송요청", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$deliveryRequest", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.blue, @@ -186,17 +216,17 @@ class _MyPageState extends State { height: 40, color: Colors.black26, ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매대기", + const Text("판매대기", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$sellingWait", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -204,17 +234,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매 중", + const Text("판매 중", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$selling", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -222,17 +252,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("정산완료", + const Text("정산완료", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$settlement", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -254,7 +284,9 @@ class _MyPageState extends State { const Spacer(), // 더보기 InkWell( - onTap: () {}, + onTap: () { + + }, child: Container( padding: const EdgeInsets.only( top: 1, bottom: 1, left: 10, right: 10), @@ -285,20 +317,20 @@ class _MyPageState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("발송요청", + const Text("발송요청", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$deviceDeliveryRequest", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", - color: Colors.green, + color: Colors.blue, fontWeight: FontWeight.bold, )), ], @@ -308,17 +340,17 @@ class _MyPageState extends State { height: 40, color: Colors.black26, ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매대기", + const Text("판매대기", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$deviceSellingWait", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -326,17 +358,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매 중", + const Text("판매 중", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$deviceSelling", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -344,17 +376,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("정산완료", + const Text("정산완료", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$deviceSettlement", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -367,48 +399,6 @@ class _MyPageState extends State { ) ], ), - const SizedBox(height: 10), - InkWell( - onTap: () {}, - child: Container( - width: double.infinity, - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - color: Colors.black54, - ), - child: const Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - Icon(Icons.post_add, - color: Colors.white, size: 30), - SizedBox(width: 10), - Column( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text("보관 신청하기", - style: TextStyle( - fontSize: 15, - fontFamily: "Pretendard", - color: Colors.white, - fontWeight: FontWeight.bold, - )), - Text("한 번에 신청하고 한 번에 발송하세요.", - style: TextStyle( - fontSize: 10, - fontFamily: "Pretendard", - color: Colors.white, - )), - ], - ), - Spacer(), - Icon(Icons.arrow_forward_ios, - color: Colors.white, size: 15), - ], - ), - ), - ), const SizedBox(height: 20), Column( children: [ @@ -418,7 +408,9 @@ class _MyPageState extends State { const Spacer(), // 더보기 InkWell( - onTap: () {}, + onTap: () { + + }, child: Container( padding: const EdgeInsets.only( top: 1, bottom: 1, left: 10, right: 10), @@ -449,20 +441,20 @@ class _MyPageState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("발송요청", + const Text("배송요청", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$devicePurchaseRequest", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", - color: Colors.green, + color: Colors.blue, fontWeight: FontWeight.bold, )), ], @@ -472,17 +464,17 @@ class _MyPageState extends State { height: 40, color: Colors.black26, ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매대기", + const Text("상품준비", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$devicePurchaseWait", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -490,17 +482,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("판매 중", + const Text("배송 중", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$devicePurchase", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -508,17 +500,17 @@ class _MyPageState extends State { )), ], ), - const Column( + Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text("정산완료", + const Text("배송완료", style: TextStyle( fontSize: 13, fontFamily: "Pretendard", fontWeight: FontWeight.bold, )), - Text("0", - style: TextStyle( + Text("$devicePurchaseSettlement", + style: const TextStyle( fontSize: 15, fontFamily: "Pretendard", color: Colors.black, @@ -528,13 +520,90 @@ class _MyPageState extends State { ), ], ), - ) + ), ], ), ], - )) + ) + ), + const SizedBox(height: 20), + Container( + padding: const EdgeInsets.only(top: 10, bottom: 10), + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + TextButton( + onPressed: () { + + }, + style: ButtonStyle( + overlayColor: WidgetStateProperty.all(Colors.transparent), + ), + child: const Text( + "공지사항", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ), + Container( + width: 1, + height: 30, + color: Colors.black26, + ), + TextButton( + onPressed: () { + + }, + style: ButtonStyle( + overlayColor: WidgetStateProperty.all(Colors.transparent), + ), + child: const Text( + "이용약관", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ), + Container( + width: 1, + height: 30, + color: Colors.black26, + ), + TextButton( + onPressed: () { + + }, + style: ButtonStyle( + overlayColor: WidgetStateProperty.all(Colors.transparent), + ), + child: const Text( + "개인정보처리방침", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ), + ], + ), + ) ], ), - )); + ) + ); } } From f13934eeac3c42176ab61eb9aaa7158ddcab1adc Mon Sep 17 00:00:00 2001 From: legendary_octopus Date: Wed, 4 Sep 2024 17:34:15 +0900 Subject: [PATCH 52/54] =?UTF-8?q?SAPHY-154=20Design=20:=20=EB=A7=88?= =?UTF-8?q?=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=94=94=EC=9E=90?= =?UTF-8?q?=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index cd12808..acc36ab 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -17,7 +17,7 @@ void main() async { KakaoSdk.init( nativeAppKey: kakaoNativeAppKey, ); - runApp(const ScreenController()); + runApp(const MyApp()); } class MyApp extends StatelessWidget { From c948543dba186a0ccf4296272162d0d435c687fb Mon Sep 17 00:00:00 2001 From: boroboro01 Date: Wed, 4 Sep 2024 21:45:08 +0900 Subject: [PATCH 53/54] feat: completed iOS setup(social login, phone authentication --- ios/Podfile | 2 +- ios/Podfile.lock | 8 +- ios/Runner.xcodeproj/project.pbxproj | 365 ++++++++++++++---- .../xcshareddata/swiftpm/Package.resolved | 60 +++ .../xcshareddata/swiftpm/Package.resolved | 60 +++ ios/Runner/AppDelegate.swift | 2 +- .../AppIcon.appiconset/Contents.json | 355 ++++++++++++++++- ios/Runner/Info.plist | 132 ++++--- 8 files changed, 844 insertions(+), 140 deletions(-) create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/ios/Podfile b/ios/Podfile index d97f17e..164df53 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b4e313b..bae8c19 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -32,6 +32,8 @@ PODS: - FirebaseCoreInternal (10.29.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - Flutter (1.0.0) + - flutter_native_splash (0.0.1): + - Flutter - flutter_secure_storage (6.0.0): - Flutter - google_sign_in_ios (0.0.1): @@ -94,6 +96,7 @@ DEPENDENCIES: - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) + - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`) - kakao_flutter_sdk_common (from `.symlinks/plugins/kakao_flutter_sdk_common/ios`) @@ -124,6 +127,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/firebase_core/ios" Flutter: :path: Flutter + flutter_native_splash: + :path: ".symlinks/plugins/flutter_native_splash/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" google_sign_in_ios: @@ -149,6 +154,7 @@ SPEC CHECKSUMS: FirebaseCore: 2322423314d92f946219c8791674d2f3345b598f FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 google_sign_in_ios: 07375bfbf2620bc93a602c0e27160d6afc6ead38 GoogleSignIn: d4281ab6cf21542b1cfaff85c191f230b399d2db @@ -163,6 +169,6 @@ SPEC CHECKSUMS: sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f -PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796 +PODFILE CHECKSUM: 7be2f5f74864d463a8ad433546ed1de7e0f29aef COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 0957306..2b3970f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -11,12 +11,32 @@ 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 */; }; - 7FB3B7BD9D40CC1535B53CE3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED47CDADF35DDF2917118420 /* Pods_Runner.framework */; }; 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 */; }; + 9D25BA81D29AAFE5D0B39DF7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECC9E01FC970B5353FD5B162 /* Pods_Runner.framework */; }; A5F65EFA9A81FDB25FC3553D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */; }; - F34DA3CEE939750A78D673A7 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */; }; + C206BEF32C8879D3005B67E0 /* RxKakaoSDK in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEF22C8879D3005B67E0 /* RxKakaoSDK */; }; + C206BEF52C8879D3005B67E0 /* RxKakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEF42C8879D3005B67E0 /* RxKakaoSDKAuth */; }; + C206BEF72C8879D3005B67E0 /* RxKakaoSDKCert in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEF62C8879D3005B67E0 /* RxKakaoSDKCert */; }; + C206BEF92C8879D3005B67E0 /* RxKakaoSDKCommon in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEF82C8879D3005B67E0 /* RxKakaoSDKCommon */; }; + C206BEFB2C8879D3005B67E0 /* RxKakaoSDKFriend in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEFA2C8879D3005B67E0 /* RxKakaoSDKFriend */; }; + C206BEFD2C8879E4005B67E0 /* KakaoSDK in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEFC2C8879E4005B67E0 /* KakaoSDK */; }; + C206BEFF2C8879E4005B67E0 /* KakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = C206BEFE2C8879E4005B67E0 /* KakaoSDKAuth */; }; + C206BF012C8879E4005B67E0 /* KakaoSDKCert in Frameworks */ = {isa = PBXBuildFile; productRef = C206BF002C8879E4005B67E0 /* KakaoSDKCert */; }; + C206BF032C8879E4005B67E0 /* KakaoSDKCertCore in Frameworks */ = {isa = PBXBuildFile; productRef = C206BF022C8879E4005B67E0 /* KakaoSDKCertCore */; }; + C206BF052C8879E4005B67E0 /* KakaoSDKCommon in Frameworks */ = {isa = PBXBuildFile; productRef = C206BF042C8879E4005B67E0 /* KakaoSDKCommon */; }; + C25CBD142C88528900748A6D /* KakaoSDK in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD132C88528900748A6D /* KakaoSDK */; }; + C25CBD162C88528900748A6D /* KakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD152C88528900748A6D /* KakaoSDKAuth */; }; + C25CBD182C88528900748A6D /* KakaoSDKCert in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD172C88528900748A6D /* KakaoSDKCert */; }; + C25CBD1A2C88528900748A6D /* KakaoSDKCertCore in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD192C88528900748A6D /* KakaoSDKCertCore */; }; + C25CBD1C2C88528900748A6D /* KakaoSDKCommon in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD1B2C88528900748A6D /* KakaoSDKCommon */; }; + C25CBD1F2C8852C200748A6D /* RxKakaoSDK in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD1E2C8852C200748A6D /* RxKakaoSDK */; }; + C25CBD212C8852C200748A6D /* RxKakaoSDKAuth in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD202C8852C200748A6D /* RxKakaoSDKAuth */; }; + C25CBD232C8852C200748A6D /* RxKakaoSDKCert in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD222C8852C200748A6D /* RxKakaoSDKCert */; }; + C25CBD252C8852C200748A6D /* RxKakaoSDKCommon in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD242C8852C200748A6D /* RxKakaoSDKCommon */; }; + C25CBD272C8852C200748A6D /* RxKakaoSDKFriend in Frameworks */ = {isa = PBXBuildFile; productRef = C25CBD262C8852C200748A6D /* RxKakaoSDKFriend */; }; + E20016991017CE3573E5B50D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89F970EF907EF0E8DB929601 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -45,16 +65,17 @@ /* 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 = ""; }; - 2F64C424BCE44A172F5C6C7D /* 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 = ""; }; + 299F2FD69FC2D6A15493938F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 33DAE1C3A85C79DCF27F352F /* 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 = ""; }; - 6996E6DF9FDB50843367DD99 /* 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 = ""; }; - 6FFC56BBAE9D0A605150B554 /* 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 = ""; }; + 45231B96F5866D4695ACDF44 /* 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 = ""; }; 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 = ""; }; - 827B61BB0A7992F08D3FEC96 /* 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 = ""; }; + 89F970EF907EF0E8DB929601 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9731A9534D1A151711E5AD5F /* 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 = ""; }; 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; }; @@ -62,11 +83,10 @@ 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 = ""; }; + 9AB6FD55F8B03AF53800968E /* 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 = ""; }; 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; - 9F5D9EE7BF0AA0F4C2856FB1 /* 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 = ""; }; - B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - ED47CDADF35DDF2917118420 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F385D0267B32F3FCCC9B5924 /* 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 = ""; }; + D39BC51AD1ADB9650A23CA92 /* 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 = ""; }; + ECC9E01FC970B5353FD5B162 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -74,7 +94,17 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7FB3B7BD9D40CC1535B53CE3 /* Pods_Runner.framework in Frameworks */, + C25CBD1F2C8852C200748A6D /* RxKakaoSDK in Frameworks */, + C25CBD272C8852C200748A6D /* RxKakaoSDKFriend in Frameworks */, + C25CBD142C88528900748A6D /* KakaoSDK in Frameworks */, + C25CBD212C8852C200748A6D /* RxKakaoSDKAuth in Frameworks */, + C25CBD232C8852C200748A6D /* RxKakaoSDKCert in Frameworks */, + C25CBD1A2C88528900748A6D /* KakaoSDKCertCore in Frameworks */, + C25CBD252C8852C200748A6D /* RxKakaoSDKCommon in Frameworks */, + C25CBD162C88528900748A6D /* KakaoSDKAuth in Frameworks */, + C25CBD1C2C88528900748A6D /* KakaoSDKCommon in Frameworks */, + C25CBD182C88528900748A6D /* KakaoSDKCert in Frameworks */, + 9D25BA81D29AAFE5D0B39DF7 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -82,7 +112,17 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F34DA3CEE939750A78D673A7 /* Pods_RunnerTests.framework in Frameworks */, + C206BF012C8879E4005B67E0 /* KakaoSDKCert in Frameworks */, + C206BF052C8879E4005B67E0 /* KakaoSDKCommon in Frameworks */, + C206BEF52C8879D3005B67E0 /* RxKakaoSDKAuth in Frameworks */, + C206BF032C8879E4005B67E0 /* KakaoSDKCertCore in Frameworks */, + C206BEFB2C8879D3005B67E0 /* RxKakaoSDKFriend in Frameworks */, + C206BEF92C8879D3005B67E0 /* RxKakaoSDKCommon in Frameworks */, + C206BEF32C8879D3005B67E0 /* RxKakaoSDK in Frameworks */, + C206BEF72C8879D3005B67E0 /* RxKakaoSDKCert in Frameworks */, + C206BEFD2C8879E4005B67E0 /* KakaoSDK in Frameworks */, + C206BEFF2C8879E4005B67E0 /* KakaoSDKAuth in Frameworks */, + E20016991017CE3573E5B50D /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -92,24 +132,14 @@ 276443D08B1BC39FC9EE5C4D /* Pods */ = { isa = PBXGroup; children = ( - 6996E6DF9FDB50843367DD99 /* Pods-Runner.debug.xcconfig */, - 9F5D9EE7BF0AA0F4C2856FB1 /* Pods-Runner.release.xcconfig */, - F385D0267B32F3FCCC9B5924 /* Pods-Runner.profile.xcconfig */, - 827B61BB0A7992F08D3FEC96 /* Pods-RunnerTests.debug.xcconfig */, - 6FFC56BBAE9D0A605150B554 /* Pods-RunnerTests.release.xcconfig */, - 2F64C424BCE44A172F5C6C7D /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - 2DF5DA58C0B38C2ADF87C876 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED47CDADF35DDF2917118420 /* Pods_Runner.framework */, - B08E88000ED336E1B35371A4 /* Pods_RunnerTests.framework */, + 9AB6FD55F8B03AF53800968E /* Pods-Runner.debug.xcconfig */, + 33DAE1C3A85C79DCF27F352F /* Pods-Runner.release.xcconfig */, + 299F2FD69FC2D6A15493938F /* Pods-Runner.profile.xcconfig */, + D39BC51AD1ADB9650A23CA92 /* Pods-RunnerTests.debug.xcconfig */, + 45231B96F5866D4695ACDF44 /* Pods-RunnerTests.release.xcconfig */, + 9731A9534D1A151711E5AD5F /* Pods-RunnerTests.profile.xcconfig */, ); - name = Frameworks; + path = Pods; sourceTree = ""; }; 331C8082294A63A400263BE5 /* RunnerTests */ = { @@ -139,8 +169,8 @@ 97C146EF1CF9000F007C117D /* Products */, 331C8082294A63A400263BE5 /* RunnerTests */, 276443D08B1BC39FC9EE5C4D /* Pods */, - 2DF5DA58C0B38C2ADF87C876 /* Frameworks */, 9E7EC0341AFF6C6E13591F3C /* GoogleService-Info.plist */, + BC80AEFA141B886F0456706D /* Frameworks */, ); sourceTree = ""; }; @@ -168,6 +198,15 @@ path = Runner; sourceTree = ""; }; + BC80AEFA141B886F0456706D /* Frameworks */ = { + isa = PBXGroup; + children = ( + ECC9E01FC970B5353FD5B162 /* Pods_Runner.framework */, + 89F970EF907EF0E8DB929601 /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -175,7 +214,7 @@ isa = PBXNativeTarget; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( - 0DA408F132D21DA091081D87 /* [CP] Check Pods Manifest.lock */, + 27EF06460910268E7E5A6863 /* [CP] Check Pods Manifest.lock */, 331C807D294A63A400263BE5 /* Sources */, 331C807F294A63A400263BE5 /* Resources */, B7A7E8C78806856FBEC5ACB8 /* Frameworks */, @@ -186,6 +225,18 @@ 331C8086294A63A400263BE5 /* PBXTargetDependency */, ); name = RunnerTests; + packageProductDependencies = ( + C206BEF22C8879D3005B67E0 /* RxKakaoSDK */, + C206BEF42C8879D3005B67E0 /* RxKakaoSDKAuth */, + C206BEF62C8879D3005B67E0 /* RxKakaoSDKCert */, + C206BEF82C8879D3005B67E0 /* RxKakaoSDKCommon */, + C206BEFA2C8879D3005B67E0 /* RxKakaoSDKFriend */, + C206BEFC2C8879E4005B67E0 /* KakaoSDK */, + C206BEFE2C8879E4005B67E0 /* KakaoSDKAuth */, + C206BF002C8879E4005B67E0 /* KakaoSDKCert */, + C206BF022C8879E4005B67E0 /* KakaoSDKCertCore */, + C206BF042C8879E4005B67E0 /* KakaoSDKCommon */, + ); productName = RunnerTests; productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -194,21 +245,33 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - A6D51F9854721CFEA579161B /* [CP] Check Pods Manifest.lock */, + B79209763929376F2894185B /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - D4FE79309F0FAAD60E7E3E0D /* [CP] Embed Pods Frameworks */, - DD0CBE1D25881B7F6C021F1E /* [CP] Copy Pods Resources */, + 323FA313A1DBB6413A14B129 /* [CP] Embed Pods Frameworks */, + 08AB7B2BF2697B7F720E663B /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + C25CBD132C88528900748A6D /* KakaoSDK */, + C25CBD152C88528900748A6D /* KakaoSDKAuth */, + C25CBD172C88528900748A6D /* KakaoSDKCert */, + C25CBD192C88528900748A6D /* KakaoSDKCertCore */, + C25CBD1B2C88528900748A6D /* KakaoSDKCommon */, + C25CBD1E2C8852C200748A6D /* RxKakaoSDK */, + C25CBD202C8852C200748A6D /* RxKakaoSDKAuth */, + C25CBD222C8852C200748A6D /* RxKakaoSDKCert */, + C25CBD242C8852C200748A6D /* RxKakaoSDKCommon */, + C25CBD262C8852C200748A6D /* RxKakaoSDKFriend */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -242,6 +305,10 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */, + C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -275,7 +342,24 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0DA408F132D21DA091081D87 /* [CP] Check Pods Manifest.lock */ = { + 08AB7B2BF2697B7F720E663B /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 27EF06460910268E7E5A6863 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -297,6 +381,23 @@ 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; }; + 323FA313A1DBB6413A14B129 /* [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; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -326,9 +427,9 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "# Run the Flutter build command\n/bin/sh \"${FLUTTER_ROOT}/packages/flutter_tools/bin/xcode_backend.sh\" build\n\n# Check if .env file exists and export environment variables\nif [ -f \"${PROJECT_DIR}/../assets/config/.env\" ]; then\n set -o allexport # Enable export of all variables\n source \"${PROJECT_DIR}/../assets/config/.env\"\n set +o allexport # Disable export of all variables\nfi\n"; }; - A6D51F9854721CFEA579161B /* [CP] Check Pods Manifest.lock */ = { + B79209763929376F2894185B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -350,40 +451,6 @@ 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; }; - D4FE79309F0FAAD60E7E3E0D /* [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; - }; - DD0CBE1D25881B7F6C021F1E /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -458,6 +525,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -488,12 +556,14 @@ }; 249021D4217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + baseConfigurationReference = 299F2FD69FC2D6A15493938F /* Pods-Runner.profile.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = YHJ3Z89MUG; + DEVELOPMENT_TEAM = VNA63RRH7K; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -502,6 +572,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -510,7 +581,7 @@ }; 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 827B61BB0A7992F08D3FEC96 /* Pods-RunnerTests.debug.xcconfig */; + baseConfigurationReference = D39BC51AD1ADB9650A23CA92 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -523,12 +594,13 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + WRAPPER_EXTENSION = xctest; }; name = Debug; }; 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6FFC56BBAE9D0A605150B554 /* Pods-RunnerTests.release.xcconfig */; + baseConfigurationReference = 45231B96F5866D4695ACDF44 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -539,12 +611,13 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + WRAPPER_EXTENSION = xctest; }; name = Release; }; 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2F64C424BCE44A172F5C6C7D /* Pods-RunnerTests.profile.xcconfig */; + baseConfigurationReference = 9731A9534D1A151711E5AD5F /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -555,11 +628,13 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + WRAPPER_EXTENSION = xctest; }; name = Profile; }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB31CF90195004384FC /* Generated.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; @@ -582,6 +657,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -639,6 +715,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -671,12 +748,14 @@ }; 97C147061CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + baseConfigurationReference = 9AB6FD55F8B03AF53800968E /* Pods-Runner.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = YHJ3Z89MUG; + DEVELOPMENT_TEAM = VNA63RRH7K; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -685,6 +764,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -694,12 +774,14 @@ }; 97C147071CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + baseConfigurationReference = 33DAE1C3A85C79DCF27F352F /* Pods-Runner.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = YHJ3Z89MUG; + DEVELOPMENT_TEAM = VNA63RRH7K; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -708,6 +790,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -748,6 +831,128 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/kakao/kakao-ios-sdk"; + requirement = { + branch = master; + kind = branch; + }; + }; + C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/kakao/kakao-ios-sdk-rx"; + requirement = { + branch = master; + kind = branch; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + C206BEF22C8879D3005B67E0 /* RxKakaoSDK */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDK; + }; + C206BEF42C8879D3005B67E0 /* RxKakaoSDKAuth */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKAuth; + }; + C206BEF62C8879D3005B67E0 /* RxKakaoSDKCert */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKCert; + }; + C206BEF82C8879D3005B67E0 /* RxKakaoSDKCommon */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKCommon; + }; + C206BEFA2C8879D3005B67E0 /* RxKakaoSDKFriend */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKFriend; + }; + C206BEFC2C8879E4005B67E0 /* KakaoSDK */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDK; + }; + C206BEFE2C8879E4005B67E0 /* KakaoSDKAuth */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKAuth; + }; + C206BF002C8879E4005B67E0 /* KakaoSDKCert */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCert; + }; + C206BF022C8879E4005B67E0 /* KakaoSDKCertCore */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCertCore; + }; + C206BF042C8879E4005B67E0 /* KakaoSDKCommon */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCommon; + }; + C25CBD132C88528900748A6D /* KakaoSDK */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDK; + }; + C25CBD152C88528900748A6D /* KakaoSDKAuth */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKAuth; + }; + C25CBD172C88528900748A6D /* KakaoSDKCert */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCert; + }; + C25CBD192C88528900748A6D /* KakaoSDKCertCore */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCertCore; + }; + C25CBD1B2C88528900748A6D /* KakaoSDKCommon */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD122C88528900748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk" */; + productName = KakaoSDKCommon; + }; + C25CBD1E2C8852C200748A6D /* RxKakaoSDK */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDK; + }; + C25CBD202C8852C200748A6D /* RxKakaoSDKAuth */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKAuth; + }; + C25CBD222C8852C200748A6D /* RxKakaoSDKCert */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKCert; + }; + C25CBD242C8852C200748A6D /* RxKakaoSDKCommon */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKCommon; + }; + C25CBD262C8852C200748A6D /* RxKakaoSDKFriend */ = { + isa = XCSwiftPackageProductDependency; + package = C25CBD1D2C8852C200748A6D /* XCRemoteSwiftPackageReference "kakao-ios-sdk-rx" */; + productName = RxKakaoSDKFriend; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..84a895e --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,60 @@ +{ + "originHash" : "88d0128f43d1484ef1a94de18cf320f889254579103633b77dd16e272f6da519", + "pins" : [ + { + "identity" : "alamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Alamofire/Alamofire.git", + "state" : { + "revision" : "f455c2975872ccd2d9c81594c658af65716e9b9a", + "version" : "5.9.1" + } + }, + { + "identity" : "kakao-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kakao/kakao-ios-sdk", + "state" : { + "branch" : "master", + "revision" : "f50278451e3ea7e131fb94e08e3fe86023d84930" + } + }, + { + "identity" : "kakao-ios-sdk-rx", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kakao/kakao-ios-sdk-rx", + "state" : { + "branch" : "master", + "revision" : "2c61cbfcd30e652cd30e3607c81a0515e1846969" + } + }, + { + "identity" : "ohhttpstubs", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AliSoftware/OHHTTPStubs.git", + "state" : { + "revision" : "12f19662426d0434d6c330c6974d53e2eb10ecd9", + "version" : "9.1.0" + } + }, + { + "identity" : "rxalamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/RxSwiftCommunity/RxAlamofire.git", + "state" : { + "revision" : "9535b58695b91fb67f56d58d6fd0c76462d7743a", + "version" : "6.1.2" + } + }, + { + "identity" : "rxswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactiveX/RxSwift.git", + "state" : { + "revision" : "b06a8c8596e4c3e8e7788e08e720e3248563ce6a", + "version" : "6.7.1" + } + } + ], + "version" : 3 +} diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..84a895e --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,60 @@ +{ + "originHash" : "88d0128f43d1484ef1a94de18cf320f889254579103633b77dd16e272f6da519", + "pins" : [ + { + "identity" : "alamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Alamofire/Alamofire.git", + "state" : { + "revision" : "f455c2975872ccd2d9c81594c658af65716e9b9a", + "version" : "5.9.1" + } + }, + { + "identity" : "kakao-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kakao/kakao-ios-sdk", + "state" : { + "branch" : "master", + "revision" : "f50278451e3ea7e131fb94e08e3fe86023d84930" + } + }, + { + "identity" : "kakao-ios-sdk-rx", + "kind" : "remoteSourceControl", + "location" : "https://github.com/kakao/kakao-ios-sdk-rx", + "state" : { + "branch" : "master", + "revision" : "2c61cbfcd30e652cd30e3607c81a0515e1846969" + } + }, + { + "identity" : "ohhttpstubs", + "kind" : "remoteSourceControl", + "location" : "https://github.com/AliSoftware/OHHTTPStubs.git", + "state" : { + "revision" : "12f19662426d0434d6c330c6974d53e2eb10ecd9", + "version" : "9.1.0" + } + }, + { + "identity" : "rxalamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/RxSwiftCommunity/RxAlamofire.git", + "state" : { + "revision" : "9535b58695b91fb67f56d58d6fd0c76462d7743a", + "version" : "6.1.2" + } + }, + { + "identity" : "rxswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ReactiveX/RxSwift.git", + "state" : { + "revision" : "b06a8c8596e4c3e8e7788e08e720e3248563ce6a", + "version" : "6.7.1" + } + } + ], + "version" : 3 +} diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 70693e4..b636303 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index ffab254..6bf81eb 100644 --- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1 +1,354 @@ -{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"idiom":"watch","filename":"172.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"86x86","expected-size":"172","role":"quickLook"},{"idiom":"watch","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"40x40","expected-size":"80","role":"appLauncher"},{"idiom":"watch","filename":"88.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"40mm","scale":"2x","size":"44x44","expected-size":"88","role":"appLauncher"},{"idiom":"watch","filename":"102.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"45x45","expected-size":"102","role":"appLauncher"},{"idiom":"watch","filename":"92.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"41mm","scale":"2x","size":"46x46","expected-size":"92","role":"appLauncher"},{"idiom":"watch","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"50x50","expected-size":"100","role":"appLauncher"},{"idiom":"watch","filename":"196.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"98x98","expected-size":"196","role":"quickLook"},{"idiom":"watch","filename":"216.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"44mm","scale":"2x","size":"108x108","expected-size":"216","role":"quickLook"},{"idiom":"watch","filename":"48.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"38mm","scale":"2x","size":"24x24","expected-size":"48","role":"notificationCenter"},{"idiom":"watch","filename":"55.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"42mm","scale":"2x","size":"27.5x27.5","expected-size":"55","role":"notificationCenter"},{"idiom":"watch","filename":"66.png","folder":"Assets.xcassets/AppIcon.appiconset/","subtype":"45mm","scale":"2x","size":"33x33","expected-size":"66","role":"notificationCenter"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"3x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch","role":"companionSettings","scale":"2x"},{"size":"1024x1024","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"watch-marketing","scale":"1x"},{"size":"128x128","expected-size":"128","filename":"128.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"256x256","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"128x128","expected-size":"256","filename":"256.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"256x256","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"512x512","expected-size":"512","filename":"512.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"16","filename":"16.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"1x"},{"size":"16x16","expected-size":"32","filename":"32.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"32x32","expected-size":"64","filename":"64.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"},{"size":"512x512","expected-size":"1024","filename":"1024.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"mac","scale":"2x"}]} \ No newline at end of file +{ + "images" : [ + { + "filename" : "40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "57.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "filename" : "114.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "120.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "58.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "80.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "100.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "filename" : "72.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "filename" : "144.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, + { + "filename" : "48.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "filename" : "55.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "filename" : "58.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "87.png", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "66.png", + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, + { + "filename" : "80.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "filename" : "88.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "filename" : "92.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, + { + "filename" : "100.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, + { + "filename" : "172.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "filename" : "196.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "filename" : "216.png", + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "117x117", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "129x129", + "subtype" : "49mm" + }, + { + "filename" : "1024.png", + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "102.png", + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "45x45", + "subtype" : "41mm" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 96eb07e..1e45815 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -1,60 +1,80 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Saphy - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - saphy - 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 - - LSApplicationQueriesSchemes - - - kakaokompassauth - - kakaolink - - kakaoplus - - UIStatusBarHidden - - + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Saphy + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + saphy + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + kakao${KAKAO_NATIVE_APP_KEY} + + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + com.googleusercontent.apps.754445879555-r1fu6an4tqau05de9hc6vffif00r950b + + + + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + KAKAO_NATIVE_APP_KEY + + LSApplicationQueriesSchemes + + kakao${KAKAO_NATIVE_APP_KEY} + kakaokompassauth + kakaolink + kakaoplus + kakaotalk + + LSRequiresIPhoneOS + + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + From d4c8f9964b5a4be97c76cdb2298f53feee218632 Mon Sep 17 00:00:00 2001 From: legendary_octopus Date: Thu, 5 Sep 2024 10:50:00 +0900 Subject: [PATCH 54/54] =?UTF-8?q?SAPHY-157=20Chore=20:=20=EC=95=A0?= =?UTF-8?q?=ED=94=8C=EB=A6=AC=EC=BC=80=EC=9D=B4=EC=85=98=20ID=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 2 +- ios/Runner.xcodeproj/project.pbxproj | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index ae9cc7f..a1ba03f 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -36,7 +36,7 @@ if (flutterVersionName == null) { } android { - namespace "com.example.saphy" + namespace "com.inq.saphy" compileSdk flutter.compileSdkVersion ndkVersion flutter.ndkVersion diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2b3970f..26ac5ff 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -563,14 +563,14 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VNA63RRH7K; + DEVELOPMENT_TEAM = YHJ3Z89MUG; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; + PRODUCT_BUNDLE_IDENTIFIER = com.inq.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -755,14 +755,14 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VNA63RRH7K; + DEVELOPMENT_TEAM = YHJ3Z89MUG; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; + PRODUCT_BUNDLE_IDENTIFIER = com.inq.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -781,14 +781,14 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VNA63RRH7K; + DEVELOPMENT_TEAM = YHJ3Z89MUG; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.saphy; + PRODUCT_BUNDLE_IDENTIFIER = com.inq.saphy; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";

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 literal 0 HcmV?d00001 diff --git a/assets/fonts/Prompt-Regular.ttf b/assets/fonts/Prompt-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..278e96c1c21adb89dd7fc0c79ac994a98e58582a GIT binary patch literal 162624 zcmd3P2Ygh;_W#UmOEx_r9l|D?gpxvfLQh9Xq$3HSq!0oUk{E)31+hFuM8yVn#e(=$ z-hyI7#4f1#p5n8Dl&63SD)vV9|2;GJ?%oXn^!@+8&;Q3V_s*Sq+MGFaX6_B+jIl6W z%q(5PBZYfe-BEZgK)(~&<1`2};3V13E51kco7 z@|^jdi$gb+jRI`9qP^8EZH@I`Jke6knCSt=EWgdKU)*j!Gw=eGPeyr1YyJGDbr0A7 zo3U9RqWa|awgsK@c3)eKsjl3!1eq7&12@`5n^HnIt#0pV^wyM;fpTlx^3AK$Z`7e=r2D!9HR#sl+V8txx zcOkxZTiJGVDPQN{{3gm5G2#u}9BBW~{cC2;Y&;t;wxI5td>>=(6r!4V!+i|T-?)#t z<0KU;SOxklW)HjTBLze|DvoEtO!?^KBk&x1@5@v#1rkGgy#$>*HLXE37ZyHT+6$1St0tegZL|6;Y@ z7lIQp#URnZ%x55|PX z42iio=FymsVt$Jq9y>F3b?m;lkhqC)7sNdpw>|Eg_^9~d@g4CG#(&m3p!eY3vwA<& zduQ*iK81an`#jX=vxMY?DG84y{Lpt)-^U#OjwZ*^#QMa;N!K`&owqrENv=wMAtfPY zMJh{eN&U6o%6^CY59_~nK(7JU5BPXs*uXIZA0GHcT7KH{wD;1}(^sYM$;isMKI5m% z3o{Q4DjxJ$R&-Wt)(csCvxBmWvv1FSIs4ZfXU>G2l{uf}Cge8cZp-VR_f&r0{N?#? z7x)!46|5`xv2bkRT}2^9R~5Z6*fMz1;3tMe4=EfnYsg(gJ{>w_=z^j541HzjkHa#D zT{`TAVSfxyAHH<>`y=>>!6O!rczz@s*)Z~*;(wG3FCAI>R@nvR8RZXD#8-S)xnR`L zGg3zP9{t#u)G@bIC08x3I#}IM{nMGN$EJ;acHGo)Uysimf6@4NCzMQBGvT|5%P0Ok zY1QPi$$v~)Kjo*hCQgloPZSlOt z-!8du$-5UgF1Yl9V;44G`1M7_7p=bN@Wr7QmtVZ>;!PJHTRL=U>(W;)>37ME%i@;( zZP~#~&${&G%i=Gad)d0nzPo(*03t>ibu} zy87^%j5U|7*>&rXTQ9hE|80r4-F(~8+i$-k?2e^(e0As3cZJ>6de<*^yY5+k&+qrn zzjx=_Y4?TS*Li=&{WsnJ`vVU?SiP?Qy2B4md+5dWk?UuzfAZla55MsDNsoj-^7*6v z9-a5-3y&>%?DY*%8zyg9x#5j}B>iL7KVEa?x!PTaH)e0VZsW_F!ZuCav~knVj}LqN z;>YiJe9sdFPn`S2vzwzf7j3?G^Y2ggdGg|?{GR&y>BeWqJ@f6Bep|YpTld`l=iFO| zZC$x_>+^ok&v^dA=MQWv*w(Ra)wXwDNP1z?3wOWp-HYKbE_re1OGz)ydAZ-qdtaIO zYTs9HdF`s#BVYexd%x`?wl{8HzWu%JM|KqMn7w1ojxXN`e53J=ZEx&;fXBStq0%Q{?;!$`|m8-Ic?{Hohx@fxbyj)AME_)?U=VS-Y$8& z;q7H_-~ILzZ@=;Ofq&lmuYvE(eCMrq>*%*DXjlENb?-&LxBR`M|9PM~{AV^y7?=n?8Q}6aGouC-t9ne6sqJM?cxIJ978%-4l1W?Y?XG zW4m|k{&G*&o~J)O@6+|49^Gr&8^3qR-idq9-FxZY+xGr_@9TR%-227e-}c$}#qG=8 zSG{l6zKizVvhVNvcJ80Ff5-k`4_t8I_0*{h#@`FXHeSg|2**L%YK>g%fr8X^s8O! zet|2^vAuAmnYkA;`@tq+@3Ljg$|kZPHi!*oOW6~ADZifI$k%cg-^~wkw}=;oVuGj@ z&xvi~EwRUBHU*mEP06PIrc6_|>1NZzrsqsA1P=)w7hD@WJs~6^F(D-(En#TF=!C|E zwuHYWT%T}L!kUD;6Ml8r9HEX#N1P+Uk>p5qWI1vjLmcIfcE=LOC622d*E!ZY9&kM5 zc+|1UvDxvgV{4*4F(NTK(UF*xn3|ZGI63j0#G8^tQb#f9jlk)d6L6Z8I6ZNd#3>9o#d>g>1)MgeJel%b$_o;w z4}cS_NcWF0tF{3%{BsAhH&sksyN-3;?2a;~xNmV^=f2jx+8}!ioQ2i{qaeYZ40TpZP;PeQ5p| zwzelt=9ol(ktqg>Y2pHLGt9lgVu(l-7l~9+BGN>*ND*0LfoK(NB3;}BJ1>FtWhpF; z4aa(*f{nonVH%sknqcR)vlVP5yO!O|?q(0Nt?YUBGJA#XgzP4XB5}9K5!*3-kFu}X z59~J{$b)z<9?Sdjfjom3@FHHyXYh0QOg@{p^Tm7>zk#pjYxun)U)&%H#JOU!7$ByK z*%;f+;zn^BM#5_TkSG@mMVVLwoA(ZJu?P{N;ze>_p^>txH>1!56wP8VCp9%g@Mud-`+EBg=I z#XezQvi|W zokg>Q&|L4a7Q?SN66YI#ccnX`q<5(4UvRXcXP3LJmot@1y*-W0r z&f$Yt9nWU7cs`rM2eWheFgBMD7Ph}lgTVBD>VpsF&>^fe@R`CXQJ+EiC z@Md-^KbNiHbJ=RFN7wQN>|Wl%?&0UL=lJ#P8NQM|#4li5_;u`Qehqt;U&~&=O6fIz z8+)C-&DXMj@%!07`F(6DAI~=Nzp+5}F&oSKum!w=t>+iA4g6B}2w%z`<(II>_%c?^ zLs%U9g7slX*j2oi-Nxs!`*^2#Mm#OHLZ`nfUKTHiXQ2nTK)=5vUWblWgW>`45Amp2FaFLq@U8rL{vv+~y7XQCFaB@7jlaO(;9K}+{uJNEU*~V} zH~B04RcPDS_}hFt|B!!#xnvLD%Rj}evV(uZ|H(J<_xa=e9sV-^n18_c@%{Wi{4+6; z9~N)(&-p>IPaF`RiG$)BaSZF!Df|omB|plK@UQqG%tm{}zr?%Z-{M2@u{bRDig9AB z7|#Z4SriDg6eP3B2# zB6qM0`I+ouK8`Kqqu3%onl0vI*b-jF&gW;aOZWtKDWAkHYmtaNME|!ax;%ad%R`}P6YsB?ZPun4H-!W5p zW%XosV@rK!D@*U3Q$Lq13DSF*ac$5DHt2*1sSo zR&GA^b-}`h1+43I*Y*YMmjw$?bp;JLC`MO*c@30Tq74Uc=;|l0LGl`aD~un|kfuh? z$V#NZSubmWS0GfUv%BofcXm5t!Xgvj_ zn(=FA@A6W~A?lZdUjn?eQ!ezU5KdXHPKyaPgJ&Q`Z?88C5dVaK>OJv+_(ALzpNjqB zKjL$72xS7`mGbIgWuZN{C4Lk?iJ!$U@NsdJ>9JMlm@mYa;wyN~ z^cG15sr@iH<8Fj5Bki{Z`ftAhuA`*C4EX1O)-(nJQPa$yg`bUZG4p3+Od#DVy>A)( zL8QbY&xCm$t)n;MOfqOk_In;exTF)qXd}M0gU*x_cS4RCHiBTBf5Tw|8DQxI&&R;# z=#SAFidtqtp22MXvy7u>87HnUz{%)%n9!Y2HL zzp#q{5h!v+9`F+iKeDz!BO|qlZoM$`L#AbG;ka^GShN}vfSgi^Y796aN6IAkkweHe zyA8AEJl=^CX0`_N_FT-|)Qdmw;FF=_-(|OB^>hv>8YB6TgpxXk!VtGYvW!w{g*1BQ z*#!89pgxz@Fu@WgTOo*^!xNg3G6FiRba(6L|AYQ7G_+7 z1o2K$3Z7@ySIz@8ZXV)syg%jzj31qo{5k#}KVTdKUOg2a}}Ws2tj8-GyMy-#rXQ+MfwUo^lBy-xK$(dvnj} zCdexVaWm-e#J#6Lb^D{d4~7=pd)QCz7uaFl^M`$P7n`$Im=eaO@ZSw+xc06!BvaRY3gw2Og{9w5^@%U#2Unxj#Uc&9=Jycs1jJi`L{_3oosla^o|T>{@l z4u^c6Du^W*Bj5?v;!?lxCvjhbK+pHEUhL$@HN0PeBC<00f7KzN?zVE)fA<)OW^LBD61Q!GQA!cE#;kJEFvV49D* zmmnNPID-62gfkJ&Kp2N`3EHG^IRcFt3Y~~|Xm`ZnL(QOI4n|rFLMGsH<4!mhBg{iM z8=)DY4uQs2D+0AiVHLt6JYRu3g&&#IWCtE3qmTm`ppQwfz>gBb*So{y9qq%r2EQoe z0)ASa2{$+Ha_rrUJnFXsVFW@g=mz~QsGUT#Jx#^g@9yOSbc9uxVT!{2O@zG&hY^k= z{D|-$v~?{!fh2cR5NZ*s!2`NOpYRdP32&T=_f)P1dBE3Gj&Q#e;e3R50RL^cFVws^%)m-h-UaGWz&b{S+i}+dJfj($sbCrf zT7ypJHk3aL@lg0*$h0FHO1EvC$fG%9ECOJWaD;^05Z--H0>yB!pKP>&iyJPKkR6LWLIQ;=U5;@Xfdp?;4ByqX;PPu0@DJ zxDDZ91S&g6=NHENRd{{~;TbJZ{Cx@}bMO;p@P8sem&yA^!16ZYl(!4v280j<$Sr@L z;OyFX{E&NwyP<1c*GI?qclGUh=Jw|{?&D`E2Jyq_)A^ycLn3D5rq&H++psp zu8+Dtz4oipC0;wW21`WlE`?IK3v(nHayK#^D-29!bTu@eWrJ#foZc z9UE2Y`dP02NYb7ht}M#WqLMF+uWjzN3|=G`dU!6OmcwSm9WK4mM_4Qh?-yn!54v^%HAroVAIy4p;G{8sxq^f6@q3$B}p8hKqJ6*1((%1R@6CM!5~_OD>S_d$E?h= z%4?HdK~2uZ8LqJOstGk!lT>1SBGMyddU!gHaFtD|*%%U1=Hm6Gu8=g6Sx9o}#z49R z;o{;^;Djk zY4J%QQ!n5ak(S|#Oy9`q9tAqnJvx1(iS9A!8_jf&P2XstdtCZPE8XMMH`?glJAI=c z-TS0(^r!oPbWlOj-DRx~VqmtBGACx|q&xB@ytydHD^An~P%=G&N9io;39=4Y`3Psx#vC3AjPig# z0Pe9$9R@{xQHCo&Ju`Y(hO6LoMIpeAC|(Gbu&5MArehQhe2{YViWQ@rqo8PNFhfAG zLK_rt9@z{17ePZsVQ}HUEaLJnOKVz@>2x@Ttw39Yz1faT)rQNAHc`sqsv})dJfY@s z;V?Pk9~Y^nxY|W;tD^viez2VWO-)9`U+b zjQj3&>H!k8y0fyrDBg)4DuEYnvKO@1Lni=)6s;M`0kpS3pfE3Vg9I(sqjHJ_0$0pc zq#?b1K_Z3_4IJp*lB&_bISiy3DwAD)P!0}9rE?T@M%)@ENk#~06lIfZG9AM(yAs4& zA{z6O+?s-?(a7>lBnQ6m?dPfIi41s#QX%539}G zn8|x#0FLw|gPY#uVo$OxtylFaQfnj+<$6!mQD-->f zNpg_@>eMCSa$;0uVvr~p%b_%&|2>kb<9m8h9MzLx{5R4^bR+#T%vltlXyA8Ztp;NS z5kn_xCE=e)lqV21JUl3m0?LtUaKci+IE=`2l)>zV0rrk5i!771}a05Mk+&*SyYB1P3f*79x~6S2iFKBH_O;a#O6qOLUJ)4=BB%bdP<*5 z53=+;8KcrIGDbz`r@MxEinh{&EZQbxRJ2{jsOWj=uHl}d9rPfJE|4)Q+9_jHbYc4A z{$`;YUZrU+zb2O{dHiC1%E1Z()~EdE-pq1T%=aq(z%%V!ny{<6g9~oL*&hqHavOHj zUg!SY&I9O76KmkXILQ*iLvdE85odNb;51DHPE4g@#p=cxoL*Q>_hVo1C?3sYuxHwz zHDSLY9;Y^X^FDNvh&ym9B9SNIOoWps^Aw)S24LU%7wjnX=L2wBDvjZE56(BY81a-dT79BAb`u zv{E^*;FWw7PHxNw-v8pGu{M8)S7FcmOq^yK$C`0&XBVHqC-OdvuVmgwLcLC!4Or=}9_0b|b$DEAM&y7I}{BR;;#L z;5|4O?-AU|@4|VLR`}-T<2=*7ILB6rvs{d|;T-9GY!v&F-w*rq0qkm@ft~7g@O^b) zKj>lpcm4=}6la$n;~Us{I4|VF?#?DQ8oQ{!Vkhqj?BzYlpJG+~Y5oj1CYT!kHtSg?f#@&c@-?(GHwRdJ|`ncJjB`f7p1edne$u z(mOb_vF53rXu5hrbMJ_%=VKE}BuI;Hd}yNK^)7sxY72k2B1okzk+*u&WM z{eoQ#>v4QI7%8ur=bjyRi+9qS{a7kgIjj7Q@HYb-lk z#IZv-pW7QgiWk{k>~7IVB#6H7l-z+6hej) zF^6`}aTc%u=Lw7CZXx#DaaL#q&I}cc5>YD3a2BvaREkkJIYj4&szkLo6DO_4iSamt zHBn5$3BoDjESw>%5w$q)I9<#TXX8}SOi>3fT?BU4BXQOtn#I6-6o->Oy|I`5gJ=+q z>__&Kn1$0vvvKlpj+l$Hi1S2?m@iL7wu|#b2Tn+K;vC}nVv$%Zmf$4ih2kQdMqG;X zNz1hJN>_-#u^={*y$s(+ADjky1b+4Vu^$_To!yYiDAx+xj(j;J?L5z3=E`f?+53H}SjpLmU@f!i~*uj&npN zli6C*(9v{$lWk$^-0X^y3Ux0n(C%5tXw^p$Y<0m)1I|@B}LkEiFVi8 zDao;w%&%|kXlu2Vv^BT2HqEn_bj)pSu5Vn}*<>rJkaw)R=5{nLoIkszX|cU*R$FI% zV`Ecmr?tGX9u;xxXshp3?Ph8HW>r`#BpTKVSxDuUYS@%%P?c#=lxf(M<=HDd&1+RO zz)MSP6&j!w3Q#S-%sNW;5HQLMWZ-I~nFGM~{<-=XT~lmwjNt*E8t ziP2-MqdjZ@c`H>;nMS^{BHL&Un$Zdx>*&t8Ewh>e#&{bGtTI4ht(K&;R!d+5s|{J^ zY5=I(&(#Q%t6`n1^_Q1p9joe(RrSXj>Z_`G8t3y0OckxoT3V5HoB@mSY?WNDk-c2& zrCcL_xz8>c80 zFm6Fh{en3PjfvV#VKearZ1S~E^0mhEE3A`bm4HbG0#7=jUV(;Mfd<@Q2~<{gQKfk@ zcy666J0wK1vQ?R^oNTSH01iRrz#pu_0qt9>a4j<9Zd`7F0f8* z?x;V%DWKMysQ@d|7*m;Nt(8Soa;3)Q$|CDD*{pq9w}CP^$6D_p1ayiv2udX(vMWk8 zaVnJr!m}g<28-5TiAIJ^%JS_^o^}<wfK9&ENxs&2ex-GRBE|v(Uj=6j~N~sa2uTxKabGLZ_bA zSw&^gLLX`^)C6y#rmYrAZM9Hot3`?ii@Y@OU*yqNi}c&QKT`ZGT*wysI4@# zD+gOIkj>gJ=r)oDOCsiE70L#(atA9)ck(wFzydWAc zxMwZ^MWnprsX$9DFs5czgw1Lzn^Qllp3eCDZM9JOvU*F?f(2T-91U3&SxQtYvJ_t{vLuI)uCT4hl6(c+ zivJbaT6(sYo-OGJ>~$(gj-$NxtPD8hYyD*F{c6<8*4oX{;n1J8cC+;MvqC%Pv`q%e z-4W3{)B)8HQL`{Q))30k%V_{)YwXLGqKI;e%@x^dhOfxc>y?GIfHe#83Pv~9 zv>Lfu%efjVN+)Gi*r)ER^(*o%XHlH{9#Bp&2663IVZ4l z4m7NaF9?`D_k2AbxBxbOtCm45&dDm0{oyYA!(FwXRixU@Dw3>3x}+TLk|nrHlH)E} zfxDy}27-b=OU+tYS)~f!EHz&vUu&;WYp+miuTX2RP;0MH<3zqj56sVUpyX@xQ+Q`p zeC6PbKXB=R*;$=Bd3lKcR?k{^IadoHZ7&z{@7u%l@f%tb{SCA~RW*&0g9 zq(GON@Z@R2pcFA!q;;Jm({r*ksmv?|j%q`=zVv;gI`WQ|>=8u*IbIoUaioH^MFUC4#4zN4dU(ZY7S zymyd*_{-?5wneQf*3vY)Q#PAlR^UH-Zc9tktcJG5w$6^Z_00?0RSwpI@_Cjt$aC`5 zDk>*m<7>XM&+x1O%2$R>Wl^O|E>oxvezCEof?NYt>RU z#h9C=_?DYh=r0vArm+Tpse>s-Eo9|tYA82L$waQEMsl+hBXYA!{Nmr>$*X zeM8&%=u>YeyEG7Ly`ib4ZIL%IM+sK0qG(objuNO`O~>VG13EWX31*I_>2qMF5pX$W zN`P~e&6Jg+EI-_pBFIszI+Rl?CI_oKDd4%;!P-5uRq{zC=M||bA+IQN!TkD`7A)Y@2<3Pke|GPQeu!`+x>j8l0kr>E(6 zV>^0U_dAs_2FmX_(AzBZ>j%S|w-bO_gf=IQBch5%7)PsS1_>7cvFoJMC*c0L+ciN%^^>QOziVy!qeLu9%ha` zjwPs9P4I{|86P6A^bG;dZ4bNY58$03&fY+HMY}(5xEs@qaVk&c^fdi$ zY)4P)ey1|t!0-koW7rz(c2{jv-5vs{cR$gPaDlXtG=>p&?rpdd?dV%wU=ZcYx0Ryg z__6l7Ju-_`M&)3qC>1$YyfH-Y3jKuLfhxSq_l^4y{~m4pjQcO{LvYnn%D3)aNZo-} zQ;|k(n!vC$>_JH*{`1g}B+Sj`GxR1CG;rm;M+&kR60Ou~$`OE*%&MvfZ z%#H88p~XY09mF=fe@E)BKieSM(Y}*`b`IdT&HbSpl8fC){6ilf{<)R_!JeKPjU=( zz+v=8GJOdBQX2%Dq8j1h!3CvG+A8(0H}-f;s7RR4^$(bGYsqwaqb{-+lP&(C6Ifz}3ptnPExJS>EEg#W) z)LIgl z7zbj1I04p53Vv}oaWDouwl(;L;mbSCuq@iy)!08?iC;K&aPPo=_TAXW<=D4<4z;)9 z=MPKZCA9Z4exaDH-@<IcEY1pi4=eTu_ABFdNQdtY!iDuFpNpkKYRnqvRJnV*pp2guo^t;DF!<4FVw{2n7T|cz3uL zzUE-T`?X1!^^?NV}lTi9gDD4u; z010KJgfdV<86}|%l2GE^XutJjL-_yZw;NPSCut$gA!UH(qa~WAQ~I0q?<4rp2w#FS z#}M~u3$I-D6hjS<7D9cJOPUMR>_>T+C#W9sl%6EbXV4HmwJFO(14^l+nPP|3oMdUx zkNS{uEw#-y=vUIJa`r*nr-hrKQ@tuk=qi77r}7wBcbz72BR?@{rk+9MjU-} zBzAwQO<9tx8R87)WBdpnnwjWFBb+F+M$V>Gf@Ur`?j^lRTdN@Tg%Mih(|k>|rMA~X zGk_*2O|vn2KzyyHtuL2+fQB|=_*i@BU$sPS6Qsm%T_S)r@k-)Fd?Sbi{E_wr*4=o!Q-=(F%2`|W;eHnHHJ|WL;iK0uW_vL;rvBA9 z(Zl!O|C@Gw+f@AOp7v*+NiL|I(h>hNuyvOe*`H^G{TV2|Wx#!sSvhxtzp$L8zK~iB zaitl3B-2~hH%9fmDHtU*I@L;CjSL!J^n*r+oXNPiJjJy2ALyrIDwj%n%R%Z%R%yi3 z2&A9V2G3H=Hl`V;2XUqxzoD=bt8ikrhBYCLEX8VAiYwTe zuoLfKb6_LBgHxq~4U#q{eZwRfPh?~E#y1{^;XVRqYK62k`@p9)9Vd~S@arYpN|aWo z3GJ;wX|g>{IHPwh&MT7zYL*tLMOvU%X@N#c3)Chp&?sqv`bi7aUs|AcY5yfj`!7IR zpn=i?O_lavoU}muN&7DW_FpP2O=XP^gvYJFwEUdX@^eVbG)P*e$Kb?A$+G}E`HcTKODo;6)zI^Wb{YQR@X$C`>wIrMcj zoN@dK=N~s9T!FKy<8fxT80TvPc^7arG z(Kf!LhNqc$Qh8ee8DRn}Aaz@DeHo<)Dtr?O&pW7hw1FHAjy;f@8uuC=i+1`UH3PJv zKGCLDVjF62ru7qYRv}Q^)Z*{(o1IO$ zbvo)CL7f`F)`Z&E;=UE(C|XzjQ%}n^oDX5lB%nN?)JiL?jsnU+&@vV{_d^&cq2B}O zA3^OksJ#Y#twmpoFKYp{9^Zp8QvAJg*{1yO4c zY8?Y*-I#`ySb1kc6NKbi5g1E5h>#FC)And9e$$AZ#|H z{#w*0`du!2*n#@g+TAF3uhxqVEo?^ZT?7$oNEtv4D!T_|HE8feb6YU>knmkAvp?dk z&LS<2uc$dh9-4LmO1I*v92$2% zQfQa1KiX}@+b(Ua81=lRW_ikFBE1de2SAeTcynS7YAis_O4(W`Vv`V?4LBE}eh2C~ zv=S}2H{!V!<(tsIgDpgyTJAu+6D?8MNqA$V8uxL)gvuIQuJ&nxFgZ)sCTb{LvOyCH zM#y~o)uACQ+EGtI(tvvlQWi=2)JwSZlJ&?TS~-Bv`3OY$de(p|!Mh001UuyttR?u% zBNXoh=j@UPf0c_wS3Ar2|MIgN=szBF^;n71INT>ARt?^i$<#@>o{akVwg>WZSb?nD z1WI*)(W$jcA*t8218EK#)r2pNWe1=m4bluuNiPuAl&f?G;opiBN^R00)9Wb+73}9DpXi~+ z)NBcpdZIq;fJWC1lvgk5v`E58I*j_KaY>q~QI1RT$Or-sYz6%joT8vWWqh)%Yt)=NW*)<#$PiQ7-KuwZE)fZ8Kq>d<4FCilsiI4iT zf>h-zt=@_fBt@hfNs5W4l&?z8mvFX7=_Fb>v@vEkU`7xVWgAgn;i31~DqB)>14%gP zQ(e+^PAkc#S&I0rs6$whjF4_tG$IM5yjl3^X{V-!l7d0NismIRc1BIF;G;a>nNF7) zCBH-yq6R^)I6?Fw>Jbk+ByC8ZTTz0>I!T1CH+1Ui{MM;^I+}PX?JGmNZ1+^3C`oe_ zNoA9Sszb_`qOA^zqA)>E)FmlV(qo*(sTac0I}V5fOXPUfb%(F4d*M}FIS(A1D{17_ zeoFuN;-kg{K|>>2jZY&aM0aJG`1a?39JHYp(OSo>9`LmTt0kaCci7GW|1&AgKURnjT!t0c5ZbeJvM zRa%9t6&)JllXngw%|QI4awqcAID*MeBu#6yC+&FWSB-YUp+8!ox$e)=U6()_?Ib@m z_mQj+|2klODtapIvjA<9?$)J4aZ>4SyQH_SGn5u@L-`KWpeHYeq+duQ5XLkXeXVFU zA}PH)mzB05{ik#|zU(h4<{h&}t8^^jC;2!TA9PtVj`9U^L^J|2qoyXF=$I39q+6&@ zotJiC*qtL(qZ4JRq%Nh3FFNew(8643a*|S-eY)FiCxcs;AKmIu_JnR}D~qHO@F=Te z5@No(P|f*dZP0v4r3gRbFWEUg&qSw_KSvMpr{j4hdh(t7d{+l2!&B!^PvcTaC*|n+ zm)1noi$3Dpq^6`2B-J!aQ4Z--eg0So8B~@K&DMGevXaS8rt%I*1C0SSN{Qbpm24Oq zZPdFet;4FQZ{!eJEWVUBma#*VoLUOhSfTMqYouF=|3 z*z3GIIh_>tvZ7tG@oJ8sk=!C%)@$ot0=*2)cPCofN;j*O z&B?H(^|h~_q`pb#H+WWTI`%rHX!Pl827Qz%*&;ne`h8c(@P5#YJQf^NehDSB zdRr%#Hf0Ubxc1dC)C%cs>Y4geYcpEU6ODS(@kD7VO+K9NI!BG2(`jmD*{j)}^o%~o z8&??$F5=Z}ZI;fFnE&^Eo{VQbd9-|C>%QtZxulVVDJlAI))yozr&?i?%6mwl?Ow27}>oryA&kw@B>${W{Z-7Pkv zg0Fn)Rv*Dha+ZO+T7gnqq@fl|n0#%!IT$y@34EDW>NT31y`DLOg;JDmChm54B-2X+ zvixb*q3c|fr@qvzPn0A%ZtAgh(mMn#^+vUjOn8mlzFD$Cl}wovW^@zZoa0 zH?QoS+@7{WcPV??xVlg)7NQJE0&MhJ1d=NZs<&eLreT^dN6 zb>K%btgI>B(zExl7V@=4b@^9gL$#sie)7V3t>#vZH~N}WpD%o^0ws+k+q#4(TY^TV zqK=XjyOdis=Jc7o`~0DET3=)4NnWe5>TOS_w$W7-q?x>#yK+I`XcCQUmJZII7|q;r3-4m;tH*^=N1eT9FadXCOvc>-%Gq5UWJ`RFtC~CWox&ko!&J zuva-6tF;OQ2Uf8qXi?=SNzFACxzyq~HU)Qw*2YAXqrJCUq)^*5;>XITDwLCTC_%_k`r+yNXN@PJL;1pn`#giQ}9gjQAjJ*`WuT{)GzJv(Q1=;MUYNLy0=$_ znGV%xlu`Xv0t!W!GT@+KEOK%JkEu_BS%-&YmSjmE30|tuC?iOyC*n0dQ4gcQC6c6Zpeg0)qfqsspm6|t zC4~wvs^?2zeYEK1^m?b#5UMS`Z<1Uu?nFm(=QV?idvu03`us7 zettvGr}cw=7KGMHG^@<>l&b1hn=qtVU_NN=tyk`;=j(BG$g>!<-=76JqE!}oDe?D8 zKxz7$*lIVt!%%7{+AYTjbl_~}scQJvHcXE4!QY&r9!xhN7JxHP`NcUw+$!+xT7ZhzitBCM%FHIKxdF$jqN^-u zFUC|I7#J8F7>vHqo1ZNXz1f^LLyxQGO`757)2r!*M+f%QZwKC-io|z9M-`Vxb3Zd5 zBj{TJ9SolVHkrAp(a!yt)#7JuU}kf4m5p00F_!8m{4L?An5Yjx(hh?rGqtPT6EOwRo~GZ37f-13k3$58`%z`%EK^V`GWRvB|N{zI}S2 zb?~WZ9iEz>SCE?nbgfQ)GP*ZAoiWi#NzpyhziVnzOiU65!beKz|2QY2ohRo+dSg67t`1#ybgToHN+D#m)Yl3qQzsIL2@~5A-vSu_A_#U6|T2+)1t)Ay*~~Gu1Oo z5V!eRY>mM@klFnM?G4P&FS;s#`}@cESEr>#My6$?Wegn9zh7!fvNJL%G7)kWm7E+J zVvA4X7y@~z&LmrYfyN43}~z)r>tIf%6u&%@Uk@Uo&XML}<6O1$ly zodMkOXMN2U8cQa8^P`a{fC1KcYTPq2qN6hgWeiGBQ`ko*M?1rlB9ooTiG+IuVH_O= zHBcC7bta|uO9dgUwy2X0wD)6+BAjutNntsCV+Qw1?j4&D7Sk{MoN;4P)yT{B9eMvw z4#2S z8korxT?KNOW6aedAt7NQQoDwQhx!vjxzUBbDt1fr%p6wqF*LvYLlr-K4YmZ0Fd(awH0XS6}lkFLFL_Te6+nT5pO}z z?KsmP$*wB4`=RGv+}|R`RJnr2*A!=H^4|`&i$Fq>Thdc7E5%MAGca# ztkv+m_QNRl^Pg$tdU$w9NO+&{-Z4=+_d)l- z9_j9*V0+|&u3b&tcwtbi9?kmN|2nQf-kpUfaHVZ}>DU_;QAE)zQWC>0_?S?D&7w(PrWFY`lVy&sh0R=3!+|`2`TGU{}$*%i*+X0;#ma*1o-&{L_H@^@Tp0 z{NJq=Xlxs%kZe@cf7mECfeB*qCRiisy zN=^*ENKsx~634A(69;85Cz-|sVtO4-%Q|7Q3bn41%epF>Z>K{W^ybyEv9a;7@t{<+ z(?JV7vu;YkurJJ&3rko5R%>K{5OwLX(TVAqLk1+8)gm(*&;|GJH-G8UTkOLFGt*Ow zBR6cIWoKMY0-x`@?pz3KAb};4edGwYVx5VVrwPkEGnP}3ZkQ-mPB8YZ!om>i#Ol6% zBO>}H_DzgPi0Csg6|=ZMmQjgnt()o{g|<{{q*@2U2#zqB#8zzu91xpOmYr3e5If1? zh{9jNidwpKDWJPMB+rpmUY^xAKjbz?RJ0=zdB@*UuxfLOISzb`l5@!iPbEj$O@3Gm zR=NCPy3m)k@F@*=IV@Q9Sz)r%y4587Otcj2TLp_2f48GLUKu*4E*)zq9r732J`E6_ zX7N`mX(oz}rnx9ODLRp;D6Jt_c$jq~PD@LE-;DBk+ckOy#q}k6_Kln1rKf4tir)`{ zsP_jKNTNFOLvHsF^)*RUeQeCp^zyi3d`Av1S7C(^jWq%3X!Do=nuEG640;^d4hQLJ zU=fj=oSaA_+dJJ9_^bg8Bk8HWWl;kh@dKg~vLX`7Vl(>mNsjE36?v`i*cz4=7!(*3 z-TSP8K|z6m(S3YIxb)AM=0it^z|JTs9ubB=X9NkxO2$uUTFC5YttZrKrJ9B)TWU2o zMrdegL}&yNAODm-!dQ>YjdbFgnD2!5Cd_H#SMV>oUikcTUfeb9gQ@ttJAUiLmb3Ou z`E<(Tk7Fdypg$%nscD)oy*Lq|Xm#=ENRA=z@#0`6wAjs-`T+7!SnYoBS(rqvbm>4q zZMB-OqF1k8(Y>PKRMGyy{8T2gtp~tF8N56fo&X%FZ(s0CtOQoa3{WW;usLX~g97j| zS-HUCM_33NjXs#%%)A!#f=4ShCN!jPpBP81BdS+ObZGQIsG=yi%cNt$M&1RhGf^|1 zoRJaAigHGl@RGA4 z?2o!$$s0Mc;4sE-hWnVf4ZgWJmRFn&OOZv}g#Z}%(Ce$2w0Y4?Uq zdvN~zb<;*SoLPF|#EBP`_DgGo1}5DNI3y<%*ofkxK>#2=SeQ+{Nhx|63jX11JOU6w zqNc+_vp6i(X0tiL+$Yu9FD%rid6&c~;CdVk9M%(T;NkJWQ^H5<+C)}aT&7mFW>Z3# zu$cS89x)r2w*byG9oz+&7K?Q{W*w`;T5Yr05^W9wGhDh4wdL(8K;5sFyFCL-tKQ=Q zJ%LMH^^;spXLE~V`(R9@B>>L!2&}y=0Wc$A=5ksB^oFMGgEyxI1hdfqwZ`~l28%z= zlMijr@h5t8bM_z|V(gNzjLb7e z6vDTd7+l=cr(w;c?y@2R(yZD2)AIv{Sge_a)wZ+mY3?RCUb&$)sN{=UfBNvnu;BNA z-ZNjY@KkPHx!?~!g$SLi8~{^$lpgr_(xq_(iMlS1Jv)D%@%$^P@!)$Z85>)n+rufF6Wv1Rg| z=Wcj>%8JVtuRQ)OaWoc}zoVBRsF{M|ToA;D&*(}k!=fo~Kd4JnE&7L3J|tMWm?MJY zLgG>q$uNpZi*V-WhMmx}oMLK=i}n6jT(|O~3!i?P7mVeF5{R0smo2(x@7PaiW|6p> zXuQ+kf*(>`NFyHKG4T4ZFoQ@Klz-lgPc)DdD?BVFDl9fU7NF25kM%mSP9Ve;YIMJ& z!z1ZolFqFEr8L3HOy_?B@rIenX0?z%N1Mnnw|OKXA|k*}_G)ajE)jAfJAp4@@KAc> z*H=2Gc-Ce{iu|rG9Enfv1s<59ST@{anDfn+vwH?9zz$)I(7}Pi>PbLp*7pTt03Xuz zny;kZSxI_@q$C)!8o&m?5QY7NKN8v9?7&eGdbBg>Q};dcHPDUyMEx! zUAdZlLt{X;D`&$HmRp>KDVLlc`YA?05Y4+uNL6JRi%-GJjrmw zXr5#P7z@?td&vlc8homIPyaXQ{nOk+wx!2^jEV7d{YxLR?4NwdMwT2=Q%E15{%^q4 zk)`#obWmTD@>52!Rh!9mOlvQ48|MQ)+BP}CZA^Qt{x+DpR;#5}x{kpqdo8ouW9*pC z3%b?wx{ps;v9>r=jvP?6CnvHIG5(6zi|mV?=CAbP2YnK3S}p0DpnH#drm#Ouc(qlh z>0AS+;onwTMzUObk9(xJQO$g#sP8aR|7A_tm{x-e`4Y-?22GQIf!XJOFE_}+q&bg` z+(__xk5i1untYg{WG%(CSNe@p+5N@g-Mz+UP4Eg%>M@30U=Q%O*JJ$IYNgkh1q1}v zvcSNYKuBKU$vwxXtXW&!i#GcHivQS10DgZ@4&;Jq&&w1XeW~v zMf#2&`HjtE{*2G~lo)DTnSaG|Y{c-^Q@M_Z`ykqr=U5F#B>};vM$Bc=%t;<&%mV=? zyYdyEauOi3RPyJqd5kRvZG5vf_H>tV*Cr#};v0P&>i0YawLVkUNT^2^4`cW!tTLca zHC4iMOxg^pA|yB{P}3d(&u_|PLK8Jdt}8()f;R?c%?}udXsGxg0*-kw1)7wG~n6u zs7rWRYOQqENVzv4AH6N)Z^7r|!Xll?BqGwwrl zH(^bY59%KH!V<`*Nxm>U{zQ8ee6!H=0=q2`V64=oeeZFLd7MySQv&M~77oW4IiY%X zj1}h7$`lSf%{g{M-P9Y#Ege;P(b(xj{`S?NOD1aWu`?Q~m3u7ZsYzWg^ur&VP#&^- zOk|~}vvZ24M?;EYxSu7NTWtflzt!wHL#Es9emFkhr|fooXB&G7FbVyq(>WT4e|2y$ zzV($JoJOZ;oQd(VQN6U|WPv9faq8Kn;6>$Zk3ruq9SbKQmIf+ZZr46L9-;_YVlcr+i*nArmTODv(0ZhjVFg6Ioncf$;1wFx5-hX)&Qr$=6SU& zi0v5@(;9NRG39hS0STQ)Z7KZ^sVD!Fr~_KkaXO?f%es;t{dCqcsK zpgI8wlC-Wrv~iF`8vPU_0ZT)x?Q9=Ev1PiSa#k@$CYxta(1z7%289i)){_m4^mAv< zILYA1*zOq}zeB!~tDGoUG)o{}M0zIPy zqk~X_dpyYuca(IH%M(q|f~ON9GtFs(dWPOKvf_`QPcjCSM!rDWK#9c((5l#wG1tSE z#BRNIj+WFho!5mgBo`-ubHkjtI{y!Q?*Sgyb)AczG6jPfv>8kRFc?f9^xjBdN=*s-pK;rrL#`?Q%e15mc#d*8iJ`b1L1%sFeXz4qFx{A;ZlwEbUMDZU*Fx%ek? z@9Lbqq4*{2EX4yqf#*?%2WSAdssN9wzy_Dj5fY=u>#sRS0Z0RS%F{WKuqC0xpcqiS zV%gIaKr#59GJqato-KxiOATrxfXF zk?x#-CIJ_`3z=GAXFPzyl&_LP5x$dvWclJgI6wKa&q`kW(Ca&6;|$PRFb7)#F@nl6 zE)iPG$|XCR&*0ggA6OvdB4EB&?tOV-I-Sp_rx)n{pqSEwD(R*m;hoE)87>@Vm-jqv zl7Tm4M8M@|Q51oM^IA4d9^$IzyuNuHd1cu^#=8@OcTs5&fH%P{Nm#`;4wPHNmbbaA zfkOR_vfD6)&DWZaJKlzsV=me!agIV-BmRsy5zDkSH7YCu2-&-Ii8A$|brxr?z&;zK zXrdR+1cl_4-9QqEFH$zlwFES}E9s)c1#ELL&++Hjsf;UM7-RVl2sV(wvzIQ(p)HLK z1K~?6=MU3c8fv}AJT(`T!0LC7o}-ghM(TT=h9(S(MaB#_CT( zGTV)#vpQ!U8Rf=*fbI{iOCqtis5fZJ1mGjmuCjs$(3ZgyR+(4WLfU2xuh85Nj#6TG zgR}dGca@@(=p>XmdrY$a3{ntQHJtplPL_&0k%XyRo-Tg&Hat+z>4xHvmpZ^D`#P#+*iYC+%N4d6gM zWjUY+v3`{B@bzQO$`Uali5A?{KDaKJW9zqT!Aph)EYp7U^v|%l1jbvCXE4Rwi4;McxA3`1z2FnHcSn)#`010`U zfeo!cua2^%{D~qv1pzW23^j>I3v)<3noMEq<9`VA*ZPX7=lH#*_&~E;YSB=&!mlUg z1Y{GaE8G|=KlG4n*a_#0lX$>;j^J$4T7BxTflBT*gUKwrB$SftgrUE6U5nHOuHkU% zG2AU0B_gg<<%`oDdiJO&;}$LPW1LU#IRXahD`gyNVi`IWw>D&p!coi!(3$1&c$z$o zh{3TcGP1YADQi}p^N-?y0FY&(jFIx39{*!+LgbIr-6VBtIh3*>(&I98akUp&buxd^ z@0x1)Jx5HvtV-MQmL{AE+PSbatPNlxeDB->?jFx|VSE9d51ct}orFe0bTc-o8I_!nmtI;~{?_o{oyQ)3Q%T`azgTRb z|JeFZh^NNLqR^i!3Eo3xSe{>3R~M^`=GbcpRbqRM-H_E^DepA*-S%$FF7UMx_Rc3I zv^FmmV=Rr-Fs%#=jo0zgAM=H@CTI}OpE|No1&4&<<$EL;MY+tNP`o;;m@3g9 z|F2w|7>|ci(N{#4B|Cv3pwt-81aim5G)W3KL$^1GBm*ui8(7CZqQ6$&F1Eh-E&b)D zP1$YPG`t@=fUhr1w!X1G+=_r=*cK>GKdqAAkoxOv@~6L0R!s3TmTZb1B=1HGdvmii zp^eu2YG|oAuQHJND*Pj+df-?QqS|$m#3t(!Hc=4aYpTz6!8M{P)iDTV6I(phO1`5b zp6n|We|3c@Sz7o9|KYlxK~3>t*<4=ThYoWcd+o>BSyDv$S|1g<$XF*-lCigBeWj#X zZQ5#mb+js;3gBE?DxrW_g%+62%rJssRE&Qc`~E&>V{BQc)4?P&NCv%#SgUo2Skp|I zUabq-UjR1AiI;)cl;xznrx8wXV@G2m7QqMW^Bzc{5s72yEKg<&fO@Q4kRv$du@9a- z`@zeX*{{1F*gkjv?)e9HY=2;P!%5`EKd`h!zn)y$`q04x4{e=&_`t!3w&G4=)G)6h z1pA-xLHh0Faw$C2MnE{3Rzc_j7L|o9qER^i z`Dm`A-5c?SDMZe2b0r~iXZC-KE8(e18^D37mB}_Fg!Ob+>h8QvOzdOF_VKcsBx3KW7AYof)Alnh2fQO3dK+kZMN>S1M|? zzz=;Nhb3eX%XiX?LNjm88LVGOVl9^M0uz`d778Sbh2g?bUyns1v9keI!nK~A^;n`c z@>Mw<^i+MaGFoU5 zR*7?cDNt$NlL(S`%%guqZ4L60EN|DQ4T-NfRG3!y&Z5@R)6>@0v$1Ex$PgV3IuyLj z)GT&Gts9cjsGcy(OxIwS((HsB+F6Nn z*jIBBkgJaQdfD&yovh>e-LbJ;E*c%%Hnw&1rrc<51c&PtbPHJHCM!B3kIW7NS1R$U zQZIpOx1G*09@8ygKF&^U4tKXtg&|7ytmeh-XBT%ZzqmU)V=;>Ic20DT5BA3jv3xR7 zQqyX6^{vs~HI^@zMuNXlVZEj)uPc>mqQUM*=v86YVM3s`L2@ChN=R$N!t*i<4^9VJ zc*!K$c*&k*cRp*e^a#|nhNWjyot3OUU1wId{w&(^CuRpm*R%uk2s&@8!1Hz5frMMi zVdmF@hP&CUuSJZ7-^>=|l5Q4Krr5}G=kpOnQu3qyy^&lbTi_+O=y2m0yk1M5?kvGG zZLGAm(r9KE^XPjP1U!2|mroSl7e|A7Z*g{8Qc`4nWWW0#^p(t&!AjbzGIAaXn?=)G!q z8Xk}EG;F(+NT5WFneMK3S3E?%MlC|dc3)$y<$MBO#}>9Dm6l|YxvI+&CtTl?G3kJ| z;Iu0qcpwBDG*%SqtF;!%T-$BP3f2e(X)M+PGOkXO!|#}iTq;eQ>DstDmvnoE`bv1gsRFMu zlThOUUWZTN2V{&Na(D8Ryx>|nz>8Gm( zP{etzW4NRrC(eU#oVhQ~7l=%GiP1`w5(=rJ`^NRohvA(zvS?lp#q$C_#U*uhrc}2p zEF%bw6sCm4B82dosbeX-$nFqiG}GyHPr5rDECd;-b0SZUCj1EMOC@~kG;)q|UerEE zBe)Vr^940B@-N3P;ldjnNL}bZwv0b@4<;|jE$xZ<`?t?-`1%9ewTb^0NwxHS=njO_ z{0Hvp`{3=k{b~;=&w92#bYR~DnH+*^d#`7T^={^8(@Ne2-nYS8!7Nj4Ph%Z!zP{d^ z>h-k9E-%)CrhE_{I!x|s<@X_h!I(e+w1Q?e1NnYh7A`^`>$T*~s5h}V`L}L8bm~>> zS)ux_r&s&dwMyM?B&|W#{XuP?HU3%&jqG?z$mTcgeWoAil&q~E9Odwv&RXGUCBdwu z51gW=u+AW=3&`gL5syTjDeO*$VJ6F76jl1X3iVGQTqP-Y?f3VRX3WS=nNe`u)d7FX^ z@O65Nf~Fa{?ylE8diQUv$jbJE2e&_|eDbc#S8gwUUp~8W=gv*VA7RBacqP3pfV;F` z>wzG{M0KB|9)SwDaSr0FL!s*HnuB%W`fyV=g`@^SqQcy-&t$@x9KRmX4PoUs?|%5< zyMGh!+;L$4PQ3H6%eP*+^!VS7?btc?65dE$kHN!gLZtuL{4@Q)^TiM*6;`kZDIHl^ zbR(xh4NSBIC?UOk+58A(Q#m0%u&9NCK}iaxg2~nx9@!Xyx`-HC!YhBhz#f){**E{z zIUZ);JN?e$J2&0Gb^HCh5pLgl|H9FyuH5?mlPBMQ>ygKE$4^b&dtm=VFp3Wxya$jX zlV5d+pCStklo~90#x2~hRH-TU2sBemiH7=cs6NsVK~yBkcqW=jgfgmSqtHU4^~)}@ z%0;}NTG&wc)N_dMD7@c>fPRL8Ezw|Ws1=m3T5Zup)tMf-0E_#*vkZ^po`++ z%{Wcy0Yvfedg|k4O*i5~g?xDd0j{Y5IE&{VS&}mnj<<%}Bkhblf{mL^2%Skh$z$Ok zbRd$YCLPEG_mH6^X{X(5rOH;mf2e9lK_~5>fK``oBieCA&8=i1duO@`DCn@Ahgd?h zoT%c7=ZJgAEb4Tn>AozZ3!Ec=q?E8|w4t7Q>a@3+#MRQ-bSBPo`kne_p{@kF)Y2U$FXgg5Swb8}2#ZCXK=Ra#l$%Zw-YJF}#Y7Vd;s%*7-J3gm z=aXq|=koEX+qQ35>OHo&b5CkU+i|ex(N{NwgG+t4WP4NXoo9DV92p2UA1{m!rus6i z?W6OPCohmTWK=S3)J?r(U=FFRNQ*-wxv7f{loBp4y1DeGEQ(^3?EoR!?dr<*03&Jk zj#&@Yau1YKvKr~klU$2@oqEz)eR^jZYI@UNtEgzJV6 z@KgnDZ;e&SyycMSJfr_y#vY>cjQ%kN`9ScDd@l@|5SA`wA&7t_n@iEuqe~R2PV*8+Mf-()@@~p~4wDgwz6I&ex|F2m)DE zHRP_GIklF0=%We}t{*6GFibU=Dd>lE1M~w71EwEfYC}O-`yY{lu=d;;4h-ec5nQyv zEbqCqrl=9j#V@XerD{83rV3UAYi$dy?1b2rVX}70c15&jaomK4`O5yLf>@=oJcmw{@3QJI4V$q+W9Js$A0?n1a|uu0^x;{uW~z5x4YC_)A~ zGE_Pgenv`X(1SI@DlzrV$z;ahz{4d91AN39&P1Z3WtH5}-#_z~#hqP`duB$acC9>c z_s&aW>Vqea-E&(*=ydquts6GKrE6r@?qWgy)9bGqU)u0M?b)Me@8z|y(#?8keJsV>cJl`2+#elBX)j7jGAIr9Gd9(mNg`d!!SUfXcuS1yd+^GK}uSg7^ruV1_KeJ75- z=C<2jLpp{ksD@#0dZjik2IfhuSCj5g8MP%D6hpxs`0igQEq`%Ixp?&G>MvQp-5>$| z?UrQ^3Mo)~MY|%5XIS|q{b#5F6G~n2JYH+{;vA2TWvN~o(0c9Y6Fyh`Jg%ZJt17g5_-cNNw^hbdj;owvpi$Tc9iW z6PZUZk$HrSV%Z}xQ6p3nB*-ua4T|Sl@xuK1aotX5?=XRaw68!4zcT7!r}C#?VWug2 zG-30&UU&q%2#;M$5Y-I9Z8bdMc!x3}Zg`FXG0Hok(jPpTuRgJI;n>j&D^I+o;q9-L zKVICvc=F_;{CmaSulWVgOFHKfWKsyP89pW~;ea`Y!oa zn1+kS3z;2Q_EO`mghcBg9~x`2;?UsE^Rg|YHkH+Echo1^TBG4$6TU{{KWd@1?c+aC zyHv7xIcgxz-fEC##h6v5j_lGHRq)u)CVKeO3BVS(Tvl@>=8Y0_O3ctwdfv-T&hrK> z?7Xh}%gE4ohO8(?1zAxPXW)htdiYnNLKsb=Y7tInDOU!$h16@3!OfvEGT@_e3E|j- zF0z2ITL$vLvQ;91!yyN;t{7T^r#j+o7QlhOq{_<*IKW1h5cxH6$n;{f8ciuc8P zyE=23WJhCLV{4>Y6qMCL>?nO|H3h1#M85sR_PxuZg5uA_@5Psl<)~kIGpgVI|+Mjk13#_}VK*9Q?nAa8{thv?Tp8a?3gs|b<1E>J23i^R+z z;ACoRlhhHbmp;$tQmo_Si&~0WF$104=59Wch4PE$1*F$6nnFuZ z?9#Uz@1(qWLE5Tmx-CY1?J2AT<*vXRLr{r223d5g=w}d#L<*5St{F;-v+PxcqyBB&K)~??v|m>)2A0r6Xp1Em?-m|1KF+}OU1v}EfsZ?St=bA>w*rHQJ`+( zU)-p2Mk99K5CMA7Xov#KrNfnAz zYJd`fM!=GnNk2fomn*L`7K@FAAsO*NJeWf38&irZqdr==*Q;Ybj2-g=6{Vq{Xo9n&-Q9Oz*^xTHhmS{>W*MN_SDG)I{# z)9q^NEpwB4A9tpmWAtuzH`bf4C1^(3OPT)cWj9}nJc?#NQr!rcP$@a36;$b}+l6{Y z7-+Chmmmlj$$>wnq*SIQgGevtJK|;D(ynKDs}55hdFcK`LbN_hv|fLZxqWDgvirWb z1tNW|y!}~nG938%drdbGk|nIludnN*bb8z?|BW!vM{Cp3ORzbN@ z?v}iLmW+pu&Fk7xwJT@(Zu`r>ysh|8=TRv5M+(N1@$ak8;`;%L6VxKYORfQVuT-21 zpA|jBQKM(6{l$Y&`>SU9t~~jk{qKJA${(KlrT3h}1HYq$*ne|MBkxR3n1N^6-P=e} zf_fjOUs}p#S!FRzv(w91sbJPC&^2zVGS=UugmJSLm#pujoObye2l2+=XZ1B9>H|&Q zZ&SdBHYOBbG<{%norWuJ79e7MlrW$^&@5qKd%64-?)DbHXL~%9U~<@+x!;?m zJ3Zars(OJoz%_16lJd9#P@$edED%Uwdo<5Vb|m6$w((Kq`C3ne)!w#~2)}_9>F8$m z>X)pvmOH+stV3k{74KCvW2fbIT-(Llt?zf*D;e{ECFQ?B?)*}R7Kdoyr0J4NwXv+^ zJlI5q*|N$cK_;P-M_#`7bDz6+RrcKbm9N|@FU!Y^Ka^{VA1wYdAuec>={&p@&#j@p z6dst!=5zUpK#4h>2>w(Q*2+D_+du!s+ln`qF;4cki@zlwC@vKL6E`h;l1hC+15_DZ z>qUnGi~NcTUS91@Eh(ta4*B>YMlU^i8FCxYpN=k|#i->4cmw2Bd4kDngM@f4$!lFL z3{tzi@^Wvayntp3;vc=NoXM*BvQaLlKWDs;M6{T-zLCkN@>cZ%)7qGbtW74`Vr-rg z$2gx+FqYZ3|VyVF^8$^|w zy2Xss&eNToWF8Tit@l^ulIlF~$xdf8*|0=srQ6t`^eN{{_{|2rrKYN#UaoDZD~FF~ zd!T=i7Gc>eJ!vG;KDb7yQ3L6-2|0z_gAB{CPkvqTXXPIhUnReN_21`|#N8uJ*&UY zcpt^C8%Zb7?T`6ym{#Ed=oeeS=Fk$H!b~q=P|qUQ5bU+K9FzI#2YBTA8@87-aKst? z_4;b*w1-J9F&ztLE?=#lYIa&KHH!!ZsUMQ`QPB& z=c%)619VPRRaH>OQ_+>|hNqmSh>Xi+F(nr6N4>}BgLQjm}5M5G{>%@PJq z5EW&UpN($ONV=gW38~XDmh){MdB-gmPc6^Q?e0C4N}TPxe(g-hkTb1=g1AuE8o4Ov_Nbv8ty7q?Ed(QMsT+spD=OeMZBw&(+tf)cW$Wx0WVG z(cHfgNyaR7#3%uokbJc+pC0|9VOKaqSSbv_d5W;tAeq4HdimIj@~?s^;!6}5VuJ(9 zzZ!m}Z*`z`?HAIlz;t&vrQ5nkyGI85>$~b%9;Y>isY^WVMw8%SF<5#h!lxtqVXgi8 zMixeJPX%C(#$WMfQ7!29YwbN z7#$Aw1zAQYftk&&CRbw+y-FJ!g{_FV+|Bbu9yv6#J#Gw|e_IvCsL_XiMxQ*s25TUk z(0(|zLarrE-nWKiZ<1tm*|kVE49iA2;1B3gOG8+hgf}n=ueV8f zV=@CUI9zk9%|FKZxbPD?A0mHt^XKD>heo&OjN|dvDx6ZAEyv@p)}=YR;FF}KEz&OO z=e4)!Q(uDcn}%gy?T}pK>z3}GGd+!RjqvoY>78?1Gg~s7H*Odo9q8*S zgwqHwrb7tYHU=qjBJ6V8pyF4iVq6_@nj;>_HL*eBnSHwpXqdcf-_~mER6gB+lx|J8 z%Y)J48F%ddJ(~f~N^O~6T_10|f$+~tnlvxHU3(ju1p4HdQSf#IyzK>Vw`~P)H#6R{ zQ8F+$tU)@dgwM-sb9ZKjnm^3U&+OhYm(z07Q=2BohX#7OEG;02yQVi`8x{+5>gGlC z?Q67x_?2ox>#+|sf8RP4yl%IA3intVcOU9Z$MPo~`G` zznl9ESE_J8`4r6+sD9Jyt9{m7EyY(VtQN3hELS#`OZn8BT`in1R#nS`h$23+mVNUQ zkJ|K9TkW$53;3ro07mfEHgU?18GU0ViM*_+{e%;n6C(zsjkism&xx>`f2Pv8S|QW zjL*!|-{f<&EoG0Ox2tYRMS-QDsR|)bEQyJUwzi3x32pPHw(+*H;i3Lsrdp^;RwF4F z)6ObylC?f%^NUW+vO25n4Ru#?T>tj}xwe4&8lW9U5d_sqThR|TTQ7Q3n)J<%M&8w< zk1ZcOxSXxF*ZwbP-`-k)Ez>IuW-dg&L|Ph1O~My|W}` z^l~*G1@-Ka{`=}Tt2%J7j97d_L{^8TW$o-*u~oenqdmroI$3K&MvAiX%AmL{)=CW- z*BNWI-nrG{t{%als_|Fzn$>OK|EJ=xbcwBVt3N{Mu4>!6W*C<3CrSJdkvAB^?2v2P zRclTw2iea;_S+GY9UF!0_e1tA{y3Bnn&+U-mB(aD`cmp z)lti0$4uBddGJyRE^N6PKTfyAqhYUW!d)}gn;Y?@*KmJu3sW86AxL|Zl%#4mG!T`; z&Gl&Jg8Y;$w~{Z%0uZ>3k#7ecf|_Mnp|r_hM@y8Tv>4dKp|s?|v7jv)r5ou2$`|lH z$bWNfX6D+?N4H))-+5-{$f;1%nJq*6`ug?_HB4XIGk?#_KCPJC-rKc*X5zMq+1~vl zBl~-dU0lJRC|7VwJ5ecD02hO``q6U+uOL%E80K}_S8pc(vs!ISR_0d!sH)1LJ?K?@ z*n=L}RG31TKo+DOSrE)xQ^tE0uP5in#8}L_KxYg%pkDI2Jzm8_Mw6Ze@p@U^coL}{ zG!meQ5u2SdIy}&a$95yB)0tt@;>-~$v^D7p-Zq1SsUpWSJU$_RS4>$!dZ#omB4g~z zEKB$dE`*HvD@gT}t(qof%1e~}$)}AdqH@Eyi{SfIxQnnJ1{*`d(T{35z{V<^$RGbk zDuI-(Cm8W^3C!%B)#M>s20UB+4@ZT%2rpQ=qJq*>`v?bSW7vAf~7qXyQq zX(RFx2!Dxu1UzOWe^Dx_xRz0mi|BieTXjfGz{rlxQ}D3%Bt@)IxiLA(3sfd&Cug=y z#V6u8#{+$xKoQ#tRVYktNvBakC6a*1R`jWnBD!o0UvVV?S-$BI9^S^nww z+q;Ctb6vZK>|2f)@Ff4A?CIUPhuc#cbSWF0ND4 z+~JHusOk;eRx;vs4PSt9N_`5NsF&G>w`eQP4T%2n#IjGC81Krs+%8N<#nez7$y%3G zyNoCUB+chK2RtW|%!Im0&)54E%BKXNr94T`p3%`hpcOb<`bPRjh6eD49u(+ipqME5 z;A8=ztsEE@38S7w@C^E@KyzMsF|Vgm7W!wV(knBE?%h;ea$i~;IF(J_GV%-i3b*Z5 z7L>yadk!jpu(z4#r;qQoZ*(tnNyE_&F>Vl`N{mQ0|eFc}-(+NmEOIim!N?^G`_Cs6yF;f*n$GbdX6cZFT z!BNulXgNlSLd@@AM)c(5(2&c;kKfS5(8Sn?YtS{oIfXoSlL%S~#Gfs0coY1R{|yJP z_|LYJwqCBW)c4JCPC-|h7nMuOw@_P_lD?<~&@f*~w4;XwtPJizrof#RGB$LW0xG%f z#s(b3I=KF*+BH5S7+U^8iV>{iiR*Y6CGVP9cd%3_+15hc!7@#(WC$Y(QQ1AxB&5{V ztJNE(%JS|ro#!v6E>G=b22U%qaWz&zS);kmg-4%{(2bMfHC3kNRl$}CPbOkLZz@7k80Lw$=!j~*X9h;bIoCX|1`MTn6nOVf@mzM zs;xlhb)IgBI#9~93=Xu?KGv{(?4-UeKz^u&c2L;~m7%y{#wduN$b|ohLtNV_k%HbC zxMX-s9S|(GTJ&wve~x8Q-xmF2F4ngtQwU}YR4VUsY}+C%a;rSZpFU*o({lMin{aqN z*48Y013z=CRZfhZpvX1b35r^m>;&aYkT5_s%{q1hVQ6Z{VpJAa*a_Loqs{j^Yy}T4 zmv4nG(T~B>%o2*9j#4rLiB55eX5&aH%wZR3a&{olgl-LF1L#%K5(QR;Af)BpN-B}t zA)N7D4)jKhpv3d#L~{-+hoCjdH-pxMZw53Q_svSQrl}Ijm7%UR_0K@?sC``d2W?tY z|8)5WHB!O)kDVXJv?eRGtn3{^b-p6+P~N)QUg{nSUTs6qkTmepn3&Pp(hN%^9;&Yk z_z}P&)~UPOV4>`SEK&~<0+TW2)nUJ8G8swA3}%qn#iLTW&YbDflKGY|U|ZEG;BwOreJ*Pf|u59}S>mhYVFo;!AIu3^)a zZC4)d%s)Ikw{ ztL;Yz#|~_sxMyNZ&%W`og>E4akKydJNS)Gm>FfaNACIWM8r|aPLAe`{;!wK4ZV|s~ zYILD4OIi!t!}=BT)2hlruJ$}PzC!28`js``V*B)3FQ79PW6k6{TMMZUEHuU&x#TIo z9MO3kMavi((apwlSBb`a;R_chCMrc_9$&b8d13WyrN@rs@`RzGdZmAL(otQK-f>-6 zcsiF!v)FpC3oe^qa8NU)UmzZvUs&@Emd~#BaN=(~l_D*c>P__&azU#uqjvBnk1L3= zhvb~+eliuKUi!QXJ^JOK-~K_rCvfQc&;>@n6SC6ZJ8`@dS29{ko`QyBCiPkjH$J}> zON2}tpI`I&==vf^S?keEnu*uhOgd%bH1%Rxlha;A>?(5jG3t6#g}pzwUFeGu*xX?R z&S3KbUoKNqBV{*?05q;~Lra)z0McBKfkrSSHWH7-(W5pjHK&_l8W6pF-w@b31Kk6R@8#SKx~=ccYH5oza^FO`%{HfA(sJCqXV+RU{)0Q zq)@RPX5}m)@;{s4s_BZ{eVHSx{;V>8Pe5CKM##y4bWuBBK~hjg!9@O?=NVW5rb@&WIsEQ?eFfiod8Hqz1456A~_<`%fjVyEtjI5mDc%$4w?E40sH>kaka&H z!!mG58N}E|{SlSvG|e10eVszu^#>w%-NMg9Jhgi*EM#Sn0ka9cB$eG)}Rt;RVxgyhVI3SCv zb6ug>S`>KkQOaOt(r z9;#m(J><-Xr%NzH->SHDBPOS7*45`7RWFaqkj8x@R-TeNsS2|lc6kEAM76z0hv70^ zM(;vlpxe!IF#$Q9rs!h2Gu@fb22uf}7@`r;5xKOpLv=GfAy#;I#g&DP75!zE72)m_ zUQj2+(M&%G1Peb%_vh{YkQkuW-cBA-duMwgld}0m++$wn?O4%AdY4$Hv#(^i4_Pkr zr{y(SAWY8k_AG!)^A&f3P)p8Rpi_MV&SVcdYoFClS5Gz1~ z3?Qg*YLFC0qs-lC-va8r5{(|y?RE4$qT1yoA*z^<6<29`R4@L`<}zJr){`n{WWCFJ zGwG-uEC&-HC>E`Z=+T7uXeJ{XHMO^>uji{e!{ZCjvABZ2HZ~aN9h*8P!eV7%N_88% z@IJ1|?8T5JTiIP~$LD0L_XuyE`sKQ8@7fB)Qg-Eb{@CzD8dB zD|nxFv#(;YsQ&&~%)E)x%?!p-eI8zwGxM-Bc%!26uiRgX-1xsL$RO)PE-xwnNccvr zAAPluR>Us^5<@OPT}F2TG$ViqL|{JA?;E`ico!wsQ=CC{cxsS`iO=uab$VY{Hl7&h zz5o7;@)HZE4;>2}uIn2-zEHe_#mZV4W-tyNg^6Ox4)g`VSPjBu;iTfOM-o<5@j5Z| zEzKGZ2!I;)-Gwx)%awKQX>Z3>(bL|YO~a>e3*~w10c6(42=OsC2Ed0N$BsnDSkLJo zp*~3HIhauPpGwXzpE@%8nqBwI0#>;7ROk6OzGe0dW!X8Z@b4QN4y6wq9NDK)s$DDe z%@rpfdYxQAvVBrR-hFgmFTcyNCRWwlEp3o{wdVf5tXk`f%I?}G;6oeb8gxG4GCyXN z>Wg5N*Ne6Ke4^x@40!hv){X=2a`9sQY>ghg8qbuC7&;_o&Ny_hd12 zBRiZO>gn=kylF^oNf~4CCS>>y9vEv_lLMbeLF3D->sUO~m6gT5V zjg?j}E~~1mM-+sa6ME^xO~^nO4}@G@bNMW+=32+{^}YWl_>jb8$9HSZ*-Wci<0T{{ z=5L`Hfd_XpuTC7)Bj?DKxZT)#G14*3x{9#-ncdW$lN1BZdXNc4wpDniaWr7A%>YXs zXQ+}lYkt~g>N}{)yZGe>=S{*%P*rwa^X4Tqu8{|&BjykAIR$0~vbgN0bUju2E`DG< z&-yi7FrNseLuu9&F9awZ)z4dfAIq!*nao9 zQy0glE^fT2Y?wcDX8y^87mgOcB6n?=I*H}O3Y)nxF7~lQjyUXOH!_zPXX|Ez+{?C< z?m6DaI&Rn|mTx%hSLrv1HI{EUh)wA?683Mb`3|jMF2Mr?ho|ODML}BB(0?@85lo=d z1(PZ2#$7H`_C5?&348j$0yVGLdtk0q*1o(j4Kp-7y}-DRU*hU-;$DqOpV1oVRz)Tj z8BN>{`WZ^$dXQ)c8D?pKVDMhdolY~X5jr#q3ABCC_zb?{UL@=p{~+<%_Ce<-+CSs? zFcLyPF^5{fQ7co5V_?*>x9sSBjo-;G%L!C}6M2Yi$tff$JRzj8UHYhl6eduxf~bXu zaw}y*Xy_I5Qw~C5=oj--&d)-)SAUt~V`%*ikP>wN&oLR{^WRGKj-I`zss^isd|g~W zrSf66WusGxb^cf7qqtEUq=J?uzl-57U|1>&tP9pFSCY_>E`ZO}Vx*(JOD6Urvz$)1 zv}Q7`BbP2IThc8p_}`ZF>0*+^ik|-)@(Z}BLRusKj7PF@v`vi)rsG23GczkI@(cJd zr{zBwZoo_ZQ*}efMhdAT>NiNkP3hfl1R&S7vVz3^I6dRWU*V;-%r9z^-o^DRf&wT2 zqpUrA84j@p6}q@m?y?m>U>SPxIhfCuPmn-Ydq%ad(-vacXjxD%nugKvJ9}20meFrG z79&`U;W|vPHGKwa8e zIXt&RMA+LT^g0E5y=Yj>jWUzBWOub;oUNtamVl~y;JCC2EAc5TWLj?u{C>RIFrM^) zF_EFtNjD@LRY=;Xgx-%d?F#)D9b~)_+r*283|S{)tT|93zHLLua2Ti&0 zJ;?rVtW&nJaZI-B5S4XffkL(=6ro8kv&zsG3BA*;kygOmc`Dq9uv%molZ+8QCA773 zWhbp`M@f*BM5VMklcdoFzP8AZFpUwF+N3Uus3f2cC{{% z1&+`{JWe|w?~1dAdLcJi?uwMspH zt*cf>s04yXPA8~rBZB~vzSs^CG3`pZFS$Ak<~mpVYBvY^dvjWtG%Cs$X@wuhl7g!NrqwKcwi>V%rcwC|eVu-$x&;(inv2b%!1G|g7rA#Xk4K5PzE0>3tpSMYY z%;f?#6oZLNR3?^HuxF&jLm3zDE|2YP1^q2H0aI>#45ww7>DXoo zvsy^UBIfBr4nS3zu7#uOBG?LaI1>;UQ&_Ouopn>yN3%B+%0ll_2UekXgSPk1a}6BT zU(Y+%sJ8X7n^lRx_fXN(_mPhw?2ne;{Bmruq=^w-~iNcq-k`}e-{o$ry(#>7LN&N}Hy8>KPm z9-4nxiQt6!^D1;#ehREH;{{F+psO4+9`#n`WV-N$(6mKkF`uG=i()|-xyY>=rI}ek zKGHChb77tHVG0S3JMiZG`IQ&${hOEWrE~o6_(xb$A7Fd9pKqO?bAp*uV$yM0YY1Y5hzd$0QD_Y&Od-Ih;r`#7WsvrK%R)a423FV&{T^r_~>BQ=Suv8@Z z2wgY&quTfj@Yh7F{^rel@4%}6>ABCb=ij(dd|CQE#$m5?2VZxP%q&F} zLT6>QELhP0f_SV!4uX z0kHi{f03Ze_A`?*+h6NnAz=@oGOoc@59BRX>5;r!ZzxFo=fz|Z*lf20#&NRY#~u)*fv>R)iC*lMnAyLeIWR!*x{N zs2*jK6_Vb=DQ+`lUT>3KCi_kw(Irl-!099AS#bKP{s3B0eaR$N-3YO+tCJ#bSIot! zN9X#j%YzN@^&8jZ;Qxz~4by4s#f!JHajsxJhPlc&{s9_=B-@Wp+I7AfuSdlxt|8^f z*>6)^Je+sa>Mh*NyiC+U!GuEXQ&Z;Rt6sJ8*kdbl=j7Q*`DF2rx18Nl{0P^sY5|$? zv^1;@ASW&*p*t8b26~zd5E(YDEF&U9(`0CVOs1K}ON+Qfn3dJ?l4ceXq|g`-4)P$` z%-QtO{*BujlcxrbFP!fk+cT(~?;PDTwJg6d*WF#{EOag&D}GiU-ZV7ZkS_iy{o!cw zcbPW6aY9hmFJbnImA0B%z{7lWqMT{WWHSAkzMM{~pTc+}Ym(}+SlpG#UKSotRr<{{ zCgQl@a8T;ha*dergg`E%9Oke+c#Bv^MtGW>SZk2=e0q6YkFw(3Jzdr)E4Osw%2#oc zBUFvtjKql>@4=-@)do0tEUH0GVenesn>Oa!LvKW2fsKJ+frYa7vKH%4TVJkx_37D? z*F*D>$^Em+?^k%g9?Gcle!BglVv{WEz7w~?^!rpDN+zcM=>~N zAk77>saF{@+u8`aiQpaQ0#z8ZP#YoSz2%hL&tnOHU?YaG@DnBE;FV<0#o3-mDBG{^ zx?4hojqX%9hozg3DcZFCY|=&f%cG!a#`@+z0AEVQz_>XP>7!f`n+y_1ML0{j}fiDz=WPC|bWWwN!5qflB zOejQCW+@OzN{4C~%7oNP%i_|%5KV*)2@?ZiG z_D~esp>P5Um?FPPd5;+e!w2gz%|2{avjM z!a#~r@Yqa>5Hie-^g1h4OC$(zlITiwX4CcU_3=ov2=o$w6bADMpFlqX$*)HAOGW_r zpcCcw#wdtyIWIt!rm?^071I3?STS2QjkJGRoY=T|NGdt7De2l1jUp_aj;7k%yb*7h zx=hea6$BjU4yZ=&%Vesg*W@geASj6bi7Uc?rN-qKzS4)Q8zdA#Hn zCxUq$lrzD+4r;&XMcs;S)Svzsl|hlUN+|@)IkT5P;e0`?4JCjouNn@?Ksyh(2GnS} zPkhHLTdMjcZ4erXRPxpG?>WB*4n(xA&F^o^x8+hD{#JiWffYIF<7JE@C$jiRBRL$V z@0vAE=bV_Pcj9$s8;lOBx!%trV6@NuggYzlt=N1LB{3{Jdvd^y@|PN#_(837fjdO=G}c3( zy0<5Nd&b6S>;xYhlN-&A^z~QhgGGR;5h9Oicu!RA?LJw{&4JENUKP|i(mCAU8!N=} z$%G}pSuML&?VkO#&`NsV^YadiG(8SI6j#;SfmRmQU_qMFHb|6{Kz7u$3o*R_b|Ga; zVHZ-LMHu;PLOV~BGW(E*W*XfN9Ig+m)^)NKb#3cxGg|cQPt1BG{Z@_B&mrmB@5J58 z#-mOf_3X`|Ywv;vET)VWsYort*L29u8nOdKFJwnlgyi#)NPZ|k*xMb+MY07-+SbCG z(i^jj9zJwOLxWUXgB&c$<~rJErRm+(Z&Wx7tRI!~3ratt3OSM$V3DN|YR4!;CNa#A za3v^Erl3=xq9hfxaDaoKYt1GT_+BiMN2f1~tRPl4hCVM?OS#d(C1v7FCYL)jIhZZ? zEfVeC-b}V@Xm8^tyOSa8_+MaN2HElR+D^0-RiemHgIYNLs4}=}@jGmgf5RS5BwQ|T z(!1JS@dz9bZeLoB;c5$z=i!31GAVLeg~bu6zLFCL*N4deEaf|j7#LJZl&}zBkoXVC zF!4X1rybw|W!;C`b?-y@>2+F-9#j`+xYCNu!_3diPiK$p$Gh4deG&&f^sw}j3it}fnN6EPIYjlOcF7!4bC+i(vC2P2WeO@kZ9Mb9%w!ja zL?uN~ZMCw$L?t9DFTIjtsI;>%5twiP3(8Z7lnhCmrDg3bkCnLD(Ze|5hiw5) zpp_=te&Ksy%rf~jRFVZVPP9X@IZMOCvDonD;i<{-*idXR(nW{_*2BXvBue|!>NZt1 ze!R*#s&Z##u3Re#v8?_HSC^H!;*z)x@j39v3(jOncT&z*T7)IRYd6G-ZTCPdhS5Zs z7;1@YqBT%Hh)mNxK#}3x8vgjduN*oihgJ?9{~5Lrdte4?=jpX0AcQKX_{_LAf*qn5 z0<{uacXWp1#q}*H*X{46Y}LFIbyw$BzgXc0BKi6-ysU9>F$t}XJV?N&xTJg%4JyO3 zf{DK3CQ{UEpw_sKgnEZIOr=s?slrgO5X41JME| zBO}jjp%7OvnYhrU?Z8#k5l&oq&J$QzN+y19Db?|6Z+$}t3wXKaFLvC!fS8wSUjCkZ z`au8AXzJ|3;I3%#^D^@jX$2$;ZBiDM=crajGhL6;okh#^78y;E%=-z3*fq-~Wt3v0 zJd>Xh#B6f8Twkt-7R0V649bISsOw&qJb^1}>zZq$tLmk7tWT9T!CpSiGyqx4K!tG) zpfC+k0cqrH2ayeJ+RyC3Gx=Zhz?VzgTbz&i?N0Jn>4298GO>e*WUBuI)^is912#*C zwF7aW-|D@XE{8IDGWd|0b4xYubC6Pxhqt{=&-?KKiRTevQIn@6Nn@MGrZ#RMPYIpx zvr;xoHMMmR&>W`+Iu&sm<3L_RKWb`D3%YDV!^x+Bn=8+J-CuqU1Mn$|Z1v`hEh<)gGr#$*9yI zi;LxWD0>QNpmdvlASv+!5FF6WXj4}R<^G_kdfvLl@r)0adeWecHOFg@ZdCUF2+&=;ku!n{i6eB$<HpMS_4(cr0m$N&`F__aXzeLhtds34gpR)lNC5?+0~_k2(S8hR>rBlInGXS-q?jJ8ecjw?ofRfgiZl$|%NrR- zehjXIn#1}F(>ztEzY9r1oCWHC{w(xgCm{}^NSnqGGE-2b#$10zC>1hynM5TC`-=}3 za=kg;{~YO3()BPn@`Zkd*X2jUx>koRLJBeSnXAdd%Ha5LbYf!DT;}$r!KHZnk>0V% z*x1ICJ60|m5bGP|k|c>8HJC0*6mx1vc=RI$dQcp7Z&W%2&& zBu5*m|9UUh(-*^fqRr^?tp*TKg7akQzYb*uJRKFe>Pv$LISI)U{nz!MLmyNBb^T** z>c5`rMgR3q(l1$$V*~bea6o?ch`l3wqH}k&vVdwkyxpFm&fYQqMz^PbV!<70s4A|8 ztWt)M?J{MJN_LrwRV)B%eT{S(T6^d7T}G~m<0eGU#C5C@r|!S;RMG3#*kztAT6>pq z0*k9cTl7lP+El5&Fm42^+CW{B%G5@0Pj{D49aKmZS?A%Sn_~_2F>vL~skK!|-ho)F5L@2~U7yp8v9cZFWkjUmxmC+FyV#;Gv>opn?ILTQYk1yYcYU&E zjkm3_U8uKXh@Q2#?45cx0BT?gKH47iUMY|Voq|e190KtOYBrCi3K;XCE@SE>Yuq=Xz%IMC5-LhxbfBaCB;XWXqe2iu}WCk8C_MK5`(`czXBw>s-=|{$9AP zbS23A3hIh~4%9nECPbHGbhAZht{LNK_%7tf#>hE>9XiH5D7sb0$0w+D(O=%PN&bM* z;g}i`EgV*g{}mol!}Oiohv#^UW025cB|Q2m_CJ2s;Z?1w_Ad>cr2ge*TYryLPSIcVBL(y*)qKaComQ zExhe*3oi|J*6pt&WlnEi#GBhGC)FzZq&9R21W#P5>u#XifT2a|;T$GF0sT(k9?*bJ zji|n2GqXTLyA*GU5)t%IC;(U}2w{!aO=8f1-5}_<_wC*dlCEFB@4l|Sj<(M6hJ$;L zPF>&ewzuuLKDB$WC$InrjKb*pUF3ABC)RdtYee=U?q1_1%0RUXad%J;&0r@D?O>Ns zEM1eVp;0Vo_RQGROffIsiWT*M4os34U;yv2a!PG{ZuLV>+^Uh!f?EaY3tAL|!qsde z=D`<`pP`m_UU8>35gvo;OYWACxbZ2MDf{JGq=W|8C+4og%d*_DyyIoRB0n=jANr23S^bD2lMrY`*&`cfMlfV zwTsE#0Yjt`xyCK#J$$HPVUtC^{Bk$jNq8$8k!X*%S<G;A#Ab7rC>F?-x9k;*UWx>x^w^=OHJ z(y2Kic%33!wv5*ZhI?zyRAM&Mbg4)(-fA+OqT|k*#d^Wm7~i8`CwB78yMySwCf~;N z-A`90;BMJSdycikx6?Jr{4To9qVVpTC}Mz#WH`zwsnf#`bXNJ)G6YMZd75bCXFB8o zT!@&1@=<78s;s0b6HhH)ymoQJ#q;S?;|-UO$%Dl|xpq?CR!nZ|>7?_(-o(77FjaU0 z9n0b!PzKyvqP`+b)8optn4ZvQVOKNW3T;N}o+B4a-z{&1Yjn&cfVn}XMCde7clr+L z8y}BHS%8F>O5|x`jHSX|Xf3Z7zw!Chn`0(xeJ0=bdr8s6S*r#e@uJiq&=F7GEwA z7QK?K4So82=`vtz@YDKzY%N8i`lMsp z;qDxgEQJ2&1_;h;!0pFLRn%ny!m?`uyYBTG4XycL(Rg3Hx2v;|&!&?d9QGng;_3wu z*{V^8DeJ`{UKui4>?%ecIkA23vM8AYAU_K1OY~*S;=cdLIel6B@8#00ukIyCP7sw1 zgVL{QehM}9bt+_P%|GKO$Q;B8pnw&~HpJX@6;f2^3DDpT*9A&7V!gGsSZ_^@|0Kb; zl76%a8=@~kFRcGNi(00mBNW1Ly1|YCa!siNGF2(GM7=?86ZM#DFmc4|XVn{y?AUSS z`tBHE(J)>`${(Jf6u{u(5!?#oQytv~j z%SO1D(z~A8P2jF)gWS+F2eTo?oloGM@;l$U9LxRh*G-`k&0@8MenR#DiA=eo_%8sa zoHu#pXbu=Q31LqPrHHd^2lO_JfpS+Kk!QI0aJxid3O5T-!NAOdNCXfQ#6Z){9C21< z0DOr``)&!QHG~7 z-pNFM)kp(?rTB3EY9K^4POvY@=l1$^TZ-MpZnu9az;9xl$Kl9Oe_wA8i8nixbyT@q z0sU2FgMLtQK2Mabviy`*+%DY@`jkTTaHG_rmJR`i(lCU_P@1io0laFEu&9Bn2)zRq zSO8vC*B!$o^4Q4WKz|>tJCbE{$gyrRsT?}b7^be%p5Ez<`{*lUKxyIJ>NhGgK(~-d zH+T`_g3gN29AA0271UKh%c79Kr6$I_2!`jP5?dY5Rcb2!nU3Q6tVN-6@K&i3)%`+3 zZH1|(PWMfrUd8Rd9?z7cwo2(>*LcuE13|P(DIhK0tEAwErzxu35`b?Uhbjk800ahV z!L?hs$D-6X$zUMT5>w*jnWv=`9P_RWWuaY`wnyZcr)_pLnjkfgD7Dd4Z~w-wlnihE z9H&n0EcE`O-uwtoyOl`vLFxf__?>-&#gMwF3Q2f3AV7f=h{+c!^^H}3GCmH2tq4?3 z`4#`ety_l%w{07YB$E;P?=cIHqx?rhTQ?&vjh{u6tG{er4uvH2U8j@CI&krmsIZgB z)>U4aicQcpjvg4$EdZQ6cy5qQcIa3q%C!!i5jnZb`K0w*R#bk*O4ozjCw8G7GUSok zv>2~kgmNJy3G3JjPeO&q6&eYJFfpg^*2f>e^$(AuInHm$i`0XQeP4Cs`vEDXC2FZh z0}BQLaMe0bFb?Y2fZjc#tpJ|F9;D(~mu|cD-+pOi1K|B~`b@jayT zKpD`gbmkkSKCQdn=fVG4p(*gNDEdR#Cg4)&EjZv*zfSkPn_i^9Oa3_S_u?n5Z^Y$3 zUg@0_9S9K)lcEDn0UuiEDXeD{)`nY!FiV)-Lh*e{XroaqdpApSQsi9p%Cx@!b{-7) zZ5ss?4k)7m4kcSRj|ODvWT)F(RWFns&a@d0a4Td}Qlup2WgWV*849b$k$SPjRZC~X zSiJ{3hZ;+~|6)s z3Gv{7zXsX~IXb8)IQLOF_d!I6XgC7)XNg1`FuFFa0b>gA8TBmtp^PMd03U$=6Ku{f zkO?x71SgzOnKVMP-j!|5XF40Be|-5@fAR9y6NhHM=-*eHDNM?LQhcj?*XsY6pJUQb zv?yO-x62tV&=7zO;-IULIGwO>3l+6KwDyl>?U%9oIO`Ns6(V zxB)l!ix3WC$dEYoOm8qm-R#h?e{JQIq5ooDo^!y4$Pv?|-dZng(F zaKKr1yKG~|En8T2*k2NQw(QVn^mvSU`swZqqq?Qq>5s1O^ox%|y$rcb6ysYDFijN%lyg%(KTayQ~5KtCWpVw@tn(AX*JDE$!CN!m_Q zBafdz6Hxes&|AQr;G(<#$!1P*!?S`gA2M_ zqJJkE>EmA*Wh~skh>M3^N_ty0G!y4Hv78!9g=NGw`{btL_vJSh|4nWyUYd~)EX)?4 zS>TqR{6%K@)lt7)AG(yffXc&jaeWAwBw;KN_Q4w{<;=TE;|;hJ2wg`vnrgg9mT;53 z)%r46f5jgCg~l5xQ`Jb`CE39NB=&FtQH4us3n$kiUWzxn-JV4bQf68WCO83m++!-VC>WH3Mv*_w6L3xm9T$-uQVhY;J=(&eo*j1>L^0 zkzrgAc5Wau&Ucl0ww8U>AGUdEBiY0@x;iOyzSyQFUm`zzcGeeoji0RaL_+A zaHN=&pD5m8cK?Oc6SZ}qwuLZBXi!r!TMLpB1!X3cl>36;z+gZ`pO4~9rSt)w#3=+- zx9kU1?ZXoZRh?ozMg#awIS4O+0fLpH1oS2g8tM@VL&H1QQ`-foCPv;{x=U95c42^3TF7r+>6CD~-;!V$uxQ z6r-+CK3`04038Jm9Nhy2L@f+_0)f=Vn6NaDJg{eeX4~-K_{>mvE_LM4_TGb|6ZJh) zorMMY)b#k|biBDU8=0!Do1gvDO#g<~SWkN*ImPaBc}e~l_JuGs^YhPiV_8w0Wd<4E z1jANu0yTx!v05|!pR5(x=m)S#fgKfOb`+`x#LQ2R&wkFWQIB`sdfV}1x8HVrRGS_f zo7P6}e+2~C?ApM}H@%a`S!2US7D+9_xxp&$pRYyKHxI}K==pr|?n zT5f`gp(v9WuYe!e{*Ec*2@v=Rj4VOxKp&OpQ2hYrvw(k$o#D*zo|f(T9Xs~rdv|s& zD4!fiCU#E!^&fTiXy4+RS9uh4plVC1`Iy&(R}J<|z;zF&a;n<*@~M|sKO+Cfm%qGA zdF|?}cO6#Tt3Lwu-v_1W3$ zdr!T7bU#iltF(&ao(t0ZB)kumNLCn2x)9FH7)X{4`HKi>{P(Lmk|pxD^bDH2{SG{% z8PBMpXSe|UqXUlH(1iTSzw!H*PAj`kr+c!|RA0jfUo74yKX&x!zYcW!5BmAam1!l9 z_{4T}MQ$Y9mi3gTZEMoSY7gshyp04Zf^eWBUxOej(lKl+p*AID-{Qy7MKj~7MYE{_ z-!D)?`{e=RB6DVV?B`D1|C*IuyCx2&dsgJV2e!`Le!lo2dEeYjD!aA#JG35(91$gL z$n*P}LjXY%Hirw4A>ezM6fNQ+lVwH^b$VxEKlB5T)ng=2?5C={cTuau58EWT$DzCj zq#;@{Rz@9xBY}~8`=~+VlZv*HsJCE=D$E%)_SacQKa`Zci=Q9@lkQqvaso>?(1L zHA@7A*vmzbgYrL@YX{T3wC}ALEbYP;mwk-Z(awLUf)T0&eGlmIG4UK3Yr$ltd@7%& z#mHj+1&0v%3q6He1boVm0V@XRM}#4!#mZX!!eKG5jRn zU+fUvF*;7*CjAiHgb*)FkZR=^HiVv|K!P2)30Yu3 zZ3{R5#gGV7NQj$UAPgxnxXD+ebCXt6LI+<7x{o_>^Oe6}aI;;Z_ZOsVTCgQn7eJ^U za}YgInjS|V>w$-7Uui=jwT*&NfhKi zENAc^CR&o{y-p|avREZ*L&{far(9nq;*E41A;dbxh(52I;?~9f6Puu7xoRlHBV1bu zif3aTUGnR2z|y26jzr=@aYRjulZ@g{>F>2rdmL^4T?!0jNzN`-h8%0tL?q8eh!vjp&x$FraH#v^UhMW0t?2|Y8`{sJi<;1tCd08Yk>5wI)& zCfRA-#s?uiF1Lb82fWCoS_FU*BYF0dt=0(YIwh3;LK2#?K8OML%oeFDR_2b%%)t zI94_#{ZNaHXHk-bUeidV(yS+3L^YVKJpW8B_O1^q6@C-6t=GGimy~iPKt&eN1WXC= z`F=aud_U3|UB;K_B$G$Y6uI*kNC({HTeMyY-Q3+?AQk8$AyuGLsghDad66U;M3FL} zsV7s?rce%|l*?ypYvVn}^yg9DqhXA>8!%tX%@y)!(wYwy;7|H1rd zWH>p0fXUp8>PN6Mof0y4k#Mb#S#oH-Lp^s0EKqWeum{#kFVc8fS|qFVf(2I5CPP9V zwkH9@(BO94tIOB$mYs7euesK6--Vwkqxxsxwr88Xz4+1po3`%&Z1k$q{qHYXk|o=+ zB+HU5$yT*wOLDj6Zn^i~+jzzvmuZ=nWYR-=4}n0~P!h;yfP?@EVGT`?AYYHW~SS=l;KB*<;T*+4r1iWJ~wI<=k`6Irr4%Gt!KaF~Wk(s{L`{ z9h2l0XgJ15zWf7_Hlw+a*&+Ebl6=5zNb=#|ib`;865b00pDE}Hk?>C0>2M>9NLN#0 z+WcaM%b2_!($s%+xYlkn8BN(Whe8$5+L+r~TcfMjT&6Fdt9QF=d^s+?DRZQv$Wi9; zhH`y%%`Nq8Hun75mGaEfF!N&JJyER{c#jN<+&*RkPC|hUnkBAdR=8o{YQnG@0Gped z1~|VX)OAYDur<521EJ?V2`8u*GWTKmN@P%(ig%|ZjzyM0%p`0o!d*C|(NZW#0s>Vk za;TuRYuR96Qu?*+kobqgHEyRlE6eWo_2>;*=|g!oYj$gE8=!GqUp8Csch&@Q^3oML ze?h4yQ=eWn=dAO(f@W{+c9>)X|B8j*Kj-&?YLVbel)xj)TPHAUK!R2aYA(|R(nAmM za+7ra^Ak;}73tM3Xy)E~j|628iL2yXND`j}>I(;lD6yp#U=2Y8sD|7nglaq*UQ8L{ zsvHC|5VVb1KsPlmFG;}0k=X&=@M+a%%Aubet1g51#2=)&?XZ$)$&SrA6@h?(V}!Iybd31om1+|FWYMo$s4`~pqa=xbdpt^8 zclj4b>n}V~-O;vzhPuPYPc_yw9mh`3*6n(-YLfQ5eU0yT3+Nxo6gFYv9LmEd^awdX zZpc7jU9xJgAF4fB=aGlsl%#`+Yd#<#PCx=DhN@6P?~!V9`B3v$1)^b+bkT8bjG44) zP4#<)>IJ&21>&vniCR1j!cVG6K>=Q^ zR;wm}!Ri?Sc||b&G)&(Os^@j5YN5yGE7&UesMH>QP20Mh*1#{|YzMh$pp0I5q8|DpJ4mgD@ph_iiYl)0()5OgsG;tD`F4_as@7QvPlti%sUvZgV z*hp!|hf#p-oCtH{@zu}W)phIKeK)T@F|#^3QQ-7c>hHXD z{`Rih)=&ka{{1J`_s?sGxQoTa zj@6-1Z+9qobRzZvw!fxvE_OTdVRTi7H3WsfM0MFFI6vXa%7sBm_h2T`(|rmyO0gzt>YT6ojNAg>7}MB;+hwm1n92Z3Rzy!z>Dk`a#iOCW8u_j{TI;SN)(aAZ4x$TJs@l4oH$_q0RA`*uCt=U@)5Pw&xewevS#W z;FMNC`Zfp;Jg0{VDIsZENJ{2tgA+!Yz^xR?B!3O{KT#tnqPV${K(yFL-{dGg*JiF%nZ@OU= z*<6beYoTM#%S#aASY)Y25U>{cwv$9%P4d^o^RX7R65?lI*C(+SQNZO1kMhd|Neqcw zluS;I0zB~zd@Z==nyC;i78AejvGB5gX|;Z>rET@H1Nu;~TeQS(pKokn3$aJ1E~E8O zp2WY#X($qY7R|`FTGDiIokf&S;y@Gt39&_+dRnXi5*%MSgFOxowbZD= zRS6_1DTzN4E8lD1&%hGAF@I{KTSf>B38L{l4b<)%68^VW{&0mC~`LFU&VI5>Tg) zCBd{1H4`%2bhU>F>*wrRqLu}iFJKA`r5b0+@&;WzFN7&IB$gz%QdX~`eV}%bFIUZ#mm>S582VjcXay^hpqELG zqNNU$a8{QwCERXg0fs&o5}yXrk8lTsDOx0k~E4-i~LYoR|`u-D{t;Nj|AhO7U{B2}Fa5c0!68gy#g!6^Y)&1RdH!ek2`zSO^&l zu_c9@^hZ{5fywNs;sFhkwRFtC;$L#RvXWFh4qHxk{o1WW#)F~mAG#ZYRu{6V#5Ft% z`89rT&{8{pwM^P2eFMX}3BkWrOYqMnSqh-1rK1R<0;e8Jhh>V&dU4XS$$+D-L<1;d zKxd)QM^00+2lGb6O}RK95|C^#!AoVm)$Vx`EqNkY=AOBErKhQ>Ew8z&eWLuvmAcE_ zzQfh+9nR`%Z|88}s>}2feQk~5V4%?DwHPuzb;Ug$Ii~UK9IG$eZpzS_{LSTH$9#?K z2Uw$Dn2qYQ!M7|B8o`vILzNerO@C4nFf5SBC~n@00W!Cc)gGHDLbL>jB8Lb5rJ%sV z$T1(8w0uEdigtSnH>m2QYb($G2v(9UujwnNoWZq{);fD_$DneJuSUM7Sp)d+HG^1O{P#osCAfD1IaWGtFZ|CqFV9~MW`O< z!?a^m_ZbuiI|lE*1lv%~f>5`U#?_hl9@~YDPTDZEVamao=Y2l7@ss`DRAGULAdvvs ziHXX_dAe6B4_vYTvhp>L??}!49~i!CbeR>ra%f>?)|5GHFx`3Q(2d>l$u?o0W`cS; z&Q2N~2b}ICsN+)^t+qiOEwPZ@pia5BydDm9$r+c=GEtYubE>25=+d!cONZJ!uf5}g zAG|{!9xYitcyP63Ed1WvZ+{P`I{*afUCabUs+j{HV{XT}2o$-2;}TFr8wM53^FB`k ziY6I~iTMGB;nf@Wt#%H0-GP!*SM|LEd6<6~yKa4P-~QAg-2*pH-O!5Zfu}jeI%p(p z&`fSba}59>-|S#PzCxwWW2q`-Zx+xQN6RV)15Vyco=?9jmw&~JNKkfr)r?6p~fmyt4+o*sbdNhY25kQ1iDesf65YUo4l{o zRDNNVW}r&NB_x_;sUP}JE?Ia~lp3ijYsC1g_$t}V_l^MSW{!gr&3Bkgt>DxE2m|IAW z6#D<+mDR@P)#}N^)u+6^GqvxzYss}-t6!Ua$2AT0^S3Tc0Zy4&H@zeF54gz7w1;S< zmt{*rghdZhlYu)Wygmh&6+#l!KZ=yNP#tkw+1Ju|h1ce- z)X$8L?DrLRG#fLA^;xG5#6J0BUuo%Fl1#S^u4f@dN9JRPxEsid&szJrcYJU{eIQ0>6T&y9uis zZ(Oab+Xk=3@pI?KnmmcJU5tw?x7I$IgY)+?Y$186Ry?BWCspR(jnquZLrkB)~( zG?ZqPewr^bZrg~v5hRnZcvEx@MFU-HAy!J>2Ac-(J@tq~f^bLZt-0+M=VduDkAx+h z$d_`Hd_hx#l(k-8QG$F)rC%tiL?XqyY}z7Copec3d7i(!tk7RFJz*`^rxzN6;nI?5 zb7|#B=h@ZDGyC<^CENh!wE;J>gsJC^ z=~_T5?&}N18;}ucxo|EdZC4u)Eaj56BmO06!AK;Bt`+njiCmEvhir6Emu9&VHagiR zNA6kBFe((DmYT{Tug!9M==PQQvuEeolT|g77W-d*`croE`QNbg*ne=m<#T%xbDP~Z zx4ii9xVPXy(FFOaBHbyUpFPn)o*sR}9r-#aF7|CtPpmp$&8No%a56yaMa1&AKOYa} zmq`ts-abqUCyPi8scfTJ_!}_;f`aPeDo)A={CNt7m+vD4{(}k)I+cuTx7hZ)%PZk$L_>d zNaGQfxG|mqxxiEP8Kjuu3T$E?xctz76hY2Sg(g}k%og;q2rVgh0)LK*)pG~>3Nxxh zA?$!hJor%}uw|7g&b)iHWwor~HFr35y(wl@(_m1$xVB`DA{)o3=*KhlIF{65DJJ5 z76oa_3W|;cbV%D0pKA{B1AcInR%8W}CV`+l#7u0T1TrVKtlU$04^859T}Yn9b>IH> zFENQ{&SefY$L>0Ro?u3Fv=VgGE*y^{ekI>=|d;RVhmT+&67D<3RyvZU)rYAcVVY}+F0Lgn$T%LD&-Rj_CO%GwoG zs~-R1#)lsH&;xo$F4K6yoO20Sx(`)XqMH4Ew>r5`O+$2 z-jP?~krEZhXPCT{P2x=&VM>~O!Fph-Bxf1kQY3F`k|mu&KExF)NFv5NFDQP=*<942 z)6$|=J8Ms_wkI!ab&)U3AHBT)IA0q^VawQ`456Jo4xmS)V@ zw(tdsDRG;mfkVa@Xco#xOWnXBOs-3b9_+g1qB^)%8S|Xhr7tRTr zQb;>yrAVv-pBssPlOp$1wdSCh6i1jGkHx)SH<$9MmX>fBFQd(7q!+unvbBY;ZDm#L ziH3_?T8hKbCWp~zw;PR)*vm=F1-SGZ4Kkb;w!)b-3R~gam9WQVO2Ce90xUJrUEn|S zRyN@LZva~8w<=j4dx`JB$-bvaUF*k4Ojw1!3M>kWU`S@5no9s-iV~(wWy&nB70Q%B z0zB3P$1spzis0L|C1UsDA#i3>CMBfSdVtK?6uT#>Cvilv1Bu^9yz?2xD?SpE-dIPV zu(lvGy({)_@-H-Q3sB=t@Bp0#Bwi3Vr9RauadS`9hR-n| zKBp0rzUG7O0)^z^lYf_|^7oai7MpiEF{7HY_|z~IrpD^U{{xw%_Z%E3x#^RLDH-v( zk6jiQk7+{U2*fyA($rKB~JXBE-evZ{Q zR1NqD0sC<`J5Wj9Pr@2U!~+hX zqPl_AKU?URr}d7W(VVeK+iY{}Q9c*aK<4raW_BTnXiB%kC?J|L;VE53CW?5NBvmB? z12b-`OQu_J_AM_=w7#R~@>UclYg-5`-F1KKqQSJ#B$X%ob*6sIJu+G`Bo!(1hdW|5 z*WSYXQk}Bliprr7rwZWLry=7|CSb%Zk^Dq8a`KY`UQvsWYFj5&wMMNu?#Q_r$Vnl% zl1iJ*yMMf;v*VVzxm!9qZ<(E0IXF9eaAih6{rHI!XQ!vno;dON^z4H--0+_F+;GE# z*ca&CSrIDFsRW+cihM~CHpL6hF@{JfgGod|UXvOUk-_t|_nnNn`|K!4VXg##lKr2 z@t_`x!U?iK3xU)lq{L;fgt&t_L9@b@hN$?0-{Fsq3=v-B1t1UEP2IZ`L$!69vTOX; zj~6Z+nV*^8H#*!m-``y`TRMH^71uO0wD;V6pWb8|FKTOwMn)U!>l$+N#;exnYsM{^ z@b}aT38(TkmbS>@oPqnb`#af1+dXsg;UZC9pZlz-!htL*{nxO!N(O3eB zqBj%tw1@l&px1}HniQag5x2qxg*e=XEUzyC7p?}8;Nhp7eCle+U)}Thb#LK%$=trF zN$*g8IG5cKdqv+AJ$}Re@6=ne=5lNUeO-MSX}N50^0VpJt)09&j{B9^IV<3gDh^bd z5(Zx25SSd#CIN|+^pEn1AdeyiHcg>Gsi7PIF{dEMm+!#i$W)C$0J2p{vIWmvph!eH zZypZvvCFRb&6$o*d^i&HL|!rHE!VfN);3-~)HyNH8SEivoyCQnMMTMP{{xqz6N7A86t}?73+DlVpp;I_!1KXLxg9+0q1b)w zA7cM!SUcryD52FGuvmD>qRTFIo7Q|vfMV8nKc%fUR#@vjAdocwJjfEA84tnZf~!yYKeWix237OyQu|7 zohT~ZJ7_O`v>Fh27>EHGEJuMwNm>z-D7i9{AHc19>C2%)?AXf!D&K>>>}-_K5YW(@qz+r6Wj0D|NVbt zQ{x@j#c}K>HgV%l)a@YZs}KTxPm`}V2`jjlal&WAUswW(yE$N#pEYC>A!HTI!%`2& zZagf$c-~JtiRGW;*r3H;_CKRKi1lObILKzm*jbRVbx^t~DK8zweSyJW2XPT8%7X$j zesK?B#SFGxr5G?+dgMz@GQ3>rb(WN1MJU~Pum-3l|e=)f6EtB(I1MKj6?D};! z*jpQ@wltVbjkcz!Dc@7~p7Y|-rtXf|^Q`B5M|pEuC^u+GZ%fOp59b!-=a(bz0%78x z#Q!1BKP0?6YM18jWNJ-5oG<(=MTHZYLU~?PxTn|wr2vu;s9}Y}3UIqp@$?vpn$Zwt z=TPp4(|a2n;V;q@ZAjIYI!8%LoG2#~HG5(5ctR41^$--OrW5JFK!Ie^ z%x^!O2B|rAB!lCousM?3>kbr$ovyahV7RTJy{4tNH3=lC#s;l6Y&F+rX9aT`a>_%s z+3Bs}N*OA@5x)+Ev&NY!Xl56ZCOw{EDaIrCJhQs&ZhxPHU(2CD*rzjD{-luAy*DHno`Yy!8*h!G6ne`KEAIO)f$rrQItFhT9w3BGKL!_IPtyFbR$GfX0N~d@HkZ zF5F8cKcSDv7;eUnKFH5#riAAf7?XhCDl#+5MV4^8N>QD_?G~uKmN>P*X%*DM6ZEc9 z;%25)DRDCkLED>XuQ+}2=0I>{;tF(6q)MHP(4Twced8r1 z1G@c5DBNBB?Qhn0-*m$b&?WJeeg;_UgjK8rxl6ier4q8`Wnn!gNJTb&VThK(Kx=ntsUVb=mzE=` zGu4L(6u@rlb^(6*c=LEOA#c&{7`M_Ll(nL(Q4-nVBznufO%-L;=JXKywzQQ6LmdsR zH7z|YY>^{(Vk6l)D3FdQP%xNVpBpDYZ0vl;=EkOQ8vTNd!ESg>)Cmtp(_{@hR*c$;6V3Oh?GzME@C0wcUWV7KNv z9Jy9I7%p+S?~7mMC!;~=7RK2veNX2BWVW5oMRk#wrc>ci(6<*H3i(@{2+9#vzXkI( zlq^akXmuLx!AzzT($aNlBwxe%0CosVpMj;PtLOBoB2P#w6ZE&zMgE0d&@!6e!Ym+t zQHEujO6r_mV!gI#+a7vQslZ=kMe9zzkWId*r>C*e=M#jU@t(1vfyVB}uC^9mgRj1< zWXsty0%P`cuHGsx&4e~jUP%~yLppi;`N_K!a4gfGhC=9Kznem8UP< zd+b?9M{TXkB?ukE9YcLRwe7WS&5f=aS0o&y8gy8P4N7sZkMCJh^;3{RKX{cVaSh~b z|1F;VtLhBKN^7vlAN1#&(|-6arQK0mKitVy_O@Z`I&F(CEicz@)1^J$P^+q~tZpIt zx!3KIXv1?`sOw`<9o_3dTT?ZpAg4Vl$N37zn^ zaGi#cf^0fAxHj+MA&9_M{-g@!s(6XQnP~p5v=*rwGssE=iOQ_-yd8l5;Ow7o?q~1j z;JvfUW4GGcYiinZkyW89YPCBomOKY1whouuF5cJ>j{S-YSeHWooIFlz=`J|Q_6yHK z>uX8YX_X}Dv`QII#+_suP-#e~#a%?WAfL=BZX6xy?j9ZO_J_lMdOf*scx2zck&%UH zO?9NECQ>cshT1QDUwGmIJywveb0MzB(qsoC(q)44n^}G}f-sL6FS3B}8OVmvVkm7Jx-bU+Al_#KxIsomSAB)oXR-t zb@d~iPs-H8k)unGQx8d>G0EDoFJ{3-`V3ga5Q-qOv>kO*B|I65q|Yc-^lz(q>G5hb zq??l5pUhBQsHIeLP%9^6`85Oc0|gdC!L&ZT*jC@v-Rh*OZUw%)Cx^NYtg0iLxlCiU zx~i?hoA2}%)Pq2g!wEl7Ts%hFzg0FkuE36R@vcf0LR?nHLJW0OQY+xzX-9ET$Z zA|7y+Fez!zE}?_s$7q*5^Fjwjd&YH85w3&UnKB(W7<|*2>BaW?#;(?ufrb7W?3dHy zc0Q@DR?iuX(MVO>aM%9Tzb9Pg?m!8rJl{(Kc|wo-lu2+h1N|ymD53bDw@GM z3-P<{o+%|}6sHyqTPYj%m0N+c{N`PCbtl3H{DI@5Pv~oXt zq3YY;tm&Z(z666Hmn-)`D>2U2)hB2rt^N|Uaz}}5CsB*z^Ezw6&g_X+)+fwQsB8Zkh~+#dmaQO``CdAFL@TjBHje)n z&`Q9Hr*0)$i3!NU6{nSw1jIF^z`%N}^ODq(vINJeCDPUIMlIvXY5yNmOSZm8a!FKZ z%dTC5TJobLQOgTq0)W_}0=_En4Mpx<(v%KR)=AV~NPG^WIxpCp&uJ7o$eq`kO&d%#c`VSoFhhcZAPai$q-+wwP{X4ukJhT`b zsvKVA6l&uMu?I8FBdcEAQB~}P%c9r?W(%b;0!_KQ0_ZK-L6|s%)XF~cj&mhT0_6xu zR8g25kF_F84og3IaD2XRytT2yZHhSeox1nxJKy=pBe}YK9qb?L|E4_$rV znQI;gk73*c`2qMDRS5qc%?Kc>)ee^)`1|nk4&-}M1XUSSLF-8C0FOFk38tuGQe@I~ zhC6piYWV>kJwvt;3IxOxDbS4WuXxyin@sKe9V z_^#f=(p}_raT=Hq5Mr`7GqlNq52he^_$PTY$3GPj6OhQvvDs|Xn_13{0VxzX4J{|s ztvl!C$cNV+Pg;}Ibcd`Qo*kN9&?C0*t>@%`(?2qtZ06*U#a;>0n;Bt{^;$OJA->71 z@_b>oVr8n!X>9Vejx9pT=bng!!?k7RP@&4XwbM91EyDuY{J+?Fzd-cre{;NAxw!FUfndOmAeN|p# zuW4AL?Hz=*5)_-S@=Bo;IsX12<($j_Ixrv%!cNG9f!r?mK)d+?bd;2uvP2M584A#! zz|>PkA$2*8M^>RNKlMtSde}3RTuZNM=Lrt!_`=X6KL)i1TTML7w20EtDh?9GxbWF% z-QFM5Xp~clk(HW39O#^~GC?S7D65ZDVWlM;%*L$3bR_QJaE>I%BCb)FfcI8&_toqA z>QJas=kloMvW~3m0RMKY#bmHr4QEaty*IQNVg9;TCHZGh=3FQdh_CzZ% zH&D$3TiQfj7k-Txa0=e#zAOSopmDccDC|52BiuF+?aIBHU^A7K?Wp%rA(K4{&tTe< z?%?5?u>(Wn&HK&W(TM{4k**tWXuoknpPx7BcFl~9FGQm(^&{nx`!DY~)q=Ic(hsM< z0-==cPtZ2#&`@}yn58N=BQ+ob@lVCxVjk~=tV7Ao;(Sz_{1!bl0l9x~WNJl-X*LsbY;| zB%03VkX}h(L->_S7AY_bcnimG1fFi2-Gq?xtUuY2Cxc$nxIYkn#%_9RJuQ}(`+OA@ zz8^?$zH&*{$Pzxl{+a8jP>m%As9~Xd7Wc)I>Q(WiJlv9;1+xe_eJ*acAXnWBsdi=D>bE|(?S75hm1H@?D+qrz)K6-cZVzWD?zN=-<Dmq zo*ND?&R2a4tw?5a2#b6j@U)ADD0vBB3j+?~iMgMbTxk$>kn-$F1_^Sh;{u25;keuH z-8LKFfzQ&r!;y7P{#*JqOa5!~okMryb>VSfodOq8U(`*@m?3QA8Z;iH3KvIIpVTWe zd`McsE6W-@$>x!or6r5oos;A7u^_vzLW8tlXr@}f|G2A$d5b;R4EGn zx`@~T6d~+pp^!Gkk7aY*g&@C@Z{uUlanItHqlO;=3DraL}}ya2v2cm zO?n3H(O7~GXa}chdchlY(GDUyBbjDhv@|!6QA~1 za7Sacr^n&258E7hxx??8Ei0Y#y3qfu3q5-_9%V%eli;E=WWgDN$26c1jD$jr=o4jN zL(miDI8H%YSp+?SI-$8U=z?FqeUw%58I?y%a07+wHD-kK0x}5! z3<41JVDZ}(>Lv;)1DJ>_=%lmk+ZH%tbA@ky9L>U?K;$6YJz-K;Hl1SFgSHRfTEtd<~DT@oan;i-`Au z4xnAc^%2RPh(FSmQ-FW5e3UGd>=7@|HP^iQs!sgo)&2e5NBZ$|Wbzlc-ty}7fuG)V(@!xV6Y@4jnPc}}wjj)5>Y$st8sN`Qzk189 zznJE8LBWu7(6y%vVM*spSPm^cH&h|D9olSR{T$U{z2fr44yexV+=lCKxBo5k-$ZzJ z&sK~NV*~z`jREYt$|)2-5f;C6zKxBI5k}&PnY}y_I{!oY3E>U#IyQLeF^0}R!v^^n z!W)Wj?%@f=2i{zfpTJ=~x`$b@=GfmRX2tH?!x(IT?89$w43a-ih((AKQ~^IU=h9PE zBI379Rg!cry@g*ZfBNb26#g%(%=>!uJr72|CcSZ9u(by*;tEk6kEDFFT7C=T`PW{1 zhX4EYgYSucJ@0E#>5X*X_6==Dod%0ucfg887W4LrE zKnEPrT=;AfhT~1j8BgM^e0)j3rPuMrq0v|I>iX(ezslEy+?B^T2inF(bCS8J^z3z` zZTtTBXzQZ*B0WqTc<;}~$CaKX9;}94nW89?crcAA^I)~-+KJW!XiacK+m|oe_V~e} zDY@;&t-{M3BDccol zOG-g*2n*xZuA~X5XV9Y(3TaaMA=27lL~ePH*QJF4gl(EQ$c75OkE=7}Ho8IcYN_}h zc`(_bx_u*S`}%5J4p*>zy{~#TzoMslb+vB6V_9XQcVcjGDt#ceFgWJ_%J*~pUqMy~ z(VPBT?r9EJG%gznH9I*XFT)WT{=*7&3Q~BItqwt6lC2I`h>Nr& z>s{gjZoPAdLQW@H@IsMLb$O{X=qxJmX69$+S+lt{FKq{F9+$ak{UrEg#})DyxR?Fv z^0v0iJG;ipKHrrY5{Rp%6HF*rRW~ya(Z)^zRid-Nj?oRinkl zqgB;o#op1D=;&y)Wwa&i^M=D-A65rk-*{cw3K%uBFH7;>rn>6#q5`)nRfEJfsjv`g zNoBwNQyo5q-rfi-sS}{5Pt{U!7L>(NP#tXONGAj}>=qMnGlqsO^?(3JQh1gUzgH^L z=Q7~dJCIJgA~N%}!rFm^V92M1o`jKU$=LwBXVjf6=wopLk_M3HhZ5>W_3C zI=0kXRgf977MF`Rb&r1W%&`MuF=xatTAG8R=}>P@rC)T{m5IKFkf`jsYhHizwLMp~ z9h#e;$sS9~2-jY*Z~RkNT(k7ycfafUt1H`k*Kc~@?Agg%DJLZ;pJ)c<^9ZM+8Fm;6 z4Y=+ZArQv(wQe+0K)j{ob(F4anfQtn0gG%$vJK3iXau@~pbQ?tmjcl|aaV*wo{AYn zbtbnLS=WqiN~bQDE0Zf%$mw+5am_V}#;8;F>0Fm1FQqZXY|Hm72J!+WL#zFLJ$ZRU zL#?aqR%Cw6cR8x6sIbBK^!Qq1;CvkE_#wXH$6I>0|A1;c=Q1quURuia*`l!ODNg{5A<*H4*4Y#zJEl55E|8j4(y ze2hqB?m~ulurWy^#{>Rw*Frw$Di1#6Dr1jXk^Bcs`P$cJybG&kffH5pHB~eFzE@Tg zsm+|(_oMozmKL-4!rI#Y`N|=a>*mIp(lz$SpZuh{sV>3|R(q zP6`4ZQi>7vPSvu(ixH*lH{f?O!udT0>2l7FFTQ(Z(vhtzD)VbNzrloex`Clsi1TSA1WGy+kAliQEUeWIE2Dzfy0tz zH0U$Zbg7`7kR=hNyY`HiH7Yzx?orhd$a>j4_YMJ05jT0c zksB#efPWZ$XhFcRIm>c?N%`n|4&+YT;43g)WXf>|UP#UAy`p^f!?s+@bY8wAFwNd? z_kR{D-^qjCsnXkr*B{-d?&?vbPMp>nmmJ2J!2H4GK1K70&Tve8Iz^0`O&Ow?edpRl zlwd7XiY{<=8&2Axs52u?10hc^>1jP;ZZ;HHpuFkG&E0J?i)1JA;v|`n4Fn{ZQHnoF zjZXE0i0g>ZBrfAyl6vsQ%ZYQLCk;ANzrDa8DkL3ngiPObMX82Y0q#0rMr4g3Sq`S~ z%^>gagv&J%nkw&TFP{$a-={0u+A5|u+S*IY+S7Zz!_AS-!oto-b4hJYNpqw< z5NKa-FDt_{W$k#~e`Xpf7-0k_qxR>E;5pKu@EpPviX;<(Q|Qkz=Vn274KMHlayGP7x&2#_&CJtbZz8{ubV=sdYYus44}D2Du3Fe{DZBsCo;I0z97D=EAe5`HIcZ%MmsXi+78^#Q6;fA!dxGr814+uxBfz(2i8>OgTKDpcmyT6Rn`r>K1^6 zu-Rxde4pGD4NDOksi|tj#H!U!UVSWm=O;HGLUi}cj!%+H#@iWlr-v>z99<9Wxxg}t zZ_Ewk`d#?|1qGlY1hpW8S5PHhO*plgyHUzcON5Hs-X!^%(sR6ex&`S@Zf^V9*H$8t zrNCm##DdANDCa!+3VS&g);FK-@4LKZ=)S@A^}+KmcZLdwTOvmzt)bzHis9hn14JbQ zxINsCTVPn2ijEth?n9=sltQ?b6fvDv*^5g;DiaWgaR5AmdjaIbYZSx*szHSU)+ent z5uA+UgJko5A2N*^jJO5iUkXfy+XGZwbYAerosU2@NM0kO0+9&3Q7Ac)U${ZEoOO-0 z!R=tob@pWIa$(V8!_d*(C%&XmeCdhYqeIbs;lN6l{^}!xwtR9zXQEL>~Nco!}#zP5@jESO% zwZQ3(*H-eX$u5yEmnv;d3zQmUdC49;dXy&xw@b{EJyx04-x?Hqp2T)8&+$l(Px;L3&IS*s4FP!=*BELqt`b0%uEn9{V0B%_@{ zuR&!M#Y|R)8k5JNldX6juvEJ};79Qc1WV_;^W83|J zWcHZ+W((e3RUV7QV>#K5pZ?Qd9_+wR-xYr|bSCg{-ykc+KZS)qYQL-VW&CvB)&8R& z{fNER)AQ0@_-W_4N04n-`L|eKk1#6yt90!(mLZ(7oMoV(pN4fZQKQ5~8z1VneTaKD z-IBY2(0WCR{)7RKFii#!NU!I9T9!T?mDteEf#$fS-<6<3N+q{}TcOp_Xwv30)5Wwj zXByZ!U2S*kNzm!!e$+t9i*$p)^ggU?WT15+Y8zcuACQHr+@&3Vq&}WaX{@~QL(Us%J zy=8__W^e%CT5GE7JG__8m(AK8qoL|LTUAX{N8Z|U@uJ7n=!_M24owaX>c<8dyFT`> z;tT7CQ}4ZZ;J?ZOdYxXE>&UiS^qHPWQAd|CbIg!sb7k9%dV@bw*wmY@Ps?Oi)^!h5 z#*n>INw+=taZ=nY$sJ+TFqku>r6?5XQ1If2A24R96)aPOqXgbyVtT}1>Y)J9>3C9X zoF%Q+s_ic-bh{mnP_Qsu6m|#P0Y7Yw4wo|zC*Ml^0k;W5W)>hwZvGN-0y@MHAW-2A zgcU$#1-M$IK&d&iEleYbYk$NrL_t3)4E&*r9cT{baB;-7$llv|C! zgACs$Pk5p}s{Zkh)2eFrv3K2Vv?>-Bv@82QdWhKu0!5>x;nC6bD%)tsxFYt?GCkxp zJ4dLER_nl0U_D39Nvs*`!@K@Pa9P!}1~uvbB}F8$bJ{szoC{@0=%~t?N(<~l_cZs-o;`N->|9^-J+WUc zOtqcq>pRmnxe)tb6XE-&)*hRidu(m$-r|Yj%G(wO&a}3k8CbZjau~-4r{<&Vx9qn# zOBJw<6xu=JOJT@|>`l^-RPe;IDf*;H!qMgjAPQ1bwpi+Om)bm$?2Lv2M}^l}mg|mW z>+5~7XQU6@CGrP(6)tZvHDpWrOugRj9M7?V_33T&%NqSoA5K{5mkgVWLxq{xU)aYm z%LZ=!E;Fa%h-Yi)D#UHWB2~DdBue~NNIo&5f_$MMyTb9Bu0v!Q-+f)|NVV5nCC@&u z+FuyX_0(kR8wwcmV$yULF|W+bbpDI9PjN3S)w6KcExnYt75Nrj2HV*Gg0}=^@2lbw z;*@k8YD#Enl_`rP=SercRf(?p8J9HT+TSZw+WvXf6ZcYw3YVxfY)w?U4C<45^l`0qbF`F9C67V zz$ssckpivaj@j9P`Wd%-x*qQ3gY`2m_e_0FV{UF^X>nOuF}t&@EL_@{lhauG>BXL& zeMIE<_4Mv5udFQZff~4^Do|8aRTQYgucZX%97LHu02v?F$7i(!XDLb)uDMABikx)o zT=_X+&qRNq!0rfp#s{9%jq1V`V(G*jWX96+^FNrFmGCYJnvx~aXHH2mhXE1f?PB>o z|FrtZBP$Z`*a}O@>d9ND@QwNg;NKmqBUrM2={W$Cq|)2jJ!}-RU{l}IbmK)~DD2J} z9WfNm1eVUwR0g)>yG{Ch<{U_|0%wkKcECa#Y~Laihrh%7egpBWWQCUTj@z|a9g5Y; zHs?pNiZ9}nsGikv`iGnmP-1Xn?F(adW8-yW6Lk~gwf`|zJ3d}FK2bk0R>%A8W&Z>$ zGvPU-hUg}UaNI#G?i}{u>g~m!{bA*D<+UFu{?=~_m!BCqHG0!cK+`oWuox#|7AL|E zJ(T90$AN^b*e$vfN;FTx5p{$pF*rZiK2Ru*ICSN$_~2zK%Lmt+ruFK{eRTm-xaNi% zP5Ga?cJ^R~vaPmbU7yn0q+cGj+mBvdT2$@ax1b+OyYJS%$@?FMj@)3bZkp(@7%LII znj)0KYrY$E(PKUNLWxi>%tvQ*ECu%!O$s+~Xi`<0gHR2D2`QDFY9PZ3W#QSPcPK4& zI)KrXDn9U_xmyegR{pUN_*`{zY z|2Ed2{9SMSW6&S6jr}YM9?e1@yk1X5kLy_q8O8t;l>SSDs#>Mp5h|v1BUILiu}%eI zl18S#KN^igr+=z{a&$P_7wzqAFKsSus;S-)Qt%#v!^m5Mlyh5qZxU4FREHq^nIuqM z1d41Wsa@=$I847D|7Fj>-4W0Ufb;Wo7r528a1K$EgfvjdtPBeY0?N3WMVtZd}Ady zC;Fa78TM#?QjaMq(s-mK4(9k~t>WaH@04gUaycrZu&k<{ zRi}XF&>$u{JRdy%+zBS`k9~JPyR1L4h^?}e*c-X!NuRlo1MDgXd@0RK4;_ z^|k%%f8HOC#ljDqe@U8Mt@s!AYu;X?LVI7tRpp{b*!S)~|Mz0q1898wn!alzKYoR` zPwF2=3-UanDjaAZuDYiG+Ui$67QSCBIsXzK~^oSjt?qlDi_Te|)c!TxgADQ=y`Ql5UeyN=IL(7U*rV5h+SAVr7{PUWh z|E%uWhu-^M@Q?M_U&S6~Yp=il?^53nvv;yLl6i^&a>!Eb5%xyx5vheBuD~t`v%#~_ zuR+>jF0dK<`EQB^=YJ}-VB(lq%Uf`H2<0il^rcuE`xUZZNV=MMA5se!TGYgT#k-*I zlX~DQWCrxW95jrC z1)Fh`7dsU9^)a9X;Ho0@W;^x0aYA?xZ@D*l6CR0B8G6EN_)&ynH~o*;&AgY-D&RbX z+f1`C9i4zeM-hR>uM}Aq%a|H@RiOoh?M)$QlnTuS`!v*ylw}NN+(J6s^hxRj0eOq!-~PY+{iXwJKXSFG{W?QXGmACMm8f z1hr?~&#fH!yIan^xG>>s)>;Ni2Nol%?SZlUbkUtx8hGHr^$$*b_~G@*u_Fc5qBbv7 z-(4K)AN|Pb8@_(**~d@5*YEQ9<|f;YHXHP>6%;Pd-FC~whmYR%fTP#R6cPW2)2BO- z;s{Fw*A#yaSU4fkR14kFj*tmkwuY&8{qk(v{*vOp;@+8HZ*gR>U+JUvQ z8{2~c_DaN8SXNr(tSpMX&*S`-tE)Ux&(H71HR9)x<6bWWqR1wP>z^Q^f{rMjgxN{K zrB>3=G49stbCRKnVdsdOR}h6K70&*~uH(`Bu4H$v-LuNHHJ1%tbJLseP!zrSiUdm} zUnPkwAO1@R`7Ly&5cjsqB9w8f0_woHg(DRY8b+k6gi@$cxeVW=?Ji1A?w#a}IIAnl zP`tGu$u~&{IfHJin^;CLR(ZDhCrP&9gpvagE~j`WR{ik<2R^>K`mqBCKDIh=eRubD zgG1MMbzeW&aj3rGP}@pf-CWP;NY_G3bWJ~h_Q;Ws&d-1J$dR-2Q>`~ljNj1KcKyV} z4XwqI^{%e4ub_hQ)ws>HEJy&T>vSm<1k1?1mgip zd!|a!s16{jF~I@6mCoNic@2}{YctRTCx6pA8}B?-Z#`3`F~ z5A8|HX;0c6+<@Y%+O8CqvM7@!mKyr$oI_b;`MWE8`;QL{INLgwX0oyxj&|10heDHO zt@xy|f3V1Cy!pmYxm)UsdNNg=Ly->SlV;<5xVpky?6wsg=m|PqC6S2|W7dq>R8yQ6 z3gkLVyXxTd5u7{7#`LaYk0mo;%FHUN&$oCHOa@=*JH#(Su2Q4g2K;+9l7BD1d%|o` z0WSa;DB)v;S{a9!{cz7W+m9S+Z=ZK8w2Rj@H~%NAeCegwcb>-&@9TLsApRKV+$Pj; z3hBn-xzltly>%yWd;GGW8V1IQ5~W9;@@0@v4(od}2Yp;o^?{(pWr?8Gad zJ)igpzqCmo<`+x*`MM$l`)LIM)||8FU>moh8Pp<@HjZ)$n79E}ZD#FHudRIi;DIMr z&p)4cYv;k+%k%3VyzE8yiLSec^ann6@buYmsyoPm9>3c2uftzjy5-gb;!CmTUwciW`(I$c@YBsJ0Wh{sj1e~{-j_u zZIX6fzTa?dF9zU4;GeUTU!R2U9sc1nek(CZ5Hu-+6Uke9h;;gRJkp8I#Es&o#cv2c z&?wEhU;%u7N^yIQ`y#@1LgIbNh8`SUl4rJ@n0tG&a$53Td9JdW(vJE(5=+4ducJK7f<3vKL1Lwdd5sL#yGO3y4T3>K$rYjkOPBb29xkUvn$8WKlL5I4re z9^pyxOSlJFgmS*~es1*^rtpSnOJv-Dbj*gf=QNW~7Y{9yh`uK|An$IE$BHON%eUos zvBzz-x|3h9xqlsF*YdFo_{cU4xN8J0apC0AtQYi*(hg-}f9zH9&)B0&MrN@Jizilg zq+>z+^HX^8aj_q;*yEFGPwcfLWApT+xKRh1{Vab{E%^94E*1em%bssZFl83R0Xdq``GP zuF=QtR1h)Z;-{x`WDu;sU|^&}Y#eNI`+V-EK|t$X(Is52Nagr;X_~$VtV^cnvRbY{~_bV+}gwKcl<2Noxw97`9cHtrIC0*sd}7=(6Iw_fap&p|h;&~#z7R1J%S zS3$9i@5MyYCl}fIX&YHJ-7w@%LzLiUbCarEPgVW zmY$Ywu}>DIr>CV^xZlYkabEa{_>sL}tO8g1_pzGTH^q;1U=@R6^+rHp5zKMk2tf`> zUj&$ExM+cGhdO8(OHlBrbUBhN+vnv$nS2G3fR->Wkxk3&iJdM9=X=r%Q!`5~(YDgi zjCg&H9lE%XENvx|{WflG>fFann#4w+1w$cC{%lR?wQ z!=)n&BjTxIzqhbu5`BGrV^*l$_#SW~-q$7QfQnxgBCd{l z6jgC#rbbm32vuS1CpJRDK8&3y%<{3dR3MZ*iYOBkSsg5#G_OLfLdOCVn@3m+6NhcE zM@ZCR+ZR&xIHQn^JR;Mm%^4TyXiuDmLV(72Y4W7g;^4@ z&6=U17Q|wBL`!>HTYHbg<#P0F>A#5gpAUMmjb6dG0O*a56ZA?U(W@%yWeDgeC}q_D16r0yioHq8I&*YReKRLzB|VMXNEwIC7-s*M&Dme{Cc|Z@ z7i1agFCRU87)F34NozDz9Pzl5X7++$eg8sCxMcan)|Y{&y7kMEHeCXW^$VY6or zk2+x4ulI&!7Eky{`@HyTU>U)ogMF0a=UydSLQ|4#PpwFj?G*5pOSb51o*mqqoFiGG zBe8FBIS05D65x>Z|Ccu{hE3kLWEu9vo@7|eVTwKR z-=t<; z`3p&2KtdajiK@+#ynqxYBrsBj2v_WX`sdS)zk^k7H5jZ67}6jCpZ^zebt8k1JSUYn zGJ-ZTVHKhYf_L$&h1UnB5)i0+i#yDgFOnsfEi*};3PhKrX?S9WB243{m&DbgP-T%J ztqs(F9<%scMfye0m%JjP{*SM$DAGTM=av+ajlWTR5zp-!BTelenV(mD@ixHuqZsE6 z$nxnzoMYmG4*5{x$Vth8;AiTl#I#((C;h9Gv~l3_e@Xnq3el`MwLl3YiT5Bu_YMTJnK_zl+fWZ%=p!_)HOZ1j$-C-8u#T6B9_ zC4YWzOSMIjE*O?yqzjHi28Rkm@&u3D;fENNG&922CCEVkCR_w6n?OM_o7m^e0=fCA z`trV1y{>AyD#PdwxebOiZIfamR9>BB^7WTzWG<|CbX!dUeMX@rH`A{Nem#aAufUE6 zh4ufRyNx`!^gn_*wyX)+V&Yq^+OpS@J<;Mh|5$mU!8^QX?3Bp>NHb!MtMe- zDbv;=-cwOspJfgNLlM2<$f0n_M6QK)++wxCF(0QV_U~BTD~cRYQ(616yGw_xOhpJP zVWT3+r{jCk=yFTTviMhn6%~W!pfx_wn*UP#jHC+S%dSo$o9fx*-X3jeSit{^!%dZy zO%<5q_d)SR@%Qix?35@zIpV`F4P<_eQ(#J5BPVv_erZfZDNZ0!(&s3{?s6$mwpyZ6 zJOK|Kn%MUzetyoFu^>J=*p^}RVzggl?*FPdhtc2x_qInO54g(BQGPx6+ng=-_ii0in?XoqV(J3xVLDI$Uj;leYghC_{*LQb?u5bJUok+re^3)1XDUZ^?3?aGPC9CX*tO; zcXvmynmO)gP)-KnKU9YcGE2N(OP1Z^x0v$m_8gDJRwAy33JOAs%$z)LdT~Z>ZfZzn zwwkgGCCG~w%fQP|6xKB33t1PK z^tt4T8b9$ah;}sBv4#KJ+||UkQAFYOt{2Cyow{oWuj4l9#x7Bcom9k0ukzT#C2?A_owapvtW`{tiWzdP0JVD~BGCf>c!kO66I;H#57Q zU1t*mJ#dKJuH|{(?7rFey`OnQU@va^Xt|U#;()$=QUU~U%$&~AG;m)?f^t1dXt(~A zOT?t?MVb{!)cLCa!Ki>!6}>1bbO6(czXA!g=NIu))cWvgfVyb<{2(^!4ce$a$$F1H z<~$Aee)#A#F5qGwyF7LN zv<^!&=fu%vr5-ryoDcSV8v+Y8Rqzs}nvTNS*|^z-`b+HC4p7D0@+&;4q{sP5ABsr% zkwSozqLzjCKZ-9QO;2a7+VouvnZ)o{&tKyyK@Dr-ICp_AH#9>vho$;`S6i)G4S!atWYM4AZq_DSt;t&R@dK8% zf4^lRUtmZKl&7MsICd%m0llKuNNG)UrzUP_m}t#ziX+!e1DWx7Jj*lVvMuQVRw4No zQCQ$}WJ7R_Ki^@$Zik5dthaHWO?VHsR-qHOXwl+9!!JSm5#2zpmY-~j%A15~CeR#+ znjIrPlrR^H#Z0DHDV9eMWb8}KC? zbzN&}cTa8BqImV}cHRS=29&A22*ux%PVTudh<>T5^m%-wQ_JYikxnh3dk==hbCJ!_ z171ZRKgT(}JFxHF2cS*kGcywtGtHSN<{A_AiRr1DPtd6$PTvGQ>c+EMQN$gjGoZu9 z`;kPR{no2YQoG|eUtwjclEbRk8;6eVu9KL+kP`( zI_nz625B@OQQ2&i&VMObZY(^7&p7MdPMN@~pL3Vp>+Vh9-7Q)tSHGHBx`g~V<;XvE z_(#FPN_Nk(EsVH|5qIe*th@PAq-QW9f;mJ6`@clXK40M%x=!=9$XmTZDX!edvDUE<;}3 zv)*#2ir7h2(KzD}V*E=&0@%5?=HXzKKa!)fyBNMa`8pWLyX+31ji1lsFMsix@m+eD zL%8(BZnTHNG!JSfK53U4)#__+ zRF6XHd+f6NE#_3vDov0=KK=`k?88@N!MaAtxfhUgxn9kZoM9YsyY}j%B&V&v%)a9> zq{vuM4DV~!7QrL@qJUrA=YC?J9v$}o_%;7*5#AwuM9)D46DsL#_J_1>sJZzEb`6yv zg3XJFw`$Yaid;?k5wRbxYt$MC^Ft#eLqnsQA!Ywpn?@eq4mORguB_-GI02)kAnN=G zOAmAUz-$^33%PoD+${3dnwJ5!r^85lj9M42W^`@??@Ovxi;Ncid#i>a|F2dp7^3M$ zXv!iO7YI8=-TKb$D66&_eir>$weI5)`u*1fwrZ$+S68%Z4FW50O_((^JcqDZQ}JF! z4r;G4E;(lET0T1f9|-$5d5&1Ay?9Ld_XkTS<}b+1)=%=&7=L@sD~<3zvEC!cr3!h+_hp?RIs3H#lDN=e*b6YoZNFmK==KA-|u_T=gyotQ=b0J%sFR5f{5bq zW2e{&wRPhYTH`hniJMSbJ7M~?nU|hBVj)pQBvE4FgqgFeQ)0fkiYVd}qOb?2%^X#H zvg68&Q6JYdw`sAjv*zBjJ|ME)iu;vKOM5)d>WW+?Q^d2+OaKfak}G_x~l!l zdsjF{*^k1d3!~^h_&1wtP$bH1@+J8dN%^(>o`n2C{u^bI9Ap=_k`T9v+ewN$#5cG% zTi$}-mr%ooR>#T))FQbWDbZw|ij$~VRB_juFrqA-)gz<4rgpN2Dk*B8l-~rL^mlu; zxZNYfmE1F+ZdHVJWQqhCA{Mq$*{xrtoWo9n@6JB{FcrMoJ;%zl_XDa;;b6x6$pkfY=frz(i3 z-Wt0yYNdOnVCXhOH!Fue`8n z77D4h5&tUPHQ}S}dG?erd*q0RMc{nDea$9Gwf8%kom9(;j(-xsd``qKODB=+Vfjd3 zqm|?YucBxajiIyX0dbc2v$#TR5PtE#*dqcmLynfm$VT~?+$R4iciQZ>NLz+2$2Qzn zU@Nj+W&5k`G20W-heuC~Zj3%YGbS@DGdD9Y^N7renN67;ndfKzIrGZQb(!lk|Lt*k zVm(QobWf%y+cVTt=qd3W?y2>3dRBPO_FUw-)U&~JtLF~S-JbhAn>~+uwr07r60%aV zJXzUUL$eC9W@Vj}b!E29j>(SCPRdTt&dkosK014Dc1!L}x%cNjl)E+e$=v61U-Yqil&22J%$HZf`ZH+=cElv<8iIc^A(J7XT%f#hktym{+l4bI8SuRhJv*cm&I5{7-y+B?euZ1P76?e#5 zxkT2;b?|%F$unh)jFnHytEE>yBcsKgvQF$5{}H`%BqbppL{SDMP#O(FgsGr>_>eN1 zN%b_1rqfXBpfl)H>Y)qiG`Wl}AV1wsf2F(VS-M!X)5o-f-lKofF8Z9lq`ksL`>0pg zMV81AnPLe2B&x(zQ6t8SIig;+i3YJstPp32GsQLHMDZ6&q0ivCUZ+&r13Ukgy!1Wg z&<_Yf-_bDo88P-3I$VU)NcxS+g@cX|ZYrStR3&2RC=pFHBA%*6933rEXuL?G zr^VtZI$s<|U6@~-Cyu3y#PM{gm`j(5dGu%DqpQUNx<;Hr>qIN9#hhe==%$-Q7u_gM zrN_jd=@D@W-62k+E#gvoSX@kxiZ%2EqUCeqT6&&d5*z3haSOdHZl<%ubh=NRkC^^0 zO%;QwTh!5=;&i%4oI@MMS#-BJoBk$NQl*HYbozn@(^vE-(MZ>dMRc?1k&noSAzr{weS@&Ax7%I)%Yd58R~{F}T-Zj`slTjjm-Zh5D?OWY&2ipRy1 z;wkvj*TgI04Y5r;Azlz$#Afl3*dd-5{}lfa&xmK?ZJ!e_iNA}t#XE>4JH?0M14NbW z;yv-Q*d*Q*_lsA>)8bu$ST1&nkHsf)hWK2*Bt8|N$&ci2`HB2Yek=E4t}8p^8<>b4=J8L!u)P0CO~gcIK4$~dYdBX9n1>eq|w4jV?-E@ z6%mL-0nC*Il?X|t!bU}KeX~S1%@7_sT}+`f#WY$XCeSi5k(P@|v_ed#rQ&EhTO32@ zh?#V*m_@6^Y+5O1(7obZ+9b}S`^5#cSzL(db`d=!RwH)*iCz#l(02IJe~9(;PjRC> zN{*99%1Sv=PLfB<8|6(hM;;-^ioePxd6I0AbLDyR9C@x>C0EL&a*;e+_Q+0op}a(1 zB-db;cd5Ks{#p5HH}vg$vek~SpG8-+`Fh$Zzh|MZm1h#{_YiSi@CYvWgaqXehGSM? ztErmhp>b2D)q7~fjA>Im;GeE(hvvrPDg*X9%qX*gb8+x1>9FUaMwtXhV=+dW@{+o( zfZd0K>#6XaIenu$fkYT&lLB4$(qTSdTaTzX^lwws;!aVleuvNR@->Oet=T)!Z)ZhyLweGOwF@fA6=mn||$Ha;RVMK!9WX8?JsM)i3i# zKsNjvrhcQ;Zv=iZ`2i0(Gzv9KRu&yZ^zoQ!s1t#eNze!EH2pl}eP1NI6Z^M(AE{1PiCvq#oJ?mtdN+)eOh?ESXD|LwBi^)>r13;o65HQPWW zTH3{ z{eU}m%n`5_6yFNWfh@T6K<1M$=NJxajYTWFioF&m@ClUoFgTKjb^u}{|!|552)v~q~=#9r~e_)+|fD^t$36e*)*w3=(g$#|I{ z6J?T2W-AOmo^|Y2Q!)o9>=*V*FqBfdObFogCMN?5P4!W=H>IYcXPvU3si}+Qo zJNi5%@OWRohu9(gsD%FRd_?lDsHdK>QTqzq|IIX}vPF-RGT0qKBpDw7F;=OLL= z$VlHa>sZrq#=TsmPhiZ0!FJsL5#w`e0OqBo@&YOYp8$b3gb3V@^bWw&x=fXSf_ys4 zUI+XF*dkU@B<7-#ax2<1q#2N8$#YpM<*Iw51N&_?RLUS9J_tM>EVqpSKl{TFqihHz z9dOUA+k-j-fqCDWo(^7}iZKDU;mEH<{$Nmn`-g(_X_Rd=>P)4WgTnJPO8%DsT1E{7 z1NEcybrp((3hHob0Co~e*?u$xUZ?*AZdUdq0#E6CflqKRP5i`l0y{)>U_a7F zMMPjDY=~iloQM7lfD0{E@CDMyz}MIj(AN}rTTtK~z|*!?=qkX(LB1LIzAta$Hs5mp zT+naARa7k3;@%RJok!X7+(0i@;|=V^ON$k-!Jy zO5o1dcVHK0J!N7h>QV3wC9Cu+#4xiAsk{(20@*14avu0?gP*w^!2afI14q^=hBoM!neUg1{h$GW7&@Xae-`LD9dz7< zd(dOC6~6Iai~*m7zDniaC|O=inF`h!>7}^Gd8;lOc^l+pTLbu(GHu_X-pQ&Tk30!! z2Vf2QWMH}6k86fAkw3>sk+*$}w!10Qo}$V;vJ7cBU>cwta5mr+3v?oX7GMox6Zd^3 z-~wE8++zq(vMm*KEJgl00~X=_d7yU#xx~%A0hKo5x&rr)fo{wR{2&ewe8Z`t(~o;+ zqRj+A6`&b>Rm}$wlm1%DA$;7;G5NmWaB)A{`n8H6Qp9{rONf80ibZbsXxk9AHnh8D%^MbP{`7 zRe*d2O4VZ=WY?NcR8o+F|7tdeb)M%miGrDd$;z!w*QOXr2W_RzPSIl{VVtH2lQ&_4dB1$dY|eI1j+*C z0aw7@+uFORw_yL*sL{KB%l>Ef_x9e}dn@5VK)%OMvm5FfJsvzxjXq|w-#K$mgTFMx zKfH17e9!9H4St#H(+^jhyz?@$vi#KOry6hVeI%%6ZuLmN$oG5Z&L8QQ`JQHv|B2~- z`_MV}4Hxd3x~4k6v#ue_Z_90*aePCTH!EXxgU3I8I*KYAGd%tZ&Q&xvdN%3WzGnY$ z6d6|@e<9y5UmCwzXizl!dev#MM==Ia|hL*<0 zk$zjgr_STI=lXz|qh@-8-{GzHJH6GQ1J8`-j`Z8}y}--UyvZ@I+QWAk;|z@f|N8B7 z>ze$w5m~rd<5}%ljR7_lI&wkeF%5I4XZU6`Hh3Ge8a@8XnGLv?!K4}EkMuk8{jQq4 z`>^^{oO0sQTkQqMz12RyoHySunt+AhF=C|OmG5CxBWju+w$nUR0kV~I8@bBdT7_y@ z{(Y_ps;R3Uk=4ih@cd9&xOFcg4=4cl+_|2*)m|UVMe&O=n5TYE29Pwdgmk>VT0KO> zL7Mw>&*xX^hfd43|vLwYNS5~-NY)Ec))=spzV*Ynd@0S*W-@{(?zO=$1jp0 z30v-Tyg>l*fLYb6AzvPLM3xuL%sjM#?{gEF0^e-}B@=-E1eAt~>L3E#gv~)OSX|?$ zarX%!lr|*fBeKZ4Sq=UeZ?&h+9|7fad!caEp1Bx)b8IYcaa32Yp1UdDnde`Umyr!N zC4#nuypjH-{7r(>Wbm2Ol>ALLPE+$Y**Q(i-{jylJ%5vv(~SI0E=~vKZwljdaQ>!n zP7lim7c}4f&bi>Q*HhpZC$fQz^pCLIOzyjRs=k?LxjD4&W|zL1nNR+xy#E1xLqK09 z@bZ8@PP0HCr`e#7Q!nV_Gzau?nhW|k9SZt59R~V19S-_9&CmCYRpv7?A8d`C>#2ck z=dv#NkoxmkR}1p}BlG+tVTGe$028381Dc`NSK(!kc*q)1!;${NKGBL~|ELk093rW% z0gj9XSY+kQfwznEJ!J~t64VoQ2YLfInE}z`a!P&xlLNf(HO^bHsaPa|qEgTgga>Rg z7e?W$80jy|FGv|X(qI02RiVI5s6HAZq2ydofoB36K3F+%_38=U32-zGh!AkB@CM~V zBqd_}3V5hw7#IFmRs7*Kc`d68ydKZk)#z(X@V2Kw_u;prPt@}G=d!P;Jf`7(>9Kh- z?w3Pt>5bLwKf~aPF&;+rj)&z!nxSS0pCR&exR5n-o4tNpjjtIlOxE}^ke}NKyYJt| z2bAE|z2kiq8D5Mq9&{m5qoBV51_2`MXzg$g;JpJ1g}BfU6ZGgq<6MOVei5tKLk7o! zMjXyO@L+VuP=g2Fv0%*+s@NX}=iu>-_fFu!SXyHh%a{Ozqcp3bz%v%nl`%F7(OHn? z&Rkqg#I3$St_5|Va?SM`k^zn*{YM%Y)R>}~%aOi6iKZyW!59jiEKPGQAbcmH@HO%sWfgzRxe*wm?QS4#` zG`Y*l<%Lxgz(_QXwQw5n|9zTj();_WIAI{g_@8JW^Nsz>SZ_r}mPOuKjRuZ&%nXyM z}<~*Zl(9uWo1dyDhjT18k*kM9}zZAB3^g+re!sm*_1b-RoOv?9$}e5%i9b@WdLTc_k>Grbm>smKVu}~ot}`B)lei9NPUbqCnag!J zg_uNc2pz?+`}&!@$Ecqa09?8v{0N0N^dIqUJ_=v8=t zpAOi7$7*L0xy$elF4jkp*Wp#ZOYk`5Xuvx}G1Krc3{SCRu~v%1+9~c$Ji5CHbDfg` zpW)TU^N5o20C=jBJQ;wuyiz_SO1+pUtp>1>C>?97^rwk3a6jW?qCri7hlvK~0Dd6K z>;&L_xgjqQd6p7o%^=F&MdbYlQ4Yq<1r51t0C=W4^iI5$n+U)wfVgy-=^w*Wo`yLteBCn^~PxET<@mLU2o z1s}??0L_4%c%Ata0Pq_P+(zGqcdXGzMI8V<9s|CN=_0%U1y}(1gy;y!;fRX?7;o%+ z0Op5BCIG;%BXNHm`W^QH(NPNl+leZ>VIpW>bqCZJ{nwlT(*vD#UZ{Ko(S$UjqhBMM zGzl-omH_tRJ!sH4b9`kg%l@GQ}>ml7R^{u{ve2JoQ~ zG&DX#GzW5@^Bd9emlK@;`JVuOpSXhPq;Y^Zh)!NfG`E(>mqIje1Ykc=(>9{!8;M#_ zZ~jaGV`h`TtT$NN3;}pECWxL1Bc}pd&S{Ir?~*n5uJ{9r=JXX zh3E{(`%KV&CU86RpG0Q?@3W9U>l>o8uOeC*4}eToenoW7WklzqpL0145Uo0s=sY(7 zbes>qT<~|i*N(m}x|8T)578yth%SAa=rW9X#W12PFC@A;nrJQXyrz`sFO!I_`xns- z=Mt^Ii|9u1V#5@on?cVl;Nh*6M7KRabjJjuJMYHJ=qSG%{rnBO^Ec3R4`{fzn8=?1 z_zbVJW32n0Ai5uTKLDO?{*>sUY@&zj0MMI9fXAa~x8*NHk6lf)75eq~Cq&x-F_a? z>*)WD8ANZ|h~7#DyiWA?IsoMT4)Azq6##sEw;Aw0(R&x*tmnA8#T02|W23`23nh z^zTcE{&OwSzR5(t#R0w}+7CVLy#o6HZ~4@Ih*`lFMC;#3Ot^-`(dhT+QvvUinCJnt0`R8KB)s=Fxd8ApiTX|w zQ&4ZpW)f2`CoyddiRqV-IOcQ`Gp3N3IfTTlRU~Gk?ATfo$AO0pb4fJ5MPkmGB#s9? zCuEU0(T+`2(0|g~Bu@T_#N4Y%_$HH>cQ=VaQpz zaT@SD?Ew;}Ur*u;$mxs?B+fhx@E(b?ngEdV*^2;>-AeFaMhl_s#`?y8w7^>91n}81F6{;2OYBBsLxgfIi(_ z2>_mdyB`34-jfPg0s#N-*-PSH(0?!Z4x7fL;>!f#&<5ANTDcaX(~n zKjeBpWPd;8b^k6B4gHd_SED0KY$l-h76(pMmZ@ZGhWJd=5SQ z9C&>G0f{d_`xlp!_*X0dw0sE~zB~y49sBYX5?_JVuR!Zpw*a6^UqeT}UJO9puhIS+ z;PMS@>|5ab?K}X=zAFT@0v-T>r+ZhC_#Qm}el3X~q5$CA4|fCJ$BQiJ@5l2180#n0 z{RMpd^=QC)0QBMCCjy=(@t=GE(tQ~FH^}EV=)-T&zx|1T`6PM=1D?cJX=Q+`N#dO- ziFfj)Xdo$nCTYWahc={kyvJm}m!u;Fa4AXWAixyB7Lu;ffbAs1R*-b#zWaHS5yJq` z1%yR6jmLZc`aR)7^`3A}zxRakwj17Z;`c-G5AO{N{1?mKhgV+TnS$OiuXK3?=PGWyr@ck;rNU^eo+n?Bah$SkL69s zH>uwjZLlZYMO)mR%5OX4y+y+NJvzm#L|t=gEwkpizV*I&&)Sb!)<5MsRv2WA!}UUe z-(ce}21$J@IE0+ww|)<<9&i5&tnI*U$b{dcj8*`OdM{wQdZDNI-NwIxqqwEO%t?$p zAeETY@b`$8w^Q+iv>vjZgWetZf~!WZ8rVZNRq`F)Q~4pV9lZ_>z-!?bei6Sr z)bBRSD4lAQl9<8|gJr z{0;crm8$@{);84IjyHDph+%+gv^W9j$*ScJ(HYn&mIE#W zTn<Ye&mW(2$E% zkG!ql$V{U-@@GMzg>=N@pE>Esc2z-Qo1t9~PHJj961 z)eXjo+c4sG(8}`N2Knv~Y3QA0Tmdj?J{k0DOqk;==RJm;w;6I~j&FdcJP;Er*LNE7 zHECx|)>$xNeKaxI*$<1I1_sOvmN{daZ+kKJ+p-?o6$i@MZuX$pb2}6%-6kg9@gl}*s)K+(5uB6A_3Eu2gmaki| z9c~6CY=<4dVGn(+sM%}a!E$1%_E@N5%id;CwGBAzPjC@D?FRiO*VuQmb#KOuld*Y5$zStad*J?By#wD+unw*VPlNi$o`tn~AIsdL zf2=9YZ}!#fO_&$^ln(5G-`cG>t$W%4POzPBMo%l0{B=)kA6D7#H7H@*>@R=ir(h>L zDawK$bMt!O^_8JL+=J=OnX`t7-1tQUqy2;LJL60i;c7zy{-XV1x}b+sr7?L z+-X?nDvY=SBd)@T8$=>TOM_g8Vf2c?W{lnexvzuVH$X2}f!1x1`#NB<3UXKldRGCH zb&&fy$l`c#>nr6?cK|EatUU^&PUJNvJ3u?zho(J<#WvU{$4b+WZc`pzYoFDlGcUFo zSg_t-2rM=L3+Bg0V6hEY?4d01WgReJue8~~U>h)C32+SE3k-HbL-s;LOkVJuVKXq; z3|?$j+)sq2q$zD-Ua)O$1~0Z5^9K_PwgFRfHUbOw9E`;V!grA1Y$iCOF%fPdz+xS+SO+Y2Kq8C<>%ulM0{M}E3eZ}O`zIhh889C_0FNP=jlgCdc(M*W zS!a>V21sVF^7qUWrdwO59yO?S+6S>$WcxP#n>AwXRNP$!nzo~->p|0A==OH)d&z5X zm3#l$(CIaXY}bIMHHx!3TJHrtdkqh>4)m-s=-G_X*BCP10D9Jdo;9Fn4d__~?ygbX zW$R)sWBmk7{(ZEGq}oe%=G+hQ5?%m%O8lwy^32Y#t3^A$2h*M$0*uM z?d~_i+Zf?((Dycae_L@+dq|#jYzO}A8CXZR1Aq1oJFz;mgL@kP%_@4W#t1xj4bs8B zoMZ8J!&Z6D!!uuPpVdh9{KlNenlmjkR`5t0@SQHl$RX&RIn@atq(|9q&|><@jm9We zZtYc3AQ=6bo{&*6!al_($zGD<0?$kIY$q7S*+Xtn9s%AFSnW_Y$Xdc4l075);f;p2?8FGW4Nt)G zWPD7GG5yg-jIz=21{@VRcI+^8mi^L3=tXu3=G+);St_Lm~3?H`&U%K+B zY#Vwc_AERS`!aL(XvSQgld@;g5mS2?({rk*sceEZbq}IB(_*f9Oikq(FGqBqS@No5 zH)z=n3GIf2c>d3}y<6GDa$E;BbvyG9I5Us8gJXNtoPlFA+XGu1bBZH^sh8Y)e>-4# z^Xk!@Gn#XH(;iqJY~MV0-GT2sO{>$g;JCy7iM{?F(4przFJc~{ZKnSk)Wj9vrJ*NY z;j+Ko2kA1-+aO(YHOMQ}73g)H(d!DsN;r<_xrCnUnh}d_cq4Rdqv4Y{Zklr)e0_-B z3j70}#X1-Ii+8wrH-mTka&W4F6gHd>;t)>Z!WXyCi*Vr<5xlC$2@laY?IK3R;yjNg z5s$AXFT=ahx!Cd8k8>BAMIz4k7)D=+WRW6L@uu@|Y7yxo11CES5`+1)5#hnf30Wc= z=O%bXj>r{5=`b2Wzlve_a`7;nsFFuG0R-o&6yWTSeC$sBQxu6}dXZkj$txxFvM3d0 zICEt*jT9ABAjZ%raX3x{87qzymB!YDJwGFDBsa{rRB#6)_R# zJ-jL=W0zwJPCS`L3&eEVA&wC<#7ul!JX;(qj>G9EjdZz~L-&#&dmvw9N32X7kMmtl zRJ#~+al(lYCsXVb^F)(q#@^U`ymLNUEW{U+r{KHGHk@oxL9dH;eBtm0&MfH^r{cTi zZhX)DrdT4Die)$-W`#ISoUYDSIZK=^R?-+cT%04$#i=Xj(GfJ3zQk!GTf_z8PvSyx z5#GK(66ceACN9AVCAB#Ha3Y-@aB0N&T2VDTqmvG`?oP9p4Id;hWLFio3){aW~F4 z`J1?hPQ{rbetZFXA5El5^lyCa`vAW8eNa3^lf}d05%H+lg1xS{s0ZJdZl$F-P2+K# zs=?=z@OdRq<7^k4OM>%Ko)gd0G@MMb9p{$(1Lu{zC|<&OG}H0!`!P7tl5fPfI9295eDU#{`T`z%a5x?2C!9K?zSb50#;H2{@J)RK zPIlRk@9bCN)Q^8vBWq=y94{x}bP+yd1bb(43Ql90 zCa2?^mKk!UoQ0F*j>S1c4LE0LjyztTAWy`}BPYwb(g%;8h@GuuN`a3|gGbK5-q2(8 zqnsz3=qLJFHp>>APqaWTl&v_gXpwA_i`B_Vo$^%Kg;SJza8}V$xlAsXD{$J<={RNS zOnDa0Fj;AwX>uOE)QX~`aBk9{u-6qs8?kb|1+gs-J3=>OkI#+0M4SR7FOYx2xBGK( z8bT$`Ac@3D7Z>4sl>2c0$;A|lvryKkbBi9QZS*WXfG;{8q=)DkoQ?8lc^S@9x2~=SoS<~Qya6XQ@wqD-=zLl$Z>BrQhm-Xl=I>=NySR%i0ui|@)e z$@}m%*U30P$&1rIE~JZTwR`~QEL}pYV;j!< zc@ii6JdG2bp2e9@&&$8#w4WDn>d!xM?vMUX|5co>vjg9Uzaihm`BU%FF8YAprc3F4 zs==8z@6ty&@#Y-aw=8m3b+xuH@HH*zX>nE6sTA*Kw{|rx zSvlLz*^_E-qdLXF#FEJQXVo+UTj8|IhoT}ST)$ONR+UusJhU81jZFTJnjIs*n zGz%5AMY_1wV0*1GO0B{ETBD0vQ#^(+Yw8@+7It*C8?6nT>daO~ty)94b%jyW7A}Db zbuC%k=3CO^nx;7wF|E7J*S%1aF~dkSH8T#Nrpy?m%;>zV&N)*xiI{0&@XQ0+l^dj$ z8_11ONEH@UjJMB%%$>8;fJ{hXk*-r%Tx5(@Zj4o4=bUZjT8XY+JK9Lc7-_YUmT_8C zS7&gquG}#@$gMhq$Kwse>P+q#gVohV%?{z#Y(uYRYrS&JW^;7TR@&t}PV?ZnAP>Ti zYi@1nYUyt6b{@B&%eS;8qA_?=BUWJuW_+o$QB~2!;|(c~uW-&$-MZ)WGn6sKPG27* z;8P4Es8)<9s;f5Csai1z*NPD^7Gu0BgE3X6Z!+3dDF&iH#XzJ+KUJF1#bre2B&n+}YeG;G()hW8lK^&K5<7v&C|^+O%l{tr`Q38iSmgGIvW~ zznW#$2Ike(t`-BsmJnxD>s+8lh*%KBE^>iIOWh0lby-|wUl?>o)e#GW4fUACWzN<< zAruywwp(K`uV##FJ;l{(VAE@kvf}KV#vS1UrXhBy?OM9EIy}7l? z*`^rlY*Q3Owpr@g+kmx3r^Mh^iNT5z1CP=YXS)_myN}NX?&|1V*y3#0eYIQq(%qCA zx=}jX*3####yC5yl$!p<^jgMH>L0Y+~`D5%o z?4^3tKuUZ?=Di|gj4_4)%8jwg$2*r;xu(1j^hEg`q{`nQRsII4VfA$e_v%JFmIS#~ zXYhEufmof%J!7!C@li`cxV6Mkyd{RWTB5ww678*)X&x*K@*sR!pSN13z151~O|2Of zhG52*IagS{l|lCSG0xLex9-#WS<)EA#Nxuys)NFkF`5%4+T9eERBH~@6)M^a>xvX7 z3hRoMXGU5Y#rA@dqVDvkL&4}?(6X_3f_tD zT5@umZ_%QKzV-zxd>wovzU_b_C2shvm=zt3aQUivTT6GhQLe0^u&z+6N?oCrYh9s| z5Xv>Rb%jc6X?73wstu_AG>l)%os-`K?RMd}KG~`0d6G7IAT5g&Gg38V{-Nzpz60TUen)iE_m` zq)H@670Zz-Q6N>EgCS`A3w6{gEUeb_7V3D7`$m7Gjs8X({f##I8*TJA+K@zC`_Rmu$fDwI5cuaXDwF|J3~x#zboSkl$fjOn6g zjn>}c!XkqtJ*B{qhVqme%Ag%FL}UzItjdcE4XrG!GDs*f%B#zwnmXD#+80A$J-)6L z_U4ZE1@^inT^)Md>SB9aYnRWsP=gg0R+T$DTe?x-C^p1ZZJ@8&U0hVG*;!nq$%S6H zd|h1~%a(MyRocZ060Wk%9n0EvuB~N$kLtFpraXLpYg=1O^SqAbuAZ(|--0Eb`VQ8D z>bhA?$cxMLDyq25kZYNqpW#{~RHi33<15B%qKk?~hqrY1V9L5DNQGO+m}0E%l!BKOMH^{ByONVGF0IfZp|ql) zd$F&r%_tpXl#bD*x@qZ{(56*JrK*rhRiTxtjY`!a{nr?!H6cxFLYs~@h8-PRY zgP_uo+a+a2aam|_xlvpmT5OC_(r=8~2*s?@T9{vjB|pZJud?I~e_dj*q{Lu}!Fq$o zB_TX6F?d`O%Hs+HKZEw_(92rmGTwsTfkmdAEVWFjSc=T9qs(cHGK0P=WgcoDKNkB~ zHhiOkZ?CA`dy0|ADX`vpBahQXz2l6$jY_@hbW_yFJAT<;8RZU2&wkCwJ1ym5l$`yT zQ67#uHye4kWvmDqnvHjn6%IHbCYw+FWPGBsBXL5x&g1+p>^kavEZ#SbHS%%D;lnj* z!G3isRpT`CHflzzF60*DT*4k&2A< z?t1K>b)d!yRda#r!Gos}O?cYi!LxuuDxxyHqv}CDA4cm&ZJc3)9d^dTNBs8laP-@b zCkGwat8B8=YVNC3fO5w1Fzj!-u?xKrExOTiyy~q7xtYk#2cFB&z6azu~O=(7Y|k+Jv^!TN zFWa&Q*s%v$07}^}Fx7ll`wXVP9VJ}aVqj+4n#NG$z7+SFAKIqoE1dKdkKqRXrf=YT zKE~0#6;iGeRit4J?Ni( z7Pn=O?6&xT4uhwBm%UI>v$SUL7%V~dG>nZYflwdCxL9%4ywMmhK|98Yy&v;;3G&*D zamixz%-8dcGLt5^L8F!lN0NDH$$F^AVh*s@F=u=VGscnSXkKef^?mKt+fjqHhza!do^47ynHL@vD_F;alrhH4*(S8tbeJQytDbahU=3$~YHGSEX|35DrC8pY zJ4_Yp2>WKuBi2y9$A7oUEITwev=)p4RUDUs)LA{f#*goXMmke#wEi+rm>Z0}mIU*M zxyLf>QoLb(ZbuEab=C;eZP<|M}|*2)%zRhQB)&07-_ z&0)r#xyxFjwZ|I8c@(BGXa~%J70O;s-w~?oL437TPK5+p6_0}6k2Qv65!4*+l_N4^ z!xpXW(~1f6UC&HH$MZlBI?#%FZBpg~ex0Cd1-PL5HR<5GO~5FKOVC4_)bs2^>#f%O zP&_r}`VP~@|@N{+(Sy2N z)6`Ne7Zdks=%E#!oVAprPycz_!SFWq$DDQO`Gh&s)-#gvz(>zIW+E5r3w6xr*#^f; zuEq4Re0iQTa3uOY{qqc=+j@D)ko+a}cC#IkXmNTVZ=-yW?@R#_$Y4`(L&`EkjM2mX$f1401%T;|`@6rjO;w*MgYi z!EZa_4*N%@!PH|@vQ>(2%!{tywKA3jd*lVGZym?DcTEk?a&(!F)C+LM*2^R6a<(Jp z0MAo7{=aZ(MS79@- zQkjT2z-wcU2p+t9$ljUrwf!Q+bcGA=Ds(G8Xq>eFWXZ74*OJq;Glu58C^*yBx}!CL zcNkifmYZ_ZF+P;)4)n@?i1k40f*V(w3mikt=>Pk4vnJ}1^xTK9&6(~BV_u@YAm7oF zGcgR#_Vhi|BXGNe&-%D7YrKvTY{_k^XS21rOJLUFcz57TTl;3cvN;&FyuJ?glRP&2 z{CRyVHj{djQ*3?an!&U(ty}De*q^YByVZV!8@nGIk*7jpdS628tl8JWwN1~4*!P6` z819ArHjm8X>9rZJ=b1+X`FQ3u*XBK({ystR=0d1`nzKH}ll5#Q zQoRD@zSu)8S2%^v?H0mrSQ721&wh<#b8u&lap4l}n_0SDeVQ5M0nhw7>hNzX>hoAS z>N6)#&|pnKM22 z0BfPpxu~iC+BS3_I`;D}TyWOhZpg-5bDHrYbXK6Xk#*bD5IvV*tJK`ln&MV^t8LDV zK72<efK}}e*GJeZ|D_a=PL4q2tBeZq)r*&W;e*C_6nXR;U4307|rRN3^a4%`r1qW-YSS^7QBbdvq5uSz!u8a>;tT` zY}N#pHd~_hhJR$2f^ji<93082g$G}|TKm`9#rmhY&k{LUywv+J|INOao?ozc(0sFw z%;OCdpAWt771U~T=k?J0UT!4?9-Y^RnnvrMNdH-`)}UE^YniF=5$68Zp`O*T-Rn6f z`#APi`~;=VBBiC^G4Hmr4zY&`a^C81`pe4Ko7Y$~5drFf z^+b3KUXd}@MY$;K3@k3O(xk*~)Vr zhr8V4G@6anWArft_4wIaBTBe$_N`OZ)nwG?)gRkL9lq?*&$M`r$Ter+moc5Lp4su3 ztl8XxshEvx&QCyDwK3jQwBm9386U4USyqhcER+XF)s&f7O++0%-gsc4`BDQKG|pA% zo1f)!UyW*f-r3~8D#)$49dnK`tpZHP?+o1KCycYvim$kIHqz;+r=K`-&x{pg%X_3# z(Z>vxPC&1W0dtFYJD69zLY|JXxyA(GHA`W^BQbSclesbr_p8t=x93qOt5S^_^Ms|$ zxCDFQSkGf?JUqC6tkEBPL#Ch4ui~D$EqnL=cyJV*hB`bd_g#%t^PaiJ&m^tf(Gm~p zA7fpMQ5avQJ1BE2zRdalGH@%r`|E(IQ`{Fzhxt*jxG)p^s{{VrlP+PpS$kN&YYYx@ z8P{QIn5$-8%|pFU!SXu>($qC{f9`%%FkQzfo&~wC`OFxyp74m~9!OBeJSO98;=?-2 zx@1~HkSlCuj0um#vgRuuVFIMYnlueO<$IM=An9$>GvP}9ZjLiuZ2i&@WXcPI~` z`!dI7%?;Ad{A6Bg3|Y#W8^7Og0pdUZSAaQ+UY~G;d|)Vmn`yuT276nwX3B>2c91>bz(cQ$mrBhYg#Y|w-6 zLJ!?$2KwOV%=|V+S4ds9!qEO}5G6vNWcAPSeQG^9TyiD>vW~&i4x%*mgVvan@v<)EmE!<+xz9%>&3H8O>)crx@)cx zal+mEGZ0Y&*w!K!flmO-DvP6pQ{wYrV2U%|d@kW6yUl5zhg11dCOgnws;xdUGBP?c z8be{QFjqPTb9r5s0WY|*@#651L2YaOc>@f4A-Zd&yO=cDpD?|lGFRe! zMuEVM@2zciVQY4aFmgJ=ob$+TPnqlz4o9k^KBF>+>p{wgtkzhWo{XcLlT(vZ@%I7Z z<6>i?F=%9bc6@{@C69)dl_VzP6-Ok_5E_b(KQ(jkpdqIof6Sy1O5|q^lZIqv4Vlzn zCCIM%Xm^5-G5EMNoi5#+CfrUYDG4MM*!f#>o79H~g0EzY5Dur!(Hx1x>BC&^uzBQk zrc4eOE?24xw2e{?gtXx(Xf26Dw`i;!l$vU{r>3W-rzC4a?J@S~xU7V@*eF+;5|NXM zEh#>L)Rm{#wWc&KJaX*9hWb!q?as3|Os_rSh}!A>hz(TBPi&_2a_F)U`Hk$8Uxb!l zWS{)Pql7!$eR8NA^G!Mak?M_=*=cDk(X^a2?~uU*$Tj*G=P;$Si! zpO=?8c*Kao1IoI$Xhde_2nM_~sI2FIv(!_(2a|gEX(dYPM=tooQfFUe9|Vid#z_Su z1y#nog^=N}!USQ%AqA0PcIbNq^c{!)@~7l*uVj-n-zn@ihr_;*4_3fmaqy8NO1Q!t zuI6YFN$&7S_dE&oc^?92wGwt^L33q;lLq?QM2P=O4qOv9U5UFE2Sc zZ)D!c5r+*QHZ(WKo1C4T6_=fmoSPFH=?e?ASr+ z3CZqcXY|N~qH<5>NuGuULo&xLXzXWnw!cNjMn~A~oWODU4Vqz%G}46_-&XLKLq1f(Ibbdpi9OKEE&N3<40%z$F3tWYf# z%l^Bjjg>?5^HWptS11bd3-S!^rFv7dJwq}FWuyaVurMc98S1d11_xo4DVY+lnI}09 zsp;YgVrCY;VxCn8xvzxuF0P;}4+jg|2U z2?;SUl_=~44f4uwh)m2ri&k7~&t@B4+S6|eQ6F)e9P-?O%dvHB+K(2?xngJzX1{zF{LL?CqWB91# zkNy|R1j_CmeSl2LE*ZPx86}d7&in%+QTp~d4&}&z8yhMjCi^oHK9a)`SHcii;-M&M z!ePr55iZB14D*J)-;G8cb#TPEjyiT>gdK;?WplWc$9Ev^M2ZLs4~qz&M=n>&WK1i= zQo}gh@R&I7+}fDq%^zy5Vx1k+aXy$>+Ob!}WB<|Sh%(7JIXOdf-~_WgO5<^jDI0X& zh%O<)WdI{^4a!JNN{NjbnNV1sHTa}$+8)jgW&Vn&*r*6sxx+auD=piZdia6Hp~6WF zY<>`qJ{m@gD^H1cA)F*Q5l+&D!w%uN?31tal1zZU4O*D1l!KWvL^+np=8sf$_ZI&5rS!p+ZK+4pGY)C^vzr?D-Vw+ zGLrCZhbLQ+lAe|tnG%^CAB(QsIgzfUJgeasTPB>AHPSaD@&@x1^JQbI`D6(8^1H+I z9P=3^JIA1zV%^5L|9lvazs*GjJZw>4_zl( zvF^8KH2suy?P&2)!65p7vx;PYV&TvyH`ZNZ58=u|7Losi9^ua*)8xvdt<%vV5GM3h z2dgGiA;9Q_`h0oCuAjMSwj4KVruVwCx-HC#yqRqNb&>@ zQ)-h28?UXb$`DRFdrAkU8n#K86N-tv+?O_|)GKYZ+{fPr!e5iYf_#vuPft%Dls*W2 zO7Uj#!rzW*E>G98S;6&X;sZ#RO#Nv=0iAxX@JctRHkYy)2u>*lU2^*IF@IOsZZulLiU@X%n z!(Oq4P@k2Rl$7Po@+NtbhU5*yydfOR-YmTdGL-RS-@@xY*HCAYUh`w_o`6O9C&uPT zbV_>8kvaH3J-K!8;Kam1gA$vXntb8Yp_0R6nAqWc|tn8f*R}*h#*kqWEm-}gxvB<}nS@pTOX=&^pc}dHt zt4R;$aR{#oe}Dk-)Wvl-Za*Xuw(HjHd;9k&G4=91!=R>B;_od8ioh;J5_X%kLAeF? zVs(gX0(BB3G#%Qg;&Z$?S!`4Z%DX4`>5TUI79HM_H9k2ndvIRzQNyz8(nbv#GBoMP z5&dQnjd_t#kx|9nBch@rBTKAi1^otI%i$JdaLiX#<+wQPxj+O6##j<*%eRL)eM}So znT8bnH3GY%(b!Ikjg3u+O<>;RpY{PTu%wbCFMhMiyx2;M^V-D8GOc&Vn{SGdy+_=6 z^ey5_90#`L?3+*9aQ6E3SOh2b@;8JE4Yj3~fY?%BIT75m1-H~NO>nsF4qpWC{5aiV z*bB1BMzy~NrEoPGdq9bai7AOG*s(JHVUnrm!L9-Dk{)ciopAte>@oXe$A4|3M=>dt zve>-90Braa~E$?sW`5wGk<7l>6oUmz1N7thZl@2xM5>aNm=Rba?89EM@>me zm@@9D6N|)+!}AMs?(BVISW$8QgHS9_U@wk1djW^El~xvEI!MWG%tlfKPV0hI2^>8~ zG-NWkW;-4W5u3+`zlny*shCSSu&%V5CZCd|)|cAi*;k1Xcb|09-JO^F@=rZ_@!2ce zCUq5^us){o){c(b8mlkM&04Xrb%l4>Wwp>7g@Y30U>a9>1U#fnkCt{@2D_oYEm9WW z@jwLFK%b7s%*f$!)Z6X$!S+EpIm6;&UB>>KJUC8QLVP&`-~|Ehk2oZ5PN>`X${M|B zwc7^ANrycX!QXCOy#g`Y@xT)(Ivmd9;pLqkXT8hi^0Fef5Yj!P>gLesF(>~hLVy`u}H4g>vkLQY>8 zlUH!egdr6%!kra6x@oZQ@@f54L`DvC7LC9s@y;nuSMI3E5hq>O5~?s3eKBOB7ndP2 zVVsS%d>`fm%LJ=Ry|u2^^6>{(oymG>zjQ#MU|Bh!P)yzC>2EF}U?oAfvy-9QUPHH? z5DX^3{gj)XC6t@zzmd6-IiAe))Wmo-?+wGe7rW_wo2v)cBC*_<^R^9ua&YFmUks@C z?7nV<`wEATA6n@RdMl2lrnic4$H%%8A`)^v4)#(;;P-k*E4MV%>y0b@q3f;_{;~PX z9~N~L&#h{aTV`E<%02g=z5JA;nk#y1Aj=GlvlZh+Ay-~m0(Q9YH=|T2cNpF}4F1v9 z2n_H@BqkcmfRyCK=!}?*+$^4aq~;}f%Sz%799zYd8KXysVu1LO(?ellWjgkoWDDn2ePB`!Ta9mueCrv>+>^eo8AjK$in zUkSxX?^0P1`rpMDEP+ft7{U@FJI@Xsyjf$!FNCx{jYv$4a3>B)gua@Zq2kwp(uuP! zgZgR7;pTIJP;Kdby6=eq!A5WYDG!1G9-ygt1s)crBa8=UI;G;%-ur+0NlfX@ zFlILBM0KhHVGNa279!HJ68e}lCuTCB%{qa><_ex+nbVdqUQY3*sAUk5igcffB6273OqdTJ2E!j;UN&Sa>7p#|M>t50w5$^~Or~uu$+x-{ZmFK#&g010yx<>LZ8kH{RS_4z*qfIb9CSN)2BEQe3XEM$m(; zDT9Z+xjeYffGt=YuMPL{AO_lK4>C9hB%X%`W6wJR;Hd@4tO)$JVh?7~DFxPcpWR`yMp%W{7%P*>B?) zlMQ!7xZ4M#bTz82V~U7~Y^2D@)JSvtxbJDB?qq=d-$VCOSqq=~N4Aj<*$uXn6V;Q- z|7J7U%5`z?fV;^fED{)KE7>#)6)5a_7kM~!RJMigA!E^W(EVfcndG5(O{Aa0{ttGM zLx}Vpd>gsILg_$z$RU&(+s9tsJeJrgvAOlO@gd_APoDes!Ta~0%2lcdoz{7a)k9k5Ft7Jb+0@8ExA=e9 zdk;9tuIf(sh00ys)m_zH)!kLqUAelebMBd*>3P!=qzTHg)h&%?S`kSojB>Dqge1@s zBmtf=2oohNL=awNY~;Wi7HktFY(9$xW8|N;27|E?&X}&*|GD?RSg*ne{4L+^M^Ko$ z@4b7^J@?!b{^uN>8iag$ZAuOES6eRQx4~iko8~^$>NMo2&XPaK>ZZn#;8&sHqHf4M z6eGfaxStwVg@_S3{M43Neb?cqe#SDx8Yi`}JETOaJGnx;cURu&GDU)diAs%@XEg2|0M1epDP<^@Ut3@PDp@=JGh_2el8?lHa6 z0M;4WEqSKl`c?eGFJ1kJJ||_U+}(Ab?vxgqFTB!SF++zVw`f*6Q#*~AQ+JB0``sL( zEo`Ciied|0y`om?UE$^yoz`bwO{xx`s6km_3IwIRmccS=O##@6M6*sW*@uEmU3qbQ z;F!PfL$_4F14WG-Vef-8Zjjun;9e}>1FxW>rs1lgpdju|4>vOmzntL-BS)Py0K2MK zB2Sp%nTrcI3~dSdgy-^e*)GFBckq@eIOuj=v%KZ1-OJ-Q%ASo63MbuQ_OU{C;fmdR zu3U^id_(nGl(KzJP;lGHKQF-n-1Vm_UWcMG&(xCWJGcu49I z;ta#a;LaTvl9&dE?&hga9kM}6(mC3hQ809U{)=r6Z|_=wd*QemVH_@s zcQrd)ei-7y0q(K^+n%`mk$Q)$^a3OZlLJiY8IjJ{&WXcmn2>#HLH2lu!Ay_@hDzas z*TctM1BP?l57Lv*nfnh%!WGiy^4Vmc@F9jAdPOsalJ63?`}Os9qSl@0x*a6m*maku zC~^mu6~VGnSXNdnOE^5-S4CG5Rt1-T-jm}8!_ZHfG1EWO)i_sg{_5FBbU$eA#JRKQ zUCh~&)dnD^5oYonhKxgOOF*?ryb~fEPM#TH%xAjt_-lUlxIA_Ic=ZK{`0DrN-pxI7 zvHET7FF8H`2i`|%eeY0topo;T`~{zSi;L!MXPMkI*g|SUI*=a8NLBj{x!c zExRUXx!gHl-#u>c+jejkdNrqALYmaZbP`BHueR|*a zK1N_oUPoY(y(Xz8#Gm3{Dfs7EM=pdXL&2YR9KV<+8Y}Sx2>O<%RGuT%Vtx*c55V^v z@*bx5L?h#gvC-q#vP_6bIQW1+P#KedPz@Zuk!FSaW01Kz{Zbm?Cj2XNbrREaS3eyn z54ral(z7dnAAFg<ut6IM%NGMf}nZ(gHbZ74Q5A-nnkRvzEQB?*v0L{ZdDBb>){iAHR(ejR7Ae^~C4# z&K>M-Nk9&PcR>}u>JtXFNiQ;=lXkP2Vo!>NU#BhqO!SF4%;nF6N`^^lL0Iwam%hqo z5s`{oPD03s2nNiwvHy}3=@5pn7az993+Q8)i6e5F^&`OHFpgi5zREa0BIUF}0#6{E z%~4wXoPdXswNWIBCD?JXnzdlx3FG{2?lI4ua^e;6=~r9gTJpBhG*hrv{U+BUwj{|Z zl}yw=$^vR)qMF;mZBcf?xZ9%m)(+hUT~0ErR0!X#u|3(@`37b&&Tisnr%#2slEAx1 zkumkuVZ4xmoh13hzn&PDUI3AM2sl8fY4DM%?C)UqB-=%j9fTRMSdTy=!g3^{$4$#I zPuC^47=K3?jG^NmhoQ)@OJpUUcph`#r;?S}Cv71(X;UlFLPcf{5*1ZfbC6cL$IT49 z6DxO^e;}kRh0%xfEKngrVIas%Pyy&xLQdeY<8oRDU6hPMmUBevh!s5$&vA#i+%QFD zjhLkO|0ROiWZMNuIy(mvspQ*lE-dX(voYGk+=lqo&(vVivUn=5wSg84K$VIzHl$ikDg;^ zog4O`w)KYcTx1AyUGP$N9(h6T$4wPv?_!sg@wOg?%BBaUD|q5foLF}i$A+ea)_CHD zz)6qeUhe0jkcRL{TSibQjbrMJ4l;e5Q5&xUkp;0Bk-MZbIK%`>E*3_51H;7hlZv8~ zJ*o8(9um^QL;g6d-~0_KhR^5g@^!)k$#N|Dm#v@&zESd&DW$(~ue?LQVQ4x~&-mK9 zh_~3cRF823=+kifj`b$s-}znZXUy9`MSI~DrHx6^Af(Z>HbJ|>c*G0n58;BvZKm%| zC=}`mbu-T@M*?x-ioaUFS|n4YgYDMW#HX3m{ldNG$7zX|yoT+=r}&~)cwig*ryYSb z-vqN)uz&3Y_6P?2KA0r1F93B-dP;myMQK1gSW@4mHcBy$4!sAz8`sTYH z`<=bN{W#9_sQe8WPj9UrrT_E&6>se&6-IxrB9(e`71c+w!f%#~$F?>fe~3Bc0X$L5LSlop#cP1%2vB zcYKFScb!m7&ggG{g$s6rV1~qbBhw(+(Tf2v$VestRW_PQ62Ko&?}a+)clbZNGx}%c zQ^dYkU(i2pYOr(m_2KaI_4P<&TE$o&s0Vb6jSs}JCwAa>vHm$5^XVUyqbBbeOSbXd zi9YnNeV+RcA|YrTIIB>*;2qwNNE4JJ#xM9I*ly6QneA5akPd=`z-U)IPnqi;*lc97 z%@JRAF$yr_O@2!$T_}|lFe%N*cm3M;B6qZxhSS8VoNcS0s$Q{vF*}Br{5*S1!bo5B zTev(jNer>Xua!44U2jlY(RN@-MnoXps{mH-8Wx~ChfrE9GY(W|N+024>cjwy?SHSE z>UXt1MW+I2&J{C-%T5i!bsv!irBQ7dl3ze)$@L%uJ1ff>`Cuo^%+A5if!;W&gC!pr z(R3vu{O9xKmjRw+P+IPUMDpO7GiDp0g4VS2l} zJ)Z7-cP`aWwmq=40VqWzUrg7a`|Jo%o2@fL$e_)(=CdRSQW|CcZsRt5nK3iP4gh3< zK)MW(0uPTFAYst&g>RE#Ba>Q*Mv^_>cp#z$0|OK<7#JHEEfqS_9VsJPP+Oaz*@AZ) zK7gz0EZcMpw6c1N7Q_)R(6sHfE(6*jXoiC<%hR(?KymnB5(&5`N{QlNnpAuW4lop? zGdSS7VFFrQs55sF8fd<0mTA{|CG67%4BBnl%>PCOH0;1z0daSpg0n>^pzgd`B%uDh zJ>p34l-qu(BK;Q|P-+54xDHSXEC&zLAWLKPf%_PyI|+22{Rt~X%Jq>|Es;#NwIwUb z;e58OzpbwXr` z9;pZ3&l3Wa^~<*HWR#1{-X`0=VuG|T`T2Gox0HZ!jYvy!_%#8!7Rbth@I`8RJs?-m zzlLzZ-~p6f2?Y@6Wf4u00la8`+!ey*{yeKS0X45_4luxsZW91(t8a8Pl^R_d-8ws+ z8c9{?4Dv)^Ga1n>5xB|zC^=U+*LuCZa=~^rU}z}K>_YeODikx)F6lE`*sMZ9u6(L~ zv!%8Ig~%2*3V{IN8CV0pZty@vZfgs!b?6cJtu8evT6}m_8=9Rh6sQix?5^3BZCeX7 zh3V1CYpp}k><0dN!`c+}Ze_Jzm5LVV&a8|ClC>A4Q?)%{{Gb}p0cg5z(#CX?5Z6tH zhI)I+e?GJ@G(S1sTkb7o1{}G|R(FQgkKSzcvct#z-8w90nk~9pWK*txJ(9+V`#|Wg zBhof)i{wH0n{fVyChKRKEbJ@NWHTAkWiun0N~vJcXbG~`M5DEd{Ce6gO2V+xK=rj; ziAQ)h`mPV|{HZ!5Z&BYR-+vMDuhTWC6lPf;)dirYGZ%&P4LCxn6oT zFUAXH4pBqpDc7(-Gj=-D5i-cvTbnbE(CFAGOk7>7{16`cVd=)_Vqhdfr1wEa6`*Dz z;~x@SQTiwzCd?$8If9yF(5@7y_F}C2Fo1CT5l`tK?jOo!@U7lhv_yuB$$*J@7`QW( zjO?mS3FGS2`=+N$Z#;Ep879`&!;6cTE^Rx!xaIJYV7{@6TpG`h?%s%;ehF-?$LBUy zc5ckgZR}jxm=m_vwanHcE9N1T=<>6AWVG5*+>a>i;Jd+Me__==pD@B~8;fdWv|NP3 zZm4<8{RtGc7#Q$)xM4$ikTJ5|Lh$$7ZMSA*cmh^jh3$MjQdoGqDLGbDee36>H`_LU z)YwoTY&pW8+L?e%I~A}SW|JmCJsT6~<>L8xAwCQXzJz%vEM5$8AhOW?suo;Ub^v zQ6*`YQjI86{R2ZO<>Km>j%7$2HN`~}micGM!OSm=V_sFSWg*cCX@~Trwc43a8b)Ox zf)&zfng!M=;PD2i&I}oA7AP;0{GrtdKLNoC{cGec09q)iEx^Q9C7*gj-N)UZM8?wO zWIR5(V{&T8mO{8rT^2rxC+YvBb?_$C{kEGM@9f6h zY7g$}w_8K{>OKX6w)^2)E%UTd)aijMR;JV{!H+g6-`k6nGo}#+5`j2Xp)dq?u?2@) z-#b?Cm1iEm@ZNXTyQzQm*=JkwyAkaC=kN{^j@jH1*X#A~$)~%c-aH9%*H|O{C~VbE z5H>4~NB~5KgDCqnltoT^kBrC#75zZq8_ajqR3j*M!R}VX+;h3yNUoBLmZJ<1ya>Ax=nQ#}8oGjU=@amg@e;g$rBZ34G)}9+RnN=N`Sa>Y ztWACkZu{$7Ss-2di!Ciu*T6~CkZyanc81kgUk|B?bfTW zz6IYTjKU$zf~p8sv@&81@U5tjJ2*4y89T<(0so^7`)&);+XO?UpaeB`?Ali#v@D2xpr*G9mtQ0cvg;WR)U zBadgTZSBcxR_-p|{ou^Tu3eYU&tJal3KpCeo6-))K0pBgT*CTcl)@Y- zms)I%C@3B2=!td2BXKyQGK^lL*b7P$vHfASPiccDZhP?5l?R`=>$c-^_tsr2OLr^J z-*&_4*Y%x{e)J>x+UfZ%6E8xJFqUA_rc3H4LmoLKR3S+OfT*Su6`DQ__ngA3;RpzG zEZUcd_Q(1$4^~(~)SGsnjU0y%d2j8MATmZ8Ov;C9Q)#M+MX`ctUO=pR=tzTjVduZcO zeFCZ`ZJfvvsNFv*Nn!3G3&yz5ilD46`o(S2%Gc%{n}&oW}t&S`G`xnbCN_-s|uEQt9^lyqTdKLij2 z`{^}5ootv)#-hm*ihB%N*)dGG4M<3T^V#1=TF1fKjbGNo2S6}3SOhOEp_BYSi4h1@ z=|bhLJP7WbUG>}}5V({Sl7K)QBEV$=K*L@Y<}u2hBkWIqr`mDItD<{}a2&i+(~wjy zj20Q-(t!RUyo{1yqEZ`@!=V09Y8Z+FlaT)6uMExIG`n@%z?P*W7iu>jT)uSt!V4F* zf%)yHoLPGFnzppp%X-Z#;Fm4??M<@%))1 z<7C$0gT^KbKMlZ-H5gJ<6q)m>X5l9f991ZgA@bT()rUZ>UifLkKTb<=6n<)LIs3T` zOEy~&s|eM6NyI?`#z9L|AZiSY8SleldV5e-L~X})8iqn`7KlvAh9l%M_*ers|D`E z*2qC|WgKq2IcBV7Q*LR8aHk7NPP$Od4v7Lwu3I!bEJ?$&!!r|OVw=d}-Rd^^ED0M; zwkx8$Hk&T!lg9loOA`?Mm*I}eOE+p==~TFlRSUz##BM2`a5Sige&&?*TYLkwq4hG z=@~~*nx3vSmG&%wGBm*I==Jmf^#{VvD?y)z0ChoDQB<^dpf@e5@#nhr0L5IE%~1rK zx%E0fzmP>Dl|1;-^ORG^Hb(crh-*@@$a}W1+ z-`$fu??XqgfAXSxj+}G$2BcI3cE=7Vuzo42^(rKmsi>rGmXV{0fl-nEO}T>K{)#gB zmE+2`d+*)+g5_bB$bd?9@Z)@H5qlasU|4|Iwud|&zWV(?zW6R z3UtB$4mk#^xZ$V)P*;>P?UN%}mlB8|Fe9^kL(Eq4Fc+bzPg!dmULf`Wgn|XaH?U1A zXj!<9sG^zMP6`AtHh}FViC?~-J~AcPo-&YZ1d@ioF-HCYi8L_8bZcITrbe+qlz{0R zp(@^MMWyri8;Mcu8zw3hlLsFCwM`znFn{?PQ-9f;HPU!VnjFKPc1ggF)0|nJfK|PP zB_GSjxO&Ty4=q`UUw-2Fx%*B%=lHvSE%Jdk$sed*eDKUO56T~^9(vOUz?AIWOhxUX zhEF)f47ty-MGZ{jabpQq6l2|$(3$Qf_m}-lqmKujX{^HIu`0v8{shs{p$t2x^Jad=&oibX zK#9#~LE4+GHdupM2xZNHA3A3tXSiOrVwnb0!D^%kxT9F~xM#sjz;J|`ZUo|Fcsw5`-qh{tFG4mh6UXMU>j!FBp zy>t@DI>Sk5^M;`3Dk>EMN7F3I|6U7oz)&jH+3E45#!{ohL&bb%urt}&AMX}PmF-|U z3P4-cjm9gHFL~&c*RMI3^LNH_)F0jQCVe6L-#6vD3;GxECDn_YM8fmwWFhm!41^Dq z!{CXquT6#5-GhSK)Sm+0rqCK1W`#1LgM)*y7;tNogA=18L(n03**JgH--SvXogK`b z$#QmEU)yg#I5hO&(W7hVLO`gN7xDM>NM)e)?vbcE9oAq_+e{Zn9|BMZz@Nesj z`q4uZuRr8m(QDl=4{EjB84w!6&&z=1EwbKUjT!KF>FROjFI&!&CvfDq^o`N~?y^C2 zudIkWE6uBta%J9fdkI^M`J-8b8}div7UPP%^Nd@!#JtfAc$D)9n9BHTzv4I$z&Vkx zBjSIF$+Cp)cYfTsRte%%mUd}cV}O%IGzNIEJ|2&k<0V`Y6lZ6_tvYdb=j`MGJ)kc7 zM4V$zwKjNOGjXPCsMi6pl$6$ZID8O130dL243`*hegH`Uy;yhdB(*^(XdVP0`7mRL zjS;IFG;+MKKNjm^``Zsg%{uWOERLg-$no~&C*F7Zsi&Ow{)y~^S6%lWp|o6j+QEaT z$?rd|UAvaY}&&6OI)P}T(Rdw^N1s!>!ZsZ}5wsi}hr zNfJ*Os*f>vRqKNGGw2y$3xEQ|i}z4gNd0BVhoB0bVPA`>57k-EilBX2I;yWnr@kMp z90-H%*aZWJ52eAw4L)_z|mem$sKzY%b{aFCA~xIFpoJTxd7|v85Jf-$1erF{@`V}Zu?kg zH*luc8(K%%R=RnU2%^$G5CBdG;vde(nkNl;VLSu`AVkJgd~$4*&KMILtbaobV#7`Y z7Xf11?3zLfLj2WkJC}kW4+X=gq+?o?6nsG78R~|I!a0*uzOafllktvFld=KRy(x*{ zs|^5bQ|HO1BOjNoUD3r$WGS&%`IrFNHka@wp0yrk7M(pc%Bn7Na&J5(}7w4y$ z77;N&OAwcukJ4Q;%yfh-nNHndKnLJ`r>YSY&{3ruP=<#kjzbe)2k)RE5VkujW%IrH zVb*jQ%k=Yt8Pj?h4MMk=JEt7G_2$f=-WX`{j=PvCjO@)rx4tLZGZgRQeSvn4c0F;s zX&M`w^7ld;+oP@E%a{`No>7roio#bLmdz0c4H*NFtPW!U@8~FzK_g*mW?LX%o}p}b z&}qhglQ3&^2kQ;QI|Na0AnF2SwM+B#J2eTyU(ey~gSyi{`|TP!>zhl*uuOhrehhh& z9d|^EWoZtDgdH2kcdm6q?8k?f2aMs7U$cnaIyqslHAgFaA8!KRU^G(h)?1WlOp` z%e%LxkyFAtIm*Z;^wL-K56S-yU7>ot^>YLupu}2{Tx?k;@FVW!IJk&MZS1ld=`@N+rIrQH}L<(@paTma(rJE3+4uXK>`#lm+n{n00%(L zFnZX*e@&hnVjTEMDgC36&$33Ww#Ie*M3@actagc=IENhe@aFGWr&?>_v;1^dx~WL| zKe>%cI5z5Bs0h{DtlxLpD9*B91Ix8hnHaDI1e&uZ0?IIu8(LjHlnL`8*loU&p98#*&Vek`?jo06 z&YX}w`1B_~Q2ptF{qhP7< zMw#Cm;XL|w>nGROZ69UaiDhx_%uqeSfn+ah`j#Tjh0xg-UxGJUk;^2eY=8RTe z0Pm5l&BU{-(ripbo^Y7hVRKea6Whk2?7{$t(nUN#($jho>vMD~?`)qZ;(UcH&C?wT zY8;x6xZS*Wn{&0_ytbKgX|or65~O-w=qQN)qDl>etcYNmh=<|wr1~f%$`<4-!Z0%Y zO&R(8>VH*&)sM+nZGP)=`K5cWs8*e=mf>VMsDP$|mAc z)HsGJuo#tIRO2f$HKBXn`YCY5=DoF_qgpQz2Xy6ADks$>QmuhEI0p2%8`_nva^b+f zY74%ZUlv6Qzi$6F;ZJJ5P6xe*7!ut9)v#Es9=LZ~E!Aj=MLSXRkDYqI#tWYcvGErYaf?&TnJ=Gb}O47?0=2+Mq z!J)Tb|GL8?rw?c=7w*qoF?0WYZ`*$5>D#(ywpYeRha;<}ow*wA43AZ^ukVOmb7}Q2 zMwc#2^-bpTxl9gs99ysQCH&KXRFS@{C1PN{C}RV^lFKU4$YgIoUvUNJ!yi!mv|=5z z489~ZRgTqMK*bNA!Y)eWk5@n=>U3WB3A$39r5Z+QlUYiJ{-E)J+Tq9%PYe#i?Nu2Z zF6KQ0o-{~@N|EF!;#qb4j%-3exr{@4P6H|`UwU@)TP;!YcM!`1=udh^OP~(CkIE&- z<)CMDLzy&lqrnGic9mDBQ=_aCSi{`GQFY+&3<6SAwSlL za0$Hta1;8m{2cUGpn^CNaN@k|!Pd(D0Qxrid*wFY_?QxI8)tu=@v&I=% zs(QX-lg*K5?%H#8V)d%++pfCs;8P9uM_su01844DTH1YP3;RReNp$|!q|Z0ua1@?E z`x+~UOKqKUxGl^O4OUJ^he>dHhr#JfEkDUPo*oZiYXrwv=H@uh&uMczmbTR8{I1u^ z`T8DE9Kfu4{ecElR>Xy)w0Ih-KQdri|NpsgJr^PXda~!@vvC%Rjr?vgP|!o5FC-)13NXPqkTzk>j(%10$wgS5mB23mn6$b zlDrYRBM=b^NbMbg_6*q05)YgKykTBimiEgtTGlN1G6N2n1_z9S z16Fo|1Ga$!{DK2C7%gz5OB)ipD-a6+!rf_S0paH~XdGp`-(}x@aMH=XhwT-;EWFmG z@BAs|jyHXuW7lnO!mf|+*ul%p?AX6!-=1BC<-+!*tqZv8Dnm8JW?~S<66HC-(F`pY z8ED9Fm|^bn*K+yY)3E5wZ#Fph%2(RLp-^}HP`<5A3HvLT=ALWmcI0|=3VO6p$^x46 zZ4K4!6)6tw4^4zU5yX><1tl05lzl;;*m}~8y^?~%g*X}zNE^bhLH)9!1?CP=X1s3= zd>XFxN94qzI=J zLR#>Y^p9GSx|8-p|L%h&6O%*U;UT3hl$Qf-#KWv*Dg2}8PNrT(TChsGxEEa^y&;G* zY7OA?vBF+t%e1w@C%;$OWFq)E_)YID5Rv(1+PX-ay&Js{K5Wc@uYHKS^ zl_p0kZN;_%aW-5B@L-}x3)zfDZNHYtFaOl6@t19|2WsHKiT4~l*upN5maVh-7U@5< zWK%|;uVvX#hujuw6E(CAhHqyQC2W@{TU&jau`#^@Rw)nkQn?Nn#@9b?e7E*V>_cXJ zoMg=Smhr{eX}hGsL5Ofka}o!^s+NC`ABr6fHpHvzufIIQaUi9dyd2pFCJtB;AL zJFOmtXkw6#n>7)O4K}6qQ}U{ErrL+-1RBvxEAmCWG-BD=<8}mkR|QUlf*kg5-J-OI zXXQ|P5RGreNVD;6ossBmM_#D{Xf{xp3P>jgu z(B2MzL7T#xH1qlGI_cL?k7xF-HW;{VZ5gQh8fs~XrnuAuKvIz(QD;)Pf*^&BIn}-l z$8ca_A(dKKS=hOKDK(#(o0*;%V*-&1Eq0Pf6k56NeFU1J=VWE%r(Fv!jy7Nf<)iJL z?QQ;fudkf#%lUe@wkA7C4cB0brKAOEm-Jn&Xm7PU$_z1opa^zY+6s1<13T!(*bYj! z2zqF54c!-A&zMdwHrYYXPPWGpeUG(WC;bMtBlMcKH7fCl?L~dY#l>`5k`{L@t}Jg$ zFQn&ZXC}uhL-}kfNgdg-y6$2=Pu>fOY0M6V*^hV>!n7@(OZm$BU4P4s_UHE!p-{zC zliOO}ALUtu3=+~b45jaDi83^c613zDe5CVp@R3ehe5B*LYc#C3q5guj=5&#gJI=q> zt~-u+FOKPEPcf$vJsJRzoYy+lCh=C6L#%p0 zqsWNvlxr9vv0VNCC&x<2ou<>R2{V2iA?{ln@n6fKl1+%RNokw(tleW)WZhRi-T{b& z*%^q0afk$6NKe9!g)NIS3U>$Uo}n&*^Q=-8WB*#4E)=xc=8v%BZL5Ba+QU;*0IP1B zT3VQkPsS(6Odv;9J9Q>-byT%TzkhTD<}YhR%R}A0(JsH|fG@Z>QJf8?o0ty@3+G*i zqZ~!j+JjtoiG&bNi}#=sSANlGBIlO{1V2e&gs) z?dJXS7Y!bJym-Ol`TIIM4oqx6?X>NY9Y+ryxOwM5YNVQ(&1Y_zuB;8u99&)oLS6(d zAHY9R(DLynK}(h|=pIo7Ts>e3S)zy~>>2l=F2Tq8u}4Cjw#W~UQZkF&hzTAz(nNyO zwht>=Z2PFRC|#nh4M1&4BRGXVw94Wb3YQhbA+poqp1?il^;7j)AFRL)0u}J!Esg*y zN|Hfn8r5lNmst;S^3>wBBZx>3p^G@W>FOZX`2~tY=L8DLAvI<=;#Jjmd3t_9X%qe8 zeDJ+KwX4{}I5Ziy}vpA&cLZzF#klDrKQ#7UpxR*E5_4R>%uSL%ko{ zy!&zOra*eSb3z^|v;o%|jz-XPnEFB~YlN}P9e@Xc5FyNGm+`^+C)h*%;ml;=gAb6y zz^YdokOchjb^0o12D>@~w!+#CwpSiGm#v{v`9u z_^ZsrH9iXv>9HHHxzq$A-Mu@vvF-fZm#epQy?gvfA%E?{o*RZnu0BJ_t1DZ#>{MSd zFiIDmZow$64Cb{PPg%O8v*UGQiHUsm!wj@ENrt{WE;gb! z2CN}-rWWRA zJd>UYzR5sFbqO!Gn|5+CTP^=F#M?ih;;6s zh-C7!%3oLiG&QjE<^uL;`o>2hIea|R#g|H(-;eq$`xpNeyDC|e487rgcEb@-r$5{6a!6#c~IF}_N zZ;=O>F0I`&7EN;QnSPAO_nDJ!(IPq zz5o2J+RDuQu3hty?bqzR?ygk->deZ)0-!E;_(R*54&*of>$S(vIJ#$MZe{2E!cLs1 z%!$8M&rs=X#Q|yhlosiL5z*fVPeP29KC)$`kkWbj2(kRZM$2;kwz%*MH^E z_0@Bj`)T1&|FOr@mo8qguQRfLa@%RAZBykx*!;+jn-3m5stpxnZ8N>QJbLSR<;d{F zer?A-A)}6g=lhYb`g`P33s8bUFaV!RP}fJwKnWvb3IZ4)Wm-)jAUM|*dNNXXI18ZD zGZs*fb+qwbe1_+S*dah5Rc{im^<+6o1r?BD0K@}%=m>9O_0Z+#W>Dk;70w%-jt_qD z*vw2FZ{4*wo^{rZo8Pq`5@M(oLqd#5&odXK)hWqkL{ZY)#t0QnP>XuUC~E=T8_8wG zaGk+S9@x6g5L4+dHa(bz?68dmrBay;c``GsU6#$CNv&xt)N*GlOIlt%-)656vxbke zMy^!WDav+n^s4AOIB~JK^W-V##2*W*|R{a=6U17y?Q-1!9Aw69;doQ&BOHS*x?w><*8 zb^AKATji0-x%mkuNncgAG4;6@p0fM2P&f3o9+qMy*q92bQ-v#wwW*6z=xU@ylSh_a z{zl;#^BEy@?IR%=`}$CWWw38BokU6YL>7JQjm{;y>1VU)#q#6|RO@n`HF6ER(K;zR zASVq=Yubg#+wdZP!-u>%q+7D)z`$T392oQ-R=A2Sdd*<&1QesDd}slb&r`liemFl| zE_UQPvPgXG?T(5Hc~q>-JzK?XF=mR&J@r;(0p!=&zzXcny-XKPVrg&DI>>@ZU;}$u zh92LI%urs>CTE^Q zbx3rb9X#kpsA|c$!96Fwfs-`w|0Q;ELHN0`)2IpS+h2!N&A5pYP|p`oKJw=N9f!*G zJE44|=q)z}?(vaRo&RW}_sk#RR3E^>MB2Iu*rOV224Js44g;SZ4xnTq6H{$%0;A0G z8AN5tq_zhyfNv44FD)QD_ZQ)ghPZQm50uHNsZ@&lVN;VSBtNh-OW?Xli{Lspy33z+ zMbw>FXAj)bbZ%TL;;GwIj-s1FJo#SjZaa!@3_CH7o$#Vh4m!Yih`697%tgSy5z`~Y z98xYhmEDL#!BrFyo1P||+w|h};{0rSDm^(eJXCg|+&XdJw}NtWrP0;(p>5~ZBa|zw ztr4LFoNZK^0dOib1f5`*DLovEHbyZWrt-9*s~Ci&4q>yaJ_ek61ey^W2@C>@2eD^i zHtJD&Qk2AKBvy@$aR3?*=JbyCBA%ItEo_0Gbu@sVHBtmW=)j!)Lp_Qajv*6n=1MOz zV@MSy7gz>1^CMb_T$f0aMrj33tqMw1aaEWiV9b8O!Ln<(WUMh=7^n`6B1f31OX zT(ep7iDk>#axsq-H?);X=$CCOc!pQ);C?O_gg(P=62mOb(_BBO4E0f3J3gB7&cY}o0~Lv z60o%$^|p;5Yi^Fj{Rge>Nsdlk7xwC}hUdD0v5}=0MJPeiwf8SyFYWTT#oLy0b zZDb@KADJ4Nniz{$;=|D62wKK+e;Pu|+!ppv4m{a>y+zhy$r>)1&{edv`?XU{lU4W4 zHL*YI7@wjJAB*I>E#)0#=#SK!Kf$0}XRJW73@db~^4O%)G+ay655WTufP!eSs(8>B z%nz;7FHxUQT_Z<t#-RTCk*j;b$oG=U5eFOpPK zeXRW=ErcS5=m~+p;C3LDE~N)N`VOEn3<|-(=palY&yLjk$pi=71;w+RKe7%GF<|Cd z48Ibfz+V(@n?Zqt~5s@nxNNw3kMfuB*Nkug;w4R|r^{ z#)Q%ZIY;~YA0N^=hmx`5m?HI(N=LoSeM~KUu4TK5%CQ7IcJr*qc z4rfoh{H(o$7tQRyWo75l{fp<99)IV%mk)Gw?qgWYzllb!&#kNsq|!TY-hc4s9f(v{ zcii(P`QS|DqRRCCjkhupmvzUQThAcsw8nyhCL~ zBRXYIki2gY*eY30`ma8hUj^j}V$Cv)A$Q1+LkL+Y`XV7&mzk={LlFg(rr|y?!dY9N z^Z7u0dKf&+lbPL~)u!+nBR9FFXDFCaM8~V*R1rCx{(?Ubo+qD}NS;NsDKv-oFtbJ98C^+>z$j%S=36F}7ov2xZ8dfBt@Qc^w z7jaNV>1L+Jy$H8Zz>}lH;L{8+b%H4tKIZc+0JwMH*&HshNy{@{FAj+470s(>xjlyp zTG$DONpI-^>_Q@!15Rx`hj6kd>&dXwVJV5#`VQRn$T?4RHY5Mvyl^taC-ZL@Ih&h; z_<0b2Y!t*torC}q6jX{dGvebHugfoj_+z+p4HMC%KDk(}RHO_ePJIGcOj#eYQ?uTK zl-iG{$R39rvu;?OCqVy9r9$>*Wxj%P7vbSBYaN3IsT_+Db`;Ay2~j2Q6Xx0BW}9MI z*!4_xC2U!o3kg+a3S15aokdzr97>+}GYnCn(y|{`KNHKv@}kx=M-sC3 zc!U7y%FiCloj-Nt@UintD+wSFs$b0KuU@VGnVh<~Sg5`TsSVy!mN1t-m=7VS{$5}b z(7c&n(;2v-;QEA?Ofd>3y2KStswfK1CN=92zhAeP6vc-I>1@cVhIUo4JV6LxC80dM z0UPLHutzaj%yn^e^w=YhWPcTla0fRvwWAd$^!J1Kq9y3Fb~G{M>gSVs5>30#Guqz>pCC0jycM!Xd*(^kcpRjrLyLe)#D`nCwH z`D@qo4SpR5t=y+RgS)ra$$_+?D`G9 zwm!+#-=cHM+DSq)rg`0sAis(^ed*Z+`oM{A;Gt1wx^+ooT17%bNfxjdrWb&@WQc;H zBng!{Iz%v@dd}K|@$~KqgTHCjMtq%r=!5vs1uS$Jk`6pak#t#zr9Q0F3cqE>FUOB* zagbh*mV@q?4EtgAGgud|h|lVi^R-&vaYYwchwVrh&L>Y5J6Hpm%F+9V2W8|0Va8& za)RXSXQptNzX(_-u!X%A=RUzYb%!-^`LqRlM0?TgaN>U+lQT2}-Cw_xW=bd4VE3f7 zfUH@RAoimDq=8AbF+OFq@%%O80MKNtE@qm5^$1!HgI8P=;nM2rY7s!xL7NThwj>5)p2rkNT}F&)#v z9;9hncf`sbUfLa@D*?v_=F#`(3lLbj$;n*xtH+PulkbOj^VsXx&7HD{vF}CTARCr9 zH-EBzF{H?!fu>^$DUp5&<^NqIkuHZ+puOnKjL8>OpE?ZkJaB}#P&u)AVpwotmYOX? zhw^Y3R~kCYJ}WCSU7R4H5Olit7K9-1Z8Tz5rM50#fji8Syh`XjWU1=Q_UkU&ayE3_ z1NVp_us5&f4OmLsdq^N70Tna-EEapJLT=hVD%(xsm?zsI`nligoQ2@fBU$qV*u5II%Xiv~%g zLw-{1o?Wav&0~DsDM*qgj!sFjoKW$NPX)Aw)RZ(IpC@a@){Zm%sAAee_KHUfP$$#va`tfJ`jn}`d{1bcqdE9nJ8!_ai zoJR_j{vKhQuutGOVSR}@@zy`pA6PZN%+XzFm$DmF{ynVgpI-QV`t*q(RevV^1tX1L zTI4H>k|w37#y&F|S^m%u%)X1lnVW(}#KqsrJ*tSchD_rSA3!;%Gj zjpv@=G&8LgYiq}^-4u^vK^W@>9eB2<;ge($xIbzCV`Jj0u*1Sg7mIj0ilm1nn7(Wk z^|Qy0y=o}=n`wEAuIvyqK-1ye6p=KY8ED>$ddNC$=+fq&8sB#LuvN*yhYjThyl3h( z>WOcjSdmNW2IG>LbTOxSl%AIy$vd5ds_&ha`+wsU>c$Jx8Wag z{CIvQPBJ7nc~p_Dx%%mzD49Ysya-)Lf9aa(S&;YKdF;j;kKHN1bD{bnxqs%d8F}%a zQD>awthxo!xtw&KhKl*<9h`|H6_|V;lo#4V7an16kO8^fH9vUs~s{RS*M=|$t=~}nhr=>s$kgFhT zZSS&*tp0n0)kO1o!bTSLMYWOFW~S+)JQjnZ{sONNN3G#X&7;6?h6QX_RNBX!1Cs76 zqs@vkjR}l^t+6=Dn2Bt71Kb>CHs2F-ls%qZo7Np=^2}q%^2*MJV9@auo z4-`NhygJvUbZ&$Wp$BX^xAY=F%g=AdGKN{)UN6%|bBwEK9M60e0-u=?_5qM(A?AQF z+phV=##kImate3Ohpg)%ASSjQAx(_Z^V*dg3mXAfpQk2VHo<_*PMZFM5i5^l?lZ zHe6!*SS<_AW6lN-)k-F3gL4dajJwQOb}w_8QOMC{*A8)C#2?z0$-EM^3x(#!k3^in z5AYz{4n-d#e{h&x>~=ON#h3l&enhko61~Ws%-S*4ZUocftTX%^cE)*HbbSElg(5fu z(mOR&dG#vP-$XwzY2>9FAsM#=!*X1$gX)}^K?(33(w~4QB`=oqOko4M0eMLG_r`mo zox=Y{?gzb|9{EDNwJVkNCcxF7S=Vd2M0VD03pp~Gq#BS8*KSL{;m9N_&mps{UQVo{ zMs~S5F>7R)^)jEe&iaRj(6vw6CTCCdvDv3^u|%UFX*(b)&`ELEc_m7Gr}IN%PCqfA zH!Nxt?PC#tW-GxtM2A42rE+9%+lRnj!V@Vei2?|PJlRVg-B6n40SjE+A}oM?k++mm z#Zrj{FZg<{U;AF<&JH*dwy*$(&U#O+U&3z3Oa6DA3({w-6u*{qDSdW&xCL5{evyzf zU`TqBQ?;Ki2Hhjjiy$YUTc|@qo&n(3%^$sr{YMerEI_GY*e-V9L0{ZKdN8e@b&q0^ znjsp7WMgQRb}xewwlO0%Bm~(Hlh^6oHQm z?fk$%A~g|-Gl+hXXFVeyG(C!}A{I3gG?NBvvz>qNz$vFZaKZWb>-`sOKlPO5=Tvj#Ru`IPeKD46A7dEyREmH*i)v2-~1)xn&?>fRy}nEH_q z_uzAs4o6lTrNNDo)o)FM!x?7+OT>;T_|K6rEW>L|3^&u?8jS~@C7En%e@n)3kufJ|ZHk00Naap^OqEv77IcNbJ#@>!gZ+_0YyJP0=>J@RBP%$>pR^~Q| z_?l&x^(Wj1qb6=XPt42{+bk@NU8kD3E$q5AKqO1`IUub&On5J?@R)1#G|{zfc~t(E>p4XE3=sgdiIT)&x7JyKJ~_v=Kwx{Q>z+j+#g zi1tL*h_#_-P|m)0EyVSVq?U(m!G^NvwfiW*t%rtq+S<^}(De9dZ@IUW8L&jP8-*#|wlyOy`?z9Su%~Knq z(=~L6m6af5DvD-NDJ6hLtf^L}e+D3TaHFV}Q7Xmbyvt9#7%!A5Y#)Mcs<*QcrIbj` zML&y1YmohVJbyX4@8Cq`jcK<9IRpIlmdDMZKT*cv<1P?WA`4pn=wl3J~ubJWq(D}_5(mbz<=r7fOH zIX}9*-Zi=4Vl@2;W2O|$+IzJSx~wX3z!OO1Qp{$UR9eVfWd9n5lr3F_XR|Q1y=;ty z@`DXL%si?%NIbE{7zy<@o%VRrLusS}ds3bxly{-tS`_z23zoOSv}$8p$t4$&ls5&C1(Nh0a7d6{cOw_d3<>Pwt zrVbxqVRSkC2}7(95iY0j9C@g`s7B;bOd>GsiWk99uR>}4ZcZqumONjf9w~+h-NH!W z>Si*kYd0drU2cx2>+90P4vNvGZ#`;wB(CXD?8ndAc3#D0S{`Z+gc}Lk*{kWZNqhmOCpL%T$>Ba)qlmI^!2sTcatmhOt;BVmTvuv{iC?p z=RxnZl&8Bd3=-z3cBygsDe6&hmvIB)I$6h*Ayfwj2J!OVcmWK8(YlR;%tAi#>43d{}Xgj#si zat#_a3y^s1_pD<{>=qockJmTGb@Zy%nakzMIXJJ%QFaMZ5|ux%wy<(Jh&wRZVEH69 z|GfzbRB0R%<9a4BND(_%JBv#UDkr1M?CKa35bQKG77#9O$Tzvkg&W*h(Oo3C zdWY4Yz(1XZnlmeXm)FgWpf)fd8M4&wN1VzTzf*w7%-&}~Cuh>DREW-%Yq7L4&s%JBR$R#1TdBNc>ndlK=n-r?a~ zj<-I~4dsSP`BI^nWr=u3M!QecanI=t6;E)-ugGWj;Sd40z-o)CKQRm5?Z3HHx_&n| zICouFI`v_c!xQQ4-xrQ}mgXLbmW#zQmj&g*0o2B0Deli1etCl86qVaS`7Q($uhvjS z-y0pd~E-7y5=DZtDIqR15} z3bnows9GH+_p4+WArK$c@UO_XO z{nM;Iw^)htJgZKQ`h!@B%&Lmd?cu?VpSF9luC~1-TbiERGlLf3<@(sa@xUu8> z4W+d)2WSKwQK^Fm_)OkN28=!%Na_W1J}3SXZ~O%2;{&H{=y(XPikpcY7@E@{rtOTR za6AO02#Xq~Knq(8#riYBQD|yWh8HjrD@;P=c!(rp&XCe9EOY#3^=I2afElot7dE0MGZ>FM#@((4zj$ejfSOKS!nmnG^C$ z5GKP!`~*-1y((PUgj*pOjbdgsT00U9OGCxcBJW55kU*T`jC8;%s67 zm5++ax(tAf11fdQGg=%i>Bw>FCDhtVU%|02G+8aPc3WC;9NY5(6BLtr+k*j|iop;J zJ3>%d+a6d^QC_c^Bk0!lfKXAcV|WSuN&f^b-q!Y@RRZ*L!4han1J)Ly1u77e1{jkr zQKy7atbeQ*>reCmz6>mktc2lmGdm?fYT~}2Ja3%_kRH?tO>|1oe}^tYof7n6Uh0&9 zRY!|MB*O|m*H#HFFoFEiIcGXrC#;P(;QoCFLPg(HWqQ`{JI&`WPMj7_Ha-hD30>fe zFPnTpaZGo`|>QwXmyX@|DWDZY$*$|}W>6RBoYq^yjMj#MD_NRm+sWW2@mP4`(d zX|@yBTniGd^fg1K5gKofI!fdr(+UyDG=k-kOsnZAVV7Ct1h90JfK;=#2qCd2Mu^nI z@LYIysFWRyb>WM=ql6W4ue3;om&Nt9)ND76K+Wcht!*i;V}2jaQR-ODmSQzrCve%* z3PSRgxeB#93lpWf;=ZGxWh2@@T&Wa9t>oF=3R!d96B@=Va1iinT8(}X3K^#+BpUW zW&~ofES2)He72CML#>1UU^Ai`z_hR(2_LT;TP!+}mnTLG%To(WOADhHEKDwLKmN%5 zt4HUDOLyFSLnQjfo~5bjiJLASnwXuhdgUM8^3aaUwoIJfJ^bL6w{Vtcb>2jkcXV$= zg)petWMFxKXgmz6xcRt5m3NeVlu+dzy|DQHmgeTNWZ{~TZfZ@Mhg$N|9n11tBJZ6z zl1GL2M^M#lX+_;c3Ac!L!zs&aogLRiq7U7E>m#q9pO~5j;lmKBH^N=oBW=;%Vg{%e)|Y^1lKm$ZMpA%24Rb1J2GOHW=a~ynIfYH=h8uEaF{Sx) z&b;E$N3S^ZoZN7UriCVIVApmv0V||W+N4&w?nY0XS*3U!1Hww{m_JhqhTKMDiTK~8mWPl- zriIyRdZJXEEj{94(gK$K0_nhWvw8Ao)-Db`Sy*JoG_uTgE^K5cCk=M!D|9Sa z?*4P5=PsMf(dHvOT^NQKXUjeki4Mku<2&FFTwKGS&FxSnud?8P#sHnZbc{DrvzFG%0yoOXhscfgHHr%1+9=^yD%9@0;tk#W9Xw5tPm% zrDbmor2&BR2M*OEbsU8T;@Nm6)o+Rfik|3aku_v7&Y<~KVc=|OJqOVr!_@3B;9M%$PkT6XHlUVS&C5hpt#e}s*Sn!fKFeB$3>)U zQGo<<_~Bm}D1Dt=p>VFRYVA0ctnG9z=HuPsDX$$CCQ`?EH=Dj5wHzd==Eh>z(LqV9qMFih!3Y!cpeT(P{?N)4)5 z48pHWX*PSvA-{q9h3br;>lGr9H8jdW0Mhlq5yf-PCCMYO8qc$=i&={Z;H-M-rlisUZKLL(AG981Ik00-j zb~OMT*DUE3184kU>$)uX;=0S@c|z~welZlAQ~_6DO$tdz%3_CM!RdKI;y(0veCxQH zxMz%Sp#zF624V!cnf>b&(m|gRI~2LjAnYVuP5wSV>b+to35E<`j}AkwS^CA?0^YE$ zo1>1KFPSX4nkADFhl^J9$7`@;*MTlermIbK(ranS44llCEZTKA8TjwGaktI3WM;_K zELjx?luVw4RFOWWg>qnH6ks;kIBPAMkzhG^IHttKZ8{eVM4RhCgOjPc2J{e)Xk$a6 zxon6-;T(lc&WKB?(mRautNF};?LukbjjkK_^w@sydZjwd`mRkav`TfE5cD(^Nrx|(&bG6O& z0krC-r$XyS3xyGVJYLKm@d1@dkuSX7IT|#~5q{3&NsXt*D(D1I$YlmOicaKtcZj?S z>-{%vvAtXe(Rl0Y2ay4!Y(C2V*h6e{gDWk~|kEfuEz&S$zqA)ZayAQzK?-#7WTh zfd_|%9z1$*r>62_FN=lp^M0L4kHv6?0VfVGZuYWLN@u@ZFa zkq~wKYLrFV}*6KI3)RK#i z^%qEwt45pG)qm%8V6^~#nN?g42&`G}2Lb=P+OlJfHCzJu4M}g%;xH!+&@eUG zEkaEoS3jwOrXLJB1Jtg;qV5KDML{b=VdPFV`zYi77v2gKg^b7JLx6Ze$KyC-B!$-j z0oE+po=fEF0~fr=iFRjMg0_j;uLkD!Lq%5sNYAoJf&u3;d4yOh4ZbO)oD9eUkOe!zVJ@SE3Dw7h=N#(V%F`}FTu535U08zf| zGN)};k%xziqi1f&)!#IYw4X8~EhGIaGt&I1m&S}VmWqZO8pQ#w0+y4yHC^Unv%yda zD!}Hka-p>JF?t4Vm2YVEAqulkHGK%5Aj2;RyGW#(Oc>7y!Ki;w7=q3xsL)LmmSDy+ z$cYJKkScf77=uod${Co2`voT%bakE_7uv2UoRfy6->&7QVLLBL0RWItmc+tSA=8o~ z!VcLOrqOt9w9!z5#{h^T+Y4mrrQT5-CT`(1sx;n^*W84sL7zSs32LX2Qe^TwDeb2Q67*W%7YVfh>3DK@6)Izr1}F_Ib}7xn?bKX$dbRH z7kj;-^{}aU6LZeclkoJqz`g4~iafK{o??o)*W0!p=6X9=7MDbPIzBZHEt~`+yDHkL z4o~x|!b#S@a$Fi`){wa2&0%M1;raS0LwZh2Kh(<;1Q^cKBsd|%McYeqkQ32yJwkMC z=){J!WASo}m?Y zoiX6mF4Pw55A-pw6$7qQnHwFrZlMmp!JpUh>VGEaK({z<8^Wnu7H;>m5=1=?5L=C( z)u?(VZbd5HXn0u>>NJfCfwi-_S6zIk9L-)c>$j6vTCvWU!0R>hB{%gjYLL8)n9oja zxgTEPbQsP2uqQ~)0&3E;-q$DbFS&;J3gNE}2I`dd6kn+wvws{eJ zJwBskS@WoJ)(<)!5i^vB%H3V}wVm5BIe|)~P=;(XMOD(S7%0jVe05N`ecnWFA1{I| zCNC8+Aq9R=w9Qkgv4Lv%wQO!Ojod@-;|%>*c*)@Y5~+_ht{Y6F13l)cGEet&q zO|ZrMkP*>F)PiwYTA z?51JBg&W-qMMJ99N;ChuX&wyM9cK{8#Xw-9hgFSlE_ygEZgCShDJv}+$Qpj+WSB&f zQUMG5q@>nMP)T_|xsh-)vf88Y0;zDX#b#o$88tt2@BR1R`^8&P?Do_0!D3ufZD#JPJ&06cs{6O>De`y+>8^nPV58|0@?I*=SE_%Gi-*0KiM~$hjL&ogeMmdfYXkOLba%jbao7{UNZtaPt( z5cvjORBnF(wMmek#P;~_Klk)C*FOE6` zF$^BVxgxhRF>k9aS&9A6qs*&0;g7*m%I>tonkfREtN zSwuXe=x)!@+1$nj1k1h>d6oj6HOnE>7BHmRC6%$HLs$|O5PZAVNoP6M83LYzK(OSs zCo*T~Jey!g3Mpf006MamZHjeoqH~`%$Ei5&s_#;)CxLc^7*EBCQ1jeGLy8gNN31Zy zBY{|<3l7r0$`f1$Y;jvBs!Y4Al=3@i^Yq}@d$e#Nn^ZmCex$eR+n2G|aUgMuby851 z4C@qYD8;Cip z_>c%gXeY!coHFFEYDrQfNH+W2IKiaP0Gbb@>UjjrO<+l#I%%W6e1ctSg1ZR@$+??I zgEo`+18}!G`q(e!plHi+DTBbuuH8VljDLwwGyqv zfKdK&i8k&vsp0i!$kAQ9%k?B1=V$KkzC-J^`nz+3eV{oN79@{1Nw}QVKZ1RR$J;pj zq!G~Bx1dO|(=><*o{$*OkG9sy9o-ONLZ}{E~;n4a3s;lbINc*uCmJx1_OIFyEwe7 z@T{?1H+W<9o89GiBuHQ$xc2mXH`SQUzu-Q9OrH_1@v3IdiYlf3h+W>D)C7wR4l3?M zy`$*rrkPPF$C|%FNKM>mm>saTt9r&;2Gh3`^{pL3ErMx+JnIbylnMo!lU(G$oF~nB zA_v7f(+p<%9d`NlNUy`YK)SX?3j|EcS*rfY`YNtXtcT%(=pdg^Yj4T4H58?bVFn1pc00o1rc-J6IK$;ZPIB+@L z%#8U;*jzOTbV=iZ2&VM)QAL&_@XoP(fd^Aq^Ey`a64_^z@7$9GY90TzRue{h=*7d^ zs6X`BxV(PszaNtyn3&8_Z!ffp-o3m!hF;Ml!;967e6;#jvvmwkCarQWR@o;#M(4_F z>uF7$pjr0`u~5Hdb%c~5bCUCUhL#AfqU@wTtlXr6K29@+Sbt^5Kn#Iu7AB-OYlUs} z?ITr8U-`@&ppx`otoQbdX}KelUpjW|ORORG`sG;U@X*o^H|J=Tm{3N(7!4x+1Zyiu z|BJQn0F3jj?|z^6wsg|z_MJ{A-PB2U+9&C>b=Ka)wk&ISNU~*lFUfX>b75TJaF`1Jk$&->o#H0(I-7qBJYJ@4~A&;R*9 z|2_UbZqJ6xH4C%|6_^Bf9{OV2nLXEFdV5$gkjeO#J;D$3leyXso#q z-*W@Gh~C169OghEfRKiiuxdw?wlA3}VD;CiDOaEd2tx+D}`#F==UIsC1uO#Vks zM)$O|?24Y)9j=Z>N}|ycHa)k!c3WB5w%YA;J8C1P)zzgD)Fl*xY=ONGYcmN8YYShK ze7IVqKgNsn*YP3;bS7k)iIMWe^K2SZ-{OlkpK*2)!v-cUn~+74qta30JFM-LN(1=P zicy&>c*L>A-`jOO-&bF7LVT?-*VWtl-9PjAqJK}|!`*raOH{!rqkUDQh8?y76e()9 zdV@&T`pt#kTzQ23BKxXhNnO*z9x7D^(#gV!xPap)=5-B_SW#c zR8RvdCjypvGTJ=-(c{Nom~M`qOuX?-Y_7F+F7`~~s~5sI_a1m=eEgXMy*Gz1oEm?6 z%WQ4!?3Sm;PvJ$pttHsB881RZmm|=5H_yGC4(j z4riG96&=ljrVKUwl7gSFre?73P2aIRB5oUT`+a#ujfUxo*AmaNnF|*_Rva*#F=8Tc z7;#)IMEZYMTxZCJ5&&BRZYQ0ZF^P2pXh+0Y2jQCyzlrQLo)U#|oGRT~K^&g=ti@;c zDKk({H^dJM^nw@qwj2E;RZE|{?f&J(NV_|9iM5VBdTJgev)hh2T=B%0)0W^wGQAE) z5(Vsc$t9!^e}H4p1f&mnA=FBYo1&@cj$)kfh<~eKgHqTxu4|#s98_aX&?jrwEsHKF zl2|S_r7h0pjNaW^_h;z~e80o8C@*mqP|6jC<2vMYp)!IZxx^F-V~JQ2Z`ayEotvC^ z5NaQ&a|&4Wr63MYT*k@@J*o__N~kroxV1o|v@w5vk;B+kvpjR_{g;-)Tk>K}v86?m z^8;gD14#fn+P_j4r{%3Q@k4ZiWdee{p9(F{g+nAb@w8+t4@WnFwRDhr-<=|uxlsI+ zIMEHmXcN%-=}QGzi$VaIMwZ#QJP*T0(3CdlE%ee(m~`GUV0~#IXRq_KC-BB(cuU7m z(3Jsx<)_$(XXPew0$_GhN$}J@)~!I=1A1dgZ-%&WjW>U3G18G2vN@~ns>7TA@V56{ zT77doCLMLD3_RL%a z)Yv)Vt$+8|7e{MjO?6BB)lUH*m+|Tf!oAd+69h!hN}fn>4hW~?Cc7;&1AZhGjCzph z0!-B{5fw-`YLrESV2cJ7#P@kxHNV~xauU`Br9rU1fw|2Ac93(#89bxrL`OXZ)17)4 z^0}ARkA-KrBB&b%nT4p%=G)*&eShGdsu-zSzn|M%Cd(#0$DDcj?5TAdyYhF@0u=PX z-VVrnqtxKly}?jKdt1BSOLX`N$O=a={ayk8;+ zp5!_`e4QcThjDYBD+f6vVg^~GgCY)s6eMb%j1~cOqY)s1lwL@K06&a66Ck3%Y^+|& zei-3`CJ_<1wP2@V0>UER`2k`b$O@4kKt35>45R4ACrJ`RUs-t|Fa>QxU^&E#l!~;& z=8F;3BP5Se6d5v1`Kg-%IvhLCv?kk7^crU$Qv3g~*;-N`sL%{ftcU9Tr%LAj#b`L; z_IRt=a~sZoO9wyxc^RxXt^uoJ4OsmGR!(3|?j^N(8M?f|6ig4`ag={?jbR(M%7d6> z1H%7mt4|vZ2l-a#u+=Zu#g|NuXCxGI$y;qw4B{3S3A^K2Hn1?65R=+ZJ=rE#PUHQ3aj8?F4Os0rUik;~@lBwdl9ZBR_ri^QM#F9H&Glsk@d`Cn> zlRMf-d^X$BI+D6`bw^6;dg{8#j`CNYQM`d2H40yeI|F`)U8xppa4fL*K@K9uqUBb; z9DaADKt`}0Ie(uMTW;>)w_VDx?ctG+ba#`HkBH#Ww39D5Ng`x3%DRUTrH4QQl?Ew< zMC|DbCts+5tx$mkY(Yr919zCZTs8^~rXctp5@Rwl@*urRn2id3YCqK;lXMe;B^T2q zX+qKh@JSU96_rZ-`Ndn0`KOPy3}~8%ww`USt}SXNhR;Qf`Uj_PzO%aN#Inz6Up_Ny zH7!-3??qN#-F$mqT`lC#qyW<0e|mpzW6KTSf2*U$UhNs$!LR&Viq`<+u<&GD$0 zQW1gU7{I||iPzfZ>m^`_5z!9TJ|MAi?zH0>>>NduJmqqb`@0~IL)Kv=>wx)?ti!(* zl_Qd19uWMdh&MulIhDYM+b2fKD3^IiHPt}BqI0j}5g=;+cb8i7oH^OPx<^WDp}SgR zH3ygPy4g@QS?>(g2W&2V-m&U%e$?wNb6Lx)_Ot%PSB~ByuelCuE=HrH3=8fA^4_^$ zhmhPuD}*r4)6OT5&&e1zLWzImu^%Lly+1jGz9si6cBDih!|~)WC3q4)mSUmE6gK%x zVQmH_=*oMF0hKwTB9Kg~#Jp}}KU!+><>xCc_Wpw|v+ihKuH90b+FPElITSQ#$65k; znKcu>hM=#=W-D8_y=LHNiSQ?%4f;Ts2s!D(7s&FGv^Byv`4*FbdyuRA1rnGYVVDQ!JBDxpOK&?0jUS~NG@*n8I#uJQKH zLrpSn3;}pm!hgl}R^UdYC*2#1SUG$#8zxV59|RqNXTeCV!1mlaiLIgi4c{ zkTW7lOUVm&b?jUR?w_1#@wyex6q>q_yt@J9dH$B5GN4aGS5Mf6+qe$wsGP?YJeM%` zY7T{&0p0`)CvXcQ16YM@=Nf>WOIGyr@tcw?4oP(%veXzPRbpTYC6s-g87hF;r^ekg zOD<$GK9IO?CCd@CeEQ8_{lqP|Jigr8*wm^ocMt9GmoBp{$IqNOo_L+L#qi&N$+}qL zp9FFwS6L*Sr0RYO0ZGxkysLZ{5cH!|p8%JGWUHA0E0Ei~4Zt1=?V1!A1i4G2@QFq| z4T^|ikZi#lH5&C86dBEgfGTiUz8=f>!P*t@=`s-a%XhF=WKe7Tg&VgsG6I8+v7u;m zc-fR|F{|6vW=pO~UzR_#BT%x;7Ds3DoVl)<(Zoe|%wOPixts;Q8;rKaGH-H^cZjV* zfv_*0Nqv|Fi|m@9P4eE)5XWZ#XKr_tjR#blgYVA^Fo|poha&9?mxK=|fe?epG=P$U zI2VhFD`$LLyex0BJL-nRiAMv^@2=i(K&Hr%>fIa9hzeKVf(z^vo|LX^hK_8ileAjfN*BO$gQidc60bQ$z2g(Ks2l&OSwsMw+-NGm(mAwL_#5t~_kj;q? zQYb;x;#6t?Hm3kiQetg#JVOc@iKS7X=SvTN_|Z!bU1}fb+1}Y*m>;S)yyvd_-+S>? z;ybLkt#fk6a9`$PmQ15)i$URaX%E>{a^8pRb+OOSL~JwlfgjaWxSO7~>P_NaI%Wdn z#3`s^()mf74sJS-+lPRk=$W9=5V?v+lH(xW;UZ|LS!N2IQTceB(3ys-H3Wzp03s*^ z0`Qoa13`)E02U;@t;K7gHC@eBxK!_H3C4`(_VB>=OIBw|X1As&P}1JZVRYYJQ+IXe zIbFHC1`>C$V?Ix9?d1573@W;@Jph#n9>FzjG6^25X6bfrcqRmv06=DGkZIWjJ&^hq z^azYj7{eg|r*LVBY{{lO*lVb7CRx19Ny~K7*olU}j|65b_aC@4TikA67VXV}qN5Xu z53p^!0>Q*nbf%a|Qm&qa>R^N!2*jJy7FuZlfP^1QW;4VIlD~s}PLgMmNuyfW?71P}&EEhO<6Nn^wtz$ef>LK0ol zt&=!p5@Y;Z@^kGfi#<@tWfw<(;Yjy#O>;o!Fq@YDI?xjG8MH;ETzK)>T)RgT_pzmh z^4y|=Qt!6_2WpJg1KG?hEXFfXvI%`n;mDG?FE8?ebAd7=75V7kjv(4Kuk^u>40jZK zAx-S0JIcmMQX`Tyll+!J?36C2Suj!PdQ$FOA71?B-IdD+!p-(e5Bv928ESVou$_sQ zXZ-MZTzRu82!qDjMWe3+{`h0XLBM zC0UWUl#?>yNuwb2VW0H-dWokHD9evEY4XFQkaaj%D9$`ZaKZw-Ht;u}0Oq2l6@z~h zIwpij4AzJMlRR3rD&~-86o5kMHxt2;K*eQ%O?AkWask!o)d}B28@0xg{=JvVrs9TR zu#vT;lp``$lXCQI4+n7Lt|Wjz!2$du8Nfc9HA9Ds9U>e-`Q+@h4?w(A00ye^QUFAG zh;wQ+5HUG}P3e&;0E~u#NF_&cCd{8$rO^^SgEF~hJWi0aW69#bIvU~$RCN`kC{PZv z<0wTE9w|c5(!%N_UAwwDqV7GJMvQ!}&6c&^> z^$@gLE)~=Qd@!j(5==e@83;wQi9M1(8Rl)g2ee>3`8s^fsgVUoS|e0fmUFoe{a1r} zh<-d)0$fsNlGZdNMNu$ZeF@~UESTh)pM0=pcT;!3+*Uj=TGq>vwh|a^cG?~4ZiU4f zh;;OjJ2%t|wM0o%noCE+s3vrECr3^ph8rZ2pmy*{V*r`znv&mtqlyngh z!d%}DtzLF+Mc7=Y*+4IS1$p3HveNCcTGPqrHv+98zfsm>`hv|+Q0--F=qZ860)&hR z7pY{DLUfXp0M?ZO8)ykhjf8#l5KkP`E+$U}!}V zb@IFMsa9DU01=F!zXdm?aE1+}f&PZ-$*@95s)SY29V|AxO)j7O!rf2QmX}pJ>$V)2 zz4u7#`9R=AtS(mGl2z0>9JuYQVP`*NaZi4}%WX2)+u8;PoaVE(yc~zsY7jF`CGm>> zUDCy5ZvqY>v?e#$KoF!{@Hu@)3;O8QWRPuR{jQ&nMj-wVKSOFQxjm*Ck z6maQK*g7oy!AMY*v9^wCXx*M5I3^21|H%#hlA|RxmF02gj;%KztUu)O>?xZmYYen@ z=bb%cu-g}N^QLJ%$mzfk=O&S2I*UmV$__Gl(ZkaBI4vMU+Ie9NQw~jB4h9ifBngdnenOCZlYt{- zq4QTfS=u=@cA#S3TXeksy?-!z-`4wB;j3ePBO{iaC8Onmd$!)(AwgZVVV%?v9##2K zM29X7E@&Fm@hSCm*$8!v#6qtIb(>%f1pFN8Noy?R^VLQA=et^tY@eRqzR==dXuA09 zvlk7KGm+74+qRaRvDu!u`|ihOIPS*!tOQ5EP(dN6bUS1?BD`9l8j9&~q}aS99OdsZ z2sbMYju^wB>|YL2gq8$HvkXV9kitVa6g`(t^^Mducs${nvuB6y8orzTZQ}hCTl@Ml zPG#SJVdB`^AcVPiIMI>L;sj2d#9tYnD%?F0BAnx+&>*G?A3N$8Bq;&}h}*@@oMgPlbv;SDlHVSHJm8T8&N% zg95!)t)nQQRScCTCbvxU=Fg_kl}eGQX5p^lbLn(kr<3-g)^RBSxpYz$CKD{ss91?s zvt+J_uES9Ao*lx$@7QmIHI>&A`O9(%&xsp-o0e&h^8Zc zZuF+EBfx!l=;qx%fBn!GI||AAKzB|$MT9A?o}pamG<9UD9Wo9KLZ>5HgV{f+W?=sK_)_GztHuOXA;T7``WU zN6M-p6E0<9%9AO2t2{(fE1*J%|Zd2#l~;^5Z+Wtp_npxscJ8-eu|1w8)S%Ba89T6 zKmcjOFz&oYfG;mv%q{q6Mu=bolF(9=Pkss?LZ6Tas}M>c8S=?&ftaB{Kr-ZW4vH8* zGE*e!Ao4HQSS=nndUj!^vwOI5chI}oc=!F68iu0fk#es+)NGjEzJ0I9T3c-~oyxJD z-IsXvjeK9g>&-ZrH18~e3>6FiBEigQw-_LwN>Eb?g%m8Q>;z`NMUp+|tst+;Q_( zL*qgl+miV6hSt^w_{v^yTWG|*WZRfPD4|*ClGZ?SP$#KzkdD`^1NJBR5`#=YBqZwH zNq%w?g08)cUtMh(|C!LQF5`ZH!X->e%gBSxj%>3EafXV{^2Mad-(GyE5KgTQ!sXR) z@bEzl(lzhP=D)S7LK7j|ves!pl3)h^fJCXc_q zo^>WZUw@#TkP9fY7pH0w#xI+)GO+!m4+TkRz#NktHj4@=G$ekf;h{ zASfsbfTO?@`B0GMVDYAWD6-FlVrmfkjTU;<@x~(ohh=}w{wME!@WFf8`x@g*mfTN1 z{WKfB^5%EGlUmr3(HTw8^S)W0j-YTh1BBmQUm0*(KkFAsgr8>{*TutDzDV? zwc(yAT)2^Xq4jbyQC%hv{AyxJxDG@fh{MFeyT}_QD0a#B@iL%;Ja%sKO-miOE%#3! zn?Cs1CvV%k_cqww{*ZO!&+o3(vcbeF013So)id$hE$d#(vsThyX(c)UU1*Gc3JMsT z@p_26*LrdP@)K)b+Q=2mb2I(W=Zl zUXrokHbB}c9EfM3RH&dZ!?y&qlr;d4%t(NwFzqRiNhm=JN@0U{{SX1AGsjj@f(obW zOvni~<#3l@)Ce>s9xc0wC49ZKP`ePRJM_`h)rI#y`slqlozHyyT=s)px`g9#lL=ODBUUb%qjAzQpkZU+ z_k0ErUNyH$ZHu@72`>?`Zw0hLdEf>|J(n9n?t^}xQI;D+Mvw+>nOY+hAzbqCAG`a`WqAX~Ao+MvblT!_n6X00 z%kmb`oI>7$Un-=ZTweMtD7ZpdVk zlJQnm7CM;ih;-KJ)@NcNa>;&WCr4P!mvZ7r;geE|?t3 z>B|A2YIO%iy@X(USEsz~X(J)RbCH>_Nd=E*+(F69g+VeOrWM-PWmqF(T5@iBo(WsK zmDjqutE#%Xs&ef19HZTCWV=`QCiZtmtGc_ZqMbv|9HYZw%yA|@leS%ed8J7P^RBgE zrhwJ8VD3(N{Bk5%C(i&D%J@~l|E}PF<>#2!BScs|`!^2%4@eS92rps+3N1n$SD-Q$ z#4k|TSpZO_93$A1Q%|WHf~|lYDus0Nh_iX8(Kw{!KoD2ZovY0YwZ_U*%+cb`YR)lW zZ5e(bzl}1O$iK%W6dYIT_kogo^@cOARY^ZseQDWHBul?P@ryG4%RJr-?!t1xT{4BZ zgjW>M$E8VeGR0QF`?!P+3n0%Ipl_Hs1aBh-^HnIZ3M6Jo!Xv24@y2C~-H&_#_JPEG zly<=zEs9b8CcCgrdY6^t7UI>=Stcn7UA{yve2y35b9!Ui*Zied0Ydug(|?zj@^6io zERM7ltuBqN{1W@yDgGQ%df%&vD`QD14EvS>sk+G3#~HaKRG7iWNSfW18X&9+`XQs0 z^bJ}=b&OJS;bJA38en;_vGaMhzoA-Q$;6qOrNj2^-HEUB%#@X%;&pZ6?*tz*Q!)%# zNOl^r;fo;y?C`Y~!v`c6;}g7*Ktx^)$+YtQO%kBh@I0*TU}L~zwdMyJstUH3>=?^) z=eeaLe5<^p(BU(=bAyX!%W!Kj7DA-npGhlDha8eyQ-X<&t_n$pSBG43K(f3ERHUHM zo`M|gO-O!1#IOXp_cc~Gu>BuwldfR&qsZeCmd0RQsww9|uHf zRI=$)D#Jx|jEsxai4;7}w5AuSdd54rf3&M$GTOJ)hK{6lI|?6t{OOidPtqTn499(K zZTWfbEsK2vi>)4ib)xnBy=)*Fo(xy@wX_Zp(Eu~2Y&ELLj-(e7#Yj6TfILKD353WV zHjo2)Ce=O1!0bXb>Sa*KoU}N}^qEd)fBV2d{{wsXUhE&ZxTk;X=)l0})_%kI^CwPz zXy?ukojmdU_{B2|2hW{5xNrt{#sduM6<>oZ3$-es7}G_Po6|Ce3=yMQ)Yu|s4a6&> z|K&$sys#`<4?cSSN~iR!7{coFgwlAJ3>PFoL9K?;Mrcl$RUn}r#1I6(8|}ejUIYg* z1}$jsxXN^SQldtKO3t41h35LE!uqDFec_UmZ3D*|`nMluzAL|-I_1l$YHssa*7-e; z6nN|A+xkuq&7P-a0EiweBPevn+u)Kxojg(D1u3AtK#LSq=st;YB1?%wSQe}waBuU5 zXZSrR1cCu?AVB%c$(#aOpp=P|zETQN142O?TW{ zS+SJ(SA*4hrlh(e8d)qaE30t1&pBO(XDYTiBTL`HN+|tz93am?Zf0e?4DJT}4@chz zQy{Gw;`%H=hi3C!#LUdh%*xDy(oKoz=#lHKVNouJ`OP&NwmtDVHuU6y1Mjna=DpMG zPZMKH?`1i^{&fm0uK~l6vtrGGdWh;K5*R-b1|qB`27nm*|0X7XSus$C9$U6*x78 z0$ul{;uJ_4;nqTVEJewrMxdaG%Owb|LRZjRfR`awzA)M5D=oWQ!!P;9d-Ue5y*u7_ zu&p{A-?5PCo~~&>P#-@(9_#F^jdpcb8~PuZx#ROQIk#Bn_T+nF2fMqD$4__E)^>H* zRP_M3puVDtUo6ywf^h{rf-VI`*#g)+UL3^_sKgrcf^acE+lRc!pC#V9B(|JCaOL9= z&k3=60VccP7s??{ZZTrBh?+znDaa70@V`ngV82%}K!($cK)`{rGlB9zS-8mIclh%2 zFoi9w<8&k4Qo(VVAEHT?fk`Gv|NXO1HdPgu-nY1TZ)tH=(-RlUo0`hY8ym}G?bvEZ zd(3cbzGcj8AF14R=+LgJVY_*(W&RlZU~Qx%7AuL=Ccf1at!iwniZ-n~b!>)YP~bh5 zOx`OT9Dt_cGATc8ennG9x%M1UYJ;DnoDc(J(`v_Z=^WGd@X3nO<{gJJ-QzW#hZ^HI z?;N|e3+KAn)mc;1*;!*S@DnVkqZ4fHe_-~`*Y>jGT{Y33&e|FX^eacuqv~FqfLi&`hjS+TB0D%S@fl+dC!kU0|F8EZF1%O#+LaI; zEwJNXICf-!c@Mm--Uo^siRKAkxKG&}6>tt)Xfn#`RA z9bLJlmFE-xB@Wi@YfD^ay;nM0ZLwOL*POj8%h+0$S5j0s!twG~;(y7DFBcxA+IPe^ zd`zSDBJv@OV%yo+L>5S~8j6n;ETl!8gcilOk?)Uvkbz&Apv`eIr6^ZRMx?xgA8Q?eJsx`Lt(lA2LlzuP6GjF=}Fo})SR=OlsqFfAWVnHH#+Us zm?Phl=PNI(&3BcQ*|!AS`b%p^d(yz7&(sZOWE#vyLubChm^+l2Rb5u)G}V{IB=ErA z^cCDWmk?(Tx!Mj43`jwc_+ymmGOCzX*9eFe0Agsjs@B5L>BAsYA-mQf7(WS~6}V3d zH13@N7tv`mbo*qWaebc44Y)sQwQ33#j-`qi(lV;A=Q%t;4`)uvg^FGAx~o2>RC3ml zWcKSHg$iPW>oA_z8iRjcIwD&z$P4XW1vv?Euj|x2ZP9Rvv%zfcN@DI$*e^LwuRFuC zlGGWpm!qMGWeq|TnqT8QmHe)LLq>NiN|QXsZz~uoA-x@iXR;8jmdvdz1r38(p+>|J z^?Er#D9-OM5L^xG^cekAE1~%*)yg5l_O$Ve)7KsjY`58L4x59d0d9sTY+rxr$rNTK zLybRHqe(~Yzk2earLwYPj=nTZZteNf7Y17|?%fNCfQZsR0&)Ea!Ke~yST}7{!kc`= zS1XYzp~&Yd7Ex`LP>n`?VW!Q{0Cj1A`sxE@v~58d?F^MJa7f?mV0OESGHUUsd)B>4B! z6Dm+_E^MO~U}>q>o0(Z!R~m~}dP}^KP!Mg53c|$1vH-F*)SHVd_=^jha?W46vSUjV zT+(s<#o>H=xW8>nf7p>f+-tTwjV6cPY;(D6^e62C=xQqR!&-Yqc~w<;gfvaGj7)9Dz8sb*=(95QB&JKjxb}V{%gWMB8FZpl zvsF5qfPm30!l3Zy zXbJ@Hkuoc($(09zXJj&`Ym0a#P*KwAh>Bhfk))X54TuB;csEaPL;xIITU%|d2VA6W zux+5Ht9DCmys5!czC`>9Qyaw;>~pgUfBJr9wQfIq38%0!Se z+VoDu3$99Gp>k%E1Bw^^^S^sQzxo8rzUe4?{5k+D&W|-FenHaJ^?_0ZiQNGu>J=D> z?djIA@-%B$1sh0Ov`sl=Ne-yBWDQGl2r9uP8J0+sy=iJ{czAMh7`)i)4FuG&7G?>~DsM*J!qoKIRLT zoKO5@HitFT*^LHs)-^xTt=o-Qpt?&zIK z$u)EiJ6JtlkSF{>JjY@Hfy_=4NRrESppAYwJ3$+%KZ%0DB_o-=@JhgAn(Tmp2gJ)P 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 NXL7sa&_#^@{{gSVEZP77 literal 0 HcmV?d00001 diff --git a/assets/images/Google.png b/assets/images/Google.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae9eb4b6e68f3bb9e9d7728b9ecfd2f39b38b5e GIT binary patch literal 805 zcmV+=1KRwFP)*+DK?0=7{8)Dbf@mR;Q3J0_D!1MM zR~#sc#w@p!>i|!4TKjCbB*|9!H*vsC9oj4l!Ei0|f^vY|VuwGoa(-UlYbjqvm~=(r zL8t>mQI~W;6)Ed{l#z?s^>d(nIg#f^5;z^%n1z1?$wk}ToThCT1;0L=f!zD9q$|A9 z4MzZu*Ax$0imC0&4zym_U4wA-1A}v!d1wR#<;aY4nnQGW*ra@|LtCwV68+E!@|4pQ z{xc}DzEUY9L>J(Qz_IYlP#z)psGRfw>{JgEVJ)E=(02Px!wG8)f~xVUqV##T2VP`* zhAl?(SVS$c=TOe|hwA6Xbp?dEO)ZZ2Zh5 zZ|lbwCgiK|NjYU%CsTb(qX)L@p}8~*C)$kBDEGwlq$ucH8Z)}6Sh2FRBWIw%Qb`fSwb;Gc|mKC6PIn=r%Bs9>+5El9h_ubsk}Z#tN59A*b{EXcTf6r zn9ZIrYwMnAV~B5FS?KT6A$@JKw$qxO+s@w5n%Fq)f1snq#QYaO3j$be{jFCB)?e(M zT`{qBuj1A>a}Vloxg&Al{)&e0t711D5aemI-zJryxwltRY2)-b2hMPRK}U8Yp6>D< T2XT;ZA0o4 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 UIApplicationSupportsIndirectInputEvents + LSApplicationQueriesSchemes + + + kakaokompassauth + + kakaolink + + kakaoplus + diff --git a/lib/main.dart b/lib/main.dart index 5967142..5f4996b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:saphy/screens/welcome/welcome_screen.dart'; +import 'package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart'; -void main() async{ +void main() async { await dotenv.load(fileName: 'assets/config/.env'); + WidgetsFlutterBinding.ensureInitialized(); + String? kakaoNativeAppKey = dotenv.env['KAKAO_NATIVE_APP_KEY']; + KakaoSdk.init( + nativeAppKey: kakaoNativeAppKey, + ); runApp(const MyApp()); } @@ -18,95 +25,11 @@ class MyApp extends StatelessWidget { colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - // This widget is the home page of your application. It is stateful, meaning - // that it has a State object (defined below) that contains fields that affect - // how it looks. - - // This class is the configuration for the state. It holds the values (in this - // case the title) provided by the parent (in this case the App widget) and - // used by the build method of the State. Fields in a Widget subclass are - // always marked "final". - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - int _counter = 0; - - void _incrementCounter() { - setState(() { - // This call to setState tells the Flutter framework that something has - // changed in this State, which causes it to rerun the build method below - // so that the display can reflect the updated values. If we changed - // _counter without calling setState(), then the build method would not be - // called again, and so nothing would appear to happen. - _counter++; - }); - } - - @override - Widget build(BuildContext context) { - // This method is rerun every time setState is called, for instance as done - // by the _incrementCounter method above. - // - // The Flutter framework has been optimized to make rerunning build methods - // fast, so that you can just rebuild anything that needs updating rather - // than having to individually change instances of widgets. - return Scaffold( - appBar: AppBar( - // TRY THIS: Try changing the color here to a specific color (to - // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar - // change color while the other colors stay the same. - backgroundColor: Theme.of(context).colorScheme.inversePrimary, - // Here we take the value from the MyHomePage object that was created by - // the App.build method, and use it to set our appbar title. - title: Text(widget.title), - ), - body: Center( - // Center is a layout widget. It takes a single child and positions it - // in the middle of the parent. - child: Column( - // Column is also a layout widget. It takes a list of children and - // arranges them vertically. By default, it sizes itself to fit its - // children horizontally, and tries to be as tall as its parent. - // - // Column has various properties to control how it sizes itself and - // how it positions its children. Here we use mainAxisAlignment to - // center the children vertically; the main axis here is the vertical - // axis because Columns are vertical (the cross axis would be - // horizontal). - // - // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint" - // action in the IDE, or press "p" in the console), to see the - // wireframe for each widget. - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text( - 'You have pushed the button this many times:', - ), - Text( - '$_counter', - style: Theme.of(context).textTheme.headlineMedium, - ), - ], - ), - ), - floatingActionButton: FloatingActionButton( - onPressed: _incrementCounter, - tooltip: 'Increment', - child: const Icon(Icons.add), - ), // This trailing comma makes auto-formatting nicer for build methods. + debugShowCheckedModeBanner: false, + initialRoute: WelcomeScreen.id, + routes: { + WelcomeScreen.id: (context) => const WelcomeScreen(), + }, ); } } diff --git a/lib/screens/welcome/welcome_screen.dart b/lib/screens/welcome/welcome_screen.dart new file mode 100644 index 0000000..11aac44 --- /dev/null +++ b/lib/screens/welcome/welcome_screen.dart @@ -0,0 +1,106 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:google_sign_in/google_sign_in.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/service/google_login_controller.dart'; +import 'package:saphy/service/kakao_login_controller.dart'; +import 'package:saphy/service/main_view_model.dart'; +import 'package:saphy/utils/colors.dart'; +import 'package:saphy/widgets/login_button.dart'; + +class WelcomeScreen extends StatefulWidget { + static String id = 'welcome_screen'; + const WelcomeScreen({super.key}); + + @override + State createState() => _WelcomeScreenState(); +} + +class _WelcomeScreenState extends State { + final viewModel = MainViewModel(KakaoLoginController()); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + Expanded( + flex: 2, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Center(child: Image.asset('assets/images/LogoBig.png')), + const SizedBox( + height: 10.0, + ), + const Text( + 'electronics flea-market', + style: TextStyle( + fontFamily: 'Prompt-Thin', + fontSize: 20.0, + fontWeight: FontWeight.w100, + color: altBlack, + ), + ), + ], + )), + Expanded( + flex: 1, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + LoginButton( + title: '구글 로그인', + logo: Image.asset( + 'assets/images/Google.png', + width: 20.0, + ), + color: white, + onTap: () {}, + ), + const SizedBox(height: 5.0), + LoginButton( + title: '카카오 로그인', + logo: Image.asset( + 'assets/images/Kakao.png', + ), + color: systemKakao, + onTap: () async { + await viewModel.login(); + setState(() {}); + }, + ), + SizedBox( + width: 50.0, + child: Image.network(viewModel + .user?.kakaoAccount?.profile?.profileImageUrl ?? + 'https://beforeigosolutions.com/wp-content/uploads/2021/12/dummy-profile-pic-300x300-1.png'), + ), + LoginButton( + title: '카카오 로그아웃', + logo: Image.asset( + 'assets/images/Kakao.png', + ), + color: systemKakao, + onTap: () async { + await viewModel.logout(); + setState(() {}); + }, + ), + const SizedBox(height: 10.0), + const Text( + 'By tapping Sign in and using Saphy, \n you agree to our Terms and Privacy Policy.', + style: TextStyle( + fontFamily: 'Prompt-Regular', + fontWeight: FontWeight.w200, + color: altBlack, + ), + textAlign: TextAlign.center, + ), + ], + )) + ], + ), + ); + } +} diff --git a/lib/service/google_login_controller.dart b/lib/service/google_login_controller.dart new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/lib/service/google_login_controller.dart @@ -0,0 +1 @@ + diff --git a/lib/service/kakao_login_controller.dart b/lib/service/kakao_login_controller.dart new file mode 100644 index 0000000..05c4373 --- /dev/null +++ b/lib/service/kakao_login_controller.dart @@ -0,0 +1,50 @@ +import 'package:flutter/services.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/service/social_login.dart'; + +class KakaoLoginController implements SocialLogin { + @override + Future login() async { + if (await isKakaoTalkInstalled()) { + try { + OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); + print('Kakaotalk Login Success ${token.accessToken}'); + return true; + } catch (error) { + print('Kakaotalk Login Failed $error'); + if (error is PlatformException && error.code == 'CANCELED') { + return false; + } + try { + OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); + print('KakaoAccount Login Success ${token.accessToken}'); + return true; + } catch (error) { + print('KakaoAccount Login Failed $error'); + return false; + } + } + } else { + try { + OAuthToken token = await UserApi.instance.loginWithKakaoAccount(); + print('KakaoAccount Login Success ${token.accessToken}'); + return true; + } catch (error) { + print('KakaoAccount Login Failed $error'); + return false; + } + } + } + + @override + Future logout() async { + try { + await UserApi.instance.unlink(); + print('Kakao Logout Success'); + return true; + } catch (error) { + print('Kakao Logout Failed $error'); + return false; + } + } +} diff --git a/lib/service/main_view_model.dart b/lib/service/main_view_model.dart new file mode 100644 index 0000000..7738c62 --- /dev/null +++ b/lib/service/main_view_model.dart @@ -0,0 +1,22 @@ +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:saphy/service/social_login.dart'; + +class MainViewModel { + final SocialLogin _socialLogin; + bool isLogined = false; //처음에 로그인 안 되어 있음 + User? user; //카카오톡에서 사용자 정보를 저장하는 객체 User를 nullable 변수로 선언 + + MainViewModel(this._socialLogin); + + Future login() async { + isLogined = await _socialLogin.login(); //로그인되어 있는지 확인 + user = await UserApi.instance.me(); //사용자 정보 받아오기 + print(user!.kakaoAccount?.profile?.thumbnailImageUrl); + } + + Future logout() async { + await _socialLogin.logout(); //로그아웃 실행 + isLogined = false; //로그인되어 있는지를 저장하는 변수 false값 저장 + user = null; //user 객체 null + } +} diff --git a/lib/service/social_login.dart b/lib/service/social_login.dart new file mode 100644 index 0000000..2379acf --- /dev/null +++ b/lib/service/social_login.dart @@ -0,0 +1,4 @@ +abstract class SocialLogin { + Future login(); + Future logout(); +} diff --git a/lib/utils/colors.dart b/lib/utils/colors.dart new file mode 100644 index 0000000..02e2040 --- /dev/null +++ b/lib/utils/colors.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +// GrayScale +const Color txtPrimary = Color(0xff303136); // gray950 +const Color gray900 = Color(0xff52535d); +const Color gray800 = Color(0xff616272); +const Color gray700 = Color(0xff77798b); +const Color txtSecondary = Color(0xff8a8ba1); // gray600 +const Color gray500 = Color(0xffa0a3b4); +const Color gray400 = Color(0xffb4b8c5); +const Color gray300 = Color(0xffd4d7de); +const Color gray200 = Color(0xffdfe1e6); +const Color gray100 = Color(0xffedeff2); + +// Primary +const Color mainPrimary = Color(0xff9ABCFF); // main600 +const Color main500 = Color(0xffB9D1FF); + +// System Color +const Color systemColorRed300 = Color(0xffff4d6c); +const Color systemColorRed = Color(0xffffcad3); +const Color systemColorRed100 = Color(0xfffff5f6); + +const Color systemColorBlue300 = Color(0xff067dfd); +const Color systemColorBlue = Color(0xffcae7ff); +const Color systemColorBlue100 = Color(0xffeee7ff); + +const Color systemColorGreen300 = Color(0xff0cd380); +const Color systemColorGreen = Color(0xff9ff3d0); +const Color systemColorGreen100 = Color(0xffd8fbed); + +const Color systemKakao = Color(0xfffee500); + +const Color white = Color(0xffffffff); +const Color altWhite = Color(0xfff4f4f4); +const Color black = Color(0xff000000); +const Color altBlack = Color(0xff272727); diff --git a/lib/widgets/login_button.dart b/lib/widgets/login_button.dart new file mode 100644 index 0000000..fcb9ff1 --- /dev/null +++ b/lib/widgets/login_button.dart @@ -0,0 +1,56 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/utils/colors.dart'; + +class LoginButton extends StatelessWidget { + LoginButton({ + super.key, + required this.title, + required this.logo, + required this.color, + required this.onTap, + }); + + String title; + Image logo; + Color color; + Function() onTap; + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 50.0), + child: OutlinedButton( + onPressed: onTap, + style: OutlinedButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + side: const BorderSide(color: gray100, width: 1.0), + padding: const EdgeInsets.symmetric( + horizontal: 15.0, + vertical: 15.0, + ), + surfaceTintColor: Colors.transparent, + overlayColor: Colors.transparent, + backgroundColor: color, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + logo, + const SizedBox( + width: 10.0, + ), + Text( + title, + style: const TextStyle( + fontFamily: 'Pretendard-Medium', + fontSize: 15.0, + color: black), + ), + ], + ), + ), + ); + } +} diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 2bfe7e4..539ed51 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,10 +5,14 @@ import FlutterMacOS import Foundation +import google_sign_in_ios import path_provider_foundation +import shared_preferences_foundation import sqflite func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FLTGoogleSignInPlugin.register(with: registry.registrar(forPlugin: "FLTGoogleSignInPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 30b4065..31986be 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,38 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + url: "https://pub.dev" + source: hosted + version: "67.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" + url: "https://pub.dev" + source: hosted + version: "1.5.3" async: dependency: transitive description: @@ -17,6 +49,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" cached_network_image: dependency: "direct main" description: @@ -49,6 +97,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" clock: dependency: transitive description: @@ -65,8 +121,16 @@ packages: url: "https://pub.dev" source: hosted version: "1.18.0" - crypto: + convert: dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: "direct main" description: name: crypto sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab @@ -81,6 +145,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + url: "https://pub.dev" + source: hosted + version: "2.3.6" + dio: + dependency: "direct main" + description: + name: dio + sha256: e17f6b3097b8c51b72c74c9f071a605c47bcc8893839bd66732457a5ebe73714 + url: "https://pub.dev" + source: hosted + version: "5.5.0+1" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "36c5b2d79eb17cdae41e974b7a8284fec631651d2a6f39a8a2ff22327e90aeac" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + encrypt: + dependency: "direct main" + description: + name: encrypt + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" + url: "https://pub.dev" + source: hosted + version: "5.0.3" fake_async: dependency: transitive description: @@ -147,6 +243,67 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + google_identity_services_web: + dependency: transitive + description: + name: google_identity_services_web + sha256: "000b7a31e1fa17ee04b6c0553a2b2ea18f9f9352e4dcc0c9fcc785cf10f2484e" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + google_sign_in: + dependency: "direct main" + description: + name: google_sign_in + sha256: "0b8787cb9c1a68ad398e8010e8c8766bfa33556d2ab97c439fb4137756d7308f" + url: "https://pub.dev" + source: hosted + version: "6.2.1" + google_sign_in_android: + dependency: transitive + description: + name: google_sign_in_android + sha256: d30fb34b659679ea74397e9748b4ab5d720720d57dcc79538f1b3c4a68654cb3 + url: "https://pub.dev" + source: hosted + version: "6.1.27" + google_sign_in_ios: + dependency: transitive + description: + name: google_sign_in_ios + sha256: a058c9880be456f21e2e8571c1126eaacd570bdc5b6c6d9d15aea4bdf22ca9fe + url: "https://pub.dev" + source: hosted + version: "5.7.6" + google_sign_in_platform_interface: + dependency: transitive + description: + name: google_sign_in_platform_interface + sha256: "1f6e5787d7a120cc0359ddf315c92309069171306242e181c09472d1b00a2971" + url: "https://pub.dev" + source: hosted + version: "2.4.5" + google_sign_in_web: + dependency: transitive + description: + name: google_sign_in_web + sha256: "794f5494a945d6dd2654c52f979594ecd2558e5c82ce8272295ba371c93015e6" + url: "https://pub.dev" + source: hosted + version: "0.12.2+1" http: dependency: transitive description: @@ -171,6 +328,70 @@ packages: url: "https://pub.dev" source: hosted version: "0.19.0" + 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" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + url: "https://pub.dev" + source: hosted + version: "6.8.0" + kakao_flutter_sdk_auth: + dependency: transitive + description: + name: kakao_flutter_sdk_auth + sha256: e59fa065641b77ed444804af5a74a94b5fdf1893e25fa6269b7c1d43864c0052 + url: "https://pub.dev" + source: hosted + version: "1.9.0" + kakao_flutter_sdk_common: + dependency: transitive + description: + name: kakao_flutter_sdk_common + sha256: "0c8fe546efc577154641bbe1038e7c5438d0711dd5deebd83d26ed65235e1077" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + kakao_flutter_sdk_talk: + dependency: "direct main" + description: + name: kakao_flutter_sdk_talk + sha256: fdf7265f640249682c902d3ccaffb1b1374ba288e8122c99a8f88e8feeadf643 + url: "https://pub.dev" + source: hosted + version: "1.9.0" + kakao_flutter_sdk_template: + dependency: transitive + description: + name: kakao_flutter_sdk_template + sha256: "93b56370f3021234c6c8bfe698f5dc4a611a320fbd728236f8c4ed4141a6679a" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + kakao_flutter_sdk_user: + dependency: "direct main" + description: + name: kakao_flutter_sdk_user + sha256: "2042a323bf299eb78c5fa6ec898cf0871734399cad5d4373551c63630624bce4" + url: "https://pub.dev" + source: hosted + version: "1.9.0" leak_tracker: dependency: transitive description: @@ -203,6 +424,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" matcher: dependency: transitive description: @@ -235,6 +464,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" path: dependency: transitive description: @@ -292,7 +529,7 @@ packages: source: hosted version: "2.3.0" platform: - dependency: transitive + dependency: "direct main" description: name: platform sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" @@ -307,6 +544,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + url: "https://pub.dev" + source: hosted + version: "3.9.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" rxdart: dependency: transitive description: @@ -315,11 +576,83 @@ packages: url: "https://pub.dev" source: hosted version: "0.27.7" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "034650b71e73629ca08a0bd789fd1d83cc63c2d1e405946f7cef7bc37432f93a" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + url: "https://pub.dev" + source: hosted + version: "2.2.1" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + url: "https://pub.dev" + source: hosted + version: "2.3.2" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + url: "https://pub.dev" + source: hosted + version: "1.3.4" source_span: dependency: transitive description: @@ -432,6 +765,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" web: dependency: transitive description: @@ -448,6 +789,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" sdks: dart: ">=3.4.0 <4.0.0" flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 9abe2bb..fbe65d5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -33,49 +33,33 @@ dependencies: flutter_dotenv: ^5.1.0 intl: ^0.19.0 cached_network_image: ^3.3.1 - - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.6 + google_sign_in: ^6.2.1 + dio: ^5.5.0+1 + platform: ^3.1.5 + shared_preferences: ^2.2.3 + crypto: ^3.0.3 + encrypt: ^5.0.3 + kakao_flutter_sdk_user: ^1.9.0 + kakao_flutter_sdk_talk: ^1.9.0 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: ^3.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec + flutter_lints: ^3.0.0 + json_serializable: ^6.8.0 -# 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/config/.env - - assets/images/SaphyLogoSmall.png - - assets/images/MoneyCharacter.png - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware + - assets/images/ - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - # 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: Pretendard fonts: @@ -88,6 +72,12 @@ flutter: - asset: assets/fonts/Pretendard-Regular.ttf - asset: assets/fonts/Pretendard-SemiBold.ttf - asset: assets/fonts/Pretendard-Thin.ttf - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages + - family: Prompt + fonts: + - asset: assets/fonts/Prompt-Black.ttf + - asset: assets/fonts/Prompt-ExtraBold.ttf + - asset: assets/fonts/Prompt-Bold.ttf + - asset: assets/fonts/Prompt-SemiBold.ttf + - asset: assets/fonts/Prompt-Medium.ttf + - asset: assets/fonts/Prompt-Regular.ttf + - asset: assets/fonts/Prompt-Thin.ttf From 59ab5a4b5787b9cfc1d8c5a6dd0300f66cf25fed Mon Sep 17 00:00:00 2001 From: legendary_octopus Date: Mon, 22 Jul 2024 17:22:06 +0900 Subject: [PATCH 05/54] fix : overflow error --- lib/main.dart | 3 +- lib/screens/main/main_screen.dart | 9 +- lib/screens/search/search_screen.dart | 128 +++++++++++++------------- lib/widgets/product_card.dart | 52 +++++------ 4 files changed, 94 insertions(+), 98 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 5967142..88a42ee 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:saphy/screens/main/main_screen.dart'; void main() async{ await dotenv.load(fileName: 'assets/config/.env'); - runApp(const MyApp()); + runApp(const MainScreen()); } class MyApp extends StatelessWidget { diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index 28232ee..dcddb51 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -6,12 +6,6 @@ import 'package:saphy/models/product.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; -void main() { - // async { - // await dotenv.load(fileName: 'assets/config/.env'); - runApp(const MainScreen()); -} - class MainScreen extends StatefulWidget { const MainScreen({super.key}); @@ -111,7 +105,6 @@ class _MainScreenState extends State { child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20), child: Container( - height: 100, decoration: BoxDecoration( color: const Color(0xffDFE1E6), borderRadius: BorderRadius.circular(30)), @@ -161,7 +154,7 @@ class _MainScreenState extends State { crossAxisCount: 2, mainAxisSpacing: 15, crossAxisSpacing: 15, - childAspectRatio: 0.84, + childAspectRatio: 0.8, ), ), padding: const EdgeInsets.all(20.0), diff --git a/lib/screens/search/search_screen.dart b/lib/screens/search/search_screen.dart index de1c0eb..566f384 100644 --- a/lib/screens/search/search_screen.dart +++ b/lib/screens/search/search_screen.dart @@ -1,92 +1,94 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/screens/main/main_screen.dart'; -class SearchScreen extends StatelessWidget { +class SearchScreen extends StatefulWidget { const SearchScreen({super.key}); + @override + State createState() => _SearchScreenState(); +} + +class _SearchScreenState extends State { @override Widget build(BuildContext context) { + + // 검색창 컨트롤러 + final TextEditingController searchController = TextEditingController(); + return Scaffold( backgroundColor: const Color(0xfff4f4f4), - body: Column( + appBar: AppBar( + backgroundColor: const Color(0xfff4f4f4), + title: Row( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + child: TextField( + controller: searchController, + decoration: InputDecoration( + labelStyle: const TextStyle( + backgroundColor: Colors.white, + ), + suffixIcon: IconButton( + icon: const Icon(Icons.clear), + onPressed: () { + // 검색창 초기화 로직 구현 + searchController.clear(); + }, + ), + filled: true, + fillColor: Colors.white, + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color(0xff272727), + ), + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color.fromARGB(255, 83, 83, 83), + ), + ), + ), + ), + ), + IconButton( + icon: const Icon(Icons.search), + onPressed: () { + // 검색 로직 구현 + + }, + ), + ], + ), + ), + body: const Column( children: [ - const SizedBox( - height: 50, - ), Padding( - padding: const EdgeInsets.all(20.0), + padding: EdgeInsets.all(20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const MainScreen(), - ), - ); - }, - ), - SizedBox( - width: 290, - child: TextField( - decoration: InputDecoration( - labelStyle: const TextStyle( - backgroundColor: Colors.white, - ), - suffixIcon: IconButton( - icon: const Icon(Icons.clear), - onPressed: () {}, - // 컨트롤러 연결해야 해서 아직 미구현 - ), - filled: true, - fillColor: Colors.white, - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color(0xff272727), - ), - ), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color.fromARGB(255, 83, 83, 83), - ), - ), - ), - ), - ), - IconButton( - icon: const Icon(Icons.search), - onPressed: () {}, - ), - ], - ), - const SizedBox( - height: 20, - ), // 아래 모두 데이터 연동 & stateful 위젯으로의 전환 추후 진행예정 - const Text( + Text( "최근 검색어", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), - const SizedBox( + SizedBox( height: 20, ), - const Text( + Text( "인기 검색어", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), - const SizedBox( + SizedBox( height: 20, ), - const Text( + Text( "인기 브랜드", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index 061544f..1b9faa1 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -16,6 +16,9 @@ Widget productCard({ color: Colors.white, ), child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( height: 120, @@ -28,37 +31,34 @@ Widget productCard({ ), ), ), - Padding( - padding: const EdgeInsets.only(top: 10.0, left: 10.0), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Text(productBrand, - style: const TextStyle( - fontFamily: "Pretendard", - fontSize: 15, - )), - Text( - productName, + const Spacer(), + Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(productBrand, style: const TextStyle( - fontWeight: FontWeight.bold, fontFamily: "Pretendard", fontSize: 15, - ), + )), + Text( + productName, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 15, ), - Text( - "${numberFormat.format(price)}원", - style: const TextStyle( - fontWeight: FontWeight.bold, - fontFamily: "Pretendard", - fontSize: 20, - ), + ), + Text( + "${numberFormat.format(price)}원", + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: "Pretendard", + fontSize: 20, ), - ], - ), - ) + ), + ], + ), ], ), ); From 966ee415736860d535904a0f36cf9146ea6e40ab Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Mon, 22 Jul 2024 17:50:20 +0900 Subject: [PATCH 06/54] =?UTF-8?q?SAPHY-107=20Feat=20:=20AppBar,=20NavBar?= =?UTF-8?q?=20=EB=AA=A8=EB=93=88=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widgets/app_bar.dart | 34 +++++++++++++++++++++++++++++++++ lib/widgets/bottom_nav_bar.dart | 10 +++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 lib/widgets/app_bar.dart diff --git a/lib/widgets/app_bar.dart b/lib/widgets/app_bar.dart new file mode 100644 index 0000000..92bdba3 --- /dev/null +++ b/lib/widgets/app_bar.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; + +class TopAppBar extends StatelessWidget implements PreferredSizeWidget { + final AppBar? appBar; + const TopAppBar({super.key, this.appBar}); + + @override + Widget build(BuildContext context) { + return AppBar( + backgroundColor: Colors.white, + title: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: Image.asset( + "assets/images/SaphyLogoSmall.png", + height: 24, + ), + ), + centerTitle: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.notifications_outlined), + onPressed: () {}, + ), + ), + ], + ); + } + + @override + Size get preferredSize => + Size.fromHeight(appBar?.preferredSize.height ?? kToolbarHeight); +} diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index 23fd4e7..1537481 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/screens/products/liked_list_page.dart'; import 'package:saphy/screens/search/search_screen.dart'; class BottomNavBar extends StatelessWidget { @@ -60,7 +61,14 @@ class BottomNavBar extends StatelessWidget { children: [ IconButton( icon: const Icon(Icons.favorite), - onPressed: () {}, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const LikedListPage(), + ), + ); + }, ), const Text("관심 목록"), ], From 667d2bf633ee43e0a23e25867ddb11c49d607bcc Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Mon, 22 Jul 2024 17:52:43 +0900 Subject: [PATCH 07/54] =?UTF-8?q?SAPHY-107=20Feat=20:=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 33 ++++++++----------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index 28232ee..da73bd6 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; // import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; +import 'package:saphy/widgets/app_bar.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; @@ -68,26 +69,7 @@ class _MainScreenState extends State { debugShowCheckedModeBanner: false, home: Scaffold( backgroundColor: const Color(0xfff4f4f4), - appBar: AppBar( - backgroundColor: Colors.white, - title: Padding( - padding: const EdgeInsets.only(left: 20.0), - child: Image.asset( - "assets/images/SaphyLogoSmall.png", - height: 24, - ), - ), - centerTitle: false, - actions: [ - Padding( - padding: const EdgeInsets.only(right: 20.0), - child: IconButton( - icon: const Icon(Icons.notifications_outlined), - onPressed: () {}, - ), - ), - ], - ), + appBar: const TopAppBar(), body: CustomScrollView( slivers: [ SliverToBoxAdapter( @@ -134,9 +116,10 @@ class _MainScreenState extends State { Text( "사피 초대하고 지원금 받기", style: TextStyle( - fontFamily: "Pretendard", - fontSize: 25, - fontWeight: FontWeight.bold), + fontFamily: "Pretendard", + fontSize: 25, + fontWeight: FontWeight.bold, + ), ), ], ), @@ -148,7 +131,7 @@ class _MainScreenState extends State { sliver: SliverGrid( delegate: SliverChildBuilderDelegate( (context, index) { - return productCard( + return ProductCard( productBrand: productList[index].productBrand ?? "", productName: productList[index].productName ?? "", productImageUrl: @@ -161,7 +144,7 @@ class _MainScreenState extends State { crossAxisCount: 2, mainAxisSpacing: 15, crossAxisSpacing: 15, - childAspectRatio: 0.84, + childAspectRatio: 0.86, ), ), padding: const EdgeInsets.all(20.0), From 34775ca971777804dd4131b5bbf5e5ca0bb1ca1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Mon, 22 Jul 2024 17:58:44 +0900 Subject: [PATCH 08/54] =?UTF-8?q?Feat=20:=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/mypage/mypage.dart | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/screens/mypage/mypage.dart diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart new file mode 100644 index 0000000..5af3c15 --- /dev/null +++ b/lib/screens/mypage/mypage.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; + +class MyPage extends StatefulWidget { + const MyPage({Key? key}) : super(key: key); + + @override + _MyPageState createState() => _MyPageState(); +} + +class _MyPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("My Page"), + ), + body: const Center( + child: Text("My Page"), + ), + ); + } +} \ No newline at end of file From 6f4934461302b1b4cbef317ff79c08a50f9e4084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Mon, 22 Jul 2024 18:48:32 +0900 Subject: [PATCH 09/54] =?UTF-8?q?SAPHY-37=20Feat:=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 11 ++--------- lib/screens/mypage/mypage.dart | 10 +++++----- lib/widgets/bottom_nav_bar.dart | 12 ++++++++++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index da73bd6..d42e27b 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -1,18 +1,11 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; -// import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; import 'package:saphy/widgets/app_bar.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; -void main() { - // async { - // await dotenv.load(fileName: 'assets/config/.env'); - runApp(const MainScreen()); -} - class MainScreen extends StatefulWidget { const MainScreen({super.key}); @@ -131,7 +124,7 @@ class _MainScreenState extends State { sliver: SliverGrid( delegate: SliverChildBuilderDelegate( (context, index) { - return ProductCard( + return productCard( productBrand: productList[index].productBrand ?? "", productName: productList[index].productName ?? "", productImageUrl: @@ -144,7 +137,7 @@ class _MainScreenState extends State { crossAxisCount: 2, mainAxisSpacing: 15, crossAxisSpacing: 15, - childAspectRatio: 0.86, + childAspectRatio: 0.7, ), ), padding: const EdgeInsets.all(20.0), diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index 5af3c15..fac000b 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:saphy/widgets/app_bar.dart'; class MyPage extends StatefulWidget { const MyPage({Key? key}) : super(key: key); @@ -10,11 +11,10 @@ class MyPage extends StatefulWidget { class _MyPageState extends State { @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text("My Page"), - ), - body: const Center( + return const Scaffold( + backgroundColor: Color(0xfff4f4f4), + appBar: TopAppBar(), + body: Center( child: Text("My Page"), ), ); diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index 1537481..df3a48f 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/screens/mypage/mypage.dart'; import 'package:saphy/screens/products/liked_list_page.dart'; import 'package:saphy/screens/search/search_screen.dart'; @@ -65,7 +66,7 @@ class BottomNavBar extends StatelessWidget { Navigator.push( context, MaterialPageRoute( - builder: (context) => const LikedListPage(), + builder: (context) => const SearchScreen(), ), ); }, @@ -77,7 +78,14 @@ class BottomNavBar extends StatelessWidget { children: [ IconButton( icon: const Icon(Icons.person), - onPressed: () {}, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const MyPage(), + ), + ); + }, ), const Text("나의 사피"), ], From 8225d1907f0dfb894258cd1306fa8353e324fc0b Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Mon, 22 Jul 2024 23:54:02 +0900 Subject: [PATCH 10/54] =?UTF-8?q?SAPHY-109=20Feat=20:=20=EB=84=A4=EB=B9=84?= =?UTF-8?q?=EB=B0=94=20=EB=B0=A9=EC=8B=9D=20=EB=B3=80=EA=B2=BD,=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A6=B0=20=EC=BB=A8=ED=8A=B8=EB=A1=A4?= =?UTF-8?q?=EB=9F=AC=20=EC=83=9D=EC=84=B1,=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/main/main_screen.dart | 8 -- lib/screens/products/liked_list_page.dart | 140 ++++++++++++++++++++++ lib/screens/search/search_screen.dart | 73 ++--------- lib/utils/screen_controller.dart | 56 +++++++++ lib/widgets/bottom_nav_bar.dart | 114 ++++++------------ 5 files changed, 242 insertions(+), 149 deletions(-) create mode 100644 lib/utils/screen_controller.dart diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index da73bd6..643dc02 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -4,15 +4,8 @@ import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:saphy/models/product.dart'; import 'package:saphy/widgets/app_bar.dart'; -import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/product_card.dart'; -void main() { - // async { - // await dotenv.load(fileName: 'assets/config/.env'); - runApp(const MainScreen()); -} - class MainScreen extends StatefulWidget { const MainScreen({super.key}); @@ -151,7 +144,6 @@ class _MainScreenState extends State { ), ], ), - bottomNavigationBar: const BottomNavBar(), ), ); } diff --git a/lib/screens/products/liked_list_page.dart b/lib/screens/products/liked_list_page.dart index e69de29..fbe6449 100644 --- a/lib/screens/products/liked_list_page.dart +++ b/lib/screens/products/liked_list_page.dart @@ -0,0 +1,140 @@ +import 'package:flutter/material.dart'; +// import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:intl/intl.dart'; +import 'package:saphy/models/product.dart'; +import 'package:saphy/widgets/bottom_nav_bar.dart'; +import 'package:saphy/widgets/product_card.dart'; +import 'package:saphy/screens/main/main_screen.dart'; + +class LikedListPage extends StatefulWidget { + const LikedListPage({super.key}); + + @override + State createState() => _LikedListPageState(); +} + +class _LikedListPageState extends State { + final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + List productList = [ + // 그냥 구현용 샘플 데이터 + // 아직 좋아한거 띄우는건 못함 + Product( + productNo: 1, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 2, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 3, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 4, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 5, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + Product( + productNo: 6, + productBrand: "Apple", + productName: "Iphone 15", + productImageUrl: "https://picsum.photos/id/20/300/300", + price: 250000), + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + body: CustomScrollView( + slivers: [ + const SliverToBoxAdapter( + child: SizedBox( + height: 70, + ), + ), + SliverToBoxAdapter( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const MainScreen(), + ), + ); + }, + ), + const SizedBox( + width: 250, + ), + IconButton( + icon: const Icon(Icons.search), + onPressed: () {}, + ), + ], + ), + ), + const SliverToBoxAdapter( + child: SizedBox( + height: 20, + ), + ), + const SliverToBoxAdapter( + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 30.0, + ), + child: Text( + "Wish List", + style: TextStyle( + fontFamily: "Prompt", + fontSize: 30, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + SliverPadding( + sliver: SliverGrid( + delegate: SliverChildBuilderDelegate( + (context, index) { + return ProductCard( + productBrand: productList[index].productBrand ?? "", + productName: productList[index].productName ?? "", + productImageUrl: productList[index].productImageUrl ?? "", + price: productList[index].price ?? 0); + }, + childCount: productList.length, + ), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 15, + crossAxisSpacing: 15, + childAspectRatio: 0.84, + ), + ), + padding: const EdgeInsets.all(20.0), + ), + ], + ), + ); + } +} diff --git a/lib/screens/search/search_screen.dart b/lib/screens/search/search_screen.dart index de1c0eb..5a0efac 100644 --- a/lib/screens/search/search_screen.dart +++ b/lib/screens/search/search_screen.dart @@ -1,92 +1,44 @@ import 'package:flutter/material.dart'; import 'package:saphy/widgets/bottom_nav_bar.dart'; -import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/widgets/text_field.dart'; class SearchScreen extends StatelessWidget { const SearchScreen({super.key}); @override Widget build(BuildContext context) { - return Scaffold( - backgroundColor: const Color(0xfff4f4f4), + return const Scaffold( + backgroundColor: Color(0xfff4f4f4), body: Column( children: [ - const SizedBox( + SizedBox( height: 50, ), Padding( - padding: const EdgeInsets.all(20.0), + padding: EdgeInsets.all(20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const MainScreen(), - ), - ); - }, - ), - SizedBox( - width: 290, - child: TextField( - decoration: InputDecoration( - labelStyle: const TextStyle( - backgroundColor: Colors.white, - ), - suffixIcon: IconButton( - icon: const Icon(Icons.clear), - onPressed: () {}, - // 컨트롤러 연결해야 해서 아직 미구현 - ), - filled: true, - fillColor: Colors.white, - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color(0xff272727), - ), - ), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(20), - borderSide: const BorderSide( - color: Color.fromARGB(255, 83, 83, 83), - ), - ), - ), - ), - ), - IconButton( - icon: const Icon(Icons.search), - onPressed: () {}, - ), - ], - ), - const SizedBox( + CustomTextField(), + SizedBox( height: 20, ), // 아래 모두 데이터 연동 & stateful 위젯으로의 전환 추후 진행예정 - const Text( + Text( "최근 검색어", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), - const SizedBox( + SizedBox( height: 20, ), - const Text( + Text( "인기 검색어", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), - const SizedBox( + SizedBox( height: 20, ), - const Text( + Text( "인기 브랜드", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), ), @@ -95,7 +47,6 @@ class SearchScreen extends StatelessWidget { ), ], ), - bottomNavigationBar: const BottomNavBar(), ); } } diff --git a/lib/utils/screen_controller.dart b/lib/utils/screen_controller.dart new file mode 100644 index 0000000..7293cef --- /dev/null +++ b/lib/utils/screen_controller.dart @@ -0,0 +1,56 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/widgets/bottom_nav_bar.dart'; +import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/screens/products/liked_list_page.dart'; +import 'package:saphy/screens/search/search_screen.dart'; + +void main() { + // async { + // await dotenv.load(fileName: 'assets/config/.env'); + runApp(const ScreenController()); +} + +class ScreenController extends StatefulWidget { + const ScreenController({super.key}); + + @override + ScreenControllerState createState() => ScreenControllerState(); +} + +class ScreenControllerState extends State { + int _selectedIndex = 0; + final List _widgetOptions = [ + const MainScreen(), + const SearchScreen(), + const LikedListPage(), + ]; + + void _onItemTapped(int index) { + setState( + () { + _selectedIndex = index; + }, + ); + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: "Saphy", + debugShowCheckedModeBanner: false, + home: Scaffold( + body: Center( + child: _getSelectedWidget(_selectedIndex), + ), + bottomNavigationBar: BottomNavBar( + currentIndex: _selectedIndex, + onTap: _onItemTapped, + ), + ), + ); + } + + Widget _getSelectedWidget(int index) { + return _widgetOptions[index]; + } +} diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index 1537481..a476978 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -1,90 +1,44 @@ import 'package:flutter/material.dart'; -import 'package:saphy/screens/main/main_screen.dart'; -import 'package:saphy/screens/products/liked_list_page.dart'; -import 'package:saphy/screens/search/search_screen.dart'; class BottomNavBar extends StatelessWidget { - const BottomNavBar({super.key}); + final int currentIndex; + final Function(int) onTap; + + const BottomNavBar({ + super.key, + required this.currentIndex, + required this.onTap, + }); @override Widget build(BuildContext context) { - return Container( - color: Colors.white, - height: 90, - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 5.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Column( - children: [ - IconButton( - icon: const Icon(Icons.home), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const MainScreen(), - ), - ); - }, - ), - const Text("홈"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.build), - onPressed: () {}, - ), - const Text("수리센터"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.search), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const SearchScreen(), - ), - ); - }, - ), - const Text("탐색"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.favorite), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => const LikedListPage(), - ), - ); - }, - ), - const Text("관심 목록"), - ], - ), - Column( - children: [ - IconButton( - icon: const Icon(Icons.person), - onPressed: () {}, - ), - const Text("나의 사피"), - ], - ), - ], + return BottomNavigationBar( + currentIndex: currentIndex, + selectedItemColor: const Color(0xff9abcff), + unselectedItemColor: Colors.black, + onTap: onTap, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.home), + label: "홈", + ), + //BottomNavigationBarItem( + // icon: Icon(Icons.build), + // label: "수리센터", + // ), + BottomNavigationBarItem( + icon: Icon(Icons.search), + label: "탐색", + ), + BottomNavigationBarItem( + icon: Icon(Icons.favorite), + label: "찜 목록", ), - ), + // BottomNavigationBarItem( + // icon: Icon(Icons.person), + // label: "나의 사피", + // ), + ], ); } } From 8f574d3cecdd17c3e807f055657a650e2bbf98e4 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 23 Jul 2024 01:05:52 +0900 Subject: [PATCH 11/54] =?UTF-8?q?SAPHY-109=20Design=20:=20=EB=84=A4?= =?UTF-8?q?=EB=B9=84=EB=B0=94=20=EC=83=89=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widgets/bottom_nav_bar.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index a476978..517a7a0 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -14,6 +14,7 @@ class BottomNavBar extends StatelessWidget { Widget build(BuildContext context) { return BottomNavigationBar( currentIndex: currentIndex, + backgroundColor: Colors.white, selectedItemColor: const Color(0xff9abcff), unselectedItemColor: Colors.black, onTap: onTap, From 67ceb4086e110ce7ea7c54236028d279eca3ca7b Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 23 Jul 2024 01:13:30 +0900 Subject: [PATCH 12/54] =?UTF-8?q?SAPHY-113=20Feat=20:=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=20TextField=20=EA=B5=AC=ED=98=84=20=EB=B0=8F=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widgets/text_field.dart | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lib/widgets/text_field.dart diff --git a/lib/widgets/text_field.dart b/lib/widgets/text_field.dart new file mode 100644 index 0000000..a066c32 --- /dev/null +++ b/lib/widgets/text_field.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:saphy/screens/main/main_screen.dart'; + +class CustomTextField extends StatelessWidget { + const CustomTextField({super.key}); + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + SizedBox( + width: 290, + child: TextField( + decoration: InputDecoration( + labelStyle: const TextStyle( + backgroundColor: Colors.white, + ), + suffixIcon: IconButton( + icon: const Icon(Icons.clear), + onPressed: () {}, + // 컨트롤러 연결해야 해서 아직 미구현 + ), + filled: true, + fillColor: Colors.white, + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color(0xff272727), + ), + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: const BorderSide( + color: Color.fromARGB(255, 83, 83, 83), + ), + ), + ), + ), + ), + IconButton( + icon: const Icon(Icons.search), + onPressed: () {}, + ), + ], + ); + } +} From 43a808509e5b54eb08e92d87552d0aaf4ac330e1 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 23 Jul 2024 01:14:20 +0900 Subject: [PATCH 13/54] =?UTF-8?q?SAPHY-112=20Feat=20:=20=ED=83=90=EC=83=89?= =?UTF-8?q?=20=ED=99=94=EB=A9=B4=20=EA=B8=B0=EB=B3=B8=20UI=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/screens/search/search_screen.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/screens/search/search_screen.dart b/lib/screens/search/search_screen.dart index 5a0efac..6acb6f9 100644 --- a/lib/screens/search/search_screen.dart +++ b/lib/screens/search/search_screen.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/widgets/text_field.dart'; class SearchScreen extends StatelessWidget { From 6d99ebf79f57233e050e81c7bb55f2326f196408 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 23 Jul 2024 01:15:15 +0900 Subject: [PATCH 14/54] =?UTF-8?q?SAPHY-114=20Feat=20:=20=EC=83=81=ED=92=88?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EA=B5=AC=ED=98=84,=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/widgets/product_card.dart | 144 +++++++++++++++++++++------------- 1 file changed, 90 insertions(+), 54 deletions(-) diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index 061544f..495f7f8 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -1,65 +1,101 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; +import 'package:saphy/screens/products/product_detail_page.dart'; -Widget productCard({ - required String productBrand, - required String productName, - required String productImageUrl, - required double price, -}) { - final NumberFormat numberFormat = NumberFormat('###,###,###,###'); - return Container( - padding: const EdgeInsets.all(10), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.white, - ), - child: Column( - children: [ - Container( - height: 120, - width: 160, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(10), - image: DecorationImage( - image: CachedNetworkImageProvider(productImageUrl), - fit: BoxFit.cover, +class ProductCard extends StatelessWidget { + final String productBrand; + final String productName; + final String productImageUrl; + final double price; + + const ProductCard({ + super.key, + required this.productBrand, + required this.productName, + required this.productImageUrl, + required this.price, + }); + + @override + Widget build(BuildContext context) { + final NumberFormat numberFormat = NumberFormat('###,###,###,###'); + return InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ProductDetail( + productBrand: productBrand, + productName: productName, + productImageUrl: productImageUrl, + price: price, ), ), + ); + }, + child: Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, ), - Padding( - padding: const EdgeInsets.only(top: 10.0, left: 10.0), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Text(productBrand, - style: const TextStyle( - fontFamily: "Pretendard", - fontSize: 15, - )), - Text( - productName, - style: const TextStyle( - fontWeight: FontWeight.bold, - fontFamily: "Pretendard", - fontSize: 15, + child: Column( + children: [ + Container( + height: 120, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + image: DecorationImage( + image: CachedNetworkImageProvider(productImageUrl), + fit: BoxFit.cover, ), ), - Text( - "${numberFormat.format(price)}원", - style: const TextStyle( - fontWeight: FontWeight.bold, - fontFamily: "Pretendard", - fontSize: 20, - ), + ), + Padding( + padding: const EdgeInsets.only(top: 10.0, left: 5.0), + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + productBrand, + style: const TextStyle( + fontFamily: "Pretendard", + fontSize: 10, + ), + ), + Text( + productName, + style: const TextStyle( + fontWeight: FontWeight.w600, + fontFamily: "Pretendard", + fontSize: 15, + ), + ), + ], + ), + const SizedBox( + height: 4, + ), + Text( + "${numberFormat.format(price)}원", + style: const TextStyle( + fontWeight: FontWeight.w800, + fontFamily: "Pretendard", + fontSize: 20, + ), + ), + ], ), - ], - ), - ) - ], - ), - ); + ) + ], + ), + ), + ); + } } From e6f08ee289d29bc7a8bcbcbbe44ad9c2b7d9da72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=9B=90=ED=9D=AC?= Date: Tue, 23 Jul 2024 14:21:50 +0900 Subject: [PATCH 15/54] =?UTF-8?q?SAPHY-37=20Feat:=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20UI=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 4 +- lib/screens/main/main_screen.dart | 2 +- lib/screens/mypage/mypage.dart | 522 +++++++++++++++++++++++++++++- lib/screens/mypage/setting.dart | 15 + lib/utils/screen_controller.dart | 12 +- lib/widgets/bottom_nav_bar.dart | 8 +- lib/widgets/product_card.dart | 24 +- 7 files changed, 558 insertions(+), 29 deletions(-) create mode 100644 lib/screens/mypage/setting.dart diff --git a/lib/main.dart b/lib/main.dart index 88a42ee..18d21be 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; -import 'package:saphy/screens/main/main_screen.dart'; +import 'package:saphy/utils/screen_controller.dart'; void main() async{ await dotenv.load(fileName: 'assets/config/.env'); - runApp(const MainScreen()); + runApp(const ScreenController()); } class MyApp extends StatelessWidget { diff --git a/lib/screens/main/main_screen.dart b/lib/screens/main/main_screen.dart index a15953b..0d9af04 100644 --- a/lib/screens/main/main_screen.dart +++ b/lib/screens/main/main_screen.dart @@ -123,7 +123,7 @@ class _MainScreenState extends State { sliver: SliverGrid( delegate: SliverChildBuilderDelegate( (context, index) { - return productCard( + return ProductCard( productBrand: productList[index].productBrand ?? "", productName: productList[index].productName ?? "", productImageUrl: diff --git a/lib/screens/mypage/mypage.dart b/lib/screens/mypage/mypage.dart index fac000b..b83a3eb 100644 --- a/lib/screens/mypage/mypage.dart +++ b/lib/screens/mypage/mypage.dart @@ -1,4 +1,6 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:saphy/widgets/app_bar.dart'; class MyPage extends StatefulWidget { @@ -11,12 +13,522 @@ class MyPage extends StatefulWidget { class _MyPageState extends State { @override Widget build(BuildContext context) { - return const Scaffold( - backgroundColor: Color(0xfff4f4f4), - appBar: TopAppBar(), - body: Center( - child: Text("My Page"), + return Scaffold( + backgroundColor: const Color(0xfff4f4f4), + appBar: AppBar( + backgroundColor: Colors.white, + title: Padding( + padding: const EdgeInsets.only(left: 20.0), + child: Image.asset( + "assets/images/SaphyLogoSmall.png", + height: 24, + ), + ), + centerTitle: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 20.0), + child: IconButton( + icon: const Icon(Icons.settings), + onPressed: () { + // 설정 페이지 이동 + + }, + ), + ), + ], ), + body: SingleChildScrollView( + physics: const BouncingScrollPhysics(), + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + const Text( + "Profile", + style: TextStyle( + fontSize: 30, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + ), + ), + Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, + ), + padding: const EdgeInsets.all(20.0), + child: Column( + children: [ + const Row( + children: [ + CircleAvatar( + radius: 40, + backgroundImage: NetworkImage( + "https://i.pinimg.com/564x/56/28/6f/56286feaa430d8d83dbe9382f8c10c8d.jpg", + ), + ), + SizedBox(width: 20), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "홍길동", + style: TextStyle( + fontSize: 20, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + ), + ), + Text( + "gildong9403", + style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.grey, + ), + ), + ], + ), + ], + ), + const SizedBox(height: 15), + InkWell( + onTap: (){ + + }, + child: Container( + padding: const EdgeInsets.only(top: 3, bottom: 3), + width: double.infinity, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("개인정보 수정", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.w500, + color: Colors.black, + )), + ), + ) + ], + ), + ), + const SizedBox(height: 20), + Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white, + ), + padding: const EdgeInsets.all(20.0), + child: Column( + children: [ + Column( + children: [ + Row( + children: [ + const Text("배송/수거 상태", style: TextStyle( + fontSize: 20, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + const Spacer(), + // 더보기 + InkWell( + onTap: (){ + + }, + child:Container( + padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), + ), + ) + ], + ), + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], + ), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + ], + ), + ) + ], + ), + const SizedBox(height: 20), + Column( + children: [ + Row( + children: [ + const Text("기기 판매 내역", style: TextStyle( + fontSize: 20, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + const Spacer(), + // 더보기 + InkWell( + onTap: (){ + + }, + child:Container( + padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), + ), + ) + ], + ), + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], + ), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + ], + ), + ) + ], + ), + const SizedBox(height: 10), + InkWell( + onTap: (){ + + }, + child: Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.black54, + ), + child: const Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Icon(Icons.post_add, color: Colors.white, size: 30), + SizedBox(width: 10), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("보관 신청하기", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.white, + fontWeight: FontWeight.bold, + )), + Text("한 번에 신청하고 한 번에 발송하세요.", style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.white, + )), + ], + ), + Spacer(), + Icon(Icons.arrow_forward_ios, color: Colors.white, size: 15), + ], + ), + ), + ), + const SizedBox(height: 20), + Column( + children: [ + Row( + children: [ + const Text("기기 구매 내역", style: TextStyle( + fontSize: 20, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + const Spacer(), + // 더보기 + InkWell( + onTap: (){ + + }, + child:Container( + padding: const EdgeInsets.only(top: 1, bottom: 1, left: 10, right: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: Colors.black38, + ), + ), + child: const Text("더보기", style: TextStyle( + fontSize: 10, + fontFamily: "Pretendard", + color: Colors.black, + )), + ), + ) + ], + ), + const SizedBox(height: 15), + Container( + width: double.infinity, + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.green.shade50, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("발송요청", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.green, + fontWeight: FontWeight.bold, + )), + ], + ), + Container( + width: 1, + height: 40, + color: Colors.black26, + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매대기", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("판매 중", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + const Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text("정산완료", style: TextStyle( + fontSize: 13, + fontFamily: "Pretendard", + fontWeight: FontWeight.bold, + )), + Text("0", style: TextStyle( + fontSize: 15, + fontFamily: "Pretendard", + color: Colors.black, + fontWeight: FontWeight.bold, + )), + ], + ), + ], + ), + ) + ], + ), + ], + ) + ) + ], + ), + ) ); } } \ No newline at end of file diff --git a/lib/screens/mypage/setting.dart b/lib/screens/mypage/setting.dart new file mode 100644 index 0000000..65350b6 --- /dev/null +++ b/lib/screens/mypage/setting.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class SettingPage extends StatefulWidget { + const SettingPage({super.key}); + + @override + State createState() => _SettingPageState(); +} + +class _SettingPageState extends State { + @override + Widget build(BuildContext context) { + return const Placeholder(); + } +} diff --git a/lib/utils/screen_controller.dart b/lib/utils/screen_controller.dart index 7293cef..c3bfca2 100644 --- a/lib/utils/screen_controller.dart +++ b/lib/utils/screen_controller.dart @@ -3,12 +3,13 @@ import 'package:saphy/widgets/bottom_nav_bar.dart'; import 'package:saphy/screens/main/main_screen.dart'; import 'package:saphy/screens/products/liked_list_page.dart'; import 'package:saphy/screens/search/search_screen.dart'; +import 'package:saphy/screens/mypage/mypage.dart'; -void main() { - // async { - // await dotenv.load(fileName: 'assets/config/.env'); - runApp(const ScreenController()); -} +// void main() { +// // async { +// // await dotenv.load(fileName: 'assets/config/.env'); +// runApp(const ScreenController()); +// } class ScreenController extends StatefulWidget { const ScreenController({super.key}); @@ -23,6 +24,7 @@ class ScreenControllerState extends State { const MainScreen(), const SearchScreen(), const LikedListPage(), + const MyPage(), ]; void _onItemTapped(int index) { diff --git a/lib/widgets/bottom_nav_bar.dart b/lib/widgets/bottom_nav_bar.dart index 517a7a0..24670ea 100644 --- a/lib/widgets/bottom_nav_bar.dart +++ b/lib/widgets/bottom_nav_bar.dart @@ -35,10 +35,10 @@ class BottomNavBar extends StatelessWidget { icon: Icon(Icons.favorite), label: "찜 목록", ), - // BottomNavigationBarItem( - // icon: Icon(Icons.person), - // label: "나의 사피", - // ), + BottomNavigationBarItem( + icon: Icon(Icons.person), + label: "나의 사피", + ), ], ); } diff --git a/lib/widgets/product_card.dart b/lib/widgets/product_card.dart index 495f7f8..91a23f8 100644 --- a/lib/widgets/product_card.dart +++ b/lib/widgets/product_card.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:intl/intl.dart'; -import 'package:saphy/screens/products/product_detail_page.dart'; +// import 'package:saphy/screens/products/product_detail_page.dart'; class ProductCard extends StatelessWidget { final String productBrand; @@ -22,17 +22,17 @@ class ProductCard extends StatelessWidget { final NumberFormat numberFormat = NumberFormat('###,###,###,###'); return InkWell( onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => ProductDetail( - productBrand: productBrand, - productName: productName, - productImageUrl: productImageUrl, - price: price, - ), - ), - ); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) => ProductDetail( + // productBrand: productBrand, + // productName: productName, + // productImageUrl: productImageUrl, + // price: price, + // ), + // ), + // ); }, child: Container( padding: const EdgeInsets.all(10), From dd26cb8b706f64e9899d7829aa270e39fc7e47d5 Mon Sep 17 00:00:00 2001 From: cho4u4o Date: Tue, 23 Jul 2024 15:28:52 +0900 Subject: [PATCH 16/54] =?UTF-8?q?SAPHY-118=20Feat=20:=20=EC=B0=9C=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=80=20UI=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84,=20=ED=8F=B0=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/fonts/Prompt-Black.ttf | Bin 0 -> 170136 bytes lib/screens/products/liked_list_page.dart | 7 +------ pubspec.yaml | 5 +++++ 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 assets/fonts/Prompt-Black.ttf diff --git a/assets/fonts/Prompt-Black.ttf b/assets/fonts/Prompt-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8dffa2d00c67a2bc7146913a48eae79d63d6f8bc GIT binary patch literal 170136 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