From 809cc44ca578ea1ee6c3725d7413e010e534a129 Mon Sep 17 00:00:00 2001 From: edwinQQQ Date: Mon, 13 Oct 2025 15:40:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=A8=A1=E5=9D=97=E5=8F=8A=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主要变更: 1. 新增 EPLoginViewController 和 EPLoginTypesViewController,提供新的登录界面和功能。 2. 引入 EPLoginInputView 和 EPLoginButton 组件,支持输入框和按钮的自定义。 3. 实现 EPLoginService 和 EPLoginManager,封装登录逻辑和 API 请求。 4. 添加 EPLoginConfig 和 EPLoginState,统一配置和状态管理。 5. 更新 Bridging Header,确保 Swift 和 Objective-C 代码的互操作性。 此更新旨在提升用户登录体验,简化登录流程,并提供更好的代码结构和可维护性。 --- .vscode/settings.json | 5 +- YuMi.xcodeproj/project.pbxproj | 2500 +++++++++-------- YuMi/Appdelegate/AppDelegate.m | 12 +- .../EPLoginTypesViewController.swift | 580 ++++ .../Controllers/EPLoginViewController.swift | 252 ++ YuMi/E-P/NewLogin/Models/EPLoginBridge.swift | 20 + YuMi/E-P/NewLogin/Models/EPLoginConfig.swift | 288 ++ YuMi/E-P/NewLogin/Models/EPLoginState.swift | 52 + .../NewLogin/Services/EPLoginManager.swift | 102 + .../NewLogin/Services/EPLoginService.swift | 277 ++ YuMi/E-P/NewLogin/Views/EPLoginButton.swift | 131 + .../E-P/NewLogin/Views/EPLoginInputView.swift | 302 ++ YuMi/E-P/NewLogin/Views/EPPolicyLabel.swift | 115 + YuMi/YuMi-Bridging-Header.h | 15 + 14 files changed, 3438 insertions(+), 1213 deletions(-) create mode 100644 YuMi/E-P/NewLogin/Controllers/EPLoginTypesViewController.swift create mode 100644 YuMi/E-P/NewLogin/Controllers/EPLoginViewController.swift create mode 100644 YuMi/E-P/NewLogin/Models/EPLoginBridge.swift create mode 100644 YuMi/E-P/NewLogin/Models/EPLoginConfig.swift create mode 100644 YuMi/E-P/NewLogin/Models/EPLoginState.swift create mode 100644 YuMi/E-P/NewLogin/Services/EPLoginManager.swift create mode 100644 YuMi/E-P/NewLogin/Services/EPLoginService.swift create mode 100644 YuMi/E-P/NewLogin/Views/EPLoginButton.swift create mode 100644 YuMi/E-P/NewLogin/Views/EPLoginInputView.swift create mode 100644 YuMi/E-P/NewLogin/Views/EPPolicyLabel.swift diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b66410..095834d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,6 @@ { - "git.ignoreLimitWarning": true + "git.ignoreLimitWarning": true, + "cSpell.words": [ + "eparti" + ] } \ No newline at end of file diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index a76e4d0..b36675c 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -50,23 +50,11 @@ 180116FC279E8CCE00F2CBC0 /* NVDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 180116FA279E8CCE00F2CBC0 /* NVDate.m */; }; 180806FB2729A354001FD836 /* ThemeColor+Room.m in Sources */ = {isa = PBXBuildFile; fileRef = 180806FA2729A354001FD836 /* ThemeColor+Room.m */; }; 1808072D2731598F001FD836 /* XPNetImageYYLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1808072C2731598F001FD836 /* XPNetImageYYLabel.m */; }; - 1808073027315E8E001FD836 /* NetImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1808072F27315E8E001FD836 /* NetImageView.m */; }; 181D7F1B2726CE2A00B7C059 /* StageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 181D7F1A2726CE2A00B7C059 /* StageView.m */; }; 181D7F212727D9DB00B7C059 /* SocialStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 181D7F202727D9DB00B7C059 /* SocialStageView.m */; }; 18486213271EA9DA005FC5DC /* RtcManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18486212271EA9DA005FC5DC /* RtcManager.m */; }; 18486217271EAB8C005FC5DC /* BaseRtcImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 18486216271EAB8C005FC5DC /* BaseRtcImpl.m */; }; 186A531926FC592100D67B2C /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 186A531826FC591100D67B2C /* libresolv.tbd */; }; - 186A534626FC6ED900D67B2C /* TTPopup.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A532C26FC6ED900D67B2C /* TTPopup.m */; }; - 186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A532E26FC6ED900D67B2C /* TTAlertConfig.m */; }; - 186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533326FC6ED900D67B2C /* TTAlertButtonConfig.m */; }; - 186A534926FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533426FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m */; }; - 186A534A26FC6ED900D67B2C /* TTActionSheetConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533526FC6ED900D67B2C /* TTActionSheetConfig.m */; }; - 186A534B26FC6ED900D67B2C /* TTPopupManagerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533926FC6ED900D67B2C /* TTPopupManagerService.m */; }; - 186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533C26FC6ED900D67B2C /* TTAlertView.m */; }; - 186A534D26FC6ED900D67B2C /* TTActionSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533F26FC6ED900D67B2C /* TTActionSheetView.m */; }; - 186A534E26FC6ED900D67B2C /* TTPopupService.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A534126FC6ED900D67B2C /* TTPopupService.m */; }; - 186A536926FC6F2E00D67B2C /* XPShareView.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A536126FC6F2E00D67B2C /* XPShareView.m */; }; - 186A536B26FC6F2E00D67B2C /* XPShareItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A536726FC6F2E00D67B2C /* XPShareItemCell.m */; }; 187EEEDC26E89B32002833B2 /* BaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEDB26E89B32002833B2 /* BaseModel.m */; }; 187EEEE126E89BFB002833B2 /* AccountModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEE026E89BFB002833B2 /* AccountModel.m */; }; 187EEEF026E89FE8002833B2 /* AccountInfoStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEEE26E89FE8002833B2 /* AccountInfoStorage.m */; }; @@ -78,8 +66,6 @@ 189DD55026DE37F900AB55B1 /* MvpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD54F26DE37F900AB55B1 /* MvpViewController.m */; }; 189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD55926DE39D200AB55B1 /* BaseMvpPresenter.m */; }; 189DD58F26DF97E700AB55B1 /* LoginPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD58E26DF97E700AB55B1 /* LoginPresenter.m */; }; - 189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */; }; - 189DD68426E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD68226E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m */; }; 189DD6FF26E20E5900AB55B1 /* HttpRequestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD6FE26E20E5900AB55B1 /* HttpRequestHelper.m */; }; 189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73826E21C3F00AB55B1 /* YYUtility+Device.m */; }; 189DD73E26E21C3F00AB55B1 /* YYUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73926E21C3F00AB55B1 /* YYUtility.m */; }; @@ -89,12 +75,10 @@ 189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD74E26E21D9000AB55B1 /* GCDHelper.m */; }; 189DD75926E6003C00AB55B1 /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD75826E6003C00AB55B1 /* Api.m */; }; 189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD76126E60DDC00AB55B1 /* Api+Login.m */; }; - 18A61BD7274F7F6900A09A54 /* NetImageConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BD6274F7F6900A09A54 /* NetImageConfig.m */; }; 18A61BE8274F9CF000A09A54 /* SessionListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BE7274F9CF000A09A54 /* SessionListViewController.m */; }; 18AAF3F0279EA59300CD7DAD /* MessageContentTextClickable.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AAF3EF279EA59300CD7DAD /* MessageContentTextClickable.m */; }; 18E7B1B226E8AF980064BC9B /* MainPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B126E8AF980064BC9B /* MainPresenter.m */; }; 18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B626E8B2D10064BC9B /* Api+Main.m */; }; - 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackManager.m */; }; 18E7B31826F097E00064BC9B /* UserInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31726F097E00064BC9B /* UserInfoModel.m */; }; 18E7B31B26F0982E0064BC9B /* UserExpand.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31A26F0982E0064BC9B /* UserExpand.m */; }; 18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31D26F0984C0064BC9B /* UserLevelVo.m */; }; @@ -236,16 +220,6 @@ 236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 236BA4972BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m */; }; 237700CF2BC697D500D661F1 /* pi_login_new_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 237700CE2BC697D400D661F1 /* pi_login_new_logo.png */; }; 237700D32BC7CC7C00D661F1 /* NSObject+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700D22BC7CC7C00D661F1 /* NSObject+MJExtension.m */; }; - 237700D72BC7D51400D661F1 /* UIButton+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700D62BC7D51400D661F1 /* UIButton+MSRTL.m */; }; - 237700DA2BC7D5EC00D661F1 /* UILabel+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700D92BC7D5EC00D661F1 /* UILabel+MSRTL.m */; }; - 237700DD2BC7D70E00D661F1 /* UIImage+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700DC2BC7D70E00D661F1 /* UIImage+MSRTL.m */; }; - 237700E02BC7D78600D661F1 /* MSBaseRTLFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700DF2BC7D78600D661F1 /* MSBaseRTLFlowLayout.m */; }; - 237700E32BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700E22BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.m */; }; - 237700E62BC7E81F00D661F1 /* UITextField+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700E52BC7E81F00D661F1 /* UITextField+MSRTL.m */; }; - 237700E92BC7E88E00D661F1 /* UITextView+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700E82BC7E88E00D661F1 /* UITextView+MSRTL.m */; }; - 237700EC2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700EB2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.m */; }; - 237700FA2BCCD25500D661F1 /* YYLabel+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700F92BCCD25500D661F1 /* YYLabel+MSRTL.m */; }; - 237700FD2BCD254000D661F1 /* MSBaseTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 237700FC2BCD254000D661F1 /* MSBaseTextField.m */; }; 237701082BCF73CE00D661F1 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 237701072BCF73CE00D661F1 /* Security.framework */; }; 2377010A2BCF73DD00D661F1 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 237701092BCF73DD00D661F1 /* libiconv.tbd */; }; 2377010C2BCF73EA00D661F1 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2377010B2BCF73EA00D661F1 /* SystemConfiguration.framework */; }; @@ -376,7 +350,6 @@ 23E9EA942A84BE4800B792F2 /* XPGiftUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA922A84BE4800B792F2 /* XPGiftUserDataViewController.m */; }; 23E9EA9A2A84C39700B792F2 /* XPMineUserInfoRecordedSoundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA992A84C39700B792F2 /* XPMineUserInfoRecordedSoundView.m */; }; 23E9EA9E2A84C42B00B792F2 /* SGYProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA9D2A84C42B00B792F2 /* SGYProgressView.m */; }; - 23E9EAA12A84C53900B792F2 /* TTNewAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EA9F2A84C53800B792F2 /* TTNewAlertView.m */; }; 23E9EAA32A84C80300B792F2 /* pi_new_loading.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23E9EAA22A84C80300B792F2 /* pi_new_loading.svga */; }; 23E9EAA62A84C97C00B792F2 /* XPMineUserInfoTagVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EAA52A84C97C00B792F2 /* XPMineUserInfoTagVC.m */; }; 23E9EAAD2A84C9B800B792F2 /* XPMineUserInfoTagItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E9EAA82A84C9B700B792F2 /* XPMineUserInfoTagItemView.m */; }; @@ -443,7 +416,6 @@ 4C1119722DD7218300C18416 /* MyEventsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1119712DD7218300C18416 /* MyEventsViewController.m */; }; 4C1392932D6D963700A6DFB5 /* SubRechargersViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1392922D6D963600A6DFB5 /* SubRechargersViewController.m */; }; 4C1392962D6DA22B00A6DFB5 /* RechargerTransferHistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1392952D6DA22B00A6DFB5 /* RechargerTransferHistoryViewController.m */; }; - 4C1392992D6DB4CD00A6DFB5 /* MoliMoneyLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1392982D6DB4CD00A6DFB5 /* MoliMoneyLabel.m */; }; 4C13929D2D70441500A6DFB5 /* giftgift.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 4C13929B2D70441500A6DFB5 /* giftgift.mp4 */; }; 4C1392A12D71675900A6DFB5 /* coincoin.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 4C1392A02D71675900A6DFB5 /* coincoin.mp4 */; }; 4C1892992CF84349004D4426 /* RoomCahtCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C1892982CF84349004D4426 /* RoomCahtCell.m */; }; @@ -475,7 +447,6 @@ 4C5C37232D0C1C7900BA9AB8 /* RegionListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C5C37222D0C1C7900BA9AB8 /* RegionListViewController.m */; }; 4C6C92C02D1172D9000A4693 /* RegionListInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6C92BF2D1172D9000A4693 /* RegionListInfo.m */; }; 4C6E1F752CEAEC3C0073D0A3 /* ShoppingMallTagView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E1F742CEAEC3C0073D0A3 /* ShoppingMallTagView.m */; }; - 4C6E1F792CEB12780073D0A3 /* UIView+GradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E1F782CEB12780073D0A3 /* UIView+GradientLayer.m */; }; 4C6E1F7C2CEB25B10073D0A3 /* ShoppingMallItemPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E1F7B2CEB25B10073D0A3 /* ShoppingMallItemPreview.m */; }; 4C6E31EC2D35010F00D8EEDD /* RoomAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E31EB2D35010F00D8EEDD /* RoomAnimationView.m */; }; 4C6E31EE2D363CA800D8EEDD /* addMoveAnimationToView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C6E31ED2D363CA800D8EEDD /* addMoveAnimationToView.m */; }; @@ -491,7 +462,6 @@ 4C75CEFB2D6318FF009147A5 /* RoomEnterModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CEFA2D6318FF009147A5 /* RoomEnterModel.m */; }; 4C75CEFE2D632CD5009147A5 /* CPEnterRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C75CEFD2D632CD5009147A5 /* CPEnterRoomTableViewCell.m */; }; 4C75CF002D633C27009147A5 /* CP进场.svga in Resources */ = {isa = PBXBuildFile; fileRef = 4C75CEFF2D633C27009147A5 /* CP进场.svga */; }; - 4C7989EC2D19392E006AE07B /* EmptyDataView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7989EB2D19392E006AE07B /* EmptyDataView.m */; }; 4C7989EF2D195277006AE07B /* RoomModeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7989EE2D195277006AE07B /* RoomModeViewController.m */; }; 4C7989F32D1952DA006AE07B /* RoomModePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7989F22D1952DA006AE07B /* RoomModePresenter.m */; }; 4C7F2A672E0BE0AB002F5058 /* FirstRechargeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C7F2A662E0BE0AB002F5058 /* FirstRechargeModel.m */; }; @@ -551,6 +521,242 @@ 4CD15D912D7E902800D9279F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD15D902D7E902800D9279F /* LoginViewController.m */; }; 4CD15D922D7EC2AC00D9279F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23E56B3B2B03564B00C8DAC9 /* CoreTelephony.framework */; }; 4CD15D952D7FE9E400D9279F /* LoginTypesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD15D942D7FE9E400D9279F /* LoginTypesViewController.m */; }; + 4CD19C872E9CB31C0069DAA0 /* EPLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C7E2E9CB31C0069DAA0 /* EPLoginViewController.swift */; }; + 4CD19C882E9CB31C0069DAA0 /* EPLoginState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C802E9CB31C0069DAA0 /* EPLoginState.swift */; }; + 4CD19C892E9CB31C0069DAA0 /* EPLoginTypesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C7D2E9CB31C0069DAA0 /* EPLoginTypesViewController.swift */; }; + 4CD19C8A2E9CB31C0069DAA0 /* EPPolicyLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C832E9CB31C0069DAA0 /* EPPolicyLabel.swift */; }; + 4CD19C8E2E9CBBC80069DAA0 /* EPLoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C8C2E9CBBC80069DAA0 /* EPLoginService.swift */; }; + 4CD19C8F2E9CBBC80069DAA0 /* EPLoginManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C8B2E9CBBC80069DAA0 /* EPLoginManager.swift */; }; + 4CD19C912E9CBBD30069DAA0 /* EPLoginBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C902E9CBBD30069DAA0 /* EPLoginBridge.swift */; }; + 4CD19C932E9CCF2C0069DAA0 /* EPLoginConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C922E9CCF2C0069DAA0 /* EPLoginConfig.swift */; }; + 4CD19DCA2E9CDF980069DAA0 /* emoji_124@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1A2E9CDF980069DAA0 /* emoji_124@2x.png */; }; + 4CD19DCB2E9CDF980069DAA0 /* emoji_36@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC22E9CDF980069DAA0 /* emoji_36@2x.png */; }; + 4CD19DCC2E9CDF980069DAA0 /* emoji_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE92E9CDF980069DAA0 /* emoji_75@2x.png */; }; + 4CD19DCD2E9CDF980069DAA0 /* emoji_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD72E9CDF980069DAA0 /* emoji_57@2x.png */; }; + 4CD19DCE2E9CDF980069DAA0 /* emoji_164@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3B2E9CDF980069DAA0 /* emoji_164@2x.png */; }; + 4CD19DCF2E9CDF980069DAA0 /* emoji_04@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA22E9CDF980069DAA0 /* emoji_04@2x.png */; }; + 4CD19DD02E9CDF980069DAA0 /* emoji_84@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF22E9CDF980069DAA0 /* emoji_84@2x.png */; }; + 4CD19DD12E9CDF980069DAA0 /* emoji_58@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD82E9CDF980069DAA0 /* emoji_58@2x.png */; }; + 4CD19DD22E9CDF980069DAA0 /* emoji_41@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC72E9CDF980069DAA0 /* emoji_41@2x.png */; }; + 4CD19DD32E9CDF980069DAA0 /* emoj_s_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19C9B2E9CDF980069DAA0 /* emoj_s_normal@2x.png */; }; + 4CD19DD42E9CDF980069DAA0 /* emoji_60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDA2E9CDF980069DAA0 /* emoji_60@2x.png */; }; + 4CD19DD52E9CDF980069DAA0 /* emoji_117@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D132E9CDF980069DAA0 /* emoji_117@2x.png */; }; + 4CD19DD62E9CDF980069DAA0 /* emoji_48@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCE2E9CDF980069DAA0 /* emoji_48@2x.png */; }; + 4CD19DD72E9CDF980069DAA0 /* emoji_92@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFA2E9CDF980069DAA0 /* emoji_92@2x.png */; }; + 4CD19DD82E9CDF980069DAA0 /* emoji_104@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D062E9CDF980069DAA0 /* emoji_104@2x.png */; }; + 4CD19DD92E9CDF980069DAA0 /* emoji_53@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD32E9CDF980069DAA0 /* emoji_53@2x.png */; }; + 4CD19DDA2E9CDF980069DAA0 /* emoji_26@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB82E9CDF980069DAA0 /* emoji_26@2x.png */; }; + 4CD19DDB2E9CDF980069DAA0 /* emoji_103@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D052E9CDF980069DAA0 /* emoji_103@2x.png */; }; + 4CD19DDC2E9CDF980069DAA0 /* emoji_90@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF82E9CDF980069DAA0 /* emoji_90@2x.png */; }; + 4CD19DDD2E9CDF980069DAA0 /* emoji_37@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC32E9CDF980069DAA0 /* emoji_37@2x.png */; }; + 4CD19DDE2E9CDF980069DAA0 /* emoji_132@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D222E9CDF980069DAA0 /* emoji_132@2x.png */; }; + 4CD19DDF2E9CDF980069DAA0 /* emoji_67@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE12E9CDF980069DAA0 /* emoji_67@2x.png */; }; + 4CD19DE02E9CDF980069DAA0 /* emoji_42@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC82E9CDF980069DAA0 /* emoji_42@2x.png */; }; + 4CD19DE12E9CDF980069DAA0 /* emoji_99@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D012E9CDF980069DAA0 /* emoji_99@2x.png */; }; + 4CD19DE22E9CDF980069DAA0 /* emoji_165@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3C2E9CDF980069DAA0 /* emoji_165@2x.png */; }; + 4CD19DE32E9CDF980069DAA0 /* emoji_46@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCC2E9CDF980069DAA0 /* emoji_46@2x.png */; }; + 4CD19DE42E9CDF980069DAA0 /* emoji.xml in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19C9D2E9CDF980069DAA0 /* emoji.xml */; }; + 4CD19DE52E9CDF980069DAA0 /* emoji_52@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD22E9CDF980069DAA0 /* emoji_52@2x.png */; }; + 4CD19DE62E9CDF980069DAA0 /* emoji_59@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD92E9CDF980069DAA0 /* emoji_59@2x.png */; }; + 4CD19DE72E9CDF980069DAA0 /* emoji_25@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB72E9CDF980069DAA0 /* emoji_25@2x.png */; }; + 4CD19DE82E9CDF980069DAA0 /* emoji_152@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D362E9CDF980069DAA0 /* emoji_152@2x.png */; }; + 4CD19DE92E9CDF980069DAA0 /* emoji_163@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3A2E9CDF980069DAA0 /* emoji_163@2x.png */; }; + 4CD19DEA2E9CDF980069DAA0 /* emoji_146@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D302E9CDF980069DAA0 /* emoji_146@2x.png */; }; + 4CD19DEB2E9CDF980069DAA0 /* emoji_134@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D242E9CDF980069DAA0 /* emoji_134@2x.png */; }; + 4CD19DEC2E9CDF980069DAA0 /* emoji_19@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB12E9CDF980069DAA0 /* emoji_19@2x.png */; }; + 4CD19DED2E9CDF980069DAA0 /* emoji_del_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D402E9CDF980069DAA0 /* emoji_del_pressed@2x.png */; }; + 4CD19DEE2E9CDF980069DAA0 /* emoji.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D602E9CDF980069DAA0 /* emoji.plist */; }; + 4CD19DEF2E9CDF980069DAA0 /* emoji_109@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0B2E9CDF980069DAA0 /* emoji_109@2x.png */; }; + 4CD19DF02E9CDF980069DAA0 /* emoji_44@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCA2E9CDF980069DAA0 /* emoji_44@2x.png */; }; + 4CD19DF12E9CDF980069DAA0 /* emoji_123@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D192E9CDF980069DAA0 /* emoji_123@2x.png */; }; + 4CD19DF22E9CDF980069DAA0 /* emoji_122@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D182E9CDF980069DAA0 /* emoji_122@2x.png */; }; + 4CD19DF32E9CDF980069DAA0 /* emoji_64@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDE2E9CDF980069DAA0 /* emoji_64@2x.png */; }; + 4CD19DF42E9CDF980069DAA0 /* emoji_01@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19C9F2E9CDF980069DAA0 /* emoji_01@2x.png */; }; + 4CD19DF52E9CDF980069DAA0 /* emoji_94@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFC2E9CDF980069DAA0 /* emoji_94@2x.png */; }; + 4CD19DF62E9CDF980069DAA0 /* emoji_135@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D252E9CDF980069DAA0 /* emoji_135@2x.png */; }; + 4CD19DF72E9CDF980069DAA0 /* emoji_23@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB52E9CDF980069DAA0 /* emoji_23@2x.png */; }; + 4CD19DF82E9CDF980069DAA0 /* emoji_66@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE02E9CDF980069DAA0 /* emoji_66@2x.png */; }; + 4CD19DF92E9CDF980069DAA0 /* emoji_55@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD52E9CDF980069DAA0 /* emoji_55@2x.png */; }; + 4CD19DFA2E9CDF980069DAA0 /* emoji_13@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAB2E9CDF980069DAA0 /* emoji_13@2x.png */; }; + 4CD19DFB2E9CDF980069DAA0 /* emoji_00@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19C9E2E9CDF980069DAA0 /* emoji_00@2x.png */; }; + 4CD19DFC2E9CDF980069DAA0 /* emoji_12@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAA2E9CDF980069DAA0 /* emoji_12@2x.png */; }; + 4CD19DFD2E9CDF980069DAA0 /* emoji_71@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE52E9CDF980069DAA0 /* emoji_71@2x.png */; }; + 4CD19DFE2E9CDF980069DAA0 /* emoji_144@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2E2E9CDF980069DAA0 /* emoji_144@2x.png */; }; + 4CD19DFF2E9CDF980069DAA0 /* emoji_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE62E9CDF980069DAA0 /* emoji_72@2x.png */; }; + 4CD19E002E9CDF980069DAA0 /* emoji_136@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D262E9CDF980069DAA0 /* emoji_136@2x.png */; }; + 4CD19E012E9CDF980069DAA0 /* emoji_127@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1D2E9CDF980069DAA0 /* emoji_127@2x.png */; }; + 4CD19E022E9CDF980069DAA0 /* emoji_33@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBF2E9CDF980069DAA0 /* emoji_33@2x.png */; }; + 4CD19E032E9CDF980069DAA0 /* emoji_120@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D162E9CDF980069DAA0 /* emoji_120@2x.png */; }; + 4CD19E042E9CDF980069DAA0 /* emoji_17@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAF2E9CDF980069DAA0 /* emoji_17@2x.png */; }; + 4CD19E052E9CDF980069DAA0 /* emoji_07@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA52E9CDF980069DAA0 /* emoji_07@2x.png */; }; + 4CD19E062E9CDF980069DAA0 /* emoji_149@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D332E9CDF980069DAA0 /* emoji_149@2x.png */; }; + 4CD19E072E9CDF980069DAA0 /* emoji_49@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCF2E9CDF980069DAA0 /* emoji_49@2x.png */; }; + 4CD19E082E9CDF980069DAA0 /* emoji_133@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D232E9CDF980069DAA0 /* emoji_133@2x.png */; }; + 4CD19E092E9CDF980069DAA0 /* emoji_91@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF92E9CDF980069DAA0 /* emoji_91@2x.png */; }; + 4CD19E0A2E9CDF980069DAA0 /* emoji_148@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D322E9CDF980069DAA0 /* emoji_148@2x.png */; }; + 4CD19E0B2E9CDF980069DAA0 /* emoji_93@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFB2E9CDF980069DAA0 /* emoji_93@2x.png */; }; + 4CD19E0C2E9CDF980069DAA0 /* emoji_162@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D392E9CDF980069DAA0 /* emoji_162@2x.png */; }; + 4CD19E0D2E9CDF980069DAA0 /* emoji_100@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D022E9CDF980069DAA0 /* emoji_100@2x.png */; }; + 4CD19E0E2E9CDF980069DAA0 /* emoji_115@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D112E9CDF980069DAA0 /* emoji_115@2x.png */; }; + 4CD19E0F2E9CDF980069DAA0 /* emoji_05@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA32E9CDF980069DAA0 /* emoji_05@2x.png */; }; + 4CD19E102E9CDF980069DAA0 /* emoji_11@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA92E9CDF980069DAA0 /* emoji_11@2x.png */; }; + 4CD19E112E9CDF980069DAA0 /* emoji_81@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CEF2E9CDF980069DAA0 /* emoji_81@2x.png */; }; + 4CD19E122E9CDF980069DAA0 /* emoji_38@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC42E9CDF980069DAA0 /* emoji_38@2x.png */; }; + 4CD19E132E9CDF980069DAA0 /* emoji_31@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBD2E9CDF980069DAA0 /* emoji_31@2x.png */; }; + 4CD19E142E9CDF980069DAA0 /* emoji_35@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC12E9CDF980069DAA0 /* emoji_35@2x.png */; }; + 4CD19E152E9CDF980069DAA0 /* emoji_126@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1C2E9CDF980069DAA0 /* emoji_126@2x.png */; }; + 4CD19E162E9CDF980069DAA0 /* emoji_32@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBE2E9CDF980069DAA0 /* emoji_32@2x.png */; }; + 4CD19E172E9CDF980069DAA0 /* emoji_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC62E9CDF980069DAA0 /* emoji_40@2x.png */; }; + 4CD19E182E9CDF980069DAA0 /* emoji_45@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCB2E9CDF980069DAA0 /* emoji_45@2x.png */; }; + 4CD19E192E9CDF980069DAA0 /* emoji_200@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3E2E9CDF980069DAA0 /* emoji_200@2x.png */; }; + 4CD19E1A2E9CDF980069DAA0 /* emoji_143@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2D2E9CDF980069DAA0 /* emoji_143@2x.png */; }; + 4CD19E1B2E9CDF980069DAA0 /* emoji_39@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC52E9CDF980069DAA0 /* emoji_39@2x.png */; }; + 4CD19E1C2E9CDF980069DAA0 /* emoji_111@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0D2E9CDF980069DAA0 /* emoji_111@2x.png */; }; + 4CD19E1D2E9CDF980069DAA0 /* emoji_151@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D352E9CDF980069DAA0 /* emoji_151@2x.png */; }; + 4CD19E1E2E9CDF980069DAA0 /* emoji_119@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D152E9CDF980069DAA0 /* emoji_119@2x.png */; }; + 4CD19E1F2E9CDF980069DAA0 /* emoji_101@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D032E9CDF980069DAA0 /* emoji_101@2x.png */; }; + 4CD19E202E9CDF980069DAA0 /* emoji_83@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF12E9CDF980069DAA0 /* emoji_83@2x.png */; }; + 4CD19E212E9CDF980069DAA0 /* emoji_24@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB62E9CDF980069DAA0 /* emoji_24@2x.png */; }; + 4CD19E222E9CDF980069DAA0 /* emoji_110@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0C2E9CDF980069DAA0 /* emoji_110@2x.png */; }; + 4CD19E232E9CDF980069DAA0 /* emoji_02@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA02E9CDF980069DAA0 /* emoji_02@2x.png */; }; + 4CD19E242E9CDF980069DAA0 /* emoji_61@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDB2E9CDF980069DAA0 /* emoji_61@2x.png */; }; + 4CD19E252E9CDF980069DAA0 /* emoji_06@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA42E9CDF980069DAA0 /* emoji_06@2x.png */; }; + 4CD19E262E9CDF980069DAA0 /* emoji_97@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFF2E9CDF980069DAA0 /* emoji_97@2x.png */; }; + 4CD19E272E9CDF980069DAA0 /* emoji_88@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF62E9CDF980069DAA0 /* emoji_88@2x.png */; }; + 4CD19E282E9CDF980069DAA0 /* emoji_128@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1E2E9CDF980069DAA0 /* emoji_128@2x.png */; }; + 4CD19E292E9CDF980069DAA0 /* emoji_166@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3D2E9CDF980069DAA0 /* emoji_166@2x.png */; }; + 4CD19E2A2E9CDF980069DAA0 /* emoji_50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD02E9CDF980069DAA0 /* emoji_50@2x.png */; }; + 4CD19E2B2E9CDF980069DAA0 /* emoji_20@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB22E9CDF980069DAA0 /* emoji_20@2x.png */; }; + 4CD19E2C2E9CDF980069DAA0 /* emoji_96@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFE2E9CDF980069DAA0 /* emoji_96@2x.png */; }; + 4CD19E2D2E9CDF980069DAA0 /* emoji_54@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD42E9CDF980069DAA0 /* emoji_54@2x.png */; }; + 4CD19E2E2E9CDF980069DAA0 /* emoji_140@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2A2E9CDF980069DAA0 /* emoji_140@2x.png */; }; + 4CD19E2F2E9CDF980069DAA0 /* emoji_62@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDC2E9CDF980069DAA0 /* emoji_62@2x.png */; }; + 4CD19E302E9CDF980069DAA0 /* emoji_86@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF42E9CDF980069DAA0 /* emoji_86@2x.png */; }; + 4CD19E312E9CDF980069DAA0 /* emoj_s_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19C9C2E9CDF980069DAA0 /* emoj_s_pressed@2x.png */; }; + 4CD19E322E9CDF980069DAA0 /* emoji_130@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D202E9CDF980069DAA0 /* emoji_130@2x.png */; }; + 4CD19E332E9CDF980069DAA0 /* emoji_141@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2B2E9CDF980069DAA0 /* emoji_141@2x.png */; }; + 4CD19E342E9CDF980069DAA0 /* emoji_106@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D082E9CDF980069DAA0 /* emoji_106@2x.png */; }; + 4CD19E352E9CDF980069DAA0 /* emoji_85@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF32E9CDF980069DAA0 /* emoji_85@2x.png */; }; + 4CD19E362E9CDF980069DAA0 /* emoji_98@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D002E9CDF980069DAA0 /* emoji_98@2x.png */; }; + 4CD19E372E9CDF980069DAA0 /* emoji_69@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE32E9CDF980069DAA0 /* emoji_69@2x.png */; }; + 4CD19E382E9CDF980069DAA0 /* emoji_107@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D092E9CDF980069DAA0 /* emoji_107@2x.png */; }; + 4CD19E392E9CDF980069DAA0 /* emoji_95@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CFD2E9CDF980069DAA0 /* emoji_95@2x.png */; }; + 4CD19E3A2E9CDF980069DAA0 /* emoji_del_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D3F2E9CDF980069DAA0 /* emoji_del_normal@2x.png */; }; + 4CD19E3B2E9CDF980069DAA0 /* emoji_09@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA72E9CDF980069DAA0 /* emoji_09@2x.png */; }; + 4CD19E3C2E9CDF980069DAA0 /* emoji_08@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA62E9CDF980069DAA0 /* emoji_08@2x.png */; }; + 4CD19E3D2E9CDF980069DAA0 /* emoji_121@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D172E9CDF980069DAA0 /* emoji_121@2x.png */; }; + 4CD19E3E2E9CDF980069DAA0 /* emoji_113@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0F2E9CDF980069DAA0 /* emoji_113@2x.png */; }; + 4CD19E3F2E9CDF980069DAA0 /* emoji_15@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAD2E9CDF980069DAA0 /* emoji_15@2x.png */; }; + 4CD19E402E9CDF980069DAA0 /* emoji_29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBB2E9CDF980069DAA0 /* emoji_29@2x.png */; }; + 4CD19E412E9CDF980069DAA0 /* emoji_73@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE72E9CDF980069DAA0 /* emoji_73@2x.png */; }; + 4CD19E422E9CDF980069DAA0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D5F2E9CDF980069DAA0 /* Assets.xcassets */; }; + 4CD19E432E9CDF980069DAA0 /* emoji_51@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD12E9CDF980069DAA0 /* emoji_51@2x.png */; }; + 4CD19E442E9CDF980069DAA0 /* emoji_137@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D272E9CDF980069DAA0 /* emoji_137@2x.png */; }; + 4CD19E452E9CDF980069DAA0 /* emoji_78@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CEC2E9CDF980069DAA0 /* emoji_78@2x.png */; }; + 4CD19E462E9CDF980069DAA0 /* emoji_74@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE82E9CDF980069DAA0 /* emoji_74@2x.png */; }; + 4CD19E472E9CDF980069DAA0 /* emoji_68@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE22E9CDF980069DAA0 /* emoji_68@2x.png */; }; + 4CD19E482E9CDF980069DAA0 /* emoji_112@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0E2E9CDF980069DAA0 /* emoji_112@2x.png */; }; + 4CD19E492E9CDF980069DAA0 /* emoji_129@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1F2E9CDF980069DAA0 /* emoji_129@2x.png */; }; + 4CD19E4A2E9CDF980069DAA0 /* emoji_18@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB02E9CDF980069DAA0 /* emoji_18@2x.png */; }; + 4CD19E4B2E9CDF980069DAA0 /* emoji_150@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D342E9CDF980069DAA0 /* emoji_150@2x.png */; }; + 4CD19E4C2E9CDF980069DAA0 /* emoji_125@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D1B2E9CDF980069DAA0 /* emoji_125@2x.png */; }; + 4CD19E4D2E9CDF980069DAA0 /* emoji_160@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D372E9CDF980069DAA0 /* emoji_160@2x.png */; }; + 4CD19E4E2E9CDF980069DAA0 /* emoji_105@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D072E9CDF980069DAA0 /* emoji_105@2x.png */; }; + 4CD19E4F2E9CDF980069DAA0 /* emoji_131@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D212E9CDF980069DAA0 /* emoji_131@2x.png */; }; + 4CD19E502E9CDF980069DAA0 /* emoji_76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CEA2E9CDF980069DAA0 /* emoji_76@2x.png */; }; + 4CD19E512E9CDF980069DAA0 /* emoji_79@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CED2E9CDF980069DAA0 /* emoji_79@2x.png */; }; + 4CD19E522E9CDF980069DAA0 /* emoji_16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAE2E9CDF980069DAA0 /* emoji_16@2x.png */; }; + 4CD19E532E9CDF980069DAA0 /* emoji_22@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB42E9CDF980069DAA0 /* emoji_22@2x.png */; }; + 4CD19E542E9CDF980069DAA0 /* emoji_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBC2E9CDF980069DAA0 /* emoji_30@2x.png */; }; + 4CD19E552E9CDF980069DAA0 /* emoji_142@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2C2E9CDF980069DAA0 /* emoji_142@2x.png */; }; + 4CD19E562E9CDF980069DAA0 /* emoji_27@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB92E9CDF980069DAA0 /* emoji_27@2x.png */; }; + 4CD19E572E9CDF980069DAA0 /* emoji_145@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D2F2E9CDF980069DAA0 /* emoji_145@2x.png */; }; + 4CD19E582E9CDF980069DAA0 /* emoji_70@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CE42E9CDF980069DAA0 /* emoji_70@2x.png */; }; + 4CD19E592E9CDF980069DAA0 /* emoji_139@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D292E9CDF980069DAA0 /* emoji_139@2x.png */; }; + 4CD19E5A2E9CDF980069DAA0 /* emoji_63@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDD2E9CDF980069DAA0 /* emoji_63@2x.png */; }; + 4CD19E5B2E9CDF980069DAA0 /* emoji_80@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CEE2E9CDF980069DAA0 /* emoji_80@2x.png */; }; + 4CD19E5C2E9CDF980069DAA0 /* emoji_65@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CDF2E9CDF980069DAA0 /* emoji_65@2x.png */; }; + 4CD19E5D2E9CDF980069DAA0 /* emoji_87@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF52E9CDF980069DAA0 /* emoji_87@2x.png */; }; + 4CD19E5E2E9CDF980069DAA0 /* emoji_108@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D0A2E9CDF980069DAA0 /* emoji_108@2x.png */; }; + 4CD19E5F2E9CDF980069DAA0 /* emoji_03@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA12E9CDF980069DAA0 /* emoji_03@2x.png */; }; + 4CD19E602E9CDF980069DAA0 /* emoji_102@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D042E9CDF980069DAA0 /* emoji_102@2x.png */; }; + 4CD19E612E9CDF980069DAA0 /* emoji_28@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CBA2E9CDF980069DAA0 /* emoji_28@2x.png */; }; + 4CD19E622E9CDF980069DAA0 /* emoji_56@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CD62E9CDF980069DAA0 /* emoji_56@2x.png */; }; + 4CD19E632E9CDF980069DAA0 /* emoji_89@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF72E9CDF980069DAA0 /* emoji_89@2x.png */; }; + 4CD19E642E9CDF980069DAA0 /* emoji_14@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CAC2E9CDF980069DAA0 /* emoji_14@2x.png */; }; + 4CD19E652E9CDF980069DAA0 /* emoji_82@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CF02E9CDF980069DAA0 /* emoji_82@2x.png */; }; + 4CD19E662E9CDF980069DAA0 /* emoji_47@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CCD2E9CDF980069DAA0 /* emoji_47@2x.png */; }; + 4CD19E672E9CDF980069DAA0 /* emoji_138@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D282E9CDF980069DAA0 /* emoji_138@2x.png */; }; + 4CD19E682E9CDF980069DAA0 /* emoji_34@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC02E9CDF980069DAA0 /* emoji_34@2x.png */; }; + 4CD19E692E9CDF980069DAA0 /* emoji_116@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D122E9CDF980069DAA0 /* emoji_116@2x.png */; }; + 4CD19E6A2E9CDF980069DAA0 /* emoji_43@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CC92E9CDF980069DAA0 /* emoji_43@2x.png */; }; + 4CD19E6B2E9CDF980069DAA0 /* emoji_147@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D312E9CDF980069DAA0 /* emoji_147@2x.png */; }; + 4CD19E6C2E9CDF980069DAA0 /* emoji_10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CA82E9CDF980069DAA0 /* emoji_10@2x.png */; }; + 4CD19E6D2E9CDF980069DAA0 /* emoji_77@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CEB2E9CDF980069DAA0 /* emoji_77@2x.png */; }; + 4CD19E6E2E9CDF980069DAA0 /* emoji_114@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D102E9CDF980069DAA0 /* emoji_114@2x.png */; }; + 4CD19E6F2E9CDF980069DAA0 /* emoji_161@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D382E9CDF980069DAA0 /* emoji_161@2x.png */; }; + 4CD19E702E9CDF980069DAA0 /* emoji_118@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19D142E9CDF980069DAA0 /* emoji_118@2x.png */; }; + 4CD19E712E9CDF980069DAA0 /* emoji_21@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4CD19CB32E9CDF980069DAA0 /* emoji_21@2x.png */; }; + 4CD19E722E9CDF980069DAA0 /* UIButton+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D692E9CDF980069DAA0 /* UIButton+MSRTL.m */; }; + 4CD19E732E9CDF980069DAA0 /* XPShareItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D7A2E9CDF980069DAA0 /* XPShareItem.m */; }; + 4CD19E742E9CDF980069DAA0 /* TTNewAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DA02E9CDF980069DAA0 /* TTNewAlertView.m */; }; + 4CD19E752E9CDF980069DAA0 /* QPhotoImageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D5B2E9CDF980069DAA0 /* QPhotoImageModel.m */; }; + 4CD19E762E9CDF980069DAA0 /* XPShareInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D782E9CDF980069DAA0 /* XPShareInfoModel.m */; }; + 4CD19E772E9CDF980069DAA0 /* UITextView+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D732E9CDF980069DAA0 /* UITextView+MSRTL.m */; }; + 4CD19E782E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D672E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.m */; }; + 4CD19E792E9CDF980069DAA0 /* XPShareItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D7D2E9CDF980069DAA0 /* XPShareItemCell.m */; }; + 4CD19E7A2E9CDF980069DAA0 /* SexAgeLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DC42E9CDF980069DAA0 /* SexAgeLabel.m */; }; + 4CD19E7B2E9CDF980069DAA0 /* QKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D592E9CDF980069DAA0 /* QKeyboardManager.m */; }; + 4CD19E7C2E9CDF980069DAA0 /* TTPopupService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D982E9CDF980069DAA0 /* TTPopupService.m */; }; + 4CD19E7D2E9CDF980069DAA0 /* QInputPhototCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D532E9CDF980069DAA0 /* QInputPhototCell.m */; }; + 4CD19E7E2E9CDF980069DAA0 /* XNDJTDDLoadingTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DC82E9CDF980069DAA0 /* XNDJTDDLoadingTool.m */; }; + 4CD19E7F2E9CDF980069DAA0 /* QEmotionBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D492E9CDF980069DAA0 /* QEmotionBoardView.m */; }; + 4CD19E802E9CDF980069DAA0 /* TTPopup.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DA32E9CDF980069DAA0 /* TTPopup.m */; }; + 4CD19E812E9CDF980069DAA0 /* UIView+GradientLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DB62E9CDF980069DAA0 /* UIView+GradientLayer.m */; }; + 4CD19E822E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D8F2E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.m */; }; + 4CD19E832E9CDF980069DAA0 /* QKeyboardBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D572E9CDF980069DAA0 /* QKeyboardBaseManager.m */; }; + 4CD19E842E9CDF980069DAA0 /* XPAdvertiseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C992E9CDF980069DAA0 /* XPAdvertiseView.m */; }; + 4CD19E852E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D6F2E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.m */; }; + 4CD19E862E9CDF980069DAA0 /* TTAlertButtonConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D8B2E9CDF980069DAA0 /* TTAlertButtonConfig.m */; }; + 4CD19E872E9CDF980069DAA0 /* QInputBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D4F2E9CDF980069DAA0 /* QInputBarView.m */; }; + 4CD19E882E9CDF980069DAA0 /* UIView+Corner.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DB32E9CDF980069DAA0 /* UIView+Corner.m */; }; + 4CD19E892E9CDF980069DAA0 /* QEEmotionImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D432E9CDF980069DAA0 /* QEEmotionImageView.m */; }; + 4CD19E8A2E9CDF980069DAA0 /* TTActionSheetConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D892E9CDF980069DAA0 /* TTActionSheetConfig.m */; }; + 4CD19E8B2E9CDF980069DAA0 /* QExtendBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D4D2E9CDF980069DAA0 /* QExtendBoardView.m */; }; + 4CD19E8C2E9CDF980069DAA0 /* QInputBarViewConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D512E9CDF980069DAA0 /* QInputBarViewConfiguration.m */; }; + 4CD19E8D2E9CDF980069DAA0 /* NetImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DAE2E9CDF980069DAA0 /* NetImageView.m */; }; + 4CD19E8E2E9CDF980069DAA0 /* TTActionSheetView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D9C2E9CDF980069DAA0 /* TTActionSheetView.m */; }; + 4CD19E8F2E9CDF980069DAA0 /* XPSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D862E9CDF980069DAA0 /* XPSwitch.m */; }; + 4CD19E902E9CDF980069DAA0 /* TTAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D9E2E9CDF980069DAA0 /* TTAlertView.m */; }; + 4CD19E912E9CDF980069DAA0 /* UILabel+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D6D2E9CDF980069DAA0 /* UILabel+MSRTL.m */; }; + 4CD19E922E9CDF980069DAA0 /* YYLabel+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D752E9CDF980069DAA0 /* YYLabel+MSRTL.m */; }; + 4CD19E932E9CDF980069DAA0 /* NetImageConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DAC2E9CDF980069DAA0 /* NetImageConfig.m */; }; + 4CD19E942E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DA62E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.m */; }; + 4CD19E952E9CDF980069DAA0 /* MSBaseRTLFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D632E9CDF980069DAA0 /* MSBaseRTLFlowLayout.m */; }; + 4CD19E962E9CDF980069DAA0 /* XPShareView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D802E9CDF980069DAA0 /* XPShareView.m */; }; + 4CD19E972E9CDF980069DAA0 /* QEmotion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D452E9CDF980069DAA0 /* QEmotion.m */; }; + 4CD19E982E9CDF980069DAA0 /* AdvertiseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C952E9CDF980069DAA0 /* AdvertiseModel.m */; }; + 4CD19E992E9CDF980069DAA0 /* XPSVGAPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D832E9CDF980069DAA0 /* XPSVGAPlayer.m */; }; + 4CD19E9A2E9CDF980069DAA0 /* QinputPhotoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D552E9CDF980069DAA0 /* QinputPhotoView.m */; }; + 4CD19E9B2E9CDF980069DAA0 /* XCCurrentVCStackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DC62E9CDF980069DAA0 /* XCCurrentVCStackManager.m */; }; + 4CD19E9C2E9CDF980069DAA0 /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DB92E9CDF980069DAA0 /* UIImage+ImageEffects.m */; }; + 4CD19E9D2E9CDF980069DAA0 /* UIImage+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DA92E9CDF980069DAA0 /* UIImage+Utils.m */; }; + 4CD19E9E2E9CDF980069DAA0 /* UIImage+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D6B2E9CDF980069DAA0 /* UIImage+MSRTL.m */; }; + 4CD19E9F2E9CDF980069DAA0 /* TTAlertConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D8D2E9CDF980069DAA0 /* TTAlertConfig.m */; }; + 4CD19EA02E9CDF980069DAA0 /* UITextField+MSRTL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D712E9CDF980069DAA0 /* UITextField+MSRTL.m */; }; + 4CD19EA12E9CDF980069DAA0 /* UITextView+QEmotion.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D5D2E9CDF980069DAA0 /* UITextView+QEmotion.m */; }; + 4CD19EA22E9CDF980069DAA0 /* DJDKMIMOMColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DBC2E9CDF980069DAA0 /* DJDKMIMOMColor.m */; }; + 4CD19EA32E9CDF980069DAA0 /* EmptyDataView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DBE2E9CDF980069DAA0 /* EmptyDataView.m */; }; + 4CD19EA42E9CDF980069DAA0 /* TTPopupManagerService.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D942E9CDF980069DAA0 /* TTPopupManagerService.m */; }; + 4CD19EA52E9CDF980069DAA0 /* MSBaseTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D652E9CDF980069DAA0 /* MSBaseTextField.m */; }; + 4CD19EA62E9CDF980069DAA0 /* XPAdImageTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19C972E9CDF980069DAA0 /* XPAdImageTool.m */; }; + 4CD19EA72E9CDF980069DAA0 /* QEmotionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D4B2E9CDF980069DAA0 /* QEmotionHelper.m */; }; + 4CD19EA82E9CDF980069DAA0 /* UIImageConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DB02E9CDF980069DAA0 /* UIImageConstant.m */; }; + 4CD19EA92E9CDF980069DAA0 /* QEmotionAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19D472E9CDF980069DAA0 /* QEmotionAttachment.m */; }; + 4CD19EAA2E9CDF980069DAA0 /* MoliMoneyLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DC22E9CDF980069DAA0 /* MoliMoneyLabel.m */; }; + 4CD19EAB2E9CDF980069DAA0 /* MoliAvatar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19DC02E9CDF980069DAA0 /* MoliAvatar.m */; }; + 4CD19EAE2E9CDFC30069DAA0 /* EPLoginButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19EAC2E9CDFC30069DAA0 /* EPLoginButton.swift */; }; + 4CD19EAF2E9CDFC30069DAA0 /* EPLoginInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD19EAD2E9CDFC30069DAA0 /* EPLoginInputView.swift */; }; 4CD401472E7183A8003F5009 /* XPPartyRoomItemCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD401462E7183A8003F5009 /* XPPartyRoomItemCollectionViewCell.m */; }; 4CD4014A2E718E36003F5009 /* XPBlankRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD401492E718E36003F5009 /* XPBlankRoomModel.m */; }; 4CD47BB52E61514900BCDA46 /* StageViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CD47BB42E61514900BCDA46 /* StageViewManager.m */; }; @@ -569,8 +775,6 @@ 4CE746D22D92A2660094E496 /* BravoGiftBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE746D12D92A2660094E496 /* BravoGiftBannerView.m */; }; 4CE746D52D92C1080094E496 /* BravoGiftWinningFlagView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CE746D42D92C1080094E496 /* BravoGiftWinningFlagView.m */; }; 4CEB9EA72D09643E00443480 /* UserRoomCardViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEB9EA62D09643E00443480 /* UserRoomCardViewController.m */; }; - 4CEB9EAA2D097E8400443480 /* MoliAvatar.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEB9EA92D097E8400443480 /* MoliAvatar.m */; }; - 4CEB9EAD2D09AA0400443480 /* SexAgeLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEB9EAC2D09AA0400443480 /* SexAgeLabel.m */; }; 4CEB9EB02D0AF4FE00443480 /* TwentyMicStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEB9EAF2D0AF4FE00443480 /* TwentyMicStageView.m */; }; 4CEB9EB32D0AFCE200443480 /* NineteenMicStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CEB9EB22D0AFCE200443480 /* NineteenMicStageView.m */; }; 4CF3CE2B2E0403500071101F /* MedalsWearingControlCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CF3CE2A2E0403500071101F /* MedalsWearingControlCollectionViewCell.m */; }; @@ -836,185 +1040,6 @@ E80E09AE2A41336500CD2BE7 /* XPWebViewNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09AC2A41336500CD2BE7 /* XPWebViewNavView.m */; }; E80E2377299A47F60013FD40 /* AESUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E2376299A47F60013FD40 /* AESUtils.m */; }; E80E900C27E0358900434B90 /* XPRoomTopicAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E900B27E0358900434B90 /* XPRoomTopicAlertView.m */; }; - E80EC80A28ACD84000D133C5 /* QEmotionBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74C28ACD84000D133C5 /* QEmotionBoardView.m */; }; - E80EC80B28ACD84000D133C5 /* QInputBarViewConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74E28ACD84000D133C5 /* QInputBarViewConfiguration.m */; }; - E80EC80C28ACD84000D133C5 /* UITextView+QEmotion.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74F28ACD84000D133C5 /* UITextView+QEmotion.m */; }; - E80EC80D28ACD84000D133C5 /* QInputBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75028ACD84000D133C5 /* QInputBarView.m */; }; - E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75128ACD84000D133C5 /* QKeyboardBaseManager.m */; }; - E80EC80F28ACD84000D133C5 /* QEmotion.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75228ACD84000D133C5 /* QEmotion.m */; }; - E80EC81028ACD84000D133C5 /* QExtendBoardView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75528ACD84000D133C5 /* QExtendBoardView.m */; }; - E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75828ACD84000D133C5 /* QEmotionHelper.m */; }; - E80EC81228ACD84000D133C5 /* QEmotionAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75D28ACD84000D133C5 /* QEmotionAttachment.m */; }; - E80EC81328ACD84000D133C5 /* QKeyboardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75E28ACD84000D133C5 /* QKeyboardManager.m */; }; - E80EC81428ACD84000D133C5 /* emoji_138@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76228ACD84000D133C5 /* emoji_138@2x.png */; }; - E80EC81528ACD84000D133C5 /* emoji_145@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76328ACD84000D133C5 /* emoji_145@2x.png */; }; - E80EC81628ACD84000D133C5 /* emoji_126@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76428ACD84000D133C5 /* emoji_126@2x.png */; }; - E80EC81728ACD84000D133C5 /* emoji_134@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76528ACD84000D133C5 /* emoji_134@2x.png */; }; - E80EC81828ACD84000D133C5 /* emoji_149@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76628ACD84000D133C5 /* emoji_149@2x.png */; }; - E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76728ACD84000D133C5 /* emoji_80@2x.png */; }; - E80EC81A28ACD84000D133C5 /* emoji_161@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76828ACD84000D133C5 /* emoji_161@2x.png */; }; - E80EC81B28ACD84000D133C5 /* emoji_102@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76928ACD84000D133C5 /* emoji_102@2x.png */; }; - E80EC81C28ACD84000D133C5 /* emoji_92@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */; }; - E80EC81D28ACD84000D133C5 /* emoji_110@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */; }; - E80EC81E28ACD84000D133C5 /* emoji_26@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */; }; - E80EC81F28ACD84000D133C5 /* emoji_45@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */; }; - E80EC82028ACD84000D133C5 /* emoji_38@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */; }; - E80EC82128ACD84000D133C5 /* emoji_49@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */; }; - E80EC82228ACD84000D133C5 /* emoji_34@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77028ACD84000D133C5 /* emoji_34@2x.png */; }; - E80EC82328ACD84000D133C5 /* emoji_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77128ACD84000D133C5 /* emoji_57@2x.png */; }; - E80EC82428ACD84000D133C5 /* emoji_02@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77228ACD84000D133C5 /* emoji_02@2x.png */; }; - E80EC82528ACD84000D133C5 /* emoji_61@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77328ACD84000D133C5 /* emoji_61@2x.png */; }; - E80EC82628ACD84000D133C5 /* emoji_10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77428ACD84000D133C5 /* emoji_10@2x.png */; }; - E80EC82728ACD84000D133C5 /* emoji_73@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77528ACD84000D133C5 /* emoji_73@2x.png */; }; - E80EC82828ACD84000D133C5 /* emoji_55@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77628ACD84000D133C5 /* emoji_55@2x.png */; }; - E80EC82928ACD84000D133C5 /* emoji_28@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77728ACD84000D133C5 /* emoji_28@2x.png */; }; - E80EC82A28ACD84000D133C5 /* emoji_36@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77828ACD84000D133C5 /* emoji_36@2x.png */; }; - E80EC82B28ACD84000D133C5 /* emoji_47@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77928ACD84000D133C5 /* emoji_47@2x.png */; }; - E80EC82C28ACD84000D133C5 /* emoji_59@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */; }; - E80EC82D28ACD84000D133C5 /* emoji_24@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */; }; - E80EC82E28ACD84000D133C5 /* emoji.xml in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77C28ACD84000D133C5 /* emoji.xml */; }; - E80EC82F28ACD84000D133C5 /* emoji_71@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */; }; - E80EC83028ACD84000D133C5 /* emoji_12@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */; }; - E80EC83128ACD84000D133C5 /* emoji_63@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */; }; - E80EC83228ACD84000D133C5 /* emoji_00@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78028ACD84000D133C5 /* emoji_00@2x.png */; }; - E80EC83328ACD84000D133C5 /* emoji_136@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78128ACD84000D133C5 /* emoji_136@2x.png */; }; - E80EC83428ACD84000D133C5 /* emoji_128@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78228ACD84000D133C5 /* emoji_128@2x.png */; }; - E80EC83528ACD84000D133C5 /* emoji_124@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78328ACD84000D133C5 /* emoji_124@2x.png */; }; - E80EC83628ACD84000D133C5 /* emoji_147@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78428ACD84000D133C5 /* emoji_147@2x.png */; }; - E80EC83728ACD84000D133C5 /* emoji_112@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78528ACD84000D133C5 /* emoji_112@2x.png */; }; - E80EC83828ACD84000D133C5 /* emoji_90@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78628ACD84000D133C5 /* emoji_90@2x.png */; }; - E80EC83928ACD84000D133C5 /* emoji_100@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78728ACD84000D133C5 /* emoji_100@2x.png */; }; - E80EC83A28ACD84000D133C5 /* emoji_82@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78828ACD84000D133C5 /* emoji_82@2x.png */; }; - E80EC83B28ACD84000D133C5 /* emoji_163@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78928ACD84000D133C5 /* emoji_163@2x.png */; }; - E80EC83C28ACD84000D133C5 /* emoji_67@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */; }; - E80EC83D28ACD84000D133C5 /* emoji_04@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */; }; - E80EC83E28ACD84000D133C5 /* emoji_79@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */; }; - E80EC83F28ACD84000D133C5 /* emoji_08@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */; }; - E80EC84028ACD84000D133C5 /* emoji_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */; }; - E80EC84128ACD84000D133C5 /* emoji_16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */; }; - E80EC84228ACD84000D133C5 /* emoji_43@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79028ACD84000D133C5 /* emoji_43@2x.png */; }; - E80EC84328ACD84000D133C5 /* emoji_20@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79128ACD84000D133C5 /* emoji_20@2x.png */; }; - E80EC84428ACD84000D133C5 /* emoji_51@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79228ACD84000D133C5 /* emoji_51@2x.png */; }; - E80EC84528ACD84000D133C5 /* emoji_32@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79328ACD84000D133C5 /* emoji_32@2x.png */; }; - E80EC84628ACD84000D133C5 /* emoji_98@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79428ACD84000D133C5 /* emoji_98@2x.png */; }; - E80EC84728ACD84000D133C5 /* emoji_104@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79528ACD84000D133C5 /* emoji_104@2x.png */; }; - E80EC84828ACD84000D133C5 /* emoji_86@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79628ACD84000D133C5 /* emoji_86@2x.png */; }; - E80EC84928ACD84000D133C5 /* emoji_116@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79728ACD84000D133C5 /* emoji_116@2x.png */; }; - E80EC84A28ACD84000D133C5 /* emoji_94@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79828ACD84000D133C5 /* emoji_94@2x.png */; }; - E80EC84B28ACD84000D133C5 /* emoji_108@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79928ACD84000D133C5 /* emoji_108@2x.png */; }; - E80EC84C28ACD84000D133C5 /* emoji_120@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */; }; - E80EC84D28ACD84000D133C5 /* emoji_143@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */; }; - E80EC84E28ACD84000D133C5 /* emoji_132@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */; }; - E80EC84F28ACD84000D133C5 /* emoji_151@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */; }; - E80EC85028ACD84000D133C5 /* emoji_96@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */; }; - E80EC85128ACD84000D133C5 /* emoji_88@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */; }; - E80EC85228ACD84000D133C5 /* emoji_114@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */; }; - E80EC85328ACD84000D133C5 /* emoji_84@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */; }; - E80EC85428ACD84000D133C5 /* emoji_165@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */; }; - E80EC85528ACD84000D133C5 /* emoji_118@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */; }; - E80EC85628ACD84000D133C5 /* emoji_106@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */; }; - E80EC85728ACD84000D133C5 /* emoji_130@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */; }; - E80EC85828ACD84000D133C5 /* emoji_141@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */; }; - E80EC85928ACD84000D133C5 /* emoji_122@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */; }; - E80EC85A28ACD84000D133C5 /* emoji_14@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */; }; - E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */; }; - E80EC85C28ACD84000D133C5 /* emoji_77@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */; }; - E80EC85D28ACD84000D133C5 /* emoji_06@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */; }; - E80EC85E28ACD84000D133C5 /* emoji_18@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */; }; - E80EC85F28ACD84000D133C5 /* emoji_65@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */; }; - E80EC86028ACD84000D133C5 /* emoji_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */; }; - E80EC86128ACD84000D133C5 /* emoji_53@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */; }; - E80EC86228ACD84000D133C5 /* emoji_22@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */; }; - E80EC86328ACD84000D133C5 /* emoji_41@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */; }; - E80EC86428ACD84000D133C5 /* emoji_60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */; }; - E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */; }; - E80EC86628ACD84000D133C5 /* emoji_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */; }; - E80EC86728ACD84000D133C5 /* emoji_11@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */; }; - E80EC86828ACD84000D133C5 /* emoji_39@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */; }; - E80EC86928ACD84000D133C5 /* emoji_44@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */; }; - E80EC86A28ACD84000D133C5 /* emoji_27@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */; }; - E80EC86B28ACD84000D133C5 /* emoji_200@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */; }; - E80EC86C28ACD84000D133C5 /* emoji_56@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */; }; - E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */; }; - E80EC86E28ACD84000D133C5 /* emoji_48@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */; }; - E80EC86F28ACD84000D133C5 /* emoji_103@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */; }; - E80EC87028ACD84000D133C5 /* emoji_81@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */; }; - E80EC87128ACD84000D133C5 /* emoji_160@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */; }; - E80EC87228ACD84000D133C5 /* emoji_111@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */; }; - E80EC87328ACD84000D133C5 /* emoji_93@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */; }; - E80EC87428ACD84000D133C5 /* emoji_127@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */; }; - E80EC87528ACD84000D133C5 /* emoji_144@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */; }; - E80EC87628ACD84000D133C5 /* emoji_139@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */; }; - E80EC87728ACD84000D133C5 /* emoji_148@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */; }; - E80EC87828ACD84000D133C5 /* emoji_135@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */; }; - E80EC87928ACD84000D133C5 /* emoji_91@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */; }; - E80EC87A28ACD84000D133C5 /* emoji_113@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */; }; - E80EC87B28ACD84000D133C5 /* emoji_83@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */; }; - E80EC87C28ACD84000D133C5 /* emoji_162@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */; }; - E80EC87D28ACD84000D133C5 /* emoji_101@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */; }; - E80EC87E28ACD84000D133C5 /* emoji_129@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */; }; - E80EC87F28ACD84000D133C5 /* emoji_137@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */; }; - E80EC88028ACD84000D133C5 /* emoji_146@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */; }; - E80EC88128ACD84000D133C5 /* emoji_125@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */; }; - E80EC88228ACD84000D133C5 /* emoji_13@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */; }; - E80EC88328ACD84000D133C5 /* emoji_70@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */; }; - E80EC88428ACD84000D133C5 /* emoji_01@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */; }; - E80EC88528ACD84000D133C5 /* emoji_62@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */; }; - E80EC88628ACD84000D133C5 /* emoji_37@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */; }; - E80EC88728ACD84000D133C5 /* emoji_29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */; }; - E80EC88828ACD84000D133C5 /* emoji_54@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */; }; - E80EC88928ACD84000D133C5 /* emoj_s_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */; }; - E80EC88A28ACD84000D133C5 /* emoji_25@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */; }; - E80EC88B28ACD84000D133C5 /* emoji_58@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */; }; - E80EC88C28ACD84000D133C5 /* emoji_46@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */; }; - E80EC88D28ACD84000D133C5 /* emoji_del_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */; }; - E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */; }; - E80EC88F28ACD84000D133C5 /* emoji_121@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */; }; - E80EC89028ACD84000D133C5 /* emoji_150@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */; }; - E80EC89128ACD84000D133C5 /* emoji_133@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */; }; - E80EC89228ACD84000D133C5 /* emoji_87@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */; }; - E80EC89328ACD84000D133C5 /* emoji_166@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */; }; - E80EC89428ACD84000D133C5 /* emoji_105@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */; }; - E80EC89528ACD84000D133C5 /* emoji_99@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */; }; - E80EC89628ACD84000D133C5 /* emoji_109@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */; }; - E80EC89728ACD84000D133C5 /* emoji_95@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */; }; - E80EC89828ACD84000D133C5 /* emoji_117@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */; }; - E80EC89928ACD84000D133C5 /* emoji_21@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */; }; - E80EC89A28ACD84000D133C5 /* emoji_42@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */; }; - E80EC89B28ACD84000D133C5 /* emoji_33@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */; }; - E80EC89C28ACD84000D133C5 /* emoji_50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */; }; - E80EC89D28ACD84000D133C5 /* emoji_78@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */; }; - E80EC89E28ACD84000D133C5 /* emoji_05@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */; }; - E80EC89F28ACD84000D133C5 /* emoji_66@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */; }; - E80EC8A028ACD84100D133C5 /* emoji_17@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */; }; - E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */; }; - E80EC8A228ACD84100D133C5 /* emoji_09@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */; }; - E80EC8A328ACD84100D133C5 /* emoji_52@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */; }; - E80EC8A428ACD84100D133C5 /* emoji_31@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */; }; - E80EC8A528ACD84100D133C5 /* emoji_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */; }; - E80EC8A628ACD84100D133C5 /* emoji_23@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */; }; - E80EC8A728ACD84100D133C5 /* emoji_del_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */; }; - E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */; }; - E80EC8A928ACD84100D133C5 /* emoji_68@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */; }; - E80EC8AA28ACD84100D133C5 /* emoji_15@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */; }; - E80EC8AB28ACD84100D133C5 /* emoji_64@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */; }; - E80EC8AC28ACD84100D133C5 /* emoji_19@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */; }; - E80EC8AD28ACD84100D133C5 /* emoji_07@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */; }; - E80EC8AE28ACD84100D133C5 /* emoji_131@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */; }; - E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */; }; - E80EC8B028ACD84100D133C5 /* emoji_152@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */; }; - E80EC8B128ACD84100D133C5 /* emoji_123@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */; }; - E80EC8B228ACD84100D133C5 /* emoji_140@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80028ACD84000D133C5 /* emoji_140@2x.png */; }; - E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80128ACD84000D133C5 /* emoji_115@2x.png */; }; - E80EC8B428ACD84100D133C5 /* emoji_89@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80228ACD84000D133C5 /* emoji_89@2x.png */; }; - E80EC8B528ACD84100D133C5 /* emoji_97@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80328ACD84000D133C5 /* emoji_97@2x.png */; }; - E80EC8B628ACD84100D133C5 /* emoji_107@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80428ACD84000D133C5 /* emoji_107@2x.png */; }; - E80EC8B728ACD84100D133C5 /* emoji_119@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80528ACD84000D133C5 /* emoji_119@2x.png */; }; - E80EC8B828ACD84100D133C5 /* emoji_85@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80628ACD84000D133C5 /* emoji_85@2x.png */; }; - E80EC8B928ACD84100D133C5 /* emoji_164@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80728ACD84000D133C5 /* emoji_164@2x.png */; }; - E80EC8BA28ACD84100D133C5 /* emoji.plist in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80828ACD84000D133C5 /* emoji.plist */; }; - E80EC8BF28ACDB2A00D133C5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */; }; - E80EC8C228ACF97A00D133C5 /* QEEmotionImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC8C128ACF97A00D133C5 /* QEEmotionImageView.m */; }; E81060D9298761A300B772F0 /* MessageBaseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060D8298761A300B772F0 /* MessageBaseModel.m */; }; E81060DC298761F100B772F0 /* MessageTextModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060DB298761F100B772F0 /* MessageTextModel.m */; }; E81060DF29876D3A00B772F0 /* MessageTimeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060DE29876D3A00B772F0 /* MessageTimeModel.m */; }; @@ -1029,9 +1054,6 @@ E81060FD2987CC9100B772F0 /* MessageLevelUpgradeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060FC2987CC9100B772F0 /* MessageLevelUpgradeModel.m */; }; E81061002987CDCC00B772F0 /* MessageTweetModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060FF2987CDCC00B772F0 /* MessageTweetModel.m */; }; E81061032987CFCE00B772F0 /* MessageSkillCardModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81061022987CFCE00B772F0 /* MessageSkillCardModel.m */; }; - E81125C4296E57B7000D9804 /* QinputPhotoView.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C3296E57B7000D9804 /* QinputPhotoView.m */; }; - E81125C7296E596D000D9804 /* QInputPhototCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C6296E596D000D9804 /* QInputPhototCell.m */; }; - E81125CA296E606F000D9804 /* QPhotoImageModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C9296E606F000D9804 /* QPhotoImageModel.m */; }; E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E811FFF62742367B00918544 /* XPGiftEmptyCollectionViewCell.m */; }; E8133916273E532D00708B66 /* XPGiftItemCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8133915273E532D00708B66 /* XPGiftItemCollectionViewCell.m */; }; E81366E326F0A1FC0076364C /* LoginBindPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366E226F0A1FC0076364C /* LoginBindPhoneViewController.m */; }; @@ -1039,7 +1061,6 @@ E81366F326F0B7C80076364C /* LoginFullInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366F226F0B7C80076364C /* LoginFullInfoViewController.m */; }; E81366F626F0C0DF0076364C /* LoginFullInfoPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366F526F0C0DF0076364C /* LoginFullInfoPresenter.m */; }; E81366F826F0C12A0076364C /* LoginFullInfoProtocol.h in Sources */ = {isa = PBXBuildFile; fileRef = E81366F726F0C0F60076364C /* LoginFullInfoProtocol.h */; }; - E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */; }; E816C11527608A7500C84014 /* XPRoomMiniManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E816C11427608A7500C84014 /* XPRoomMiniManager.m */; }; E818DD1C2A4896EE00F163F7 /* XPLoginAraeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E818DD1B2A4896EE00F163F7 /* XPLoginAraeViewController.m */; }; E818DD1F2A48974300F163F7 /* LoginAreaModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E818DD1E2A48974300F163F7 /* LoginAreaModel.m */; }; @@ -1074,9 +1095,6 @@ E81D58822720082A003063FE /* MicroWaveView.m in Sources */ = {isa = PBXBuildFile; fileRef = E81D58812720082A003063FE /* MicroWaveView.m */; }; E81DCCCD282B63B40039E5C5 /* XPMomentsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81DCCCC282B63B40039E5C5 /* XPMomentsViewController.m */; }; E81DCCD0282B63FD0039E5C5 /* XPMomentsRecommendViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E81DCCCF282B63FD0039E5C5 /* XPMomentsRecommendViewController.m */; }; - E81E09C9290F71BF00A1F410 /* XPAdvertiseView.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09C8290F71BF00A1F410 /* XPAdvertiseView.m */; }; - E81E09CC290F732600A1F410 /* XPAdImageTool.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09CB290F732600A1F410 /* XPAdImageTool.m */; }; - E81E09CF290F750800A1F410 /* AdvertiseModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09CE290F750800A1F410 /* AdvertiseModel.m */; }; E821077B2987D4AB00DE7040 /* MessageFindNewGreetModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E821077A2987D4AB00DE7040 /* MessageFindNewGreetModel.m */; }; E821077E2987D67100DE7040 /* MessageRiskAlertModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E821077D2987D67100DE7040 /* MessageRiskAlertModel.m */; }; E82107812987D7F300DE7040 /* MessageMonentsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E82107802987D7F300DE7040 /* MessageMonentsModel.m */; }; @@ -1084,8 +1102,6 @@ E82107872987E49100DE7040 /* MessageRedPacketModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E82107862987E49100DE7040 /* MessageRedPacketModel.m */; }; E82109AD26F1C8A000FC3319 /* CountDownHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E82109AC26F1C8A000FC3319 /* CountDownHelper.m */; }; E82109B026F1D83500FC3319 /* LoginBindPhonePresent.m in Sources */ = {isa = PBXBuildFile; fileRef = E82109AF26F1D83500FC3319 /* LoginBindPhonePresent.m */; }; - E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325E5274CCAFA003A3332 /* XPShareInfoModel.m */; }; - E82325E9274CE56A003A3332 /* XPShareItem.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325E8274CE56A003A3332 /* XPShareItem.m */; }; E82325F2274E2DE6003A3332 /* XPUserCardViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F1274E2DE6003A3332 /* XPUserCardViewController.m */; }; E82325F5274E2E09003A3332 /* XPUserCardPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F4274E2E09003A3332 /* XPUserCardPresenter.m */; }; E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F8274E2E42003A3332 /* Api+UserCard.m */; }; @@ -1297,7 +1313,6 @@ E86507E5281A7D4D006951B0 /* MessageContentTweetView.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507E4281A7D4D006951B0 /* MessageContentTweetView.m */; }; E86507E8281A8212006951B0 /* ContentTweetModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507E7281A8212006951B0 /* ContentTweetModel.m */; }; E86507EB281A88A9006951B0 /* MessageContentSkillCardView.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507EA281A88A9006951B0 /* MessageContentSkillCardView.m */; }; - E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596412701611A00846EBD /* UIImage+ImageEffects.m */; }; E86596512701A1C000846EBD /* StatisticsService.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596502701A1C000846EBD /* StatisticsService.m */; }; E86596542701A55500846EBD /* StatisticsServiceHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596532701A55500846EBD /* StatisticsServiceHelper.m */; }; E8659909273E800D00EE349D /* XPGiftCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = E8659908273E800D00EE349D /* XPGiftCollectionViewFlowLayout.m */; }; @@ -1462,11 +1477,9 @@ E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFB12771C93B00AD2CC1 /* XPMineFriendNumberView.m */; }; E897ABFC28AF2E71003B3587 /* XPSailingGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = E897ABFB28AF2E71003B3587 /* XPSailingGiftView.m */; }; E897ABFF28AF39B4003B3587 /* XPSailingAnimationView.m in Sources */ = {isa = PBXBuildFile; fileRef = E897ABFE28AF39B4003B3587 /* XPSailingAnimationView.m */; }; - E8998D7A2859784200C68558 /* XPSVGAPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D792859784200C68558 /* XPSVGAPlayer.m */; }; E8998D8028597B0300C68558 /* XPRoomLuckyBigPrizeView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D7F28597B0300C68558 /* XPRoomLuckyBigPrizeView.m */; }; E8998D852859B4FA00C68558 /* XPMineUserInfoGiftView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */; }; E8998D8B2859CB6A00C68558 /* XPMineUserInfoGiftWallSubViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D8A2859CB6A00C68558 /* XPMineUserInfoGiftWallSubViewController.m */; }; - E8998D962859DD6F00C68558 /* UIView+Corner.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D952859DD6F00C68558 /* UIView+Corner.m */; }; E899C68927508F4E00E189E5 /* XPUserCardInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68827508F4E00E189E5 /* XPUserCardInfoModel.m */; }; E899C68C275093B800E189E5 /* XPUserCardMicroItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68B275093B800E189E5 /* XPUserCardMicroItemModel.m */; }; E89BD7D4277D471100E31B19 /* XPRoomOnlineTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E89BD7D3277D471100E31B19 /* XPRoomOnlineTableViewCell.m */; }; @@ -1504,7 +1517,6 @@ E8AB632F28AE19DE0023B0D2 /* XPMomentMinePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB632E28AE19DE0023B0D2 /* XPMomentMinePresenter.m */; }; E8AB633328AE51470023B0D2 /* XPSailingPrizeView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB633228AE51470023B0D2 /* XPSailingPrizeView.m */; }; E8AB633628AE54A40023B0D2 /* XPSailingPrizeCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB633528AE54A40023B0D2 /* XPSailingPrizeCollectionViewCell.m */; }; - E8AC721026F43955007D6E91 /* UIImageConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC720F26F43955007D6E91 /* UIImageConstant.m */; }; E8AC721326F46ADD007D6E91 /* XPMineSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721226F46ADD007D6E91 /* XPMineSettingViewController.m */; }; E8AC721626F46B06007D6E91 /* XPMineSettingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721526F46B06007D6E91 /* XPMineSettingTableViewCell.m */; }; E8AC721926F46E0B007D6E91 /* XPMineSettingItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721826F46E0B007D6E91 /* XPMineSettingItemModel.m */; }; @@ -1532,7 +1544,6 @@ E8B825C226EA00DF009E8E9F /* LoginVerifCodePresent.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C126EA00DF009E8E9F /* LoginVerifCodePresent.m */; }; E8B825C726EA0D9A009E8E9F /* LoginVerifCodeProtocol.h in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C626EA0995009E8E9F /* LoginVerifCodeProtocol.h */; }; E8B825CA26EA1231009E8E9F /* LoginVerifCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C826EA1231009E8E9F /* LoginVerifCodeViewController.m */; }; - E8B825CD26EA18C8009E8E9F /* DJDKMIMOMColor.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */; }; E8B846BF26FD827900A777FE /* XPMineUserInfoAlbumViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846BE26FD827900A777FE /* XPMineUserInfoAlbumViewController.m */; }; E8B846C226FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846C126FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.m */; }; E8B846C526FDB41A00A777FE /* XPMineUserInfolbumPresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846C426FDB41A00A777FE /* XPMineUserInfolbumPresenter.m */; }; @@ -1636,7 +1647,6 @@ E8F63CBB298B648300B338BA /* SessionSayHelloListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F63CBA298B648300B338BA /* SessionSayHelloListModel.m */; }; E8F65C1F286998C9009BB5B9 /* XPMineShareViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F65C1E286998C9009BB5B9 /* XPMineShareViewController.m */; }; E8F65C222869A36F009BB5B9 /* ContentShareMonentsModel.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F65C212869A36F009BB5B9 /* ContentShareMonentsModel.m */; }; - E8FE3C2C2994D0E80006C6C7 /* XPSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = E8FE3C2B2994D0E80006C6C7 /* XPSwitch.m */; }; F1D8556F2931FC86008C418F /* XPRoomYearActivityView.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D8556E2931FC86008C418F /* XPRoomYearActivityView.m */; }; /* End PBXBuildFile section */ @@ -1757,8 +1767,6 @@ 180806FA2729A354001FD836 /* ThemeColor+Room.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+Room.m"; sourceTree = ""; }; 1808072B2731598F001FD836 /* XPNetImageYYLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPNetImageYYLabel.h; sourceTree = ""; }; 1808072C2731598F001FD836 /* XPNetImageYYLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPNetImageYYLabel.m; sourceTree = ""; }; - 1808072E27315E8E001FD836 /* NetImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetImageView.h; sourceTree = ""; }; - 1808072F27315E8E001FD836 /* NetImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetImageView.m; sourceTree = ""; }; 181D7F192726CE2A00B7C059 /* StageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StageView.h; sourceTree = ""; }; 181D7F1A2726CE2A00B7C059 /* StageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StageView.m; sourceTree = ""; }; 181D7F1F2727D9DB00B7C059 /* SocialStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SocialStageView.h; sourceTree = ""; }; @@ -1771,31 +1779,6 @@ 18486215271EAB8C005FC5DC /* BaseRtcImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseRtcImpl.h; sourceTree = ""; }; 18486216271EAB8C005FC5DC /* BaseRtcImpl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseRtcImpl.m; sourceTree = ""; }; 186A531826FC591100D67B2C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; - 186A532C26FC6ED900D67B2C /* TTPopup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopup.m; sourceTree = ""; }; - 186A532E26FC6ED900D67B2C /* TTAlertConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertConfig.m; sourceTree = ""; }; - 186A532F26FC6ED900D67B2C /* TTAlertMessageAttributedConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertMessageAttributedConfig.h; sourceTree = ""; }; - 186A533026FC6ED900D67B2C /* TTAlertButtonConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertButtonConfig.h; sourceTree = ""; }; - 186A533126FC6ED900D67B2C /* TTActionSheetConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTActionSheetConfig.h; sourceTree = ""; }; - 186A533226FC6ED900D67B2C /* TTAlertConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertConfig.h; sourceTree = ""; }; - 186A533326FC6ED900D67B2C /* TTAlertButtonConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertButtonConfig.m; sourceTree = ""; }; - 186A533426FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertMessageAttributedConfig.m; sourceTree = ""; }; - 186A533526FC6ED900D67B2C /* TTActionSheetConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetConfig.m; sourceTree = ""; }; - 186A533726FC6ED900D67B2C /* TTPopupManagerServiceProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerServiceProtocol.h; sourceTree = ""; }; - 186A533826FC6ED900D67B2C /* TTPopupManagerService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerService.h; sourceTree = ""; }; - 186A533926FC6ED900D67B2C /* TTPopupManagerService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopupManagerService.m; sourceTree = ""; }; - 186A533A26FC6ED900D67B2C /* TTPopup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopup.h; sourceTree = ""; }; - 186A533C26FC6ED900D67B2C /* TTAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTAlertView.m; sourceTree = ""; }; - 186A533D26FC6ED900D67B2C /* TTActionSheetView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTActionSheetView.h; sourceTree = ""; }; - 186A533E26FC6ED900D67B2C /* TTAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTAlertView.h; sourceTree = ""; }; - 186A533F26FC6ED900D67B2C /* TTActionSheetView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetView.m; sourceTree = ""; }; - 186A534126FC6ED900D67B2C /* TTPopupService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTPopupService.m; sourceTree = ""; }; - 186A534226FC6ED900D67B2C /* TTPopupServiceProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupServiceProtocol.h; sourceTree = ""; }; - 186A534326FC6ED900D67B2C /* TTPopupService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupService.h; sourceTree = ""; }; - 186A534526FC6ED900D67B2C /* TTPopupConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupConstants.h; sourceTree = ""; }; - 186A536126FC6F2E00D67B2C /* XPShareView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPShareView.m; sourceTree = ""; }; - 186A536226FC6F2E00D67B2C /* XPShareView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPShareView.h; sourceTree = ""; }; - 186A536726FC6F2E00D67B2C /* XPShareItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPShareItemCell.m; sourceTree = ""; }; - 186A536826FC6F2E00D67B2C /* XPShareItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPShareItemCell.h; sourceTree = ""; }; 186F8B472733F2AE007A17BC /* MicroQueueProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicroQueueProtocol.h; sourceTree = ""; }; 187EEEDA26E89B32002833B2 /* BaseModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseModel.h; sourceTree = ""; }; 187EEEDB26E89B32002833B2 /* BaseModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseModel.m; sourceTree = ""; }; @@ -1821,10 +1804,6 @@ 189DD58D26DF97E700AB55B1 /* LoginPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPresenter.h; sourceTree = ""; }; 189DD58E26DF97E700AB55B1 /* LoginPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginPresenter.m; sourceTree = ""; }; 189DD59426DF986300AB55B1 /* LoginProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginProtocol.h; sourceTree = ""; }; - 189DD67C26E1FD8900AB55B1 /* UIImage+Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Utils.h"; sourceTree = ""; }; - 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Utils.m"; sourceTree = ""; }; - 189DD68226E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XNDJTDDLoadingTool.m; sourceTree = ""; }; - 189DD68326E1FDBB00AB55B1 /* XNDJTDDLoadingTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XNDJTDDLoadingTool.h; sourceTree = ""; }; 189DD6FD26E20E5900AB55B1 /* HttpRequestHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HttpRequestHelper.h; sourceTree = ""; }; 189DD6FE26E20E5900AB55B1 /* HttpRequestHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HttpRequestHelper.m; sourceTree = ""; }; 189DD73726E21C3F00AB55B1 /* CarrierIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CarrierIdentifier.h; sourceTree = ""; }; @@ -1841,8 +1820,6 @@ 189DD75826E6003C00AB55B1 /* Api.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Api.m; sourceTree = ""; }; 189DD76026E60DDC00AB55B1 /* Api+Login.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Login.h"; sourceTree = ""; }; 189DD76126E60DDC00AB55B1 /* Api+Login.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Login.m"; sourceTree = ""; }; - 18A61BD5274F7F6900A09A54 /* NetImageConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetImageConfig.h; sourceTree = ""; }; - 18A61BD6274F7F6900A09A54 /* NetImageConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetImageConfig.m; sourceTree = ""; }; 18A61BE6274F9CF000A09A54 /* SessionListViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SessionListViewController.h; sourceTree = ""; }; 18A61BE7274F9CF000A09A54 /* SessionListViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SessionListViewController.m; sourceTree = ""; }; 18AAF3EE279EA59300CD7DAD /* MessageContentTextClickable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentTextClickable.h; sourceTree = ""; }; @@ -1852,8 +1829,6 @@ 18E7B1B126E8AF980064BC9B /* MainPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainPresenter.m; sourceTree = ""; }; 18E7B1B526E8B2D10064BC9B /* Api+Main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Main.h"; sourceTree = ""; }; 18E7B1B626E8B2D10064BC9B /* Api+Main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Main.m"; sourceTree = ""; }; - 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCCurrentVCStackManager.m; sourceTree = ""; }; - 18E7B26826E8D5D60064BC9B /* XCCurrentVCStackManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCCurrentVCStackManager.h; sourceTree = ""; }; 18E7B31626F097E00064BC9B /* UserInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserInfoModel.h; sourceTree = ""; }; 18E7B31726F097E00064BC9B /* UserInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserInfoModel.m; sourceTree = ""; }; 18E7B31926F0982E0064BC9B /* UserExpand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserExpand.h; sourceTree = ""; }; @@ -2132,26 +2107,6 @@ 237700CE2BC697D400D661F1 /* pi_login_new_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pi_login_new_logo.png; sourceTree = ""; }; 237700D12BC7CC7C00D661F1 /* NSObject+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJExtension.h"; sourceTree = ""; }; 237700D22BC7CC7C00D661F1 /* NSObject+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJExtension.m"; sourceTree = ""; }; - 237700D52BC7D51400D661F1 /* UIButton+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIButton+MSRTL.h"; sourceTree = ""; }; - 237700D62BC7D51400D661F1 /* UIButton+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIButton+MSRTL.m"; sourceTree = ""; }; - 237700D82BC7D5EC00D661F1 /* UILabel+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+MSRTL.h"; sourceTree = ""; }; - 237700D92BC7D5EC00D661F1 /* UILabel+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+MSRTL.m"; sourceTree = ""; }; - 237700DB2BC7D70E00D661F1 /* UIImage+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+MSRTL.h"; sourceTree = ""; }; - 237700DC2BC7D70E00D661F1 /* UIImage+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+MSRTL.m"; sourceTree = ""; }; - 237700DE2BC7D78600D661F1 /* MSBaseRTLFlowLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSBaseRTLFlowLayout.h; sourceTree = ""; }; - 237700DF2BC7D78600D661F1 /* MSBaseRTLFlowLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSBaseRTLFlowLayout.m; sourceTree = ""; }; - 237700E12BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSMutableAttributedString+MSRTL.h"; sourceTree = ""; }; - 237700E22BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableAttributedString+MSRTL.m"; sourceTree = ""; }; - 237700E42BC7E81F00D661F1 /* UITextField+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITextField+MSRTL.h"; sourceTree = ""; }; - 237700E52BC7E81F00D661F1 /* UITextField+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITextField+MSRTL.m"; sourceTree = ""; }; - 237700E72BC7E88E00D661F1 /* UITextView+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITextView+MSRTL.h"; sourceTree = ""; }; - 237700E82BC7E88E00D661F1 /* UITextView+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITextView+MSRTL.m"; sourceTree = ""; }; - 237700EA2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UISwipeGestureRecognizer+MSRTL.h"; sourceTree = ""; }; - 237700EB2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UISwipeGestureRecognizer+MSRTL.m"; sourceTree = ""; }; - 237700F82BCCD25500D661F1 /* YYLabel+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YYLabel+MSRTL.h"; sourceTree = ""; }; - 237700F92BCCD25500D661F1 /* YYLabel+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "YYLabel+MSRTL.m"; sourceTree = ""; }; - 237700FB2BCD254000D661F1 /* MSBaseTextField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSBaseTextField.h; sourceTree = ""; }; - 237700FC2BCD254000D661F1 /* MSBaseTextField.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSBaseTextField.m; sourceTree = ""; }; 237701072BCF73CE00D661F1 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 237701092BCF73DD00D661F1 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; 2377010B2BCF73EA00D661F1 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; @@ -2395,8 +2350,6 @@ 23E9EA992A84C39700B792F2 /* XPMineUserInfoRecordedSoundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoRecordedSoundView.m; sourceTree = ""; }; 23E9EA9C2A84C42B00B792F2 /* SGYProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGYProgressView.h; sourceTree = ""; }; 23E9EA9D2A84C42B00B792F2 /* SGYProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGYProgressView.m; sourceTree = ""; }; - 23E9EA9F2A84C53800B792F2 /* TTNewAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TTNewAlertView.m; sourceTree = ""; }; - 23E9EAA02A84C53900B792F2 /* TTNewAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTNewAlertView.h; sourceTree = ""; }; 23E9EAA22A84C80300B792F2 /* pi_new_loading.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = pi_new_loading.svga; sourceTree = ""; }; 23E9EAA42A84C97C00B792F2 /* XPMineUserInfoTagVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoTagVC.h; sourceTree = ""; }; 23E9EAA52A84C97C00B792F2 /* XPMineUserInfoTagVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoTagVC.m; sourceTree = ""; }; @@ -2520,8 +2473,6 @@ 4C1392922D6D963600A6DFB5 /* SubRechargersViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SubRechargersViewController.m; sourceTree = ""; }; 4C1392942D6DA22B00A6DFB5 /* RechargerTransferHistoryViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RechargerTransferHistoryViewController.h; sourceTree = ""; }; 4C1392952D6DA22B00A6DFB5 /* RechargerTransferHistoryViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RechargerTransferHistoryViewController.m; sourceTree = ""; }; - 4C1392972D6DB4CD00A6DFB5 /* MoliMoneyLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoliMoneyLabel.h; sourceTree = ""; }; - 4C1392982D6DB4CD00A6DFB5 /* MoliMoneyLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoliMoneyLabel.m; sourceTree = ""; }; 4C13929B2D70441500A6DFB5 /* giftgift.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = giftgift.mp4; sourceTree = ""; }; 4C1392A02D71675900A6DFB5 /* coincoin.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = coincoin.mp4; sourceTree = ""; }; 4C1892972CF84349004D4426 /* RoomCahtCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomCahtCell.h; sourceTree = ""; }; @@ -2579,8 +2530,6 @@ 4C6C92BF2D1172D9000A4693 /* RegionListInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RegionListInfo.m; sourceTree = ""; }; 4C6E1F732CEAEC3C0073D0A3 /* ShoppingMallTagView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShoppingMallTagView.h; sourceTree = ""; }; 4C6E1F742CEAEC3C0073D0A3 /* ShoppingMallTagView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShoppingMallTagView.m; sourceTree = ""; }; - 4C6E1F772CEB12780073D0A3 /* UIView+GradientLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+GradientLayer.h"; sourceTree = ""; }; - 4C6E1F782CEB12780073D0A3 /* UIView+GradientLayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+GradientLayer.m"; sourceTree = ""; }; 4C6E1F7A2CEB25B10073D0A3 /* ShoppingMallItemPreview.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShoppingMallItemPreview.h; sourceTree = ""; }; 4C6E1F7B2CEB25B10073D0A3 /* ShoppingMallItemPreview.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShoppingMallItemPreview.m; sourceTree = ""; }; 4C6E31EA2D35010F00D8EEDD /* RoomAnimationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomAnimationView.h; sourceTree = ""; }; @@ -2609,8 +2558,6 @@ 4C75CEFC2D632CD5009147A5 /* CPEnterRoomTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CPEnterRoomTableViewCell.h; sourceTree = ""; }; 4C75CEFD2D632CD5009147A5 /* CPEnterRoomTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CPEnterRoomTableViewCell.m; sourceTree = ""; }; 4C75CEFF2D633C27009147A5 /* CP进场.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = "CP进场.svga"; sourceTree = ""; }; - 4C7989EA2D19392E006AE07B /* EmptyDataView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmptyDataView.h; sourceTree = ""; }; - 4C7989EB2D19392E006AE07B /* EmptyDataView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EmptyDataView.m; sourceTree = ""; }; 4C7989ED2D195277006AE07B /* RoomModeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomModeViewController.h; sourceTree = ""; }; 4C7989EE2D195277006AE07B /* RoomModeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoomModeViewController.m; sourceTree = ""; }; 4C7989F12D1952DA006AE07B /* RoomModePresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomModePresenter.h; sourceTree = ""; }; @@ -2726,6 +2673,303 @@ 4CD15D902D7E902800D9279F /* LoginViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = ""; }; 4CD15D932D7FE9E400D9279F /* LoginTypesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginTypesViewController.h; sourceTree = ""; }; 4CD15D942D7FE9E400D9279F /* LoginTypesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginTypesViewController.m; sourceTree = ""; }; + 4CD19C7D2E9CB31C0069DAA0 /* EPLoginTypesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginTypesViewController.swift; sourceTree = ""; }; + 4CD19C7E2E9CB31C0069DAA0 /* EPLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginViewController.swift; sourceTree = ""; }; + 4CD19C802E9CB31C0069DAA0 /* EPLoginState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginState.swift; sourceTree = ""; }; + 4CD19C832E9CB31C0069DAA0 /* EPPolicyLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPPolicyLabel.swift; sourceTree = ""; }; + 4CD19C8B2E9CBBC80069DAA0 /* EPLoginManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginManager.swift; sourceTree = ""; }; + 4CD19C8C2E9CBBC80069DAA0 /* EPLoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginService.swift; sourceTree = ""; }; + 4CD19C902E9CBBD30069DAA0 /* EPLoginBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginBridge.swift; sourceTree = ""; }; + 4CD19C922E9CCF2C0069DAA0 /* EPLoginConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginConfig.swift; sourceTree = ""; }; + 4CD19C942E9CDF980069DAA0 /* AdvertiseModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdvertiseModel.h; sourceTree = ""; }; + 4CD19C952E9CDF980069DAA0 /* AdvertiseModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AdvertiseModel.m; sourceTree = ""; }; + 4CD19C962E9CDF980069DAA0 /* XPAdImageTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAdImageTool.h; sourceTree = ""; }; + 4CD19C972E9CDF980069DAA0 /* XPAdImageTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAdImageTool.m; sourceTree = ""; }; + 4CD19C982E9CDF980069DAA0 /* XPAdvertiseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAdvertiseView.h; sourceTree = ""; }; + 4CD19C992E9CDF980069DAA0 /* XPAdvertiseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAdvertiseView.m; sourceTree = ""; }; + 4CD19C9B2E9CDF980069DAA0 /* emoj_s_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_normal@2x.png"; sourceTree = ""; }; + 4CD19C9C2E9CDF980069DAA0 /* emoj_s_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_pressed@2x.png"; sourceTree = ""; }; + 4CD19C9D2E9CDF980069DAA0 /* emoji.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = emoji.xml; sourceTree = ""; }; + 4CD19C9E2E9CDF980069DAA0 /* emoji_00@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_00@2x.png"; sourceTree = ""; }; + 4CD19C9F2E9CDF980069DAA0 /* emoji_01@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_01@2x.png"; sourceTree = ""; }; + 4CD19CA02E9CDF980069DAA0 /* emoji_02@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_02@2x.png"; sourceTree = ""; }; + 4CD19CA12E9CDF980069DAA0 /* emoji_03@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_03@2x.png"; sourceTree = ""; }; + 4CD19CA22E9CDF980069DAA0 /* emoji_04@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_04@2x.png"; sourceTree = ""; }; + 4CD19CA32E9CDF980069DAA0 /* emoji_05@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_05@2x.png"; sourceTree = ""; }; + 4CD19CA42E9CDF980069DAA0 /* emoji_06@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_06@2x.png"; sourceTree = ""; }; + 4CD19CA52E9CDF980069DAA0 /* emoji_07@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_07@2x.png"; sourceTree = ""; }; + 4CD19CA62E9CDF980069DAA0 /* emoji_08@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_08@2x.png"; sourceTree = ""; }; + 4CD19CA72E9CDF980069DAA0 /* emoji_09@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_09@2x.png"; sourceTree = ""; }; + 4CD19CA82E9CDF980069DAA0 /* emoji_10@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_10@2x.png"; sourceTree = ""; }; + 4CD19CA92E9CDF980069DAA0 /* emoji_11@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_11@2x.png"; sourceTree = ""; }; + 4CD19CAA2E9CDF980069DAA0 /* emoji_12@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_12@2x.png"; sourceTree = ""; }; + 4CD19CAB2E9CDF980069DAA0 /* emoji_13@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_13@2x.png"; sourceTree = ""; }; + 4CD19CAC2E9CDF980069DAA0 /* emoji_14@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_14@2x.png"; sourceTree = ""; }; + 4CD19CAD2E9CDF980069DAA0 /* emoji_15@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_15@2x.png"; sourceTree = ""; }; + 4CD19CAE2E9CDF980069DAA0 /* emoji_16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_16@2x.png"; sourceTree = ""; }; + 4CD19CAF2E9CDF980069DAA0 /* emoji_17@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_17@2x.png"; sourceTree = ""; }; + 4CD19CB02E9CDF980069DAA0 /* emoji_18@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_18@2x.png"; sourceTree = ""; }; + 4CD19CB12E9CDF980069DAA0 /* emoji_19@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_19@2x.png"; sourceTree = ""; }; + 4CD19CB22E9CDF980069DAA0 /* emoji_20@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_20@2x.png"; sourceTree = ""; }; + 4CD19CB32E9CDF980069DAA0 /* emoji_21@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_21@2x.png"; sourceTree = ""; }; + 4CD19CB42E9CDF980069DAA0 /* emoji_22@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_22@2x.png"; sourceTree = ""; }; + 4CD19CB52E9CDF980069DAA0 /* emoji_23@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_23@2x.png"; sourceTree = ""; }; + 4CD19CB62E9CDF980069DAA0 /* emoji_24@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_24@2x.png"; sourceTree = ""; }; + 4CD19CB72E9CDF980069DAA0 /* emoji_25@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_25@2x.png"; sourceTree = ""; }; + 4CD19CB82E9CDF980069DAA0 /* emoji_26@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_26@2x.png"; sourceTree = ""; }; + 4CD19CB92E9CDF980069DAA0 /* emoji_27@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_27@2x.png"; sourceTree = ""; }; + 4CD19CBA2E9CDF980069DAA0 /* emoji_28@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_28@2x.png"; sourceTree = ""; }; + 4CD19CBB2E9CDF980069DAA0 /* emoji_29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_29@2x.png"; sourceTree = ""; }; + 4CD19CBC2E9CDF980069DAA0 /* emoji_30@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_30@2x.png"; sourceTree = ""; }; + 4CD19CBD2E9CDF980069DAA0 /* emoji_31@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_31@2x.png"; sourceTree = ""; }; + 4CD19CBE2E9CDF980069DAA0 /* emoji_32@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_32@2x.png"; sourceTree = ""; }; + 4CD19CBF2E9CDF980069DAA0 /* emoji_33@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_33@2x.png"; sourceTree = ""; }; + 4CD19CC02E9CDF980069DAA0 /* emoji_34@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_34@2x.png"; sourceTree = ""; }; + 4CD19CC12E9CDF980069DAA0 /* emoji_35@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_35@2x.png"; sourceTree = ""; }; + 4CD19CC22E9CDF980069DAA0 /* emoji_36@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_36@2x.png"; sourceTree = ""; }; + 4CD19CC32E9CDF980069DAA0 /* emoji_37@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_37@2x.png"; sourceTree = ""; }; + 4CD19CC42E9CDF980069DAA0 /* emoji_38@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_38@2x.png"; sourceTree = ""; }; + 4CD19CC52E9CDF980069DAA0 /* emoji_39@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_39@2x.png"; sourceTree = ""; }; + 4CD19CC62E9CDF980069DAA0 /* emoji_40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_40@2x.png"; sourceTree = ""; }; + 4CD19CC72E9CDF980069DAA0 /* emoji_41@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_41@2x.png"; sourceTree = ""; }; + 4CD19CC82E9CDF980069DAA0 /* emoji_42@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_42@2x.png"; sourceTree = ""; }; + 4CD19CC92E9CDF980069DAA0 /* emoji_43@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_43@2x.png"; sourceTree = ""; }; + 4CD19CCA2E9CDF980069DAA0 /* emoji_44@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_44@2x.png"; sourceTree = ""; }; + 4CD19CCB2E9CDF980069DAA0 /* emoji_45@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_45@2x.png"; sourceTree = ""; }; + 4CD19CCC2E9CDF980069DAA0 /* emoji_46@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_46@2x.png"; sourceTree = ""; }; + 4CD19CCD2E9CDF980069DAA0 /* emoji_47@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_47@2x.png"; sourceTree = ""; }; + 4CD19CCE2E9CDF980069DAA0 /* emoji_48@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_48@2x.png"; sourceTree = ""; }; + 4CD19CCF2E9CDF980069DAA0 /* emoji_49@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_49@2x.png"; sourceTree = ""; }; + 4CD19CD02E9CDF980069DAA0 /* emoji_50@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_50@2x.png"; sourceTree = ""; }; + 4CD19CD12E9CDF980069DAA0 /* emoji_51@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_51@2x.png"; sourceTree = ""; }; + 4CD19CD22E9CDF980069DAA0 /* emoji_52@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_52@2x.png"; sourceTree = ""; }; + 4CD19CD32E9CDF980069DAA0 /* emoji_53@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_53@2x.png"; sourceTree = ""; }; + 4CD19CD42E9CDF980069DAA0 /* emoji_54@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_54@2x.png"; sourceTree = ""; }; + 4CD19CD52E9CDF980069DAA0 /* emoji_55@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_55@2x.png"; sourceTree = ""; }; + 4CD19CD62E9CDF980069DAA0 /* emoji_56@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_56@2x.png"; sourceTree = ""; }; + 4CD19CD72E9CDF980069DAA0 /* emoji_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_57@2x.png"; sourceTree = ""; }; + 4CD19CD82E9CDF980069DAA0 /* emoji_58@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_58@2x.png"; sourceTree = ""; }; + 4CD19CD92E9CDF980069DAA0 /* emoji_59@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_59@2x.png"; sourceTree = ""; }; + 4CD19CDA2E9CDF980069DAA0 /* emoji_60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_60@2x.png"; sourceTree = ""; }; + 4CD19CDB2E9CDF980069DAA0 /* emoji_61@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_61@2x.png"; sourceTree = ""; }; + 4CD19CDC2E9CDF980069DAA0 /* emoji_62@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_62@2x.png"; sourceTree = ""; }; + 4CD19CDD2E9CDF980069DAA0 /* emoji_63@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_63@2x.png"; sourceTree = ""; }; + 4CD19CDE2E9CDF980069DAA0 /* emoji_64@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_64@2x.png"; sourceTree = ""; }; + 4CD19CDF2E9CDF980069DAA0 /* emoji_65@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_65@2x.png"; sourceTree = ""; }; + 4CD19CE02E9CDF980069DAA0 /* emoji_66@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_66@2x.png"; sourceTree = ""; }; + 4CD19CE12E9CDF980069DAA0 /* emoji_67@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_67@2x.png"; sourceTree = ""; }; + 4CD19CE22E9CDF980069DAA0 /* emoji_68@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_68@2x.png"; sourceTree = ""; }; + 4CD19CE32E9CDF980069DAA0 /* emoji_69@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_69@2x.png"; sourceTree = ""; }; + 4CD19CE42E9CDF980069DAA0 /* emoji_70@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_70@2x.png"; sourceTree = ""; }; + 4CD19CE52E9CDF980069DAA0 /* emoji_71@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_71@2x.png"; sourceTree = ""; }; + 4CD19CE62E9CDF980069DAA0 /* emoji_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_72@2x.png"; sourceTree = ""; }; + 4CD19CE72E9CDF980069DAA0 /* emoji_73@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_73@2x.png"; sourceTree = ""; }; + 4CD19CE82E9CDF980069DAA0 /* emoji_74@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_74@2x.png"; sourceTree = ""; }; + 4CD19CE92E9CDF980069DAA0 /* emoji_75@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_75@2x.png"; sourceTree = ""; }; + 4CD19CEA2E9CDF980069DAA0 /* emoji_76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_76@2x.png"; sourceTree = ""; }; + 4CD19CEB2E9CDF980069DAA0 /* emoji_77@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_77@2x.png"; sourceTree = ""; }; + 4CD19CEC2E9CDF980069DAA0 /* emoji_78@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_78@2x.png"; sourceTree = ""; }; + 4CD19CED2E9CDF980069DAA0 /* emoji_79@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_79@2x.png"; sourceTree = ""; }; + 4CD19CEE2E9CDF980069DAA0 /* emoji_80@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_80@2x.png"; sourceTree = ""; }; + 4CD19CEF2E9CDF980069DAA0 /* emoji_81@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_81@2x.png"; sourceTree = ""; }; + 4CD19CF02E9CDF980069DAA0 /* emoji_82@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_82@2x.png"; sourceTree = ""; }; + 4CD19CF12E9CDF980069DAA0 /* emoji_83@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_83@2x.png"; sourceTree = ""; }; + 4CD19CF22E9CDF980069DAA0 /* emoji_84@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_84@2x.png"; sourceTree = ""; }; + 4CD19CF32E9CDF980069DAA0 /* emoji_85@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_85@2x.png"; sourceTree = ""; }; + 4CD19CF42E9CDF980069DAA0 /* emoji_86@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_86@2x.png"; sourceTree = ""; }; + 4CD19CF52E9CDF980069DAA0 /* emoji_87@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_87@2x.png"; sourceTree = ""; }; + 4CD19CF62E9CDF980069DAA0 /* emoji_88@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_88@2x.png"; sourceTree = ""; }; + 4CD19CF72E9CDF980069DAA0 /* emoji_89@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_89@2x.png"; sourceTree = ""; }; + 4CD19CF82E9CDF980069DAA0 /* emoji_90@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_90@2x.png"; sourceTree = ""; }; + 4CD19CF92E9CDF980069DAA0 /* emoji_91@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_91@2x.png"; sourceTree = ""; }; + 4CD19CFA2E9CDF980069DAA0 /* emoji_92@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_92@2x.png"; sourceTree = ""; }; + 4CD19CFB2E9CDF980069DAA0 /* emoji_93@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_93@2x.png"; sourceTree = ""; }; + 4CD19CFC2E9CDF980069DAA0 /* emoji_94@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_94@2x.png"; sourceTree = ""; }; + 4CD19CFD2E9CDF980069DAA0 /* emoji_95@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_95@2x.png"; sourceTree = ""; }; + 4CD19CFE2E9CDF980069DAA0 /* emoji_96@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_96@2x.png"; sourceTree = ""; }; + 4CD19CFF2E9CDF980069DAA0 /* emoji_97@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_97@2x.png"; sourceTree = ""; }; + 4CD19D002E9CDF980069DAA0 /* emoji_98@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_98@2x.png"; sourceTree = ""; }; + 4CD19D012E9CDF980069DAA0 /* emoji_99@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_99@2x.png"; sourceTree = ""; }; + 4CD19D022E9CDF980069DAA0 /* emoji_100@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_100@2x.png"; sourceTree = ""; }; + 4CD19D032E9CDF980069DAA0 /* emoji_101@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_101@2x.png"; sourceTree = ""; }; + 4CD19D042E9CDF980069DAA0 /* emoji_102@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_102@2x.png"; sourceTree = ""; }; + 4CD19D052E9CDF980069DAA0 /* emoji_103@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_103@2x.png"; sourceTree = ""; }; + 4CD19D062E9CDF980069DAA0 /* emoji_104@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_104@2x.png"; sourceTree = ""; }; + 4CD19D072E9CDF980069DAA0 /* emoji_105@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_105@2x.png"; sourceTree = ""; }; + 4CD19D082E9CDF980069DAA0 /* emoji_106@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_106@2x.png"; sourceTree = ""; }; + 4CD19D092E9CDF980069DAA0 /* emoji_107@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_107@2x.png"; sourceTree = ""; }; + 4CD19D0A2E9CDF980069DAA0 /* emoji_108@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_108@2x.png"; sourceTree = ""; }; + 4CD19D0B2E9CDF980069DAA0 /* emoji_109@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_109@2x.png"; sourceTree = ""; }; + 4CD19D0C2E9CDF980069DAA0 /* emoji_110@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_110@2x.png"; sourceTree = ""; }; + 4CD19D0D2E9CDF980069DAA0 /* emoji_111@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_111@2x.png"; sourceTree = ""; }; + 4CD19D0E2E9CDF980069DAA0 /* emoji_112@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_112@2x.png"; sourceTree = ""; }; + 4CD19D0F2E9CDF980069DAA0 /* emoji_113@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_113@2x.png"; sourceTree = ""; }; + 4CD19D102E9CDF980069DAA0 /* emoji_114@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_114@2x.png"; sourceTree = ""; }; + 4CD19D112E9CDF980069DAA0 /* emoji_115@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_115@2x.png"; sourceTree = ""; }; + 4CD19D122E9CDF980069DAA0 /* emoji_116@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_116@2x.png"; sourceTree = ""; }; + 4CD19D132E9CDF980069DAA0 /* emoji_117@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_117@2x.png"; sourceTree = ""; }; + 4CD19D142E9CDF980069DAA0 /* emoji_118@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_118@2x.png"; sourceTree = ""; }; + 4CD19D152E9CDF980069DAA0 /* emoji_119@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_119@2x.png"; sourceTree = ""; }; + 4CD19D162E9CDF980069DAA0 /* emoji_120@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_120@2x.png"; sourceTree = ""; }; + 4CD19D172E9CDF980069DAA0 /* emoji_121@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_121@2x.png"; sourceTree = ""; }; + 4CD19D182E9CDF980069DAA0 /* emoji_122@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_122@2x.png"; sourceTree = ""; }; + 4CD19D192E9CDF980069DAA0 /* emoji_123@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_123@2x.png"; sourceTree = ""; }; + 4CD19D1A2E9CDF980069DAA0 /* emoji_124@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_124@2x.png"; sourceTree = ""; }; + 4CD19D1B2E9CDF980069DAA0 /* emoji_125@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_125@2x.png"; sourceTree = ""; }; + 4CD19D1C2E9CDF980069DAA0 /* emoji_126@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_126@2x.png"; sourceTree = ""; }; + 4CD19D1D2E9CDF980069DAA0 /* emoji_127@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_127@2x.png"; sourceTree = ""; }; + 4CD19D1E2E9CDF980069DAA0 /* emoji_128@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_128@2x.png"; sourceTree = ""; }; + 4CD19D1F2E9CDF980069DAA0 /* emoji_129@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_129@2x.png"; sourceTree = ""; }; + 4CD19D202E9CDF980069DAA0 /* emoji_130@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_130@2x.png"; sourceTree = ""; }; + 4CD19D212E9CDF980069DAA0 /* emoji_131@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_131@2x.png"; sourceTree = ""; }; + 4CD19D222E9CDF980069DAA0 /* emoji_132@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_132@2x.png"; sourceTree = ""; }; + 4CD19D232E9CDF980069DAA0 /* emoji_133@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_133@2x.png"; sourceTree = ""; }; + 4CD19D242E9CDF980069DAA0 /* emoji_134@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_134@2x.png"; sourceTree = ""; }; + 4CD19D252E9CDF980069DAA0 /* emoji_135@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_135@2x.png"; sourceTree = ""; }; + 4CD19D262E9CDF980069DAA0 /* emoji_136@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_136@2x.png"; sourceTree = ""; }; + 4CD19D272E9CDF980069DAA0 /* emoji_137@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_137@2x.png"; sourceTree = ""; }; + 4CD19D282E9CDF980069DAA0 /* emoji_138@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_138@2x.png"; sourceTree = ""; }; + 4CD19D292E9CDF980069DAA0 /* emoji_139@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_139@2x.png"; sourceTree = ""; }; + 4CD19D2A2E9CDF980069DAA0 /* emoji_140@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_140@2x.png"; sourceTree = ""; }; + 4CD19D2B2E9CDF980069DAA0 /* emoji_141@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_141@2x.png"; sourceTree = ""; }; + 4CD19D2C2E9CDF980069DAA0 /* emoji_142@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_142@2x.png"; sourceTree = ""; }; + 4CD19D2D2E9CDF980069DAA0 /* emoji_143@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_143@2x.png"; sourceTree = ""; }; + 4CD19D2E2E9CDF980069DAA0 /* emoji_144@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_144@2x.png"; sourceTree = ""; }; + 4CD19D2F2E9CDF980069DAA0 /* emoji_145@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_145@2x.png"; sourceTree = ""; }; + 4CD19D302E9CDF980069DAA0 /* emoji_146@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_146@2x.png"; sourceTree = ""; }; + 4CD19D312E9CDF980069DAA0 /* emoji_147@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_147@2x.png"; sourceTree = ""; }; + 4CD19D322E9CDF980069DAA0 /* emoji_148@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_148@2x.png"; sourceTree = ""; }; + 4CD19D332E9CDF980069DAA0 /* emoji_149@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_149@2x.png"; sourceTree = ""; }; + 4CD19D342E9CDF980069DAA0 /* emoji_150@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_150@2x.png"; sourceTree = ""; }; + 4CD19D352E9CDF980069DAA0 /* emoji_151@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_151@2x.png"; sourceTree = ""; }; + 4CD19D362E9CDF980069DAA0 /* emoji_152@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_152@2x.png"; sourceTree = ""; }; + 4CD19D372E9CDF980069DAA0 /* emoji_160@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_160@2x.png"; sourceTree = ""; }; + 4CD19D382E9CDF980069DAA0 /* emoji_161@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_161@2x.png"; sourceTree = ""; }; + 4CD19D392E9CDF980069DAA0 /* emoji_162@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_162@2x.png"; sourceTree = ""; }; + 4CD19D3A2E9CDF980069DAA0 /* emoji_163@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_163@2x.png"; sourceTree = ""; }; + 4CD19D3B2E9CDF980069DAA0 /* emoji_164@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_164@2x.png"; sourceTree = ""; }; + 4CD19D3C2E9CDF980069DAA0 /* emoji_165@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_165@2x.png"; sourceTree = ""; }; + 4CD19D3D2E9CDF980069DAA0 /* emoji_166@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_166@2x.png"; sourceTree = ""; }; + 4CD19D3E2E9CDF980069DAA0 /* emoji_200@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_200@2x.png"; sourceTree = ""; }; + 4CD19D3F2E9CDF980069DAA0 /* emoji_del_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_normal@2x.png"; sourceTree = ""; }; + 4CD19D402E9CDF980069DAA0 /* emoji_del_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_pressed@2x.png"; sourceTree = ""; }; + 4CD19D422E9CDF980069DAA0 /* QEEmotionImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEEmotionImageView.h; sourceTree = ""; }; + 4CD19D432E9CDF980069DAA0 /* QEEmotionImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEEmotionImageView.m; sourceTree = ""; }; + 4CD19D442E9CDF980069DAA0 /* QEmotion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEmotion.h; sourceTree = ""; }; + 4CD19D452E9CDF980069DAA0 /* QEmotion.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEmotion.m; sourceTree = ""; }; + 4CD19D462E9CDF980069DAA0 /* QEmotionAttachment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEmotionAttachment.h; sourceTree = ""; }; + 4CD19D472E9CDF980069DAA0 /* QEmotionAttachment.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEmotionAttachment.m; sourceTree = ""; }; + 4CD19D482E9CDF980069DAA0 /* QEmotionBoardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEmotionBoardView.h; sourceTree = ""; }; + 4CD19D492E9CDF980069DAA0 /* QEmotionBoardView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEmotionBoardView.m; sourceTree = ""; }; + 4CD19D4A2E9CDF980069DAA0 /* QEmotionHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEmotionHelper.h; sourceTree = ""; }; + 4CD19D4B2E9CDF980069DAA0 /* QEmotionHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEmotionHelper.m; sourceTree = ""; }; + 4CD19D4C2E9CDF980069DAA0 /* QExtendBoardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QExtendBoardView.h; sourceTree = ""; }; + 4CD19D4D2E9CDF980069DAA0 /* QExtendBoardView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QExtendBoardView.m; sourceTree = ""; }; + 4CD19D4E2E9CDF980069DAA0 /* QInputBarView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QInputBarView.h; sourceTree = ""; }; + 4CD19D4F2E9CDF980069DAA0 /* QInputBarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QInputBarView.m; sourceTree = ""; }; + 4CD19D502E9CDF980069DAA0 /* QInputBarViewConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QInputBarViewConfiguration.h; sourceTree = ""; }; + 4CD19D512E9CDF980069DAA0 /* QInputBarViewConfiguration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QInputBarViewConfiguration.m; sourceTree = ""; }; + 4CD19D522E9CDF980069DAA0 /* QInputPhototCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QInputPhototCell.h; sourceTree = ""; }; + 4CD19D532E9CDF980069DAA0 /* QInputPhototCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QInputPhototCell.m; sourceTree = ""; }; + 4CD19D542E9CDF980069DAA0 /* QinputPhotoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QinputPhotoView.h; sourceTree = ""; }; + 4CD19D552E9CDF980069DAA0 /* QinputPhotoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QinputPhotoView.m; sourceTree = ""; }; + 4CD19D562E9CDF980069DAA0 /* QKeyboardBaseManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QKeyboardBaseManager.h; sourceTree = ""; }; + 4CD19D572E9CDF980069DAA0 /* QKeyboardBaseManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QKeyboardBaseManager.m; sourceTree = ""; }; + 4CD19D582E9CDF980069DAA0 /* QKeyboardManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QKeyboardManager.h; sourceTree = ""; }; + 4CD19D592E9CDF980069DAA0 /* QKeyboardManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QKeyboardManager.m; sourceTree = ""; }; + 4CD19D5A2E9CDF980069DAA0 /* QPhotoImageModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QPhotoImageModel.h; sourceTree = ""; }; + 4CD19D5B2E9CDF980069DAA0 /* QPhotoImageModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QPhotoImageModel.m; sourceTree = ""; }; + 4CD19D5C2E9CDF980069DAA0 /* UITextView+QEmotion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITextView+QEmotion.h"; sourceTree = ""; }; + 4CD19D5D2E9CDF980069DAA0 /* UITextView+QEmotion.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITextView+QEmotion.m"; sourceTree = ""; }; + 4CD19D5F2E9CDF980069DAA0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4CD19D602E9CDF980069DAA0 /* emoji.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = emoji.plist; sourceTree = ""; }; + 4CD19D622E9CDF980069DAA0 /* MSBaseRTLFlowLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSBaseRTLFlowLayout.h; sourceTree = ""; }; + 4CD19D632E9CDF980069DAA0 /* MSBaseRTLFlowLayout.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSBaseRTLFlowLayout.m; sourceTree = ""; }; + 4CD19D642E9CDF980069DAA0 /* MSBaseTextField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSBaseTextField.h; sourceTree = ""; }; + 4CD19D652E9CDF980069DAA0 /* MSBaseTextField.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSBaseTextField.m; sourceTree = ""; }; + 4CD19D662E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSMutableAttributedString+MSRTL.h"; sourceTree = ""; }; + 4CD19D672E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableAttributedString+MSRTL.m"; sourceTree = ""; }; + 4CD19D682E9CDF980069DAA0 /* UIButton+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIButton+MSRTL.h"; sourceTree = ""; }; + 4CD19D692E9CDF980069DAA0 /* UIButton+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIButton+MSRTL.m"; sourceTree = ""; }; + 4CD19D6A2E9CDF980069DAA0 /* UIImage+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+MSRTL.h"; sourceTree = ""; }; + 4CD19D6B2E9CDF980069DAA0 /* UIImage+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+MSRTL.m"; sourceTree = ""; }; + 4CD19D6C2E9CDF980069DAA0 /* UILabel+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+MSRTL.h"; sourceTree = ""; }; + 4CD19D6D2E9CDF980069DAA0 /* UILabel+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+MSRTL.m"; sourceTree = ""; }; + 4CD19D6E2E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UISwipeGestureRecognizer+MSRTL.h"; sourceTree = ""; }; + 4CD19D6F2E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UISwipeGestureRecognizer+MSRTL.m"; sourceTree = ""; }; + 4CD19D702E9CDF980069DAA0 /* UITextField+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITextField+MSRTL.h"; sourceTree = ""; }; + 4CD19D712E9CDF980069DAA0 /* UITextField+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITextField+MSRTL.m"; sourceTree = ""; }; + 4CD19D722E9CDF980069DAA0 /* UITextView+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UITextView+MSRTL.h"; sourceTree = ""; }; + 4CD19D732E9CDF980069DAA0 /* UITextView+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UITextView+MSRTL.m"; sourceTree = ""; }; + 4CD19D742E9CDF980069DAA0 /* YYLabel+MSRTL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YYLabel+MSRTL.h"; sourceTree = ""; }; + 4CD19D752E9CDF980069DAA0 /* YYLabel+MSRTL.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "YYLabel+MSRTL.m"; sourceTree = ""; }; + 4CD19D772E9CDF980069DAA0 /* XPShareInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareInfoModel.h; sourceTree = ""; }; + 4CD19D782E9CDF980069DAA0 /* XPShareInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareInfoModel.m; sourceTree = ""; }; + 4CD19D792E9CDF980069DAA0 /* XPShareItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareItem.h; sourceTree = ""; }; + 4CD19D7A2E9CDF980069DAA0 /* XPShareItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareItem.m; sourceTree = ""; }; + 4CD19D7C2E9CDF980069DAA0 /* XPShareItemCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareItemCell.h; sourceTree = ""; }; + 4CD19D7D2E9CDF980069DAA0 /* XPShareItemCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareItemCell.m; sourceTree = ""; }; + 4CD19D7F2E9CDF980069DAA0 /* XPShareView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareView.h; sourceTree = ""; }; + 4CD19D802E9CDF980069DAA0 /* XPShareView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareView.m; sourceTree = ""; }; + 4CD19D822E9CDF980069DAA0 /* XPSVGAPlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSVGAPlayer.h; sourceTree = ""; }; + 4CD19D832E9CDF980069DAA0 /* XPSVGAPlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSVGAPlayer.m; sourceTree = ""; }; + 4CD19D852E9CDF980069DAA0 /* XPSwitch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSwitch.h; sourceTree = ""; }; + 4CD19D862E9CDF980069DAA0 /* XPSwitch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSwitch.m; sourceTree = ""; }; + 4CD19D882E9CDF980069DAA0 /* TTActionSheetConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTActionSheetConfig.h; sourceTree = ""; }; + 4CD19D892E9CDF980069DAA0 /* TTActionSheetConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetConfig.m; sourceTree = ""; }; + 4CD19D8A2E9CDF980069DAA0 /* TTAlertButtonConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTAlertButtonConfig.h; sourceTree = ""; }; + 4CD19D8B2E9CDF980069DAA0 /* TTAlertButtonConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTAlertButtonConfig.m; sourceTree = ""; }; + 4CD19D8C2E9CDF980069DAA0 /* TTAlertConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTAlertConfig.h; sourceTree = ""; }; + 4CD19D8D2E9CDF980069DAA0 /* TTAlertConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTAlertConfig.m; sourceTree = ""; }; + 4CD19D8E2E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTAlertMessageAttributedConfig.h; sourceTree = ""; }; + 4CD19D8F2E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTAlertMessageAttributedConfig.m; sourceTree = ""; }; + 4CD19D912E9CDF980069DAA0 /* TTPopupConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopupConstants.h; sourceTree = ""; }; + 4CD19D932E9CDF980069DAA0 /* TTPopupManagerService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerService.h; sourceTree = ""; }; + 4CD19D942E9CDF980069DAA0 /* TTPopupManagerService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTPopupManagerService.m; sourceTree = ""; }; + 4CD19D952E9CDF980069DAA0 /* TTPopupManagerServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopupManagerServiceProtocol.h; sourceTree = ""; }; + 4CD19D972E9CDF980069DAA0 /* TTPopupService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopupService.h; sourceTree = ""; }; + 4CD19D982E9CDF980069DAA0 /* TTPopupService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTPopupService.m; sourceTree = ""; }; + 4CD19D992E9CDF980069DAA0 /* TTPopupServiceProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopupServiceProtocol.h; sourceTree = ""; }; + 4CD19D9B2E9CDF980069DAA0 /* TTActionSheetView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTActionSheetView.h; sourceTree = ""; }; + 4CD19D9C2E9CDF980069DAA0 /* TTActionSheetView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTActionSheetView.m; sourceTree = ""; }; + 4CD19D9D2E9CDF980069DAA0 /* TTAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTAlertView.h; sourceTree = ""; }; + 4CD19D9E2E9CDF980069DAA0 /* TTAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTAlertView.m; sourceTree = ""; }; + 4CD19D9F2E9CDF980069DAA0 /* TTNewAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTNewAlertView.h; sourceTree = ""; }; + 4CD19DA02E9CDF980069DAA0 /* TTNewAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTNewAlertView.m; sourceTree = ""; }; + 4CD19DA22E9CDF980069DAA0 /* TTPopup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TTPopup.h; sourceTree = ""; }; + 4CD19DA32E9CDF980069DAA0 /* TTPopup.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TTPopup.m; sourceTree = ""; }; + 4CD19DA52E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIButton+EnlargeTouchArea.h"; sourceTree = ""; }; + 4CD19DA62E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIButton+EnlargeTouchArea.m"; sourceTree = ""; }; + 4CD19DA82E9CDF980069DAA0 /* UIImage+Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+Utils.h"; sourceTree = ""; }; + 4CD19DA92E9CDF980069DAA0 /* UIImage+Utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Utils.m"; sourceTree = ""; }; + 4CD19DAB2E9CDF980069DAA0 /* NetImageConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetImageConfig.h; sourceTree = ""; }; + 4CD19DAC2E9CDF980069DAA0 /* NetImageConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetImageConfig.m; sourceTree = ""; }; + 4CD19DAD2E9CDF980069DAA0 /* NetImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetImageView.h; sourceTree = ""; }; + 4CD19DAE2E9CDF980069DAA0 /* NetImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetImageView.m; sourceTree = ""; }; + 4CD19DAF2E9CDF980069DAA0 /* UIImageConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIImageConstant.h; sourceTree = ""; }; + 4CD19DB02E9CDF980069DAA0 /* UIImageConstant.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIImageConstant.m; sourceTree = ""; }; + 4CD19DB22E9CDF980069DAA0 /* UIView+Corner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Corner.h"; sourceTree = ""; }; + 4CD19DB32E9CDF980069DAA0 /* UIView+Corner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Corner.m"; sourceTree = ""; }; + 4CD19DB52E9CDF980069DAA0 /* UIView+GradientLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+GradientLayer.h"; sourceTree = ""; }; + 4CD19DB62E9CDF980069DAA0 /* UIView+GradientLayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+GradientLayer.m"; sourceTree = ""; }; + 4CD19DB82E9CDF980069DAA0 /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; + 4CD19DB92E9CDF980069DAA0 /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; + 4CD19DBB2E9CDF980069DAA0 /* DJDKMIMOMColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DJDKMIMOMColor.h; sourceTree = ""; }; + 4CD19DBC2E9CDF980069DAA0 /* DJDKMIMOMColor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DJDKMIMOMColor.m; sourceTree = ""; }; + 4CD19DBD2E9CDF980069DAA0 /* EmptyDataView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmptyDataView.h; sourceTree = ""; }; + 4CD19DBE2E9CDF980069DAA0 /* EmptyDataView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EmptyDataView.m; sourceTree = ""; }; + 4CD19DBF2E9CDF980069DAA0 /* MoliAvatar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoliAvatar.h; sourceTree = ""; }; + 4CD19DC02E9CDF980069DAA0 /* MoliAvatar.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoliAvatar.m; sourceTree = ""; }; + 4CD19DC12E9CDF980069DAA0 /* MoliMoneyLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoliMoneyLabel.h; sourceTree = ""; }; + 4CD19DC22E9CDF980069DAA0 /* MoliMoneyLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoliMoneyLabel.m; sourceTree = ""; }; + 4CD19DC32E9CDF980069DAA0 /* SexAgeLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SexAgeLabel.h; sourceTree = ""; }; + 4CD19DC42E9CDF980069DAA0 /* SexAgeLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SexAgeLabel.m; sourceTree = ""; }; + 4CD19DC52E9CDF980069DAA0 /* XCCurrentVCStackManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCCurrentVCStackManager.h; sourceTree = ""; }; + 4CD19DC62E9CDF980069DAA0 /* XCCurrentVCStackManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCCurrentVCStackManager.m; sourceTree = ""; }; + 4CD19DC72E9CDF980069DAA0 /* XNDJTDDLoadingTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XNDJTDDLoadingTool.h; sourceTree = ""; }; + 4CD19DC82E9CDF980069DAA0 /* XNDJTDDLoadingTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XNDJTDDLoadingTool.m; sourceTree = ""; }; + 4CD19EAC2E9CDFC30069DAA0 /* EPLoginButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginButton.swift; sourceTree = ""; }; + 4CD19EAD2E9CDFC30069DAA0 /* EPLoginInputView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EPLoginInputView.swift; sourceTree = ""; }; 4CD401452E7183A8003F5009 /* XPPartyRoomItemCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPPartyRoomItemCollectionViewCell.h; sourceTree = ""; }; 4CD401462E7183A8003F5009 /* XPPartyRoomItemCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPPartyRoomItemCollectionViewCell.m; sourceTree = ""; }; 4CD401482E718E36003F5009 /* XPBlankRoomModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPBlankRoomModel.h; sourceTree = ""; }; @@ -2762,10 +3006,6 @@ 4CE746D42D92C1080094E496 /* BravoGiftWinningFlagView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BravoGiftWinningFlagView.m; sourceTree = ""; }; 4CEB9EA52D09643E00443480 /* UserRoomCardViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserRoomCardViewController.h; sourceTree = ""; }; 4CEB9EA62D09643E00443480 /* UserRoomCardViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserRoomCardViewController.m; sourceTree = ""; }; - 4CEB9EA82D097E8400443480 /* MoliAvatar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoliAvatar.h; sourceTree = ""; }; - 4CEB9EA92D097E8400443480 /* MoliAvatar.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoliAvatar.m; sourceTree = ""; }; - 4CEB9EAB2D09AA0400443480 /* SexAgeLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SexAgeLabel.h; sourceTree = ""; }; - 4CEB9EAC2D09AA0400443480 /* SexAgeLabel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SexAgeLabel.m; sourceTree = ""; }; 4CEB9EAE2D0AF4FE00443480 /* TwentyMicStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TwentyMicStageView.h; sourceTree = ""; }; 4CEB9EAF2D0AF4FE00443480 /* TwentyMicStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TwentyMicStageView.m; sourceTree = ""; }; 4CEB9EB12D0AFCE200443480 /* NineteenMicStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NineteenMicStageView.h; sourceTree = ""; }; @@ -3287,196 +3527,6 @@ E80E2376299A47F60013FD40 /* AESUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AESUtils.m; sourceTree = ""; }; E80E900A27E0358900434B90 /* XPRoomTopicAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTopicAlertView.h; sourceTree = ""; }; E80E900B27E0358900434B90 /* XPRoomTopicAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomTopicAlertView.m; sourceTree = ""; }; - E80EC74C28ACD84000D133C5 /* QEmotionBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QEmotionBoardView.m; sourceTree = ""; }; - E80EC74D28ACD84000D133C5 /* QEmotionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QEmotionHelper.h; sourceTree = ""; }; - E80EC74E28ACD84000D133C5 /* QInputBarViewConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QInputBarViewConfiguration.m; sourceTree = ""; }; - E80EC74F28ACD84000D133C5 /* UITextView+QEmotion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextView+QEmotion.m"; sourceTree = ""; }; - E80EC75028ACD84000D133C5 /* QInputBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QInputBarView.m; sourceTree = ""; }; - E80EC75128ACD84000D133C5 /* QKeyboardBaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKeyboardBaseManager.m; sourceTree = ""; }; - E80EC75228ACD84000D133C5 /* QEmotion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QEmotion.m; sourceTree = ""; }; - E80EC75328ACD84000D133C5 /* QKeyboardManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKeyboardManager.h; sourceTree = ""; }; - E80EC75428ACD84000D133C5 /* QEmotionAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QEmotionAttachment.h; sourceTree = ""; }; - E80EC75528ACD84000D133C5 /* QExtendBoardView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QExtendBoardView.m; sourceTree = ""; }; - E80EC75628ACD84000D133C5 /* UITextView+QEmotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextView+QEmotion.h"; sourceTree = ""; }; - E80EC75728ACD84000D133C5 /* QInputBarViewConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QInputBarViewConfiguration.h; sourceTree = ""; }; - E80EC75828ACD84000D133C5 /* QEmotionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QEmotionHelper.m; sourceTree = ""; }; - E80EC75928ACD84000D133C5 /* QEmotionBoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QEmotionBoardView.h; sourceTree = ""; }; - E80EC75A28ACD84000D133C5 /* QKeyboardBaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QKeyboardBaseManager.h; sourceTree = ""; }; - E80EC75B28ACD84000D133C5 /* QInputBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QInputBarView.h; sourceTree = ""; }; - E80EC75C28ACD84000D133C5 /* QExtendBoardView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QExtendBoardView.h; sourceTree = ""; }; - E80EC75D28ACD84000D133C5 /* QEmotionAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QEmotionAttachment.m; sourceTree = ""; }; - E80EC75E28ACD84000D133C5 /* QKeyboardManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QKeyboardManager.m; sourceTree = ""; }; - E80EC75F28ACD84000D133C5 /* QEmotion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QEmotion.h; sourceTree = ""; }; - E80EC76228ACD84000D133C5 /* emoji_138@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_138@2x.png"; sourceTree = ""; }; - E80EC76328ACD84000D133C5 /* emoji_145@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_145@2x.png"; sourceTree = ""; }; - E80EC76428ACD84000D133C5 /* emoji_126@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_126@2x.png"; sourceTree = ""; }; - E80EC76528ACD84000D133C5 /* emoji_134@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_134@2x.png"; sourceTree = ""; }; - E80EC76628ACD84000D133C5 /* emoji_149@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_149@2x.png"; sourceTree = ""; }; - E80EC76728ACD84000D133C5 /* emoji_80@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_80@2x.png"; sourceTree = ""; }; - E80EC76828ACD84000D133C5 /* emoji_161@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_161@2x.png"; sourceTree = ""; }; - E80EC76928ACD84000D133C5 /* emoji_102@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_102@2x.png"; sourceTree = ""; }; - E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_92@2x.png"; sourceTree = ""; }; - E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_110@2x.png"; sourceTree = ""; }; - E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_26@2x.png"; sourceTree = ""; }; - E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_45@2x.png"; sourceTree = ""; }; - E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_38@2x.png"; sourceTree = ""; }; - E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_49@2x.png"; sourceTree = ""; }; - E80EC77028ACD84000D133C5 /* emoji_34@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_34@2x.png"; sourceTree = ""; }; - E80EC77128ACD84000D133C5 /* emoji_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_57@2x.png"; sourceTree = ""; }; - E80EC77228ACD84000D133C5 /* emoji_02@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_02@2x.png"; sourceTree = ""; }; - E80EC77328ACD84000D133C5 /* emoji_61@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_61@2x.png"; sourceTree = ""; }; - E80EC77428ACD84000D133C5 /* emoji_10@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_10@2x.png"; sourceTree = ""; }; - E80EC77528ACD84000D133C5 /* emoji_73@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_73@2x.png"; sourceTree = ""; }; - E80EC77628ACD84000D133C5 /* emoji_55@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_55@2x.png"; sourceTree = ""; }; - E80EC77728ACD84000D133C5 /* emoji_28@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_28@2x.png"; sourceTree = ""; }; - E80EC77828ACD84000D133C5 /* emoji_36@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_36@2x.png"; sourceTree = ""; }; - E80EC77928ACD84000D133C5 /* emoji_47@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_47@2x.png"; sourceTree = ""; }; - E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_59@2x.png"; sourceTree = ""; }; - E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_24@2x.png"; sourceTree = ""; }; - E80EC77C28ACD84000D133C5 /* emoji.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = emoji.xml; sourceTree = ""; }; - E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_71@2x.png"; sourceTree = ""; }; - E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_12@2x.png"; sourceTree = ""; }; - E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_63@2x.png"; sourceTree = ""; }; - E80EC78028ACD84000D133C5 /* emoji_00@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_00@2x.png"; sourceTree = ""; }; - E80EC78128ACD84000D133C5 /* emoji_136@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_136@2x.png"; sourceTree = ""; }; - E80EC78228ACD84000D133C5 /* emoji_128@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_128@2x.png"; sourceTree = ""; }; - E80EC78328ACD84000D133C5 /* emoji_124@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_124@2x.png"; sourceTree = ""; }; - E80EC78428ACD84000D133C5 /* emoji_147@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_147@2x.png"; sourceTree = ""; }; - E80EC78528ACD84000D133C5 /* emoji_112@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_112@2x.png"; sourceTree = ""; }; - E80EC78628ACD84000D133C5 /* emoji_90@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_90@2x.png"; sourceTree = ""; }; - E80EC78728ACD84000D133C5 /* emoji_100@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_100@2x.png"; sourceTree = ""; }; - E80EC78828ACD84000D133C5 /* emoji_82@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_82@2x.png"; sourceTree = ""; }; - E80EC78928ACD84000D133C5 /* emoji_163@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_163@2x.png"; sourceTree = ""; }; - E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_67@2x.png"; sourceTree = ""; }; - E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_04@2x.png"; sourceTree = ""; }; - E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_79@2x.png"; sourceTree = ""; }; - E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_08@2x.png"; sourceTree = ""; }; - E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_75@2x.png"; sourceTree = ""; }; - E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_16@2x.png"; sourceTree = ""; }; - E80EC79028ACD84000D133C5 /* emoji_43@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_43@2x.png"; sourceTree = ""; }; - E80EC79128ACD84000D133C5 /* emoji_20@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_20@2x.png"; sourceTree = ""; }; - E80EC79228ACD84000D133C5 /* emoji_51@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_51@2x.png"; sourceTree = ""; }; - E80EC79328ACD84000D133C5 /* emoji_32@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_32@2x.png"; sourceTree = ""; }; - E80EC79428ACD84000D133C5 /* emoji_98@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_98@2x.png"; sourceTree = ""; }; - E80EC79528ACD84000D133C5 /* emoji_104@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_104@2x.png"; sourceTree = ""; }; - E80EC79628ACD84000D133C5 /* emoji_86@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_86@2x.png"; sourceTree = ""; }; - E80EC79728ACD84000D133C5 /* emoji_116@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_116@2x.png"; sourceTree = ""; }; - E80EC79828ACD84000D133C5 /* emoji_94@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_94@2x.png"; sourceTree = ""; }; - E80EC79928ACD84000D133C5 /* emoji_108@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_108@2x.png"; sourceTree = ""; }; - E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_120@2x.png"; sourceTree = ""; }; - E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_143@2x.png"; sourceTree = ""; }; - E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_132@2x.png"; sourceTree = ""; }; - E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_151@2x.png"; sourceTree = ""; }; - E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_96@2x.png"; sourceTree = ""; }; - E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_88@2x.png"; sourceTree = ""; }; - E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_114@2x.png"; sourceTree = ""; }; - E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_84@2x.png"; sourceTree = ""; }; - E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_165@2x.png"; sourceTree = ""; }; - E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_118@2x.png"; sourceTree = ""; }; - E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_106@2x.png"; sourceTree = ""; }; - E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_130@2x.png"; sourceTree = ""; }; - E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_141@2x.png"; sourceTree = ""; }; - E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_122@2x.png"; sourceTree = ""; }; - E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_14@2x.png"; sourceTree = ""; }; - E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_69@2x.png"; sourceTree = ""; }; - E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_77@2x.png"; sourceTree = ""; }; - E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_06@2x.png"; sourceTree = ""; }; - E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_18@2x.png"; sourceTree = ""; }; - E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_65@2x.png"; sourceTree = ""; }; - E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_30@2x.png"; sourceTree = ""; }; - E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_53@2x.png"; sourceTree = ""; }; - E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_22@2x.png"; sourceTree = ""; }; - E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_41@2x.png"; sourceTree = ""; }; - E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_60@2x.png"; sourceTree = ""; }; - E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_03@2x.png"; sourceTree = ""; }; - E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_72@2x.png"; sourceTree = ""; }; - E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_11@2x.png"; sourceTree = ""; }; - E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_39@2x.png"; sourceTree = ""; }; - E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_44@2x.png"; sourceTree = ""; }; - E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_27@2x.png"; sourceTree = ""; }; - E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_200@2x.png"; sourceTree = ""; }; - E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_56@2x.png"; sourceTree = ""; }; - E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_35@2x.png"; sourceTree = ""; }; - E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_48@2x.png"; sourceTree = ""; }; - E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_103@2x.png"; sourceTree = ""; }; - E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_81@2x.png"; sourceTree = ""; }; - E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_160@2x.png"; sourceTree = ""; }; - E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_111@2x.png"; sourceTree = ""; }; - E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_93@2x.png"; sourceTree = ""; }; - E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_127@2x.png"; sourceTree = ""; }; - E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_144@2x.png"; sourceTree = ""; }; - E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_139@2x.png"; sourceTree = ""; }; - E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_148@2x.png"; sourceTree = ""; }; - E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_135@2x.png"; sourceTree = ""; }; - E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_91@2x.png"; sourceTree = ""; }; - E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_113@2x.png"; sourceTree = ""; }; - E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_83@2x.png"; sourceTree = ""; }; - E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_162@2x.png"; sourceTree = ""; }; - E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_101@2x.png"; sourceTree = ""; }; - E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_129@2x.png"; sourceTree = ""; }; - E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_137@2x.png"; sourceTree = ""; }; - E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_146@2x.png"; sourceTree = ""; }; - E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_125@2x.png"; sourceTree = ""; }; - E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_13@2x.png"; sourceTree = ""; }; - E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_70@2x.png"; sourceTree = ""; }; - E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_01@2x.png"; sourceTree = ""; }; - E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_62@2x.png"; sourceTree = ""; }; - E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_37@2x.png"; sourceTree = ""; }; - E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_29@2x.png"; sourceTree = ""; }; - E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_54@2x.png"; sourceTree = ""; }; - E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_normal@2x.png"; sourceTree = ""; }; - E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_25@2x.png"; sourceTree = ""; }; - E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_58@2x.png"; sourceTree = ""; }; - E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_46@2x.png"; sourceTree = ""; }; - E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_pressed@2x.png"; sourceTree = ""; }; - E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_142@2x.png"; sourceTree = ""; }; - E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_121@2x.png"; sourceTree = ""; }; - E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_150@2x.png"; sourceTree = ""; }; - E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_133@2x.png"; sourceTree = ""; }; - E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_87@2x.png"; sourceTree = ""; }; - E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_166@2x.png"; sourceTree = ""; }; - E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_105@2x.png"; sourceTree = ""; }; - E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_99@2x.png"; sourceTree = ""; }; - E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_109@2x.png"; sourceTree = ""; }; - E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_95@2x.png"; sourceTree = ""; }; - E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_117@2x.png"; sourceTree = ""; }; - E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_21@2x.png"; sourceTree = ""; }; - E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_42@2x.png"; sourceTree = ""; }; - E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_33@2x.png"; sourceTree = ""; }; - E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_50@2x.png"; sourceTree = ""; }; - E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_78@2x.png"; sourceTree = ""; }; - E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_05@2x.png"; sourceTree = ""; }; - E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_66@2x.png"; sourceTree = ""; }; - E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_17@2x.png"; sourceTree = ""; }; - E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_74@2x.png"; sourceTree = ""; }; - E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_09@2x.png"; sourceTree = ""; }; - E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_52@2x.png"; sourceTree = ""; }; - E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_31@2x.png"; sourceTree = ""; }; - E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_40@2x.png"; sourceTree = ""; }; - E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_23@2x.png"; sourceTree = ""; }; - E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_normal@2x.png"; sourceTree = ""; }; - E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_76@2x.png"; sourceTree = ""; }; - E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_68@2x.png"; sourceTree = ""; }; - E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_15@2x.png"; sourceTree = ""; }; - E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_64@2x.png"; sourceTree = ""; }; - E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_19@2x.png"; sourceTree = ""; }; - E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_07@2x.png"; sourceTree = ""; }; - E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_131@2x.png"; sourceTree = ""; }; - E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_pressed@2x.png"; sourceTree = ""; }; - E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_152@2x.png"; sourceTree = ""; }; - E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_123@2x.png"; sourceTree = ""; }; - E80EC80028ACD84000D133C5 /* emoji_140@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_140@2x.png"; sourceTree = ""; }; - E80EC80128ACD84000D133C5 /* emoji_115@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_115@2x.png"; sourceTree = ""; }; - E80EC80228ACD84000D133C5 /* emoji_89@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_89@2x.png"; sourceTree = ""; }; - E80EC80328ACD84000D133C5 /* emoji_97@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_97@2x.png"; sourceTree = ""; }; - E80EC80428ACD84000D133C5 /* emoji_107@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_107@2x.png"; sourceTree = ""; }; - E80EC80528ACD84000D133C5 /* emoji_119@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_119@2x.png"; sourceTree = ""; }; - E80EC80628ACD84000D133C5 /* emoji_85@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_85@2x.png"; sourceTree = ""; }; - E80EC80728ACD84000D133C5 /* emoji_164@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_164@2x.png"; sourceTree = ""; }; - E80EC80828ACD84000D133C5 /* emoji.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = emoji.plist; sourceTree = ""; }; - E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - E80EC8C028ACF97A00D133C5 /* QEEmotionImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QEEmotionImageView.h; sourceTree = ""; }; - E80EC8C128ACF97A00D133C5 /* QEEmotionImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QEEmotionImageView.m; sourceTree = ""; }; E81060D7298761A300B772F0 /* MessageBaseModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageBaseModel.h; sourceTree = ""; }; E81060D8298761A300B772F0 /* MessageBaseModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageBaseModel.m; sourceTree = ""; }; E81060DA298761F100B772F0 /* MessageTextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageTextModel.h; sourceTree = ""; }; @@ -3505,12 +3555,6 @@ E81060FF2987CDCC00B772F0 /* MessageTweetModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageTweetModel.m; sourceTree = ""; }; E81061012987CFCE00B772F0 /* MessageSkillCardModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageSkillCardModel.h; sourceTree = ""; }; E81061022987CFCE00B772F0 /* MessageSkillCardModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageSkillCardModel.m; sourceTree = ""; }; - E81125C2296E57B7000D9804 /* QinputPhotoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QinputPhotoView.h; sourceTree = ""; }; - E81125C3296E57B7000D9804 /* QinputPhotoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QinputPhotoView.m; sourceTree = ""; }; - E81125C5296E596D000D9804 /* QInputPhototCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QInputPhototCell.h; sourceTree = ""; }; - E81125C6296E596D000D9804 /* QInputPhototCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QInputPhototCell.m; sourceTree = ""; }; - E81125C8296E606F000D9804 /* QPhotoImageModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QPhotoImageModel.h; sourceTree = ""; }; - E81125C9296E606F000D9804 /* QPhotoImageModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QPhotoImageModel.m; sourceTree = ""; }; E811FFF52742367B00918544 /* XPGiftEmptyCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftEmptyCollectionViewCell.h; sourceTree = ""; }; E811FFF62742367B00918544 /* XPGiftEmptyCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPGiftEmptyCollectionViewCell.m; sourceTree = ""; }; E8133914273E532D00708B66 /* XPGiftItemCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPGiftItemCollectionViewCell.h; sourceTree = ""; }; @@ -3524,8 +3568,6 @@ E81366F426F0C0DF0076364C /* LoginFullInfoPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginFullInfoPresenter.h; sourceTree = ""; }; E81366F526F0C0DF0076364C /* LoginFullInfoPresenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginFullInfoPresenter.m; sourceTree = ""; }; E81366F726F0C0F60076364C /* LoginFullInfoProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginFullInfoProtocol.h; sourceTree = ""; }; - E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+EnlargeTouchArea.m"; sourceTree = ""; }; - E81366FB26F0D2980076364C /* UIButton+EnlargeTouchArea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+EnlargeTouchArea.h"; sourceTree = ""; }; E816C11327608A7500C84014 /* XPRoomMiniManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMiniManager.h; sourceTree = ""; }; E816C11427608A7500C84014 /* XPRoomMiniManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomMiniManager.m; sourceTree = ""; }; E818DD1A2A4896EE00F163F7 /* XPLoginAraeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPLoginAraeViewController.h; sourceTree = ""; }; @@ -3597,12 +3639,6 @@ E81DCCCC282B63B40039E5C5 /* XPMomentsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMomentsViewController.m; sourceTree = ""; }; E81DCCCE282B63FD0039E5C5 /* XPMomentsRecommendViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMomentsRecommendViewController.h; sourceTree = ""; }; E81DCCCF282B63FD0039E5C5 /* XPMomentsRecommendViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMomentsRecommendViewController.m; sourceTree = ""; }; - E81E09C7290F71BF00A1F410 /* XPAdvertiseView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAdvertiseView.h; sourceTree = ""; }; - E81E09C8290F71BF00A1F410 /* XPAdvertiseView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAdvertiseView.m; sourceTree = ""; }; - E81E09CA290F732500A1F410 /* XPAdImageTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPAdImageTool.h; sourceTree = ""; }; - E81E09CB290F732600A1F410 /* XPAdImageTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPAdImageTool.m; sourceTree = ""; }; - E81E09CD290F750800A1F410 /* AdvertiseModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdvertiseModel.h; sourceTree = ""; }; - E81E09CE290F750800A1F410 /* AdvertiseModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AdvertiseModel.m; sourceTree = ""; }; E82107792987D4AB00DE7040 /* MessageFindNewGreetModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageFindNewGreetModel.h; sourceTree = ""; }; E821077A2987D4AB00DE7040 /* MessageFindNewGreetModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageFindNewGreetModel.m; sourceTree = ""; }; E821077C2987D67100DE7040 /* MessageRiskAlertModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageRiskAlertModel.h; sourceTree = ""; }; @@ -3617,10 +3653,6 @@ E82109AC26F1C8A000FC3319 /* CountDownHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CountDownHelper.m; sourceTree = ""; }; E82109AE26F1D83500FC3319 /* LoginBindPhonePresent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginBindPhonePresent.h; sourceTree = ""; }; E82109AF26F1D83500FC3319 /* LoginBindPhonePresent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginBindPhonePresent.m; sourceTree = ""; }; - E82325E4274CCAFA003A3332 /* XPShareInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareInfoModel.h; sourceTree = ""; }; - E82325E5274CCAFA003A3332 /* XPShareInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareInfoModel.m; sourceTree = ""; }; - E82325E7274CE56A003A3332 /* XPShareItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPShareItem.h; sourceTree = ""; }; - E82325E8274CE56A003A3332 /* XPShareItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPShareItem.m; sourceTree = ""; }; E82325F0274E2DE6003A3332 /* XPUserCardViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPUserCardViewController.h; sourceTree = ""; }; E82325F1274E2DE6003A3332 /* XPUserCardViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPUserCardViewController.m; sourceTree = ""; }; E82325F3274E2E09003A3332 /* XPUserCardPresenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPUserCardPresenter.h; sourceTree = ""; }; @@ -4063,8 +4095,6 @@ E86507E7281A8212006951B0 /* ContentTweetModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ContentTweetModel.m; sourceTree = ""; }; E86507E9281A88A9006951B0 /* MessageContentSkillCardView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessageContentSkillCardView.h; sourceTree = ""; }; E86507EA281A88A9006951B0 /* MessageContentSkillCardView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageContentSkillCardView.m; sourceTree = ""; }; - E86596412701611A00846EBD /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; - E86596422701611A00846EBD /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; E865964F2701A1C000846EBD /* StatisticsService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatisticsService.h; sourceTree = ""; }; E86596502701A1C000846EBD /* StatisticsService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatisticsService.m; sourceTree = ""; }; E86596522701A55500846EBD /* StatisticsServiceHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatisticsServiceHelper.h; sourceTree = ""; }; @@ -4406,16 +4436,12 @@ E897ABFB28AF2E71003B3587 /* XPSailingGiftView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSailingGiftView.m; sourceTree = ""; }; E897ABFD28AF39B4003B3587 /* XPSailingAnimationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSailingAnimationView.h; sourceTree = ""; }; E897ABFE28AF39B4003B3587 /* XPSailingAnimationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSailingAnimationView.m; sourceTree = ""; }; - E8998D782859784200C68558 /* XPSVGAPlayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSVGAPlayer.h; sourceTree = ""; }; - E8998D792859784200C68558 /* XPSVGAPlayer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSVGAPlayer.m; sourceTree = ""; }; E8998D7E28597B0300C68558 /* XPRoomLuckyBigPrizeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomLuckyBigPrizeView.h; sourceTree = ""; }; E8998D7F28597B0300C68558 /* XPRoomLuckyBigPrizeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomLuckyBigPrizeView.m; sourceTree = ""; }; E8998D832859B4FA00C68558 /* XPMineUserInfoGiftView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoGiftView.h; sourceTree = ""; }; E8998D842859B4FA00C68558 /* XPMineUserInfoGiftView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoGiftView.m; sourceTree = ""; }; E8998D892859CB6A00C68558 /* XPMineUserInfoGiftWallSubViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoGiftWallSubViewController.h; sourceTree = ""; }; E8998D8A2859CB6A00C68558 /* XPMineUserInfoGiftWallSubViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoGiftWallSubViewController.m; sourceTree = ""; }; - E8998D942859DD6F00C68558 /* UIView+Corner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Corner.h"; sourceTree = ""; }; - E8998D952859DD6F00C68558 /* UIView+Corner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Corner.m"; sourceTree = ""; }; E899C68727508F4E00E189E5 /* XPUserCardInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPUserCardInfoModel.h; sourceTree = ""; }; E899C68827508F4E00E189E5 /* XPUserCardInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPUserCardInfoModel.m; sourceTree = ""; }; E899C68A275093B700E189E5 /* XPUserCardMicroItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPUserCardMicroItemModel.h; sourceTree = ""; }; @@ -4498,8 +4524,6 @@ E8AB633228AE51470023B0D2 /* XPSailingPrizeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSailingPrizeView.m; sourceTree = ""; }; E8AB633428AE54A40023B0D2 /* XPSailingPrizeCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSailingPrizeCollectionViewCell.h; sourceTree = ""; }; E8AB633528AE54A40023B0D2 /* XPSailingPrizeCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSailingPrizeCollectionViewCell.m; sourceTree = ""; }; - E8AC720E26F43955007D6E91 /* UIImageConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIImageConstant.h; sourceTree = ""; }; - E8AC720F26F43955007D6E91 /* UIImageConstant.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIImageConstant.m; sourceTree = ""; }; E8AC721126F46ADD007D6E91 /* XPMineSettingViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineSettingViewController.h; sourceTree = ""; }; E8AC721226F46ADD007D6E91 /* XPMineSettingViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineSettingViewController.m; sourceTree = ""; }; E8AC721426F46B06007D6E91 /* XPMineSettingTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineSettingTableViewCell.h; sourceTree = ""; }; @@ -4550,8 +4574,6 @@ E8B825C626EA0995009E8E9F /* LoginVerifCodeProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginVerifCodeProtocol.h; sourceTree = ""; }; E8B825C826EA1231009E8E9F /* LoginVerifCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginVerifCodeViewController.m; sourceTree = ""; }; E8B825C926EA1231009E8E9F /* LoginVerifCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginVerifCodeViewController.h; sourceTree = ""; }; - E8B825CB26EA18C8009E8E9F /* DJDKMIMOMColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DJDKMIMOMColor.h; sourceTree = ""; }; - E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DJDKMIMOMColor.m; sourceTree = ""; }; E8B846BD26FD827900A777FE /* XPMineUserInfoAlbumViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoAlbumViewController.h; sourceTree = ""; }; E8B846BE26FD827900A777FE /* XPMineUserInfoAlbumViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineUserInfoAlbumViewController.m; sourceTree = ""; }; E8B846C026FD82DC00A777FE /* XPMineUserInfoAlbumCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineUserInfoAlbumCollectionViewCell.h; sourceTree = ""; }; @@ -4763,8 +4785,6 @@ E8F65C1E286998C9009BB5B9 /* XPMineShareViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineShareViewController.m; sourceTree = ""; }; E8F65C202869A36F009BB5B9 /* ContentShareMonentsModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContentShareMonentsModel.h; sourceTree = ""; }; E8F65C212869A36F009BB5B9 /* ContentShareMonentsModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ContentShareMonentsModel.m; sourceTree = ""; }; - E8FE3C2A2994D0E80006C6C7 /* XPSwitch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPSwitch.h; sourceTree = ""; }; - E8FE3C2B2994D0E80006C6C7 /* XPSwitch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPSwitch.m; sourceTree = ""; }; F1D8556D2931FC86008C418F /* XPRoomYearActivityView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomYearActivityView.h; sourceTree = ""; }; F1D8556E2931FC86008C418F /* XPRoomYearActivityView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomYearActivityView.m; sourceTree = ""; }; /* End PBXFileReference section */ @@ -5007,107 +5027,6 @@ path = RtcImpl; sourceTree = ""; }; - 186A532B26FC6ED900D67B2C /* TTPopup */ = { - isa = PBXGroup; - children = ( - 186A533A26FC6ED900D67B2C /* TTPopup.h */, - 186A532C26FC6ED900D67B2C /* TTPopup.m */, - 186A532D26FC6ED900D67B2C /* Config */, - 186A533626FC6ED900D67B2C /* Manager */, - 186A533B26FC6ED900D67B2C /* View */, - 186A534026FC6ED900D67B2C /* Service */, - 186A534426FC6ED900D67B2C /* Header */, - ); - path = TTPopup; - sourceTree = ""; - }; - 186A532D26FC6ED900D67B2C /* Config */ = { - isa = PBXGroup; - children = ( - 186A533226FC6ED900D67B2C /* TTAlertConfig.h */, - 186A532E26FC6ED900D67B2C /* TTAlertConfig.m */, - 186A533126FC6ED900D67B2C /* TTActionSheetConfig.h */, - 186A533526FC6ED900D67B2C /* TTActionSheetConfig.m */, - 186A533026FC6ED900D67B2C /* TTAlertButtonConfig.h */, - 186A533326FC6ED900D67B2C /* TTAlertButtonConfig.m */, - 186A532F26FC6ED900D67B2C /* TTAlertMessageAttributedConfig.h */, - 186A533426FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m */, - ); - path = Config; - sourceTree = ""; - }; - 186A533626FC6ED900D67B2C /* Manager */ = { - isa = PBXGroup; - children = ( - 186A533726FC6ED900D67B2C /* TTPopupManagerServiceProtocol.h */, - 186A533826FC6ED900D67B2C /* TTPopupManagerService.h */, - 186A533926FC6ED900D67B2C /* TTPopupManagerService.m */, - ); - path = Manager; - sourceTree = ""; - }; - 186A533B26FC6ED900D67B2C /* View */ = { - isa = PBXGroup; - children = ( - 23E9EAA02A84C53900B792F2 /* TTNewAlertView.h */, - 23E9EA9F2A84C53800B792F2 /* TTNewAlertView.m */, - 186A533E26FC6ED900D67B2C /* TTAlertView.h */, - 186A533C26FC6ED900D67B2C /* TTAlertView.m */, - 186A533D26FC6ED900D67B2C /* TTActionSheetView.h */, - 186A533F26FC6ED900D67B2C /* TTActionSheetView.m */, - ); - path = View; - sourceTree = ""; - }; - 186A534026FC6ED900D67B2C /* Service */ = { - isa = PBXGroup; - children = ( - 186A534326FC6ED900D67B2C /* TTPopupService.h */, - 186A534126FC6ED900D67B2C /* TTPopupService.m */, - 186A534226FC6ED900D67B2C /* TTPopupServiceProtocol.h */, - ); - path = Service; - sourceTree = ""; - }; - 186A534426FC6ED900D67B2C /* Header */ = { - isa = PBXGroup; - children = ( - 186A534526FC6ED900D67B2C /* TTPopupConstants.h */, - ); - path = Header; - sourceTree = ""; - }; - 186A536026FC6F2E00D67B2C /* ShareView */ = { - isa = PBXGroup; - children = ( - 186A536226FC6F2E00D67B2C /* XPShareView.h */, - 186A536126FC6F2E00D67B2C /* XPShareView.m */, - 186A536326FC6F2E00D67B2C /* Model */, - 186A536626FC6F2E00D67B2C /* View */, - ); - path = ShareView; - sourceTree = ""; - }; - 186A536326FC6F2E00D67B2C /* Model */ = { - isa = PBXGroup; - children = ( - E82325E4274CCAFA003A3332 /* XPShareInfoModel.h */, - E82325E5274CCAFA003A3332 /* XPShareInfoModel.m */, - E82325E7274CE56A003A3332 /* XPShareItem.h */, - E82325E8274CE56A003A3332 /* XPShareItem.m */, - ); - path = Model; - sourceTree = ""; - }; - 186A536626FC6F2E00D67B2C /* View */ = { - isa = PBXGroup; - children = ( - 186A536826FC6F2E00D67B2C /* XPShareItemCell.h */, - 186A536726FC6F2E00D67B2C /* XPShareItemCell.m */, - ); - path = View; - sourceTree = ""; - }; 187EEEA926E62679002833B2 /* Api */ = { isa = PBXGroup; children = ( @@ -5142,9 +5061,9 @@ 23E9E9B62A82200500B792F2 /* GoogleService-Info.plist */, E8729EBA2A3B10C10076D80A /* YuMi.entitlements */, E8729EB92A3B10C10076D80A /* YuMiRelease.entitlements */, + 4CD19DC92E9CDF980069DAA0 /* CustomUI */, 4C0642922E98EF0A00BAF413 /* E-P */, 236B2E1B2AA0786E003967A8 /* Library */, - 189DD56C26DF5B5400AB55B1 /* CustomUI */, 189DD5A726DFA09700AB55B1 /* Tools */, 14D8768429A752B500E1DD7F /* Network */, E8A1E45C276220B100B294CA /* Resources */, @@ -5280,40 +5199,6 @@ path = Structure; sourceTree = ""; }; - 189DD56C26DF5B5400AB55B1 /* CustomUI */ = { - isa = PBXGroup; - children = ( - 4C6E1F762CEB12560073D0A3 /* UIViewGradientLayer */, - 237700D42BC7D3DC00D661F1 /* MSRTL */, - E8FE3C292994D0CC0006C6C7 /* SwitchView */, - E81E09C6290F719C00A1F410 /* Adbvertise */, - E80EC74A28ACD84000D133C5 /* InputView */, - E8998D932859DD3F00C68558 /* UIViewCorner */, - E8998D772859782C00C68558 /* SVGA */, - E8659640270160F200846EBD /* VagueImageView */, - E8AC720A26F435AF007D6E91 /* UIImageView */, - E81366F926F0D27A0076364C /* UIButton */, - E82109B126F2050D00FC3319 /* UIImage */, - 186A532B26FC6ED900D67B2C /* TTPopup */, - 186A536026FC6F2E00D67B2C /* ShareView */, - 18E7B26826E8D5D60064BC9B /* XCCurrentVCStackManager.h */, - 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackManager.m */, - 189DD68326E1FDBB00AB55B1 /* XNDJTDDLoadingTool.h */, - 189DD68226E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m */, - E8B825CB26EA18C8009E8E9F /* DJDKMIMOMColor.h */, - E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */, - 4CEB9EA82D097E8400443480 /* MoliAvatar.h */, - 4CEB9EA92D097E8400443480 /* MoliAvatar.m */, - 4C1392972D6DB4CD00A6DFB5 /* MoliMoneyLabel.h */, - 4C1392982D6DB4CD00A6DFB5 /* MoliMoneyLabel.m */, - 4CEB9EAB2D09AA0400443480 /* SexAgeLabel.h */, - 4CEB9EAC2D09AA0400443480 /* SexAgeLabel.m */, - 4C7989EA2D19392E006AE07B /* EmptyDataView.h */, - 4C7989EB2D19392E006AE07B /* EmptyDataView.m */, - ); - path = CustomUI; - sourceTree = ""; - }; 189DD58A26DF978700AB55B1 /* View */ = { isa = PBXGroup; children = ( @@ -6086,33 +5971,6 @@ path = MJExtension; sourceTree = ""; }; - 237700D42BC7D3DC00D661F1 /* MSRTL */ = { - isa = PBXGroup; - children = ( - 237700D52BC7D51400D661F1 /* UIButton+MSRTL.h */, - 237700D62BC7D51400D661F1 /* UIButton+MSRTL.m */, - 237700D82BC7D5EC00D661F1 /* UILabel+MSRTL.h */, - 237700D92BC7D5EC00D661F1 /* UILabel+MSRTL.m */, - 237700F82BCCD25500D661F1 /* YYLabel+MSRTL.h */, - 237700F92BCCD25500D661F1 /* YYLabel+MSRTL.m */, - 237700DB2BC7D70E00D661F1 /* UIImage+MSRTL.h */, - 237700DC2BC7D70E00D661F1 /* UIImage+MSRTL.m */, - 237700DE2BC7D78600D661F1 /* MSBaseRTLFlowLayout.h */, - 237700DF2BC7D78600D661F1 /* MSBaseRTLFlowLayout.m */, - 237700E12BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.h */, - 237700E22BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.m */, - 237700E42BC7E81F00D661F1 /* UITextField+MSRTL.h */, - 237700E52BC7E81F00D661F1 /* UITextField+MSRTL.m */, - 237700FB2BCD254000D661F1 /* MSBaseTextField.h */, - 237700FC2BCD254000D661F1 /* MSBaseTextField.m */, - 237700E72BC7E88E00D661F1 /* UITextView+MSRTL.h */, - 237700E82BC7E88E00D661F1 /* UITextView+MSRTL.m */, - 237700EA2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.h */, - 237700EB2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.m */, - ); - path = MSRTL; - sourceTree = ""; - }; 237B94AB2A984DA7007853E3 /* NobleTrumpet */ = { isa = PBXGroup; children = ( @@ -6586,6 +6444,7 @@ 4C0642922E98EF0A00BAF413 /* E-P */ = { isa = PBXGroup; children = ( + 4CD19C852E9CB31C0069DAA0 /* NewLogin */, 4C1E98C22E9A45160031AE79 /* Common */, 4C0642752E97BD6D00BAF413 /* NewMine */, 4C06427C2E97BD6D00BAF413 /* NewMoments */, @@ -6644,15 +6503,6 @@ path = GZIP; sourceTree = ""; }; - 4C6E1F762CEB12560073D0A3 /* UIViewGradientLayer */ = { - isa = PBXGroup; - children = ( - 4C6E1F772CEB12780073D0A3 /* UIView+GradientLayer.h */, - 4C6E1F782CEB12780073D0A3 /* UIView+GradientLayer.m */, - ); - path = UIViewGradientLayer; - sourceTree = ""; - }; 4C7989F02D195293006AE07B /* RoomMode */ = { isa = PBXGroup; children = ( @@ -6750,6 +6600,525 @@ path = Share; sourceTree = ""; }; + 4CD19C7F2E9CB31C0069DAA0 /* Controllers */ = { + isa = PBXGroup; + children = ( + 4CD19C7D2E9CB31C0069DAA0 /* EPLoginTypesViewController.swift */, + 4CD19C7E2E9CB31C0069DAA0 /* EPLoginViewController.swift */, + ); + path = Controllers; + sourceTree = ""; + }; + 4CD19C812E9CB31C0069DAA0 /* Models */ = { + isa = PBXGroup; + children = ( + 4CD19C922E9CCF2C0069DAA0 /* EPLoginConfig.swift */, + 4CD19C902E9CBBD30069DAA0 /* EPLoginBridge.swift */, + 4CD19C802E9CB31C0069DAA0 /* EPLoginState.swift */, + ); + path = Models; + sourceTree = ""; + }; + 4CD19C842E9CB31C0069DAA0 /* Views */ = { + isa = PBXGroup; + children = ( + 4CD19EAC2E9CDFC30069DAA0 /* EPLoginButton.swift */, + 4CD19EAD2E9CDFC30069DAA0 /* EPLoginInputView.swift */, + 4CD19C832E9CB31C0069DAA0 /* EPPolicyLabel.swift */, + ); + path = Views; + sourceTree = ""; + }; + 4CD19C852E9CB31C0069DAA0 /* NewLogin */ = { + isa = PBXGroup; + children = ( + 4CD19C8D2E9CBBC80069DAA0 /* Services */, + 4CD19C7F2E9CB31C0069DAA0 /* Controllers */, + 4CD19C812E9CB31C0069DAA0 /* Models */, + 4CD19C842E9CB31C0069DAA0 /* Views */, + ); + path = NewLogin; + sourceTree = ""; + }; + 4CD19C8D2E9CBBC80069DAA0 /* Services */ = { + isa = PBXGroup; + children = ( + 4CD19C8B2E9CBBC80069DAA0 /* EPLoginManager.swift */, + 4CD19C8C2E9CBBC80069DAA0 /* EPLoginService.swift */, + ); + path = Services; + sourceTree = ""; + }; + 4CD19C9A2E9CDF980069DAA0 /* Adbvertise */ = { + isa = PBXGroup; + children = ( + 4CD19C942E9CDF980069DAA0 /* AdvertiseModel.h */, + 4CD19C952E9CDF980069DAA0 /* AdvertiseModel.m */, + 4CD19C962E9CDF980069DAA0 /* XPAdImageTool.h */, + 4CD19C972E9CDF980069DAA0 /* XPAdImageTool.m */, + 4CD19C982E9CDF980069DAA0 /* XPAdvertiseView.h */, + 4CD19C992E9CDF980069DAA0 /* XPAdvertiseView.m */, + ); + path = Adbvertise; + sourceTree = ""; + }; + 4CD19D412E9CDF980069DAA0 /* Emoji */ = { + isa = PBXGroup; + children = ( + 4CD19C9B2E9CDF980069DAA0 /* emoj_s_normal@2x.png */, + 4CD19C9C2E9CDF980069DAA0 /* emoj_s_pressed@2x.png */, + 4CD19C9D2E9CDF980069DAA0 /* emoji.xml */, + 4CD19C9E2E9CDF980069DAA0 /* emoji_00@2x.png */, + 4CD19C9F2E9CDF980069DAA0 /* emoji_01@2x.png */, + 4CD19CA02E9CDF980069DAA0 /* emoji_02@2x.png */, + 4CD19CA12E9CDF980069DAA0 /* emoji_03@2x.png */, + 4CD19CA22E9CDF980069DAA0 /* emoji_04@2x.png */, + 4CD19CA32E9CDF980069DAA0 /* emoji_05@2x.png */, + 4CD19CA42E9CDF980069DAA0 /* emoji_06@2x.png */, + 4CD19CA52E9CDF980069DAA0 /* emoji_07@2x.png */, + 4CD19CA62E9CDF980069DAA0 /* emoji_08@2x.png */, + 4CD19CA72E9CDF980069DAA0 /* emoji_09@2x.png */, + 4CD19CA82E9CDF980069DAA0 /* emoji_10@2x.png */, + 4CD19CA92E9CDF980069DAA0 /* emoji_11@2x.png */, + 4CD19CAA2E9CDF980069DAA0 /* emoji_12@2x.png */, + 4CD19CAB2E9CDF980069DAA0 /* emoji_13@2x.png */, + 4CD19CAC2E9CDF980069DAA0 /* emoji_14@2x.png */, + 4CD19CAD2E9CDF980069DAA0 /* emoji_15@2x.png */, + 4CD19CAE2E9CDF980069DAA0 /* emoji_16@2x.png */, + 4CD19CAF2E9CDF980069DAA0 /* emoji_17@2x.png */, + 4CD19CB02E9CDF980069DAA0 /* emoji_18@2x.png */, + 4CD19CB12E9CDF980069DAA0 /* emoji_19@2x.png */, + 4CD19CB22E9CDF980069DAA0 /* emoji_20@2x.png */, + 4CD19CB32E9CDF980069DAA0 /* emoji_21@2x.png */, + 4CD19CB42E9CDF980069DAA0 /* emoji_22@2x.png */, + 4CD19CB52E9CDF980069DAA0 /* emoji_23@2x.png */, + 4CD19CB62E9CDF980069DAA0 /* emoji_24@2x.png */, + 4CD19CB72E9CDF980069DAA0 /* emoji_25@2x.png */, + 4CD19CB82E9CDF980069DAA0 /* emoji_26@2x.png */, + 4CD19CB92E9CDF980069DAA0 /* emoji_27@2x.png */, + 4CD19CBA2E9CDF980069DAA0 /* emoji_28@2x.png */, + 4CD19CBB2E9CDF980069DAA0 /* emoji_29@2x.png */, + 4CD19CBC2E9CDF980069DAA0 /* emoji_30@2x.png */, + 4CD19CBD2E9CDF980069DAA0 /* emoji_31@2x.png */, + 4CD19CBE2E9CDF980069DAA0 /* emoji_32@2x.png */, + 4CD19CBF2E9CDF980069DAA0 /* emoji_33@2x.png */, + 4CD19CC02E9CDF980069DAA0 /* emoji_34@2x.png */, + 4CD19CC12E9CDF980069DAA0 /* emoji_35@2x.png */, + 4CD19CC22E9CDF980069DAA0 /* emoji_36@2x.png */, + 4CD19CC32E9CDF980069DAA0 /* emoji_37@2x.png */, + 4CD19CC42E9CDF980069DAA0 /* emoji_38@2x.png */, + 4CD19CC52E9CDF980069DAA0 /* emoji_39@2x.png */, + 4CD19CC62E9CDF980069DAA0 /* emoji_40@2x.png */, + 4CD19CC72E9CDF980069DAA0 /* emoji_41@2x.png */, + 4CD19CC82E9CDF980069DAA0 /* emoji_42@2x.png */, + 4CD19CC92E9CDF980069DAA0 /* emoji_43@2x.png */, + 4CD19CCA2E9CDF980069DAA0 /* emoji_44@2x.png */, + 4CD19CCB2E9CDF980069DAA0 /* emoji_45@2x.png */, + 4CD19CCC2E9CDF980069DAA0 /* emoji_46@2x.png */, + 4CD19CCD2E9CDF980069DAA0 /* emoji_47@2x.png */, + 4CD19CCE2E9CDF980069DAA0 /* emoji_48@2x.png */, + 4CD19CCF2E9CDF980069DAA0 /* emoji_49@2x.png */, + 4CD19CD02E9CDF980069DAA0 /* emoji_50@2x.png */, + 4CD19CD12E9CDF980069DAA0 /* emoji_51@2x.png */, + 4CD19CD22E9CDF980069DAA0 /* emoji_52@2x.png */, + 4CD19CD32E9CDF980069DAA0 /* emoji_53@2x.png */, + 4CD19CD42E9CDF980069DAA0 /* emoji_54@2x.png */, + 4CD19CD52E9CDF980069DAA0 /* emoji_55@2x.png */, + 4CD19CD62E9CDF980069DAA0 /* emoji_56@2x.png */, + 4CD19CD72E9CDF980069DAA0 /* emoji_57@2x.png */, + 4CD19CD82E9CDF980069DAA0 /* emoji_58@2x.png */, + 4CD19CD92E9CDF980069DAA0 /* emoji_59@2x.png */, + 4CD19CDA2E9CDF980069DAA0 /* emoji_60@2x.png */, + 4CD19CDB2E9CDF980069DAA0 /* emoji_61@2x.png */, + 4CD19CDC2E9CDF980069DAA0 /* emoji_62@2x.png */, + 4CD19CDD2E9CDF980069DAA0 /* emoji_63@2x.png */, + 4CD19CDE2E9CDF980069DAA0 /* emoji_64@2x.png */, + 4CD19CDF2E9CDF980069DAA0 /* emoji_65@2x.png */, + 4CD19CE02E9CDF980069DAA0 /* emoji_66@2x.png */, + 4CD19CE12E9CDF980069DAA0 /* emoji_67@2x.png */, + 4CD19CE22E9CDF980069DAA0 /* emoji_68@2x.png */, + 4CD19CE32E9CDF980069DAA0 /* emoji_69@2x.png */, + 4CD19CE42E9CDF980069DAA0 /* emoji_70@2x.png */, + 4CD19CE52E9CDF980069DAA0 /* emoji_71@2x.png */, + 4CD19CE62E9CDF980069DAA0 /* emoji_72@2x.png */, + 4CD19CE72E9CDF980069DAA0 /* emoji_73@2x.png */, + 4CD19CE82E9CDF980069DAA0 /* emoji_74@2x.png */, + 4CD19CE92E9CDF980069DAA0 /* emoji_75@2x.png */, + 4CD19CEA2E9CDF980069DAA0 /* emoji_76@2x.png */, + 4CD19CEB2E9CDF980069DAA0 /* emoji_77@2x.png */, + 4CD19CEC2E9CDF980069DAA0 /* emoji_78@2x.png */, + 4CD19CED2E9CDF980069DAA0 /* emoji_79@2x.png */, + 4CD19CEE2E9CDF980069DAA0 /* emoji_80@2x.png */, + 4CD19CEF2E9CDF980069DAA0 /* emoji_81@2x.png */, + 4CD19CF02E9CDF980069DAA0 /* emoji_82@2x.png */, + 4CD19CF12E9CDF980069DAA0 /* emoji_83@2x.png */, + 4CD19CF22E9CDF980069DAA0 /* emoji_84@2x.png */, + 4CD19CF32E9CDF980069DAA0 /* emoji_85@2x.png */, + 4CD19CF42E9CDF980069DAA0 /* emoji_86@2x.png */, + 4CD19CF52E9CDF980069DAA0 /* emoji_87@2x.png */, + 4CD19CF62E9CDF980069DAA0 /* emoji_88@2x.png */, + 4CD19CF72E9CDF980069DAA0 /* emoji_89@2x.png */, + 4CD19CF82E9CDF980069DAA0 /* emoji_90@2x.png */, + 4CD19CF92E9CDF980069DAA0 /* emoji_91@2x.png */, + 4CD19CFA2E9CDF980069DAA0 /* emoji_92@2x.png */, + 4CD19CFB2E9CDF980069DAA0 /* emoji_93@2x.png */, + 4CD19CFC2E9CDF980069DAA0 /* emoji_94@2x.png */, + 4CD19CFD2E9CDF980069DAA0 /* emoji_95@2x.png */, + 4CD19CFE2E9CDF980069DAA0 /* emoji_96@2x.png */, + 4CD19CFF2E9CDF980069DAA0 /* emoji_97@2x.png */, + 4CD19D002E9CDF980069DAA0 /* emoji_98@2x.png */, + 4CD19D012E9CDF980069DAA0 /* emoji_99@2x.png */, + 4CD19D022E9CDF980069DAA0 /* emoji_100@2x.png */, + 4CD19D032E9CDF980069DAA0 /* emoji_101@2x.png */, + 4CD19D042E9CDF980069DAA0 /* emoji_102@2x.png */, + 4CD19D052E9CDF980069DAA0 /* emoji_103@2x.png */, + 4CD19D062E9CDF980069DAA0 /* emoji_104@2x.png */, + 4CD19D072E9CDF980069DAA0 /* emoji_105@2x.png */, + 4CD19D082E9CDF980069DAA0 /* emoji_106@2x.png */, + 4CD19D092E9CDF980069DAA0 /* emoji_107@2x.png */, + 4CD19D0A2E9CDF980069DAA0 /* emoji_108@2x.png */, + 4CD19D0B2E9CDF980069DAA0 /* emoji_109@2x.png */, + 4CD19D0C2E9CDF980069DAA0 /* emoji_110@2x.png */, + 4CD19D0D2E9CDF980069DAA0 /* emoji_111@2x.png */, + 4CD19D0E2E9CDF980069DAA0 /* emoji_112@2x.png */, + 4CD19D0F2E9CDF980069DAA0 /* emoji_113@2x.png */, + 4CD19D102E9CDF980069DAA0 /* emoji_114@2x.png */, + 4CD19D112E9CDF980069DAA0 /* emoji_115@2x.png */, + 4CD19D122E9CDF980069DAA0 /* emoji_116@2x.png */, + 4CD19D132E9CDF980069DAA0 /* emoji_117@2x.png */, + 4CD19D142E9CDF980069DAA0 /* emoji_118@2x.png */, + 4CD19D152E9CDF980069DAA0 /* emoji_119@2x.png */, + 4CD19D162E9CDF980069DAA0 /* emoji_120@2x.png */, + 4CD19D172E9CDF980069DAA0 /* emoji_121@2x.png */, + 4CD19D182E9CDF980069DAA0 /* emoji_122@2x.png */, + 4CD19D192E9CDF980069DAA0 /* emoji_123@2x.png */, + 4CD19D1A2E9CDF980069DAA0 /* emoji_124@2x.png */, + 4CD19D1B2E9CDF980069DAA0 /* emoji_125@2x.png */, + 4CD19D1C2E9CDF980069DAA0 /* emoji_126@2x.png */, + 4CD19D1D2E9CDF980069DAA0 /* emoji_127@2x.png */, + 4CD19D1E2E9CDF980069DAA0 /* emoji_128@2x.png */, + 4CD19D1F2E9CDF980069DAA0 /* emoji_129@2x.png */, + 4CD19D202E9CDF980069DAA0 /* emoji_130@2x.png */, + 4CD19D212E9CDF980069DAA0 /* emoji_131@2x.png */, + 4CD19D222E9CDF980069DAA0 /* emoji_132@2x.png */, + 4CD19D232E9CDF980069DAA0 /* emoji_133@2x.png */, + 4CD19D242E9CDF980069DAA0 /* emoji_134@2x.png */, + 4CD19D252E9CDF980069DAA0 /* emoji_135@2x.png */, + 4CD19D262E9CDF980069DAA0 /* emoji_136@2x.png */, + 4CD19D272E9CDF980069DAA0 /* emoji_137@2x.png */, + 4CD19D282E9CDF980069DAA0 /* emoji_138@2x.png */, + 4CD19D292E9CDF980069DAA0 /* emoji_139@2x.png */, + 4CD19D2A2E9CDF980069DAA0 /* emoji_140@2x.png */, + 4CD19D2B2E9CDF980069DAA0 /* emoji_141@2x.png */, + 4CD19D2C2E9CDF980069DAA0 /* emoji_142@2x.png */, + 4CD19D2D2E9CDF980069DAA0 /* emoji_143@2x.png */, + 4CD19D2E2E9CDF980069DAA0 /* emoji_144@2x.png */, + 4CD19D2F2E9CDF980069DAA0 /* emoji_145@2x.png */, + 4CD19D302E9CDF980069DAA0 /* emoji_146@2x.png */, + 4CD19D312E9CDF980069DAA0 /* emoji_147@2x.png */, + 4CD19D322E9CDF980069DAA0 /* emoji_148@2x.png */, + 4CD19D332E9CDF980069DAA0 /* emoji_149@2x.png */, + 4CD19D342E9CDF980069DAA0 /* emoji_150@2x.png */, + 4CD19D352E9CDF980069DAA0 /* emoji_151@2x.png */, + 4CD19D362E9CDF980069DAA0 /* emoji_152@2x.png */, + 4CD19D372E9CDF980069DAA0 /* emoji_160@2x.png */, + 4CD19D382E9CDF980069DAA0 /* emoji_161@2x.png */, + 4CD19D392E9CDF980069DAA0 /* emoji_162@2x.png */, + 4CD19D3A2E9CDF980069DAA0 /* emoji_163@2x.png */, + 4CD19D3B2E9CDF980069DAA0 /* emoji_164@2x.png */, + 4CD19D3C2E9CDF980069DAA0 /* emoji_165@2x.png */, + 4CD19D3D2E9CDF980069DAA0 /* emoji_166@2x.png */, + 4CD19D3E2E9CDF980069DAA0 /* emoji_200@2x.png */, + 4CD19D3F2E9CDF980069DAA0 /* emoji_del_normal@2x.png */, + 4CD19D402E9CDF980069DAA0 /* emoji_del_pressed@2x.png */, + ); + path = Emoji; + sourceTree = ""; + }; + 4CD19D5E2E9CDF980069DAA0 /* InputView */ = { + isa = PBXGroup; + children = ( + 4CD19D422E9CDF980069DAA0 /* QEEmotionImageView.h */, + 4CD19D432E9CDF980069DAA0 /* QEEmotionImageView.m */, + 4CD19D442E9CDF980069DAA0 /* QEmotion.h */, + 4CD19D452E9CDF980069DAA0 /* QEmotion.m */, + 4CD19D462E9CDF980069DAA0 /* QEmotionAttachment.h */, + 4CD19D472E9CDF980069DAA0 /* QEmotionAttachment.m */, + 4CD19D482E9CDF980069DAA0 /* QEmotionBoardView.h */, + 4CD19D492E9CDF980069DAA0 /* QEmotionBoardView.m */, + 4CD19D4A2E9CDF980069DAA0 /* QEmotionHelper.h */, + 4CD19D4B2E9CDF980069DAA0 /* QEmotionHelper.m */, + 4CD19D4C2E9CDF980069DAA0 /* QExtendBoardView.h */, + 4CD19D4D2E9CDF980069DAA0 /* QExtendBoardView.m */, + 4CD19D4E2E9CDF980069DAA0 /* QInputBarView.h */, + 4CD19D4F2E9CDF980069DAA0 /* QInputBarView.m */, + 4CD19D502E9CDF980069DAA0 /* QInputBarViewConfiguration.h */, + 4CD19D512E9CDF980069DAA0 /* QInputBarViewConfiguration.m */, + 4CD19D522E9CDF980069DAA0 /* QInputPhototCell.h */, + 4CD19D532E9CDF980069DAA0 /* QInputPhototCell.m */, + 4CD19D542E9CDF980069DAA0 /* QinputPhotoView.h */, + 4CD19D552E9CDF980069DAA0 /* QinputPhotoView.m */, + 4CD19D562E9CDF980069DAA0 /* QKeyboardBaseManager.h */, + 4CD19D572E9CDF980069DAA0 /* QKeyboardBaseManager.m */, + 4CD19D582E9CDF980069DAA0 /* QKeyboardManager.h */, + 4CD19D592E9CDF980069DAA0 /* QKeyboardManager.m */, + 4CD19D5A2E9CDF980069DAA0 /* QPhotoImageModel.h */, + 4CD19D5B2E9CDF980069DAA0 /* QPhotoImageModel.m */, + 4CD19D5C2E9CDF980069DAA0 /* UITextView+QEmotion.h */, + 4CD19D5D2E9CDF980069DAA0 /* UITextView+QEmotion.m */, + ); + path = InputView; + sourceTree = ""; + }; + 4CD19D612E9CDF980069DAA0 /* InputView */ = { + isa = PBXGroup; + children = ( + 4CD19D412E9CDF980069DAA0 /* Emoji */, + 4CD19D5E2E9CDF980069DAA0 /* InputView */, + 4CD19D5F2E9CDF980069DAA0 /* Assets.xcassets */, + 4CD19D602E9CDF980069DAA0 /* emoji.plist */, + ); + path = InputView; + sourceTree = ""; + }; + 4CD19D762E9CDF980069DAA0 /* MSRTL */ = { + isa = PBXGroup; + children = ( + 4CD19D622E9CDF980069DAA0 /* MSBaseRTLFlowLayout.h */, + 4CD19D632E9CDF980069DAA0 /* MSBaseRTLFlowLayout.m */, + 4CD19D642E9CDF980069DAA0 /* MSBaseTextField.h */, + 4CD19D652E9CDF980069DAA0 /* MSBaseTextField.m */, + 4CD19D662E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.h */, + 4CD19D672E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.m */, + 4CD19D682E9CDF980069DAA0 /* UIButton+MSRTL.h */, + 4CD19D692E9CDF980069DAA0 /* UIButton+MSRTL.m */, + 4CD19D6A2E9CDF980069DAA0 /* UIImage+MSRTL.h */, + 4CD19D6B2E9CDF980069DAA0 /* UIImage+MSRTL.m */, + 4CD19D6C2E9CDF980069DAA0 /* UILabel+MSRTL.h */, + 4CD19D6D2E9CDF980069DAA0 /* UILabel+MSRTL.m */, + 4CD19D6E2E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.h */, + 4CD19D6F2E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.m */, + 4CD19D702E9CDF980069DAA0 /* UITextField+MSRTL.h */, + 4CD19D712E9CDF980069DAA0 /* UITextField+MSRTL.m */, + 4CD19D722E9CDF980069DAA0 /* UITextView+MSRTL.h */, + 4CD19D732E9CDF980069DAA0 /* UITextView+MSRTL.m */, + 4CD19D742E9CDF980069DAA0 /* YYLabel+MSRTL.h */, + 4CD19D752E9CDF980069DAA0 /* YYLabel+MSRTL.m */, + ); + path = MSRTL; + sourceTree = ""; + }; + 4CD19D7B2E9CDF980069DAA0 /* Model */ = { + isa = PBXGroup; + children = ( + 4CD19D772E9CDF980069DAA0 /* XPShareInfoModel.h */, + 4CD19D782E9CDF980069DAA0 /* XPShareInfoModel.m */, + 4CD19D792E9CDF980069DAA0 /* XPShareItem.h */, + 4CD19D7A2E9CDF980069DAA0 /* XPShareItem.m */, + ); + path = Model; + sourceTree = ""; + }; + 4CD19D7E2E9CDF980069DAA0 /* View */ = { + isa = PBXGroup; + children = ( + 4CD19D7C2E9CDF980069DAA0 /* XPShareItemCell.h */, + 4CD19D7D2E9CDF980069DAA0 /* XPShareItemCell.m */, + ); + path = View; + sourceTree = ""; + }; + 4CD19D812E9CDF980069DAA0 /* ShareView */ = { + isa = PBXGroup; + children = ( + 4CD19D7B2E9CDF980069DAA0 /* Model */, + 4CD19D7E2E9CDF980069DAA0 /* View */, + 4CD19D7F2E9CDF980069DAA0 /* XPShareView.h */, + 4CD19D802E9CDF980069DAA0 /* XPShareView.m */, + ); + path = ShareView; + sourceTree = ""; + }; + 4CD19D842E9CDF980069DAA0 /* SVGA */ = { + isa = PBXGroup; + children = ( + 4CD19D822E9CDF980069DAA0 /* XPSVGAPlayer.h */, + 4CD19D832E9CDF980069DAA0 /* XPSVGAPlayer.m */, + ); + path = SVGA; + sourceTree = ""; + }; + 4CD19D872E9CDF980069DAA0 /* SwitchView */ = { + isa = PBXGroup; + children = ( + 4CD19D852E9CDF980069DAA0 /* XPSwitch.h */, + 4CD19D862E9CDF980069DAA0 /* XPSwitch.m */, + ); + path = SwitchView; + sourceTree = ""; + }; + 4CD19D902E9CDF980069DAA0 /* Config */ = { + isa = PBXGroup; + children = ( + 4CD19D882E9CDF980069DAA0 /* TTActionSheetConfig.h */, + 4CD19D892E9CDF980069DAA0 /* TTActionSheetConfig.m */, + 4CD19D8A2E9CDF980069DAA0 /* TTAlertButtonConfig.h */, + 4CD19D8B2E9CDF980069DAA0 /* TTAlertButtonConfig.m */, + 4CD19D8C2E9CDF980069DAA0 /* TTAlertConfig.h */, + 4CD19D8D2E9CDF980069DAA0 /* TTAlertConfig.m */, + 4CD19D8E2E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.h */, + 4CD19D8F2E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.m */, + ); + path = Config; + sourceTree = ""; + }; + 4CD19D922E9CDF980069DAA0 /* Header */ = { + isa = PBXGroup; + children = ( + 4CD19D912E9CDF980069DAA0 /* TTPopupConstants.h */, + ); + path = Header; + sourceTree = ""; + }; + 4CD19D962E9CDF980069DAA0 /* Manager */ = { + isa = PBXGroup; + children = ( + 4CD19D932E9CDF980069DAA0 /* TTPopupManagerService.h */, + 4CD19D942E9CDF980069DAA0 /* TTPopupManagerService.m */, + 4CD19D952E9CDF980069DAA0 /* TTPopupManagerServiceProtocol.h */, + ); + path = Manager; + sourceTree = ""; + }; + 4CD19D9A2E9CDF980069DAA0 /* Service */ = { + isa = PBXGroup; + children = ( + 4CD19D972E9CDF980069DAA0 /* TTPopupService.h */, + 4CD19D982E9CDF980069DAA0 /* TTPopupService.m */, + 4CD19D992E9CDF980069DAA0 /* TTPopupServiceProtocol.h */, + ); + path = Service; + sourceTree = ""; + }; + 4CD19DA12E9CDF980069DAA0 /* View */ = { + isa = PBXGroup; + children = ( + 4CD19D9B2E9CDF980069DAA0 /* TTActionSheetView.h */, + 4CD19D9C2E9CDF980069DAA0 /* TTActionSheetView.m */, + 4CD19D9D2E9CDF980069DAA0 /* TTAlertView.h */, + 4CD19D9E2E9CDF980069DAA0 /* TTAlertView.m */, + 4CD19D9F2E9CDF980069DAA0 /* TTNewAlertView.h */, + 4CD19DA02E9CDF980069DAA0 /* TTNewAlertView.m */, + ); + path = View; + sourceTree = ""; + }; + 4CD19DA42E9CDF980069DAA0 /* TTPopup */ = { + isa = PBXGroup; + children = ( + 4CD19D902E9CDF980069DAA0 /* Config */, + 4CD19D922E9CDF980069DAA0 /* Header */, + 4CD19D962E9CDF980069DAA0 /* Manager */, + 4CD19D9A2E9CDF980069DAA0 /* Service */, + 4CD19DA12E9CDF980069DAA0 /* View */, + 4CD19DA22E9CDF980069DAA0 /* TTPopup.h */, + 4CD19DA32E9CDF980069DAA0 /* TTPopup.m */, + ); + path = TTPopup; + sourceTree = ""; + }; + 4CD19DA72E9CDF980069DAA0 /* UIButton */ = { + isa = PBXGroup; + children = ( + 4CD19DA52E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.h */, + 4CD19DA62E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.m */, + ); + path = UIButton; + sourceTree = ""; + }; + 4CD19DAA2E9CDF980069DAA0 /* UIImage */ = { + isa = PBXGroup; + children = ( + 4CD19DA82E9CDF980069DAA0 /* UIImage+Utils.h */, + 4CD19DA92E9CDF980069DAA0 /* UIImage+Utils.m */, + ); + path = UIImage; + sourceTree = ""; + }; + 4CD19DB12E9CDF980069DAA0 /* UIImageView */ = { + isa = PBXGroup; + children = ( + 4CD19DAB2E9CDF980069DAA0 /* NetImageConfig.h */, + 4CD19DAC2E9CDF980069DAA0 /* NetImageConfig.m */, + 4CD19DAD2E9CDF980069DAA0 /* NetImageView.h */, + 4CD19DAE2E9CDF980069DAA0 /* NetImageView.m */, + 4CD19DAF2E9CDF980069DAA0 /* UIImageConstant.h */, + 4CD19DB02E9CDF980069DAA0 /* UIImageConstant.m */, + ); + path = UIImageView; + sourceTree = ""; + }; + 4CD19DB42E9CDF980069DAA0 /* UIViewCorner */ = { + isa = PBXGroup; + children = ( + 4CD19DB22E9CDF980069DAA0 /* UIView+Corner.h */, + 4CD19DB32E9CDF980069DAA0 /* UIView+Corner.m */, + ); + path = UIViewCorner; + sourceTree = ""; + }; + 4CD19DB72E9CDF980069DAA0 /* UIViewGradientLayer */ = { + isa = PBXGroup; + children = ( + 4CD19DB52E9CDF980069DAA0 /* UIView+GradientLayer.h */, + 4CD19DB62E9CDF980069DAA0 /* UIView+GradientLayer.m */, + ); + path = UIViewGradientLayer; + sourceTree = ""; + }; + 4CD19DBA2E9CDF980069DAA0 /* VagueImageView */ = { + isa = PBXGroup; + children = ( + 4CD19DB82E9CDF980069DAA0 /* UIImage+ImageEffects.h */, + 4CD19DB92E9CDF980069DAA0 /* UIImage+ImageEffects.m */, + ); + path = VagueImageView; + sourceTree = ""; + }; + 4CD19DC92E9CDF980069DAA0 /* CustomUI */ = { + isa = PBXGroup; + children = ( + 4CD19C9A2E9CDF980069DAA0 /* Adbvertise */, + 4CD19D612E9CDF980069DAA0 /* InputView */, + 4CD19D762E9CDF980069DAA0 /* MSRTL */, + 4CD19D812E9CDF980069DAA0 /* ShareView */, + 4CD19D842E9CDF980069DAA0 /* SVGA */, + 4CD19D872E9CDF980069DAA0 /* SwitchView */, + 4CD19DA42E9CDF980069DAA0 /* TTPopup */, + 4CD19DA72E9CDF980069DAA0 /* UIButton */, + 4CD19DAA2E9CDF980069DAA0 /* UIImage */, + 4CD19DB12E9CDF980069DAA0 /* UIImageView */, + 4CD19DB42E9CDF980069DAA0 /* UIViewCorner */, + 4CD19DB72E9CDF980069DAA0 /* UIViewGradientLayer */, + 4CD19DBA2E9CDF980069DAA0 /* VagueImageView */, + 4CD19DBB2E9CDF980069DAA0 /* DJDKMIMOMColor.h */, + 4CD19DBC2E9CDF980069DAA0 /* DJDKMIMOMColor.m */, + 4CD19DBD2E9CDF980069DAA0 /* EmptyDataView.h */, + 4CD19DBE2E9CDF980069DAA0 /* EmptyDataView.m */, + 4CD19DBF2E9CDF980069DAA0 /* MoliAvatar.h */, + 4CD19DC02E9CDF980069DAA0 /* MoliAvatar.m */, + 4CD19DC12E9CDF980069DAA0 /* MoliMoneyLabel.h */, + 4CD19DC22E9CDF980069DAA0 /* MoliMoneyLabel.m */, + 4CD19DC32E9CDF980069DAA0 /* SexAgeLabel.h */, + 4CD19DC42E9CDF980069DAA0 /* SexAgeLabel.m */, + 4CD19DC52E9CDF980069DAA0 /* XCCurrentVCStackManager.h */, + 4CD19DC62E9CDF980069DAA0 /* XCCurrentVCStackManager.m */, + 4CD19DC72E9CDF980069DAA0 /* XNDJTDDLoadingTool.h */, + 4CD19DC82E9CDF980069DAA0 /* XNDJTDDLoadingTool.m */, + ); + path = CustomUI; + sourceTree = ""; + }; 4CD47BB72E619F0B00BCDA46 /* Action */ = { isa = PBXGroup; children = ( @@ -7783,225 +8152,6 @@ path = Timer; sourceTree = ""; }; - E80EC74A28ACD84000D133C5 /* InputView */ = { - isa = PBXGroup; - children = ( - E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */, - E80EC76128ACD84000D133C5 /* Emoji */, - E80EC80828ACD84000D133C5 /* emoji.plist */, - E80EC74B28ACD84000D133C5 /* InputView */, - ); - path = InputView; - sourceTree = ""; - }; - E80EC74B28ACD84000D133C5 /* InputView */ = { - isa = PBXGroup; - children = ( - E80EC75F28ACD84000D133C5 /* QEmotion.h */, - E80EC75228ACD84000D133C5 /* QEmotion.m */, - E80EC75428ACD84000D133C5 /* QEmotionAttachment.h */, - E80EC75D28ACD84000D133C5 /* QEmotionAttachment.m */, - E80EC75928ACD84000D133C5 /* QEmotionBoardView.h */, - E80EC74C28ACD84000D133C5 /* QEmotionBoardView.m */, - E80EC74D28ACD84000D133C5 /* QEmotionHelper.h */, - E80EC75828ACD84000D133C5 /* QEmotionHelper.m */, - E80EC75C28ACD84000D133C5 /* QExtendBoardView.h */, - E80EC75528ACD84000D133C5 /* QExtendBoardView.m */, - E80EC75B28ACD84000D133C5 /* QInputBarView.h */, - E80EC75028ACD84000D133C5 /* QInputBarView.m */, - E80EC75728ACD84000D133C5 /* QInputBarViewConfiguration.h */, - E80EC74E28ACD84000D133C5 /* QInputBarViewConfiguration.m */, - E80EC75A28ACD84000D133C5 /* QKeyboardBaseManager.h */, - E80EC75128ACD84000D133C5 /* QKeyboardBaseManager.m */, - E80EC75328ACD84000D133C5 /* QKeyboardManager.h */, - E80EC75E28ACD84000D133C5 /* QKeyboardManager.m */, - E81125C2296E57B7000D9804 /* QinputPhotoView.h */, - E81125C3296E57B7000D9804 /* QinputPhotoView.m */, - E81125C8296E606F000D9804 /* QPhotoImageModel.h */, - E81125C9296E606F000D9804 /* QPhotoImageModel.m */, - E80EC75628ACD84000D133C5 /* UITextView+QEmotion.h */, - E80EC74F28ACD84000D133C5 /* UITextView+QEmotion.m */, - E80EC8C028ACF97A00D133C5 /* QEEmotionImageView.h */, - E80EC8C128ACF97A00D133C5 /* QEEmotionImageView.m */, - E81125C5296E596D000D9804 /* QInputPhototCell.h */, - E81125C6296E596D000D9804 /* QInputPhototCell.m */, - ); - path = InputView; - sourceTree = ""; - }; - E80EC76128ACD84000D133C5 /* Emoji */ = { - isa = PBXGroup; - children = ( - E80EC76228ACD84000D133C5 /* emoji_138@2x.png */, - E80EC76328ACD84000D133C5 /* emoji_145@2x.png */, - E80EC76428ACD84000D133C5 /* emoji_126@2x.png */, - E80EC76528ACD84000D133C5 /* emoji_134@2x.png */, - E80EC76628ACD84000D133C5 /* emoji_149@2x.png */, - E80EC76728ACD84000D133C5 /* emoji_80@2x.png */, - E80EC76828ACD84000D133C5 /* emoji_161@2x.png */, - E80EC76928ACD84000D133C5 /* emoji_102@2x.png */, - E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */, - E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */, - E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */, - E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */, - E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */, - E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */, - E80EC77028ACD84000D133C5 /* emoji_34@2x.png */, - E80EC77128ACD84000D133C5 /* emoji_57@2x.png */, - E80EC77228ACD84000D133C5 /* emoji_02@2x.png */, - E80EC77328ACD84000D133C5 /* emoji_61@2x.png */, - E80EC77428ACD84000D133C5 /* emoji_10@2x.png */, - E80EC77528ACD84000D133C5 /* emoji_73@2x.png */, - E80EC77628ACD84000D133C5 /* emoji_55@2x.png */, - E80EC77728ACD84000D133C5 /* emoji_28@2x.png */, - E80EC77828ACD84000D133C5 /* emoji_36@2x.png */, - E80EC77928ACD84000D133C5 /* emoji_47@2x.png */, - E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */, - E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */, - E80EC77C28ACD84000D133C5 /* emoji.xml */, - E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */, - E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */, - E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */, - E80EC78028ACD84000D133C5 /* emoji_00@2x.png */, - E80EC78128ACD84000D133C5 /* emoji_136@2x.png */, - E80EC78228ACD84000D133C5 /* emoji_128@2x.png */, - E80EC78328ACD84000D133C5 /* emoji_124@2x.png */, - E80EC78428ACD84000D133C5 /* emoji_147@2x.png */, - E80EC78528ACD84000D133C5 /* emoji_112@2x.png */, - E80EC78628ACD84000D133C5 /* emoji_90@2x.png */, - E80EC78728ACD84000D133C5 /* emoji_100@2x.png */, - E80EC78828ACD84000D133C5 /* emoji_82@2x.png */, - E80EC78928ACD84000D133C5 /* emoji_163@2x.png */, - E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */, - E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */, - E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */, - E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */, - E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */, - E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */, - E80EC79028ACD84000D133C5 /* emoji_43@2x.png */, - E80EC79128ACD84000D133C5 /* emoji_20@2x.png */, - E80EC79228ACD84000D133C5 /* emoji_51@2x.png */, - E80EC79328ACD84000D133C5 /* emoji_32@2x.png */, - E80EC79428ACD84000D133C5 /* emoji_98@2x.png */, - E80EC79528ACD84000D133C5 /* emoji_104@2x.png */, - E80EC79628ACD84000D133C5 /* emoji_86@2x.png */, - E80EC79728ACD84000D133C5 /* emoji_116@2x.png */, - E80EC79828ACD84000D133C5 /* emoji_94@2x.png */, - E80EC79928ACD84000D133C5 /* emoji_108@2x.png */, - E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */, - E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */, - E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */, - E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */, - E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */, - E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */, - E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */, - E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */, - E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */, - E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */, - E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */, - E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */, - E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */, - E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */, - E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */, - E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */, - E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */, - E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */, - E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */, - E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */, - E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */, - E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */, - E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */, - E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */, - E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */, - E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */, - E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */, - E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */, - E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */, - E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */, - E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */, - E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */, - E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */, - E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */, - E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */, - E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */, - E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */, - E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */, - E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */, - E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */, - E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */, - E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */, - E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */, - E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */, - E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */, - E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */, - E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */, - E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */, - E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */, - E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */, - E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */, - E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */, - E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */, - E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */, - E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */, - E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */, - E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */, - E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */, - E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */, - E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */, - E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */, - E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */, - E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */, - E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */, - E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */, - E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */, - E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */, - E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */, - E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */, - E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */, - E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */, - E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */, - E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */, - E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */, - E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */, - E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */, - E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */, - E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */, - E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */, - E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */, - E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */, - E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */, - E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */, - E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */, - E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */, - E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */, - E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */, - E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */, - E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */, - E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */, - E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */, - E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */, - E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */, - E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */, - E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */, - E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */, - E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */, - E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */, - E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */, - E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */, - E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */, - E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */, - E80EC80028ACD84000D133C5 /* emoji_140@2x.png */, - E80EC80128ACD84000D133C5 /* emoji_115@2x.png */, - E80EC80228ACD84000D133C5 /* emoji_89@2x.png */, - E80EC80328ACD84000D133C5 /* emoji_97@2x.png */, - E80EC80428ACD84000D133C5 /* emoji_107@2x.png */, - E80EC80528ACD84000D133C5 /* emoji_119@2x.png */, - E80EC80628ACD84000D133C5 /* emoji_85@2x.png */, - E80EC80728ACD84000D133C5 /* emoji_164@2x.png */, - ); - path = Emoji; - sourceTree = ""; - }; E81060D62987613E00B772F0 /* SesssionModel */ = { isa = PBXGroup; children = ( @@ -8072,15 +8222,6 @@ path = NSString; sourceTree = ""; }; - E81366F926F0D27A0076364C /* UIButton */ = { - isa = PBXGroup; - children = ( - E81366FB26F0D2980076364C /* UIButton+EnlargeTouchArea.h */, - E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */, - ); - path = UIButton; - sourceTree = ""; - }; E81C1B1327705EF00020D1E4 /* ArrangeMic */ = { isa = PBXGroup; children = ( @@ -8322,19 +8463,6 @@ path = Model; sourceTree = ""; }; - E81E09C6290F719C00A1F410 /* Adbvertise */ = { - isa = PBXGroup; - children = ( - E81E09C7290F71BF00A1F410 /* XPAdvertiseView.h */, - E81E09C8290F71BF00A1F410 /* XPAdvertiseView.m */, - E81E09CA290F732500A1F410 /* XPAdImageTool.h */, - E81E09CB290F732600A1F410 /* XPAdImageTool.m */, - E81E09CD290F750800A1F410 /* AdvertiseModel.h */, - E81E09CE290F750800A1F410 /* AdvertiseModel.m */, - ); - path = Adbvertise; - sourceTree = ""; - }; E82109AA26F1C86E00FC3319 /* CountDown */ = { isa = PBXGroup; children = ( @@ -8344,15 +8472,6 @@ path = CountDown; sourceTree = ""; }; - E82109B126F2050D00FC3319 /* UIImage */ = { - isa = PBXGroup; - children = ( - 189DD67C26E1FD8900AB55B1 /* UIImage+Utils.h */, - 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */, - ); - path = UIImage; - sourceTree = ""; - }; E82325EA274E2D52003A3332 /* UserCard */ = { isa = PBXGroup; children = ( @@ -9427,15 +9546,6 @@ path = Api; sourceTree = ""; }; - E8659640270160F200846EBD /* VagueImageView */ = { - isa = PBXGroup; - children = ( - E86596422701611A00846EBD /* UIImage+ImageEffects.h */, - E86596412701611A00846EBD /* UIImage+ImageEffects.m */, - ); - path = VagueImageView; - sourceTree = ""; - }; E865964E2701A1A900846EBD /* StatisticsService */ = { isa = PBXGroup; children = ( @@ -10398,24 +10508,6 @@ path = Friend; sourceTree = ""; }; - E8998D772859782C00C68558 /* SVGA */ = { - isa = PBXGroup; - children = ( - E8998D782859784200C68558 /* XPSVGAPlayer.h */, - E8998D792859784200C68558 /* XPSVGAPlayer.m */, - ); - path = SVGA; - sourceTree = ""; - }; - E8998D932859DD3F00C68558 /* UIViewCorner */ = { - isa = PBXGroup; - children = ( - E8998D942859DD6F00C68558 /* UIView+Corner.h */, - E8998D952859DD6F00C68558 /* UIView+Corner.m */, - ); - path = UIViewCorner; - sourceTree = ""; - }; E899C68D2750DA3C00E189E5 /* CustomMessage */ = { isa = PBXGroup; children = ( @@ -10555,19 +10647,6 @@ path = Cell; sourceTree = ""; }; - E8AC720A26F435AF007D6E91 /* UIImageView */ = { - isa = PBXGroup; - children = ( - E8AC720E26F43955007D6E91 /* UIImageConstant.h */, - E8AC720F26F43955007D6E91 /* UIImageConstant.m */, - 1808072E27315E8E001FD836 /* NetImageView.h */, - 1808072F27315E8E001FD836 /* NetImageView.m */, - 18A61BD5274F7F6900A09A54 /* NetImageConfig.h */, - 18A61BD6274F7F6900A09A54 /* NetImageConfig.m */, - ); - path = UIImageView; - sourceTree = ""; - }; E8AEAED3271412D00017FCE0 /* YMRoom */ = { isa = PBXGroup; children = ( @@ -11519,15 +11598,6 @@ path = Safe; sourceTree = ""; }; - E8FE3C292994D0CC0006C6C7 /* SwitchView */ = { - isa = PBXGroup; - children = ( - E8FE3C2A2994D0E80006C6C7 /* XPSwitch.h */, - E8FE3C2B2994D0E80006C6C7 /* XPSwitch.m */, - ); - path = SwitchView; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -11597,117 +11667,38 @@ buildActionMask = 2147483647; files = ( 23116B0B2BDB8FDC00F7F97A /* PrivacyInfo.xcprivacy in Resources */, - E80EC88928ACD84000D133C5 /* emoj_s_normal@2x.png in Resources */, - E80EC84628ACD84000D133C5 /* emoji_98@2x.png in Resources */, - E80EC84728ACD84000D133C5 /* emoji_104@2x.png in Resources */, - E80EC83328ACD84000D133C5 /* emoji_136@2x.png in Resources */, 54B9C6FB2C9DA4C4003F1CC5 /* CP绑定.mp4 in Resources */, - E80EC82628ACD84000D133C5 /* emoji_10@2x.png in Resources */, - E80EC82C28ACD84000D133C5 /* emoji_59@2x.png in Resources */, - E80EC81A28ACD84000D133C5 /* emoji_161@2x.png in Resources */, 4CAE69C52E69922B00A9FC35 /* mic_cp_lv1.svga in Resources */, 4CAE69C62E69922B00A9FC35 /* mic_cp_lv2.svga in Resources */, 4CAE69C72E69922B00A9FC35 /* mic_cp_lv4.svga in Resources */, 4CAE69C82E69922B00A9FC35 /* mic_cp_lv5.svga in Resources */, 4CAE69C92E69922B00A9FC35 /* mic_cp_lv3.svga in Resources */, - E80EC85228ACD84000D133C5 /* emoji_114@2x.png in Resources */, - E80EC81F28ACD84000D133C5 /* emoji_45@2x.png in Resources */, - E80EC85A28ACD84000D133C5 /* emoji_14@2x.png in Resources */, - E80EC8B828ACD84100D133C5 /* emoji_85@2x.png in Resources */, 23CEFC5A2AFB8FC100576D89 /* pay_on.png in Resources */, - E80EC82828ACD84000D133C5 /* emoji_55@2x.png in Resources */, 2368ECD32BC38FDA00EDF4C9 /* Launch Screen.storyboard in Resources */, - E80EC86728ACD84000D133C5 /* emoji_11@2x.png in Resources */, - E80EC88B28ACD84000D133C5 /* emoji_58@2x.png in Resources */, 23EE96F22B9FF6BE00475D69 /* pi_crazy_zoo.svga in Resources */, - E80EC85D28ACD84000D133C5 /* emoji_06@2x.png in Resources */, - E80EC83428ACD84000D133C5 /* emoji_128@2x.png in Resources */, - E80EC81C28ACD84000D133C5 /* emoji_92@2x.png in Resources */, - E80EC81D28ACD84000D133C5 /* emoji_110@2x.png in Resources */, - E80EC8B128ACD84100D133C5 /* emoji_123@2x.png in Resources */, - E80EC89B28ACD84000D133C5 /* emoji_33@2x.png in Resources */, - E80EC85C28ACD84000D133C5 /* emoji_77@2x.png in Resources */, - E80EC85528ACD84000D133C5 /* emoji_118@2x.png in Resources */, - E80EC8B728ACD84100D133C5 /* emoji_119@2x.png in Resources */, - E80EC86228ACD84000D133C5 /* emoji_22@2x.png in Resources */, - E80EC82528ACD84000D133C5 /* emoji_61@2x.png in Resources */, - E80EC81528ACD84000D133C5 /* emoji_145@2x.png in Resources */, - E80EC85428ACD84000D133C5 /* emoji_165@2x.png in Resources */, - E80EC88728ACD84000D133C5 /* emoji_29@2x.png in Resources */, - E80EC83728ACD84000D133C5 /* emoji_112@2x.png in Resources */, - E80EC88C28ACD84000D133C5 /* emoji_46@2x.png in Resources */, 4C13929D2D70441500A6DFB5 /* giftgift.mp4 in Resources */, - E80EC86028ACD84000D133C5 /* emoji_30@2x.png in Resources */, - E80EC84928ACD84000D133C5 /* emoji_116@2x.png in Resources */, - E80EC89328ACD84000D133C5 /* emoji_166@2x.png in Resources */, - E80EC84228ACD84000D133C5 /* emoji_43@2x.png in Resources */, - E80EC83828ACD84000D133C5 /* emoji_90@2x.png in Resources */, - E80EC86F28ACD84000D133C5 /* emoji_103@2x.png in Resources */, - E80EC8BF28ACDB2A00D133C5 /* Assets.xcassets in Resources */, - E80EC88028ACD84000D133C5 /* emoji_146@2x.png in Resources */, - E80EC82F28ACD84000D133C5 /* emoji_71@2x.png in Resources */, 23CEFC582AFB8FC100576D89 /* pay_on@3x.png in Resources */, - E80EC8A428ACD84100D133C5 /* emoji_31@2x.png in Resources */, - E80EC85028ACD84000D133C5 /* emoji_96@2x.png in Resources */, - E80EC85E28ACD84000D133C5 /* emoji_18@2x.png in Resources */, - E80EC81428ACD84000D133C5 /* emoji_138@2x.png in Resources */, - E80EC87228ACD84000D133C5 /* emoji_111@2x.png in Resources */, - E80EC8A728ACD84100D133C5 /* emoji_del_normal@2x.png in Resources */, - E80EC88628ACD84000D133C5 /* emoji_37@2x.png in Resources */, - E80EC86C28ACD84000D133C5 /* emoji_56@2x.png in Resources */, - E80EC85128ACD84000D133C5 /* emoji_88@2x.png in Resources */, - E80EC83E28ACD84000D133C5 /* emoji_79@2x.png in Resources */, - E80EC83228ACD84000D133C5 /* emoji_00@2x.png in Resources */, - E80EC89C28ACD84000D133C5 /* emoji_50@2x.png in Resources */, - E80EC87A28ACD84000D133C5 /* emoji_113@2x.png in Resources */, 23FF25622ABAE6310064E904 /* pi_room_game_fine_love.svga in Resources */, 23FF42672AA5CFBB0055733C /* home_sound_wave.gif in Resources */, 4C1392A12D71675900A6DFB5 /* coincoin.mp4 in Resources */, - E80EC88A28ACD84000D133C5 /* emoji_25@2x.png in Resources */, - E80EC87828ACD84000D133C5 /* emoji_135@2x.png in Resources */, - E80EC8AD28ACD84100D133C5 /* emoji_07@2x.png in Resources */, - E80EC8B528ACD84100D133C5 /* emoji_97@2x.png in Resources */, - E80EC82428ACD84000D133C5 /* emoji_02@2x.png in Resources */, - E80EC87428ACD84000D133C5 /* emoji_127@2x.png in Resources */, E80E09A92A40B70100CD2BE7 /* Localizable.strings in Resources */, - E80EC84828ACD84000D133C5 /* emoji_86@2x.png in Resources */, - E80EC87728ACD84000D133C5 /* emoji_148@2x.png in Resources */, 4CACCCE42D9A695000CCB135 /* brove_gift.svga in Resources */, - E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */, 237701192BD6143700D661F1 /* pi_happy_egg_smash.svga in Resources */, 544B19BC2CA169BE00885BEB /* level up 3.svga in Resources */, 544B19BD2CA169BE00885BEB /* level up 4.svga in Resources */, 544B19BE2CA169BE00885BEB /* level up 5.svga in Resources */, 544B19BF2CA169BE00885BEB /* level up 1.svga in Resources */, 544B19C02CA169BE00885BEB /* level up 2.svga in Resources */, - E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */, 54FFD3812C9BD12600DE61E5 /* 4.svga in Resources */, 54FFD3822C9BD12600DE61E5 /* 1.svga in Resources */, 54FFD3832C9BD12600DE61E5 /* 5.svga in Resources */, 54FFD3842C9BD12600DE61E5 /* 3.svga in Resources */, 54FFD3852C9BD12600DE61E5 /* 2.svga in Resources */, 54C608522CBE0BEB003DD5D2 /* game_floating_bg.svga in Resources */, - E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */, 2368ECCF2BC38F9800EDF4C9 /* InfoPlist.strings in Resources */, - E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */, 2368ECE72BC5280300EDF4C9 /* css in Resources */, - E80EC83D28ACD84000D133C5 /* emoji_04@2x.png in Resources */, - E80EC81728ACD84000D133C5 /* emoji_134@2x.png in Resources */, 2368ECE92BC5280300EDF4C9 /* js in Resources */, - E80EC88328ACD84000D133C5 /* emoji_70@2x.png in Resources */, 23CEFC532AFB8FC100576D89 /* readMe_FileOption.txt in Resources */, - E80EC89528ACD84000D133C5 /* emoji_99@2x.png in Resources */, - E80EC89128ACD84000D133C5 /* emoji_133@2x.png in Resources */, - E80EC87F28ACD84000D133C5 /* emoji_137@2x.png in Resources */, - E80EC8B028ACD84100D133C5 /* emoji_152@2x.png in Resources */, - E80EC85728ACD84000D133C5 /* emoji_130@2x.png in Resources */, - E80EC85F28ACD84000D133C5 /* emoji_65@2x.png in Resources */, - E80EC84028ACD84000D133C5 /* emoji_75@2x.png in Resources */, - E80EC88D28ACD84000D133C5 /* emoji_del_pressed@2x.png in Resources */, - E80EC83A28ACD84000D133C5 /* emoji_82@2x.png in Resources */, - E80EC8B428ACD84100D133C5 /* emoji_89@2x.png in Resources */, - E80EC89F28ACD84000D133C5 /* emoji_66@2x.png in Resources */, - E80EC87128ACD84000D133C5 /* emoji_160@2x.png in Resources */, 23E9EB252A84E98300B792F2 /* pi_new_mine_info_online.svga in Resources */, 2368ECEB2BC5280300EDF4C9 /* upload.html in Resources */, 546104112CD4B46F00066B21 /* gift_normal_1.svga in Resources */, @@ -11717,118 +11708,197 @@ 546104152CD4B46F00066B21 /* gift_VIP_1.svga in Resources */, 546104162CD4B46F00066B21 /* gift_VIP_3.svga in Resources */, 23A03F2D2B4408CD0094227A /* pi_room_lucky_gift.svga in Resources */, - E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */, - E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */, - E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */, - E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */, - E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */, - E80EC84528ACD84000D133C5 /* emoji_32@2x.png in Resources */, - E80EC86928ACD84000D133C5 /* emoji_44@2x.png in Resources */, - E80EC83528ACD84000D133C5 /* emoji_124@2x.png in Resources */, - E80EC8A928ACD84100D133C5 /* emoji_68@2x.png in Resources */, - E80EC89D28ACD84000D133C5 /* emoji_78@2x.png in Resources */, - E80EC8AC28ACD84100D133C5 /* emoji_19@2x.png in Resources */, - E80EC84428ACD84000D133C5 /* emoji_51@2x.png in Resources */, - E80EC84D28ACD84000D133C5 /* emoji_143@2x.png in Resources */, - E80EC81B28ACD84000D133C5 /* emoji_102@2x.png in Resources */, - E80EC89028ACD84000D133C5 /* emoji_150@2x.png in Resources */, - E80EC84128ACD84000D133C5 /* emoji_16@2x.png in Resources */, - E80EC83C28ACD84000D133C5 /* emoji_67@2x.png in Resources */, - E80EC8B928ACD84100D133C5 /* emoji_164@2x.png in Resources */, 2368ECEA2BC5280300EDF4C9 /* index.html in Resources */, - E80EC87028ACD84000D133C5 /* emoji_81@2x.png in Resources */, - E80EC8AA28ACD84100D133C5 /* emoji_15@2x.png in Resources */, - E80EC85628ACD84000D133C5 /* emoji_106@2x.png in Resources */, - E80EC89728ACD84000D133C5 /* emoji_95@2x.png in Resources */, - E80EC88828ACD84000D133C5 /* emoji_54@2x.png in Resources */, - E80EC8A528ACD84100D133C5 /* emoji_40@2x.png in Resources */, - E80EC83F28ACD84000D133C5 /* emoji_08@2x.png in Resources */, - E80EC84A28ACD84000D133C5 /* emoji_94@2x.png in Resources */, + 4CD19DCA2E9CDF980069DAA0 /* emoji_124@2x.png in Resources */, + 4CD19DCB2E9CDF980069DAA0 /* emoji_36@2x.png in Resources */, + 4CD19DCC2E9CDF980069DAA0 /* emoji_75@2x.png in Resources */, + 4CD19DCD2E9CDF980069DAA0 /* emoji_57@2x.png in Resources */, + 4CD19DCE2E9CDF980069DAA0 /* emoji_164@2x.png in Resources */, + 4CD19DCF2E9CDF980069DAA0 /* emoji_04@2x.png in Resources */, + 4CD19DD02E9CDF980069DAA0 /* emoji_84@2x.png in Resources */, + 4CD19DD12E9CDF980069DAA0 /* emoji_58@2x.png in Resources */, + 4CD19DD22E9CDF980069DAA0 /* emoji_41@2x.png in Resources */, + 4CD19DD32E9CDF980069DAA0 /* emoj_s_normal@2x.png in Resources */, + 4CD19DD42E9CDF980069DAA0 /* emoji_60@2x.png in Resources */, + 4CD19DD52E9CDF980069DAA0 /* emoji_117@2x.png in Resources */, + 4CD19DD62E9CDF980069DAA0 /* emoji_48@2x.png in Resources */, + 4CD19DD72E9CDF980069DAA0 /* emoji_92@2x.png in Resources */, + 4CD19DD82E9CDF980069DAA0 /* emoji_104@2x.png in Resources */, + 4CD19DD92E9CDF980069DAA0 /* emoji_53@2x.png in Resources */, + 4CD19DDA2E9CDF980069DAA0 /* emoji_26@2x.png in Resources */, + 4CD19DDB2E9CDF980069DAA0 /* emoji_103@2x.png in Resources */, + 4CD19DDC2E9CDF980069DAA0 /* emoji_90@2x.png in Resources */, + 4CD19DDD2E9CDF980069DAA0 /* emoji_37@2x.png in Resources */, + 4CD19DDE2E9CDF980069DAA0 /* emoji_132@2x.png in Resources */, + 4CD19DDF2E9CDF980069DAA0 /* emoji_67@2x.png in Resources */, + 4CD19DE02E9CDF980069DAA0 /* emoji_42@2x.png in Resources */, + 4CD19DE12E9CDF980069DAA0 /* emoji_99@2x.png in Resources */, + 4CD19DE22E9CDF980069DAA0 /* emoji_165@2x.png in Resources */, + 4CD19DE32E9CDF980069DAA0 /* emoji_46@2x.png in Resources */, + 4CD19DE42E9CDF980069DAA0 /* emoji.xml in Resources */, + 4CD19DE52E9CDF980069DAA0 /* emoji_52@2x.png in Resources */, + 4CD19DE62E9CDF980069DAA0 /* emoji_59@2x.png in Resources */, + 4CD19DE72E9CDF980069DAA0 /* emoji_25@2x.png in Resources */, + 4CD19DE82E9CDF980069DAA0 /* emoji_152@2x.png in Resources */, + 4CD19DE92E9CDF980069DAA0 /* emoji_163@2x.png in Resources */, + 4CD19DEA2E9CDF980069DAA0 /* emoji_146@2x.png in Resources */, + 4CD19DEB2E9CDF980069DAA0 /* emoji_134@2x.png in Resources */, + 4CD19DEC2E9CDF980069DAA0 /* emoji_19@2x.png in Resources */, + 4CD19DED2E9CDF980069DAA0 /* emoji_del_pressed@2x.png in Resources */, + 4CD19DEE2E9CDF980069DAA0 /* emoji.plist in Resources */, + 4CD19DEF2E9CDF980069DAA0 /* emoji_109@2x.png in Resources */, + 4CD19DF02E9CDF980069DAA0 /* emoji_44@2x.png in Resources */, + 4CD19DF12E9CDF980069DAA0 /* emoji_123@2x.png in Resources */, + 4CD19DF22E9CDF980069DAA0 /* emoji_122@2x.png in Resources */, + 4CD19DF32E9CDF980069DAA0 /* emoji_64@2x.png in Resources */, + 4CD19DF42E9CDF980069DAA0 /* emoji_01@2x.png in Resources */, + 4CD19DF52E9CDF980069DAA0 /* emoji_94@2x.png in Resources */, + 4CD19DF62E9CDF980069DAA0 /* emoji_135@2x.png in Resources */, + 4CD19DF72E9CDF980069DAA0 /* emoji_23@2x.png in Resources */, + 4CD19DF82E9CDF980069DAA0 /* emoji_66@2x.png in Resources */, + 4CD19DF92E9CDF980069DAA0 /* emoji_55@2x.png in Resources */, + 4CD19DFA2E9CDF980069DAA0 /* emoji_13@2x.png in Resources */, + 4CD19DFB2E9CDF980069DAA0 /* emoji_00@2x.png in Resources */, + 4CD19DFC2E9CDF980069DAA0 /* emoji_12@2x.png in Resources */, + 4CD19DFD2E9CDF980069DAA0 /* emoji_71@2x.png in Resources */, + 4CD19DFE2E9CDF980069DAA0 /* emoji_144@2x.png in Resources */, + 4CD19DFF2E9CDF980069DAA0 /* emoji_72@2x.png in Resources */, + 4CD19E002E9CDF980069DAA0 /* emoji_136@2x.png in Resources */, + 4CD19E012E9CDF980069DAA0 /* emoji_127@2x.png in Resources */, + 4CD19E022E9CDF980069DAA0 /* emoji_33@2x.png in Resources */, + 4CD19E032E9CDF980069DAA0 /* emoji_120@2x.png in Resources */, + 4CD19E042E9CDF980069DAA0 /* emoji_17@2x.png in Resources */, + 4CD19E052E9CDF980069DAA0 /* emoji_07@2x.png in Resources */, + 4CD19E062E9CDF980069DAA0 /* emoji_149@2x.png in Resources */, + 4CD19E072E9CDF980069DAA0 /* emoji_49@2x.png in Resources */, + 4CD19E082E9CDF980069DAA0 /* emoji_133@2x.png in Resources */, + 4CD19E092E9CDF980069DAA0 /* emoji_91@2x.png in Resources */, + 4CD19E0A2E9CDF980069DAA0 /* emoji_148@2x.png in Resources */, + 4CD19E0B2E9CDF980069DAA0 /* emoji_93@2x.png in Resources */, + 4CD19E0C2E9CDF980069DAA0 /* emoji_162@2x.png in Resources */, + 4CD19E0D2E9CDF980069DAA0 /* emoji_100@2x.png in Resources */, + 4CD19E0E2E9CDF980069DAA0 /* emoji_115@2x.png in Resources */, + 4CD19E0F2E9CDF980069DAA0 /* emoji_05@2x.png in Resources */, + 4CD19E102E9CDF980069DAA0 /* emoji_11@2x.png in Resources */, + 4CD19E112E9CDF980069DAA0 /* emoji_81@2x.png in Resources */, + 4CD19E122E9CDF980069DAA0 /* emoji_38@2x.png in Resources */, + 4CD19E132E9CDF980069DAA0 /* emoji_31@2x.png in Resources */, + 4CD19E142E9CDF980069DAA0 /* emoji_35@2x.png in Resources */, + 4CD19E152E9CDF980069DAA0 /* emoji_126@2x.png in Resources */, + 4CD19E162E9CDF980069DAA0 /* emoji_32@2x.png in Resources */, + 4CD19E172E9CDF980069DAA0 /* emoji_40@2x.png in Resources */, + 4CD19E182E9CDF980069DAA0 /* emoji_45@2x.png in Resources */, + 4CD19E192E9CDF980069DAA0 /* emoji_200@2x.png in Resources */, + 4CD19E1A2E9CDF980069DAA0 /* emoji_143@2x.png in Resources */, + 4CD19E1B2E9CDF980069DAA0 /* emoji_39@2x.png in Resources */, + 4CD19E1C2E9CDF980069DAA0 /* emoji_111@2x.png in Resources */, + 4CD19E1D2E9CDF980069DAA0 /* emoji_151@2x.png in Resources */, + 4CD19E1E2E9CDF980069DAA0 /* emoji_119@2x.png in Resources */, + 4CD19E1F2E9CDF980069DAA0 /* emoji_101@2x.png in Resources */, + 4CD19E202E9CDF980069DAA0 /* emoji_83@2x.png in Resources */, + 4CD19E212E9CDF980069DAA0 /* emoji_24@2x.png in Resources */, + 4CD19E222E9CDF980069DAA0 /* emoji_110@2x.png in Resources */, + 4CD19E232E9CDF980069DAA0 /* emoji_02@2x.png in Resources */, + 4CD19E242E9CDF980069DAA0 /* emoji_61@2x.png in Resources */, + 4CD19E252E9CDF980069DAA0 /* emoji_06@2x.png in Resources */, + 4CD19E262E9CDF980069DAA0 /* emoji_97@2x.png in Resources */, + 4CD19E272E9CDF980069DAA0 /* emoji_88@2x.png in Resources */, + 4CD19E282E9CDF980069DAA0 /* emoji_128@2x.png in Resources */, + 4CD19E292E9CDF980069DAA0 /* emoji_166@2x.png in Resources */, + 4CD19E2A2E9CDF980069DAA0 /* emoji_50@2x.png in Resources */, + 4CD19E2B2E9CDF980069DAA0 /* emoji_20@2x.png in Resources */, + 4CD19E2C2E9CDF980069DAA0 /* emoji_96@2x.png in Resources */, + 4CD19E2D2E9CDF980069DAA0 /* emoji_54@2x.png in Resources */, + 4CD19E2E2E9CDF980069DAA0 /* emoji_140@2x.png in Resources */, + 4CD19E2F2E9CDF980069DAA0 /* emoji_62@2x.png in Resources */, + 4CD19E302E9CDF980069DAA0 /* emoji_86@2x.png in Resources */, + 4CD19E312E9CDF980069DAA0 /* emoj_s_pressed@2x.png in Resources */, + 4CD19E322E9CDF980069DAA0 /* emoji_130@2x.png in Resources */, + 4CD19E332E9CDF980069DAA0 /* emoji_141@2x.png in Resources */, + 4CD19E342E9CDF980069DAA0 /* emoji_106@2x.png in Resources */, + 4CD19E352E9CDF980069DAA0 /* emoji_85@2x.png in Resources */, + 4CD19E362E9CDF980069DAA0 /* emoji_98@2x.png in Resources */, + 4CD19E372E9CDF980069DAA0 /* emoji_69@2x.png in Resources */, + 4CD19E382E9CDF980069DAA0 /* emoji_107@2x.png in Resources */, + 4CD19E392E9CDF980069DAA0 /* emoji_95@2x.png in Resources */, + 4CD19E3A2E9CDF980069DAA0 /* emoji_del_normal@2x.png in Resources */, + 4CD19E3B2E9CDF980069DAA0 /* emoji_09@2x.png in Resources */, + 4CD19E3C2E9CDF980069DAA0 /* emoji_08@2x.png in Resources */, + 4CD19E3D2E9CDF980069DAA0 /* emoji_121@2x.png in Resources */, + 4CD19E3E2E9CDF980069DAA0 /* emoji_113@2x.png in Resources */, + 4CD19E3F2E9CDF980069DAA0 /* emoji_15@2x.png in Resources */, + 4CD19E402E9CDF980069DAA0 /* emoji_29@2x.png in Resources */, + 4CD19E412E9CDF980069DAA0 /* emoji_73@2x.png in Resources */, + 4CD19E422E9CDF980069DAA0 /* Assets.xcassets in Resources */, + 4CD19E432E9CDF980069DAA0 /* emoji_51@2x.png in Resources */, + 4CD19E442E9CDF980069DAA0 /* emoji_137@2x.png in Resources */, + 4CD19E452E9CDF980069DAA0 /* emoji_78@2x.png in Resources */, + 4CD19E462E9CDF980069DAA0 /* emoji_74@2x.png in Resources */, + 4CD19E472E9CDF980069DAA0 /* emoji_68@2x.png in Resources */, + 4CD19E482E9CDF980069DAA0 /* emoji_112@2x.png in Resources */, + 4CD19E492E9CDF980069DAA0 /* emoji_129@2x.png in Resources */, + 4CD19E4A2E9CDF980069DAA0 /* emoji_18@2x.png in Resources */, + 4CD19E4B2E9CDF980069DAA0 /* emoji_150@2x.png in Resources */, + 4CD19E4C2E9CDF980069DAA0 /* emoji_125@2x.png in Resources */, + 4CD19E4D2E9CDF980069DAA0 /* emoji_160@2x.png in Resources */, + 4CD19E4E2E9CDF980069DAA0 /* emoji_105@2x.png in Resources */, + 4CD19E4F2E9CDF980069DAA0 /* emoji_131@2x.png in Resources */, + 4CD19E502E9CDF980069DAA0 /* emoji_76@2x.png in Resources */, + 4CD19E512E9CDF980069DAA0 /* emoji_79@2x.png in Resources */, + 4CD19E522E9CDF980069DAA0 /* emoji_16@2x.png in Resources */, + 4CD19E532E9CDF980069DAA0 /* emoji_22@2x.png in Resources */, + 4CD19E542E9CDF980069DAA0 /* emoji_30@2x.png in Resources */, + 4CD19E552E9CDF980069DAA0 /* emoji_142@2x.png in Resources */, + 4CD19E562E9CDF980069DAA0 /* emoji_27@2x.png in Resources */, + 4CD19E572E9CDF980069DAA0 /* emoji_145@2x.png in Resources */, + 4CD19E582E9CDF980069DAA0 /* emoji_70@2x.png in Resources */, + 4CD19E592E9CDF980069DAA0 /* emoji_139@2x.png in Resources */, + 4CD19E5A2E9CDF980069DAA0 /* emoji_63@2x.png in Resources */, + 4CD19E5B2E9CDF980069DAA0 /* emoji_80@2x.png in Resources */, + 4CD19E5C2E9CDF980069DAA0 /* emoji_65@2x.png in Resources */, + 4CD19E5D2E9CDF980069DAA0 /* emoji_87@2x.png in Resources */, + 4CD19E5E2E9CDF980069DAA0 /* emoji_108@2x.png in Resources */, + 4CD19E5F2E9CDF980069DAA0 /* emoji_03@2x.png in Resources */, + 4CD19E602E9CDF980069DAA0 /* emoji_102@2x.png in Resources */, + 4CD19E612E9CDF980069DAA0 /* emoji_28@2x.png in Resources */, + 4CD19E622E9CDF980069DAA0 /* emoji_56@2x.png in Resources */, + 4CD19E632E9CDF980069DAA0 /* emoji_89@2x.png in Resources */, + 4CD19E642E9CDF980069DAA0 /* emoji_14@2x.png in Resources */, + 4CD19E652E9CDF980069DAA0 /* emoji_82@2x.png in Resources */, + 4CD19E662E9CDF980069DAA0 /* emoji_47@2x.png in Resources */, + 4CD19E672E9CDF980069DAA0 /* emoji_138@2x.png in Resources */, + 4CD19E682E9CDF980069DAA0 /* emoji_34@2x.png in Resources */, + 4CD19E692E9CDF980069DAA0 /* emoji_116@2x.png in Resources */, + 4CD19E6A2E9CDF980069DAA0 /* emoji_43@2x.png in Resources */, + 4CD19E6B2E9CDF980069DAA0 /* emoji_147@2x.png in Resources */, + 4CD19E6C2E9CDF980069DAA0 /* emoji_10@2x.png in Resources */, + 4CD19E6D2E9CDF980069DAA0 /* emoji_77@2x.png in Resources */, + 4CD19E6E2E9CDF980069DAA0 /* emoji_114@2x.png in Resources */, + 4CD19E6F2E9CDF980069DAA0 /* emoji_161@2x.png in Resources */, + 4CD19E702E9CDF980069DAA0 /* emoji_118@2x.png in Resources */, + 4CD19E712E9CDF980069DAA0 /* emoji_21@2x.png in Resources */, 23FF255B2AB956D50064E904 /* pi_home_new_pk.svga in Resources */, - E80EC84F28ACD84000D133C5 /* emoji_151@2x.png in Resources */, 23CEFC592AFB8FC100576D89 /* pay_on@2x.png in Resources */, - E80EC88428ACD84000D133C5 /* emoji_01@2x.png in Resources */, - E80EC8B628ACD84100D133C5 /* emoji_107@2x.png in Resources */, - E80EC83B28ACD84000D133C5 /* emoji_163@2x.png in Resources */, - E80EC87328ACD84000D133C5 /* emoji_93@2x.png in Resources */, - E80EC87D28ACD84000D133C5 /* emoji_101@2x.png in Resources */, - E80EC85328ACD84000D133C5 /* emoji_84@2x.png in Resources */, - E80EC86428ACD84000D133C5 /* emoji_60@2x.png in Resources */, - E80EC89928ACD84000D133C5 /* emoji_21@2x.png in Resources */, 23FF25702ABD456C0064E904 /* pi_home_new_play.svga in Resources */, - E80EC8BA28ACD84100D133C5 /* emoji.plist in Resources */, 2368ECE82BC5280300EDF4C9 /* images in Resources */, - E80EC82328ACD84000D133C5 /* emoji_57@2x.png in Resources */, 2369F9932A8B21EB00563B48 /* pi_treasure_fairy_gift_bg.svga in Resources */, - E80EC87E28ACD84000D133C5 /* emoji_129@2x.png in Resources */, - E80EC86828ACD84000D133C5 /* emoji_39@2x.png in Resources */, - E80EC8B228ACD84100D133C5 /* emoji_140@2x.png in Resources */, 9B0997A127F19D8A00EB8F14 /* README.md in Resources */, 54B9C6F72C9D8D05003F1CC5 /* 4.mp4 in Resources */, 54B9C6F82C9D8D05003F1CC5 /* 5.mp4 in Resources */, 54B9C6F92C9D8D05003F1CC5 /* 3.mp4 in Resources */, - E80EC89828ACD84000D133C5 /* emoji_117@2x.png in Resources */, - E80EC8A228ACD84100D133C5 /* emoji_09@2x.png in Resources */, - E80EC89228ACD84000D133C5 /* emoji_87@2x.png in Resources */, - E80EC81828ACD84000D133C5 /* emoji_149@2x.png in Resources */, 54F179072C8EA48C00CB5219 /* Combo_Boom.svga in Resources */, - E80EC83928ACD84000D133C5 /* emoji_100@2x.png in Resources */, - E80EC83028ACD84000D133C5 /* emoji_12@2x.png in Resources */, - E80EC8AE28ACD84100D133C5 /* emoji_131@2x.png in Resources */, - E80EC86128ACD84000D133C5 /* emoji_53@2x.png in Resources */, - E80EC89428ACD84000D133C5 /* emoji_105@2x.png in Resources */, - E80EC82A28ACD84000D133C5 /* emoji_36@2x.png in Resources */, 23E9E9B72A82200500B792F2 /* GoogleService-Info.plist in Resources */, 189DD53926DE255600AB55B1 /* Assets.xcassets in Resources */, - E80EC8A028ACD84100D133C5 /* emoji_17@2x.png in Resources */, - E80EC85828ACD84000D133C5 /* emoji_141@2x.png in Resources */, - E80EC81E28ACD84000D133C5 /* emoji_26@2x.png in Resources */, - E80EC89628ACD84000D133C5 /* emoji_109@2x.png in Resources */, - E80EC82B28ACD84000D133C5 /* emoji_47@2x.png in Resources */, - E80EC86628ACD84000D133C5 /* emoji_72@2x.png in Resources */, - E80EC83128ACD84000D133C5 /* emoji_63@2x.png in Resources */, - E80EC89E28ACD84000D133C5 /* emoji_05@2x.png in Resources */, - E80EC89A28ACD84000D133C5 /* emoji_42@2x.png in Resources */, - E80EC87528ACD84000D133C5 /* emoji_144@2x.png in Resources */, 237700CF2BC697D500D661F1 /* pi_login_new_logo.png in Resources */, - E80EC81628ACD84000D133C5 /* emoji_126@2x.png in Resources */, - E80EC8A328ACD84100D133C5 /* emoji_52@2x.png in Resources */, - E80EC84E28ACD84000D133C5 /* emoji_132@2x.png in Resources */, 23CEFC562AFB8FC100576D89 /* pay_off.png in Resources */, 237FD35D2C0F187B00B5335C /* pi_app_logo_new_bg.png in Resources */, - E80EC82928ACD84000D133C5 /* emoji_28@2x.png in Resources */, - E80EC82028ACD84000D133C5 /* emoji_38@2x.png in Resources */, - E80EC8A628ACD84100D133C5 /* emoji_23@2x.png in Resources */, - E80EC84328ACD84000D133C5 /* emoji_20@2x.png in Resources */, - E80EC88528ACD84000D133C5 /* emoji_62@2x.png in Resources */, - E80EC84B28ACD84000D133C5 /* emoji_108@2x.png in Resources */, - E80EC82D28ACD84000D133C5 /* emoji_24@2x.png in Resources */, - E80EC82128ACD84000D133C5 /* emoji_49@2x.png in Resources */, - E80EC8AB28ACD84100D133C5 /* emoji_64@2x.png in Resources */, - E80EC88128ACD84000D133C5 /* emoji_125@2x.png in Resources */, - E80EC87B28ACD84000D133C5 /* emoji_83@2x.png in Resources */, - E80EC82E28ACD84000D133C5 /* emoji.xml in Resources */, - E80EC87928ACD84000D133C5 /* emoji_91@2x.png in Resources */, - E80EC84C28ACD84000D133C5 /* emoji_120@2x.png in Resources */, 23E9EAA32A84C80300B792F2 /* pi_new_loading.svga in Resources */, 239D0F9B2BFC9E6C002977CE /* ms_room_gift_svga_icon.svga in Resources */, - E80EC83628ACD84000D133C5 /* emoji_147@2x.png in Resources */, 2368ECEC2BC5280300EDF4C9 /* local in Resources */, 23E9EB242A84E98300B792F2 /* pi_new_mine_info_sound_play.svga in Resources */, 4CA5A3342D93D4AB00CE41D6 /* 大.svga in Resources */, 23CEFC552AFB8FC100576D89 /* pay_off@3x.png in Resources */, - E80EC86B28ACD84000D133C5 /* emoji_200@2x.png in Resources */, - E80EC88F28ACD84000D133C5 /* emoji_121@2x.png in Resources */, - E80EC87C28ACD84000D133C5 /* emoji_162@2x.png in Resources */, - E80EC82728ACD84000D133C5 /* emoji_73@2x.png in Resources */, - E80EC85928ACD84000D133C5 /* emoji_122@2x.png in Resources */, - E80EC86E28ACD84000D133C5 /* emoji_48@2x.png in Resources */, - E80EC86A28ACD84000D133C5 /* emoji_27@2x.png in Resources */, - E80EC88228ACD84000D133C5 /* emoji_13@2x.png in Resources */, - E80EC82228ACD84000D133C5 /* emoji_34@2x.png in Resources */, - E80EC87628ACD84000D133C5 /* emoji_139@2x.png in Resources */, 23CEFC572AFB8FC100576D89 /* pay_off@2x.png in Resources */, - E80EC86328ACD84000D133C5 /* emoji_41@2x.png in Resources */, 2396FCE42B22BE5D0014021D /* pi_area_info.json in Resources */, 4C75CF002D633C27009147A5 /* CP进场.svga in Resources */, ); @@ -11933,10 +12003,8 @@ 4CFBE0CD2DAD0FC400A923AF /* PIGiftBravoGiftBroadcastView.m in Sources */, E890BC07273CF1800007C46B /* XPGiftCountCollectionViewCell.m in Sources */, E88C72A02828FCD40047FB2B /* XPMusicLibraryPlayView.m in Sources */, - E80EC80A28ACD84000D133C5 /* QEmotionBoardView.m in Sources */, 235A451A2B04A352009753F5 /* PIRoomActivityWebView.m in Sources */, 4CBDC4242DC0B078005A75B9 /* EventCenterViewController.m in Sources */, - E8998D962859DD6F00C68558 /* UIView+Corner.m in Sources */, E8EEB91126FC6AE2007C6EBA /* XPMineUserInfoEditProtocol.h in Sources */, E87E625D2A3F5622002F68C9 /* XPNewHomeViewController.m in Sources */, E85E7B202A4EB0D300B6D00A /* XPMineGuildIncomeDetailViewController.m in Sources */, @@ -11945,7 +12013,6 @@ 180116FC279E8CCE00F2CBC0 /* NVDate.m in Sources */, E801275827E347FD00BAC3F2 /* RoomPKRecordModel.m in Sources */, E8E0DAE0285C20E500566A2F /* MessageContentFindNewGreetView.m in Sources */, - 237700E32BC7D7C000D661F1 /* NSMutableAttributedString+MSRTL.m in Sources */, 54B9C6EA2C9C2DDC003F1CC5 /* GuildInfo.m in Sources */, 234D821E2AEC57CF0022EFEB /* YYTextAsyncLayer+PITextAsyncLayer.m in Sources */, 23B2AEC12A64E9C200543D17 /* LoginForgetEditView.m in Sources */, @@ -12018,6 +12085,64 @@ E8664ED327E4258A000171BA /* RoomPKTimeItemModel.m in Sources */, E8412FA22779BE8F006E1101 /* XPRoomSettingViewController.m in Sources */, E89D60BD271D647A001F8895 /* XPRoomPresenter.m in Sources */, + 4CD19E722E9CDF980069DAA0 /* UIButton+MSRTL.m in Sources */, + 4CD19E732E9CDF980069DAA0 /* XPShareItem.m in Sources */, + 4CD19E742E9CDF980069DAA0 /* TTNewAlertView.m in Sources */, + 4CD19E752E9CDF980069DAA0 /* QPhotoImageModel.m in Sources */, + 4CD19E762E9CDF980069DAA0 /* XPShareInfoModel.m in Sources */, + 4CD19E772E9CDF980069DAA0 /* UITextView+MSRTL.m in Sources */, + 4CD19E782E9CDF980069DAA0 /* NSMutableAttributedString+MSRTL.m in Sources */, + 4CD19E792E9CDF980069DAA0 /* XPShareItemCell.m in Sources */, + 4CD19E7A2E9CDF980069DAA0 /* SexAgeLabel.m in Sources */, + 4CD19E7B2E9CDF980069DAA0 /* QKeyboardManager.m in Sources */, + 4CD19E7C2E9CDF980069DAA0 /* TTPopupService.m in Sources */, + 4CD19E7D2E9CDF980069DAA0 /* QInputPhototCell.m in Sources */, + 4CD19E7E2E9CDF980069DAA0 /* XNDJTDDLoadingTool.m in Sources */, + 4CD19E7F2E9CDF980069DAA0 /* QEmotionBoardView.m in Sources */, + 4CD19E802E9CDF980069DAA0 /* TTPopup.m in Sources */, + 4CD19E812E9CDF980069DAA0 /* UIView+GradientLayer.m in Sources */, + 4CD19E822E9CDF980069DAA0 /* TTAlertMessageAttributedConfig.m in Sources */, + 4CD19E832E9CDF980069DAA0 /* QKeyboardBaseManager.m in Sources */, + 4CD19E842E9CDF980069DAA0 /* XPAdvertiseView.m in Sources */, + 4CD19E852E9CDF980069DAA0 /* UISwipeGestureRecognizer+MSRTL.m in Sources */, + 4CD19E862E9CDF980069DAA0 /* TTAlertButtonConfig.m in Sources */, + 4CD19E872E9CDF980069DAA0 /* QInputBarView.m in Sources */, + 4CD19E882E9CDF980069DAA0 /* UIView+Corner.m in Sources */, + 4CD19E892E9CDF980069DAA0 /* QEEmotionImageView.m in Sources */, + 4CD19E8A2E9CDF980069DAA0 /* TTActionSheetConfig.m in Sources */, + 4CD19E8B2E9CDF980069DAA0 /* QExtendBoardView.m in Sources */, + 4CD19E8C2E9CDF980069DAA0 /* QInputBarViewConfiguration.m in Sources */, + 4CD19E8D2E9CDF980069DAA0 /* NetImageView.m in Sources */, + 4CD19E8E2E9CDF980069DAA0 /* TTActionSheetView.m in Sources */, + 4CD19E8F2E9CDF980069DAA0 /* XPSwitch.m in Sources */, + 4CD19E902E9CDF980069DAA0 /* TTAlertView.m in Sources */, + 4CD19E912E9CDF980069DAA0 /* UILabel+MSRTL.m in Sources */, + 4CD19E922E9CDF980069DAA0 /* YYLabel+MSRTL.m in Sources */, + 4CD19E932E9CDF980069DAA0 /* NetImageConfig.m in Sources */, + 4CD19E942E9CDF980069DAA0 /* UIButton+EnlargeTouchArea.m in Sources */, + 4CD19E952E9CDF980069DAA0 /* MSBaseRTLFlowLayout.m in Sources */, + 4CD19E962E9CDF980069DAA0 /* XPShareView.m in Sources */, + 4CD19E972E9CDF980069DAA0 /* QEmotion.m in Sources */, + 4CD19E982E9CDF980069DAA0 /* AdvertiseModel.m in Sources */, + 4CD19E992E9CDF980069DAA0 /* XPSVGAPlayer.m in Sources */, + 4CD19E9A2E9CDF980069DAA0 /* QinputPhotoView.m in Sources */, + 4CD19E9B2E9CDF980069DAA0 /* XCCurrentVCStackManager.m in Sources */, + 4CD19E9C2E9CDF980069DAA0 /* UIImage+ImageEffects.m in Sources */, + 4CD19E9D2E9CDF980069DAA0 /* UIImage+Utils.m in Sources */, + 4CD19E9E2E9CDF980069DAA0 /* UIImage+MSRTL.m in Sources */, + 4CD19E9F2E9CDF980069DAA0 /* TTAlertConfig.m in Sources */, + 4CD19EA02E9CDF980069DAA0 /* UITextField+MSRTL.m in Sources */, + 4CD19EA12E9CDF980069DAA0 /* UITextView+QEmotion.m in Sources */, + 4CD19EA22E9CDF980069DAA0 /* DJDKMIMOMColor.m in Sources */, + 4CD19EA32E9CDF980069DAA0 /* EmptyDataView.m in Sources */, + 4CD19EA42E9CDF980069DAA0 /* TTPopupManagerService.m in Sources */, + 4CD19EA52E9CDF980069DAA0 /* MSBaseTextField.m in Sources */, + 4CD19EA62E9CDF980069DAA0 /* XPAdImageTool.m in Sources */, + 4CD19EA72E9CDF980069DAA0 /* QEmotionHelper.m in Sources */, + 4CD19EA82E9CDF980069DAA0 /* UIImageConstant.m in Sources */, + 4CD19EA92E9CDF980069DAA0 /* QEmotionAttachment.m in Sources */, + 4CD19EAA2E9CDF980069DAA0 /* MoliMoneyLabel.m in Sources */, + 4CD19EAB2E9CDF980069DAA0 /* MoliAvatar.m in Sources */, E8751E5C28A62A530056EF44 /* XPSailingViewController.m in Sources */, 9B7D904D287BC5E20033A45E /* AnchorRoomScrollView.m in Sources */, E8899C822785A694007944BE /* DatingInfoModel.m in Sources */, @@ -12027,7 +12152,6 @@ E8AC722926F488DA007D6E91 /* XPMineFeedbackProtocol.h in Sources */, 2305EEF62AD67E5500AD403C /* PIRoomPhotoAlbumItemCell.m in Sources */, E85E7B3C2A4EB0D300B6D00A /* XPGuildSuperAdminRoomCollectionViewCell.m in Sources */, - 237700EC2BC914B400D661F1 /* UISwipeGestureRecognizer+MSRTL.m in Sources */, 4C38C2B02D84070600CFA4A8 /* AccountBindingViewController.m in Sources */, 4C5527BF2D1C099500833FFD /* RoomResourceManager.m in Sources */, 23D321E82ADFED10006B259C /* PIRoomSendRedPacketItemVC.m in Sources */, @@ -12036,7 +12160,6 @@ E8950183282CAC6A007E459A /* XPMomentsPhotoView.m in Sources */, E8AC721E26F472BF007D6E91 /* XPMineSettingProtocol.h in Sources */, E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */, - E81E09C9290F71BF00A1F410 /* XPAdvertiseView.m in Sources */, 4CD15D912D7E902800D9279F /* LoginViewController.m in Sources */, 4C06428B2E98DC5F00BAF413 /* EPTabBarController.swift in Sources */, 2305F3412AD94D5200AD403C /* XPMaskManagerVC.m in Sources */, @@ -12065,7 +12188,6 @@ 2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */, E824543D26F58C3A00BE8163 /* XPLoginBindSuccessView.m in Sources */, E85E7B282A4EB0D300B6D00A /* XPClanMenuView.m in Sources */, - E81125C7296E596D000D9804 /* QInputPhototCell.m in Sources */, 545831A62C2C085C00364026 /* ArabMicroView.m in Sources */, E8EEB8F726FC2673007C6EBA /* UserPhoto.m in Sources */, E81061002987CDCC00B772F0 /* MessageTweetModel.m in Sources */, @@ -12099,7 +12221,6 @@ E8B825C726EA0D9A009E8E9F /* LoginVerifCodeProtocol.h in Sources */, 23E9EAAE2A84C9B800B792F2 /* XPMineUserInfoTagView.m in Sources */, 236B2E4E2AA07D06003967A8 /* Api+LittleGame.m in Sources */, - 237700E02BC7D78600D661F1 /* MSBaseRTLFlowLayout.m in Sources */, 4C0B4A412E659DC100D67F73 /* XPRoomBackGroundSettingAction.m in Sources */, 4CEB9EB32D0AFCE200443480 /* NineteenMicStageView.m in Sources */, 4C0B4A3E2E659A2C00D67F73 /* XPRoomTypeSettingAction.m in Sources */, @@ -12118,15 +12239,12 @@ E8C1CD7327D8A16500376F83 /* XPRoomFaceTool.m in Sources */, 236B2E462AA07D06003967A8 /* UIImage+RW.m in Sources */, E81DCCCD282B63B40039E5C5 /* XPMomentsViewController.m in Sources */, - 237700FD2BCD254000D661F1 /* MSBaseTextField.m in Sources */, - 237700E62BC7E81F00D661F1 /* UITextField+MSRTL.m in Sources */, E86507EB281A88A9006951B0 /* MessageContentSkillCardView.m in Sources */, E8B825CA26EA1231009E8E9F /* LoginVerifCodeViewController.m in Sources */, 189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */, E8412FA62779BED1006E1101 /* XPRoomSettingTableViewCell.m in Sources */, 9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */, E8AFF7E3298CA1E500FBDE32 /* SessionSayHelloCountModel.m in Sources */, - E8998D7A2859784200C68558 /* XPSVGAPlayer.m in Sources */, 23FE47D82BB3CEAF00F09D23 /* PINobleCenterTitleView.m in Sources */, 54C9A1252C3E74AE00C6D970 /* MessageGameOrderView.m in Sources */, 9BD9A18427A0F128004186FE /* XPMineVisitorItemModel.m in Sources */, @@ -12145,10 +12263,8 @@ E85E7B2F2A4EB0D300B6D00A /* XPGoldIncomeSectionView.m in Sources */, 4C7F2A672E0BE0AB002F5058 /* FirstRechargeModel.m in Sources */, 54F469382C29C3B400A83655 /* XPMineAlbumTableViewCell.m in Sources */, - 23E9EAA12A84C53900B792F2 /* TTNewAlertView.m in Sources */, 544B19B02CA1299500885BEB /* CPBindingAnimation.m in Sources */, E8DEC9A12764A5D20078CB70 /* XPRoomMoreItemModel.m in Sources */, - E80EC81028ACD84000D133C5 /* QExtendBoardView.m in Sources */, 9B87B3CD2926473D00085110 /* XPSessionListHeadFriendCell.m in Sources */, 23194DCD2AD14BF000649F51 /* DDASLLogger.m in Sources */, E85E7B492A4EB0D300B6D00A /* XPMineGuildSearchViewController.m in Sources */, @@ -12189,7 +12305,6 @@ 237B94BD2A984DA7007853E3 /* XPNobleTrumpetModel.m in Sources */, E82325F5274E2E09003A3332 /* XPUserCardPresenter.m in Sources */, 236B2E4C2AA07D06003967A8 /* XPLittleGameRoomOpenView.m in Sources */, - E80EC80B28ACD84000D133C5 /* QInputBarViewConfiguration.m in Sources */, 2331C1772A5EB71000E1D940 /* XPNobleCenterListViewController.m in Sources */, E880B39E278BD49E00A83B0D /* XPAcrossRoomPKViewController.m in Sources */, 239D0FE12C04850A002977CE /* MSRoomGameHeadView.m in Sources */, @@ -12218,7 +12333,6 @@ 546104192CD4C06400066B21 /* Api+CustomBackground.m in Sources */, 18EE3FF42750FA3700A452BF /* UIView+NIM.m in Sources */, 9BD63FB4277EF1B3006EB744 /* XPReleaseRadioModel.m in Sources */, - E80EC8C228ACF97A00D133C5 /* QEEmotionImageView.m in Sources */, E8A03DFF27635F960098D9EA /* XPRoomCandyGiftView.m in Sources */, 4C45C1AC2E68545E00E73A44 /* XPTurboModeTipsView.m in Sources */, 180116F9279E8C4C00F2CBC0 /* PLTimeUtil.m in Sources */, @@ -12247,11 +12361,9 @@ 23C9DFC92B84917B00B51558 /* PIRoomActivityChoosePlayCell.m in Sources */, 9BA3B40B293DCDFD0071DF1C /* XPVersionUpdateModel.m in Sources */, 4CD4014A2E718E36003F5009 /* XPBlankRoomModel.m in Sources */, - 4C7989EC2D19392E006AE07B /* EmptyDataView.m in Sources */, 23C9DFCF2B85E21E00B51558 /* PIGuildSingleRoomIncomeCell.m in Sources */, 18EE401A2754BA9F00A452BF /* NIMMessageMaker.m in Sources */, E8EEB91D26FC9D58007C6EBA /* XPMineUserInfoDateView.m in Sources */, - E82325E9274CE56A003A3332 /* XPShareItem.m in Sources */, 236B2E5D2AA19169003967A8 /* HomeLittleGameRoomModel.m in Sources */, E85E7B192A4EB0D200B6D00A /* GuildMessageModel.m in Sources */, 1427219429A75F6F00C7C423 /* HTTPAuthenticationRequest.m in Sources */, @@ -12283,7 +12395,6 @@ 23194DCE2AD14BF000649F51 /* ContextFilterLogFormatter.m in Sources */, E8A88D3027E85EEA00CA8837 /* RoomPKInfoModel.m in Sources */, E85E7B022A4EB0D200B6D00A /* XPSuperAdminManagerRoomPresenter.m in Sources */, - 237700DD2BC7D70E00D661F1 /* UIImage+MSRTL.m in Sources */, E8AB633328AE51470023B0D2 /* XPSailingPrizeView.m in Sources */, 548D54202CC208FD0084A2FF /* AlbumResourcePickerViewController.m in Sources */, 9B2F72D328E45C5A0000E4FA /* XPRoomQuidkMessageCell.m in Sources */, @@ -12322,7 +12433,6 @@ E884C36F2743AAC800E1EBED /* AttachmentModel.m in Sources */, E8AC721926F46E0B007D6E91 /* XPMineSettingItemModel.m in Sources */, 9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */, - E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */, 2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */, 9B32A04728881845002009D2 /* XPRoomTagListView.m in Sources */, E85E7B1D2A4EB0D200B6D00A /* XPMineClanIncomeStatisViewController.m in Sources */, @@ -12379,7 +12489,6 @@ E8AB631628ADE2D20023B0D2 /* XPMonentsTopicLatestViewController.m in Sources */, E8B846CF26FDD96100A777FE /* XPMineRechageHeadView.m in Sources */, E852D74728633E92001465ED /* MonentsCommentReplyModel.m in Sources */, - 186A534926FC6ED900D67B2C /* TTAlertMessageAttributedConfig.m in Sources */, 4CEB9EB02D0AF4FE00443480 /* TwentyMicStageView.m in Sources */, E8B3E80C2848BA40009746AB /* NewUserGreetModel.m in Sources */, E85E7B4D2A4EB0D300B6D00A /* XPMineGuildRemoveMemberViewController.m in Sources */, @@ -12388,7 +12497,6 @@ E8AB631028ADD92D0023B0D2 /* XPMonentsTopicRecommondViewController.m in Sources */, E8E70D8326F2F51A00F03460 /* XPMineHeadView.m in Sources */, 54CE5EF92CCA4A2600A67898 /* LocationModel.m in Sources */, - E80EC81128ACD84000D133C5 /* QEmotionHelper.m in Sources */, E8EEB90C26FC5EBC007C6EBA /* XPMineUserInfoEditModel.m in Sources */, 23630BA62BAC3888003AD25D /* PIGiftSuperGiftBroadcastView.m in Sources */, 18E7B31826F097E00064BC9B /* UserInfoModel.m in Sources */, @@ -12408,10 +12516,8 @@ 4C7989EF2D195277006AE07B /* RoomModeViewController.m in Sources */, 23FF257C2ABD68020064E904 /* XPGiftFreeItemCell.m in Sources */, 236B2E532AA08757003967A8 /* LittleGameStageView.m in Sources */, - 186A534E26FC6ED900D67B2C /* TTPopupService.m in Sources */, E85E7B3A2A4EB0D300B6D00A /* XPGuildSuperAdminSetTableViewCell.m in Sources */, E8778AE72988C1E000CF139B /* XPSessionHelloEnterView.m in Sources */, - 18A61BD7274F7F6900A09A54 /* NetImageConfig.m in Sources */, E8C21501274B76F60079E6BF /* XPRoomAnimationHitView.m in Sources */, 54283CE82CE48ABB009729B5 /* MyDressingViewController.m in Sources */, E84A2E9F2A5287D200D6AF8A /* XPIncomeRecordGoldDetailsView.m in Sources */, @@ -12442,7 +12548,6 @@ 9B85B6DA279FDC5200A0A1AC /* XPUserCardSkillCollectionViewCell.m in Sources */, E85E7B0D2A4EB0D200B6D00A /* GuildSuperAdminInfoModel.m in Sources */, 54F1790A2C8EDDF400CB5219 /* CountdownRingView.m in Sources */, - 189DD68426E1FDBB00AB55B1 /* XNDJTDDLoadingTool.m in Sources */, 9B1B72AF280031F8003FACE9 /* XPAnchorPKSelectRoomView.m in Sources */, 5412E0FD2C52512100FDD668 /* RoomBottomEntranceModel.m in Sources */, E818DD1C2A4896EE00F163F7 /* XPLoginAraeViewController.m in Sources */, @@ -12454,14 +12559,12 @@ 23194DD02AD14BF000649F51 /* DDLog.m in Sources */, 189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */, E87AE7F9277AABE50037823A /* XPRoomTagListViewController.m in Sources */, - 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */, E85E7B472A4EB0D300B6D00A /* XPMineGuildManagerPerTableViewCell.m in Sources */, E824544326F58FCE00BE8163 /* XPMinePayPwdInputView.m in Sources */, 23C7C0B72A7CD7B000802205 /* XPNewMineGuildItemView.m in Sources */, 23A7FB692BDDEDFA00411860 /* MSRoomGameWebVC.m in Sources */, 23CEFC5D2AFB8FC100576D89 /* BSRecordModel.m in Sources */, 9B1B72A1280023F3003FACE9 /* XPMineAnchorFansTeamTableViewCell.m in Sources */, - 1808073027315E8E001FD836 /* NetImageView.m in Sources */, E880B3AC278BD98600A83B0D /* XPAcrossRoomPKEmptyTableViewCell.m in Sources */, E8C1CD7A27D8B29E00376F83 /* RoomFaceInfoModel.m in Sources */, E81C1B1C27705F6B0020D1E4 /* XPArrangeMicPresenter.m in Sources */, @@ -12471,7 +12574,6 @@ E8A88D2727E8193400CA8837 /* XPRoomPKSelectUserView.m in Sources */, 9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */, E8664ED927E4355C000171BA /* XPRoomPKRecordTableViewCell.m in Sources */, - 4CEB9EAD2D09AA0400443480 /* SexAgeLabel.m in Sources */, 23FF42762AA6E1480055733C /* XPHomeRecommendOtherRoomView.m in Sources */, 142721B229A7647F00C7C423 /* XPBlankViewController.m in Sources */, 4C0B4A442E65A0D300D67F73 /* XPRoomCleanMessagesAction.m in Sources */, @@ -12483,7 +12585,6 @@ 239BEEDB2AA1E058005CDA94 /* PIHoemCategoryTitleView.m in Sources */, E81060FD2987CC9100B772F0 /* MessageLevelUpgradeModel.m in Sources */, 2305EF0D2AD7CC9A00AD403C /* PIRoomPhotoAlbumChooseGiftCell.m in Sources */, - 237700FA2BCCD25500D661F1 /* YYLabel+MSRTL.m in Sources */, E84BF7DD277C765400EF8877 /* XPRoomRoleEmptyTableViewCell.m in Sources */, E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */, 239D0F992BFB43BC002977CE /* MSRoomOnLineAvatarView.m in Sources */, @@ -12550,7 +12651,6 @@ 4CCB809F2DD5DFDF00C756D3 /* EventRoomModel.m in Sources */, 23FE47E12BB41CF200F09D23 /* PINobleCenterListReusableView.m in Sources */, 4CE746D52D92C1080094E496 /* BravoGiftWinningFlagView.m in Sources */, - E8AC721026F43955007D6E91 /* UIImageConstant.m in Sources */, E85E7B122A4EB0D200B6D00A /* GuildIncomeRecordModel.m in Sources */, E81C27A026EEF83D0031E639 /* YUMIHtmlUrl.m in Sources */, E8F1558D28124D5200EE8C06 /* MessageConentAudioView.m in Sources */, @@ -12590,14 +12690,12 @@ 4CD6FF662D673A5C00262AB7 /* AgentMessageModel.m in Sources */, E85E7B6E2A4EC4AE00B6D00A /* XPMineGuildPresenter.m in Sources */, 23CEFC5B2AFB8FC100576D89 /* BSSelectView.m in Sources */, - E81125CA296E606F000D9804 /* QPhotoImageModel.m in Sources */, 239D0FAA2BFCB88D002977CE /* XPRoomDatingWebAlertView.m in Sources */, 9B42869528C1E00A009034D2 /* XPRedPacketResultModel.m in Sources */, 2331C16E2A5EB71000E1D940 /* XPNobleAuthorityDescView.m in Sources */, 9BE01AE428937EDE00B50299 /* XPDressUpShopCollectionViewCell.m in Sources */, 1427219129A75F6F00C7C423 /* MultipartMessageHeaderField.m in Sources */, 54E82EAE2CA9293C00C931D9 /* BoomInfoModel.m in Sources */, - 186A534B26FC6ED900D67B2C /* TTPopupManagerService.m in Sources */, E8BD0F8B28A9EB0A00DE050D /* RoomSailingPrizeListModel.m in Sources */, 9BA812DD28BF6A7300783EA7 /* XPRoomRedPacketPresenter.m in Sources */, E85E7B642A4EC35A00B6D00A /* XPIncomeRecordModel.m in Sources */, @@ -12606,7 +12704,6 @@ E85E7B082A4EB0D200B6D00A /* XPMineManagerSetPresenter.m in Sources */, 18E7B1B226E8AF980064BC9B /* MainPresenter.m in Sources */, E81366F626F0C0DF0076364C /* LoginFullInfoPresenter.m in Sources */, - 237700DA2BC7D5EC00D661F1 /* UILabel+MSRTL.m in Sources */, 4C7547312E55A7ED00C6E821 /* TouchAreaCacheManager.m in Sources */, E8A30BEE28534AB1003B4873 /* XPSessionFindNewPresenter.m in Sources */, 9BDA3E7727FD41C200517FE6 /* XPAnchorFansTeamViewController.m in Sources */, @@ -12616,15 +12713,12 @@ E8C1CD6A27D8937800376F83 /* XPRoomFaceCollectionViewCell.m in Sources */, 4CC77BBD2E66A33C0067DA96 /* XPRoomEffectAction.m in Sources */, 9B2EA7C02804037700ED17BF /* AnchorPKStageView.m in Sources */, - 4C1392992D6DB4CD00A6DFB5 /* MoliMoneyLabel.m in Sources */, 23CEFC622AFB8FC100576D89 /* BSLogNetDetailViewController.m in Sources */, E811FFF72742367B00918544 /* XPGiftEmptyCollectionViewCell.m in Sources */, - 189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */, 4C71C6A22D06DB3D00ECCA24 /* GiftAnimationManager.m in Sources */, E82D5C73276AE94800858D6D /* CarModel.m in Sources */, E85E7B0B2A4EB0D200B6D00A /* XPGuildSetNamePresenter.m in Sources */, E87E62762A3F5907002F68C9 /* XPNewHomePlayTableViewCell.m in Sources */, - 186A534726FC6ED900D67B2C /* TTAlertConfig.m in Sources */, 18F403EE2758CF2F00A6C548 /* MessageContentImage.m in Sources */, 18E7B31E26F0984C0064BC9B /* UserLevelVo.m in Sources */, 23B8D8DB2B85FDDD00CA472F /* PIHomeCategoryTitleModel.m in Sources */, @@ -12666,7 +12760,6 @@ E824543526F57D6E00BE8163 /* XPLoginVerifBindPhoneViewController.m in Sources */, E8680718271967B00024F48F /* MicroView.m in Sources */, E896EF942771AAC100AD2CC1 /* XPMineFansPresenter.m in Sources */, - E8B825CD26EA18C8009E8E9F /* DJDKMIMOMColor.m in Sources */, E8751E5F28A62A970056EF44 /* XPSailingPresenter.m in Sources */, E84A2E962A5280F900D6AF8A /* XPExchangeDiamondsView.m in Sources */, 23F9636A2BB6919D00F440A6 /* PINobleRebateModel.m in Sources */, @@ -12683,10 +12776,8 @@ 4C5C37232D0C1C7900BA9AB8 /* RegionListViewController.m in Sources */, 4CE746C62D9297C30094E496 /* BravoGiftTipModel.m in Sources */, 4CCFDA032DD59211009BD2FD /* Api+EventCenter.m in Sources */, - E81125C4296E57B7000D9804 /* QinputPhotoView.m in Sources */, E880B3A1278BD60C00A83B0D /* XPAcrossRoomPKSelectRoomView.m in Sources */, 9B3C181A292CE4FA003AF543 /* XPAnchorPKMatchView.m in Sources */, - E80EC80D28ACD84000D133C5 /* QInputBarView.m in Sources */, 23E9EA852A84B6FD00B792F2 /* XPSoundCardModel.m in Sources */, E8D48250278D68BA003C1D08 /* XPAcrossRoomPKPanelView.m in Sources */, 18F404C3276098F100A6C548 /* Api+Message.m in Sources */, @@ -12703,12 +12794,10 @@ E85E7B072A4EB0D200B6D00A /* XPGuildPresenter.m in Sources */, 2331C17B2A5EB7AB00E1D940 /* XPNobleCenterEntranceView.m in Sources */, 9BB89DC627FEB9E100586A83 /* XPAnchorFansTaskViewController.m in Sources */, - E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */, E8E20BEF2816A5FC0033B688 /* XPMineBlackListTableViewCell.m in Sources */, 4C38C2AD2D84064400CFA4A8 /* LoginInputItemView.m in Sources */, 23BA165B2A5D2ACF0030C5A3 /* PIBaseAnimationViewModel.m in Sources */, 18486217271EAB8C005FC5DC /* BaseRtcImpl.m in Sources */, - E80EC81228ACD84000D133C5 /* QEmotionAttachment.m in Sources */, E8DACCFB2766EDC60052092C /* MicroGiftValueView.m in Sources */, E85E7BAE2A4EC99300B6D00A /* XPMineGiveDiamondVC.m in Sources */, 23942E912A86424500D0ECC2 /* XPLoginAuthCodeVC.m in Sources */, @@ -12723,9 +12812,10 @@ E88863C6278EAFC3004BCFAB /* XPAcrossRoomPKResultView.m in Sources */, E8AC722C26F49580007D6E91 /* XPMineNotificaViewController.m in Sources */, 237B94BF2A984DA7007853E3 /* XPRoomTrumpetView.m in Sources */, + 4CD19EAE2E9CDFC30069DAA0 /* EPLoginButton.swift in Sources */, + 4CD19EAF2E9CDFC30069DAA0 /* EPLoginInputView.swift in Sources */, 9B335B492925D8A00048A116 /* XPAnchorPKSelectTypeController.m in Sources */, E8098CAE282E07C00090B9F0 /* XPMomentsEmptyTableViewCell.m in Sources */, - 237700D72BC7D51400D661F1 /* UIButton+MSRTL.m in Sources */, E85E7B4F2A4EB0D300B6D00A /* XPMineExchangeAuthorityVC.m in Sources */, 23FE47DB2BB4171C00F09D23 /* PINobleCenterListView.m in Sources */, 4C75CEFB2D6318FF009147A5 /* RoomEnterModel.m in Sources */, @@ -12771,7 +12861,6 @@ 9BE9F0FC27FED2E100667200 /* XPAnchorFansJoinModel.m in Sources */, E87DF50B2A42CEC9009C1185 /* HomeEveryOneSearchModel.m in Sources */, 23E9EA8B2A84B9BD00B792F2 /* XPMineUserInfoTagFlowLayout.m in Sources */, - 186A534A26FC6ED900D67B2C /* TTActionSheetConfig.m in Sources */, 9B6E856A281A982A0041A321 /* XPRoomRecommendView.m in Sources */, E8DBB6FD27B63CE000AA285D /* LittleGameMicroView.m in Sources */, E85E7B4A2A4EB0D300B6D00A /* XPMineMangerListViewController.m in Sources */, @@ -12796,7 +12885,6 @@ 23FF25792ABD67CD0064E904 /* XPFreeGiftModel.m in Sources */, 9B92A33C2797E38100AD168F /* XPMineHeadItemTableViewCell.m in Sources */, E854103928646A00005CFD9F /* XPMonentsReplyMoreTableViewCell.m in Sources */, - 4CEB9EAA2D097E8400443480 /* MoliAvatar.m in Sources */, 9B8DE0E1289CF02900FB6EC2 /* XPGiftCompoundModel.m in Sources */, 23FF256E2ABC48810064E904 /* XPSessionMainViewController.m in Sources */, E85E7B092A4EB0D200B6D00A /* XPGuildRemoveMemberPresenter.m in Sources */, @@ -12901,8 +12989,11 @@ 18486213271EA9DA005FC5DC /* RtcManager.m in Sources */, E8D34D5628080393009C4835 /* XPMineDataGiftCollectionViewCell.m in Sources */, E84A2E9C2A52823900D6AF8A /* XPTextField.m in Sources */, - 186A536926FC6F2E00D67B2C /* XPShareView.m in Sources */, 23CEFC602AFB8FC100576D89 /* RealViewCellModel.m in Sources */, + 4CD19C872E9CB31C0069DAA0 /* EPLoginViewController.swift in Sources */, + 4CD19C882E9CB31C0069DAA0 /* EPLoginState.swift in Sources */, + 4CD19C892E9CB31C0069DAA0 /* EPLoginTypesViewController.swift in Sources */, + 4CD19C8A2E9CB31C0069DAA0 /* EPPolicyLabel.swift in Sources */, E8AB632C28AE19600023B0D2 /* XPMomentsMineViewController.m in Sources */, 23CEFC5F2AFB8FC100576D89 /* BSLogTableViewController.m in Sources */, 236B2E4D2AA07D06003967A8 /* XPRoomLittleGameContainerView.m in Sources */, @@ -12910,17 +13001,14 @@ 239D0FAC2BFCB88D002977CE /* XPRoomRankEntranceView.m in Sources */, 9BC5C91C277C8A7B007C8719 /* XPReleaseRadioViewController.m in Sources */, 23B2AEC42A6516C200543D17 /* LoginForgetPasswordViewController.m in Sources */, - 186A534C26FC6ED900D67B2C /* TTAlertView.m in Sources */, 23E9EB1E2A84DA5F00B792F2 /* XPMineUserInfoNavView.m in Sources */, E85E7B332A4EB0D300B6D00A /* XPGuildIncomeSectionView.m in Sources */, E85E7B0F2A4EB0D200B6D00A /* GuildRoomInfoModel.m in Sources */, E801275527E3326000BAC3F2 /* XPRoomPKUserView.m in Sources */, 4C75472E2E55837300C6E821 /* BannerScheduler.m in Sources */, 2305EF132AD8036B00AD403C /* PIRoomMessagePhotoAlbumView.m in Sources */, - E8FE3C2C2994D0E80006C6C7 /* XPSwitch.m in Sources */, 4C1064882E0014CF007E1586 /* NSMutableArray+Safe.m in Sources */, E8D4824D278D2CE4003C1D08 /* XPAcrossRoomPKInviteResultView.m in Sources */, - E81E09CC290F732600A1F410 /* XPAdImageTool.m in Sources */, 9BD8D4E628911F7700AE03FF /* XPMineCollectRoomListPresenter.m in Sources */, 233423D92AB0438400B1253F /* PIMessageContentServiceReplyModel.m in Sources */, E866B6E52759F96F009B002A /* XPMiniRoomView.m in Sources */, @@ -12965,7 +13053,6 @@ 23E9EA842A84B6FD00B792F2 /* XPMineUserInfoTagModel.m in Sources */, E8998D852859B4FA00C68558 /* XPMineUserInfoGiftView.m in Sources */, 23FE47E72BB4378700F09D23 /* PINobleCenterListModel.m in Sources */, - 186A536B26FC6F2E00D67B2C /* XPShareItemCell.m in Sources */, 54C9A11C2C3D9EDD00C6D970 /* Api+GameOrder.m in Sources */, 237B94C02A984DA7007853E3 /* Api+RoomTrumpet.m in Sources */, 23E45C052AC2B0A200D88BCA /* SessionDiscoverNewTableViewCell.m in Sources */, @@ -12979,14 +13066,12 @@ E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */, E82107872987E49100DE7040 /* MessageRedPacketModel.m in Sources */, 23B8D8E12B87715100CA472F /* PIGeneralPublicScreenModel.m in Sources */, - 237700E92BC7E88E00D661F1 /* UITextView+MSRTL.m in Sources */, 23194DD52AD292F200649F51 /* PIPageControl.m in Sources */, 23E9EA9E2A84C42B00B792F2 /* SGYProgressView.m in Sources */, E87E91552796B6DE00A7B3F2 /* XPRoomInviteUserViewController.m in Sources */, 239D0FCC2C045FC9002977CE /* MSTabbarRoomGameVC.m in Sources */, E880B3B5278C1FE400A83B0D /* XPAcrossRoomPKPresenter.m in Sources */, 23CEFC612AFB8FC100576D89 /* RealViewNetWorkCell_0.m in Sources */, - 186A534626FC6ED900D67B2C /* TTPopup.m in Sources */, 9B4D449328F15765002572D5 /* XPGiftLuckyGiftBroadcastView.m in Sources */, E81C278C26EAFAF60031E639 /* Base64.m in Sources */, 544B19B62CA14A7100885BEB /* CPGiftBanner.m in Sources */, @@ -12997,7 +13082,6 @@ 54E4D5302C9048E1009E1FEA /* LuckyGiftWinningFlagView.m in Sources */, 23CEFC682AFCCE7700576D89 /* PIGiftInfoSegmentedView.m in Sources */, E878B85E283640A500E22DCF /* MonentsUnReadModel.m in Sources */, - E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */, E85E7BA42A4EC99300B6D00A /* XPMineGiveDiamondCell.m in Sources */, E824546426F5FF1C00BE8163 /* XPMineResetPayPasswordPresenter.m in Sources */, E818E34F286EDF72005EDF68 /* XPMonentsPublishCollectionViewCell.m in Sources */, @@ -13029,7 +13113,6 @@ E85E7B542A4EB4AD00B6D00A /* XPMineGuildListModel.m in Sources */, 54283CE52CE48A69009729B5 /* ShoppingMallViewController.m in Sources */, 9BCE6144277D657600CC0358 /* XPReleaseRadioTableViewCell.m in Sources */, - 186A534D26FC6ED900D67B2C /* TTActionSheetView.m in Sources */, E81060E529876FF300B772F0 /* MessageAudioModel.m in Sources */, 23CEFC642AFB8FC100576D89 /* BSkObject.m in Sources */, 239D0FF42C05B9D2002977CE /* MSRoomGameView.m in Sources */, @@ -13047,7 +13130,6 @@ 2331C1AC2A60F32D00E1D940 /* CandyTreeRecordModel.m in Sources */, 540EC1D32C89998500F3BF0D /* GiftComboManager.m in Sources */, 5468995D2C8AFE4C0049136A /* GiftComboFlagView.m in Sources */, - E81E09CF290F750800A1F410 /* AdvertiseModel.m in Sources */, 2305F3472AD94E9D00AD403C /* XPMaskManagerCell.m in Sources */, E852D74428633A08001465ED /* MonentsCommentModel.m in Sources */, E8C1CD6D27D8938C00376F83 /* XPRoomFaceTitleCollectionViewCell.m in Sources */, @@ -13097,7 +13179,6 @@ E85E7B342A4EB0D300B6D00A /* XPMineMainGuildListVC.m in Sources */, 9BBC02912786FC570007C24B /* XPMineNobleCardTableViewCell.m in Sources */, E8751E7428A665BC0056EF44 /* RoomSailingInfoModel.m in Sources */, - E80EC81328ACD84000D133C5 /* QKeyboardManager.m in Sources */, 4CD6FF692D673F7F00262AB7 /* AgentMessageTableViewCell.m in Sources */, 4C1392962D6DA22B00A6DFB5 /* RechargerTransferHistoryViewController.m in Sources */, 4CF3CE2E2E040EEC0071101F /* MedalsWearingListCollectionViewCell.m in Sources */, @@ -13141,13 +13222,11 @@ E890BC10273D23F00007C46B /* GiftInfoModel.m in Sources */, E8A30BEB28534A96003B4873 /* XPSessionFindNewFiltrateView.m in Sources */, E84BF7E0277C869A00EF8877 /* XPRoomOnLineViewController.m in Sources */, - 186A534826FC6ED900D67B2C /* TTAlertButtonConfig.m in Sources */, 236B2E422AA07D06003967A8 /* SudCommon.m in Sources */, E88749B6282B8FC600C3C7DB /* MomentsInfoModel.m in Sources */, E89D60BA271D643A001F8895 /* Api+Room.m in Sources */, 4C0B4A4A2E65A5D500D67F73 /* XPRoomMusicPanelAction.m in Sources */, E84843B227F5A0740050D365 /* XPRomPKResultTitleLabel.m in Sources */, - E80EC80F28ACD84000D133C5 /* QEmotion.m in Sources */, E877A7EB2783E24700EFACED /* DatingStageView.m in Sources */, 4CBDC4272DC0B947005A75B9 /* EventCenterPresenter.m in Sources */, 9BD2ECDA288F867000F5CD9A /* XPMineFootPrintTableViewCell.m in Sources */, @@ -13188,6 +13267,7 @@ E8133916273E532D00708B66 /* XPGiftItemCollectionViewCell.m in Sources */, 2331C1782A5EB71000E1D940 /* Api+NobleCenter.m in Sources */, 236896A02AE6720600EED5F2 /* PIRoomGiftBroadcastWindow.m in Sources */, + 4CD19C912E9CBBD30069DAA0 /* EPLoginBridge.swift in Sources */, 2305EF012AD6A33E00AD403C /* PIRoomPhotoAlbumItemChoosePhotoModel.m in Sources */, 2305EEFE2AD6978200AD403C /* PIRoomPhotoAlbumChoosePhotoCell.m in Sources */, E833ED0D274FAD1C00A2463B /* XPKickUserModel.m in Sources */, @@ -13240,7 +13320,6 @@ E81060DF29876D3A00B772F0 /* MessageTimeModel.m in Sources */, E81A65422835120200F55894 /* XPMonentsInteractivePresenter.m in Sources */, 239D0FD52C0475E6002977CE /* MSTabbarBeginGameView.m in Sources */, - E80EC80C28ACD84000D133C5 /* UITextView+QEmotion.m in Sources */, E8664EE627E482EF000171BA /* RoomPKTeamModel.m in Sources */, 9BAA5FF0277A23F4007453F3 /* XPPermissionsViewController.m in Sources */, E85E7BA02A4EC99300B6D00A /* XPMineGiveDiamondDetailsModel.m in Sources */, @@ -13253,6 +13332,7 @@ 23CEFC4C2AFB8FC100576D89 /* BS_UIColor.m in Sources */, E8412FA92779C2ED006E1101 /* XPRoomSettingItemModel.m in Sources */, 189DD58F26DF97E700AB55B1 /* LoginPresenter.m in Sources */, + 4CD19C932E9CCF2C0069DAA0 /* EPLoginConfig.swift in Sources */, E88863C9278EBA43004BCFAB /* XPAcrossRoomPKForceEndResultView.m in Sources */, E8F63CB7298B566D00B338BA /* XPSessionSayHelloPresenter.m in Sources */, 4C0642992E98F77900BAF413 /* EPMomentListView.m in Sources */, @@ -13266,13 +13346,13 @@ 545888362C1C306B00897585 /* XPRoomPKPaneAvatarView.m in Sources */, E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */, 14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */, - E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */, 54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */, 149839C7299E0B9F00F82CBF /* XPMomentListCollectionViewCell.m in Sources */, - 4C6E1F792CEB12780073D0A3 /* UIView+GradientLayer.m in Sources */, 236BA4982BB6AFED00C7C73A /* PINoblePrivilegeEmptyCell.m in Sources */, E88C729C2828F37D0047FB2B /* XPRoomMusicLibraryEmptyTableViewCell.m in Sources */, E85E7B0A2A4EB0D200B6D00A /* XPGuildManagerPerPresenter.m in Sources */, + 4CD19C8E2E9CBBC80069DAA0 /* EPLoginService.swift in Sources */, + 4CD19C8F2E9CBBC80069DAA0 /* EPLoginManager.swift in Sources */, 9B85F3562806DD8A006EDF51 /* XPAnchorPKFinishView.m in Sources */, E85E7BA12A4EC99300B6D00A /* XPMineGiveDiamondModel.m in Sources */, E85E7B232A4EB0D300B6D00A /* XPMineClanViewController.m in Sources */, diff --git a/YuMi/Appdelegate/AppDelegate.m b/YuMi/Appdelegate/AppDelegate.m index cef436b..01edb55 100644 --- a/YuMi/Appdelegate/AppDelegate.m +++ b/YuMi/Appdelegate/AppDelegate.m @@ -136,10 +136,18 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const } - (void)toLoginPage { - LoginViewController *lvc = [[LoginViewController alloc] init]; - BaseNavigationController * navigationController = [[BaseNavigationController alloc] initWithRootViewController:lvc]; + // 使用新的 Swift 登录页面 + EPLoginViewController *lvc = [[EPLoginViewController alloc] init]; + BaseNavigationController *navigationController = + [[BaseNavigationController alloc] initWithRootViewController:lvc]; navigationController.modalPresentationStyle = UIModalPresentationFullScreen; self.window.rootViewController = navigationController; + + // 旧代码保留注释(便于回滚) + // LoginViewController *lvc = [[LoginViewController alloc] init]; + // BaseNavigationController * navigationController = [[BaseNavigationController alloc] initWithRootViewController:lvc]; + // navigationController.modalPresentationStyle = UIModalPresentationFullScreen; + // self.window.rootViewController = navigationController; } - (void)toHomeTabbarPage { diff --git a/YuMi/E-P/NewLogin/Controllers/EPLoginTypesViewController.swift b/YuMi/E-P/NewLogin/Controllers/EPLoginTypesViewController.swift new file mode 100644 index 0000000..cae596f --- /dev/null +++ b/YuMi/E-P/NewLogin/Controllers/EPLoginTypesViewController.swift @@ -0,0 +1,580 @@ +// +// EPLoginTypesViewController.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import UIKit + +class EPLoginTypesViewController: UIViewController { + + // MARK: - Properties + + var displayType: EPLoginDisplayType = .id + + private let loginService = EPLoginService() + private let validator = EPLoginValidator() + + private let backgroundImageView = UIImageView() + private let titleLabel = UILabel() + private let backButton = UIButton(type: .system) + + private let firstInputView = EPLoginInputView() + private let secondInputView = EPLoginInputView() + private var thirdInputView: EPLoginInputView? + + private let actionButton = UIButton(type: .system) + private var forgotPasswordButton: UIButton? + + // MARK: - Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + setupUI() + configureForDisplayType() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + navigationController?.setNavigationBarHidden(true, animated: animated) + } + + // MARK: - Setup + + private func setupUI() { + setupBackground() + setupNavigationBar() + setupTitle() + setupInputViews() + setupActionButton() + } + + private func setupBackground() { + view.addSubview(backgroundImageView) + backgroundImageView.image = kImage(EPLoginConfig.Images.background) + backgroundImageView.contentMode = .scaleAspectFill + + backgroundImageView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + } + + private func setupNavigationBar() { + view.addSubview(backButton) + backButton.setImage(UIImage(systemName: EPLoginConfig.Images.iconBack), for: .normal) + backButton.tintColor = EPLoginConfig.Colors.textLight + backButton.addTarget(self, action: #selector(handleBack), for: .touchUpInside) + + backButton.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.compactHorizontalPadding) + make.top.equalTo(view.safeAreaLayoutGuide).offset(8) + make.size.equalTo(EPLoginConfig.Layout.backButtonSize) + } + } + + private func setupTitle() { + view.addSubview(titleLabel) + titleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.titleFontSize, weight: .bold) + titleLabel.textColor = EPLoginConfig.Colors.textLight + + titleLabel.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(view.safeAreaLayoutGuide).offset(100) + } + } + + private func setupInputViews() { + view.addSubview(firstInputView) + view.addSubview(secondInputView) + + firstInputView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(titleLabel.snp.bottom).offset(EPLoginConfig.Layout.inputTitleSpacing) + make.width.equalTo(EPLoginConfig.Layout.buttonWidth) + make.height.equalTo(EPLoginConfig.Layout.buttonHeight) + } + + secondInputView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(firstInputView.snp.bottom).offset(EPLoginConfig.Layout.inputVerticalSpacing) + make.width.equalTo(EPLoginConfig.Layout.buttonWidth) + make.height.equalTo(EPLoginConfig.Layout.buttonHeight) + } + } + + private func setupActionButton() { + view.addSubview(actionButton) + actionButton.setTitle("Login", for: .normal) + actionButton.setTitleColor(EPLoginConfig.Colors.textLight, for: .normal) + actionButton.backgroundColor = EPLoginConfig.Colors.primary + actionButton.layer.cornerRadius = EPLoginConfig.Layout.cornerRadius + actionButton.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.buttonFontSize, weight: .semibold) + actionButton.addTarget(self, action: #selector(handleAction), for: .touchUpInside) + + actionButton.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(secondInputView.snp.bottom).offset(EPLoginConfig.Layout.buttonTopSpacing) + make.width.equalTo(EPLoginConfig.Layout.buttonWidth) + make.height.equalTo(EPLoginConfig.Layout.buttonHeight) + } + } + + // MARK: - Configuration + + private func configureForDisplayType() { + switch displayType { + case .id: + titleLabel.text = YMLocalizedString("1.0.37_text_26") // ID Login + firstInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: false, + icon: "person", + placeholder: "Please enter ID" + )) + secondInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: true, + icon: "lock", + placeholder: "Please enter password" + )) + actionButton.setTitle("Login", for: .normal) + + // 添加忘记密码按钮 + setupForgotPasswordButton() + + case .email: + titleLabel.text = YMLocalizedString("20.20.51_text_1") // Email Login + firstInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: false, + icon: "envelope", + placeholder: "Please enter email" + )) + secondInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: true, + isSecure: false, + icon: "number", + placeholder: "Please enter verification code" + )) + secondInputView.delegate = self + actionButton.setTitle("Login", for: .normal) + + case .phone: + titleLabel.text = "Phone Login" + firstInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: false, + icon: "phone", + placeholder: "Please enter phone" + )) + secondInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: true, + isSecure: false, + icon: "number", + placeholder: "Please enter verification code" + )) + secondInputView.delegate = self + actionButton.setTitle("Login", for: .normal) + + case .emailReset: + titleLabel.text = "Recover Password" + firstInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: false, + icon: "envelope", + placeholder: "Please enter email" + )) + secondInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: true, + isSecure: false, + icon: "number", + placeholder: "Please enter verification code" + )) + secondInputView.delegate = self + + // 添加第三个输入框 + setupThirdInputView() + actionButton.setTitle("Confirm", for: .normal) + + case .phoneReset: + titleLabel.text = "Recover Password" + firstInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: false, + icon: "phone", + placeholder: "Please enter phone" + )) + secondInputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: true, + isSecure: false, + icon: "number", + placeholder: "Please enter verification code" + )) + secondInputView.delegate = self + + // 添加第三个输入框 + setupThirdInputView() + actionButton.setTitle("Confirm", for: .normal) + } + } + + private func setupForgotPasswordButton() { + let button = UIButton(type: .system) + button.setTitle("Forgot Password?", for: .normal) + button.setTitleColor(EPLoginConfig.Colors.textLight, for: .normal) + button.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.smallFontSize) + button.addTarget(self, action: #selector(handleForgotPassword), for: .touchUpInside) + + view.addSubview(button) + + button.snp.makeConstraints { make in + make.trailing.equalTo(secondInputView) + make.top.equalTo(secondInputView.snp.bottom).offset(8) + } + + forgotPasswordButton = button + } + + private func setupThirdInputView() { + let inputView = EPLoginInputView() + inputView.configure(with: EPLoginInputConfig( + showAreaCode: false, + showCodeButton: false, + isSecure: true, + icon: EPLoginConfig.Images.iconLock, + placeholder: "6-16 Digits + English Letters" + )) + view.addSubview(inputView) + + inputView.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(secondInputView.snp.bottom).offset(EPLoginConfig.Layout.inputVerticalSpacing) + make.width.equalTo(EPLoginConfig.Layout.buttonWidth) + make.height.equalTo(EPLoginConfig.Layout.buttonHeight) + } + + // 重新调整 actionButton 位置 + actionButton.snp.remakeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(inputView.snp.bottom).offset(EPLoginConfig.Layout.buttonTopSpacing) + make.width.equalTo(EPLoginConfig.Layout.buttonWidth) + make.height.equalTo(EPLoginConfig.Layout.buttonHeight) + } + + thirdInputView = inputView + } + + // MARK: - Actions + + @objc private func handleBack() { + navigationController?.popViewController(animated: true) + } + + @objc private func handleAction() { + view.endEditing(true) + + // 执行对应类型的操作 + switch displayType { + case .id: + handleIDLogin() + case .email: + handleEmailLogin() + case .phone: + handlePhoneLogin() + case .emailReset: + handleEmailResetPassword() + case .phoneReset: + handlePhoneResetPassword() + } + } + + @objc private func handleForgotPassword() { + let vc = EPLoginTypesViewController() + vc.displayType = .emailReset + navigationController?.pushViewController(vc, animated: true) + } + + // MARK: - 登录逻辑 + + private func handleIDLogin() { + let id = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + let password = secondInputView.text + + // 表单验证 + guard !id.isEmpty else { + showAlert("请输入用户ID") + return + } + + guard !password.isEmpty else { + showAlert("请输入密码") + return + } + + // 显示加载状态 + showLoading(true) + + loginService.loginWithID(id: id, password: password) { [weak self] (accountModel: AccountModel) in + DispatchQueue.main.async { + self?.showLoading(false) + print("[EPLogin] ID登录成功: \(accountModel.uid ?? "")") + EPLoginManager.jumpToHome(from: self!) + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("登录失败: \(msg)") + } + } + } + + private func handleEmailLogin() { + let email = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + let code = secondInputView.text + + // 表单验证 + guard validator.validateEmail(email) else { + showAlert("请输入正确的邮箱地址") + return + } + + guard validator.validateCode(code) else { + showAlert("请输入6位数字验证码") + return + } + + showLoading(true) + + loginService.loginWithEmail(email: email, code: code) { [weak self] (accountModel: AccountModel) in + DispatchQueue.main.async { + self?.showLoading(false) + print("[EPLogin] 邮箱登录成功: \(accountModel.uid ?? "")") + EPLoginManager.jumpToHome(from: self!) + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("登录失败: \(msg)") + } + } + } + + private func handlePhoneLogin() { + let phone = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + let code = secondInputView.text + + // 表单验证 + guard validator.validatePhone(phone) else { + showAlert("请输入正确的手机号") + return + } + + guard validator.validateCode(code) else { + showAlert("请输入6位数字验证码") + return + } + + showLoading(true) + + loginService.loginWithPhone(phone: phone, code: code, areaCode: "+86") { [weak self] (accountModel: AccountModel) in + DispatchQueue.main.async { + self?.showLoading(false) + print("[EPLogin] 手机登录成功: \(accountModel.uid ?? "")") + EPLoginManager.jumpToHome(from: self!) + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("登录失败: \(msg)") + } + } + } + + private func handleEmailResetPassword() { + guard let thirdInput = thirdInputView else { return } + + let email = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + let code = secondInputView.text + let newPassword = thirdInput.text + + // 表单验证 + guard validator.validateEmail(email) else { + showAlert("请输入正确的邮箱地址") + return + } + + guard validator.validateCode(code) else { + showAlert("请输入6位数字验证码") + return + } + + guard validator.validatePassword(newPassword) else { + showAlert("密码需6-16位,包含字母和数字") + return + } + + showLoading(true) + + loginService.resetEmailPassword(email: email, code: code, newPassword: newPassword) { [weak self] in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("密码重置成功", completion: { + self?.navigationController?.popViewController(animated: true) + }) + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("重置失败: \(msg)") + } + } + } + + private func handlePhoneResetPassword() { + guard let thirdInput = thirdInputView else { return } + + let phone = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + let code = secondInputView.text + let newPassword = thirdInput.text + + // 表单验证 + guard validator.validatePhone(phone) else { + showAlert("请输入正确的手机号") + return + } + + guard validator.validateCode(code) else { + showAlert("请输入6位数字验证码") + return + } + + guard validator.validatePassword(newPassword) else { + showAlert("密码需6-16位,包含字母和数字") + return + } + + showLoading(true) + + loginService.resetPhonePassword(phone: phone, code: code, areaCode: "+86", newPassword: newPassword) { [weak self] in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("密码重置成功", completion: { + self?.navigationController?.popViewController(animated: true) + }) + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showLoading(false) + self?.showAlert("重置失败: \(msg)") + } + } + } + + // MARK: - 验证码发送 + + private func sendEmailCode() { + let email = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + + guard validator.validateEmail(email) else { + showAlert("请输入正确的邮箱地址") + return + } + + let type = (displayType == .emailReset) ? 2 : 1 // 2=找回密码, 1=登录 + + loginService.sendEmailCode(email: email, type: type) { [weak self] in + DispatchQueue.main.async { + self?.secondInputView.startCountdown() + self?.showAlert("验证码已发送") + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showAlert("发送失败: \(msg)") + } + } + } + + private func sendPhoneCode() { + let phone = firstInputView.text.trimmingCharacters(in: .whitespacesAndNewlines) + + guard validator.validatePhone(phone) else { + showAlert("请输入正确的手机号") + return + } + + let type = (displayType == .phoneReset) ? 2 : 1 // 2=找回密码, 1=登录 + + loginService.sendPhoneCode(phone: phone, areaCode: "+86", type: type) { [weak self] in + DispatchQueue.main.async { + self?.secondInputView.startCountdown() + self?.showAlert("验证码已发送") + } + } failure: { [weak self] (code: Int, msg: String) in + DispatchQueue.main.async { + self?.showAlert("发送失败: \(msg)") + } + } + } + + private func sendEmailResetCode() { + sendEmailCode() // 复用邮箱验证码逻辑 + } + + private func sendPhoneResetCode() { + sendPhoneCode() // 复用手机验证码逻辑 + } + + // MARK: - UI Helpers + + private func showLoading(_ show: Bool) { + actionButton.isEnabled = !show + if show { + actionButton.setTitle("Loading...", for: .normal) + } else { + switch displayType { + case .id, .email, .phone: + actionButton.setTitle("Login", for: .normal) + case .emailReset, .phoneReset: + actionButton.setTitle("Confirm", for: .normal) + } + } + } + + private func showAlert(_ message: String, completion: (() -> Void)? = nil) { + let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "确定", style: .default) { _ in + completion?() + }) + present(alert, animated: true) + } +} + +// MARK: - EPLoginInputViewDelegate + +extension EPLoginTypesViewController: EPLoginInputViewDelegate { + func inputViewDidRequestCode(_ inputView: EPLoginInputView) { + if inputView == secondInputView { + if displayType == .email || displayType == .emailReset { + sendEmailCode() + } else if displayType == .phone || displayType == .phoneReset { + sendPhoneCode() + } + } + } + + func inputViewDidSelectArea(_ inputView: EPLoginInputView) { + // 区号选择(暂不实现) + print("[EPLogin] Area selection - 占位,Phase 2 实现") + } +} diff --git a/YuMi/E-P/NewLogin/Controllers/EPLoginViewController.swift b/YuMi/E-P/NewLogin/Controllers/EPLoginViewController.swift new file mode 100644 index 0000000..faef022 --- /dev/null +++ b/YuMi/E-P/NewLogin/Controllers/EPLoginViewController.swift @@ -0,0 +1,252 @@ +// +// EPLoginViewController.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import UIKit + +@objc class EPLoginViewController: UIViewController { + + // MARK: - Properties + + private let backgroundImageView = UIImageView() + private let logoImageView = UIImageView() + private let epartiTitleLabel = UILabel() + + private let idLoginButton = EPLoginButton() + private let emailLoginButton = EPLoginButton() + + private let agreeCheckbox = UIButton(type: .custom) + private let policyLabel = EPPolicyLabel() + + private let feedbackButton = UIButton(type: .custom) + + #if DEBUG + private let debugButton = UIButton(type: .custom) + #endif + + private let policySelectedKey = EPLoginConfig.Keys.policyAgreed + + // MARK: - Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + setupUI() + loadPolicyStatus() + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + navigationController?.setNavigationBarHidden(true, animated: animated) + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) +// navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // MARK: - Setup + + private func setupUI() { + setupBackground() + setupLogo() + setupLoginButtons() + setupPolicyArea() + setupNavigationBar() + } + + private func setupBackground() { + view.addSubview(backgroundImageView) + backgroundImageView.image = kImage(EPLoginConfig.Images.background) + backgroundImageView.contentMode = .scaleAspectFill + + backgroundImageView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + } + + private func setupLogo() { + view.addSubview(logoImageView) + logoImageView.image = kImage(EPLoginConfig.Images.loginBg) + + logoImageView.snp.makeConstraints { make in + make.top.leading.trailing.equalTo(view) + make.height.equalTo(EPLoginConfig.Layout.logoHeight) + } + + // E-PARTI 标题 + view.addSubview(epartiTitleLabel) + epartiTitleLabel.text = "E-PARTI" + epartiTitleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.epartiTitleFontSize, weight: .bold) + epartiTitleLabel.textColor = EPLoginConfig.Colors.textLight + epartiTitleLabel.transform = CGAffineTransform(a: 1, b: 0, c: -0.2, d: 1, tx: 0, ty: 0) // 斜体效果 + + epartiTitleLabel.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.epartiTitleLeading) + make.bottom.equalTo(logoImageView.snp.bottom).offset(EPLoginConfig.Layout.epartiTitleBottomOffset) + } + } + + private func setupLoginButtons() { + // 配置按钮 + idLoginButton.configure( + icon: EPLoginConfig.Images.iconLoginId, + title: YMLocalizedString(EPLoginConfig.LocalizedKeys.idLogin) + ) + idLoginButton.delegate = self + + emailLoginButton.configure( + icon: EPLoginConfig.Images.iconLoginEmail, + title: YMLocalizedString(EPLoginConfig.LocalizedKeys.emailLogin) + ) + emailLoginButton.delegate = self + + // StackView 布局 + let stackView = UIStackView(arrangedSubviews: [idLoginButton, emailLoginButton]) + stackView.axis = .vertical + stackView.spacing = EPLoginConfig.Layout.loginButtonSpacing + stackView.distribution = .fillEqually + view.addSubview(stackView) + + stackView.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.loginButtonHorizontalPadding) + make.trailing.equalToSuperview().offset(-EPLoginConfig.Layout.loginButtonHorizontalPadding) + make.top.equalTo(logoImageView.snp.bottom) + } + + idLoginButton.snp.makeConstraints { make in + make.height.equalTo(EPLoginConfig.Layout.loginButtonHeight) + } + + emailLoginButton.snp.makeConstraints { make in + make.height.equalTo(EPLoginConfig.Layout.loginButtonHeight) + } + } + + private func setupPolicyArea() { + view.addSubview(agreeCheckbox) + view.addSubview(policyLabel) + + agreeCheckbox.setImage(kImage("login_privace_select"), for: .selected) + agreeCheckbox.setImage(kImage("login_privace_unselect"), for: .normal) + agreeCheckbox.addTarget(self, action: #selector(togglePolicyCheckbox), for: .touchUpInside) + + policyLabel.onUserAgreementTapped = { [weak self] in + self?.openPolicy(url: "https://example.com/user-agreement") + } + policyLabel.onPrivacyPolicyTapped = { [weak self] in + self?.openPolicy(url: "https://example.com/privacy-policy") + } + + agreeCheckbox.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.horizontalPadding) + make.bottom.equalTo(view.safeAreaLayoutGuide).offset(-30) + make.size.equalTo(EPLoginConfig.Layout.checkboxSize) + } + + policyLabel.snp.makeConstraints { make in + make.leading.equalTo(agreeCheckbox.snp.trailing).offset(8) + make.trailing.equalToSuperview().offset(-EPLoginConfig.Layout.horizontalPadding) + make.centerY.equalTo(agreeCheckbox) + } + } + + private func setupNavigationBar() { + view.addSubview(feedbackButton) + feedbackButton.setTitle(YMLocalizedString(EPLoginConfig.LocalizedKeys.feedback), for: .normal) + feedbackButton.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.smallFontSize) + feedbackButton.backgroundColor = EPLoginConfig.Colors.backgroundTransparent + feedbackButton.layer.cornerRadius = EPLoginConfig.Layout.feedbackButtonCornerRadius + feedbackButton.addTarget(self, action: #selector(handleFeedback), for: .touchUpInside) + + feedbackButton.snp.makeConstraints { make in + make.trailing.equalToSuperview().offset(-EPLoginConfig.Layout.compactHorizontalPadding) + make.top.equalTo(view.safeAreaLayoutGuide).offset(8) + make.height.equalTo(EPLoginConfig.Layout.feedbackButtonHeight) + } + + #if DEBUG + view.addSubview(debugButton) + debugButton.setTitle("切换环境", for: .normal) + debugButton.setTitleColor(.blue, for: .normal) + debugButton.addTarget(self, action: #selector(handleDebug), for: .touchUpInside) + + debugButton.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.compactHorizontalPadding) + make.top.equalTo(view.safeAreaLayoutGuide).offset(8) + } + #endif + } + + // MARK: - Actions + + private func handleIDLogin() { + let vc = EPLoginTypesViewController() + vc.displayType = .id + navigationController?.pushViewController(vc, animated: true) + } + + private func handleEmailLogin() { + let vc = EPLoginTypesViewController() + vc.displayType = .email + navigationController?.pushViewController(vc, animated: true) + } + + @objc private func togglePolicyCheckbox() { + agreeCheckbox.isSelected.toggle() + UserDefaults.standard.set(agreeCheckbox.isSelected, forKey: policySelectedKey) + } + + @objc private func handleFeedback() { + print("[EPLogin] Feedback - 占位,Phase 2 实现") + } + + #if DEBUG + @objc private func handleDebug() { + print("[EPLogin] Debug - 占位,Phase 2 实现") + } + #endif + + private func openPolicy(url: String) { + let webVC = XPWebViewController(roomUID: nil) + webVC.url = url + navigationController?.pushViewController(webVC, animated: true) + } + + // MARK: - Helpers + + private func loadPolicyStatus() { + agreeCheckbox.isSelected = UserDefaults.standard.bool(forKey: policySelectedKey) + // 默认勾选 + if !UserDefaults.standard.bool(forKey: EPLoginConfig.Keys.hasLaunchedBefore) { + agreeCheckbox.isSelected = true + UserDefaults.standard.set(true, forKey: policySelectedKey) + UserDefaults.standard.set(true, forKey: EPLoginConfig.Keys.hasLaunchedBefore) + } + } + + private func checkPolicyAgreed() -> Bool { + if !agreeCheckbox.isSelected { + // Phase 2: 显示提示 + print("[EPLogin] Please agree to policy first") + return false + } + return true + } +} + +// MARK: - EPLoginButtonDelegate + +extension EPLoginViewController: EPLoginButtonDelegate { + func loginButtonDidTap(_ button: EPLoginButton) { + guard checkPolicyAgreed() else { return } + + if button == idLoginButton { + handleIDLogin() + } else if button == emailLoginButton { + handleEmailLogin() + } + } +} diff --git a/YuMi/E-P/NewLogin/Models/EPLoginBridge.swift b/YuMi/E-P/NewLogin/Models/EPLoginBridge.swift new file mode 100644 index 0000000..f6e4e2a --- /dev/null +++ b/YuMi/E-P/NewLogin/Models/EPLoginBridge.swift @@ -0,0 +1,20 @@ +// +// EPLoginBridge.swift +// YuMi +// +// Created by AI on 2025-01-27. +// 桥接 Objective-C 宏到 Swift +// + +import UIKit + +/// 桥接 kImage 宏 +func kImage(_ name: String) -> UIImage? { + return UIImage(named: name) +} + +/// 桥接 YMLocalizedString 宏 +func YMLocalizedString(_ key: String) -> String { + return Bundle.ymLocalizedString(forKey: key) +} + diff --git a/YuMi/E-P/NewLogin/Models/EPLoginConfig.swift b/YuMi/E-P/NewLogin/Models/EPLoginConfig.swift new file mode 100644 index 0000000..014dfae --- /dev/null +++ b/YuMi/E-P/NewLogin/Models/EPLoginConfig.swift @@ -0,0 +1,288 @@ +// +// EPLoginConfig.swift +// YuMi +// +// Created by AI on 2025-01-27. +// 统一配置文件 - 消除硬编码 +// + +import UIKit + +/// 登录模块统一配置 +struct EPLoginConfig { + + // MARK: - Layout 布局尺寸 + + struct Layout { + /// 标准按钮宽度 + static let buttonWidth: CGFloat = 294 + /// 标准按钮高度 + static let buttonHeight: CGFloat = 46 + /// 登录按钮高度 + static let loginButtonHeight: CGFloat = 56 + /// 登录按钮间距 + static let loginButtonSpacing: CGFloat = 24 + /// 登录按钮左右边距 + static let loginButtonHorizontalPadding: CGFloat = 30 + /// 标准圆角半径(按钮/输入框) + static let cornerRadius: CGFloat = 23 + + /// Logo 尺寸 + static let logoHeight: CGFloat = 400 + /// Logo 距离顶部的距离 + static let logoTopOffset: CGFloat = 80 + + /// E-PARTI 标题字号 + static let epartiTitleFontSize: CGFloat = 56 + /// E-PARTI 标题距离 view leading + static let epartiTitleLeading: CGFloat = 40 + /// E-PARTI 标题距离 logoImage bottom 的偏移(负值表示向上) + static let epartiTitleBottomOffset: CGFloat = -30 + + /// 输入框之间的垂直间距 + static let inputVerticalSpacing: CGFloat = 16 + /// 输入框距离标题的距离 + static let inputTitleSpacing: CGFloat = 60 + + /// 按钮距离输入框的距离 + static let buttonTopSpacing: CGFloat = 40 + + /// 页面左右边距 + static let horizontalPadding: CGFloat = 40 + /// 紧凑左右边距 + static let compactHorizontalPadding: CGFloat = 16 + + /// 标题字体大小 + static let titleFontSize: CGFloat = 28 + /// 按钮字体大小 + static let buttonFontSize: CGFloat = 16 + /// 输入框字体大小 + static let inputFontSize: CGFloat = 14 + /// 小字体大小(提示文字等) + static let smallFontSize: CGFloat = 12 + + /// 图标尺寸 + static let iconSize: CGFloat = 24 + /// 登录按钮图标尺寸 + static let loginButtonIconSize: CGFloat = 30 + /// 登录按钮图标左边距(距离白色背景) + static let loginButtonIconLeading: CGFloat = 33 + /// 图标左边距 + static let iconLeading: CGFloat = 15 + /// 图标与文字间距 + static let iconTextSpacing: CGFloat = 12 + + /// Checkbox 尺寸 + static let checkboxSize: CGFloat = 18 + + /// 返回按钮尺寸 + static let backButtonSize: CGFloat = 44 + + /// Feedback 按钮高度 + static let feedbackButtonHeight: CGFloat = 22 + static let feedbackButtonCornerRadius: CGFloat = 10.5 + + /// 输入框高度 + static let inputHeight: CGFloat = 52 + /// 输入框圆角 + static let inputCornerRadius: CGFloat = 26 + /// 输入框左右内边距 + static let inputHorizontalPadding: CGFloat = 24 + /// 输入框 icon 尺寸 + static let inputIconSize: CGFloat = 20 + + /// 验证码按钮宽度 + static let codeButtonWidth: CGFloat = 102 + /// 验证码按钮高度 + static let codeButtonHeight: CGFloat = 38 + } + + // MARK: - Colors 颜色主题 + + struct Colors { + /// 主题色(按钮背景) + static let primary = UIColor.systemPurple + + /// 背景色 + static let background = UIColor.white + static let backgroundTransparent = UIColor.white.withAlphaComponent(0.5) + + /// 文字颜色 + static let text = UIColor.darkText + static let textSecondary = UIColor.darkGray + static let textLight = UIColor.white + + /// 图标颜色 + static let icon = UIColor.darkGray + static let iconDisabled = UIColor.gray + + /// 输入框颜色 + static let inputBackground = UIColor(red: 0xF3/255.0, green: 0xF5/255.0, blue: 0xFA/255.0, alpha: 1.0) + static let inputText = UIColor(red: 0x1F/255.0, green: 0x1B/255.0, blue: 0x4F/255.0, alpha: 1.0) + static let inputBorder = UIColor.lightGray.withAlphaComponent(0.3) + static let inputBorderFocused = UIColor.systemPurple + + /// 验证码按钮颜色 + static let codeButtonBackground = UIColor(red: 0x91/255.0, green: 0x68/255.0, blue: 0xFA/255.0, alpha: 1.0) + + /// 按钮状态颜色 + static let buttonEnabled = UIColor.systemPurple + static let buttonDisabled = UIColor.lightGray + + /// 错误提示色 + static let error = UIColor.systemRed + static let success = UIColor.systemGreen + + /// 链接颜色 + static let link = UIColor.black + static let linkUnderline = UIColor.black + } + + // MARK: - Animation 动画配置 + + struct Animation { + /// 标准动画时长 + static let duration: TimeInterval = 0.3 + /// 短动画时长 + static let shortDuration: TimeInterval = 0.15 + /// 长动画时长 + static let longDuration: TimeInterval = 0.5 + + /// 弹簧动画阻尼 + static let springDamping: CGFloat = 0.75 + /// 弹簧动画初速度 + static let springVelocity: CGFloat = 0.5 + + /// 按钮点击缩放比例 + static let buttonPressScale: CGFloat = 0.95 + + /// 错误抖动距离 + static let shakeOffset: CGFloat = 10 + /// 错误抖动次数 + static let shakeCount: Int = 3 + } + + // MARK: - Validation 验证规则 + + struct Validation { + /// 密码最小长度 + static let passwordMinLength = 6 + /// 密码最大长度 + static let passwordMaxLength = 16 + + /// 验证码长度 + static let codeLength = 6 + + /// 手机号最小长度 + static let phoneMinLength = 10 + /// 手机号最大长度 + static let phoneMaxLength = 15 + + /// 邮箱正则表达式 + static let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" + /// 手机号正则表达式 + static let phoneRegex = "^[0-9]{10,15}$" + } + + // MARK: - Timing 时间配置 + + struct Timing { + /// 验证码倒计时秒数 + static let codeCountdownSeconds = 60 + + /// Toast 显示时长 + static let toastDuration: TimeInterval = 2.0 + + /// 加载超时时间 + static let requestTimeout: TimeInterval = 30.0 + } + + // MARK: - API 接口配置 + + struct API { + /// Client Secret + static let clientSecret = "uyzjdhds" + /// Client ID + static let clientId = "1" + /// Grant Type + static let grantType = "sms_code" + /// 版本号 + static let version = "1.0.31" + + /// 验证码类型:登录 + static let codeTypeLogin = 1 + /// 验证码类型:找回密码 + static let codeTypeReset = 2 + } + + // MARK: - UserDefaults Keys + + struct Keys { + /// 隐私协议已同意 + static let policyAgreed = "HadAgreePrivacy" + /// 首次启动标识 + static let hasLaunchedBefore = "HasLaunchedBefore" + } + + // MARK: - Images 图片资源名称 + + struct Images { + /// 背景图 + static let background = "vc_bg" + /// Logo 背景图 + static let loginBg = "login_bg" + + /// 登录按钮图标 - ID + static let iconLoginId = "icon_login_id" + /// 登录按钮图标 - Email + static let iconLoginEmail = "icon_login_email" + + /// 图标 - 用户 + static let iconPerson = "person.circle" + static let iconPersonFill = "person" + /// 图标 - 邮箱 + static let iconEmail = "envelope.circle" + static let iconEmailFill = "envelope" + /// 图标 - 手机 + static let iconPhone = "phone.circle" + static let iconPhoneFill = "phone" + /// 图标 - Apple + static let iconApple = "apple.logo" + /// 图标 - 锁 + static let iconLock = "lock" + /// 图标 - 数字 + static let iconNumber = "number" + + /// 图标 - 返回 + static let iconBack = "chevron.left" + /// 图标 - 眼睛(隐藏) + static let iconEyeSlash = "eye.slash" + /// 图标 - 眼睛(显示) + static let iconEye = "eye" + + /// Checkbox - 未选中 + static let checkboxEmpty = "circle" + /// Checkbox - 已选中 + static let checkboxFilled = "checkmark.circle" + } + + // MARK: - Localized Strings Keys + + struct LocalizedKeys { + /// ID 登录 + static let idLogin = "1.0.37_text_26" + /// 邮箱登录 + static let emailLogin = "20.20.51_text_1" + + /// 隐私协议完整文本 + static let policyFullText = "XPLoginViewController6" + /// 用户协议 + static let userAgreement = "XPLoginViewController7" + /// 隐私政策 + static let privacyPolicy = "XPLoginViewController9" + + /// 反馈 + static let feedback = "XPMineFeedbackViewController0" + } +} + diff --git a/YuMi/E-P/NewLogin/Models/EPLoginState.swift b/YuMi/E-P/NewLogin/Models/EPLoginState.swift new file mode 100644 index 0000000..3ec7b04 --- /dev/null +++ b/YuMi/E-P/NewLogin/Models/EPLoginState.swift @@ -0,0 +1,52 @@ +// +// EPLoginState.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import Foundation + +/// 登录显示类型枚举 +enum EPLoginDisplayType { + case id // ID + 密码 + case email // 邮箱 + 验证码 + case phone // 手机号 + 验证码 + case emailReset // 邮箱找回密码 + case phoneReset // 手机号找回密码 +} + +/// 登录状态验证器(Phase 2 实现) +class EPLoginValidator { + + /// 密码强度验证:6-16位,必须包含字母+数字 + func validatePassword(_ password: String) -> Bool { + guard password.count >= 6 && password.count <= 16 else { return false } + + let hasLetter = password.rangeOfCharacter(from: .letters) != nil + let hasDigit = password.rangeOfCharacter(from: .decimalDigits) != nil + + return hasLetter && hasDigit + } + + /// 邮箱格式验证 + func validateEmail(_ email: String) -> Bool { + let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}" + let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex) + return emailPredicate.evaluate(with: email) + } + + /// 验证码格式验证(6位数字) + func validateCode(_ code: String) -> Bool { + guard code.count == 6 else { return false } + return code.allSatisfy { $0.isNumber } + } + + /// 手机号格式验证(简单验证) + func validatePhone(_ phone: String) -> Bool { + let phoneRegex = "^[0-9]{10,15}$" + let phonePredicate = NSPredicate(format: "SELF MATCHES %@", phoneRegex) + return phonePredicate.evaluate(with: phone) + } +} + diff --git a/YuMi/E-P/NewLogin/Services/EPLoginManager.swift b/YuMi/E-P/NewLogin/Services/EPLoginManager.swift new file mode 100644 index 0000000..23f096e --- /dev/null +++ b/YuMi/E-P/NewLogin/Services/EPLoginManager.swift @@ -0,0 +1,102 @@ +// +// EPLoginManager.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import UIKit + +/// 登录管理器(Swift 版本) +/// 替代 PILoginManager,处理登录成功后的路由和初始化 +@objc class EPLoginManager: NSObject { + + // MARK: - Login Success Navigation + + /// 登录成功后跳转首页 + /// - Parameter viewController: 当前视图控制器 + static func jumpToHome(from viewController: UIViewController) { + + // 1. 获取当前账号信息 + guard let accountModel = AccountInfoStorage.instance().getCurrentAccountInfo() else { + print("[EPLoginManager] 账号信息不完整,无法继续") + return + } + + let accessToken = accountModel.access_token + guard !accessToken.isEmpty else { + print("[EPLoginManager] access_token 为空,无法继续") + return + } + + // 2. 请求 ticket + let loginService = EPLoginService() + loginService.requestTicket(accessToken: accessToken) { ticket in + + // 3. 保存 ticket + AccountInfoStorage.instance().saveTicket(ticket) + + // 4. 切换到 EPTabBarController + DispatchQueue.main.async { + let epTabBar = EPTabBarController.create() + epTabBar.refreshTabBarWithIsLogin(true) + + // 设置为根控制器 + if let window = getKeyWindow() { + window.rootViewController = epTabBar + window.makeKeyAndVisible() + } + + print("[EPLoginManager] 登录成功,已切换到 EPTabBarController") + } + + } failure: { code, msg in + print("[EPLoginManager] 请求 Ticket 失败: \(code) - \(msg)") + + // Ticket 请求失败,仍然跳转到首页(保持原有行为) + DispatchQueue.main.async { + let epTabBar = EPTabBarController.create() + epTabBar.refreshTabBarWithIsLogin(true) + + if let window = getKeyWindow() { + window.rootViewController = epTabBar + window.makeKeyAndVisible() + } + + print("[EPLoginManager] Ticket 请求失败,仍跳转到首页") + } + } + } + + /// Apple Login 接口占位(不实现) + /// - Parameter viewController: 当前视图控制器 + static func loginWithApple(from viewController: UIViewController) { + print("[EPLoginManager] Apple Login - 占位,Phase 2 实现") + // 占位,打印 log + } + + // MARK: - Helper Methods + + /// 获取 keyWindow(iOS 13+ 兼容) + private static func getKeyWindow() -> UIWindow? { + if #available(iOS 13.0, *) { + for windowScene in UIApplication.shared.connectedScenes { + if let windowScene = windowScene as? UIWindowScene, + windowScene.activationState == .foregroundActive { + for window in windowScene.windows { + if window.isKeyWindow { + return window + } + } + // 如果没有 keyWindow,返回第一个 window + return windowScene.windows.first + } + } + } else { + // iOS 13 以下,使用旧方法(已废弃但仍然可用) + return UIApplication.shared.keyWindow + } + return nil + } +} + diff --git a/YuMi/E-P/NewLogin/Services/EPLoginService.swift b/YuMi/E-P/NewLogin/Services/EPLoginService.swift new file mode 100644 index 0000000..917b8c2 --- /dev/null +++ b/YuMi/E-P/NewLogin/Services/EPLoginService.swift @@ -0,0 +1,277 @@ +// +// EPLoginService.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import Foundation + +/// 登录服务封装(Swift 现代化版本) +/// 统一封装所有登录相关 API,完全替代 OC 版本的 LoginPresenter +@objc class EPLoginService: NSObject { + + // MARK: - Constants + + private let clientSecret = EPLoginConfig.API.clientSecret + private let clientId = EPLoginConfig.API.clientId + private let grantType = EPLoginConfig.API.grantType + private let version = EPLoginConfig.API.version + + // MARK: - Private Helper Methods + + /// 解析并保存 AccountModel + /// - Parameters: + /// - data: API 返回的数据 + /// - code: 状态码 + /// - completion: 成功回调 + /// - failure: 失败回调 + private func parseAndSaveAccount(data: BaseModel?, + code: Int64, + completion: @escaping (AccountModel) -> Void, + failure: @escaping (Int, String) -> Void) { + if code == 200 { + if let accountDict = data?.data as? NSDictionary, + let accountModel = AccountModel.mj_object(withKeyValues: accountDict) { + // 保存账号信息 + AccountInfoStorage.instance().saveAccountInfo(accountModel) + completion(accountModel) + } else { + failure(Int(code), "账号信息解析失败") + } + } else { + failure(Int(code), "操作失败") + } + } + + // MARK: - Request Ticket + + /// 请求 Ticket(登录成功后调用) + /// - Parameters: + /// - accessToken: 访问令牌 + /// - completion: 成功回调 (ticket) + /// - failure: 失败回调 (错误码, 错误信息) + @objc func requestTicket(accessToken: String, + completion: @escaping (String) -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.requestTicket({ (data, code, msg) in + if code == 200, let dict = data?.data as? NSDictionary { + if let tickets = dict["tickets"] as? NSArray, + let firstTicket = tickets.firstObject as? NSDictionary, + let ticket = firstTicket["ticket"] as? String { + completion(ticket) + } else { + failure(Int(code), "Ticket 解析失败") + } + } else { + failure(Int(code), msg ?? "请求 Ticket 失败") + } + }, access_token: accessToken, issue_type: "multi") + } + + // MARK: - Send Verification Code + + /// 发送邮箱验证码 + /// - Parameters: + /// - email: 邮箱地址 + /// - type: 类型 (1=登录, 2=找回密码) + /// - completion: 成功回调 + /// - failure: 失败回调 + @objc func sendEmailCode(email: String, + type: Int, + completion: @escaping () -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.emailGetCode({ (data, code, msg) in + if code == 200 { + completion() + } else { + failure(Int(code), msg ?? "发送邮箱验证码失败") + } + }, emailAddress: email, type: NSNumber(value: type)) + } + + /// 发送手机验证码 + /// - Parameters: + /// - phone: 手机号 + /// - areaCode: 区号 + /// - type: 类型 (1=登录, 2=找回密码) + /// - completion: 成功回调 + /// - failure: 失败回调 + @objc func sendPhoneCode(phone: String, + areaCode: String, + type: Int, + completion: @escaping () -> Void, + failure: @escaping (Int, String) -> Void) { + + // 注意:这里需要根据实际的 Api+Login 接口调用 + // 当前 Api+Login.h 中没有直接的手机验证码接口,可能需要通过其他方式 + print("[EPLoginService] sendPhoneCode - 需要确认实际的 API 接口") + failure(-1, "手机验证码接口待确认") + } + + // MARK: - Login Methods + + /// ID + 密码登录 + /// - Parameters: + /// - id: 用户 ID + /// - password: 密码 + /// - completion: 成功回调 (AccountModel) + /// - failure: 失败回调 + @objc func loginWithID(id: String, + password: String, + completion: @escaping (AccountModel) -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.login(password: { [weak self] (data, code, msg) in + self?.parseAndSaveAccount( + data: data, + code: Int64(code), + completion: completion, + failure: { errorCode, _ in + failure(errorCode, msg ?? "登录失败") + }) + }, + phone: id, + password: password, + client_secret: clientSecret, + version: version, + client_id: clientId, + grant_type: grantType) + } + + /// 邮箱 + 验证码登录 + /// - Parameters: + /// - email: 邮箱地址 + /// - code: 验证码 + /// - completion: 成功回调 (AccountModel) + /// - failure: 失败回调 + @objc func loginWithEmail(email: String, + code: String, + completion: @escaping (AccountModel) -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.login(code: { [weak self] (data, code, msg) in + self?.parseAndSaveAccount( + data: data, + code: Int64(code), + completion: completion, + failure: { errorCode, _ in + failure(errorCode, msg ?? "登录失败") + }) + }, + email: email, + code: code, + client_secret: clientSecret, + version: version, + client_id: clientId, + grant_type: grantType) + } + + /// 手机号 + 验证码登录 + /// - Parameters: + /// - phone: 手机号 + /// - code: 验证码 + /// - areaCode: 区号 + /// - completion: 成功回调 (AccountModel) + /// - failure: 失败回调 + @objc func loginWithPhone(phone: String, + code: String, + areaCode: String, + completion: @escaping (AccountModel) -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.login(code: { [weak self] (data, code, msg) in + self?.parseAndSaveAccount( + data: data, + code: Int64(code), + completion: completion, + failure: { errorCode, _ in + failure(errorCode, msg ?? "登录失败") + }) + }, + phone: phone, + code: code, + client_secret: clientSecret, + version: version, + client_id: clientId, + grant_type: grantType, + phoneAreaCode: areaCode) + } + + // MARK: - Reset Password + + /// 邮箱重置密码 + /// - Parameters: + /// - email: 邮箱地址 + /// - code: 验证码 + /// - newPassword: 新密码 + /// - completion: 成功回调 + /// - failure: 失败回调 + @objc func resetEmailPassword(email: String, + code: String, + newPassword: String, + completion: @escaping () -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.resetPassword(email: { (data, code, msg) in + if code == 200 { + completion() + } else { + failure(Int(code), msg ?? "重置密码失败") + } + }, email: email, newPwd: newPassword, code: code) + } + + /// 手机号重置密码 + /// - Parameters: + /// - phone: 手机号 + /// - code: 验证码 + /// - areaCode: 区号 + /// - newPassword: 新密码 + /// - completion: 成功回调 + /// - failure: 失败回调 + @objc func resetPhonePassword(phone: String, + code: String, + areaCode: String, + newPassword: String, + completion: @escaping () -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.resetPassword(phone: { (data, code, msg) in + if code == 200 { + completion() + } else { + failure(Int(code), msg ?? "重置密码失败") + } + }, phone: phone, newPwd: newPassword, smsCode: code, phoneAreaCode: areaCode) + } + + // MARK: - Phone Quick Login (保留接口) + + /// 手机快速登录(保留接口但 UI 暂不暴露) + /// - Parameters: + /// - accessToken: 访问令牌 + /// - token: 令牌 + /// - completion: 成功回调 (AccountModel) + /// - failure: 失败回调 + @objc func phoneQuickLogin(accessToken: String, + token: String, + completion: @escaping (AccountModel) -> Void, + failure: @escaping (Int, String) -> Void) { + + Api.phoneQuickLogin({ [weak self] (data, code, msg) in + self?.parseAndSaveAccount( + data: data, + code: Int64(code), + completion: completion, + failure: { errorCode, _ in + failure(errorCode, msg ?? "快速登录失败") + }) + }, + accessToken: accessToken, + token: token) + } +} + diff --git a/YuMi/E-P/NewLogin/Views/EPLoginButton.swift b/YuMi/E-P/NewLogin/Views/EPLoginButton.swift new file mode 100644 index 0000000..f85a9fb --- /dev/null +++ b/YuMi/E-P/NewLogin/Views/EPLoginButton.swift @@ -0,0 +1,131 @@ +// +// EPLoginButton.swift +// YuMi +// +// Created by AI on 2025-01-27. +// 登录按钮组件 - 使用 StackView 实现 icon 左侧固定 + title 居中 +// + +import UIKit +import SnapKit + +/// 登录按钮点击代理 +protocol EPLoginButtonDelegate: AnyObject { + func loginButtonDidTap(_ button: EPLoginButton) +} + +/// 登录按钮组件 +class EPLoginButton: UIControl { + + // MARK: - Properties + + weak var delegate: EPLoginButtonDelegate? + + private let stackView = UIStackView() + private let iconImageView = UIImageView() + private let titleLabel = UILabel() + private let leftSpacer = UIView() + private let rightSpacer = UIView() + + // MARK: - Initialization + + override init(frame: CGRect) { + super.init(frame: frame) + setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Setup + + private func setupUI() { + backgroundColor = EPLoginConfig.Colors.background + layer.cornerRadius = EPLoginConfig.Layout.cornerRadius + + // StackView 配置 + stackView.axis = .horizontal + stackView.alignment = .center + stackView.distribution = .fill + stackView.spacing = 0 + stackView.isUserInteractionEnabled = false + addSubview(stackView) + + // Icon + iconImageView.contentMode = .scaleAspectFit + + // Title + titleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.inputFontSize, weight: .semibold) + titleLabel.textColor = EPLoginConfig.Colors.text + titleLabel.textAlignment = .center + + // Spacers - 让 title 居中 + leftSpacer.setContentHuggingPriority(.defaultLow, for: .horizontal) + rightSpacer.setContentHuggingPriority(.defaultLow, for: .horizontal) + + // 布局顺序: [Leading 33] + [Icon] + [Flexible Spacer] + [Title] + [Flexible Spacer] + [Trailing 33] + let leadingPadding = UIView() + let trailingPadding = UIView() + + stackView.addArrangedSubview(leadingPadding) + stackView.addArrangedSubview(iconImageView) + stackView.addArrangedSubview(leftSpacer) + stackView.addArrangedSubview(titleLabel) + stackView.addArrangedSubview(rightSpacer) + stackView.addArrangedSubview(trailingPadding) + + // 约束 + stackView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + leadingPadding.snp.makeConstraints { make in + make.width.equalTo(EPLoginConfig.Layout.loginButtonIconLeading) + } + + iconImageView.snp.makeConstraints { make in + make.size.equalTo(EPLoginConfig.Layout.loginButtonIconSize) + } + + trailingPadding.snp.makeConstraints { make in + make.width.equalTo(EPLoginConfig.Layout.loginButtonIconLeading) + } + + // 设置 leftSpacer 和 rightSpacer 宽度相等,实现 title 居中 + leftSpacer.snp.makeConstraints { make in + make.width.equalTo(rightSpacer) + } + + // 添加点击事件 + addTarget(self, action: #selector(handleTap), for: .touchUpInside) + } + + // MARK: - Configuration + + /// 配置按钮 + /// - Parameters: + /// - icon: 图标名称 + /// - title: 标题文字 + func configure(icon: String, title: String) { + iconImageView.image = kImage(icon) + titleLabel.text = title + } + + // MARK: - Actions + + @objc private func handleTap() { + delegate?.loginButtonDidTap(self) + } + + // MARK: - Touch Feedback + + override var isHighlighted: Bool { + didSet { + UIView.animate(withDuration: 0.1) { + self.alpha = self.isHighlighted ? 0.7 : 1.0 + } + } + } +} + diff --git a/YuMi/E-P/NewLogin/Views/EPLoginInputView.swift b/YuMi/E-P/NewLogin/Views/EPLoginInputView.swift new file mode 100644 index 0000000..0a7c64d --- /dev/null +++ b/YuMi/E-P/NewLogin/Views/EPLoginInputView.swift @@ -0,0 +1,302 @@ +// +// EPLoginInputView.swift +// YuMi +// +// Created by AI on 2025-01-27. +// 登录输入框组件 - 支持区号、验证码、密码切换等完整功能 +// + +import UIKit +import SnapKit + +/// 输入框配置 +struct EPLoginInputConfig { + var showAreaCode: Bool = false + var showCodeButton: Bool = false + var isSecure: Bool = false + var icon: String? + var placeholder: String +} + +/// 输入框代理 +protocol EPLoginInputViewDelegate: AnyObject { + func inputViewDidRequestCode(_ inputView: EPLoginInputView) + func inputViewDidSelectArea(_ inputView: EPLoginInputView) +} + +/// 登录输入框组件 +class EPLoginInputView: UIView { + + // MARK: - Properties + + weak var delegate: EPLoginInputViewDelegate? + + private let stackView = UIStackView() + + // 区号区域 + private let areaStackView = UIStackView() + private let areaCodeButton = UIButton(type: .custom) + private let areaArrowImageView = UIImageView() + private let areaTapButton = UIButton(type: .custom) + + // 输入框 + private let inputTextField = UITextField() + private let iconImageView = UIImageView() + + // 眼睛按钮(密码可见性切换) + private let eyeButton = UIButton(type: .custom) + + // 验证码按钮 + private let codeButton = UIButton(type: .custom) + + // 倒计时 + private var timer: DispatchSourceTimer? + private var countdownSeconds = 60 + private var isCountingDown = false + + // 配置 + private var config: EPLoginInputConfig? + + /// 获取输入内容 + var text: String { + return inputTextField.text ?? "" + } + + // MARK: - Initialization + + override init(frame: CGRect) { + super.init(frame: frame) + setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + deinit { + stopCountdown() + } + + // MARK: - Setup + + private func setupUI() { + backgroundColor = EPLoginConfig.Colors.inputBackground + layer.cornerRadius = EPLoginConfig.Layout.inputCornerRadius + + // Main StackView + stackView.axis = .horizontal + stackView.alignment = .center + stackView.distribution = .fill + stackView.spacing = 8 + addSubview(stackView) + + setupAreaCodeView() + setupInputTextField() + setupEyeButton() + setupCodeButton() + + stackView.snp.makeConstraints { make in + make.leading.equalToSuperview().offset(EPLoginConfig.Layout.inputHorizontalPadding) + make.trailing.equalToSuperview().offset(-EPLoginConfig.Layout.inputHorizontalPadding) + make.top.bottom.equalToSuperview() + } + + // 默认隐藏所有可选组件 + areaStackView.isHidden = true + eyeButton.isHidden = true + codeButton.isHidden = true + iconImageView.isHidden = true + } + + private func setupAreaCodeView() { + // 区号 StackView + areaStackView.axis = .horizontal + areaStackView.alignment = .center + areaStackView.distribution = .fill + areaStackView.spacing = 8 + + // 区号按钮 + areaCodeButton.setTitle("+86", for: .normal) + areaCodeButton.setTitleColor(EPLoginConfig.Colors.inputText, for: .normal) + areaCodeButton.titleLabel?.font = .systemFont(ofSize: 16, weight: .medium) + areaCodeButton.isUserInteractionEnabled = false + + // 箭头图标 + areaArrowImageView.image = kImage("login_area_arrow") + areaArrowImageView.contentMode = .scaleAspectFit + areaArrowImageView.isUserInteractionEnabled = false + + // 点击区域按钮 + areaTapButton.addTarget(self, action: #selector(handleAreaTap), for: .touchUpInside) + + areaStackView.addSubview(areaTapButton) + areaStackView.addArrangedSubview(areaCodeButton) + areaStackView.addArrangedSubview(areaArrowImageView) + + stackView.addArrangedSubview(areaStackView) + + areaTapButton.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + areaCodeButton.snp.makeConstraints { make in + make.width.lessThanOrEqualTo(60) + make.height.equalTo(stackView) + } + + areaArrowImageView.snp.makeConstraints { make in + make.width.equalTo(12) + make.height.equalTo(8) + } + } + + private func setupInputTextField() { + // Icon (可选) + iconImageView.contentMode = .scaleAspectFit + iconImageView.tintColor = EPLoginConfig.Colors.icon + stackView.addArrangedSubview(iconImageView) + + iconImageView.snp.makeConstraints { make in + make.size.equalTo(EPLoginConfig.Layout.inputIconSize) + } + + // TextField + inputTextField.textColor = EPLoginConfig.Colors.inputText + inputTextField.font = .systemFont(ofSize: 14) + inputTextField.tintColor = EPLoginConfig.Colors.primary + stackView.addArrangedSubview(inputTextField) + + inputTextField.snp.makeConstraints { make in + make.height.equalTo(stackView) + } + } + + private func setupEyeButton() { + eyeButton.setImage(UIImage(systemName: "eye.slash"), for: .normal) + eyeButton.setImage(UIImage(systemName: "eye"), for: .selected) + eyeButton.tintColor = EPLoginConfig.Colors.icon + eyeButton.addTarget(self, action: #selector(handleEyeTap), for: .touchUpInside) + stackView.addArrangedSubview(eyeButton) + + eyeButton.snp.makeConstraints { make in + make.width.equalTo(30) + } + } + + private func setupCodeButton() { + codeButton.setTitle(YMLocalizedString("XPLoginInputView0"), for: .normal) + codeButton.setTitleColor(.white, for: .normal) + codeButton.titleLabel?.font = .systemFont(ofSize: 12, weight: .medium) + codeButton.titleLabel?.textAlignment = .center + codeButton.titleLabel?.numberOfLines = 2 + codeButton.layer.cornerRadius = EPLoginConfig.Layout.codeButtonHeight / 2 + codeButton.backgroundColor = EPLoginConfig.Colors.codeButtonBackground + codeButton.addTarget(self, action: #selector(handleCodeTap), for: .touchUpInside) + stackView.addArrangedSubview(codeButton) + + codeButton.snp.makeConstraints { make in + make.width.equalTo(EPLoginConfig.Layout.codeButtonWidth) + make.height.equalTo(EPLoginConfig.Layout.codeButtonHeight) + } + } + + // MARK: - Configuration + + /// 配置输入框 + func configure(with config: EPLoginInputConfig) { + self.config = config + + // 区号 + areaStackView.isHidden = !config.showAreaCode + + // Icon + if let iconName = config.icon { + iconImageView.image = UIImage(systemName: iconName) + iconImageView.isHidden = false + } else { + iconImageView.isHidden = true + } + + // Placeholder + inputTextField.placeholder = config.placeholder + + // 密码模式 + inputTextField.isSecureTextEntry = config.isSecure + eyeButton.isHidden = !config.isSecure + + // 验证码按钮 + codeButton.isHidden = !config.showCodeButton + } + + /// 设置区号 + func setAreaCode(_ code: String) { + areaCodeButton.setTitle(code, for: .normal) + } + + /// 清空输入 + func clearInput() { + inputTextField.text = "" + } + + // MARK: - Actions + + @objc private func handleAreaTap() { + delegate?.inputViewDidSelectArea(self) + } + + @objc private func handleEyeTap() { + eyeButton.isSelected.toggle() + inputTextField.isSecureTextEntry = !eyeButton.isSelected + } + + @objc private func handleCodeTap() { + guard !isCountingDown else { return } + delegate?.inputViewDidRequestCode(self) + } + + // MARK: - Countdown + + /// 开始倒计时 + func startCountdown() { + guard !isCountingDown else { return } + + isCountingDown = true + countdownSeconds = 60 + codeButton.isEnabled = false + codeButton.backgroundColor = EPLoginConfig.Colors.iconDisabled + + let queue = DispatchQueue.main + let timer = DispatchSource.makeTimerSource(queue: queue) + timer.schedule(deadline: .now(), repeating: 1.0) + + timer.setEventHandler { [weak self] in + guard let self = self else { return } + + self.countdownSeconds -= 1 + + if self.countdownSeconds <= 0 { + self.stopCountdown() + self.codeButton.setTitle(YMLocalizedString("XPLoginInputView1"), for: .normal) + } else { + self.codeButton.setTitle("\(self.countdownSeconds)s", for: .normal) + } + } + + timer.resume() + self.timer = timer + } + + /// 停止倒计时 + func stopCountdown() { + guard let timer = timer else { return } + + timer.cancel() + self.timer = nil + isCountingDown = false + + codeButton.isEnabled = true + codeButton.backgroundColor = EPLoginConfig.Colors.codeButtonBackground + codeButton.setTitle(YMLocalizedString("XPLoginInputView0"), for: .normal) + } +} + diff --git a/YuMi/E-P/NewLogin/Views/EPPolicyLabel.swift b/YuMi/E-P/NewLogin/Views/EPPolicyLabel.swift new file mode 100644 index 0000000..50bc3f4 --- /dev/null +++ b/YuMi/E-P/NewLogin/Views/EPPolicyLabel.swift @@ -0,0 +1,115 @@ +// +// EPPolicyLabel.swift +// YuMi +// +// Created by AI on 2025-01-27. +// + +import UIKit + +class EPPolicyLabel: UILabel { + + // MARK: - Properties + + var onUserAgreementTapped: (() -> Void)? + var onPrivacyPolicyTapped: (() -> Void)? + + // MARK: - Initialization + + override init(frame: CGRect) { + super.init(frame: frame) + setup() + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + setup() + } + + // MARK: - Setup + + private func setup() { + numberOfLines = 0 + isUserInteractionEnabled = true + + // 使用 YMLocalizedString 获取文案 + let fullText = YMLocalizedString("XPLoginViewController6") + let userAgreementText = YMLocalizedString("XPLoginViewController7") + let privacyPolicyText = YMLocalizedString("XPLoginViewController9") + + let attributedString = NSMutableAttributedString(string: fullText) + attributedString.addAttribute(NSAttributedString.Key.foregroundColor, + value: UIColor.darkGray, + range: NSRange(location: 0, length: fullText.count)) + attributedString.addAttribute(NSAttributedString.Key.font, + value: UIFont.systemFont(ofSize: 12), + range: NSRange(location: 0, length: fullText.count)) + + // 高亮用户协议 + if let userRange = fullText.range(of: userAgreementText) { + let nsRange = NSRange(userRange, in: fullText) + attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.black, range: nsRange) + attributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: nsRange) + } + + // 高亮隐私政策 + if let privacyRange = fullText.range(of: privacyPolicyText) { + let nsRange = NSRange(privacyRange, in: fullText) + attributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.black, range: nsRange) + attributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: nsRange) + } + + attributedText = attributedString + + // 添加点击手势 + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:))) + addGestureRecognizer(tapGesture) + } + + // MARK: - Actions + + @objc private func handleTap(_ gesture: UITapGestureRecognizer) { + guard let text = self.text else { return } + + let userAgreementText = YMLocalizedString("XPLoginViewController7") + let privacyPolicyText = YMLocalizedString("XPLoginViewController9") + + let layoutManager = NSLayoutManager() + let textContainer = NSTextContainer(size: bounds.size) + let textStorage = NSTextStorage(attributedString: attributedText ?? NSAttributedString()) + + layoutManager.addTextContainer(textContainer) + textStorage.addLayoutManager(layoutManager) + + textContainer.lineFragmentPadding = 0 + textContainer.maximumNumberOfLines = numberOfLines + + let locationOfTouchInLabel = gesture.location(in: self) + let textBoundingBox = layoutManager.usedRect(for: textContainer) + let textContainerOffset = CGPoint(x: (bounds.width - textBoundingBox.width) / 2, + y: (bounds.height - textBoundingBox.height) / 2) + let locationOfTouchInTextContainer = CGPoint(x: locationOfTouchInLabel.x - textContainerOffset.x, + y: locationOfTouchInLabel.y - textContainerOffset.y) + let indexOfCharacter = layoutManager.characterIndex(for: locationOfTouchInTextContainer, + in: textContainer, + fractionOfDistanceBetweenInsertionPoints: nil) + + // 检查点击位置 + if let userRange = text.range(of: userAgreementText) { + let nsRange = NSRange(userRange, in: text) + if NSLocationInRange(indexOfCharacter, nsRange) { + onUserAgreementTapped?() + return + } + } + + if let privacyRange = text.range(of: privacyPolicyText) { + let nsRange = NSRange(privacyRange, in: text) + if NSLocationInRange(indexOfCharacter, nsRange) { + onPrivacyPolicyTapped?() + return + } + } + } +} + diff --git a/YuMi/YuMi-Bridging-Header.h b/YuMi/YuMi-Bridging-Header.h index 699fa93..9a27ba4 100644 --- a/YuMi/YuMi-Bridging-Header.h +++ b/YuMi/YuMi-Bridging-Header.h @@ -45,6 +45,21 @@ #import "NSString+Utils.h" #import +// MARK: - Login - Navigation & Web +#import "BaseNavigationController.h" +#import "XPWebViewController.h" + +// MARK: - Login - Utilities +#import "YUMIMacroUitls.h" // YMLocalizedString + +// MARK: - Login - Models (Phase 2 使用,先添加) +#import "AccountInfoStorage.h" +#import "AccountModel.h" + +// MARK: - Login - APIs (Phase 2) +#import "Api+Login.h" +#import "Api+Main.h" + // 注意: // 1. EPMomentViewController 和 EPMineViewController 直接继承 UIViewController // 2. 不继承 BaseViewController(避免 ClientConfig → PIBaseModel 依赖链)